From 454e6093a28df529bead67096b553cf41902f813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Cottinet?= Date: Wed, 16 Oct 2019 05:46:36 +0200 Subject: [PATCH 1/3] Node.js 12 support (#4) # Description * Add support to Node.js 12 while ensuring that this module stays compatible all the way back to Node.js 6 * Fix deprecation warnings in Node.js 12 * Hide an indentation warning in boost code, making this module installation a bit cleaner * Dependencies update --- .travis.yml | 5 +- binding.gyp | 1 + package-lock.json | 388 ++++++++++++++++++++++++------------------- package.json | 8 +- src/spatialIndex.cc | 29 ++-- src/spatialIndex.hpp | 10 ++ 6 files changed, 248 insertions(+), 193 deletions(-) diff --git a/.travis.yml b/.travis.yml index e2b77ba5..80ca61a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,9 @@ language: node_js node_js: -- '4' +- '6' +- '8' +- '10' +- '12' addons: apt: sources: diff --git a/binding.gyp b/binding.gyp index 68a26066..d2ded2d7 100644 --- a/binding.gyp +++ b/binding.gyp @@ -10,6 +10,7 @@ "=0.5 0", - "rimraf": "2" - } - }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", @@ -275,9 +279,9 @@ } }, "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha1-qmCKL2xXetNX4a5aXCbZqNGWklU=", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -289,9 +293,9 @@ } }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha1-bwlSYF0BQMHP2xOO0AV3W5LWewI=", "dev": true }, "har-schema": { @@ -301,12 +305,12 @@ "dev": true }, "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", "dev": true, "requires": { - "ajv": "^5.1.0", + "ajv": "^6.5.5", "har-schema": "^2.0.0" } }, @@ -338,9 +342,9 @@ } }, "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=", "dev": true }, "is-fullwidth-code-point": { @@ -380,8 +384,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": true + "dev": true }, "json-schema": { "version": "0.2.3", @@ -390,9 +393,9 @@ "dev": true }, "json-schema-traverse": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", "dev": true }, "json-stringify-safe": { @@ -414,24 +417,24 @@ } }, "mime-db": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", - "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha1-plBX6ZjbCQ9zKmj2wnbTh9QSbDI=", "dev": true }, "mime-types": { - "version": "2.1.18", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", - "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha1-tvjQs+lR77d97eyhlM/20W9nb4E=", "dev": true, "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.40.0" } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -443,6 +446,25 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha1-IpDeloGKNMKVUcio0wEha9Zahh0=", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -453,28 +475,26 @@ } }, "nan": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", - "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=" }, "node-gyp": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", - "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-6.0.0.tgz", + "integrity": "sha1-MMqY1pK27Ri+W5LQZQgcdP0jDbc=", "dev": true, "requires": { - "fstream": "^1.0.0", + "env-paths": "^1.0.0", "glob": "^7.0.3", "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", "mkdirp": "^0.5.0", "nopt": "2 || 3", "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "2", + "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", - "tar": "^2.0.0", + "tar": "^4.4.12", "which": "1" } }, @@ -490,7 +510,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", "dev": true, "requires": { "are-we-there-yet": "~1.1.2", @@ -506,9 +526,9 @@ "dev": true }, "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", "dev": true }, "object-assign": { @@ -526,28 +546,6 @@ "wrappy": "1" } }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -561,27 +559,33 @@ "dev": true }, "process-nextick-args": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "psl": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", + "integrity": "sha1-XdJhVs22n6H9uKsZkWZ9P4DO18I=", "dev": true }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", "dev": true }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", "dev": true }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "integrity": "sha1-sRwn2IuP8fvgcGQ8+UsMea4bCq8=", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -594,46 +598,52 @@ } }, "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha1-nC/KT301tZLv5Xx/ClXoEFIST+8=", "dev": true, "requires": { "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", + "aws4": "^1.8.0", "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" + "uuid": "^3.3.2" } }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", "dev": true }, "semver": { @@ -655,9 +665,9 @@ "dev": true }, "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", "dev": true, "requires": { "asn1": "~0.2.3", @@ -667,6 +677,7 @@ "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" } }, @@ -684,7 +695,7 @@ "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", "dev": true, "requires": { "safe-buffer": "~5.1.0" @@ -700,23 +711,36 @@ } }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=", "dev": true, "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha1-U/Nto/R3g7CSWvoG/587FlKA94E=", "dev": true, "requires": { + "psl": "^1.1.24", "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } } }, "tunnel-agent": { @@ -732,8 +756,16 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", "dev": true, - "optional": true + "requires": { + "punycode": "^2.1.0" + } }, "util-deprecate": { "version": "1.0.2", @@ -742,9 +774,9 @@ "dev": true }, "uuid": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz", - "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz", + "integrity": "sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY=", "dev": true }, "verror": { @@ -761,7 +793,7 @@ "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", "dev": true, "requires": { "isexe": "^2.0.0" @@ -770,7 +802,7 @@ "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "integrity": "sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=", "dev": true, "requires": { "string-width": "^1.0.2 || 2" @@ -781,6 +813,12 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true } } } diff --git a/package.json b/package.json index ea8f8014..dc139724 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "boost-geospatial-index", "main": "index.js", - "version": "1.0.4", + "version": "1.0.5", "author": "The Kuzzle Team ", "description": "A bridge to the C++ boost::geometry library, allowing to index and query geospatial shapes", "keywords": [ @@ -20,11 +20,11 @@ "url": "git://github.com/kuzzleio/boost-geospatial-index.git" }, "dependencies": { - "bindings": "^1.3.0", - "nan": "^2.10.0" + "bindings": "^1.5.0", + "nan": "^2.14.0" }, "devDependencies": { - "node-gyp": "^3.6.2" + "node-gyp": "^6.0.0" }, "engines": { "node": ">= 4.4.5", diff --git a/src/spatialIndex.cc b/src/spatialIndex.cc index f6713615..ca15586a 100644 --- a/src/spatialIndex.cc +++ b/src/spatialIndex.cc @@ -59,8 +59,7 @@ NAN_METHOD(SpatialIndex::addBBox) { return; } - v8::String::Utf8Value argId(info[0]); - std::string id(*argId); + std::string id = toString(info.GetIsolate(), info[0]); // Checks the coordinates parameters validity for(int i = 1; i < 5; i++) { @@ -96,8 +95,7 @@ NAN_METHOD(SpatialIndex::addCircle) { return; } - v8::String::Utf8Value argId(info[0]); - std::string id(*argId); + std::string id = toString(info.GetIsolate(), info[0]); // Checks the coordinates parameters validity for(int i = 1; i < 4; i++) { @@ -130,8 +128,7 @@ NAN_METHOD(SpatialIndex::addAnnulus) { return; } - v8::String::Utf8Value argId(info[0]); - std::string id(*argId); + std::string id = toString(info.GetIsolate(), info[0]); // Checks the coordinates parameters validity for(int i = 1; i < 5; i++) { @@ -164,8 +161,7 @@ NAN_METHOD(SpatialIndex::addPolygon) { return; } - v8::String::Utf8Value argId(info[0]); - std::string id(*argId); + std::string id = toString(info.GetIsolate(), info[0]); // Checks the coordinates parameters validity if (info[1]->IsUndefined() || !info[1]->IsArray()) { @@ -177,9 +173,16 @@ NAN_METHOD(SpatialIndex::addPolygon) { polygon pl; // boost coordinates are Long,Lat, not Lat,Long + v8::Local context = info.GetIsolate()->GetCurrentContext(); for(unsigned int i = 0; i < points->Length(); i++) { - v8::Local p = points->Get(i).As(); - pl.outer().push_back(point(Nan::To(p->Get(1)).FromJust(), Nan::To(p->Get(0)).FromJust())); + v8::Local p = points->Get(context, i) + .ToLocalChecked() + .As(); + + pl.outer().push_back( + point( + Nan::To(p->Get(context, 1).ToLocalChecked()).FromJust(), + Nan::To(p->Get(context, 0).ToLocalChecked()).FromJust())); } std::shared_ptr shape(new Shape(id, pl)); @@ -237,8 +240,8 @@ NAN_METHOD(SpatialIndex::remove) { return; } - v8::String::Utf8Value id(info[0]); - std::unordered_map >::const_iterator found = spi->repository.find(*id); + std::string id = toString(info.GetIsolate(), info[0]); + std::unordered_map >::const_iterator found = spi->repository.find(id); if (found == spi->repository.end()) { info.GetReturnValue().Set(false); @@ -246,7 +249,7 @@ NAN_METHOD(SpatialIndex::remove) { } spi->rtree.remove(std::make_pair(found->second->getEnvelope(), found->second)); - spi->repository.erase(*id); + spi->repository.erase(id); info.GetReturnValue().Set(true); } diff --git a/src/spatialIndex.hpp b/src/spatialIndex.hpp index 94a87777..deef72f5 100644 --- a/src/spatialIndex.hpp +++ b/src/spatialIndex.hpp @@ -13,6 +13,16 @@ typedef std::pair> treeValue; +const std::string toString(v8::Isolate *isolate, v8::Local value) { +#if NODE_MODULE_VERSION < NODE_12_0_MODULE_VERSION + v8::String::Utf8Value utf8(value); +#else + v8::String::Utf8Value utf8(isolate, value); +#endif + + return *utf8; +} + class SpatialIndex : public Nan::ObjectWrap { public: static NAN_MODULE_INIT(init); From 77286e88f10113454b636344abccc90786e6cfdd Mon Sep 17 00:00:00 2001 From: scottinet Date: Wed, 16 Oct 2019 09:42:16 +0200 Subject: [PATCH 2/3] [ci] update npm token --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 80ca61a7..52e3408e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ deploy: provider: npm email: support@kuzzle.io api_key: - secure: ylYay6gwQdDs1IjNTcvf8uqFbVo3a895bXFunAMHFCfSBDAhauobdZhLyUERIVQWa2hlERNScgsGPCz+HoIV4lwyIB5iH6LPmRS/yPmc1gbCAwXQegJeJkWp4nP1fHG4/7vUPo3D9EyW7ke+G4sH3bKujsud/nrhmVD+Wq69uoG9E0PauFpPFvHd+8fju+oC8gcWmMR5Py5PKI6k+ztLOC+vkdfDlSJMtqdtTNjXDSk5ldyD/d7PX915QRpVXqdEXvsOfb03r98+s+rUMIhuh/EGtAXxLBSCwkGYLPBQn0hW8y2EwJ1uYek9BY0XNq5rzZriVw+u3j7vqJ135FuVZovBXQqnKuWmTUPfK1R8/u4zk3Mszpe/8fc8CddSQLsA2FK0otlCFc8XqSdfdXgwtyP5NlE0gru2vvhrDbP1B1M8zTpS6yJ3eUMHrpfPrzRYHy+Bmpi/sSdWg0Tj0A9nEpV8SU+3CFpQl/nOvl6ZgcGhEFOxOfnRaowkPxt02M5obczWEGsf+ErhYmbyTDpKzqHHDCNceAmOfbrqfspQgLPfWnWbnU9reNKuqqu1yyOiwHdSkn/TrVR4AMUufaV/ZxzWZY8KzWoOS0YzhcQlQkXNwfV3gvqnzLQVBgpYSJrzPInvy9DhzR4WgtUni+qITVyG17ZkWLH6QS4PLWATPCY= + secure: GfEkBYxFlHFMSLUuqc0d+3BgfCezJLac+TT0G+ou1zBLyTXI4HYwSrUze7E3zw+sTxqQlmmyxeNYBKqjgcalqz7qnRN7CRQWvJIFhLyM065Nn62N5lZ/3dRaD45e0AIp3VjiobaJvkgcQGz+ZaBJUwlyN8nk1+MZL8DIm6mWdFNVrJxCDPq2FnyKv0wluj4uxP+6gDtSPWUh4UX9lPcMVkNlYS9x4T92jU6iQrJysKvnSYoJjk1jf5XvjAkxvmvYBL0cLsoFMt3rwkypO/xTjdmOmx4iUMejEXejIaHF3FtTiHceRk+CYmVKFhuLzjnpDNdmzfMTlYm22yOztuR1zF6h63fY4SSinsfsAERovxKvjWgA+S6+5b58XgBXcl3zRODvW0FHarPTaVfFWG7iHEQNpe4djgzr1fOePbAyyuNnLPuQW3B9C80q5wBZZ93E5FECrlDW9nXGBNY5K1JDO5UMZW1lukm9IEs1kcAi+qFnc+cEovdBgGNls+p0WwY6gsgFH//o851glVQbv+z0FN00Silc8hGeB1jR0iYHmTIMG9fC9RZoPXB+XZIpY62jKwiU2BvGT/ArHXTak922s/KjycYRIv4FKmlRY/GS+3g4kSpsWjnQOGmaHAtm7xI4vKWHAvDkQ8sASoeFtUHKI9JQUOBEXvk2dFlmm1fYbeE= on: repo: kuzzleio/boost-geospatial-index branch: master From 25f619932c88133ed3e33f74b6a95e6ed0533858 Mon Sep 17 00:00:00 2001 From: scottinet Date: Tue, 21 Jul 2020 16:52:20 +0200 Subject: [PATCH 3/3] Trigger CI