From e4f9e3c45152e9f932a6b9d4e30de0936adbcd53 Mon Sep 17 00:00:00 2001 From: Alberto Valdivia Date: Mon, 22 Mar 2021 14:57:20 +0100 Subject: [PATCH 01/79] configuracion de swagger e implementacion de anotaciones --- mapea-js/package-lock.json | 1302 ++--------------- mapea-rest/.tern-project | 1 - mapea-rest/pom.xml | 396 ++--- .../juntadeandalucia/mapea/api/ActionsWS.java | 554 ++++--- .../juntadeandalucia/mapea/api/BuilderWS.java | 11 + .../es/juntadeandalucia/mapea/api/Proxy.java | 85 +- .../mapea/api/SwaggerConfiguration.java | 46 + .../properties/configuration.properties | 4 +- mapea-rest/src/main/webapp/WEB-INF/web.xml | 8 +- 9 files changed, 670 insertions(+), 1737 deletions(-) delete mode 100644 mapea-rest/.tern-project create mode 100644 mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java diff --git a/mapea-js/package-lock.json b/mapea-js/package-lock.json index a8ad66674..7c22f6a3f 100644 --- a/mapea-js/package-lock.json +++ b/mapea-js/package-lock.json @@ -1602,213 +1602,6 @@ } } }, - "@ngageoint/geopackage": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@ngageoint/geopackage/-/geopackage-3.0.4.tgz", - "integrity": "sha512-6pw44o4s6CYSaabUpux7lTWyVJbbNginCupubyuIxvoZ6q0reRKeoqYTFOHBRUnKSUuOwaAKNyKdJuSCFIO6kA==", - "requires": { - "@turf/bbox": "6.0.1", - "@turf/boolean-point-in-polygon": "^6.0.1", - "@turf/boolean-within": "^6.0.1", - "@turf/circle": "^6.0.1", - "@turf/distance": "^6.0.1", - "@turf/helpers": "^6.1.4", - "@turf/intersect": "^6.1.3", - "@turf/line-intersect": "^6.0.2", - "@turf/point-to-line-distance": "^6.0.0", - "@turf/polygon-to-line": "^6.0.3", - "@turf/simplify": "~5.1.5", - "@types/geojson": "^7946.0.7", - "@types/proj4": "^2.5.0", - "better-sqlite3": "6.0.1", - "buffer": "^5.6.0", - "canvas": "2.6.0", - "chalk": "^1.1.3", - "concat-stream": "2.0.0", - "file-type": "12.4.0", - "image-size": "0.8.3", - "inquirer": "^1.0.2", - "lodash": "^4.17.15", - "proj4": "2.6.0", - "reproject": "1.2.5", - "rtree-sql.js": "1.0.0", - "webworkify": "^1.1.0", - "wkx": "0.4.8" - }, - "dependencies": { - "ansi-escapes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", - "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", - "optional": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "optional": true - }, - "buffer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.0.tgz", - "integrity": "sha512-cd+5r1VLBwUqTrmnzW+D7ABkJUM6mr7uv1dv+6jRw4Rcl7tFIFHDqHPL98LhpGFn3dbAt3gtLxtrWp4m1kFrqg==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "optional": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "cli-cursor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", - "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", - "optional": true, - "requires": { - "restore-cursor": "^1.0.1" - } - }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "external-editor": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-1.1.1.tgz", - "integrity": "sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=", - "optional": true, - "requires": { - "extend": "^3.0.0", - "spawn-sync": "^1.0.15", - "tmp": "^0.0.29" - } - }, - "figures": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", - "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", - "optional": true, - "requires": { - "escape-string-regexp": "^1.0.5", - "object-assign": "^4.1.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inquirer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-1.2.3.tgz", - "integrity": "sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=", - "optional": true, - "requires": { - "ansi-escapes": "^1.1.0", - "chalk": "^1.0.0", - "cli-cursor": "^1.0.1", - "cli-width": "^2.0.0", - "external-editor": "^1.1.0", - "figures": "^1.3.5", - "lodash": "^4.3.0", - "mute-stream": "0.0.6", - "pinkie-promise": "^2.0.0", - "run-async": "^2.2.0", - "rx": "^4.1.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.0", - "through": "^2.3.6" - } - }, - "mute-stream": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.6.tgz", - "integrity": "sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=", - "optional": true - }, - "onetime": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", - "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", - "optional": true - }, - "proj4": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/proj4/-/proj4-2.6.0.tgz", - "integrity": "sha512-ll2WyehUFOyzEZtN8hAiOTmZpuDCN5V+4A/HjhPbhlwVwlsFKnIHSZ3l3uhzgDndHjoL2MyERFGe9VmXN4rYUg==", - "requires": { - "mgrs": "1.0.0", - "wkt-parser": "^1.2.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "restore-cursor": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", - "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", - "optional": true, - "requires": { - "exit-hook": "^1.0.0", - "onetime": "^1.0.0" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "optional": true - }, - "tmp": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz", - "integrity": "sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=", - "optional": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } - } - }, "@nodelib/fs.scandir": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", @@ -1852,263 +1645,12 @@ } } }, - "@turf/bbox": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.0.1.tgz", - "integrity": "sha512-EGgaRLettBG25Iyx7VyUINsPpVj1x3nFQFiGS3ER8KCI1MximzNLsam3eXRabqQDjyAKyAE1bJ4EZEpGvspQxw==", - "requires": { - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "@turf/bearing": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.0.1.tgz", - "integrity": "sha512-mXY1NozqV9EFfBTbUItujwfqfQF0G/Xe2fzvnZle90ekPEUfhi4Dgf5JswJTd96J9LiT8kcd6Jonp5khnx0wIg==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/boolean-point-in-polygon": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.0.1.tgz", - "integrity": "sha512-FKLOZ124vkJhjzNSDcqpwp2NvfnsbYoUOt5iAE7uskt4svix5hcjIEgX9sELFTJpbLGsD1mUbKdfns8tZxcMNg==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/boolean-point-on-line": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/boolean-point-on-line/-/boolean-point-on-line-6.0.1.tgz", - "integrity": "sha512-Vl724Tzh4CF/13kgblOAQnMcHagromCP1EfyJ9G/8SxpSoTYeY2G6FmmcpbW51GqKxC7xgM9+Pck50dun7oYkg==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/boolean-within": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/boolean-within/-/boolean-within-6.0.1.tgz", - "integrity": "sha512-fAzDoWzA4UvUE99G8VqQjVg+PSrPBACM9+SLcl0vkbxIhTjoknpTUwSfH86EgKiCkTDttiDIs/q27xZ4H+mgLQ==", - "requires": { - "@turf/bbox": "6.x", - "@turf/boolean-point-in-polygon": "6.x", - "@turf/boolean-point-on-line": "6.x", - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/circle": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/circle/-/circle-6.0.1.tgz", - "integrity": "sha512-pF9XsYtCvY9ZyNqJ3hFYem9VaiGdVNQb0SFq/zzDMwH3iWZPPJQHnnDB/3e8RD1VDtBBov9p5uO2k7otsfezjw==", - "requires": { - "@turf/destination": "6.x", - "@turf/helpers": "6.x" - } - }, - "@turf/clean-coords": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/clean-coords/-/clean-coords-5.1.5.tgz", - "integrity": "sha1-EoAKmKeMmkUqcuxChJPEOs8q2h8=", - "requires": { - "@turf/helpers": "^5.1.5", - "@turf/invariant": "^5.1.5" - }, - "dependencies": { - "@turf/helpers": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", - "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" - }, - "@turf/invariant": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-5.2.0.tgz", - "integrity": "sha1-8BUP9ykLOFd7c9CIt5MsHuCqkKc=", - "requires": { - "@turf/helpers": "^5.1.5" - } - } - } - }, - "@turf/clone": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.0.2.tgz", - "integrity": "sha512-UVpYPnW3wRj3bPncR6Z2PRbowBk+nEdVWgGewPxrKKLfvswtVtG9n/OIyvbU3E3ZOadBVxTH2uAMEMOz4800FA==", - "requires": { - "@turf/helpers": "6.x" - } - }, - "@turf/destination": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/destination/-/destination-6.0.1.tgz", - "integrity": "sha512-MroK4nRdp7as174miCAugp8Uvorhe6rZ7MJiC9Hb4+hZR7gNFJyVKmkdDDXIoCYs6MJQsx0buI+gsCpKwgww0Q==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/distance": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.0.1.tgz", - "integrity": "sha512-q7t7rWIWfkg7MP1Vt4uLjSEhe5rPfCO2JjpKmk7JC+QZKEQkuvHEqy3ejW1iC7Kw5ZcZNR3qdMGGz+6HnVwqvg==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/helpers": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.1.4.tgz", - "integrity": "sha512-vJvrdOZy1ngC7r3MDA7zIGSoIgyrkWcGnNIEaqn/APmw+bVLF2gAW7HIsdTxd12s5wQMqEpqIQrmrbRRZ0xC7g==" - }, - "@turf/intersect": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@turf/intersect/-/intersect-6.1.3.tgz", - "integrity": "sha512-SeAJG/zPRRTeyK2OifkPoyLq60q8tv8prpPIH3R8ZhyF4MdLOnMv5MURaQ6kQd+3UTDrL+pYm6rqbPvln1zqIw==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x", - "martinez-polygon-clipping": "^0.4.3" - } - }, - "@turf/invariant": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.1.2.tgz", - "integrity": "sha512-WU08Ph8j0J2jVGlQCKChXoCtI50BB3yEH21V++V0T4cR1T27HKCxkehV2sYMwTierfMBgjwSwDIsxnR4/2mWXg==", - "requires": { - "@turf/helpers": "6.x" - } - }, - "@turf/line-intersect": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/line-intersect/-/line-intersect-6.0.2.tgz", - "integrity": "sha512-pfL/lBu7ukBPdTjvSCmcNUzZ83V4R95htwqs5NqU8zeS4R+5KTwacbrOYKztjpmHBwUmPEIIpSbqkUoD0Fp7kg==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x", - "@turf/line-segment": "6.x", - "@turf/meta": "6.x", - "geojson-rbush": "3.x" - } - }, - "@turf/line-segment": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/line-segment/-/line-segment-6.0.2.tgz", - "integrity": "sha512-8AkzDHoNw3X68y115josal+lvdAi4b2P1K0YNTKGyLRBaUhPXVSuMBpMd53FRF1hYEb9UJgMbugF9ZE7m5L6zg==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x", - "@turf/meta": "6.x" - } - }, - "@turf/meta": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.0.2.tgz", - "integrity": "sha512-VA7HJkx7qF1l3+GNGkDVn2oXy4+QoLP6LktXAaZKjuT1JI0YESat7quUkbCMy4zP9lAUuvS4YMslLyTtr919FA==", - "requires": { - "@turf/helpers": "6.x" - } - }, - "@turf/point-to-line-distance": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@turf/point-to-line-distance/-/point-to-line-distance-6.0.0.tgz", - "integrity": "sha512-2UuZFtn8MRfrqBHSqkrH/jm5q/VedyL7a4YC50Nd5FqXs5TgmAB7ms2igSbCkyaOtRypGhMl9fun3Hg5PIVRMQ==", - "requires": { - "@turf/bearing": "6.x", - "@turf/distance": "6.x", - "@turf/helpers": "6.x", - "@turf/invariant": "6.x", - "@turf/meta": "6.x", - "@turf/projection": "6.x", - "@turf/rhumb-bearing": "6.x", - "@turf/rhumb-distance": "6.x" - } - }, - "@turf/polygon-to-line": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@turf/polygon-to-line/-/polygon-to-line-6.0.3.tgz", - "integrity": "sha512-cJUy7VYLAhgnTBOtYFjNzh5bSlAS/qM8gUHXRGrIxI22RUJk4FXs/X2MEJ4Ki2flCiSeOjRIUEawEslNe7w7RA==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/projection": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/projection/-/projection-6.0.1.tgz", - "integrity": "sha512-Y3RvGT6I53MjYKLG69e9sMk45wJXcLbrEO1t6P3WQQQGqA2gYhhMJyV41vE2Z2llrJpvs2dDx/tIeQzGd0HHMQ==", - "requires": { - "@turf/clone": "6.x", - "@turf/helpers": "6.x", - "@turf/meta": "6.x" - } - }, - "@turf/rhumb-bearing": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/rhumb-bearing/-/rhumb-bearing-6.0.1.tgz", - "integrity": "sha512-MVBra8OVfjM4+/N0B3o6cBIYg9p/uRKzA9uk05RfrzasEbUL1vdD23LkTooVL74Yw4UxL8BQD9hS5Re2COJFDA==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/rhumb-distance": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@turf/rhumb-distance/-/rhumb-distance-6.0.1.tgz", - "integrity": "sha512-3G45DQtQByzzfHFPcCyJdUZFwsd45zfZ7sAb1ddF7mhEj4G70+T2G3GKjInymqDNrbyh2gbG6wQiZSToC8Uf9g==", - "requires": { - "@turf/helpers": "6.x", - "@turf/invariant": "6.x" - } - }, - "@turf/simplify": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/simplify/-/simplify-5.1.5.tgz", - "integrity": "sha1-Csjyei60IYGD7dmZjDJ1q+QIuSY=", - "requires": { - "@turf/clean-coords": "^5.1.5", - "@turf/clone": "^5.1.5", - "@turf/helpers": "^5.1.5", - "@turf/meta": "^5.1.5" - }, - "dependencies": { - "@turf/clone": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-5.1.5.tgz", - "integrity": "sha1-JT6NNUdxgZduM636tQoPAqfw42c=", - "requires": { - "@turf/helpers": "^5.1.5" - } - }, - "@turf/helpers": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-5.1.5.tgz", - "integrity": "sha1-FTQFInq5M9AEpbuWQantmZ/L4M8=" - }, - "@turf/meta": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-5.2.0.tgz", - "integrity": "sha1-OxrUhe4MOwsXdRMqMsOE1T5LpT0=", - "requires": { - "@turf/helpers": "^5.1.5" - } - } - } - }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, - "@types/geojson": { - "version": "7946.0.7", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", - "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==" - }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", @@ -2134,12 +1676,8 @@ "@types/node": { "version": "14.10.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.10.2.tgz", - "integrity": "sha512-IzMhbDYCpv26pC2wboJ4MMOa9GKtjplXfcAqrMeNJpUUwpM/2ATt2w1JPUXwS6spu856TvKZL2AOmeU2rAxskw==" - }, - "@types/proj4": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@types/proj4/-/proj4-2.5.0.tgz", - "integrity": "sha512-9bR9qvg4wZE6UiIlmhodCOZ2r38SeN8T35SsmMDuIMfACxxaMvIwiwoTJnEA9f/KEhL+BQSuD+arbZucUzYu7w==" + "integrity": "sha512-IzMhbDYCpv26pC2wboJ4MMOa9GKtjplXfcAqrMeNJpUUwpM/2ATt2w1JPUXwS6spu856TvKZL2AOmeU2rAxskw==", + "dev": true }, "@types/q": { "version": "1.5.2", @@ -2335,20 +1873,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, "accepts": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", @@ -2461,7 +1985,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { "version": "3.2.1", @@ -2485,16 +2010,8 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true }, "argparse": { "version": "1.0.10", @@ -2873,7 +2390,8 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base": { "version": "0.11.2", @@ -2945,7 +2463,8 @@ "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", - "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==" + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true }, "base64id": { "version": "2.0.0", @@ -2977,17 +2496,6 @@ "callsite": "1.0.0" } }, - "better-sqlite3": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz", - "integrity": "sha512-4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ==", - "requires": { - "bindings": "^1.5.0", - "integer": "^3.0.1", - "prebuild-install": "^5.3.3", - "tar": "4.4.10" - } - }, "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", @@ -3000,68 +2508,6 @@ "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", - "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.0.tgz", - "integrity": "sha512-cd+5r1VLBwUqTrmnzW+D7ABkJUM6mr7uv1dv+6jRw4Rcl7tFIFHDqHPL98LhpGFn3dbAt3gtLxtrWp4m1kFrqg==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, "blob": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", @@ -3188,6 +2634,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3336,7 +2783,8 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "buffer-indexof": { "version": "1.1.1", @@ -3585,16 +3033,6 @@ "integrity": "sha512-AHpONWuGFWO8yY9igdXH94tikM6ERS84286r0cAMAXYFtJBk76lhiMhtCxBJNBZsD6hzlvpWZ2AtbVFEkf4JQA==", "dev": true }, - "canvas": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.0.tgz", - "integrity": "sha512-bEO9f1ThmbknLPxCa8Es7obPlN9W3stB1bo7njlhOFKIdUTldeTqXCh9YclCPAi2pSQs84XA0jq/QEZXSzgyMw==", - "requires": { - "nan": "^2.14.0", - "node-pre-gyp": "^0.11.0", - "simple-get": "^3.0.3" - } - }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", @@ -4324,7 +3762,8 @@ "chownr": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", - "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==" + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true }, "chroma-js": { "version": "1.4.0", @@ -4468,7 +3907,8 @@ "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", - "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=" + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true }, "cliui": { "version": "6.0.0", @@ -4547,7 +3987,8 @@ "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "collection-visit": { "version": "1.0.0", @@ -4691,12 +4132,14 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "concat-stream": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", + "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "~2.0.0", @@ -4706,12 +4149,14 @@ "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true }, "readable-stream": { "version": "2.0.6", "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -4770,11 +4215,6 @@ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -5123,7 +4563,8 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "cosmiconfig": { "version": "5.2.0", @@ -5747,14 +5188,6 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, "deep-eql": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz", @@ -5786,11 +5219,6 @@ } } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -5970,11 +5398,6 @@ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -6003,11 +5426,6 @@ "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=" - }, "detect-node": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", @@ -6157,11 +5575,6 @@ "unidragger": "^2.3.0" } }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, "duplexify": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", @@ -6244,6 +5657,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, "requires": { "once": "^1.4.0" } @@ -6560,7 +5974,8 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { "version": "1.14.3", @@ -6997,20 +6412,6 @@ "resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz", "integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==" }, - "event-stream": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", - "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", - "requires": { - "duplexer": "^0.1.1", - "from": "^0.1.7", - "map-stream": "0.0.7", - "pause-stream": "^0.0.11", - "split": "^1.0.1", - "stream-combiner": "^0.2.2", - "through": "^2.3.8" - } - }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -7042,12 +6443,6 @@ "safe-buffer": "^5.1.1" } }, - "exit-hook": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", - "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", - "optional": true - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -7098,11 +6493,6 @@ } } }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" - }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", @@ -7314,7 +6704,8 @@ "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true }, "extend-shallow": { "version": "3.0.2", @@ -7639,15 +7030,11 @@ "schema-utils": "^0.4.5" } }, - "file-type": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.0.tgz", - "integrity": "sha512-WTvyKq8yjtNmUtVAD8LGcTkvtCdJglM6ks2HTqEClm6+65XTqM6MoZYA1Vtra50DLRWLiM38fEs1y56f5VhnUA==" - }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true }, "fill-range": { "version": "4.0.0", @@ -7849,11 +7236,6 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=" - }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", @@ -7873,11 +7255,6 @@ "null-check": "^1.0.0" } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, "fs-extra": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.0.0.tgz", @@ -7892,6 +7269,8 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "dev": true, + "optional": true, "requires": { "minipass": "^2.2.1" } @@ -7911,7 +7290,8 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "fsevents": { "version": "2.1.3", @@ -7968,62 +7348,12 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", "dev": true }, - "geojson-rbush": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/geojson-rbush/-/geojson-rbush-3.1.2.tgz", - "integrity": "sha512-grkfdg3HIeTjwTfiJe5FT8+fGU3fABCc+vRJDBwdQz9kkLF0Sbif2gs2JUzjewwgmnvLGy9fInySDeADoNuk7w==", - "requires": { - "@turf/bbox": "*", - "@turf/helpers": "6.x", - "@turf/meta": "6.x", - "rbush": "^2.0.0" - }, - "dependencies": { - "quickselect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-1.1.1.tgz", - "integrity": "sha512-qN0Gqdw4c4KGPsBOQafj6yj/PA6c/L63f6CaZ/DCF/xF4Esu3jVmKLUDYxghFx8Kb/O7y9tI7x2RjTSXwdK1iQ==" - }, - "rbush": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/rbush/-/rbush-2.0.2.tgz", - "integrity": "sha512-XBOuALcTm+O/H8G90b6pzu6nX6v2zCKiFG4BJho8a+bY6AER6t8uQUZdi5bomQc0AprCWhEGa7ncAbbRap0bRA==", - "requires": { - "quickselect": "^1.0.1" - } - } - } - }, - "geojson-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/geojson-stream/-/geojson-stream-0.1.0.tgz", - "integrity": "sha512-svSg5fFXPaTiqzEBGXScA+nISaeC9rLvku2PH+wM5LToATUw2bLIrvls43ymnT9Xnp51nBPVyK9m4Af40KpJ7w==", - "requires": { - "JSONStream": "^1.0.0", - "through": "^2.3.4" - } - }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -8151,15 +7481,11 @@ "assert-plus": "^1.0.0" } }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" - }, "glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", + "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8356,6 +7682,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -8395,11 +7722,6 @@ "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -8701,6 +8023,7 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } @@ -8737,22 +8060,6 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "image-size": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", - "integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==", - "requires": { - "queue": "6.0.1" - } - }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -8878,6 +8185,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -8886,12 +8194,14 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "ini": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true }, "inquirer": { "version": "3.3.0", @@ -8948,15 +8258,6 @@ } } }, - "integer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz", - "integrity": "sha512-OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw==", - "requires": { - "bindings": "^1.5.0", - "prebuild-install": "^5.3.3" - } - }, "internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -9203,6 +8504,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -9285,7 +8587,8 @@ "is-promise": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", - "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true }, "is-regex": { "version": "1.0.4", @@ -9376,7 +8679,8 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, "isbinaryfile": { "version": "4.0.6", @@ -9596,11 +8900,6 @@ "graceful-fs": "^4.1.6" } }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -10469,11 +9768,6 @@ "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, - "map-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", - "integrity": "sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=" - }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", @@ -10512,15 +9806,6 @@ "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz", "integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==" }, - "martinez-polygon-clipping": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/martinez-polygon-clipping/-/martinez-polygon-clipping-0.4.3.tgz", - "integrity": "sha512-3ZNS0ksKhWTLsmCUkNf+/UimndZ5U2cVOS0I+IjiwF+M23E77TmeOZSmbRJbfCoQUog/vcQ42s3DXrhgOhgPqw==", - "requires": { - "splaytree": "^0.1.4", - "tinyqueue": "^1.2.0" - } - }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -10648,11 +9933,6 @@ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, "mini-css-extract-plugin": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz", @@ -10723,6 +10003,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -10730,12 +10011,15 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minipass": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -10744,7 +10028,9 @@ "yallist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true, + "optional": true } } }, @@ -10830,6 +10116,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "dev": true, + "optional": true, "requires": { "minipass": "^2.2.1" } @@ -10859,6 +10147,7 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { "minimist": "^1.2.5" }, @@ -10866,15 +10155,11 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true } } }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, "mkpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mkpath/-/mkpath-1.0.0.tgz", @@ -11375,7 +10660,8 @@ "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==" + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true }, "multicast-dns": { "version": "6.2.3", @@ -11399,11 +10685,6 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" - }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", @@ -11431,11 +10712,6 @@ } } }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -11462,26 +10738,6 @@ "ndarray": "^1.0.13" } }, - "needle": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz", - "integrity": "sha512-LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==", - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -11854,14 +11110,6 @@ "lower-case": "^1.1.1" } }, - "node-abi": { - "version": "2.19.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", - "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", - "requires": { - "semver": "^5.4.1" - } - }, "node-bitmap": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/node-bitmap/-/node-bitmap-0.0.1.tgz", @@ -11940,23 +11188,6 @@ } } }, - "node-pre-gyp": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - } - }, "node-releases": { "version": "1.0.0-alpha.11", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.0.0-alpha.11.tgz", @@ -11966,20 +11197,6 @@ "semver": "^5.3.0" } }, - "noop-logger": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" - }, - "nopt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", @@ -12007,29 +11224,6 @@ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", "dev": true }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==" - }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -12039,17 +11233,6 @@ "path-key": "^2.0.0" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -12068,7 +11251,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth-sign": { "version": "0.9.0", @@ -12079,7 +11263,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-component": { "version": "0.0.3", @@ -12290,6 +11475,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1" } @@ -12559,30 +11745,11 @@ "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" - }, - "os-shim": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", - "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=", - "optional": 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=" - }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "p-finally": { "version": "1.0.0", @@ -12791,7 +11958,8 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-is-inside": { "version": "1.0.2", @@ -12823,14 +11991,6 @@ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "requires": { - "through": "~2.3" - } - }, "pbf": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", @@ -12880,12 +12040,14 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -13213,39 +12375,6 @@ "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", "dev": true }, - "prebuild-install": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz", - "integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==", - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.7.0", - "noop-logger": "^0.1.1", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0", - "which-pm-runs": "^1.0.0" - }, - "dependencies": { - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", @@ -13267,7 +12396,8 @@ "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==" + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true }, "progress": { "version": "2.0.0", @@ -13536,14 +12666,6 @@ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "queue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.1.tgz", - "integrity": "sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==", - "requires": { - "inherits": "~2.0.3" - } - }, "quickselect": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", @@ -13605,21 +12727,11 @@ "quickselect": "^2.0.0" } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, "readable-stream": { "version": "2.3.6", "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -13634,6 +12746,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -13853,54 +12966,6 @@ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, - "reproject": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/reproject/-/reproject-1.2.5.tgz", - "integrity": "sha512-cTH78fi1uuv5gzW/GVepO4LbCvOUhO0X2BEyyvrKkYb4KPRmDPs7cZnIxemHPUIch/CoSI8MPLmXRHZFSHjbKw==", - "requires": { - "concat-stream": "^2.0.0", - "event-stream": "^4.0.0", - "geojson-stream": "0.1.0", - "minimist": "^1.2.0", - "proj4": "^2.4.4" - }, - "dependencies": { - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, "request": { "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", @@ -14114,6 +13179,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, "requires": { "glob": "^7.0.5" } @@ -14128,15 +13194,11 @@ "inherits": "^2.0.1" } }, - "rtree-sql.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rtree-sql.js/-/rtree-sql.js-1.0.0.tgz", - "integrity": "sha512-2ISdbYUyUmOU757K8g/vBBp45MUoolAUV2v7bMm0LxI5wdEIESz1ExutcEMjdQ/gp4zcofGjEa/0FBL1P9rXAg==" - }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, "requires": { "is-promise": "^2.1.0" } @@ -14156,12 +13218,6 @@ "aproba": "^1.1.1" } }, - "rx": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", - "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", - "optional": true - }, "rx-lite": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", @@ -14180,7 +13236,8 @@ "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": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true }, "safe-regex": { "version": "1.1.0", @@ -14194,12 +13251,14 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true }, "schema-utils": { "version": "0.4.7", @@ -14261,7 +13320,8 @@ "semver": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", + "dev": true }, "send": { "version": "0.17.1", @@ -14410,7 +13470,8 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true }, "set-value": { "version": "2.0.1", @@ -14544,22 +13605,8 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "simple-swizzle": { "version": "0.2.2", @@ -14971,16 +14018,6 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "spawn-sync": { - "version": "1.0.15", - "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", - "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", - "optional": true, - "requires": { - "concat-stream": "^1.4.7", - "os-shim": "^0.1.2" - } - }, "spdx-correct": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", @@ -15088,19 +14125,6 @@ } } }, - "splaytree": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/splaytree/-/splaytree-0.1.4.tgz", - "integrity": "sha512-D50hKrjZgBzqD3FT2Ek53f2dcDLAQT8SSGrzj3vidNH5ISRgceeGVJ2dQIthKOuayqFXfFjXheHNo4bbt9LhRQ==" - }, - "split": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", - "requires": { - "through": "2" - } - }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", @@ -15212,15 +14236,6 @@ "readable-stream": "^2.0.2" } }, - "stream-combiner": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", - "integrity": "sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=", - "requires": { - "duplexer": "~0.1.1", - "through": "~2.3.4" - } - }, "stream-each": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", @@ -15308,6 +14323,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -15528,12 +14544,14 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -15547,7 +14565,8 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "style-loader": { "version": "0.21.0", @@ -15716,86 +14735,6 @@ "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", "dev": true }, - "tar": { - "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.5", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "tar-fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", - "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } - } - }, - "tar-stream": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz", - "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==", - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, "tcp-port-used": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz", @@ -16019,7 +14958,8 @@ "through": { "version": "2.3.8", "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "through2": { "version": "2.0.3", @@ -16058,11 +14998,6 @@ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", "dev": true }, - "tinyqueue": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-1.2.3.tgz", - "integrity": "sha512-Qz9RgWuO9l8lT+Y9xvbzhPT2efIUIFd69N7eF7tJ9lnQl0iLj1M7peK7IoUGZL9DJHw9XftqLreccfxcQgYLxA==" - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -16153,6 +15088,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -16208,7 +15144,8 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true }, "ua-parser-js": { "version": "0.7.21", @@ -16572,7 +15509,8 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "util.promisify": { "version": "1.0.0", @@ -17879,11 +16817,6 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, - "webworkify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/webworkify/-/webworkify-1.5.0.tgz", - "integrity": "sha512-AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==" - }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -17899,15 +16832,11 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "which-pm-runs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", - "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=" - }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -17923,14 +16852,6 @@ "resolved": "https://registry.npmjs.org/wkt-parser/-/wkt-parser-1.2.3.tgz", "integrity": "sha512-s7zrOedGuHbbzMaQOuf8HacuCYp3LmmrHjkkN//7UEAzsYz7xJ6J+j/84ZWZkQcrRqi3xXyuc4odPHj7PEB0bw==" }, - "wkx": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.4.8.tgz", - "integrity": "sha512-ikPXMM9IR/gy/LwiOSqWlSL3X/J5uk9EO2hHNRXS41eTLXaUFEVw9fn/593jW/tE5tedNg8YjT5HkCa4FqQZyQ==", - "requires": { - "@types/node": "*" - } - }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -18021,7 +16942,8 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "write": { "version": "0.2.1", diff --git a/mapea-rest/.tern-project b/mapea-rest/.tern-project deleted file mode 100644 index 2fef3d2df..000000000 --- a/mapea-rest/.tern-project +++ /dev/null @@ -1 +0,0 @@ -{"libs":["browser","ecma5"],"ide":{}} \ No newline at end of file diff --git a/mapea-rest/pom.xml b/mapea-rest/pom.xml index ce289b5b0..ad2dd3e00 100644 --- a/mapea-rest/pom.xml +++ b/mapea-rest/pom.xml @@ -1,196 +1,204 @@ - - 4.0.0 - mapea-rest - war - Mapea REST - - 1.19 - 3.1.1 - UTF-8 - ${maven.build.timestamp} - dd-MM-yyyy - - - es.juntadeandalucia.mapea - mapea-parent - 6.0.0 - ../mapea-parent/pom.xml - - - - European Union Public Licence - EUPL v.1.1 - LICENSE.txt - - - - - Guadaltel S.A. - www.guadaltel.com - - - - mapea - - - src/main/resources/properties - true - - **/*.properties - **/resourcesPlugins.json - - - - - ${basedir}/../mapea-parent/src/main/filters/${environment}.properties - - - - org.apache.maven.plugins - maven-compiler-plugin - true - - 1.7 - 1.7 - ${project.build.sourceEncoding} - - - - maven-war-plugin - 2.0.2 - - filter/** - - - - ${project.build.directory}/${project.build.finalName}/filter - js - true - - configuration.js - configuration-${project.version}.js - - - - - - GuadalTEL S.A. - - - ${project.build.sourceEncoding} - - - - org.apache.maven.plugins - maven-dependency-plugin - - - - unpack-js - - unpack-dependencies - - generate-resources - - ${project.build.directory}/${project.build.finalName} - ${project.groupId} - mapea-js - mapea-proxy - true - - - - - - - - com.spotify - docker-maven-plugin - 0.2.11 - - ${basedir}/../mapea-parent/src/main/docker/mapea - - - / - ${project.build.directory} - ${project.build.finalName}.war - - - - - - - - - com.sun.jersey - jersey-servlet - ${jersey.version} - - - com.sun.jersey - jersey-json - ${jersey.version} - - - junit - junit - 4.8.2 - test - - - com.sun.jersey - jersey-client - ${jersey.version} - test - - - org.glassfish.extras - glassfish-embedded-web - ${glassfish.version} - test - - - org.apache.commons - commons-lang3 - 3.4 - - - org.json - json - 20140107 - - - - ${project.groupId} - mapea-js - ${project.version} - dist-resources - zip - provided - - - ${project.groupId} - mapea-js - ${project.version} - doc-resources - zip - provided - - - ${project.groupId} - mapea-js - ${project.version} - templates-resources - zip - provided - - + + 4.0.0 + mapea-rest + war + Mapea REST + + 1.19 + 3.1.1 + UTF-8 + ${maven.build.timestamp} + dd-MM-yyyy + + + es.juntadeandalucia.mapea + mapea-parent + 6.0.0 + ../mapea-parent/pom.xml + + + + European Union Public Licence - EUPL v.1.1 + LICENSE.txt + + + + + Guadaltel S.A. + www.guadaltel.com + + + + mapea + + + src/main/resources/properties + true + + **/*.properties + **/resourcesPlugins.json + + + + + ${basedir}/../mapea-parent/src/main/filters/${environment}.properties + + + + org.apache.maven.plugins + maven-compiler-plugin + true + + 1.7 + 1.7 + ${project.build.sourceEncoding} + + + + maven-war-plugin + 2.0.2 + + filter/** + + + + ${project.build.directory}/${project.build.finalName}/filter + js + true + + configuration.js + configuration-${project.version}.js + + + + + + GuadalTEL S.A. + + + ${project.build.sourceEncoding} + + + + org.apache.maven.plugins + maven-dependency-plugin + + + + unpack-js + + unpack-dependencies + + generate-resources + + ${project.build.directory}/${project.build.finalName} + ${project.groupId} + mapea-js + mapea-proxy + true + + + + + + + + com.spotify + docker-maven-plugin + 0.2.11 + + ${basedir}/../mapea-parent/src/main/docker/mapea + + + / + ${project.build.directory} + ${project.build.finalName}.war + + + + + + + + + com.sun.jersey + jersey-servlet + ${jersey.version} + + + com.sun.jersey + jersey-json + ${jersey.version} + + + junit + junit + 4.8.2 + test + + + com.sun.jersey + jersey-client + ${jersey.version} + test + + + org.glassfish.extras + glassfish-embedded-web + ${glassfish.version} + test + + + org.apache.commons + commons-lang3 + 3.4 + + + org.json + json + 20140107 + + + + ${project.groupId} + mapea-js + ${project.version} + dist-resources + zip + provided + + + ${project.groupId} + mapea-js + ${project.version} + doc-resources + zip + provided + + + ${project.groupId} + mapea-js + ${project.version} + templates-resources + zip + provided + + - - - ${project.groupId} - mapea-proxy - ${project.version} - - - + + + ${project.groupId} + mapea-proxy + ${project.version} + + + + + io.swagger + swagger-jersey-jaxrs + 1.6.2 + + diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java index 2eee47acc..5a107e951 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java @@ -1,5 +1,7 @@ package es.juntadeandalucia.mapea.api; +import java.lang.annotation.ElementType; +import java.lang.annotation.Target; import java.util.ResourceBundle; import javax.servlet.ServletContext; @@ -8,6 +10,7 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Context; +import javax.xml.ws.RequestWrapper; import org.json.JSONArray; import org.json.JSONObject; @@ -15,329 +18,272 @@ import es.juntadeandalucia.mapea.builder.JSBuilder; import es.juntadeandalucia.mapea.parameter.PluginAPI; import es.juntadeandalucia.mapea.plugins.PluginsManager; -import java.io.BufferedReader; -import java.net.HttpURLConnection; -import javax.ws.rs.core.MediaType; -import java.io.InputStreamReader; -import java.net.URL; -import javax.ws.rs.core.Response; -import java.nio.file.Files; -import java.nio.file.Paths; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.Contact; +import io.swagger.annotations.Example; +import io.swagger.annotations.ExampleProperty; +import io.swagger.annotations.ExternalDocs; +import io.swagger.annotations.Info; +import io.swagger.annotations.License; +import io.swagger.annotations.ResponseHeader; +import io.swagger.annotations.SwaggerDefinition; +import io.swagger.annotations.Tag; +import io.swagger.util.Json; +import io.swagger.annotations.ApiResponse; /** * This class manages the available actions an user can execute - * + * * @author Guadaltel S.A. */ + +@SwaggerDefinition(info = @Info(description = "description", version = "V0.0", title = "Documentacion Mapea", termsOfService = "Lorem ipsum dolor", contact = @Contact(name = "Name", email = "email", url = "Lorem ipsum dolor"), license = @License(name = "license", url = "Lorem ipsum dolor")), + + externalDocs = @ExternalDocs(value = "External docs", url = "Lorem ipsum dolor")) + @Path("/actions") +@Api(value = "ActionsWS Service", description = "REST para el servicio de proxy") @Produces("application/javascript") + public class ActionsWS { - @Context - private ServletContext context; - - private ResourceBundle versionProperties = ResourceBundle.getBundle("version"); - private ResourceBundle configProperties = ResourceBundle.getBundle("configuration"); - - /* - # services - services=${services} - # theme - theme.urls=${theme.urls} - theme.names=${theme.names} - # projection - projection=${mapea.proj.default} - */ - - /** - * The available actions the user can execute - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - public String showAvailableActions (@QueryParam("callback") String callbackFn) { - JSONArray actions = new JSONArray(); - - actions.put("/controls"); - actions.put("/contexts"); - actions.put("/services"); - actions.put("/version"); - actions.put("/themes"); - actions.put("/projection"); - actions.put("/plugins"); - - actions.put("/../../doc"); + @Context + private ServletContext context; + + private ResourceBundle versionProperties = ResourceBundle.getBundle("version"); + private ResourceBundle configProperties = ResourceBundle.getBundle("configuration"); + + /* + * # services services=${services} # theme theme.urls=${theme.urls} + * theme.names=${theme.names} # projection projection=${mapea.proj.default} + */ + + /** + * The available actions the user can execute + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + + @GET + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + @Produces("application/json") + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "prueba", value = "descripcion", required = false, dataType = "String", paramType = "query" +// +// ,examples = @Example(value = {@ExampleProperty(mediaType = "application/json", value = "{foo: whatever, bar: whatever2}")}) +// ) }) + +// public Prediction predict( +// @QueryParam("content") @NotEmpty String content, +// @HeaderParam("outputProbability") @DefaultValue("false") Boolean outputProbability) { + + public String showAvailableActions(@QueryParam("callback") String callbackFn) { + JSONArray actions = new JSONArray(); + + actions.put("/controls"); + actions.put("/contexts"); + actions.put("/services"); + actions.put("/version"); + actions.put("/themes"); + actions.put("/projection"); + actions.put("/plugins"); + + actions.put("/../../doc"); // actions.put("/apk"); - return JSBuilder.wrapCallback(actions, callbackFn); - } - - /** - * The available controls the user can use - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/controls") - public String showAvailableControls (@QueryParam("callback") String callbackFn) { - String controlsRaw = configProperties.getString("controls"); - String[] controls = controlsRaw.split(","); - - JSONArray controlsJSON = new JSONArray(); - - for (String control : controls) { - controlsJSON.put(control); - } - - return JSBuilder.wrapCallback(controlsJSON, callbackFn); - } - - /** - * The available WMC files the user can use - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/contexts") - public String showAvailableContexts (@QueryParam("callback") String callbackFn) { - String wmcsRaw = configProperties.getString("wmcs"); - String[] wmcs = wmcsRaw.split(","); - - JSONArray wmcsJSON = new JSONArray(); - - for (String wmc : wmcs) { - wmcsJSON.put(wmc); - } - - return JSBuilder.wrapCallback(wmcsJSON, callbackFn); - } - - /** - * Returns the available services for the user - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/services") - public String showAvailableServices (@QueryParam("callback") String callbackFn) { - String servicesRaw = configProperties.getString("services"); - String[] services = servicesRaw.split(","); - - JSONArray servicesJSON = new JSONArray(); - - for (String service : services) { - servicesJSON.put(service); - } - - return JSBuilder.wrapCallback(servicesJSON, callbackFn); - } - - /** - * Returns the available themes for the user - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/themes") - public String showAvailableThemes (@QueryParam("callback") String callbackFn) { - String themesRaw = configProperties.getString("themes"); - String[] themes = themesRaw.split(","); - - JSONArray themesJSON = new JSONArray(); - - for (String theme : themes) { - themesJSON.put(theme); - } - - return JSBuilder.wrapCallback(themesJSON, callbackFn); - } - - /** - * Returns the default projection for maps - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/projection") - public String showDefaultProjection (@QueryParam("callback") String callbackFn) { - String projectionRaw = configProperties.getString("projection"); - String[] projection = projectionRaw.split("\\*"); - - JSONObject projectionJSON = new JSONObject(); - projectionJSON.put("code", projection[0]); - projectionJSON.put("units", projection[1]); - - return JSBuilder.wrapCallback(projectionJSON, callbackFn); - } - - /** - * Returns the available plugins for mapea - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/plugins") - public String showAvailablePlugins (@QueryParam("callback") String callbackFn) { - JSONArray pluginsJSON = new JSONArray(); - - PluginsManager.init(context); - for (PluginAPI plugin : PluginsManager.getAllPlugins()) { - pluginsJSON.put(plugin.getName()); - } - - return JSBuilder.wrapCallback(pluginsJSON, callbackFn); - } - - /** - * Provides the version number and date of the current - * build - * - * @param callbackFn the name of the javascript - * function to execute as callback - * - * @return the javascript code - */ - @GET - @Path("/version") - public String showVersion (@QueryParam("callback") String callbackFn) { - - JSONObject version = new JSONObject(); - - version.put("number", versionProperties.getString("number")); - version.put("date", versionProperties.getString("date")); - - return JSBuilder.wrapCallback(version, callbackFn); - } + return JSBuilder.wrapCallback(actions, callbackFn); + } /** - * Provides the JS and CSS resources of the plugins for each version of Mapea - * - * @param callbackFn - * the name of the javascript function to execute as callback - * @param name - * plugin name to filter - * @param version - * version number Mapea to filter - * @param type - * file type to filter - * @return the resources available for the plugins + * The available controls the user can use + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code */ @GET - @Path("/resourcesPlugins") - public Response getResourcesPlugins( - @QueryParam("callback") String callbackFn, - @QueryParam("name") String name, - @QueryParam("version") String version, - @QueryParam("type") String type) { - - Response response = null; - - try { - String file = new String(Files.readAllBytes(Paths.get(context - .getRealPath("/WEB-INF/classes/resourcesPlugins.json")))); - JSONArray allPlugins = (JSONArray) new JSONObject(file) - .get("plugins"); - JSONArray arrayResults = new JSONArray(); - JSONObject plugin = null; - - Boolean showAllPlugins = false; - if (name == null) { - showAllPlugins = true; - } - Boolean showAllVersions = false; - if (version == null) { - showAllVersions = true; - } - - for (int i = 0; i < allPlugins.length(); i++) { - plugin = (JSONObject) allPlugins.get(i); - String namePlugin = (String) plugin.get("name"); - boolean findPlugin = !showAllPlugins && name.equals(namePlugin); - if (showAllPlugins || findPlugin) { - - JSONArray versions = (JSONArray) plugin.get("versions"); - JSONObject aux = new JSONObject(); - aux.put("name", namePlugin); - JSONArray links = new JSONArray(); - - for (int j = 0; j < versions.length(); j++) { - JSONObject resources = (JSONObject) versions.get(j); - String versionMapea = (String) resources.get("mapea"); - boolean findVersion = !showAllVersions - && version.equals(versionMapea); - if (showAllVersions || findVersion) { - links.put(resources); - if (findVersion) { - break; - } - } - } - aux.put("resources", links); - arrayResults.put(aux); - if (findPlugin) { - break; - } - } - } - - if (name != null && version != null && type != null) { - StringBuilder content = new StringBuilder(); - String resourceType = (String) (((JSONArray) arrayResults - .getJSONObject(0).get("resources")).getJSONObject(0)) - .get(type); - - URL url = new URL(resourceType); - HttpURLConnection connection = (HttpURLConnection) url - .openConnection(); - connection.setRequestMethod("GET"); - - BufferedReader rd = new BufferedReader(new InputStreamReader( - connection.getInputStream())); - String line; - - while ((line = rd.readLine()) != null) { - content.append(line+"\r\n"); - } - String mediaType = "application/javascript"; - if(type.equals("css")){ - mediaType="text/css"; - } - response = Response.ok(null, mediaType) - .entity(content.toString()).build(); - } else { - response = Response.ok(null, MediaType.APPLICATION_JSON) - .entity(arrayResults.toString()).build(); - } - - } catch (Exception e) { - e.printStackTrace(); - response = Response.status(400).entity("An error has occurred " +e.toString()).build(); + @Path("/controls") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showAvailableControls(@QueryParam("callback") String callbackFn) { + String controlsRaw = configProperties.getString("controls"); + String[] controls = controlsRaw.split(","); + + JSONArray controlsJSON = new JSONArray(); + + for (String control : controls) { + controlsJSON.put(control); } - return response; + return JSBuilder.wrapCallback(controlsJSON, callbackFn); + } + /** + * The available WMC files the user can use + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + @GET + @Path("/contexts") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showAvailableContexts(@QueryParam("callback") String callbackFn) { + String wmcsRaw = configProperties.getString("wmcs"); + String[] wmcs = wmcsRaw.split(","); + + JSONArray wmcsJSON = new JSONArray(); + + for (String wmc : wmcs) { + wmcsJSON.put(wmc); + } + + return JSBuilder.wrapCallback(wmcsJSON, callbackFn); } + /** + * Returns the available services for the user + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + @GET + @Path("/services") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showAvailableServices(@QueryParam("callback") String callbackFn) { + String servicesRaw = configProperties.getString("services"); + String[] services = servicesRaw.split(","); + + JSONArray servicesJSON = new JSONArray(); + + for (String service : services) { + servicesJSON.put(service); + } + + return JSBuilder.wrapCallback(servicesJSON, callbackFn); + } + + /** + * Returns the available themes for the user + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + @GET + @Path("/themes") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showAvailableThemes(@QueryParam("callback") String callbackFn) { + String themesRaw = configProperties.getString("themes"); + String[] themes = themesRaw.split(","); + + JSONArray themesJSON = new JSONArray(); + + for (String theme : themes) { + themesJSON.put(theme); + } + + return JSBuilder.wrapCallback(themesJSON, callbackFn); + } + + /** + * Returns the default projection for maps + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + @GET + @Path("/projection") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showDefaultProjection(@QueryParam("callback") String callbackFn) { + String projectionRaw = configProperties.getString("projection"); + String[] projection = projectionRaw.split("\\*"); + + JSONObject projectionJSON = new JSONObject(); + projectionJSON.put("code", projection[0]); + projectionJSON.put("units", projection[1]); + + return JSBuilder.wrapCallback(projectionJSON, callbackFn); + } + + /** + * Returns the available plugins for mapea + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + @GET + @Path("/plugins") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showAvailablePlugins(@QueryParam("callback") String callbackFn) { + JSONArray pluginsJSON = new JSONArray(); + + PluginsManager.init(context); + for (PluginAPI plugin : PluginsManager.getAllPlugins()) { + pluginsJSON.put(plugin.getName()); + } + + return JSBuilder.wrapCallback(pluginsJSON, callbackFn); + } + + /** + * Provides the version number and date of the current build + * + * @param callbackFn the name of the javascript function to execute as callback + * + * @return the javascript code + */ + + @GET + @Path("/version") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + + public String showVersion(@QueryParam("callback") String callbackFn) { + + JSONObject version = new JSONObject(); + + version.put("number", versionProperties.getString("number")); + version.put("date", versionProperties.getString("date")); + + return JSBuilder.wrapCallback(version, callbackFn); + } } diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/BuilderWS.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/BuilderWS.java index b79577091..d5a1f07b0 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/BuilderWS.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/BuilderWS.java @@ -15,9 +15,15 @@ import es.juntadeandalucia.mapea.parameter.adapter.ParametersAdapterV3ToV4; import es.juntadeandalucia.mapea.parameter.parser.ParametersParser; import es.juntadeandalucia.mapea.plugins.PluginsManager; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.ResponseHeader; @Produces("application/javascript; charset=UTF-8") @Path("/") +@Api(value = "BuilderWS Service", description = "REST para el servicio de acciones") public class BuilderWS { @Context @@ -34,6 +40,11 @@ public class BuilderWS { */ @GET @Path("/js") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + public String js(@Context UriInfo uriInfo) { MultivaluedMap queryParams = uriInfo.getQueryParameters(); diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/Proxy.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/Proxy.java index 54353aa63..4d0a7429d 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/Proxy.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/Proxy.java @@ -29,6 +29,11 @@ import es.juntadeandalucia.mapea.bean.ProxyResponse; import es.juntadeandalucia.mapea.builder.JSBuilder; import es.juntadeandalucia.mapea.exception.InvalidResponseException; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.ResponseHeader; /** * This class manages the request from Mapea and it acts as proxy to check @@ -37,7 +42,10 @@ * @author Guadaltel S.A. */ @Path("/proxy") +@Api(value = "User Service", description = "REST Endpoints for User Service") @Produces("application/javascript") +@ApiResponses(value = { @ApiResponse(code = 200, message = "Solr re indexing completed successfully"), + @ApiResponse(code = 500, message = "Error occurred in server"), }) public class Proxy { // Ticket @@ -49,19 +57,17 @@ public class Proxy { private static final int IMAGE_MAX_BYTE_SIZE = Integer.parseInt(configProperties.getString("max.image.size")); /** - * Proxy to execute a request to specified URL using JSONP protocol to avoid - * the Cross-Domain restriction. + * Proxy to execute a request to specified URL using JSONP protocol to avoid the + * Cross-Domain restriction. * - * @param url - * URL of the request - * @param op - * type of mapea operation - * @param callbackFn - * function to execute as callback + * @param url URL of the request + * @param op type of mapea operation + * @param callbackFn function to execute as callback * * @return the javascript code */ @GET + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") public String proxy(@QueryParam("url") String url, @QueryParam("ticket") String ticket, @DefaultValue("GET") @QueryParam("method") String method, @QueryParam("callback") String callbackFn) { String response; @@ -89,20 +95,22 @@ public String proxy(@QueryParam("url") String url, @QueryParam("ticket") String } /** - * Proxy to execute a request to specified URL using JSONP protocol to avoid - * the Cross-Domain restriction. + * Proxy to execute a request to specified URL using JSONP protocol to avoid the + * Cross-Domain restriction. * - * @param url - * URL of the request - * @param op - * type of mapea operation - * @param callbackFn - * function to execute as callback + * @param url URL of the request + * @param op type of mapea operation + * @param callbackFn function to execute as callback * * @return the javascript code */ @GET @Path("/image") + @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") + + @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), + @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) + public Response proxyImage(@QueryParam("url") String url) { Response response; byte[] data; @@ -137,12 +145,9 @@ public Response proxyImage(@QueryParam("url") String url) { /** * Sends a GET operation request to the URL and gets its response. * - * @param url - * URL of the request - * @param op - * type of mapea operation - * @param ticketParameter - * user ticket + * @param url URL of the request + * @param op type of mapea operation + * @param ticketParameter user ticket * * @return the response of the request */ @@ -196,10 +201,8 @@ private ProxyResponse get(String url, String ticketParameter) throws HttpExcepti /** * Sends a POST operation request to the URL and gets its response. * - * @param url - * URL of the request - * @param op - * type of mapea operation + * @param url URL of the request + * @param op type of mapea operation * * @return the response of the request */ @@ -211,10 +214,8 @@ private ProxyResponse post(String url) { /** * Checks if the request and the operation are valid. * - * @param url - * URL of the request - * @param op - * type of mapea operation + * @param url URL of the request + * @param op type of mapea operation */ private void checkRequest(String url) { // TODO comprobar @@ -223,12 +224,9 @@ private void checkRequest(String url) { /** * Checks if the response is valid for tthe operation and the URL. * - * @param proxyResponse - * response got from the request - * @param url - * URL of the request - * @param op - * type of mapea operation + * @param proxyResponse response got from the request + * @param url URL of the request + * @param op type of mapea operation */ private void checkResponse(ProxyResponse proxyResponse, String url) { // TODO Auto-generated method stub @@ -237,8 +235,7 @@ private void checkResponse(ProxyResponse proxyResponse, String url) { /** * Checks if the response image is valid . * - * @param proxyResponse - * response got from the request + * @param proxyResponse response got from the request * @throws InvalidResponseException */ private void checkResponseImage(ProxyResponse proxyResponse) throws InvalidResponseException { @@ -276,10 +273,8 @@ private void checkResponseImage(ProxyResponse proxyResponse) throws InvalidRespo /** * Creates a response error using the specified message. * - * @param url - * URL of the request - * @param message - * message of the error + * @param url URL of the request + * @param message message of the error */ private ProxyResponse error(String url, String message) { ProxyResponse proxyResponse = new ProxyResponse(); @@ -291,10 +286,8 @@ private ProxyResponse error(String url, String message) { /** * Creates a response error using the specified exception. * - * @param url - * URL of the request - * @param exception - * Exception object + * @param url URL of the request + * @param exception Exception object */ private ProxyResponse error(String url, Exception exception) { return error(url, exception.getLocalizedMessage()); diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java new file mode 100644 index 000000000..e83961b8a --- /dev/null +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java @@ -0,0 +1,46 @@ +package es.juntadeandalucia.mapea.api; + +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.Properties; +import java.util.ResourceBundle; + +import javax.servlet.ServletConfig; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.xml.ws.ServiceMode; + +import com.sun.mail.util.BEncoderStream; + +import io.swagger.annotations.Contact; +import io.swagger.annotations.ExternalDocs; +import io.swagger.annotations.Info; +import io.swagger.annotations.License; +import io.swagger.annotations.SwaggerDefinition; +import io.swagger.jaxrs.config.BeanConfig; + +public class SwaggerConfiguration extends HttpServlet { + /** + * + */ + private static final long serialVersionUID = 5600924646043336895L; + private static final String url = ResourceBundle.getBundle("configuration").getString("swagger.url"); + + public void init(ServletConfig config) throws ServletException { + super.init(config); + + BeanConfig beanConfig = new BeanConfig(); + beanConfig.setTitle("Proyecto Mapea"); + beanConfig.setVersion("1.0"); + beanConfig.setSchemes(new String[] { "http" }); + beanConfig.setHost("http://localhost:8080"); + + beanConfig.setBasePath("/mapea/api"); + + beanConfig.setResourcePackage("es.juntadeandalucia.mapea.api"); + beanConfig.setScan(true); + + } + +} diff --git a/mapea-rest/src/main/resources/properties/configuration.properties b/mapea-rest/src/main/resources/properties/configuration.properties index f924e9cba..89b02fa9a 100644 --- a/mapea-rest/src/main/resources/properties/configuration.properties +++ b/mapea-rest/src/main/resources/properties/configuration.properties @@ -11,4 +11,6 @@ projection=${mapea.proj.default} # mapea theme url mapea.theme.url=${mapea.theme.url} # max image size -max.image.size=1048576 \ No newline at end of file +max.image.size=1048576 + +swagger.url = ${swagger.url} \ No newline at end of file diff --git a/mapea-rest/src/main/webapp/WEB-INF/web.xml b/mapea-rest/src/main/webapp/WEB-INF/web.xml index 5e418144a..5c6e42851 100644 --- a/mapea-rest/src/main/webapp/WEB-INF/web.xml +++ b/mapea-rest/src/main/webapp/WEB-INF/web.xml @@ -19,7 +19,7 @@ com.sun.jersey.spi.container.servlet.ServletContainer com.sun.jersey.config.property.packages - es.juntadeandalucia.mapea + es.juntadeandalucia.mapea.api,io.swagger.jaxrs.listing 1 @@ -35,4 +35,10 @@ proxyMapea /proxyPost + + + SwaggerBootstrap + es.juntadeandalucia.mapea.api.SwaggerConfiguration + 2 + From 2ac61bd8a6e9a31ab8ddc0389424ee32104fb377 Mon Sep 17 00:00:00 2001 From: Alberto Valdivia Date: Tue, 23 Mar 2021 11:53:38 +0100 Subject: [PATCH 02/79] Tarea #182337 modificaciones en los archivos de perfiles --- .../main/filters/mapea-desarrollo.properties | 4 +- .../src/main/filters/mapea-local.properties | 3 +- .../filters/mapea-preproduccion.properties | 3 +- .../main/filters/mapea-produccion.properties | 3 +- .../src/main/filters/mapea-pruebas.properties | 3 +- .../mapea/api/SwaggerConfiguration.java | 2 +- mapea-rest/src/main/webapp/WEB-INF/web.xml | 80 +++++++++---------- 7 files changed, 52 insertions(+), 46 deletions(-) diff --git a/mapea-parent/src/main/filters/mapea-desarrollo.properties b/mapea-parent/src/main/filters/mapea-desarrollo.properties index c9b18c449..a50731b5a 100644 --- a/mapea-parent/src/main/filters/mapea-desarrollo.properties +++ b/mapea-parent/src/main/filters/mapea-desarrollo.properties @@ -45,4 +45,6 @@ theme.names=default,dark,classic mapbox.url=https://api.mapbox.com/v4/ mapbox.extension=png mapbox.token.name=access_token -mapbox.token.value=pk.eyJ1IjoiZ3VhZGFsdGVsc2lnYyIsImEiOiJjaXppOTE0M2wwMDNiMzNvM3JiZ2h4Zmt3In0.MHjbdKBozmgW0T8LhGDcAA \ No newline at end of file +mapbox.token.value=pk.eyJ1IjoiZ3VhZGFsdGVsc2lnYyIsImEiOiJjaXppOTE0M2wwMDNiMzNvM3JiZ2h4Zmt3In0.MHjbdKBozmgW0T8LhGDcAA +swagger.url:localhost:8080 + diff --git a/mapea-parent/src/main/filters/mapea-local.properties b/mapea-parent/src/main/filters/mapea-local.properties index 45ebf08cc..989a45fdc 100644 --- a/mapea-parent/src/main/filters/mapea-local.properties +++ b/mapea-parent/src/main/filters/mapea-local.properties @@ -45,4 +45,5 @@ theme.names=default,dark,classic mapbox.url=https://api.mapbox.com/v4/ mapbox.extension=png mapbox.token.name=access_token -mapbox.token.value=pk.eyJ1IjoiZ3VhZGFsdGVsc2lnYyIsImEiOiJjaXppOTE0M2wwMDNiMzNvM3JiZ2h4Zmt3In0.MHjbdKBozmgW0T8LhGDcAA \ No newline at end of file +mapbox.token.value=pk.eyJ1IjoiZ3VhZGFsdGVsc2lnYyIsImEiOiJjaXppOTE0M2wwMDNiMzNvM3JiZ2h4Zmt3In0.MHjbdKBozmgW0T8LhGDcAA +swagger.url:localhost:8080 \ No newline at end of file diff --git a/mapea-parent/src/main/filters/mapea-preproduccion.properties b/mapea-parent/src/main/filters/mapea-preproduccion.properties index f4d626ac4..1605bd993 100644 --- a/mapea-parent/src/main/filters/mapea-preproduccion.properties +++ b/mapea-parent/src/main/filters/mapea-preproduccion.properties @@ -45,4 +45,5 @@ theme.names=default,dark,classic mapbox.url=https://api.mapbox.com/v4/ mapbox.extension=png mapbox.token.name=access_token -mapbox.token.value=$TOKEN \ No newline at end of file +mapbox.token.value=$TOKEN +swagger.url:localhost:8080 \ No newline at end of file diff --git a/mapea-parent/src/main/filters/mapea-produccion.properties b/mapea-parent/src/main/filters/mapea-produccion.properties index f4d626ac4..1605bd993 100644 --- a/mapea-parent/src/main/filters/mapea-produccion.properties +++ b/mapea-parent/src/main/filters/mapea-produccion.properties @@ -45,4 +45,5 @@ theme.names=default,dark,classic mapbox.url=https://api.mapbox.com/v4/ mapbox.extension=png mapbox.token.name=access_token -mapbox.token.value=$TOKEN \ No newline at end of file +mapbox.token.value=$TOKEN +swagger.url:localhost:8080 \ No newline at end of file diff --git a/mapea-parent/src/main/filters/mapea-pruebas.properties b/mapea-parent/src/main/filters/mapea-pruebas.properties index f4d626ac4..1605bd993 100644 --- a/mapea-parent/src/main/filters/mapea-pruebas.properties +++ b/mapea-parent/src/main/filters/mapea-pruebas.properties @@ -45,4 +45,5 @@ theme.names=default,dark,classic mapbox.url=https://api.mapbox.com/v4/ mapbox.extension=png mapbox.token.name=access_token -mapbox.token.value=$TOKEN \ No newline at end of file +mapbox.token.value=$TOKEN +swagger.url:localhost:8080 \ No newline at end of file diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java index e83961b8a..0cc90be3d 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/SwaggerConfiguration.java @@ -34,7 +34,7 @@ public void init(ServletConfig config) throws ServletException { beanConfig.setTitle("Proyecto Mapea"); beanConfig.setVersion("1.0"); beanConfig.setSchemes(new String[] { "http" }); - beanConfig.setHost("http://localhost:8080"); + beanConfig.setHost(url); beanConfig.setBasePath("/mapea/api"); diff --git a/mapea-rest/src/main/webapp/WEB-INF/web.xml b/mapea-rest/src/main/webapp/WEB-INF/web.xml index 5c6e42851..6f305db04 100644 --- a/mapea-rest/src/main/webapp/WEB-INF/web.xml +++ b/mapea-rest/src/main/webapp/WEB-INF/web.xml @@ -1,44 +1,44 @@ - + - - CorsFilter - org.apache.catalina.filters.CorsFilter - - cors.allowed.origins - * - - - - CorsFilter - /* - - - mapea-rest-api - com.sun.jersey.spi.container.servlet.ServletContainer - - com.sun.jersey.config.property.packages - es.juntadeandalucia.mapea.api,io.swagger.jaxrs.listing - - 1 - - - mapea-rest-api - /api/* - - - proxyMapea - es.juntadeandalucia.mapea.proxy.ProxyRedirect - - - proxyMapea - /proxyPost - + + CorsFilter + org.apache.catalina.filters.CorsFilter + + cors.allowed.origins + * + + + + CorsFilter + /* + + + mapea-rest-api + com.sun.jersey.spi.container.servlet.ServletContainer + + com.sun.jersey.config.property.packages + es.juntadeandalucia.mapea.api,io.swagger.jaxrs.listing + + 1 + + + mapea-rest-api + /api/* + + + proxyMapea + es.juntadeandalucia.mapea.proxy.ProxyRedirect + + + proxyMapea + /proxyPost + - - SwaggerBootstrap - es.juntadeandalucia.mapea.api.SwaggerConfiguration - 2 - - + + SwaggerBootstrap + es.juntadeandalucia.mapea.api.SwaggerConfiguration + 2 + + \ No newline at end of file From ae4ece1216e1096a1ee97476fd2e10c6e6bf6d1d Mon Sep 17 00:00:00 2001 From: Alberto Valdivia Date: Wed, 24 Mar 2021 13:29:54 +0100 Subject: [PATCH 03/79] Tarea #182337 revision de clases --- .../es/juntadeandalucia/mapea/api/ActionsWS.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java index 5a107e951..a84003ec0 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java @@ -74,18 +74,10 @@ public class ActionsWS { @GET @ApiOperation(value = "Lorem ipsum dolor sit amet, consectetur adipiscing elit", notes = "Lorem ipsum dolor sit amet, consectetur adipiscing elit") - @Produces("application/json") + @Produces("application/javascript") @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) -// @ApiImplicitParams({ -// @ApiImplicitParam(name = "prueba", value = "descripcion", required = false, dataType = "String", paramType = "query" -// -// ,examples = @Example(value = {@ExampleProperty(mediaType = "application/json", value = "{foo: whatever, bar: whatever2}")}) -// ) }) - -// public Prediction predict( -// @QueryParam("content") @NotEmpty String content, -// @HeaderParam("outputProbability") @DefaultValue("false") Boolean outputProbability) { + public String showAvailableActions(@QueryParam("callback") String callbackFn) { JSONArray actions = new JSONArray(); From 9747669f2665564e8725181397e3e87cc553da56 Mon Sep 17 00:00:00 2001 From: Alberto Valdivia Date: Fri, 26 Mar 2021 14:57:15 +0100 Subject: [PATCH 04/79] =?UTF-8?q?Tarea=20#182337=20a=C3=B1adiendo=20iframe?= =?UTF-8?q?=20a=20la=20documentacion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../es/juntadeandalucia/mapea/api/iFrame.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java new file mode 100644 index 000000000..463cbc32f --- /dev/null +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java @@ -0,0 +1,47 @@ +package es.juntadeandalucia.mapea.api; + +import javax.validation.groups.ConvertGroup.List; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; + +import es.juntadeandalucia.mapea.builder.JSBuilder; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import io.swagger.annotations.ResponseHeader; +import io.swagger.annotations.SecurityDefinition; + +@Path("/iframe") +@Api(value = "iFrame Service", description = "Api del front") +@Produces("application/javascript") +public class iFrame { + @GET + @ApiOperation(value = "nivel de zoom aplicado", notes = "Ejemplo: http://mapea4-sigc.juntadeandalucia.es/?zoom=6") + + public String iframe( + // wmc + @ApiParam(value = "wmcfile indica el/los ficheros WMC a cargar \n- url: url del WMC\n" + "- nombre: nombre que aparecerá en el selector\n" + "ó\n" + + "- nombrePredefinido: nombre de uno de los contextos predefinidos disponibles", example = "vacio", required = false) @QueryParam("wmcfile") String wmc, + // layers + @ApiParam(value = "indica el/las capas a cargar \n - tipoCapa: tipo capa OGC\n" + "- nombreLeyenda: nombre que aparecerá en la leyenda\n" + + "- urlServicio: url al servicio OGC\n" + "- nombreCapa: nombre de la capa OGC\n" + + "- transparent: 'false' si es una capa base, 'true' en caso contrario\n" + + "- tiled: 'true' si queremos dividir la capa en tiles, 'false' en caso contrario ", example = "vacio", required = false) @QueryParam("layers") String layers, + + // Zoom + @ApiParam(value = "nivel de zoom aplicado", example = "6", required = false) @QueryParam("zoom") String zoom, + + // center + @ApiParam(value = "coordenadas de centrado del mapa. \n - coordX: coordenada X\n" + + "- coordY: coordY\n" + + "- dibujar chincheta: 'false' para solo centrar y 'true' para dibujar una chincheta", example = "235061.9,4141933.04*true", required = false) @QueryParam("center") String coord) { + + return "http://localhost:8080/mapea/?wmcfile=mapa&zoom=" + zoom; + } + +} From 3c23d3c77e63bf173f2530991482c089a272a6bb Mon Sep 17 00:00:00 2001 From: Alberto Valdivia Date: Tue, 6 Apr 2021 08:06:00 +0200 Subject: [PATCH 05/79] Tarea #182337 mapea iframe terminado --- .../juntadeandalucia/mapea/api/ActionsWS.java | 2 - .../es/juntadeandalucia/mapea/api/iFrame.java | 150 ++++++++++++++++-- 2 files changed, 137 insertions(+), 15 deletions(-) diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java index a84003ec0..96a04827a 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/ActionsWS.java @@ -78,7 +78,6 @@ public class ActionsWS { @ApiResponses(value = { @ApiResponse(code = 400, message = "Lorem ipsum dolor sit amet"), @ApiResponse(code = 200, message = "Lorem ipsum dolor sit amet", responseHeaders = @ResponseHeader(name = "Prueba", description = "Lorem ipsum dolor sit amet", response = Integer.class)) }) - public String showAvailableActions(@QueryParam("callback") String callbackFn) { JSONArray actions = new JSONArray(); @@ -89,7 +88,6 @@ public String showAvailableActions(@QueryParam("callback") String callbackFn) { actions.put("/themes"); actions.put("/projection"); actions.put("/plugins"); - actions.put("/../../doc"); // actions.put("/apk"); diff --git a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java index 463cbc32f..5a18d1e1e 100644 --- a/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java +++ b/mapea-rest/src/main/java/es/juntadeandalucia/mapea/api/iFrame.java @@ -1,12 +1,17 @@ package es.juntadeandalucia.mapea.api; +import java.util.ArrayList; + import javax.validation.groups.ConvertGroup.List; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; +import org.apache.xerces.utils.regex.REUtil; + import es.juntadeandalucia.mapea.builder.JSBuilder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -20,28 +25,147 @@ @Api(value = "iFrame Service", description = "Api del front") @Produces("application/javascript") public class iFrame { - @GET - @ApiOperation(value = "nivel de zoom aplicado", notes = "Ejemplo: http://mapea4-sigc.juntadeandalucia.es/?zoom=6") + + ArrayList campos = new ArrayList(); + ArrayList camposNull = new ArrayList(); + + @POST + @ApiOperation(value = " ", notes = "Mapea puede ser integrado en paǵinas web mediante el uso de iframes. A través del API REST se puede incluir un visualizador interactivo en cualquier página web sin necesidad de disponer de conocimientos específicos en programación ni en el ámbito de los SIG. Para ello únicamente es necesario que el usuario configure el mapa a visualizar a través de una URL:\n" + + "\n" + + "http://mapea4-sigc.juntadeandalucia.es/?wmcfile=callejero,cdau_satelite&controls=mouse,layerswitcher,overviewmap,scaleline,location&layers=WMS\\*Redes\\*http://www.ideandalucia.es/wms/mta400v_2008?\\*Redes_energeticas\\*true&getfeatureinfo=html\n" + + "\n" + "Esto puede integrarse directamente en un iframe, como se hacía anteriormente:\n" + "\n" + + "\\