From 736e8d393add37a141d0190ae437aa1e71765db8 Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Sat, 21 Dec 2019 12:05:43 -0500 Subject: [PATCH] Upgrade to node10, latest dependencies use node10 (latest node that has binary built @mapbox/mapbox-gl-native v5.0.2) use latest canvas and sharp API --- Dockerfile | 2 +- Dockerfile_light | 2 +- Dockerfile_test | 2 +- package.json | 35 ++++++++++++++++++----------------- src/serve_rendered.js | 17 +++++++++-------- 5 files changed, 30 insertions(+), 28 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4ed65a3..b82ff8f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:6.15.1-stretch +FROM node:10-stretch MAINTAINER Petr Sloup ENV NODE_ENV="production" diff --git a/Dockerfile_light b/Dockerfile_light index 2c3c575..dafbdd2 100644 --- a/Dockerfile_light +++ b/Dockerfile_light @@ -1,4 +1,4 @@ -FROM node:6.15.1-stretch +FROM node:10-stretch MAINTAINER Petr Sloup ENV NODE_ENV="production" diff --git a/Dockerfile_test b/Dockerfile_test index baaa989..d1f2b25 100644 --- a/Dockerfile_test +++ b/Dockerfile_test @@ -2,7 +2,7 @@ # Simply run "docker build -f Dockerfile_test ." # WARNING: sometimes it fails with a core dumped exception -FROM node:6-stretch +FROM node:10-stretch MAINTAINER Petr Sloup RUN apt-get -qq update \ diff --git a/package.json b/package.json index 3ff5f49..4261f01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tileserver-gl", - "version": "2.6.0", + "version": "3.0.0", "description": "Map tile server for JSON GL styles - vector and server side generated raster tiles", "main": "src/main.js", "bin": "src/main.js", @@ -13,36 +13,37 @@ }, "license": "BSD-2-Clause", "engines": { - "node": ">=6 <7" + "node": ">=10 <11" }, "scripts": { - "test": "mocha test/**.js --timeout 10000" + "test": "mocha test/**.js --timeout 10000", + "docker": "docker build -f Dockerfile . && docker run --rm -i -p 8080:80 $(docker build -q .)" }, "dependencies": { - "@mapbox/mapbox-gl-native": "4.0.0", - "@mapbox/mbtiles": "0.10.0", + "@mapbox/mapbox-gl-native": "5.0.2", + "@mapbox/mbtiles": "0.11.0", "@mapbox/sphericalmercator": "1.1.0", "@mapbox/vector-tile": "1.3.1", "advanced-pool": "0.3.3", - "canvas": "1.6.13", + "canvas": "2.6.1", "clone": "2.1.2", - "color": "3.1.0", - "commander": "2.19.0", + "color": "3.1.2", + "commander": "4.0.1", "cors": "2.8.5", - "express": "4.16.4", + "express": "4.17.1", "glyph-pbf-composite": "0.0.2", - "handlebars": "4.1.2", - "http-shutdown": "^1.2.0", + "handlebars": "4.5.3", + "http-shutdown": "1.2.1", "morgan": "1.9.1", - "pbf": "3.1.0", - "proj4": "2.5.0", + "pbf": "3.2.1", + "proj4": "2.6.0", "request": "2.88.0", - "sharp": "0.21.1", + "sharp": "0.23.4", "tileserver-gl-styles": "1.2.0" }, "devDependencies": { - "mocha": "^5.2.0", - "should": "^13.2.0", - "supertest": "^3.1.0" + "mocha": "^6.2.2", + "should": "^13.2.3", + "supertest": "^4.0.2" } } diff --git a/src/serve_rendered.js b/src/serve_rendered.js index b491b00..3458384 100644 --- a/src/serve_rendered.js +++ b/src/serve_rendered.js @@ -11,8 +11,9 @@ var advancedPool = require('advanced-pool'), // see https://github.com/lovell/sharp/issues/371 var sharp = require('sharp'); -var Canvas = require('canvas'), - clone = require('clone'), +const { createCanvas } = require('canvas'); + +var clone = require('clone'), Color = require('color'), express = require('express'), mercator = new (require('@mapbox/sphericalmercator'))(), @@ -419,7 +420,7 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { params.width *= 2; params.height *= 2; } - + var tileMargin = Math.max(options.tileMargin || 0, 0); if (z > 2 && tileMargin > 0) { params.width += tileMargin * 2 * scale; @@ -440,7 +441,7 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { channels: 4 } }); - + if (z > 2 && tileMargin > 0) { image.extract({ left: tileMargin * scale, top: tileMargin * scale, width: width * scale, height: height * scale }); } @@ -451,10 +452,10 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { } if (opt_overlay) { - image.overlayWith(opt_overlay); + image.composite([{ input: opt_overlay }]); } if (watermark) { - var canvas = new Canvas(scale * width, scale * height); + var canvas = createCanvas(scale * width, scale * height); var ctx = canvas.getContext('2d'); ctx.scale(scale, scale); ctx.font = '10px sans-serif'; @@ -464,7 +465,7 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { ctx.fillStyle = 'rgba(0,0,0,.4)'; ctx.fillText(watermark, 5, height - 5); - image.overlayWith(canvas.toBuffer()); + image.composite([{ input: canvas.toBuffer() }]); } var formatQuality = (params.formatQuality || {})[format] || @@ -561,7 +562,7 @@ module.exports = function(options, repo, params, id, publicUrl, dataResolver) { center[1] -= minEdge; } - var canvas = new Canvas(scale * w, scale * h); + var canvas = createCanvas(scale * w, scale * h); var ctx = canvas.getContext('2d'); ctx.scale(scale, scale); if (bearing) {