From 3e601cc2e6149b746fac1861c4e4f574ed2a1c2e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 15 Jan 2016 15:53:40 +0100 Subject: [PATCH 01/32] Use geojson renderer branch from windshaft --- npm-shrinkwrap.json | 930 ++++++++++++++++++++++++++++++-------------- package.json | 2 +- 2 files changed, 648 insertions(+), 284 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index a28c0269..6efffc85 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -3,14 +3,14 @@ "version": "2.19.2", "dependencies": { "body-parser": { - "version": "1.14.1", + "version": "1.14.2", "from": "body-parser@~1.14.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.1.tgz", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { - "version": "2.1.0", - "from": "bytes@2.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.1.0.tgz" + "version": "2.2.0", + "from": "bytes@2.2.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.1", @@ -40,9 +40,9 @@ } }, "iconv-lite": { - "version": "0.4.12", - "from": "iconv-lite@0.4.12", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.12.tgz" + "version": "0.4.13", + "from": "iconv-lite@0.4.13", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz" }, "on-finished": { "version": "2.3.0", @@ -57,14 +57,14 @@ } }, "qs": { - "version": "5.1.0", - "from": "qs@5.1.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + "version": "5.2.0", + "from": "qs@5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" }, "raw-body": { - "version": "2.1.4", - "from": "raw-body@~2.1.4", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.4.tgz", + "version": "2.1.5", + "from": "raw-body@~2.1.5", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz", "dependencies": { "unpipe": { "version": "1.0.0", @@ -74,9 +74,9 @@ } }, "type-is": { - "version": "1.6.9", - "from": "type-is@~1.6.9", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "version": "1.6.10", + "from": "type-is@~1.6.10", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -84,14 +84,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.8", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } } @@ -191,14 +191,14 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, @@ -299,9 +299,9 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" }, "proxy-addr": { - "version": "1.0.8", + "version": "1.0.10", "from": "proxy-addr@~1.0.8", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.8.tgz", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", @@ -309,9 +309,9 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { - "version": "1.0.1", - "from": "ipaddr.js@1.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.1.tgz" + "version": "1.0.5", + "from": "ipaddr.js@1.0.5", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz" } } }, @@ -370,9 +370,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.0.tgz" }, "type-is": { - "version": "1.6.9", + "version": "1.6.10", "from": "type-is@~1.6.6", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.9.tgz", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -380,14 +380,14 @@ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" }, "mime-types": { - "version": "2.1.7", - "from": "mime-types@~2.1.7", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "version": "2.1.9", + "from": "mime-types@~2.1.6", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } } @@ -522,9 +522,9 @@ "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", "dependencies": { "readable-stream": { - "version": "2.0.4", + "version": "2.0.5", "from": "readable-stream@~2.0.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", @@ -533,7 +533,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { @@ -542,9 +542,9 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "process-nextick-args": { - "version": "1.0.3", - "from": "process-nextick-args@~1.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + "version": "1.0.6", + "from": "process-nextick-args@~1.0.6", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", @@ -581,9 +581,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { - "version": "1.5.0", + "version": "1.5.2", "from": "async@^1.4.0", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, @@ -593,14 +593,14 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { - "version": "2.1.7", + "version": "2.1.9", "from": "mime-types@~2.1.2", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { - "version": "1.19.0", - "from": "mime-db@~1.19.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + "version": "1.21.0", + "from": "mime-db@~1.21.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, @@ -615,9 +615,9 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { - "version": "0.4.1", + "version": "0.4.2", "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.2.tgz" }, "tough-cookie": { "version": "2.2.1", @@ -726,9 +726,9 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { - "version": "1.0.3", + "version": "1.0.4", "from": "escape-string-regexp@^1.0.2", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz" }, "has-ansi": { "version": "2.0.0", @@ -827,9 +827,9 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.6.1", - "from": "windshaft@1.6.1", - "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.6.1.tgz", + "version": "1.6.2", + "from": "https://github.com/CartoDB/Windshaft/tarball/geojson-renderer", + "resolved": "https://github.com/CartoDB/Windshaft/tarball/geojson-renderer", "dependencies": { "mapnik": { "version": "1.4.15-cdb6", @@ -2129,63 +2129,60 @@ } }, "zipfile": { - "version": "0.5.7", + "version": "0.5.9", "from": "zipfile@~0.5.2", - "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.7.tgz", + "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "dependencies": { "nan": { - "version": "1.5.3", - "from": "nan@~1.5.1", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.5.3.tgz" + "version": "2.1.0", + "from": "nan@~2.1.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { - "version": "0.6.2", - "from": "node-pre-gyp@>=0.6.2 <0.7.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.2.tgz", + "version": "0.6.17", + "from": "node-pre-gyp@~0.6.17", "dependencies": { "nopt": { - "version": "3.0.1", + "version": "3.0.6", "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "dependencies": { "abbrev": { - "version": "1.0.5", + "version": "1.0.7", "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" } } }, "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "version": "2.0.0", + "from": "npmlog@~2.0.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-2.0.0.tgz", "dependencies": { "ansi": { "version": "0.3.0", "from": "ansi@~0.3.0", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" - } - } - }, - "request": { - "version": "2.51.0", - "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.51.0.tgz", - "dependencies": { - "bl": { - "version": "0.9.3", - "from": "bl@~0.9.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.9.3.tgz", + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", "dependencies": { + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, "readable-stream": { - "version": "1.0.33", - "from": "readable-stream@~1.0.26", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -2206,179 +2203,489 @@ } } }, - "caseless": { - "version": "0.8.0", - "from": "caseless@~0.8.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.8.0.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "form-data": { - "version": "0.2.0", - "from": "form-data@~0.2.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", "dependencies": { - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" + "has-unicode": { + "version": "1.0.1", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.1.tgz" }, - "mime-types": { - "version": "2.0.7", - "from": "mime-types@~2.0.3", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.7.tgz", + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", "dependencies": { - "mime-db": { - "version": "1.5.0", - "from": "mime-db@~1.5.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.5.0.tgz" + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + } + } + } + } + }, + "request": { + "version": "2.67.0", + "from": "request@2.x", + "resolved": "https://registry.npmjs.org/request/-/request-2.67.0.tgz", + "dependencies": { + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", + "dependencies": { + "readable-stream": { + "version": "2.0.4", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.4.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.2", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.2", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } } } }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, - "node-uuid": { - "version": "1.4.2", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.2.tgz" + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, - "qs": { - "version": "2.3.3", - "from": "qs@~2.3.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-2.3.3.tgz" - }, - "tunnel-agent": { - "version": "0.4.0", - "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { - "punycode": { - "version": "1.3.2", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz" + "async": { + "version": "1.5.0", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.0.tgz" } } }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.7", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.7", + "from": "node-uuid@~1.4.7", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" + }, + "qs": { + "version": "5.2.0", + "from": "qs@~5.2.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz" + }, + "tunnel-agent": { + "version": "0.4.1", + "from": "tunnel-agent@~0.4.1", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.2.1", + "from": "tough-cookie@~2.2.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" + }, "http-signature": { - "version": "0.10.1", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", + "version": "1.1.0", + "from": "http-signature@~1.1.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", "from": "assert-plus@^0.1.5", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" + "jsprim": { + "version": "1.2.2", + "from": "jsprim@^1.2.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.2.2.tgz", + "dependencies": { + "extsprintf": { + "version": "1.0.2", + "from": "extsprintf@1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz" + }, + "json-schema": { + "version": "0.2.2", + "from": "json-schema@0.2.2", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.2.tgz" + }, + "verror": { + "version": "1.3.6", + "from": "verror@1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz" + } + } }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" + "sshpk": { + "version": "1.7.0", + "from": "sshpk@^1.7.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.7.0.tgz", + "dependencies": { + "asn1": { + "version": "0.2.3", + "from": "asn1@>=0.2.3 <0.3.0", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz" + }, + "assert-plus": { + "version": "0.2.0", + "from": "assert-plus@>=0.2.0 <0.3.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz" + }, + "dashdash": { + "version": "1.10.1", + "from": "dashdash@>=1.10.1 <2.0.0", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.10.1.tgz", + "dependencies": { + "assert-plus": { + "version": "0.1.5", + "from": "assert-plus@0.1.x", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" + } + } + }, + "jsbn": { + "version": "0.1.0", + "from": "jsbn@>=0.1.0 <0.2.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.0.tgz" + }, + "tweetnacl": { + "version": "0.13.2", + "from": "tweetnacl@>=0.13.0 <1.0.0", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.13.2.tgz" + }, + "jodid25519": { + "version": "1.0.2", + "from": "jodid25519@>=1.0.0 <2.0.0", + "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz" + }, + "ecc-jsbn": { + "version": "0.1.1", + "from": "ecc-jsbn@>=0.0.1 <1.0.0", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz" + } + } } } }, "oauth-sign": { - "version": "0.5.0", - "from": "oauth-sign@~0.5.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.5.0.tgz" + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" }, "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "version": "3.1.2", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz", "dependencies": { "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + "version": "2.10.1", + "from": "boom@2.x.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" + "version": "0.6.0", + "from": "aws-sign2@~0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz" }, "stringstream": { - "version": "0.0.4", + "version": "0.0.5", "from": "stringstream@~0.0.4", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { - "version": "0.0.7", - "from": "combined-stream@~0.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", + "version": "1.0.5", + "from": "combined-stream@~1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "is-typedarray": { + "version": "1.0.0", + "from": "is-typedarray@~1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" + }, + "har-validator": { + "version": "2.0.3", + "from": "har-validator@~2.0.2", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.3.tgz", + "dependencies": { + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.9.0", + "from": "commander@^2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.3", + "from": "is-my-json-valid@^2.12.3", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.3.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.1", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" + } + } + }, + "pinkie-promise": { + "version": "2.0.0", + "from": "pinkie-promise@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.0.tgz", + "dependencies": { + "pinkie": { + "version": "2.0.1", + "from": "pinkie@^2.0.0", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.1.tgz" + } + } } } } } }, "semver": { - "version": "4.2.0", - "from": "semver@~4.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.2.0.tgz" + "version": "5.1.0", + "from": "semver@~5.1.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz" }, "tar": { - "version": "1.0.3", - "from": "tar@~1.0.2", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.3.tgz", + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "dependencies": { "block-stream": { - "version": "0.0.7", + "version": "0.0.8", "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "fstream": { - "version": "1.0.3", + "version": "1.0.8", "from": "fstream@^1.0.2", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" + "version": "4.1.2", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" } } }, @@ -2390,10 +2697,15 @@ } }, "tar-pack": { - "version": "2.0.0", - "from": "tar-pack@~2.0.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-2.0.0.tgz", + "version": "3.1.0", + "from": "tar-pack@~3.1.0", + "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.1.0.tgz", "dependencies": { + "graceful-fs": { + "version": "4.1.2", + "from": "graceful-fs@4.1", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" + }, "uid-number": { "version": "0.0.3", "from": "uid-number@0.0.3", @@ -2409,16 +2721,16 @@ "from": "debug@~0.7.2", "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, "fstream": { - "version": "0.1.31", - "from": "fstream@~0.1.22", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { - "graceful-fs": { - "version": "3.0.5", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.5.tgz" - }, "inherits": { "version": "2.0.1", "from": "inherits@~2.0.0", @@ -2426,49 +2738,39 @@ } } }, - "tar": { - "version": "0.1.20", - "from": "tar@~0.1.17", - "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", + "fstream-ignore": { + "version": "1.0.3", + "from": "fstream-ignore@~1.0.3", + "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.3.tgz", "dependencies": { - "block-stream": { - "version": "0.0.7", - "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" - }, "inherits": { "version": "2.0.1", "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "fstream-ignore": { - "version": "0.0.7", - "from": "fstream-ignore@0.0.7", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-0.0.7.tgz", - "dependencies": { + }, "minimatch": { - "version": "0.2.14", - "from": "minimatch@~0.2.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "version": "3.0.0", + "from": "minimatch@^3.0.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", "dependencies": { - "lru-cache": { - "version": "2.5.0", - "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" - }, - "sigmund": { - "version": "1.0.0", - "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } } } - }, - "inherits": { - "version": "2.0.1", - "from": "inherits@2", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, @@ -2478,9 +2780,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { - "version": "1.0.1", + "version": "1.0.2", "from": "core-util-is@~1.0.0", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" }, "isarray": { "version": "0.0.1", @@ -2498,18 +2800,13 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } - }, - "graceful-fs": { - "version": "1.2.3", - "from": "graceful-fs@1.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz" } } }, "mkdirp": { - "version": "0.5.0", + "version": "0.5.1", "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", @@ -2519,36 +2816,103 @@ } }, "rc": { - "version": "0.5.5", - "from": "rc@~0.5.1", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.5.tgz", + "version": "1.1.5", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.5.tgz", "dependencies": { - "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" - }, "deep-extend": { - "version": "0.2.11", - "from": "deep-extend@~0.2.5", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.2.11.tgz" - }, - "strip-json-comments": { - "version": "0.1.3", - "from": "strip-json-comments@0.1.x", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz" + "version": "0.4.0", + "from": "deep-extend@~0.4.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.0.tgz" }, "ini": { - "version": "1.3.2", + "version": "1.3.4", "from": "ini@~1.3.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.2.tgz" + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" + }, + "minimist": { + "version": "1.2.0", + "from": "minimist@^1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" + }, + "strip-json-comments": { + "version": "1.0.4", + "from": "strip-json-comments@~1.0.4", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz" } } }, "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version": "2.4.4", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.4.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.1", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.1.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.3", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } } } } @@ -2967,11 +3331,6 @@ } } } - }, - "semver": { - "version": "5.0.3", - "from": "semver@~5.0.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" } } }, @@ -3052,6 +3411,11 @@ } } }, + "semver": { + "version": "5.0.3", + "from": "semver@~5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" + }, "carto": { "version": "0.15.1-cdb1", "from": "https://github.com/CartoDB/carto/tarball/0.15.1-cdb1", diff --git a/package.json b/package.json index 27972e43..b7103545 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "1.6.1", + "windshaft": "https://github.com/CartoDB/Windshaft/tarball/geojson-renderer", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From af50af325d2917531354cb21df10bcd576cf926b Mon Sep 17 00:00:00 2001 From: csobier Date: Fri, 29 Jan 2016 11:46:03 -0500 Subject: [PATCH 02/32] added links to new mapconfig, updated named map intro, and added cartodbjs named map examples --- docs/anonymous_maps.md | 2 +- docs/named_maps.md | 16 ++++++++++++---- docs/static_maps_api.md | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/docs/anonymous_maps.md b/docs/anonymous_maps.md index ead1ce96..31f585a2 100644 --- a/docs/anonymous_maps.md +++ b/docs/anonymous_maps.md @@ -28,7 +28,7 @@ POST /api/v1/map } ``` -Should be a [Mapconfig](https://github.com/CartoDB/Windshaft/blob/0.44.1/doc/MapConfig-1.3.0.md). +See [MapConfig File Formats](/cartodb-platform/maps-api/mapconfig/) for details. #### Response diff --git a/docs/named_maps.md b/docs/named_maps.md index 62dd44bd..4129fc59 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -1,6 +1,6 @@ -# Named Maps +http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/# Named Maps -Named maps are essentially the same as anonymous maps except the MapConfig is stored on the server and the map is given a unique name. Two other big differences are: you can create named maps from private data and that users without an API Key can see them even though they are from that private data. +Named maps are essentially the same as anonymous maps except the MapConfig is stored on the server, and the map is given a unique name. You can create named maps from private data, and users without an API Key can view your Named Map (while keeping your data private). The Named map workflow consists of making a call to your database, referencing a table, inserting your variables into the template where placeholders are defined, and creating custom queries. The main two differences compared to anonymous maps are: @@ -91,7 +91,7 @@ auth | |_ method | `"token"` or `"open"` (the default if no `"method"` is given). |_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the named map. placeholders | Variables not listed here are not substituted. Variables not provided at instantiation time trigger an error. A default is required for optional variables. Type specification is used for quoting, to avoid injections see template format section below. -layergroup | the layer list definition. This is the MapConfig explained in anonymous maps. See [MapConfig documentation](https://github.com/CartoDB/Windshaft/blob/0.44.1/doc/MapConfig-1.3.0.md) for more info. +layergroup | the layer list definition. This is the MapConfig explained in anonymous maps. See [MapConfig File Format](/cartodb-platform/maps-api/mapconfig/) for more info. view (optional) | extra keys to specify the compelling area for the map. It can be used to have a static preview of a named map without having to instantiate it. It is possible to specify it with `center` + `zoom` or with a bounding box `bbox`. Center+zoom takes precedence over bounding box. --- | --- @@ -437,7 +437,7 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named/:template_name?a } ``` -## Use with CartoDB.js +## Creating Named Maps with CartoDB.js Named maps can be used with CartoDB.js by specifying a named map in a layer source as follows. Named maps are treated almost the same as other layer source types in most other ways. ```js @@ -462,3 +462,11 @@ cartodb.createLayer('map_dom_id',layerSource) 1. [layer.setParams()](http://docs.cartodb.com/cartodb-platform/cartodb-js/api-methods/#layersetparamskey-value) allows you to change the template variables (in the placeholders object) via JavaScript 2. [layer.setAuthToken()](http://docs.cartodb.com/cartodb-platform/cartodb-js/api-methods/#layersetauthtokenauthtoken) allows you to set the auth tokens to create the layer + +### Complete Examples of Named Maps created with CartoDB.js + +- [Named map selectors with interaction](http://bl.ocks.org/ohasselblad/515a8af1f99d5e690484) + +- [Named map with interactivity and config file used to create it](http://bl.ocks.org/ohasselblad/d1a45b8ff5e7bd90cd68) + +- [Toggling sublayers in a Named Map](http://bl.ocks.org/ohasselblad/c1a0f4913610eec53cd3) diff --git a/docs/static_maps_api.md b/docs/static_maps_api.md index 1d6f3160..426501d5 100644 --- a/docs/static_maps_api.md +++ b/docs/static_maps_api.md @@ -127,7 +127,7 @@ By manipulating the `"urlTemplate"` custom basemaps can be used in generating st **CartoDB** -As described in the [Mapconfig documentation](https://github.com/CartoDB/Windshaft/blob/0.44.1/doc/MapConfig-1.3.0.md), a "cartodb" type layer is now just an alias to a "mapnik" type layer as above, intended for backwards compatibility. +As described in the [MapConfig File Format](/cartodb-platform/maps-api/mapconfig/), a "cartodb" type layer is now just an alias to a "mapnik" type layer as above, intended for backwards compatibility. ```javascript { From 486a55ed7f9592ffb9354a42f575978c76675063 Mon Sep 17 00:00:00 2001 From: csobier Date: Fri, 29 Jan 2016 11:52:17 -0500 Subject: [PATCH 03/32] edited intro text and fixed typo --- docs/Map-API.md | 2 +- docs/named_maps.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/Map-API.md b/docs/Map-API.md index bb74d209..df411259 100644 --- a/docs/Map-API.md +++ b/docs/Map-API.md @@ -1,6 +1,6 @@ # Maps API -The CartoDB Maps API allows you to generate maps based on data hosted in your CartoDB account and you can apply custom SQL and CartoCSS to the data. The API generates a XYZ-based URL to fetch Web Mercator projected tiles using web clients such as [Leaflet](http://leafletjs.com), [Google Maps](https://developers.google.com/maps/), or [OpenLayers](http://openlayers.org/). +The CartoDB Maps API allows you to generate maps based on data hosted in your CartoDB account and apply custom SQL and CartoCSS to the data. The API generates a XYZ-based URL to fetch Web Mercator projected tiles, using web clients such as [Leaflet](http://leafletjs.com), [Google Maps](https://developers.google.com/maps/), or [OpenLayers](http://openlayers.org/). You can create two types of maps with the Maps API: diff --git a/docs/named_maps.md b/docs/named_maps.md index 4129fc59..71c5fb88 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -12,7 +12,7 @@ The main two differences compared to anonymous maps are: Template maps are persistent with no preset expiration. They can only be created or deleted by a CartoDB user with a valid API_KEY (see auth section). -**Note:** There is a limit of 4,096 named maps allowed per account. If you need to create more Named Maps, it is recommended to use templates. +**Note:** There is a limit of 4,096 named maps allowed per account. If you need to create more Named maps, it is recommended to use templates. ## Create From 912b8f6ff4f5cdc385cdd512a0fc16aa63914c73 Mon Sep 17 00:00:00 2001 From: csobier Date: Fri, 29 Jan 2016 12:07:47 -0500 Subject: [PATCH 04/32] fixed title of named maps --- docs/named_maps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 71c5fb88..56257628 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -1,4 +1,4 @@ -http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/# Named Maps +# Named Maps Named maps are essentially the same as anonymous maps except the MapConfig is stored on the server, and the map is given a unique name. You can create named maps from private data, and users without an API Key can view your Named Map (while keeping your data private). The Named map workflow consists of making a call to your database, referencing a table, inserting your variables into the template where placeholders are defined, and creating custom queries. From 1620cbc8df6df5a4e1bc82d204e04da2ea2d3415 Mon Sep 17 00:00:00 2001 From: csobier Date: Fri, 29 Jan 2016 12:11:21 -0500 Subject: [PATCH 05/32] modified title --- docs/named_maps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/named_maps.md b/docs/named_maps.md index 56257628..748ea7cc 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -437,7 +437,7 @@ curl -X GET 'https://documentation.cartodb.com/api/v1/map/named/:template_name?a } ``` -## Creating Named Maps with CartoDB.js +## Use CartoDB.js to Create Named Maps Named maps can be used with CartoDB.js by specifying a named map in a layer source as follows. Named maps are treated almost the same as other layer source types in most other ways. ```js From 5e77c50102917ee7cd9ce06e3f5ba66201eff307 Mon Sep 17 00:00:00 2001 From: csobier Date: Fri, 29 Jan 2016 16:46:42 -0500 Subject: [PATCH 06/32] changed relative links to absolute links --- docs/anonymous_maps.md | 2 +- docs/named_maps.md | 2 +- docs/static_maps_api.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/anonymous_maps.md b/docs/anonymous_maps.md index 31f585a2..02d35dc9 100644 --- a/docs/anonymous_maps.md +++ b/docs/anonymous_maps.md @@ -28,7 +28,7 @@ POST /api/v1/map } ``` -See [MapConfig File Formats](/cartodb-platform/maps-api/mapconfig/) for details. +See [MapConfig File Formats](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for details. #### Response diff --git a/docs/named_maps.md b/docs/named_maps.md index 748ea7cc..4dac6d5c 100644 --- a/docs/named_maps.md +++ b/docs/named_maps.md @@ -91,7 +91,7 @@ auth | |_ method | `"token"` or `"open"` (the default if no `"method"` is given). |_ valid_tokens | when `"method"` is set to `"token"`, the values listed here allow you to instantiate the named map. placeholders | Variables not listed here are not substituted. Variables not provided at instantiation time trigger an error. A default is required for optional variables. Type specification is used for quoting, to avoid injections see template format section below. -layergroup | the layer list definition. This is the MapConfig explained in anonymous maps. See [MapConfig File Format](/cartodb-platform/maps-api/mapconfig/) for more info. +layergroup | the layer list definition. This is the MapConfig explained in anonymous maps. See [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/) for more info. view (optional) | extra keys to specify the compelling area for the map. It can be used to have a static preview of a named map without having to instantiate it. It is possible to specify it with `center` + `zoom` or with a bounding box `bbox`. Center+zoom takes precedence over bounding box. --- | --- diff --git a/docs/static_maps_api.md b/docs/static_maps_api.md index 426501d5..9c3c2d3d 100644 --- a/docs/static_maps_api.md +++ b/docs/static_maps_api.md @@ -127,7 +127,7 @@ By manipulating the `"urlTemplate"` custom basemaps can be used in generating st **CartoDB** -As described in the [MapConfig File Format](/cartodb-platform/maps-api/mapconfig/), a "cartodb" type layer is now just an alias to a "mapnik" type layer as above, intended for backwards compatibility. +As described in the [MapConfig File Format](http://docs.cartodb.com/cartodb-platform/maps-api/mapconfig/), a "cartodb" type layer is now just an alias to a "mapnik" type layer as above, intended for backwards compatibility. ```javascript { From a4041524a310353a065ff6088940f0b3c640ea4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 1 Feb 2016 16:29:36 +0100 Subject: [PATCH 07/32] Fixed missing map key for named layers --- test/acceptance/named_layers.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/acceptance/named_layers.js b/test/acceptance/named_layers.js index eeb74bc2..785bd32c 100644 --- a/test/acceptance/named_layers.js +++ b/test/acceptance/named_layers.js @@ -405,7 +405,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map', + url: '/api/v1/map?map_key=1234', method: 'POST', headers: { host: 'localhost', @@ -443,7 +443,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/0/0.png', + url: '/api/v1/map/' + layergroupId + '/0/0/0.png?map_key=1234', method: 'GET', headers: { host: 'localhost' @@ -536,7 +536,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map', + url: '/api/v1/map?map_key=1234', method: 'POST', headers: { host: 'localhost', @@ -574,7 +574,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/0/0.png', + url: '/api/v1/map/' + layergroupId + '/0/0/0.png?map_key=1234', method: 'GET', headers: { host: 'localhost' From 6ee1f1a8bf10ad4ca6bcaf27f574ff1174ea89fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 1 Feb 2016 16:31:03 +0100 Subject: [PATCH 08/32] Fixed bad assertion in multilayer tests --- test/acceptance/ported/multilayer.js | 26 ++++++++++++++----- .../ported/multilayer_interactivity.js | 1 - 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/test/acceptance/ported/multilayer.js b/test/acceptance/ported/multilayer.js index 898ff1a4..0487326b 100644 --- a/test/acceptance/ported/multilayer.js +++ b/test/acceptance/ported/multilayer.js @@ -401,11 +401,26 @@ describe('multilayer', function() { assert.ok(body.layergroupid); expected_token = LayergroupToken.parse(body.layergroupid).token; assert.deepEqual(body.metadata, { - layers: [ - { type: "mapnik", "meta":{} }, - { type: "mapnik", "meta":{} } - ] - }); + layers: [{ + type: "mapnik", + meta: { + stats: [{ + type: "table", + name: "public.test_table", + features: -1 + }] + } + }, { + type: "mapnik", + meta: { + stats: [{ + type: "table", + name: "public.test_table", + features: -1 + }] + } + }] + }); didRunJsonCallback = true; } eval(res.body); @@ -1278,4 +1293,3 @@ describe('multilayer', function() { }); }); - diff --git a/test/acceptance/ported/multilayer_interactivity.js b/test/acceptance/ported/multilayer_interactivity.js index f4bf728e..44b54d4f 100644 --- a/test/acceptance/ported/multilayer_interactivity.js +++ b/test/acceptance/ported/multilayer_interactivity.js @@ -374,4 +374,3 @@ describe('multilayer interactivity and layers order', function() { chaosScenarios.forEach(testInteractivityLayersOrderScenario); }); - From 640500a0e301f318a0d95e6c16c34433741c59d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 1 Feb 2016 17:12:50 +0100 Subject: [PATCH 09/32] Updated config to use Windshaft's geojson renderer --- config/environments/development.js.example | 23 +++++++++++++++++++--- config/environments/production.js.example | 23 +++++++++++++++++++--- config/environments/staging.js.example | 23 +++++++++++++++++++--- config/environments/test.js.example | 22 ++++++++++++++++++--- 4 files changed, 79 insertions(+), 12 deletions(-) diff --git a/config/environments/development.js.example b/config/environments/development.js.example index bf98ca23..81f5b31e 100644 --- a/config/environments/development.js.example +++ b/config/environments/development.js.example @@ -13,7 +13,7 @@ var config = { // Base URLs for the APIs // // See http://github.com/CartoDB/Windshaft-cartodb/wiki/Unified-Map-API - // + // // Base url for the Templated Maps API // "/api/v1/map/named" is the new API, // "/tiles/template" is for compatibility with versions up to 1.6.x @@ -33,7 +33,7 @@ var config = { // to be able to navigate the map without a reload ? // Defaults to 7200 (2 hours) ,mapConfigTTL: 7200 - // idle socket timeout, in milliseconds + // idle socket timeout, in milliseconds ,socket_timeout: 600000 ,enable_cors: true ,cache_enabled: false @@ -147,7 +147,24 @@ var config = { // memory. If we want to enforce this behaviour we have to implement a cache eviction policy for the // internal cache. cacheOnTimeout: true + }, + + geojson: { + dbPoolParams: { + // maximum number of resources to create at any given time + size: 16, + // max milliseconds a resource can go unused before it should be destroyed + idleTimeout: 3000, + // frequency to check for idle resources + reapInterval: 1000 + }, + + // SQL queries will be wrapped with ST_ClipByBox2D + // Returning the portion of a geometry falling within a rectangle + // It will only work if snapToGrid is enabled + clipByBox2d: false, // this requires postgis >=2.2 and geos >=3.5 } + }, http: { timeout: 2000, // the timeout in ms for a http tile request @@ -232,7 +249,7 @@ var config = { serviceId: 'wadus_service_id' } // If useProfiler is true every response will be served with an - // X-Tiler-Profile header containing elapsed timing for various + // X-Tiler-Profile header containing elapsed timing for various // steps taken for producing the response. ,useProfiler:true // Settings for the health check available at /health diff --git a/config/environments/production.js.example b/config/environments/production.js.example index 386f4433..8e6a60dc 100644 --- a/config/environments/production.js.example +++ b/config/environments/production.js.example @@ -13,7 +13,7 @@ var config = { // Base URLs for the APIs // // See http://github.com/CartoDB/Windshaft-cartodb/wiki/Unified-Map-API - // + // // Base url for the Templated Maps API // "/api/v1/map/named" is the new API, // "/tiles/template" is for compatibility with versions up to 1.6.x @@ -34,7 +34,7 @@ var config = { // Defaults to 7200 (2 hours) ,mapConfigTTL: 7200 // idle socket timeout, in milliseconds - ,socket_timeout: 600000 + ,socket_timeout: 600000 ,enable_cors: true ,cache_enabled: true ,log_format: ':req[X-Real-IP] :method :req[Host]:url :status :response-time ms -> :res[Content-Type] (:res[X-Tiler-Profiler])' @@ -141,7 +141,24 @@ var config = { // memory. If we want to enforce this behaviour we have to implement a cache eviction policy for the // internal cache. cacheOnTimeout: true + }, + + geojson: { + dbPoolParams: { + // maximum number of resources to create at any given time + size: 16, + // max milliseconds a resource can go unused before it should be destroyed + idleTimeout: 3000, + // frequency to check for idle resources + reapInterval: 1000 + }, + + // SQL queries will be wrapped with ST_ClipByBox2D + // Returning the portion of a geometry falling within a rectangle + // It will only work if snapToGrid is enabled + clipByBox2d: false, // this requires postgis >=2.2 and geos >=3.5 } + }, http: { timeout: 2000, // the timeout in ms for a http tile request @@ -226,7 +243,7 @@ var config = { serviceId: 'wadus_service_id' } // If useProfiler is true every response will be served with an - // X-Tiler-Profile header containing elapsed timing for various + // X-Tiler-Profile header containing elapsed timing for various // steps taken for producing the response. ,useProfiler:false ,serverMetadata: { diff --git a/config/environments/staging.js.example b/config/environments/staging.js.example index f692d2ba..3777872a 100644 --- a/config/environments/staging.js.example +++ b/config/environments/staging.js.example @@ -13,7 +13,7 @@ var config = { // Base URLs for the APIs // // See http://github.com/CartoDB/Windshaft-cartodb/wiki/Unified-Map-API - // + // // Base url for the Templated Maps API // "/api/v1/maps/named" is the new API, // "/tiles/template" is for compatibility with versions up to 1.6.x @@ -34,7 +34,7 @@ var config = { // Defaults to 7200 (2 hours) ,mapConfigTTL: 7200 // idle socket timeout, in milliseconds - ,socket_timeout: 600000 + ,socket_timeout: 600000 ,enable_cors: true ,cache_enabled: true ,log_format: ':req[X-Real-IP] :method :req[Host]:url :status :response-time ms (:res[X-Tiler-Profiler]) -> :res[Content-Type]' @@ -141,7 +141,24 @@ var config = { // memory. If we want to enforce this behaviour we have to implement a cache eviction policy for the // internal cache. cacheOnTimeout: true + }, + + geojson: { + dbPoolParams: { + // maximum number of resources to create at any given time + size: 16, + // max milliseconds a resource can go unused before it should be destroyed + idleTimeout: 3000, + // frequency to check for idle resources + reapInterval: 1000 + }, + + // SQL queries will be wrapped with ST_ClipByBox2D + // Returning the portion of a geometry falling within a rectangle + // It will only work if snapToGrid is enabled + clipByBox2d: false, // this requires postgis >=2.2 and geos >=3.5 } + }, http: { timeout: 2000, // the timeout in ms for a http tile request @@ -226,7 +243,7 @@ var config = { serviceId: 'wadus_service_id' } // If useProfiler is true every response will be served with an - // X-Tiler-Profile header containing elapsed timing for various + // X-Tiler-Profile header containing elapsed timing for various // steps taken for producing the response. ,useProfiler:true ,serverMetadata: { diff --git a/config/environments/test.js.example b/config/environments/test.js.example index 13132e9a..b0cff74a 100644 --- a/config/environments/test.js.example +++ b/config/environments/test.js.example @@ -13,7 +13,7 @@ var config = { // Base URLs for the APIs // // See https://github.com/CartoDB/Windshaft-cartodb/wiki/Unified-Map-API - // + // // Base url for the Templated Maps API // "/api/v1/map/named" is the new API, // "/tiles/template" is for compatibility with versions up to 1.6.x @@ -34,7 +34,7 @@ var config = { // Defaults to 7200 (2 hours) ,mapConfigTTL: 7200 // idle socket timeout, in milliseconds - ,socket_timeout: 600000 + ,socket_timeout: 600000 ,enable_cors: true ,cache_enabled: false ,log_format: '[:date] :req[X-Real-IP] :method :req[Host]:url :status :response-time ms -> :res[Content-Type] (:res[X-Tiler-Profiler])' @@ -141,6 +141,22 @@ var config = { // memory. If we want to enforce this behaviour we have to implement a cache eviction policy for the // internal cache. cacheOnTimeout: true + }, + + geojson: { + dbPoolParams: { + // maximum number of resources to create at any given time + size: 16, + // max milliseconds a resource can go unused before it should be destroyed + idleTimeout: 3000, + // frequency to check for idle resources + reapInterval: 1000 + }, + + // SQL queries will be wrapped with ST_ClipByBox2D + // Returning the portion of a geometry falling within a rectangle + // It will only work if snapToGrid is enabled + clipByBox2d: false // this requires postgis >=2.2 and geos >=3.5 } }, http: { @@ -228,7 +244,7 @@ var config = { serviceId: 'wadus_service_id' } // If useProfiler is true every response will be served with an - // X-Tiler-Profile header containing elapsed timing for various + // X-Tiler-Profile header containing elapsed timing for various // steps taken for producing the response. ,useProfiler:true // Settings for the health check available at /health From 8601a67e9721c60b9f81db56856791a858262689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 1 Feb 2016 18:39:34 +0100 Subject: [PATCH 10/32] Improved assertions for multilayer tests --- test/acceptance/ported/multilayer.js | 26 +++++--------------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/test/acceptance/ported/multilayer.js b/test/acceptance/ported/multilayer.js index 0487326b..7e9b984c 100644 --- a/test/acceptance/ported/multilayer.js +++ b/test/acceptance/ported/multilayer.js @@ -400,27 +400,11 @@ describe('multilayer', function() { function jsonp_test(body) { assert.ok(body.layergroupid); expected_token = LayergroupToken.parse(body.layergroupid).token; - assert.deepEqual(body.metadata, { - layers: [{ - type: "mapnik", - meta: { - stats: [{ - type: "table", - name: "public.test_table", - features: -1 - }] - } - }, { - type: "mapnik", - meta: { - stats: [{ - type: "table", - name: "public.test_table", - features: -1 - }] - } - }] - }); + assert.ok(body.metadata.layers.length === 2); + assert.ok(body.metadata.layers[0].type === 'mapnik'); + assert.ok(body.metadata.layers[0].meta); + assert.ok(body.metadata.layers[1].type === 'mapnik'); + assert.ok(body.metadata.layers[1].meta); didRunJsonCallback = true; } eval(res.body); From 08d43a86200006b688c4fd0c49000b570ad8801b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Tue, 2 Feb 2016 16:34:58 +0100 Subject: [PATCH 11/32] Added property 'enableLayerMetadata' to config files --- config/environments/development.js.example | 5 ++++- config/environments/production.js.example | 4 +++- config/environments/staging.js.example | 4 +++- config/environments/test.js.example | 4 +++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/config/environments/development.js.example b/config/environments/development.js.example index 81f5b31e..8a1cc7ad 100644 --- a/config/environments/development.js.example +++ b/config/environments/development.js.example @@ -267,7 +267,10 @@ var config = { // whether it should intercept tile render errors an act based on them, enabled by default. onTileErrorStrategy: true, // whether the affected tables for a given SQL must query directly postgresql or use the SQL API - cdbQueryTablesFromPostgres: true + cdbQueryTablesFromPostgres: true, + // whether in mapconfig is available stats & metadata for each layer + layerMetadata: true + } }; diff --git a/config/environments/production.js.example b/config/environments/production.js.example index 8e6a60dc..73c68f1d 100644 --- a/config/environments/production.js.example +++ b/config/environments/production.js.example @@ -267,7 +267,9 @@ var config = { // whether it should intercept tile render errors an act based on them, enabled by default. onTileErrorStrategy: true, // whether the affected tables for a given SQL must query directly postgresql or use the SQL API - cdbQueryTablesFromPostgres: true + cdbQueryTablesFromPostgres: true, + // whether in mapconfig is available stats & metadata for each layer + layerMetadata: false } }; diff --git a/config/environments/staging.js.example b/config/environments/staging.js.example index 3777872a..f81b88f7 100644 --- a/config/environments/staging.js.example +++ b/config/environments/staging.js.example @@ -267,7 +267,9 @@ var config = { // whether it should intercept tile render errors an act based on them, enabled by default. onTileErrorStrategy: true, // whether the affected tables for a given SQL must query directly postgresql or use the SQL API - cdbQueryTablesFromPostgres: true + cdbQueryTablesFromPostgres: true, + // whether in mapconfig is available stats & metadata for each layer + layerMetadata: true } }; diff --git a/config/environments/test.js.example b/config/environments/test.js.example index b0cff74a..0400be6e 100644 --- a/config/environments/test.js.example +++ b/config/environments/test.js.example @@ -262,7 +262,9 @@ var config = { // whether it should intercept tile render errors an act based on them, enabled by default. onTileErrorStrategy: true, // whether the affected tables for a given SQL must query directly postgresql or use the SQL API - cdbQueryTablesFromPostgres: true + cdbQueryTablesFromPostgres: true, + // whether in mapconfig is available stats & metadata for each layer + layerMetadata: true } }; From 6407101709ac5da976f7faa1130d30a3418d5f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 12:40:53 +0100 Subject: [PATCH 12/32] Upgrade to Windshaft 1.8.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5d24823c..8742fbaa 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "https://github.com/CartoDB/Windshaft/tarball/geojson-renderer", + "windshaft": "1.8.0", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From 425ec83209c4c0b9ccbdbaa56b2928d73b9065c1 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 4 Feb 2016 15:22:08 +0100 Subject: [PATCH 13/32] Use a valid SPDX license expression --- package.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/package.json b/package.json index f1b16e48..a90d3873 100644 --- a/package.json +++ b/package.json @@ -7,10 +7,7 @@ "cartodb" ], "url": "https://github.com/CartoDB/Windshaft-cartodb", - "licenses": [{ - "type": "BSD", - "url": "https://github.com/CartoDB/Windshaft-cartodb/blob/master/LICENCE" - }], + "license": "BSD-3-Clause", "repository": { "type": "git", "url": "git://github.com/CartoDB/Windshaft-cartodb.git" From da51a173d723dfc831dbffe98409fe8580701e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 15:46:13 +0100 Subject: [PATCH 14/32] Upgrades windshaft to 1.8.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8742fbaa..d97133cd 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "1.8.0", + "windshaft": "1.8.1", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From d33ae2921199042cdc1e4abd1d7426afc0b0ce06 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 4 Feb 2016 16:26:32 +0100 Subject: [PATCH 15/32] Revert "Fixed missing map key for named layers" This reverts commit a4041524a310353a065ff6088940f0b3c640ea4e. --- test/acceptance/named_layers.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/acceptance/named_layers.js b/test/acceptance/named_layers.js index 785bd32c..eeb74bc2 100644 --- a/test/acceptance/named_layers.js +++ b/test/acceptance/named_layers.js @@ -405,7 +405,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map?map_key=1234', + url: '/api/v1/map', method: 'POST', headers: { host: 'localhost', @@ -443,7 +443,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/0/0.png?map_key=1234', + url: '/api/v1/map/' + layergroupId + '/0/0/0.png', method: 'GET', headers: { host: 'localhost' @@ -536,7 +536,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map?map_key=1234', + url: '/api/v1/map', method: 'POST', headers: { host: 'localhost', @@ -574,7 +574,7 @@ describe('named_layers', function() { var next = this; assert.response(server, { - url: '/api/v1/map/' + layergroupId + '/0/0/0.png?map_key=1234', + url: '/api/v1/map/' + layergroupId + '/0/0/0.png', method: 'GET', headers: { host: 'localhost' From 3284e709c38477a0b519255def2783560d51e94f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 17:00:44 +0100 Subject: [PATCH 16/32] Regenerate npm-shrinkwrap --- npm-shrinkwrap.json | 1233 +++++++++++++++++++++++++------------------ 1 file changed, 711 insertions(+), 522 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 5bb35968..bdb61b3b 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,40 +1,40 @@ { "name": "windshaft-cartodb", - "version": "2.20.0", + "version": "2.20.1", "dependencies": { "body-parser": { "version": "1.14.2", - "from": "body-parser@~1.14.0", + "from": "body-parser@>=1.14.0 <1.15.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz", "dependencies": { "bytes": { - "version": "2.2.1", + "version": "2.2.0", "from": "bytes@2.2.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.2.0.tgz" }, "content-type": { "version": "1.0.1", - "from": "content-type@~1.0.1", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "depd": { "version": "1.1.0", - "from": "depd@~1.1.0", + "from": "depd@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@~1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@~2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "statuses": { "version": "1.2.1", - "from": "statuses@1", + "from": "statuses@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } @@ -46,7 +46,7 @@ }, "on-finished": { "version": "2.3.0", - "from": "on-finished@~2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { @@ -63,7 +63,7 @@ }, "raw-body": { "version": "2.1.5", - "from": "raw-body@~2.1.5", + "from": "raw-body@>=2.1.5 <2.2.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.1.5.tgz", "dependencies": { "unpipe": { @@ -74,9 +74,9 @@ } }, "type-is": { - "version": "1.6.10", - "from": "type-is@~1.6.10", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", + "version": "1.6.11", + "from": "type-is@>=1.6.10 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.11.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -85,12 +85,12 @@ }, "mime-types": { "version": "2.1.9", - "from": "mime-types@~2.1.8", + "from": "mime-types@>=2.1.9 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { "version": "1.21.0", - "from": "mime-db@~1.21.0", + "from": "mime-db@>=1.21.0 <1.22.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } @@ -101,12 +101,12 @@ }, "cartodb-psql": { "version": "0.4.0", - "from": "cartodb-psql@~0.4.0", + "from": "cartodb-psql@>=0.4.0 <0.5.0", "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.4.0.tgz", "dependencies": { "pg": { "version": "2.6.2-cdb1", - "from": "pg@git://github.com/CartoDB/node-postgres.git#2.6.2-cdb1", + "from": "git://github.com/CartoDB/node-postgres.git#2.6.2-cdb1", "resolved": "git://github.com/CartoDB/node-postgres.git#836a2dc3131e873fc4ba20cd16e7fb69a7dca98a", "dependencies": { "generic-pool": { @@ -125,26 +125,27 @@ }, "cartodb-redis": { "version": "0.13.0", - "from": "cartodb-redis@~0.13.0", + "from": "cartodb-redis@>=0.13.0 <0.14.0", + "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { "redis-mpool": { "version": "0.1.0", - "from": "redis-mpool@git://github.com/CartoDB/node-redis-mpool.git#0.1.0", + "from": "git://github.com/CartoDB/node-redis-mpool.git#0.1.0", "resolved": "git://github.com/CartoDB/node-redis-mpool.git#47510b8d4525ee24aa2e5328976372274a1d144e", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@~2.1.1", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "redis@~0.12.1", + "from": "redis@>=0.12.1 <0.13.0", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "hiredis@~0.1.17", + "from": "hiredis@>=0.1.17 <0.2.0", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { @@ -154,7 +155,7 @@ }, "nan": { "version": "1.1.2", - "from": "nan@~1.1.0", + "from": "nan@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -165,7 +166,7 @@ }, "debug": { "version": "2.2.0", - "from": "debug@~2.2.0", + "from": "debug@>=2.2.0 <2.3.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "dependencies": { "ms": { @@ -177,27 +178,27 @@ }, "dot": { "version": "1.0.3", - "from": "dot@~1.0.2", + "from": "dot@>=1.0.2 <1.1.0", "resolved": "https://registry.npmjs.org/dot/-/dot-1.0.3.tgz" }, "express": { - "version": "4.13.3", - "from": "express@~4.13.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz", + "version": "4.13.4", + "from": "express@>=4.13.3 <4.14.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.13.4.tgz", "dependencies": { "accepts": { "version": "1.2.13", - "from": "accepts@~1.2.12", + "from": "accepts@>=1.2.12 <1.3.0", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz", "dependencies": { "mime-types": { "version": "2.1.9", - "from": "mime-types@~2.1.8", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { "version": "1.21.0", - "from": "mime-db@~1.21.0", + "from": "mime-db@>=1.21.0 <1.22.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } @@ -215,19 +216,19 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" }, "content-disposition": { - "version": "0.5.0", - "from": "content-disposition@0.5.0", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz" + "version": "0.5.1", + "from": "content-disposition@0.5.1", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.1.tgz" }, "content-type": { "version": "1.0.1", - "from": "content-type@~1.0.1", + "from": "content-type@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.1.tgz" }, "cookie": { - "version": "0.1.3", - "from": "cookie@0.1.3", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.3.tgz" + "version": "0.1.5", + "from": "cookie@0.1.5", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.1.5.tgz" }, "cookie-signature": { "version": "1.0.6", @@ -235,28 +236,28 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" }, "depd": { - "version": "1.0.1", - "from": "depd@~1.0.1", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.0.1.tgz" + "version": "1.1.0", + "from": "depd@>=1.1.0 <1.2.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" }, "escape-html": { - "version": "1.0.2", - "from": "escape-html@1.0.2", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.2.tgz" + "version": "1.0.3", + "from": "escape-html@>=1.0.3 <1.1.0", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" }, "etag": { "version": "1.7.0", - "from": "etag@~1.7.0", + "from": "etag@>=1.7.0 <1.8.0", "resolved": "https://registry.npmjs.org/etag/-/etag-1.7.0.tgz" }, "finalhandler": { - "version": "0.4.0", - "from": "finalhandler@0.4.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.0.tgz", + "version": "0.4.1", + "from": "finalhandler@0.4.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz", "dependencies": { "unpipe": { "version": "1.0.0", - "from": "unpipe@~1.0.0", + "from": "unpipe@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" } } @@ -267,18 +268,18 @@ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.3.0.tgz" }, "merge-descriptors": { - "version": "1.0.0", - "from": "merge-descriptors@1.0.0", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.0.tgz" + "version": "1.0.1", + "from": "merge-descriptors@1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" }, "methods": { "version": "1.1.2", - "from": "methods@~1.1.1", + "from": "methods@>=1.1.2 <1.2.0", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" }, "on-finished": { "version": "2.3.0", - "from": "on-finished@~2.3.0", + "from": "on-finished@>=2.3.0 <2.4.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "dependencies": { "ee-first": { @@ -290,7 +291,7 @@ }, "parseurl": { "version": "1.3.1", - "from": "parseurl@~1.3.0", + "from": "parseurl@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz" }, "path-to-regexp": { @@ -300,12 +301,12 @@ }, "proxy-addr": { "version": "1.0.10", - "from": "proxy-addr@~1.0.8", + "from": "proxy-addr@>=1.0.10 <1.1.0", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz", "dependencies": { "forwarded": { "version": "0.1.0", - "from": "forwarded@~0.1.0", + "from": "forwarded@>=0.1.0 <0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz" }, "ipaddr.js": { @@ -322,27 +323,27 @@ }, "range-parser": { "version": "1.0.3", - "from": "range-parser@~1.0.2", + "from": "range-parser@>=1.0.3 <1.1.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz" }, "send": { - "version": "0.13.0", - "from": "send@0.13.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.0.tgz", + "version": "0.13.1", + "from": "send@0.13.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", "dependencies": { "destroy": { - "version": "1.0.3", - "from": "destroy@1.0.3", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz" + "version": "1.0.4", + "from": "destroy@>=1.0.4 <1.1.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" }, "http-errors": { "version": "1.3.1", - "from": "http-errors@~1.3.1", + "from": "http-errors@>=1.3.1 <1.4.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", "dependencies": { "inherits": { "version": "2.0.1", - "from": "inherits@~2.0.1", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -359,71 +360,20 @@ }, "statuses": { "version": "1.2.1", - "from": "statuses@~1.2.1", + "from": "statuses@>=1.2.1 <1.3.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" } } }, "serve-static": { "version": "1.10.2", - "from": "serve-static@~1.10.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz", - "dependencies": { - "escape-html": { - "version": "1.0.3", - "from": "escape-html@~1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - }, - "send": { - "version": "0.13.1", - "from": "send@0.13.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.13.1.tgz", - "dependencies": { - "depd": { - "version": "1.1.0", - "from": "depd@~1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz" - }, - "destroy": { - "version": "1.0.4", - "from": "destroy@~1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz" - }, - "http-errors": { - "version": "1.3.1", - "from": "http-errors@~1.3.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.3.1.tgz", - "dependencies": { - "inherits": { - "version": "2.0.1", - "from": "inherits@~2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" - } - } - }, - "mime": { - "version": "1.3.4", - "from": "mime@1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz" - }, - "ms": { - "version": "0.7.1", - "from": "ms@0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz" - }, - "statuses": { - "version": "1.2.1", - "from": "statuses@~1.2.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.2.1.tgz" - } - } - } - } + "from": "serve-static@>=1.10.2 <1.11.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.10.2.tgz" }, "type-is": { - "version": "1.6.10", - "from": "type-is@~1.6.6", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.10.tgz", + "version": "1.6.11", + "from": "type-is@>=1.6.6 <1.7.0", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.11.tgz", "dependencies": { "media-typer": { "version": "0.3.0", @@ -432,12 +382,12 @@ }, "mime-types": { "version": "2.1.9", - "from": "mime-types@~2.1.8", + "from": "mime-types@>=2.1.9 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { "version": "1.21.0", - "from": "mime-db@~1.21.0", + "from": "mime-db@>=1.21.0 <1.22.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } @@ -451,14 +401,15 @@ }, "vary": { "version": "1.0.1", - "from": "vary@~1.0.1", + "from": "vary@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz" } } }, "fastly-purge": { "version": "1.0.1", - "from": "fastly-purge@~1.0.1" + "from": "fastly-purge@>=1.0.1 <1.1.0", + "resolved": "https://registry.npmjs.org/fastly-purge/-/fastly-purge-1.0.1.tgz" }, "log4js": { "version": "0.6.25", @@ -467,17 +418,17 @@ "dependencies": { "async": { "version": "0.2.10", - "from": "async@~0.2.0", + "from": "async@>=0.2.0 <0.3.0", "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.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.2", - "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.2.tgz" }, "isarray": { @@ -487,19 +438,19 @@ }, "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 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "semver": { "version": "4.3.6", - "from": "semver@~4.3.3", + "from": "semver@>=4.3.3 <4.4.0", "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz" }, "underscore": { @@ -516,36 +467,37 @@ }, "lzma": { "version": "1.3.7", - "from": "lzma@~1.3.7", + "from": "lzma@>=1.3.7 <1.4.0", "resolved": "https://registry.npmjs.org/lzma/-/lzma-1.3.7.tgz" }, "node-statsd": { "version": "0.0.7", - "from": "node-statsd@~0.0.7", + "from": "node-statsd@>=0.0.7 <0.1.0", "resolved": "https://registry.npmjs.org/node-statsd/-/node-statsd-0.0.7.tgz" }, "queue-async": { "version": "1.0.7", - "from": "queue-async@~1.0.7", + "from": "queue-async@>=1.0.7 <1.1.0", "resolved": "https://registry.npmjs.org/queue-async/-/queue-async-1.0.7.tgz" }, "redis-mpool": { "version": "0.4.0", - "from": "redis-mpool@~0.4.0", + "from": "redis-mpool@>=0.4.0 <0.5.0", + "resolved": "https://registry.npmjs.org/redis-mpool/-/redis-mpool-0.4.0.tgz", "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@~2.1.1", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "redis": { "version": "0.12.1", - "from": "redis@~0.12.1", + "from": "redis@>=0.12.1 <0.13.0", "resolved": "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz" }, "hiredis": { "version": "0.1.17", - "from": "hiredis@~0.1.17", + "from": "hiredis@>=0.1.17 <0.2.0", "resolved": "https://registry.npmjs.org/hiredis/-/hiredis-0.1.17.tgz", "dependencies": { "bindings": { @@ -555,7 +507,7 @@ }, "nan": { "version": "1.1.2", - "from": "nan@~1.1.0", + "from": "nan@>=1.1.0 <1.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" } } @@ -564,27 +516,27 @@ }, "request": { "version": "2.62.0", - "from": "request@~2.62.0", + "from": "request@>=2.62.0 <2.63.0", "resolved": "https://registry.npmjs.org/request/-/request-2.62.0.tgz", "dependencies": { "bl": { - "version": "1.0.1", - "from": "bl@~1.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.1.tgz", + "version": "1.0.2", + "from": "bl@>=1.0.0 <1.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.2.tgz", "dependencies": { "readable-stream": { "version": "2.0.5", - "from": "readable-stream@~2.0.5", + "from": "readable-stream@>=2.0.5 <2.1.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.5.tgz", "dependencies": { "core-util-is": { "version": "1.0.2", - "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.2.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" }, "isarray": { @@ -594,17 +546,17 @@ }, "process-nextick-args": { "version": "1.0.6", - "from": "process-nextick-args@~1.0.6", + "from": "process-nextick-args@>=1.0.6 <1.1.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.6.tgz" }, "string_decoder": { "version": "0.10.31", - "from": "string_decoder@~0.10.x", + "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", + "from": "util-deprecate@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" } } @@ -613,61 +565,61 @@ }, "caseless": { "version": "0.11.0", - "from": "caseless@~0.11.0", + "from": "caseless@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" }, "extend": { "version": "3.0.0", - "from": "extend@~3.0.0", + "from": "extend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" }, "forever-agent": { "version": "0.6.1", - "from": "forever-agent@~0.6.0", + "from": "forever-agent@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" }, "form-data": { "version": "1.0.0-rc3", - "from": "form-data@~1.0.0-rc1", + "from": "form-data@>=1.0.0-rc1 <1.1.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", "dependencies": { "async": { "version": "1.5.2", - "from": "async@^1.4.0", + "from": "async@>=1.4.0 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" } } }, "json-stringify-safe": { "version": "5.0.1", - "from": "json-stringify-safe@~5.0.0", + "from": "json-stringify-safe@>=5.0.0 <5.1.0", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" }, "mime-types": { "version": "2.1.9", - "from": "mime-types@~2.1.2", + "from": "mime-types@>=2.1.2 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { "version": "1.21.0", - "from": "mime-db@~1.21.0", + "from": "mime-db@>=1.21.0 <1.22.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.21.0.tgz" } } }, "node-uuid": { "version": "1.4.7", - "from": "node-uuid@~1.4.0", + "from": "node-uuid@>=1.4.0 <1.5.0", "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" }, "qs": { "version": "5.1.0", - "from": "qs@~5.1.0", + "from": "qs@>=5.1.0 <5.2.0", "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" }, "tunnel-agent": { "version": "0.4.2", - "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.2.tgz" }, "tough-cookie": { @@ -677,12 +629,12 @@ }, "http-signature": { "version": "0.11.0", - "from": "http-signature@~0.11.0", + "from": "http-signature@>=0.11.0 <0.12.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "dependencies": { "assert-plus": { "version": "0.1.5", - "from": "assert-plus@^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": { @@ -698,150 +650,150 @@ } }, "oauth-sign": { - "version": "0.8.0", - "from": "oauth-sign@~0.8.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" + "version": "0.8.1", + "from": "oauth-sign@>=0.8.0 <0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.1.tgz" }, "hawk": { - "version": "3.1.2", - "from": "hawk@~3.1.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.2.tgz", + "version": "3.1.3", + "from": "hawk@>=3.1.0 <3.2.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", "dependencies": { "hoek": { "version": "2.16.3", - "from": "hoek@2.x.x", + "from": "hoek@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { "version": "2.10.1", - "from": "boom@2.x.x", + "from": "boom@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz" }, "cryptiles": { "version": "2.0.5", - "from": "cryptiles@2.x.x", + "from": "cryptiles@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { "version": "1.0.9", - "from": "sntp@1.x.x", + "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.5", - "from": "stringstream@~0.0.4", + "from": "stringstream@>=0.0.4 <0.1.0", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz" }, "combined-stream": { "version": "1.0.5", - "from": "combined-stream@~1.0.1", + "from": "combined-stream@>=1.0.1 <1.1.0", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", "dependencies": { "delayed-stream": { "version": "1.0.0", - "from": "delayed-stream@~1.0.0", + "from": "delayed-stream@>=1.0.0 <1.1.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" } } }, "isstream": { "version": "0.1.2", - "from": "isstream@~0.1.1", + "from": "isstream@>=0.1.1 <0.2.0", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" }, "har-validator": { "version": "1.8.0", - "from": "har-validator@^1.6.1", + "from": "har-validator@>=1.6.1 <2.0.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", "dependencies": { "bluebird": { "version": "2.10.2", - "from": "bluebird@^2.9.30", + "from": "bluebird@>=2.9.30 <3.0.0", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" }, "chalk": { "version": "1.1.1", - "from": "chalk@^1.0.0", + "from": "chalk@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", "dependencies": { "ansi-styles": { "version": "2.1.0", - "from": "ansi-styles@^2.1.0", + "from": "ansi-styles@>=2.1.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" }, "escape-string-regexp": { "version": "1.0.4", - "from": "escape-string-regexp@^1.0.2", + "from": "escape-string-regexp@>=1.0.2 <2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.4.tgz" }, "has-ansi": { "version": "2.0.0", - "from": "has-ansi@^2.0.0", + "from": "has-ansi@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@^2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "strip-ansi": { "version": "3.0.0", - "from": "strip-ansi@^3.0.0", + "from": "strip-ansi@>=3.0.0 <4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", "dependencies": { "ansi-regex": { "version": "2.0.0", - "from": "ansi-regex@^2.0.0", + "from": "ansi-regex@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" } } }, "supports-color": { "version": "2.0.0", - "from": "supports-color@^2.0.0", + "from": "supports-color@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" } } }, "commander": { "version": "2.9.0", - "from": "commander@^2.8.1", + "from": "commander@>=2.8.1 <3.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "dependencies": { "graceful-readlink": { "version": "1.0.1", - "from": "graceful-readlink@>= 1.0.0", + "from": "graceful-readlink@>=1.0.0", "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" } } }, "is-my-json-valid": { "version": "2.12.4", - "from": "is-my-json-valid@^2.12.0", + "from": "is-my-json-valid@>=2.12.0 <3.0.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.4.tgz", "dependencies": { "generate-function": { "version": "2.0.0", - "from": "generate-function@^2.0.0", + "from": "generate-function@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" }, "generate-object-property": { "version": "1.2.0", - "from": "generate-object-property@^1.1.0", + "from": "generate-object-property@>=1.1.0 <2.0.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "dependencies": { "is-property": { "version": "1.0.2", - "from": "is-property@^1.0.0", + "from": "is-property@>=1.0.0 <2.0.0", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" } } @@ -853,7 +805,7 @@ }, "xtend": { "version": "4.0.1", - "from": "xtend@^4.0.0", + "from": "xtend@>=4.0.0 <5.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz" } } @@ -864,23 +816,23 @@ }, "step": { "version": "0.0.6", - "from": "step@~0.0.6", + "from": "step@>=0.0.6 <0.1.0", "resolved": "https://registry.npmjs.org/step/-/step-0.0.6.tgz" }, "step-profiler": { "version": "0.2.1", - "from": "step-profiler@~0.2.1", + "from": "step-profiler@>=0.2.1 <0.3.0", "resolved": "https://registry.npmjs.org/step-profiler/-/step-profiler-0.2.1.tgz" }, "underscore": { "version": "1.6.0", - "from": "underscore@~1.6.0", + "from": "underscore@>=1.6.0 <1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.6.2", - "from": "https://github.com/CartoDB/Windshaft/tarball/geojson-renderer", - "resolved": "https://github.com/CartoDB/Windshaft/tarball/geojson-renderer", + "version": "1.8.1", + "from": "windshaft@1.8.1", + "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.8.1.tgz", "dependencies": { "mapnik": { "version": "1.4.15-cdb6", @@ -889,7 +841,7 @@ "dependencies": { "nan": { "version": "1.2.0", - "from": "nan@~1.2.0", + "from": "nan@>=1.2.0 <1.3.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.2.0.tgz" }, "mapnik-vector-tile": { @@ -1268,8 +1220,9 @@ } }, "grainstore": { - "version": "1.1.0", - "from": "grainstore@~1.1.0", + "version": "1.1.1", + "from": "grainstore@1.1.1", + "resolved": "https://registry.npmjs.org/grainstore/-/grainstore-1.1.1.tgz", "dependencies": { "carto": { "version": "0.9.5-cdb2", @@ -1278,39 +1231,39 @@ "dependencies": { "underscore": { "version": "1.4.4", - "from": "underscore@~1.4.3", + "from": "underscore@>=1.4.3 <1.5.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz" }, "mapnik-reference": { "version": "5.0.9", - "from": "mapnik-reference@~5.0.7", + "from": "mapnik-reference@>=5.0.7 <5.1.0", "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-5.0.9.tgz" }, "xml2js": { "version": "0.2.8", - "from": "xml2js@~0.2.4", + "from": "xml2js@>=0.2.4 <0.3.0", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz", "dependencies": { "sax": { "version": "0.5.8", - "from": "sax@0.5.x", + "from": "sax@>=0.5.0 <0.6.0", "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz" } } }, "optimist": { "version": "0.6.1", - "from": "optimist@~0.6.0", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@~0.0.2", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@~0.0.1", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -1318,143 +1271,23 @@ } }, "millstone": { - "version": "0.6.14", - "from": "millstone@0.6.14", - "resolved": "https://registry.npmjs.org/millstone/-/millstone-0.6.14.tgz", + "version": "0.6.16", + "from": "millstone@0.6.16", + "resolved": "https://registry.npmjs.org/millstone/-/millstone-0.6.16.tgz", "dependencies": { "generic-pool": { - "version": "2.0.4", - "from": "generic-pool@~2.0.3", - "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.0.4.tgz" - }, - "request": { - "version": "2.34.0", - "from": "request@~2.34.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.34.0.tgz", - "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" - }, - "json-stringify-safe": { - "version": "5.0.1", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "node-uuid": { - "version": "1.4.7", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.7.tgz" - }, - "tough-cookie": { - "version": "2.2.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.2.1.tgz" - }, - "form-data": { - "version": "0.1.4", - "from": "form-data@~0.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.7", - "from": "combined-stream@~0.0.4", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", - "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" - } - } - }, - "async": { - "version": "0.9.2", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz" - } - } - }, - "tunnel-agent": { - "version": "0.3.0", - "from": "tunnel-agent@~0.3.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.3.0.tgz" - }, - "http-signature": { - "version": "0.10.1", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz", - "dependencies": { - "assert-plus": { - "version": "0.1.5", - "from": "assert-plus@^0.1.5", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" - }, - "asn1": { - "version": "0.1.11", - "from": "asn1@0.1.11", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz" - }, - "ctype": { - "version": "0.5.3", - "from": "ctype@0.5.3", - "resolved": "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz" - } - } - }, - "oauth-sign": { - "version": "0.3.0", - "from": "oauth-sign@~0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" - }, - "hawk": { - "version": "1.0.0", - "from": "hawk@~1.0.0", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.0.0.tgz", - "dependencies": { - "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" - }, - "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" - }, - "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" - }, - "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" - } - } - }, - "aws-sign2": { - "version": "0.5.0", - "from": "aws-sign2@~0.5.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz" - } - } + "version": "2.1.1", + "from": "generic-pool@>=2.1.1 <2.2.0", + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "srs": { "version": "0.4.9", - "from": "srs@~0.4.1", + "from": "srs@>=0.4.6 <0.5.0", "resolved": "https://registry.npmjs.org/srs/-/srs-0.4.9.tgz", "dependencies": { "nan": { "version": "1.8.4", - "from": "nan@~1.8.4", + "from": "nan@>=1.8.4 <1.9.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.8.4.tgz" }, "node-pre-gyp": { @@ -2181,12 +2014,12 @@ }, "zipfile": { "version": "0.5.9", - "from": "zipfile@~0.5.2", + "from": "zipfile@>=0.5.5 <0.6.0", "resolved": "https://registry.npmjs.org/zipfile/-/zipfile-0.5.9.tgz", "dependencies": { "nan": { "version": "2.1.0", - "from": "nan@~2.1.0", + "from": "nan@>=2.1.0 <2.2.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { @@ -2970,129 +2803,288 @@ } }, "sqlite3": { - "version": "2.2.7", - "from": "sqlite3@2.x", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-2.2.7.tgz", + "version": "3.1.1", + "from": "sqlite3@>=2.0.0 <3.0.0||>=3.0.0 <4.0.0", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-3.1.1.tgz", "dependencies": { "nan": { - "version": "1.1.2", - "from": "nan@1.1.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-1.1.2.tgz" + "version": "2.1.0", + "from": "nan@>=2.1.0 <2.2.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.1.0.tgz" }, "node-pre-gyp": { - "version": "0.5.22", - "from": "node-pre-gyp@0.5.22", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.5.22.tgz", + "version": "0.6.14", + "from": "node-pre-gyp@~0.6.14", "dependencies": { "nopt": { - "version": "3.0.1", + "version": "3.0.4", "from": "nopt@~3.0.1", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.4.tgz", "dependencies": { "abbrev": { - "version": "1.0.5", + "version": "1.0.7", "from": "abbrev@1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.5.tgz" + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.7.tgz" } } }, "npmlog": { - "version": "0.1.1", - "from": "npmlog@~0.1.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-0.1.1.tgz", + "version": "1.2.1", + "from": "npmlog@~1.2.0", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", "dependencies": { "ansi": { "version": "0.3.0", "from": "ansi@~0.3.0", "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.0.tgz" + }, + "are-we-there-yet": { + "version": "1.0.4", + "from": "are-we-there-yet@~1.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.4.tgz", + "dependencies": { + "delegates": { + "version": "0.1.0", + "from": "delegates@^0.1.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-0.1.0.tgz" + }, + "readable-stream": { + "version": "1.1.13", + "from": "readable-stream@^1.1.13", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.13.tgz", + "dependencies": { + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + } + } + } + } + }, + "gauge": { + "version": "1.2.2", + "from": "gauge@~1.2.0", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.2.tgz", + "dependencies": { + "has-unicode": { + "version": "1.0.0", + "from": "has-unicode@^1.0.0", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-1.0.0.tgz" + }, + "lodash.pad": { + "version": "3.1.1", + "from": "lodash.pad@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padleft": { + "version": "3.1.1", + "from": "lodash.padleft@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padleft/-/lodash.padleft-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + }, + "lodash.padright": { + "version": "3.1.1", + "from": "lodash.padright@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.padright/-/lodash.padright-3.1.1.tgz", + "dependencies": { + "lodash._basetostring": { + "version": "3.0.1", + "from": "lodash._basetostring@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz" + }, + "lodash._createpadding": { + "version": "3.6.1", + "from": "lodash._createpadding@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createpadding/-/lodash._createpadding-3.6.1.tgz", + "dependencies": { + "lodash.repeat": { + "version": "3.0.1", + "from": "lodash.repeat@^3.0.0", + "resolved": "https://registry.npmjs.org/lodash.repeat/-/lodash.repeat-3.0.1.tgz" + } + } + } + } + } + } } } }, "request": { - "version": "2.39.0", + "version": "2.64.0", "from": "request@2.x", - "resolved": "https://registry.npmjs.org/request/-/request-2.39.0.tgz", + "resolved": "https://registry.npmjs.org/request/-/request-2.64.0.tgz", "dependencies": { - "qs": { - "version": "0.6.6", - "from": "qs@~0.6.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-0.6.6.tgz" - }, - "json-stringify-safe": { - "version": "5.0.0", - "from": "json-stringify-safe@~5.0.0", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.0.tgz" - }, - "mime-types": { - "version": "1.0.2", - "from": "mime-types@~1.0.1", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz" - }, - "forever-agent": { - "version": "0.5.2", - "from": "forever-agent@~0.5.0", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz" - }, - "node-uuid": { - "version": "1.4.1", - "from": "node-uuid@~1.4.0", - "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.1.tgz" - }, - "tough-cookie": { - "version": "0.12.1", - "from": "tough-cookie@>=0.12.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-0.12.1.tgz", + "bl": { + "version": "1.0.0", + "from": "bl@~1.0.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.0.0.tgz", "dependencies": { - "punycode": { - "version": "1.3.0", - "from": "punycode@>=0.2.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.0.tgz" - } - } - }, - "form-data": { - "version": "0.1.4", - "from": "form-data@~0.1.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz", - "dependencies": { - "combined-stream": { - "version": "0.0.5", - "from": "combined-stream@~0.0.4", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.5.tgz", + "readable-stream": { + "version": "2.0.2", + "from": "readable-stream@~2.0.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.2.tgz", "dependencies": { - "delayed-stream": { - "version": "0.0.5", - "from": "delayed-stream@0.0.5", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz" + "core-util-is": { + "version": "1.0.1", + "from": "core-util-is@~1.0.0", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.1.tgz" + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "isarray": { + "version": "0.0.1", + "from": "isarray@0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + }, + "process-nextick-args": { + "version": "1.0.3", + "from": "process-nextick-args@~1.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.3.tgz" + }, + "string_decoder": { + "version": "0.10.31", + "from": "string_decoder@~0.10.x", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + }, + "util-deprecate": { + "version": "1.0.1", + "from": "util-deprecate@~1.0.1", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.1.tgz" } } - }, - "mime": { - "version": "1.2.11", - "from": "mime@~1.2.11", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" - }, - "async": { - "version": "0.9.0", - "from": "async@~0.9.0", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.0.tgz" } } }, + "caseless": { + "version": "0.11.0", + "from": "caseless@~0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz" + }, + "extend": { + "version": "3.0.0", + "from": "extend@~3.0.0", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz" + }, + "forever-agent": { + "version": "0.6.1", + "from": "forever-agent@~0.6.0", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" + }, + "form-data": { + "version": "1.0.0-rc3", + "from": "form-data@~1.0.0-rc1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.0-rc3.tgz", + "dependencies": { + "async": { + "version": "1.4.2", + "from": "async@^1.4.0", + "resolved": "https://registry.npmjs.org/async/-/async-1.4.2.tgz" + } + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "from": "json-stringify-safe@~5.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" + }, + "mime-types": { + "version": "2.1.7", + "from": "mime-types@~2.1.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.7.tgz", + "dependencies": { + "mime-db": { + "version": "1.19.0", + "from": "mime-db@~1.19.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.19.0.tgz" + } + } + }, + "node-uuid": { + "version": "1.4.3", + "from": "node-uuid@~1.4.0", + "resolved": "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.3.tgz" + }, + "qs": { + "version": "5.1.0", + "from": "qs@~5.1.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz" + }, "tunnel-agent": { - "version": "0.4.0", + "version": "0.4.1", "from": "tunnel-agent@~0.4.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.0.tgz" + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.1.tgz" + }, + "tough-cookie": { + "version": "2.1.0", + "from": "tough-cookie@>=0.12.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.1.0.tgz" }, "http-signature": { - "version": "0.10.0", - "from": "http-signature@~0.10.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.10.0.tgz", + "version": "0.11.0", + "from": "http-signature@~0.11.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-0.11.0.tgz", "dependencies": { "assert-plus": { - "version": "0.1.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", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz" }, "asn1": { "version": "0.1.11", @@ -3100,41 +3092,41 @@ "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.3.0", - "from": "oauth-sign@~0.3.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.3.0.tgz" + "version": "0.8.0", + "from": "oauth-sign@~0.8.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.0.tgz" }, "hawk": { - "version": "1.1.1", - "from": "hawk@1.1.1", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz", + "version": "3.1.0", + "from": "hawk@~3.1.0", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.0.tgz", "dependencies": { "hoek": { - "version": "0.9.1", - "from": "hoek@0.9.x", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz" + "version": "2.16.3", + "from": "hoek@2.x.x", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz" }, "boom": { - "version": "0.4.2", - "from": "boom@0.4.x", - "resolved": "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz" + "version": "2.9.0", + "from": "boom@^2.8.x", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.9.0.tgz" }, "cryptiles": { - "version": "0.2.2", - "from": "cryptiles@0.2.x", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz" + "version": "2.0.5", + "from": "cryptiles@2.x.x", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz" }, "sntp": { - "version": "0.2.4", - "from": "sntp@0.2.x", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz" + "version": "1.0.9", + "from": "sntp@1.x.x", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz" } } }, @@ -3147,39 +3139,160 @@ "version": "0.0.4", "from": "stringstream@~0.0.4", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.4.tgz" + }, + "combined-stream": { + "version": "1.0.5", + "from": "combined-stream@~1.0.1", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "dependencies": { + "delayed-stream": { + "version": "1.0.0", + "from": "delayed-stream@~1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + } + } + }, + "isstream": { + "version": "0.1.2", + "from": "isstream@~0.1.1", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" + }, + "har-validator": { + "version": "1.8.0", + "from": "har-validator@^1.6.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-1.8.0.tgz", + "dependencies": { + "bluebird": { + "version": "2.10.2", + "from": "bluebird@^2.9.30", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.10.2.tgz" + }, + "chalk": { + "version": "1.1.1", + "from": "chalk@^1.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.1.tgz", + "dependencies": { + "ansi-styles": { + "version": "2.1.0", + "from": "ansi-styles@^2.1.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.1.0.tgz" + }, + "escape-string-regexp": { + "version": "1.0.3", + "from": "escape-string-regexp@^1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.3.tgz" + }, + "has-ansi": { + "version": "2.0.0", + "from": "has-ansi@^2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "strip-ansi": { + "version": "3.0.0", + "from": "strip-ansi@^3.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.0.tgz", + "dependencies": { + "ansi-regex": { + "version": "2.0.0", + "from": "ansi-regex@^2.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.0.0.tgz" + } + } + }, + "supports-color": { + "version": "2.0.0", + "from": "supports-color@^2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" + } + } + }, + "commander": { + "version": "2.8.1", + "from": "commander@^2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "dependencies": { + "graceful-readlink": { + "version": "1.0.1", + "from": "graceful-readlink@>= 1.0.0", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz" + } + } + }, + "is-my-json-valid": { + "version": "2.12.2", + "from": "is-my-json-valid@^2.12.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.12.2.tgz", + "dependencies": { + "generate-function": { + "version": "2.0.0", + "from": "generate-function@^2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz" + }, + "generate-object-property": { + "version": "1.2.0", + "from": "generate-object-property@^1.1.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "dependencies": { + "is-property": { + "version": "1.0.2", + "from": "is-property@^1.0.0", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + } + } + }, + "jsonpointer": { + "version": "2.0.0", + "from": "jsonpointer@2.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-2.0.0.tgz" + }, + "xtend": { + "version": "4.0.0", + "from": "xtend@^4.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.0.tgz" + } + } + } + } } } }, "semver": { - "version": "3.0.1", - "from": "semver@~3.0.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-3.0.1.tgz" + "version": "5.0.3", + "from": "semver@~5.0.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" }, "tar": { - "version": "1.0.0", - "from": "tar@~1.0.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-1.0.0.tgz", + "version": "2.2.1", + "from": "tar@~2.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "dependencies": { "block-stream": { - "version": "0.0.7", + "version": "0.0.8", "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "fstream": { - "version": "1.0.1", - "from": "fstream@^1.0.0", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.1.tgz", + "version": "1.0.8", + "from": "fstream@^1.0.2", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.8.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + "version": "4.1.2", + "from": "graceful-fs@^4.1.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.2.tgz" } } }, "inherits": { "version": "2.0.1", - "from": "inherits@~2.0.1", + "from": "inherits@2", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -3204,19 +3317,24 @@ "from": "debug@~0.7.2", "resolved": "https://registry.npmjs.org/debug/-/debug-0.7.4.tgz" }, + "rimraf": { + "version": "2.2.8", + "from": "rimraf@~2.2.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + }, "fstream": { "version": "0.1.31", "from": "fstream@~0.1.22", "resolved": "https://registry.npmjs.org/fstream/-/fstream-0.1.31.tgz", "dependencies": { "graceful-fs": { - "version": "3.0.2", - "from": "graceful-fs@3", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.2.tgz" + "version": "3.0.8", + "from": "graceful-fs@~3.0.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.8.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -3227,9 +3345,9 @@ "resolved": "https://registry.npmjs.org/tar/-/tar-0.1.20.tgz", "dependencies": { "block-stream": { - "version": "0.0.7", + "version": "0.0.8", "from": "block-stream@*", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.7.tgz" + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.8.tgz" }, "inherits": { "version": "2.0.1", @@ -3249,28 +3367,28 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", "dependencies": { "lru-cache": { - "version": "2.5.0", + "version": "2.7.0", "from": "lru-cache@2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz" + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.0.tgz" }, "sigmund": { - "version": "1.0.0", + "version": "1.0.1", "from": "sigmund@~1.0.0", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.0.tgz" + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz" } } }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } }, "readable-stream": { - "version": "1.0.27-1", + "version": "1.0.33", "from": "readable-stream@~1.0.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.27-1.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.33.tgz", "dependencies": { "core-util-is": { "version": "1.0.1", @@ -3283,13 +3401,13 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" }, "string_decoder": { - "version": "0.10.25-1", + "version": "0.10.31", "from": "string_decoder@~0.10.x", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.25-1.tgz" + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" }, "inherits": { "version": "2.0.1", - "from": "inherits@2", + "from": "inherits@~2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -3302,9 +3420,9 @@ } }, "mkdirp": { - "version": "0.5.0", + "version": "0.5.1", "from": "mkdirp@~0.5.0", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.0.tgz", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "dependencies": { "minimist": { "version": "0.0.8", @@ -3314,14 +3432,14 @@ } }, "rc": { - "version": "0.5.0", - "from": "rc@~0.5.0", - "resolved": "https://registry.npmjs.org/rc/-/rc-0.5.0.tgz", + "version": "1.1.2", + "from": "rc@~1.1.0", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.2.tgz", "dependencies": { "minimist": { - "version": "0.0.10", - "from": "minimist@~0.0.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" + "version": "1.2.0", + "from": "minimist@^1.1.2", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz" }, "deep-extend": { "version": "0.2.11", @@ -3334,49 +3452,118 @@ "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.4", + "from": "ini@~1.3.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz" } } }, "rimraf": { - "version": "2.2.8", - "from": "rimraf@~2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz" + "version": "2.4.3", + "from": "rimraf@~2.4.0", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.3.tgz", + "dependencies": { + "glob": { + "version": "5.0.15", + "from": "glob@^5.0.14", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "dependencies": { + "inflight": { + "version": "1.0.4", + "from": "inflight@^1.0.4", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.4.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "inherits": { + "version": "2.0.1", + "from": "inherits@~2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" + }, + "minimatch": { + "version": "3.0.0", + "from": "minimatch@2 || 3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.0.tgz", + "dependencies": { + "brace-expansion": { + "version": "1.1.1", + "from": "brace-expansion@^1.0.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.1.tgz", + "dependencies": { + "balanced-match": { + "version": "0.2.0", + "from": "balanced-match@^0.2.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.2.0.tgz" + }, + "concat-map": { + "version": "0.0.1", + "from": "concat-map@0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + } + } + } + } + }, + "once": { + "version": "1.3.2", + "from": "once@^1.3.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.2.tgz", + "dependencies": { + "wrappy": { + "version": "1.0.1", + "from": "wrappy@1", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.1.tgz" + } + } + }, + "path-is-absolute": { + "version": "1.0.0", + "from": "path-is-absolute@^1.0.0", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.0.tgz" + } + } + } + } } } - }, - "set-immediate": { - "version": "0.1.1", - "from": "set-immediate@0.1.1", - "resolved": "https://registry.npmjs.org/set-immediate/-/set-immediate-0.1.1.tgz" } } }, "mime": { "version": "1.2.11", - "from": "mime@~1.2.9", + "from": "mime@>=1.2.11 <1.3.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" }, "mkdirp": { - "version": "0.3.5", - "from": "mkdirp@~0.3.3", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz" + "version": "0.5.1", + "from": "mkdirp@>=0.5.0 <0.6.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "dependencies": { + "minimist": { + "version": "0.0.8", + "from": "minimist@0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz" + } + } }, "optimist": { "version": "0.6.1", - "from": "optimist@~0.6.0", + "from": "optimist@>=0.6.1 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@~0.0.2", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@~0.0.1", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -3387,22 +3574,22 @@ }, "tilelive": { "version": "4.5.3", - "from": "tilelive@~4.5.3", + "from": "tilelive@>=4.5.3 <4.6.0", "resolved": "https://registry.npmjs.org/tilelive/-/tilelive-4.5.3.tgz", "dependencies": { "optimist": { "version": "0.6.1", - "from": "optimist@~0.6.0", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@~0.0.2", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@~0.0.1", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -3416,12 +3603,12 @@ "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@~2.1.1", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "mime": { "version": "1.2.11", - "from": "mime@~1.2.9", + "from": "mime@>=1.2.11 <1.3.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz" } } @@ -3438,12 +3625,12 @@ "dependencies": { "generic-pool": { "version": "2.1.1", - "from": "generic-pool@~2.1.1", + "from": "generic-pool@>=2.1.1 <2.2.0", "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-2.1.1.tgz" }, "xtend": { "version": "3.0.0", - "from": "xtend@~3.0.0", + "from": "xtend@>=3.0.0 <3.1.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz" } } @@ -3457,14 +3644,14 @@ "dependencies": { "nan": { "version": "1.9.0", - "from": "nan@^1.8.4", + "from": "nan@>=1.8.4 <2.0.0", "resolved": "https://registry.npmjs.org/nan/-/nan-1.9.0.tgz" } } }, "semver": { "version": "5.0.3", - "from": "semver@~5.0.3", + "from": "semver@>=5.0.3 <5.1.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz" }, "carto": { @@ -3474,22 +3661,22 @@ "dependencies": { "mapnik-reference": { "version": "6.0.5", - "from": "mapnik-reference@~6.0.2", + "from": "mapnik-reference@>=6.0.2 <6.1.0", "resolved": "https://registry.npmjs.org/mapnik-reference/-/mapnik-reference-6.0.5.tgz" }, "optimist": { "version": "0.6.1", - "from": "optimist@~0.6.0", + "from": "optimist@>=0.6.0 <0.7.0", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "dependencies": { "wordwrap": { "version": "0.0.3", - "from": "wordwrap@~0.0.2", + "from": "wordwrap@>=0.0.2 <0.1.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz" }, "minimist": { "version": "0.0.10", - "from": "minimist@~0.0.1", + "from": "minimist@>=0.0.1 <0.1.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz" } } @@ -3498,11 +3685,12 @@ }, "cartodb-psql": { "version": "0.6.1", - "from": "cartodb-psql@~0.6.1", + "from": "cartodb-psql@>=0.6.1 <0.7.0", + "resolved": "https://registry.npmjs.org/cartodb-psql/-/cartodb-psql-0.6.1.tgz", "dependencies": { "pg": { "version": "2.6.2-cdb3", - "from": "pg@git://github.com/CartoDB/node-postgres.git#2.6.2-cdb3", + "from": "git://github.com/CartoDB/node-postgres.git#2.6.2-cdb3", "resolved": "git://github.com/CartoDB/node-postgres.git#069c5296d1a093077feff21719641bb9e71fc50e", "dependencies": { "generic-pool": { @@ -3521,7 +3709,8 @@ }, "torque.js": { "version": "2.11.4", - "from": "torque.js@~2.11.0" + "from": "torque.js@>=2.11.0 <2.12.0", + "resolved": "https://registry.npmjs.org/torque.js/-/torque.js-2.11.4.tgz" }, "abaculus": { "version": "1.1.0-cdb4", From edbdd95f79de67d7ac2ca35f0c8b6b38255ba3d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 17:09:30 +0100 Subject: [PATCH 17/32] Upgrades npm version to 2.14.16 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d97133cd..4e074309 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,6 @@ }, "engines": { "node": ">=0.8 <0.11", - "npm": ">=1.2.1" + "npm": ">=2.14.16" } } From 336aaa38406c411e496f898cc2390855b1a4b26e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 17:24:02 +0100 Subject: [PATCH 18/32] Updated travis config in order to use npm@2 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 671832f0..8492e564 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,7 @@ addons: - libgif-dev before_install: + - npm install -g npm@2 - createdb template_postgis - psql -c "CREATE EXTENSION postgis" template_postgis From d005521aa498ff0b04ec92d14da7be9bee353ebd Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Thu, 4 Feb 2016 19:06:54 +0100 Subject: [PATCH 19/32] Upgrade windshaft version --- npm-shrinkwrap.json | 15 ++++++++++----- package.json | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index bdb61b3b..37d697fa 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -128,6 +128,11 @@ "from": "cartodb-redis@>=0.13.0 <0.14.0", "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { + "strftime": { + "version": "0.8.4", + "from": "strftime@>=0.8.2 <0.9.0", + "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.8.4.tgz" + }, "redis-mpool": { "version": "0.1.0", "from": "git://github.com/CartoDB/node-redis-mpool.git#0.1.0", @@ -382,7 +387,7 @@ }, "mime-types": { "version": "2.1.9", - "from": "mime-types@>=2.1.9 <2.2.0", + "from": "mime-types@>=2.1.6 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { @@ -443,7 +448,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.0 <3.0.0", + "from": "inherits@>=2.0.1 <2.1.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" } } @@ -830,9 +835,9 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.8.1", - "from": "windshaft@1.8.1", - "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.8.1.tgz", + "version": "1.8.2", + "from": "windshaft@1.8.2", + "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.8.2.tgz", "dependencies": { "mapnik": { "version": "1.4.15-cdb6", diff --git a/package.json b/package.json index 4e074309..cfbcdf7c 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "1.8.1", + "windshaft": "1.8.2", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From 0b6845235a929bca5e484bdf96f3a1afc477aae4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 19:31:57 +0100 Subject: [PATCH 20/32] Release 2.21.0 --- NEWS.md | 21 ++++++++++++--------- package.json | 2 +- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/NEWS.md b/NEWS.md index 57a77b30..3f54c025 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,11 @@ # Changelog -## 2.20.1 +## 2.21.0 -Released 2016-mm-dd +Released 2016-02-04 + +Announcements: + - Upgrades windshaft to [1.8.2](https://github.com/CartoDB/Windshaft/releases/tag/1.8.2) ## 2.20.0 @@ -824,7 +827,7 @@ Released 2014-03-10 Enhancements: - - Set statsd prefix for all endpoints + - Set statsd prefix for all endpoints - Respond with a permission denied on attempt to access map tiles waiving signature of someone who had not left any (#170) - Do not log an error on GET / (#177) @@ -864,7 +867,7 @@ Released 2014-02-27 Enhancements: - Upgrades windshaft to 0.19.1 with many performance improvements, - See node_modules/windshaft/NEWS + See node_modules/windshaft/NEWS - Improve speed of instanciating a map (#147, #159, #165) - Give meaningful error on attempts to use map tokens with attribute service (#156) @@ -953,7 +956,7 @@ Bug fixes: Released 2014-01-30 -Bug fixes: +Bug fixes: * layergroup accept both map_key and api_key (#91) * Fix public instanciation of signed template accessing private data (#114) @@ -1076,7 +1079,7 @@ Released 2013-10-03 "[ zoom > 3]" CartoCSS snippets (note the space) * Fix backward compatibility handling of sqlapi.host configuration (#82) * Fix error for invalid text-name in CartoCSS (#81) -* Do not let anonymous requests use authorized renderer caches +* Do not let anonymous requests use authorized renderer caches ## 1.3.4 @@ -1123,7 +1126,7 @@ NOTE: configuration sqlapi.host renamed to sqlapi.domain * Multilayer API changes * Layers passed by index in grid fetching url * Interactivity only specified in layergroup config - * Embed cache_buster within token + * Embed cache_buster within token * Use ISO format for last_modified timestamp * Expected LZMA encoding changed to base64 @@ -1177,7 +1180,7 @@ Released DD//MM//YY Released DD//MM//YY -* Reduce default extent to allow for consistent proj4 round-tripping +* Reduce default extent to allow for consistent proj4 round-tripping * Enhance reset_styles script to use full configuration (#62) * Have reset_styles script also drop extended keys (#58) * Fix example postgis parameter for simplifying input geoms (#63) @@ -1227,7 +1230,7 @@ Released (30/10/12) * Autodetect target mapnik version and let config override it * Add tools/reset_styles script to batch-reset (and optionally convert) styles * Configurable logging format (#4) -* Detailed error on missing user metadata +* Detailed error on missing user metadata * Properly handle unauthenticated requests for metadata * Accept "api_key" in addition to "map_key", both in query_string and POST body (#38) diff --git a/package.json b/package.json index 942f57ca..fca3ce32 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.20.1", + "version": "2.21.0", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From 13c3fbae705907866c686c9207f5ccbdf9893ef8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Thu, 4 Feb 2016 19:35:23 +0100 Subject: [PATCH 21/32] Stubs next version --- NEWS.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 3f54c025..45892354 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.21.1 + +Released 2016-mm-dd + + ## 2.21.0 Released 2016-02-04 diff --git a/package.json b/package.json index fca3ce32..20b97b2b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.21.0", + "version": "2.21.1", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From 887d71a9ad2f8dfc325971f4b625a529b8e222a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Fri, 5 Feb 2016 12:35:03 +0100 Subject: [PATCH 22/32] Fixed default geojson config --- lib/cartodb/server_options.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/server_options.js b/lib/cartodb/server_options.js index c8af69d8..2a859d2e 100644 --- a/lib/cartodb/server_options.js +++ b/lib/cartodb/server_options.js @@ -61,7 +61,16 @@ module.exports = { statsInterval: rendererConfig.statsInterval }, renderer: { - mapnik: rendererConfig.mapnik, + mapnik: _.defaults(rendererConfig.mapnik, { + geojson: { + dbPoolParams: { + size: 16, + idleTimeout: 3000, + reapInterval: 1000 + }, + clipByBox2d: false, + } + }), torque: rendererConfig.torque, http: rendererConfig.http }, From 73478ed0e909332e021119946ea5c28914c8bf05 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 5 Feb 2016 12:35:01 +0100 Subject: [PATCH 23/32] Rename widgets tests file --- test/acceptance/{ => widgets}/widgets.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) rename test/acceptance/{ => widgets}/widgets.js (98%) diff --git a/test/acceptance/widgets.js b/test/acceptance/widgets/widgets.js similarity index 98% rename from test/acceptance/widgets.js rename to test/acceptance/widgets/widgets.js index 2f4483f5..0b2b5eb1 100644 --- a/test/acceptance/widgets.js +++ b/test/acceptance/widgets/widgets.js @@ -1,14 +1,13 @@ -var assert = require('../support/assert'); +var assert = require('../../support/assert'); var step = require('step'); var qs = require('querystring'); -var helper = require(__dirname + '/../support/test_helper'); -var LayergroupToken = require('../../lib/cartodb/models/layergroup_token'); +var helper = require('../../support/test_helper'); +var LayergroupToken = require('../../../lib/cartodb/models/layergroup_token'); -var CartodbWindshaft = require('../../lib/cartodb/server'); -var serverOptions = require('../../lib/cartodb/server_options'); +var CartodbWindshaft = require('../../../lib/cartodb/server'); +var serverOptions = require('../../../lib/cartodb/server_options'); var server = new CartodbWindshaft(serverOptions); -server.setMaxListeners(0); describe('widgets', function() { From d78e01b7a49805f3adf1d6602881a61179cd2a8e Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 5 Feb 2016 12:59:33 +0100 Subject: [PATCH 24/32] Extract getWidget to TestClient --- test/acceptance/widgets/widgets.js | 167 ++++++----------------------- test/support/test-client.js | 119 ++++++++++++++++++++ 2 files changed, 153 insertions(+), 133 deletions(-) create mode 100644 test/support/test-client.js diff --git a/test/acceptance/widgets/widgets.js b/test/acceptance/widgets/widgets.js index 0b2b5eb1..501829ed 100644 --- a/test/acceptance/widgets/widgets.js +++ b/test/acceptance/widgets/widgets.js @@ -1,120 +1,8 @@ var assert = require('../../support/assert'); -var step = require('step'); -var qs = require('querystring'); - -var helper = require('../../support/test_helper'); -var LayergroupToken = require('../../../lib/cartodb/models/layergroup_token'); - -var CartodbWindshaft = require('../../../lib/cartodb/server'); -var serverOptions = require('../../../lib/cartodb/server_options'); -var server = new CartodbWindshaft(serverOptions); - +var TestClient = require('../../support/test-client'); describe('widgets', function() { - var keysToDelete; - - beforeEach(function() { - keysToDelete = {}; - }); - - afterEach(function(done) { - helper.deleteRedisKeys(keysToDelete, done); - }); - - function getWidget(mapConfig, widgetName, params, callback) { - if (!callback) { - callback = params; - params = {}; - } - - var url = '/api/v1/map'; - if (params && params.filters) { - url += '?' + qs.stringify({ filters: JSON.stringify(params.filters) }); - } - - var layergroupId; - step( - function createLayergroup() { - var next = this; - assert.response(server, - { - url: url, - method: 'POST', - headers: { - host: 'localhost', - 'Content-Type': 'application/json' - }, - data: JSON.stringify(mapConfig) - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - var parsedBody = JSON.parse(res.body); - var expectedWidgetURLS = { - http: "/api/v1/map/" + parsedBody.layergroupid + "/0/widget/" + widgetName - }; - assert.ok(parsedBody.metadata.layers[0].widgets[widgetName]); - assert.ok( - parsedBody.metadata.layers[0].widgets[widgetName].url.http.match(expectedWidgetURLS.http) - ); - return next(null, parsedBody.layergroupid); - } - ); - }, - function getWidgetResult(err, _layergroupId) { - assert.ifError(err); - - var next = this; - layergroupId = _layergroupId; - - var urlParams = { - own_filter: params.hasOwnProperty('own_filter') ? params.own_filter : 1 - }; - if (params && params.bbox) { - urlParams.bbox = params.bbox; - } - url = '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName + '?' + qs.stringify(urlParams); - - assert.response(server, - { - url: url, - method: 'GET', - headers: { - host: 'localhost' - } - }, - { - status: 200, - headers: { - 'Content-Type': 'application/json; charset=utf-8' - } - }, - function(res, err) { - if (err) { - return next(err); - } - - next(null, res); - } - ); - }, - function finish(err, res) { - keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; - keysToDelete['user:localhost:mapviews:global'] = 5; - return callback(err, res); - } - ); - } - - it("should expose layer list", function(done) { var listWidgetMapConfig = { @@ -139,7 +27,9 @@ describe('widgets', function() { ] }; - getWidget(listWidgetMapConfig, 'names', function(err, res) { + var testClient = new TestClient(listWidgetMapConfig); + + testClient.getWidget('names', function(err, res) { if (err) { return done(err); } @@ -153,7 +43,7 @@ describe('widgets', function() { ]; assert.deepEqual(JSON.parse(res.body).rows, expectedList); - done(); + testClient.drain(done); }); }); @@ -179,7 +69,10 @@ describe('widgets', function() { } ] }; - getWidget(histogramMapConfig, 'pop_max', function(err, res) { + + var testClient = new TestClient(histogramMapConfig); + + testClient.getWidget('pop_max', function(err, res) { if (err) { return done(err); } @@ -187,7 +80,7 @@ describe('widgets', function() { var histogram = JSON.parse(res.body); assert.ok(histogram.bins.length); - done(); + testClient.drain(done); }); }); @@ -218,7 +111,8 @@ describe('widgets', function() { }; it("should expose an aggregation", function(done) { - getWidget(aggregationMapConfig, 'country_places_count', { own_filter: 0 }, function(err, res) { + var testClient = new TestClient(aggregationMapConfig); + testClient.getWidget('country_places_count', { own_filter: 0 }, function(err, res) { if (err) { return done(err); } @@ -227,7 +121,7 @@ describe('widgets', function() { assert.equal(aggregation.categories.length, 6); assert.deepEqual(aggregation.categories[0], { value: 769, category: 'USA', agg: false }); - done(); + testClient.drain(done); }); }); @@ -239,7 +133,8 @@ describe('widgets', function() { ] } }; - getWidget(aggregationMapConfig, 'country_places_count', params, function(err, res) { + var testClient = new TestClient(aggregationMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { if (err) { return done(err); } @@ -248,7 +143,7 @@ describe('widgets', function() { assert.equal(aggregation.categories.length, 1); assert.deepEqual(aggregation.categories[0], { value: 256, category: 'CAN', agg: false }); - done(); + testClient.drain(done); }); }); }); @@ -277,7 +172,8 @@ describe('widgets', function() { }; it("should expose an histogram", function(done) { - getWidget(histogramMapConfig, 'country_places_histogram', { own_filter: 0 }, function(err, res) { + var testClient = new TestClient(histogramMapConfig); + testClient.getWidget('country_places_histogram', { own_filter: 0 }, function(err, res) { if (err) { return done(err); } @@ -289,7 +185,7 @@ describe('widgets', function() { { bin: 0, freq: 6497, min: 0, max: 742572, avg: 113511.16823149147 } ); - done(); + testClient.drain(done); }); }); @@ -303,7 +199,8 @@ describe('widgets', function() { ] } }; - getWidget(histogramMapConfig, 'country_places_histogram', params, function(err, res) { + var testClient = new TestClient(histogramMapConfig); + testClient.getWidget('country_places_histogram', params, function(err, res) { if (err) { return done(err); } @@ -318,7 +215,7 @@ describe('widgets', function() { avg: 5815009.596774193 }); - done(); + testClient.drain(done); }); }); }); @@ -363,7 +260,8 @@ describe('widgets', function() { ] } }; - getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { if (err) { return done(err); } @@ -378,7 +276,7 @@ describe('widgets', function() { return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); - done(); + testClient.drain(done); }); }); @@ -393,7 +291,8 @@ describe('widgets', function() { ] } }; - getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { if (err) { return done(err); } @@ -408,7 +307,7 @@ describe('widgets', function() { return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); - done(); + testClient.drain(done); }); }); @@ -423,7 +322,8 @@ describe('widgets', function() { }, bbox: '-20,0,45,60' }; - getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { if (err) { return done(err); } @@ -438,7 +338,7 @@ describe('widgets', function() { return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); - done(); + testClient.drain(done); }); }); @@ -454,7 +354,8 @@ describe('widgets', function() { }, bbox: '-20,0,45,60' }; - getWidget(combinedWidgetsMapConfig, 'country_places_count', params, function(err, res) { + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { if (err) { return done(err); } @@ -469,7 +370,7 @@ describe('widgets', function() { return sum + (row.category === 'CHN' ? 1 : 0); }, 0), 0); - done(); + testClient.drain(done); }); }); }); diff --git a/test/support/test-client.js b/test/support/test-client.js new file mode 100644 index 00000000..d2df611b --- /dev/null +++ b/test/support/test-client.js @@ -0,0 +1,119 @@ +'use strict'; + +var qs = require('querystring'); +var step = require('step'); + +var LayergroupToken = require('../../lib/cartodb/models/layergroup_token'); + +var assert = require('./assert'); +var helper = require('./test_helper'); + +var CartodbWindshaft = require('../../lib/cartodb/server'); +var serverOptions = require('../../lib/cartodb/server_options'); +var server = new CartodbWindshaft(serverOptions); + + +function TestClient(mapConfig) { + this.mapConfig = mapConfig; + this.keysToDelete = {}; +} + +module.exports = TestClient; + +TestClient.prototype.getWidget = function(widgetName, params, callback) { + var self = this; + + if (!callback) { + callback = params; + params = {}; + } + + var url = '/api/v1/map'; + if (params && params.filters) { + url += '?' + qs.stringify({ filters: JSON.stringify(params.filters) }); + } + + var layergroupId; + step( + function createLayergroup() { + var next = this; + assert.response(server, + { + url: url, + method: 'POST', + headers: { + host: 'localhost', + 'Content-Type': 'application/json' + }, + data: JSON.stringify(self.mapConfig) + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + var parsedBody = JSON.parse(res.body); + var expectedWidgetURLS = { + http: "/api/v1/map/" + parsedBody.layergroupid + "/0/widget/" + widgetName + }; + assert.ok(parsedBody.metadata.layers[0].widgets[widgetName]); + assert.ok( + parsedBody.metadata.layers[0].widgets[widgetName].url.http.match(expectedWidgetURLS.http) + ); + return next(null, parsedBody.layergroupid); + } + ); + }, + function getWidgetResult(err, _layergroupId) { + assert.ifError(err); + + var next = this; + layergroupId = _layergroupId; + + var urlParams = { + own_filter: params.hasOwnProperty('own_filter') ? params.own_filter : 1 + }; + if (params && params.bbox) { + urlParams.bbox = params.bbox; + } + url = '/api/v1/map/' + layergroupId + '/0/widget/' + widgetName + '?' + qs.stringify(urlParams); + + assert.response(server, + { + url: url, + method: 'GET', + headers: { + host: 'localhost' + } + }, + { + status: 200, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } + }, + function(res, err) { + if (err) { + return next(err); + } + + next(null, res); + } + ); + }, + function finish(err, res) { + self.keysToDelete['map_cfg|' + LayergroupToken.parse(layergroupId).token] = 0; + self.keysToDelete['user:localhost:mapviews:global'] = 5; + return callback(err, res); + } + ); +}; + +TestClient.prototype.drain = function(callback) { + helper.deleteRedisKeys(this.keysToDelete, callback); +}; From 74cb8767715124b11cb5c37013822c38ef0d60ac Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 5 Feb 2016 13:01:34 +0100 Subject: [PATCH 25/32] Move list to own file --- test/acceptance/widgets/list.js | 49 ++++++++++++++++++++++++++++++ test/acceptance/widgets/widgets.js | 44 --------------------------- 2 files changed, 49 insertions(+), 44 deletions(-) create mode 100644 test/acceptance/widgets/list.js diff --git a/test/acceptance/widgets/list.js b/test/acceptance/widgets/list.js new file mode 100644 index 00000000..8d5aab07 --- /dev/null +++ b/test/acceptance/widgets/list.js @@ -0,0 +1,49 @@ +var assert = require('../../support/assert'); +var TestClient = require('../../support/test-client'); + +describe('widget list', function() { + + it("should expose layer list", function(done) { + + var listWidgetMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from test_table', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + names: { + type: 'list', + options: { + columns: ['name'] + } + } + } + } + } + ] + }; + + var testClient = new TestClient(listWidgetMapConfig); + + testClient.getWidget('names', function(err, res) { + if (err) { + return done(err); + } + + var expectedList = [ + {name:"Hawai"}, + {name:"El Estocolmo"}, + {name:"El Rey del Tallarín"}, + {name:"El Lacón"}, + {name:"El Pico"} + ]; + assert.deepEqual(JSON.parse(res.body).rows, expectedList); + + testClient.drain(done); + }); + }); +}); diff --git a/test/acceptance/widgets/widgets.js b/test/acceptance/widgets/widgets.js index 501829ed..fc6263e8 100644 --- a/test/acceptance/widgets/widgets.js +++ b/test/acceptance/widgets/widgets.js @@ -3,50 +3,6 @@ var TestClient = require('../../support/test-client'); describe('widgets', function() { - it("should expose layer list", function(done) { - - var listWidgetMapConfig = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from test_table', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - names: { - type: 'list', - options: { - columns: ['name'] - } - } - } - } - } - ] - }; - - var testClient = new TestClient(listWidgetMapConfig); - - testClient.getWidget('names', function(err, res) { - if (err) { - return done(err); - } - - var expectedList = [ - {name:"Hawai"}, - {name:"El Estocolmo"}, - {name:"El Rey del Tallarín"}, - {name:"El Lacón"}, - {name:"El Pico"} - ]; - assert.deepEqual(JSON.parse(res.body).rows, expectedList); - - testClient.drain(done); - }); - }); - it("should expose layer histogram", function(done) { var histogramMapConfig = { version: '1.5.0', From f42d20f2c3250b2e2b8e3130bb8baf2d4fbd8432 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 5 Feb 2016 13:24:39 +0100 Subject: [PATCH 26/32] Histograms in their own file --- test/acceptance/widgets/histogram.js | 120 +++++++++++++++++++++++++++ test/acceptance/widgets/list.js | 4 +- test/acceptance/widgets/widgets.js | 111 +------------------------ 3 files changed, 125 insertions(+), 110 deletions(-) create mode 100644 test/acceptance/widgets/histogram.js diff --git a/test/acceptance/widgets/histogram.js b/test/acceptance/widgets/histogram.js new file mode 100644 index 00000000..0eeb4ca6 --- /dev/null +++ b/test/acceptance/widgets/histogram.js @@ -0,0 +1,120 @@ +require('../../support/test_helper'); + +var assert = require('../../support/assert'); +var TestClient = require('../../support/test-client'); + +describe('histogram widgets', function() { + + it("should expose layer histogram", function(done) { + var histogramMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + pop_max: { + type: 'histogram', + options: { + column: 'pop_max' + } + } + } + } + } + ] + }; + + var testClient = new TestClient(histogramMapConfig); + + testClient.getWidget('pop_max', function(err, res) { + if (err) { + return done(err); + } + + var histogram = JSON.parse(res.body); + assert.ok(histogram.bins.length); + + testClient.drain(done); + }); + }); + + describe('filters', function() { + + describe('range', function() { + var histogramMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_histogram: { + type: 'histogram', + options: { + column: 'pop_max' + } + } + } + } + } + ] + }; + + it("should expose an histogram", function(done) { + var testClient = new TestClient(histogramMapConfig); + testClient.getWidget('country_places_histogram', { own_filter: 0 }, function(err, res) { + if (err) { + return done(err); + } + + var histogram = JSON.parse(res.body); + // notice min value + assert.deepEqual( + histogram.bins[0], + { bin: 0, freq: 6497, min: 0, max: 742572, avg: 113511.16823149147 } + ); + + testClient.drain(done); + }); + }); + + it("should expose a filtered histogram", function(done) { + var params = { + filters: { + layers: [ + { + country_places_histogram: { min: 4000000 } + } + ] + } + }; + var testClient = new TestClient(histogramMapConfig); + testClient.getWidget('country_places_histogram', params, function(err, res) { + if (err) { + return done(err); + } + + var histogram = JSON.parse(res.body); + // notice min value + assert.deepEqual(histogram.bins[0], { + bin: 0, + freq: 62, + min: 4000000, + max: 9276403, + avg: 5815009.596774193 + }); + + testClient.drain(done); + }); + }); + }); + }); + +}); diff --git a/test/acceptance/widgets/list.js b/test/acceptance/widgets/list.js index 8d5aab07..87fbf7df 100644 --- a/test/acceptance/widgets/list.js +++ b/test/acceptance/widgets/list.js @@ -1,7 +1,9 @@ +require('../../support/test_helper'); + var assert = require('../../support/assert'); var TestClient = require('../../support/test-client'); -describe('widget list', function() { +describe('list widgets', function() { it("should expose layer list", function(done) { diff --git a/test/acceptance/widgets/widgets.js b/test/acceptance/widgets/widgets.js index fc6263e8..7639561c 100644 --- a/test/acceptance/widgets/widgets.js +++ b/test/acceptance/widgets/widgets.js @@ -1,45 +1,10 @@ +require('../../support/test_helper'); + var assert = require('../../support/assert'); var TestClient = require('../../support/test-client'); describe('widgets', function() { - it("should expose layer histogram", function(done) { - var histogramMapConfig = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from populated_places_simple_reduced', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - pop_max: { - type: 'histogram', - options: { - column: 'pop_max' - } - } - } - } - } - ] - }; - - var testClient = new TestClient(histogramMapConfig); - - testClient.getWidget('pop_max', function(err, res) { - if (err) { - return done(err); - } - - var histogram = JSON.parse(res.body); - assert.ok(histogram.bins.length); - - testClient.drain(done); - }); - }); - describe('filters', function() { describe('category', function() { @@ -104,78 +69,6 @@ describe('widgets', function() { }); }); - describe('range', function() { - var histogramMapConfig = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from populated_places_simple_reduced', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - country_places_histogram: { - type: 'histogram', - options: { - column: 'pop_max' - } - } - } - } - } - ] - }; - - it("should expose an histogram", function(done) { - var testClient = new TestClient(histogramMapConfig); - testClient.getWidget('country_places_histogram', { own_filter: 0 }, function(err, res) { - if (err) { - return done(err); - } - - var histogram = JSON.parse(res.body); - // notice min value - assert.deepEqual( - histogram.bins[0], - { bin: 0, freq: 6497, min: 0, max: 742572, avg: 113511.16823149147 } - ); - - testClient.drain(done); - }); - }); - - it("should expose a filtered histogram", function(done) { - var params = { - filters: { - layers: [ - { - country_places_histogram: { min: 4000000 } - } - ] - } - }; - var testClient = new TestClient(histogramMapConfig); - testClient.getWidget('country_places_histogram', params, function(err, res) { - if (err) { - return done(err); - } - - var histogram = JSON.parse(res.body); - // notice min value - assert.deepEqual(histogram.bins[0], { - bin: 0, - freq: 62, - min: 4000000, - max: 9276403, - avg: 5815009.596774193 - }); - - testClient.drain(done); - }); - }); - }); - describe('combine widget filters', function() { var combinedWidgetsMapConfig = { version: '1.5.0', From b571b39b38cdb1b0c18bc577adb5ed86524f0680 Mon Sep 17 00:00:00 2001 From: Raul Ochoa Date: Fri, 5 Feb 2016 13:32:38 +0100 Subject: [PATCH 27/32] Aggregations in their own file --- test/acceptance/widgets/aggregation.js | 74 ++++++ test/acceptance/widgets/widgets.js | 310 ++++++++++--------------- 2 files changed, 196 insertions(+), 188 deletions(-) create mode 100644 test/acceptance/widgets/aggregation.js diff --git a/test/acceptance/widgets/aggregation.js b/test/acceptance/widgets/aggregation.js new file mode 100644 index 00000000..0b58fb65 --- /dev/null +++ b/test/acceptance/widgets/aggregation.js @@ -0,0 +1,74 @@ +require('../../support/test_helper'); + +var assert = require('../../support/assert'); +var TestClient = require('../../support/test-client'); + +describe('aggregation widgets', function() { + + var aggregationMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_count: { + type: 'aggregation', + options: { + column: 'adm0_a3', + aggregation: 'count' + } + } + } + } + } + ] + }; + + it("should expose an aggregation", function(done) { + var testClient = new TestClient(aggregationMapConfig); + testClient.getWidget('country_places_count', { own_filter: 0 }, function(err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + assert.equal(aggregation.categories.length, 6); + assert.deepEqual(aggregation.categories[0], { value: 769, category: 'USA', agg: false }); + + testClient.drain(done); + }); + }); + + describe('filters', function() { + + describe('category', function () { + + it("should expose a filtered aggregation", function (done) { + var params = { + filters: { + layers: [ + {country_places_count: {accept: ['CAN']}} + ] + } + }; + var testClient = new TestClient(aggregationMapConfig); + testClient.getWidget('country_places_count', params, function (err, res) { + if (err) { + return done(err); + } + + var aggregation = JSON.parse(res.body); + assert.equal(aggregation.categories.length, 1); + assert.deepEqual(aggregation.categories[0], { value: 256, category: 'CAN', agg: false }); + + testClient.drain(done); + }); + }); + }); + + }); +}); diff --git a/test/acceptance/widgets/widgets.js b/test/acceptance/widgets/widgets.js index 7639561c..6fee7a29 100644 --- a/test/acceptance/widgets/widgets.js +++ b/test/acceptance/widgets/widgets.js @@ -3,226 +3,160 @@ require('../../support/test_helper'); var assert = require('../../support/assert'); var TestClient = require('../../support/test-client'); -describe('widgets', function() { +describe('widget filters', function() { - describe('filters', function() { - - describe('category', function() { - var aggregationMapConfig = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from populated_places_simple_reduced', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - country_places_count: { - type: 'aggregation', - options: { - column: 'adm0_a3', - aggregation: 'count' - } + describe('combine widget filters', function() { + var combinedWidgetsMapConfig = { + version: '1.5.0', + layers: [ + { + type: 'mapnik', + options: { + sql: 'select * from populated_places_simple_reduced', + cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', + cartocss_version: '2.3.0', + widgets: { + country_places_count: { + type: 'aggregation', + options: { + column: 'adm0_a3', + aggregation: 'count' + } + }, + country_places_histogram: { + type: 'histogram', + options: { + column: 'pop_max' } } } } - ] + } + ] + }; + + it("should expose a filtered aggregation", function(done) { + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['CHN'] } + } + ] + } }; + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { + if (err) { + return done(err); + } - it("should expose an aggregation", function(done) { - var testClient = new TestClient(aggregationMapConfig); - testClient.getWidget('country_places_count', { own_filter: 0 }, function(err, res) { - if (err) { - return done(err); - } + var aggregation = JSON.parse(res.body); - var aggregation = JSON.parse(res.body); - assert.equal(aggregation.categories.length, 6); - assert.deepEqual(aggregation.categories[0], { value: 769, category: 'USA', agg: false }); + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], { value: 769, category: "USA", agg: false }); - testClient.drain(done); - }); - }); + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); + }, 0), 0); - it("should expose a filtered aggregation", function(done) { - var params = { - filters: { - layers: [ - {country_places_count: {accept: ['CAN']}} - ] - } - }; - var testClient = new TestClient(aggregationMapConfig); - testClient.getWidget('country_places_count', params, function(err, res) { - if (err) { - return done(err); - } - - var aggregation = JSON.parse(res.body); - assert.equal(aggregation.categories.length, 1); - assert.deepEqual(aggregation.categories[0], { value: 256, category: 'CAN', agg: false }); - - testClient.drain(done); - }); + testClient.drain(done); }); }); - describe('combine widget filters', function() { - var combinedWidgetsMapConfig = { - version: '1.5.0', - layers: [ - { - type: 'mapnik', - options: { - sql: 'select * from populated_places_simple_reduced', - cartocss: '#layer { marker-fill: red; marker-width: 32; marker-allow-overlap: true; }', - cartocss_version: '2.3.0', - widgets: { - country_places_count: { - type: 'aggregation', - options: { - column: 'adm0_a3', - aggregation: 'count' - } - }, - country_places_histogram: { - type: 'histogram', - options: { - column: 'pop_max' - } - } - } + it("should expose a filtered aggregation", function(done) { + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['CHN'] }, + country_places_histogram: { min: 7000000 } } - } - ] + ] + } }; + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { + if (err) { + return done(err); + } - it("should expose a filtered aggregation", function(done) { - var params = { - filters: { - layers: [ - { - country_places_count: { reject: ['CHN'] } - } - ] - } - }; - var testClient = new TestClient(combinedWidgetsMapConfig); - testClient.getWidget('country_places_count', params, function(err, res) { - if (err) { - return done(err); - } + var aggregation = JSON.parse(res.body); - var aggregation = JSON.parse(res.body); + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], { value: 4, category: 'IND', agg: false }); - // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], { value: 769, category: "USA", agg: false }); + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); + }, 0), 0); - // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { - return sum + (row.category === 'CHN' ? 1 : 0); - }, 0), 0); - - testClient.drain(done); - }); + testClient.drain(done); }); + }); - it("should expose a filtered aggregation", function(done) { - var params = { - filters: { - layers: [ - { - country_places_count: { reject: ['CHN'] }, - country_places_histogram: { min: 7000000 } - } - ] - } - }; - var testClient = new TestClient(combinedWidgetsMapConfig); - testClient.getWidget('country_places_count', params, function(err, res) { - if (err) { - return done(err); - } + it("should allow to filter by bounding box a filtered aggregation", function(done) { + var params = { + filters: { + layers: [ + { + country_places_histogram: { min: 50000 } + } + ] + }, + bbox: '-20,0,45,60' + }; + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { + if (err) { + return done(err); + } - var aggregation = JSON.parse(res.body); + var aggregation = JSON.parse(res.body); - // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], { value: 4, category: 'IND', agg: false }); + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], { value: 96, category: "RUS", agg: false }); - // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { - return sum + (row.category === 'CHN' ? 1 : 0); - }, 0), 0); + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); + }, 0), 0); - testClient.drain(done); - }); + testClient.drain(done); }); + }); - it("should allow to filter by bounding box a filtered aggregation", function(done) { - var params = { - filters: { - layers: [ - { - country_places_histogram: { min: 50000 } - } - ] - }, - bbox: '-20,0,45,60' - }; - var testClient = new TestClient(combinedWidgetsMapConfig); - testClient.getWidget('country_places_count', params, function(err, res) { - if (err) { - return done(err); - } + it("should allow to filter by bounding box a filtered aggregation, with reject", function(done) { + var params = { + filters: { + layers: [ + { + country_places_count: { reject: ['RUS'] }, + country_places_histogram: { min: 50000 } + } + ] + }, + bbox: '-20,0,45,60' + }; + var testClient = new TestClient(combinedWidgetsMapConfig); + testClient.getWidget('country_places_count', params, function(err, res) { + if (err) { + return done(err); + } - var aggregation = JSON.parse(res.body); + var aggregation = JSON.parse(res.body); - // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], { value: 96, category: "RUS", agg: false }); + // first one would be CHN if reject filter wasn't applied + assert.deepEqual(aggregation.categories[0], { value: 77, category: "TUR", agg: false }); - // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { - return sum + (row.category === 'CHN' ? 1 : 0); - }, 0), 0); + // confirm 'CHN' was filtered out (reject) + assert.equal(aggregation.categories.reduce(function(sum, row) { + return sum + (row.category === 'CHN' ? 1 : 0); + }, 0), 0); - testClient.drain(done); - }); - }); - - it("should allow to filter by bounding box a filtered aggregation, with reject", function(done) { - var params = { - filters: { - layers: [ - { - country_places_count: { reject: ['RUS'] }, - country_places_histogram: { min: 50000 } - } - ] - }, - bbox: '-20,0,45,60' - }; - var testClient = new TestClient(combinedWidgetsMapConfig); - testClient.getWidget('country_places_count', params, function(err, res) { - if (err) { - return done(err); - } - - var aggregation = JSON.parse(res.body); - - // first one would be CHN if reject filter wasn't applied - assert.deepEqual(aggregation.categories[0], { value: 77, category: "TUR", agg: false }); - - // confirm 'CHN' was filtered out (reject) - assert.equal(aggregation.categories.reduce(function(sum, row) { - return sum + (row.category === 'CHN' ? 1 : 0); - }, 0), 0); - - testClient.drain(done); - }); + testClient.drain(done); }); }); }); - }); From 45d72b2bc6a79a73845694c6deeb2a5b451b2b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Fri, 5 Feb 2016 15:03:34 +0100 Subject: [PATCH 28/32] Release 2.21.1 --- NEWS.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 45892354..ab582e33 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,7 +2,10 @@ ## 2.21.1 -Released 2016-mm-dd +Released 2016-02-05 + +Bug fixes: + - Added default config for geojson renderer ## 2.21.0 From 260e5ec25ff369d77394b32d69f691bc724fe5a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Fri, 5 Feb 2016 15:09:32 +0100 Subject: [PATCH 29/32] tubs next version --- NEWS.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index ab582e33..9a9fbadc 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.21.2 + +Released 2016-mm-dd + + ## 2.21.1 Released 2016-02-05 diff --git a/package.json b/package.json index 20b97b2b..b29570b0 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.21.1", + "version": "2.21.2", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From e6812ef6c10400ec5fcf6e0cce11aa74883af28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 8 Feb 2016 18:26:26 +0100 Subject: [PATCH 30/32] Upgrade Windshaft version to 1.8.3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b29570b0..920e01f0 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "node-statsd": "~0.0.7", "underscore" : "~1.6.0", "dot": "~1.0.2", - "windshaft": "1.8.2", + "windshaft": "1.8.3", "step": "~0.0.6", "queue-async": "~1.0.7", "request": "~2.62.0", From 0606fca484ad6b5db75ef11cde4781b6d38bba2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 8 Feb 2016 18:31:28 +0100 Subject: [PATCH 31/32] Release 2.22.0 --- NEWS.md | 7 +++++-- npm-shrinkwrap.json | 21 ++++++++------------- package.json | 2 +- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/NEWS.md b/NEWS.md index 9a9fbadc..ed29ff2f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,11 @@ # Changelog -## 2.21.2 +## 2.22.0 -Released 2016-mm-dd +Released 2016-02-08 + +Announcements: + - Upgrades windshaft to [1.8.3](https://github.com/CartoDB/Windshaft/releases/tag/1.8.3) ## 2.21.1 diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 37d697fa..b545d61d 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,6 +1,6 @@ { "name": "windshaft-cartodb", - "version": "2.20.1", + "version": "2.22.0", "dependencies": { "body-parser": { "version": "1.14.2", @@ -85,7 +85,7 @@ }, "mime-types": { "version": "2.1.9", - "from": "mime-types@>=2.1.9 <2.2.0", + "from": "mime-types@>=2.1.2 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { @@ -128,11 +128,6 @@ "from": "cartodb-redis@>=0.13.0 <0.14.0", "resolved": "https://registry.npmjs.org/cartodb-redis/-/cartodb-redis-0.13.0.tgz", "dependencies": { - "strftime": { - "version": "0.8.4", - "from": "strftime@>=0.8.2 <0.9.0", - "resolved": "https://registry.npmjs.org/strftime/-/strftime-0.8.4.tgz" - }, "redis-mpool": { "version": "0.1.0", "from": "git://github.com/CartoDB/node-redis-mpool.git#0.1.0", @@ -198,7 +193,7 @@ "dependencies": { "mime-types": { "version": "2.1.9", - "from": "mime-types@>=2.1.6 <2.2.0", + "from": "mime-types@>=2.1.9 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { @@ -387,7 +382,7 @@ }, "mime-types": { "version": "2.1.9", - "from": "mime-types@>=2.1.6 <2.2.0", + "from": "mime-types@>=2.1.9 <2.2.0", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.9.tgz", "dependencies": { "mime-db": { @@ -541,7 +536,7 @@ }, "inherits": { "version": "2.0.1", - "from": "inherits@>=2.0.1 <2.1.0", + "from": "inherits@>=2.0.0 <3.0.0", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz" }, "isarray": { @@ -835,9 +830,9 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz" }, "windshaft": { - "version": "1.8.2", - "from": "windshaft@1.8.2", - "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.8.2.tgz", + "version": "1.8.3", + "from": "windshaft@1.8.3", + "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-1.8.3.tgz", "dependencies": { "mapnik": { "version": "1.4.15-cdb6", diff --git a/package.json b/package.json index 920e01f0..a1140b01 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.21.2", + "version": "2.22.0", "description": "A map tile server for CartoDB", "keywords": [ "cartodb" From f0af107ffa2ee0ec5b18c2bf1d199bb319fdabd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 8 Feb 2016 18:36:00 +0100 Subject: [PATCH 32/32] Stubs next version --- NEWS.md | 5 +++++ package.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index ed29ff2f..44ce75d1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,10 @@ # Changelog +## 2.22.1 + +Released 2016-mm-dd + + ## 2.22.0 Released 2016-02-08 diff --git a/package.json b/package.json index a1140b01..bb9c996a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "windshaft-cartodb", - "version": "2.22.0", + "version": "2.22.1", "description": "A map tile server for CartoDB", "keywords": [ "cartodb"