diff --git a/NEWS.md b/NEWS.md index 5d664adf..9f0ff97c 100644 --- a/NEWS.md +++ b/NEWS.md @@ -6,9 +6,10 @@ Released 2019-XX-XX Announcements: - Update deps: - - windshaft@5.2.1: + - windshaft@5.3.0: - Update @carto/mapnik to [`3.6.2-carto.15`](https://github.com/CartoDB/node-mapnik/blob/v3.6.2-carto.15/CHANGELOG.carto.md#362-carto15). - - Update turbo-carto to [`0.21.2`](https://github.com/CartoDB/turbo-carto/releases/tag/0.21.2) + - Update turbo-carto to [`0.21.2`](https://github.com/CartoDB/turbo-carto/releases/tag/0.21.2) + - Upgrade `@carto/cartonik` to version [0.6.0](https://github.com/CartoDB/cartonik/blob/v0.6.0/CHANGELOG.md#v060-2019-06-17). ## 7.1.0 Released 2019-05-06 diff --git a/lib/cartodb/api/map/preview-layergroup-controller.js b/lib/cartodb/api/map/preview-layergroup-controller.js index bf516f5e..f8980866 100644 --- a/lib/cartodb/api/map/preview-layergroup-controller.js +++ b/lib/cartodb/api/map/preview-layergroup-controller.js @@ -96,9 +96,10 @@ function getPreviewImageByCenter (previewBackend) { }; const format = req.params.format === 'jpg' ? 'jpeg' : 'png'; - const { mapConfigProvider: provider } = res.locals; + const { mapConfigProvider } = res.locals; + const options = { mapConfigProvider, format, width, height, zoom, center }; - previewBackend.getImage(provider, format, width, height, zoom, center, (err, image, headers, stats = {}) => { + previewBackend.getImage(options, (err, image, stats = {}) => { req.profiler.done(`render-${format}`); req.profiler.add(stats); @@ -107,11 +108,7 @@ function getPreviewImageByCenter (previewBackend) { return next(err); } - if (headers) { - res.set(headers); - } - - res.set('Content-Type', headers['Content-Type'] || `image/${format}`); + res.set('Content-Type', `image/${format}`); res.statusCode = 200; res.body = image; @@ -125,16 +122,17 @@ function getPreviewImageByBoundingBox (previewBackend) { return function getPreviewImageByBoundingBoxMiddleware (req, res, next) { const width = +req.params.width; const height = +req.params.height; - const bounds = { + const bbox = { west: +req.params.west, north: +req.params.north, east: +req.params.east, south: +req.params.south }; const format = req.params.format === 'jpg' ? 'jpeg' : 'png'; - const { mapConfigProvider: provider } = res.locals; + const { mapConfigProvider } = res.locals; + const options = { mapConfigProvider, format, width, height, bbox }; - previewBackend.getImage(provider, format, width, height, bounds, (err, image, headers, stats = {}) => { + previewBackend.getImage(options, (err, image, stats = {}) => { req.profiler.done(`render-${format}`); req.profiler.add(stats); @@ -143,11 +141,7 @@ function getPreviewImageByBoundingBox (previewBackend) { return next(err); } - if (headers) { - res.set(headers); - } - - res.set('Content-Type', headers['Content-Type'] || `image/${format}`); + res.set('Content-Type', `image/${format}`); res.statusCode = 200; res.body = image; diff --git a/lib/cartodb/api/map/preview-template-controller.js b/lib/cartodb/api/map/preview-template-controller.js index eea382de..e4f42cae 100644 --- a/lib/cartodb/api/map/preview-template-controller.js +++ b/lib/cartodb/api/map/preview-template-controller.js @@ -215,7 +215,6 @@ function getImageOptionsFromCoordinates (zoom, lon, lat) { } } - function getImageOptionsFromTemplate (template, zoom) { if (template.view) { var zoomCenter = templateZoomCenter(template.view); @@ -239,7 +238,7 @@ function getImageOptionsFromBoundingBox (bbox = '') { if (_bbox.length === 4 && _bbox.every(Number.isFinite)) { return { - bounds: { + bbox: { west: _bbox[0], south: _bbox[1], east: _bbox[2], @@ -252,7 +251,7 @@ function getImageOptionsFromBoundingBox (bbox = '') { function getImage({ previewBackend, label }) { return function getImageMiddleware (req, res, next) { const { imageOpts, mapConfigProvider } = res.locals; - const { zoom, center, bounds } = imageOpts; + const { zoom, center, bbox } = imageOpts; let { width, height } = req.params; @@ -262,8 +261,9 @@ function getImage({ previewBackend, label }) { const format = req.params.format === 'jpg' ? 'jpeg' : 'png'; if (zoom !== undefined && center) { - return previewBackend.getImage(mapConfigProvider, format, width, height, zoom, center, - (err, image, headers, stats) => { + const options = { mapConfigProvider, format, width, height, zoom, center }; + + return previewBackend.getImage(options, (err, image, stats) => { req.profiler.add(stats); if (err) { @@ -271,10 +271,6 @@ function getImage({ previewBackend, label }) { return next(err); } - if (headers) { - res.set(headers); - } - res.statusCode = 200; res.body = image; @@ -282,7 +278,9 @@ function getImage({ previewBackend, label }) { }); } - previewBackend.getImage(mapConfigProvider, format, width, height, bounds, (err, image, headers, stats) => { + const options = { mapConfigProvider, format, width, height, bbox }; + + previewBackend.getImage(options, (err, image, stats) => { req.profiler.add(stats); req.profiler.done('render-' + format); @@ -291,10 +289,6 @@ function getImage({ previewBackend, label }) { return next(err); } - if (headers) { - res.set(headers); - } - res.statusCode = 200; res.body = image; @@ -305,7 +299,9 @@ function getImage({ previewBackend, label }) { function setContentTypeHeader () { return function setContentTypeHeaderMiddleware(req, res, next) { - res.set('Content-Type', res.get('content-type') || res.get('Content-Type') || 'image/png'); + const format = req.params.format === 'jpg' ? 'jpeg' : 'png'; + + res.set('Content-Type', `image/${format}`); next(); }; @@ -354,7 +350,7 @@ function templateBounds(view) { if (hasAllBounds) { return { - bounds: { + bbox: { west: view.bounds.west, south: view.bounds.south, east: view.bounds.east, diff --git a/lib/cartodb/backends/tables-extent.js b/lib/cartodb/backends/tables-extent.js index ff41701c..f7499ee7 100644 --- a/lib/cartodb/backends/tables-extent.js +++ b/lib/cartodb/backends/tables-extent.js @@ -41,7 +41,7 @@ TablesExtentBackend.prototype.getBounds = function (username, tables, callback) var result = null; if (rows.length > 0) { result = { - bounds: rows[0] + bbox: rows[0] }; } callback(null, result); diff --git a/package-lock.json b/package-lock.json index 8b268653..da880561 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,19 +5,20 @@ "requires": true, "dependencies": { "@carto/cartonik": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@carto/cartonik/-/cartonik-0.5.1.tgz", - "integrity": "sha512-LEnXBdsTjNNkzpY20xk6Dpj6hJ+cTRfHROquf8ZeBPF+MAcmtL2XrmRt+zn59y14ZsvLKcdoTJPuJriFWc+J9Q==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@carto/cartonik/-/cartonik-0.6.0.tgz", + "integrity": "sha512-p8Y9OvR/tTKm82juUVDRs0dEeN7yHt0Wrh+J81aDuBkbFTPPDxIlWm+hsDr+kLnta67zCfTtJYQJjeHEgCfbSg==", "requires": { "@carto/mapnik": "^3.6.2-carto.15", + "@mapbox/sphericalmercator": "^1.1.0", "generic-pool": "^3.6.1", "mime": "^2.4.0" }, "dependencies": { "mime": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz", - "integrity": "sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==" + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz", + "integrity": "sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==" } } }, @@ -43,14 +44,10 @@ } } }, - "abaculus": { - "version": "github:cartodb/abaculus#6b37aeb0d2ed21c3ad083ce0d61b2be69dc642ff", - "from": "github:cartodb/abaculus#2.0.3-cdb15", - "requires": { - "@carto/mapnik": "3.6.2-carto.15", - "d3-queue": "^2.0.2", - "sphericalmercator": "1.0.5" - } + "@mapbox/sphericalmercator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/sphericalmercator/-/sphericalmercator-1.1.0.tgz", + "integrity": "sha512-pEsfZyG4OMThlfFQbCte4gegvHUjxXCjz0KZ4Xk8NdOYTQBLflj6U8PL05RPAiuRAMAQNUUKJuL6qYZ5Y4kAWA==" }, "abbrev": { "version": "1.1.1", @@ -627,11 +624,6 @@ "resolved": "https://registry.npmjs.org/d3/-/d3-3.5.17.tgz", "integrity": "sha1-vEZ0gAQ3iyGjYMn8fPUjF5B2L7g=" }, - "d3-queue": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-2.0.3.tgz", - "integrity": "sha1-B/vaOsrlNYqcUpmq+ICt8JU+0sI=" - }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -2855,9 +2847,9 @@ } }, "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, @@ -3717,11 +3709,6 @@ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==" }, - "sphericalmercator": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sphericalmercator/-/sphericalmercator-1.0.5.tgz", - "integrity": "sha1-3cWgSeNg4ADQ+tn8IsQHGIJYSYA=" - }, "split": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", @@ -3736,9 +3723,9 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" }, "sqlite3": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.0.8.tgz", - "integrity": "sha512-kgwHu4j10KhpCHtx//dejd/tVQot7jc3sw+Sn0vMuKOw0X00Ckyg9VceKgzPyGmmz+zEoYue9tOLriWTvYy0ww==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-4.0.9.tgz", + "integrity": "sha512-IkvzjmsWQl9BuBiM4xKpl5X8WCR4w0AeJHRdobCdXZ8dT/lNc1XS6WqvY35N6+YzIIgzSBeY5prdFObID9F9tA==", "requires": { "nan": "^2.12.1", "node-pre-gyp": "^0.11.0", @@ -3903,17 +3890,17 @@ } }, "tar": { - "version": "4.4.8", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", - "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz", + "integrity": "sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==", "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.3.5", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" }, "dependencies": { "safe-buffer": { @@ -3954,9 +3941,9 @@ } }, "turbo-carto": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.21.1.tgz", - "integrity": "sha512-MijaCzgz4cRjKMLaNxhMBq/lw+bb8cs+ZwGsHMAeJ8nTVWN7LY4b5LDBMIyxALmGiRkY8ziglmAoMU+xYnSTMA==", + "version": "0.21.2", + "resolved": "https://registry.npmjs.org/turbo-carto/-/turbo-carto-0.21.2.tgz", + "integrity": "sha512-yUqc5V9U5UEVksMfNSlDOr03mHEQBa187iTM4nbTiOwViBVAo/ndW07INt2np9gin+YO8MFJjo7Ioo8lr+3xUQ==", "requires": { "cartocolor": "4.0.0", "colorbrewer": "1.0.0", @@ -4135,13 +4122,12 @@ "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=" }, "windshaft": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-5.2.1.tgz", - "integrity": "sha512-on0ENiH/Rb4cT5N9S0qTz/Ey2DFte+JZVFT4vDKhVtrflrCB5jlSJHwhirvOu+l30/y2yUqQffnxghfH0ebaww==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/windshaft/-/windshaft-5.3.0.tgz", + "integrity": "sha512-tirrSpUXJ3vJ3Es95yDq0DzEkb2M0ueNIPIONqCwjyCEikjvFRbu9N+j1pcJAhFiitbdG36rUZftO++vPCMiiQ==", "requires": { - "@carto/cartonik": "^0.5.1", + "@carto/cartonik": "^0.6.0", "@carto/mapnik": "3.6.2-carto.15", - "abaculus": "github:cartodb/abaculus#2.0.3-cdb15", "canvas": "^2.4.1", "carto": "github:cartodb/carto#0.15.1-cdb5", "cartodb-psql": "0.13.1", @@ -4151,7 +4137,6 @@ "redis-mpool": "0.7.0", "request": "2.87.0", "semver": "5.5.0", - "sphericalmercator": "1.0.5", "torque.js": "^3.1.0", "underscore": "1.6.0" } diff --git a/package.json b/package.json index 41233940..e71a3438 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "step-profiler": "0.3.0", "turbo-carto": "0.21.2", "underscore": "1.6.0", - "windshaft": "5.2.1", + "windshaft": "^5.3.0", "yargs": "11.1.0" }, "devDependencies": {