Commit e6ec033c authored by Athanasios's avatar Athanasios
Browse files

add temporary layers

parent bab06581
Showing with 518 additions and 293 deletions
+518 -293
......@@ -4,6 +4,7 @@ const port = config.port || 9000;
const home = require("./routes/home");
const v1 = require("./routes/v1");
const assets = require("./routes/assets");
const tempassets = require("./routes/tempassets");
const cors = require("./src/cors");
const app = express();
......@@ -11,6 +12,7 @@ app.use(cors);
app.use("/", home);
app.use("/service/v1", v1);
app.use("/assets", assets);
app.use("/tempassets", tempassets);
app.listen(port, err => {
if (err) {
......
[
{
"name": "(tmp) Building_Montreal",
"id": "99cea271-a47e-4bdc-b811-0cc234737b31",
"boundingbox": [
-73.60385570826058,
45.485815767958044,
-73.52044398972039,
45.539693141743676
],
"url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Building_Montreal/SceneServer/layers/0",
"creationTime": 1595007956608,
"scope": "public"
},
{
"name": "(tmp) Auckland",
"id": "4e4f8e6b-036d-401e-9394-2512132c0783",
"boundingbox": [
174.26421462290025,
-37.408063232703356,
175.54784137097715,
-36.14886498368073
],
"url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_Auckland/SceneServer/layers/0",
"creationTime": 1595008048649,
"scope": "public"
},
{
"name": "(tmp) Brest",
"id": "8a0fbb84-b1d7-4e74-80fe-0b6317440656",
"boundingbox": [
-4.573570959155898,
48.35651896244263,
-4.429143100105653,
48.45617712129358
],
"url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Buildings_Brest/SceneServer/layers/0",
"creationTime": 1595008152396,
"scope": "public"
},
{
"name": "(tmp) Building_Vancouver",
"id": "b1438326-c339-4ff2-813f-4268ed295a69",
"boundingbox": [
-123.14571375310894,
49.27071479410105,
-123.09975877538741,
49.29431568066567
],
"url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Building_Vancouver/SceneServer/layers/0",
"creationTime": 1595008263764,
"scope": "public"
},
{
"name": "(tmp) Linz",
"id": "301b1d78-a270-4aab-a4e3-5a1fe3a90f7e",
"boundingbox": [
14.246374126000035,
48.21488432500007,
14.399654755000029,
48.37778204300008
],
"url": "https://tiles.arcgis.com/tiles/P3ePLMYs2RVChkJx/arcgis/rest/services/Building_Linz_17/SceneServer/layers/0",
"creationTime": 1595008313873,
"scope": "public"
}
]
\ No newline at end of file
const config = {
port: 9000,
boundingBoxBufferPercent: 15
boundingBoxBufferPercent: 15,
tempLayers: {
expiry: {
seconds: 86400
}
}
}
module.exports = config;
\ No newline at end of file
......@@ -16,7 +16,7 @@
"integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
"dev": true,
"requires": {
"defer-to-connect": "^1.0.1"
"defer-to-connect": "1.1.3"
}
},
"@types/babel-types": {
......@@ -29,7 +29,7 @@
"resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz",
"integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==",
"requires": {
"@types/babel-types": "*"
"@types/babel-types": "7.0.7"
}
},
"@types/color-name": {
......@@ -49,7 +49,7 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"requires": {
"mime-types": "~2.1.24",
"mime-types": "2.1.26",
"negotiator": "0.6.2"
}
},
......@@ -63,7 +63,7 @@
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
"integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
"requires": {
"acorn": "^4.0.4"
"acorn": "4.0.13"
},
"dependencies": {
"acorn": {
......@@ -78,9 +78,9 @@
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"requires": {
"kind-of": "^3.0.2",
"longest": "^1.0.1",
"repeat-string": "^1.5.2"
"kind-of": "3.2.2",
"longest": "1.0.1",
"repeat-string": "1.6.1"
}
},
"ansi-align": {
......@@ -89,7 +89,7 @@
"integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==",
"dev": true,
"requires": {
"string-width": "^3.0.0"
"string-width": "3.1.0"
},
"dependencies": {
"string-width": {
......@@ -98,9 +98,9 @@
"integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"dev": true,
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^5.1.0"
"emoji-regex": "7.0.3",
"is-fullwidth-code-point": "2.0.0",
"strip-ansi": "5.2.0"
}
}
}
......@@ -117,8 +117,8 @@
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
"dev": true,
"requires": {
"@types/color-name": "^1.1.1",
"color-convert": "^2.0.1"
"@types/color-name": "1.1.1",
"color-convert": "2.0.1"
}
},
"anymatch": {
......@@ -127,8 +127,8 @@
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
"dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
"normalize-path": "3.0.0",
"picomatch": "2.2.2"
}
},
"array-flatten": {
......@@ -146,8 +146,8 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
"core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
"babel-types": {
......@@ -155,10 +155,10 @@
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"requires": {
"babel-runtime": "^6.26.0",
"esutils": "^2.0.2",
"lodash": "^4.17.4",
"to-fast-properties": "^1.0.3"
"babel-runtime": "6.26.0",
"esutils": "2.0.3",
"lodash": "4.17.15",
"to-fast-properties": "1.0.3"
}
},
"babylon": {
......@@ -189,15 +189,15 @@
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"requires": {
"bytes": "3.1.0",
"content-type": "~1.0.4",
"content-type": "1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"depd": "1.1.2",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"on-finished": "2.3.0",
"qs": "6.7.0",
"raw-body": "2.4.0",
"type-is": "~1.6.17"
"type-is": "1.6.18"
}
},
"box-intersect": {
......@@ -205,8 +205,8 @@
"resolved": "https://registry.npmjs.org/box-intersect/-/box-intersect-1.0.2.tgz",
"integrity": "sha512-yJeMwlmFPG1gIa7Rs/cGXeI6iOj6Qz5MG5PE61xLKpElUGzmJ4abm+qsLpzxKJFpsSDq742BQEocr8dI2t8Nxw==",
"requires": {
"bit-twiddle": "^1.0.2",
"typedarray-pool": "^1.1.0"
"bit-twiddle": "1.0.2",
"typedarray-pool": "1.2.0"
}
},
"boxen": {
......@@ -215,14 +215,14 @@
"integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==",
"dev": true,
"requires": {
"ansi-align": "^3.0.0",
"camelcase": "^5.3.1",
"chalk": "^3.0.0",
"cli-boxes": "^2.2.0",
"string-width": "^4.1.0",
"term-size": "^2.1.0",
"type-fest": "^0.8.1",
"widest-line": "^3.1.0"
"ansi-align": "3.0.0",
"camelcase": "5.3.1",
"chalk": "3.0.0",
"cli-boxes": "2.2.0",
"string-width": "4.2.0",
"term-size": "2.2.0",
"type-fest": "0.8.1",
"widest-line": "3.1.0"
},
"dependencies": {
"camelcase": {
......@@ -239,7 +239,7 @@
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
}
},
......@@ -249,7 +249,7 @@
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
"fill-range": "7.0.1"
}
},
"bytes": {
......@@ -263,13 +263,13 @@
"integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
"dev": true,
"requires": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
"keyv": "^3.0.0",
"lowercase-keys": "^2.0.0",
"normalize-url": "^4.1.0",
"responselike": "^1.0.2"
"clone-response": "1.0.2",
"get-stream": "5.1.0",
"http-cache-semantics": "4.1.0",
"keyv": "3.1.0",
"lowercase-keys": "2.0.0",
"normalize-url": "4.5.0",
"responselike": "1.0.2"
},
"dependencies": {
"get-stream": {
......@@ -278,7 +278,7 @@
"integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==",
"dev": true,
"requires": {
"pump": "^3.0.0"
"pump": "3.0.0"
}
},
"lowercase-keys": {
......@@ -299,8 +299,8 @@
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"requires": {
"align-text": "^0.1.3",
"lazy-cache": "^1.0.3"
"align-text": "0.1.4",
"lazy-cache": "1.0.4"
}
},
"chalk": {
......@@ -309,8 +309,8 @@
"integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
"ansi-styles": "4.2.1",
"supports-color": "7.1.0"
},
"dependencies": {
"has-flag": {
......@@ -325,7 +325,7 @@
"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
"has-flag": "4.0.0"
}
}
}
......@@ -335,7 +335,7 @@
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
"integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
"requires": {
"is-regex": "^1.0.3"
"is-regex": "1.0.5"
}
},
"chokidar": {
......@@ -344,14 +344,14 @@
"integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
"fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.3.0"
"anymatch": "3.1.1",
"braces": "3.0.2",
"fsevents": "2.1.2",
"glob-parent": "5.1.1",
"is-binary-path": "2.1.0",
"is-glob": "4.0.1",
"normalize-path": "3.0.0",
"readdirp": "3.3.0"
}
},
"ci-info": {
......@@ -365,7 +365,7 @@
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
"integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==",
"requires": {
"source-map": "~0.6.0"
"source-map": "0.6.1"
}
},
"cli-boxes": {
......@@ -379,8 +379,8 @@
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
"requires": {
"center-align": "^0.1.1",
"right-align": "^0.1.1",
"center-align": "0.1.3",
"right-align": "0.1.3",
"wordwrap": "0.0.2"
}
},
......@@ -390,7 +390,7 @@
"integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
"mimic-response": "1.0.1"
}
},
"color-convert": {
......@@ -399,7 +399,7 @@
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
"color-name": "1.1.4"
}
},
"color-name": {
......@@ -420,12 +420,12 @@
"integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
"dev": true,
"requires": {
"dot-prop": "^5.2.0",
"graceful-fs": "^4.1.2",
"make-dir": "^3.0.0",
"unique-string": "^2.0.0",
"write-file-atomic": "^3.0.0",
"xdg-basedir": "^4.0.0"
"dot-prop": "5.2.0",
"graceful-fs": "4.2.3",
"make-dir": "3.0.2",
"unique-string": "2.0.0",
"write-file-atomic": "3.0.3",
"xdg-basedir": "4.0.0"
}
},
"constantinople": {
......@@ -433,10 +433,10 @@
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz",
"integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==",
"requires": {
"@types/babel-types": "^7.0.0",
"@types/babylon": "^6.16.2",
"babel-types": "^6.26.0",
"babylon": "^6.18.0"
"@types/babel-types": "7.0.7",
"@types/babylon": "6.16.5",
"babel-types": "6.26.0",
"babylon": "6.18.0"
}
},
"content-disposition": {
......@@ -492,7 +492,7 @@
"integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
"dev": true,
"requires": {
"mimic-response": "^1.0.0"
"mimic-response": "1.0.1"
}
},
"deep-extend": {
......@@ -528,7 +528,7 @@
"integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
"dev": true,
"requires": {
"is-obj": "^2.0.0"
"is-obj": "2.0.0"
}
},
"dup": {
......@@ -564,7 +564,7 @@
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": {
"once": "^1.4.0"
"once": "1.4.0"
}
},
"escape-goat": {
......@@ -593,36 +593,36 @@
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"requires": {
"accepts": "~1.3.7",
"accepts": "1.3.7",
"array-flatten": "1.1.1",
"body-parser": "1.19.0",
"content-disposition": "0.5.3",
"content-type": "~1.0.4",
"content-type": "1.0.4",
"cookie": "0.4.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "~1.1.2",
"depd": "1.1.2",
"encodeurl": "1.0.2",
"escape-html": "1.0.3",
"etag": "1.8.1",
"finalhandler": "1.1.2",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"methods": "1.1.2",
"on-finished": "2.3.0",
"parseurl": "1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.5",
"proxy-addr": "2.0.6",
"qs": "6.7.0",
"range-parser": "~1.2.1",
"range-parser": "1.2.1",
"safe-buffer": "5.1.2",
"send": "0.17.1",
"serve-static": "1.14.1",
"setprototypeof": "1.1.1",
"statuses": "~1.5.0",
"type-is": "~1.6.18",
"statuses": "1.5.0",
"type-is": "1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
"vary": "1.1.2"
}
},
"express-validator": {
......@@ -630,8 +630,8 @@
"resolved": "https://registry.npmjs.org/express-validator/-/express-validator-6.4.0.tgz",
"integrity": "sha512-Fs+x0yDOSiUV+o5jIRloMyBxqpSzJiMM8KQW1IRVv2l49F6ATU0F9uPa+3K6vXNlLlhUjauv2FCGLFPMaNr24w==",
"requires": {
"lodash": "^4.17.15",
"validator": "^12.1.0"
"lodash": "4.17.15",
"validator": "12.2.0"
}
},
"fill-range": {
......@@ -640,7 +640,7 @@
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
"to-regex-range": "5.0.1"
}
},
"finalhandler": {
......@@ -649,12 +649,12 @@
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"statuses": "~1.5.0",
"unpipe": "~1.0.0"
"encodeurl": "1.0.2",
"escape-html": "1.0.3",
"on-finished": "2.3.0",
"parseurl": "1.3.3",
"statuses": "1.5.0",
"unpipe": "1.0.0"
}
},
"forwarded": {
......@@ -685,7 +685,7 @@
"integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
"requires": {
"pump": "^3.0.0"
"pump": "3.0.0"
}
},
"glob-parent": {
......@@ -694,7 +694,7 @@
"integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
"is-glob": "4.0.1"
}
},
"global-dirs": {
......@@ -703,7 +703,7 @@
"integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==",
"dev": true,
"requires": {
"ini": "^1.3.5"
"ini": "1.3.5"
}
},
"got": {
......@@ -712,17 +712,17 @@
"integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
"dev": true,
"requires": {
"@sindresorhus/is": "^0.14.0",
"@szmarczak/http-timer": "^1.1.2",
"cacheable-request": "^6.0.0",
"decompress-response": "^3.3.0",
"duplexer3": "^0.1.4",
"get-stream": "^4.1.0",
"lowercase-keys": "^1.0.1",
"mimic-response": "^1.0.1",
"p-cancelable": "^1.0.0",
"to-readable-stream": "^1.0.0",
"url-parse-lax": "^3.0.0"
"@sindresorhus/is": "0.14.0",
"@szmarczak/http-timer": "1.1.2",
"cacheable-request": "6.1.0",
"decompress-response": "3.3.0",
"duplexer3": "0.1.4",
"get-stream": "4.1.0",
"lowercase-keys": "1.0.1",
"mimic-response": "1.0.1",
"p-cancelable": "1.1.0",
"to-readable-stream": "1.0.0",
"url-parse-lax": "3.0.0"
}
},
"graceful-fs": {
......@@ -736,7 +736,7 @@
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
"function-bind": "^1.1.1"
"function-bind": "1.1.1"
}
},
"has-flag": {
......@@ -762,10 +762,10 @@
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"requires": {
"depd": "~1.1.2",
"depd": "1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"statuses": "1.5.0",
"toidentifier": "1.0.0"
}
},
......@@ -774,7 +774,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
"safer-buffer": "2.1.2"
}
},
"ignore-by-default": {
......@@ -817,7 +817,7 @@
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true,
"requires": {
"binary-extensions": "^2.0.0"
"binary-extensions": "2.0.0"
}
},
"is-buffer": {
......@@ -831,7 +831,7 @@
"integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
"dev": true,
"requires": {
"ci-info": "^2.0.0"
"ci-info": "2.0.0"
}
},
"is-expression": {
......@@ -839,8 +839,8 @@
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz",
"integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=",
"requires": {
"acorn": "~4.0.2",
"object-assign": "^4.0.1"
"acorn": "4.0.13",
"object-assign": "4.1.1"
},
"dependencies": {
"acorn": {
......@@ -868,7 +868,7 @@
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
"dev": true,
"requires": {
"is-extglob": "^2.1.1"
"is-extglob": "2.1.1"
}
},
"is-installed-globally": {
......@@ -877,8 +877,8 @@
"integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==",
"dev": true,
"requires": {
"global-dirs": "^2.0.1",
"is-path-inside": "^3.0.1"
"global-dirs": "2.0.1",
"is-path-inside": "3.0.2"
}
},
"is-npm": {
......@@ -915,7 +915,7 @@
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"requires": {
"has": "^1.0.3"
"has": "1.0.3"
}
},
"is-typedarray": {
......@@ -946,8 +946,8 @@
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
"integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
"requires": {
"is-promise": "^2.0.0",
"promise": "^7.0.1"
"is-promise": "2.1.0",
"promise": "7.3.1"
}
},
"keyv": {
......@@ -964,7 +964,7 @@
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"requires": {
"is-buffer": "^1.1.5"
"is-buffer": "1.1.6"
}
},
"latest-version": {
......@@ -973,7 +973,7 @@
"integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
"dev": true,
"requires": {
"package-json": "^6.3.0"
"package-json": "6.5.0"
}
},
"lazy-cache": {
......@@ -1003,7 +1003,7 @@
"integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==",
"dev": true,
"requires": {
"semver": "^6.0.0"
"semver": "6.3.0"
},
"dependencies": {
"semver": {
......@@ -1059,7 +1059,7 @@
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
"brace-expansion": "1.1.11"
}
},
"minimist": {
......@@ -1089,16 +1089,16 @@
"integrity": "sha512-lLQLPS90Lqwc99IHe0U94rDgvjo+G9I4uEIxRG3evSLROcqQ9hwc0AxlSHKS4T1JW/IMj/7N5mthiN58NL/5kw==",
"dev": true,
"requires": {
"chokidar": "^3.2.2",
"debug": "^3.2.6",
"ignore-by-default": "^1.0.1",
"minimatch": "^3.0.4",
"pstree.remy": "^1.1.7",
"semver": "^5.7.1",
"supports-color": "^5.5.0",
"touch": "^3.1.0",
"undefsafe": "^2.0.2",
"update-notifier": "^4.0.0"
"chokidar": "3.3.1",
"debug": "3.2.6",
"ignore-by-default": "1.0.1",
"minimatch": "3.0.4",
"pstree.remy": "1.1.7",
"semver": "5.7.1",
"supports-color": "5.5.0",
"touch": "3.1.0",
"undefsafe": "2.0.3",
"update-notifier": "4.1.0"
},
"dependencies": {
"debug": {
......@@ -1107,7 +1107,7 @@
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
"ms": "2.1.2"
}
},
"ms": {
......@@ -1124,7 +1124,7 @@
"integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=",
"dev": true,
"requires": {
"abbrev": "1"
"abbrev": "1.1.1"
}
},
"normalize-path": {
......@@ -1158,7 +1158,7 @@
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
"requires": {
"wrappy": "1"
"wrappy": "1.0.2"
}
},
"p-cancelable": {
......@@ -1173,10 +1173,10 @@
"integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
"dev": true,
"requires": {
"got": "^9.6.0",
"registry-auth-token": "^4.0.0",
"registry-url": "^5.0.0",
"semver": "^6.2.0"
"got": "9.6.0",
"registry-auth-token": "4.1.1",
"registry-url": "5.1.0",
"semver": "6.3.0"
},
"dependencies": {
"semver": {
......@@ -1219,7 +1219,7 @@
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"requires": {
"asap": "~2.0.3"
"asap": "2.0.6"
}
},
"proxy-addr": {
......@@ -1227,7 +1227,7 @@
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
"integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
"requires": {
"forwarded": "~0.1.2",
"forwarded": "0.1.2",
"ipaddr.js": "1.9.1"
}
},
......@@ -1242,14 +1242,14 @@
"resolved": "https://registry.npmjs.org/pug/-/pug-2.0.4.tgz",
"integrity": "sha512-XhoaDlvi6NIzL49nu094R2NA6P37ijtgMDuWE+ofekDChvfKnzFal60bhSdiy8y2PBO6fmz3oMEIcfpBVRUdvw==",
"requires": {
"pug-code-gen": "^2.0.2",
"pug-filters": "^3.1.1",
"pug-lexer": "^4.1.0",
"pug-linker": "^3.0.6",
"pug-load": "^2.0.12",
"pug-parser": "^5.0.1",
"pug-runtime": "^2.0.5",
"pug-strip-comments": "^1.0.4"
"pug-code-gen": "2.0.2",
"pug-filters": "3.1.1",
"pug-lexer": "4.1.0",
"pug-linker": "3.0.6",
"pug-load": "2.0.12",
"pug-parser": "5.0.1",
"pug-runtime": "2.0.5",
"pug-strip-comments": "1.0.4"
}
},
"pug-attrs": {
......@@ -1257,9 +1257,9 @@
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz",
"integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==",
"requires": {
"constantinople": "^3.0.1",
"js-stringify": "^1.0.1",
"pug-runtime": "^2.0.5"
"constantinople": "3.1.2",
"js-stringify": "1.0.2",
"pug-runtime": "2.0.5"
}
},
"pug-code-gen": {
......@@ -1267,14 +1267,14 @@
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-2.0.2.tgz",
"integrity": "sha512-kROFWv/AHx/9CRgoGJeRSm+4mLWchbgpRzTEn8XCiwwOy6Vh0gAClS8Vh5TEJ9DBjaP8wCjS3J6HKsEsYdvaCw==",
"requires": {
"constantinople": "^3.1.2",
"doctypes": "^1.1.0",
"js-stringify": "^1.0.1",
"pug-attrs": "^2.0.4",
"pug-error": "^1.3.3",
"pug-runtime": "^2.0.5",
"void-elements": "^2.0.1",
"with": "^5.0.0"
"constantinople": "3.1.2",
"doctypes": "1.1.0",
"js-stringify": "1.0.2",
"pug-attrs": "2.0.4",
"pug-error": "1.3.3",
"pug-runtime": "2.0.5",
"void-elements": "2.0.1",
"with": "5.1.1"
}
},
"pug-error": {
......@@ -1287,13 +1287,13 @@
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-3.1.1.tgz",
"integrity": "sha512-lFfjNyGEyVWC4BwX0WyvkoWLapI5xHSM3xZJFUhx4JM4XyyRdO8Aucc6pCygnqV2uSgJFaJWW3Ft1wCWSoQkQg==",
"requires": {
"clean-css": "^4.1.11",
"constantinople": "^3.0.1",
"clean-css": "4.2.3",
"constantinople": "3.1.2",
"jstransformer": "1.0.0",
"pug-error": "^1.3.3",
"pug-walk": "^1.1.8",
"resolve": "^1.1.6",
"uglify-js": "^2.6.1"
"pug-error": "1.3.3",
"pug-walk": "1.1.8",
"resolve": "1.15.1",
"uglify-js": "2.8.29"
}
},
"pug-lexer": {
......@@ -1301,9 +1301,9 @@
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz",
"integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==",
"requires": {
"character-parser": "^2.1.1",
"is-expression": "^3.0.0",
"pug-error": "^1.3.3"
"character-parser": "2.2.0",
"is-expression": "3.0.0",
"pug-error": "1.3.3"
}
},
"pug-linker": {
......@@ -1311,8 +1311,8 @@
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-3.0.6.tgz",
"integrity": "sha512-bagfuHttfQOpANGy1Y6NJ+0mNb7dD2MswFG2ZKj22s8g0wVsojpRlqveEQHmgXXcfROB2RT6oqbPYr9EN2ZWzg==",
"requires": {
"pug-error": "^1.3.3",
"pug-walk": "^1.1.8"
"pug-error": "1.3.3",
"pug-walk": "1.1.8"
}
},
"pug-load": {
......@@ -1320,8 +1320,8 @@
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-2.0.12.tgz",
"integrity": "sha512-UqpgGpyyXRYgJs/X60sE6SIf8UBsmcHYKNaOccyVLEuT6OPBIMo6xMPhoJnqtB3Q3BbO4Z3Bjz5qDsUWh4rXsg==",
"requires": {
"object-assign": "^4.1.0",
"pug-walk": "^1.1.8"
"object-assign": "4.1.1",
"pug-walk": "1.1.8"
}
},
"pug-parser": {
......@@ -1329,7 +1329,7 @@
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-5.0.1.tgz",
"integrity": "sha512-nGHqK+w07p5/PsPIyzkTQfzlYfuqoiGjaoqHv1LjOv2ZLXmGX1O+4Vcvps+P4LhxZ3drYSljjq4b+Naid126wA==",
"requires": {
"pug-error": "^1.3.3",
"pug-error": "1.3.3",
"token-stream": "0.0.1"
}
},
......@@ -1343,7 +1343,7 @@
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-1.0.4.tgz",
"integrity": "sha512-i5j/9CS4yFhSxHp5iKPHwigaig/VV9g+FgReLJWWHEHbvKsbqL0oP/K5ubuLco6Wu3Kan5p7u7qk8A4oLLh6vw==",
"requires": {
"pug-error": "^1.3.3"
"pug-error": "1.3.3"
}
},
"pug-walk": {
......@@ -1357,8 +1357,8 @@
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
"end-of-stream": "1.4.4",
"once": "1.4.0"
}
},
"pupa": {
......@@ -1367,7 +1367,7 @@
"integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==",
"dev": true,
"requires": {
"escape-goat": "^2.0.0"
"escape-goat": "2.1.1"
}
},
"qs": {
......@@ -1397,10 +1397,10 @@
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"requires": {
"deep-extend": "^0.6.0",
"ini": "~1.3.0",
"minimist": "^1.2.0",
"strip-json-comments": "~2.0.1"
"deep-extend": "0.6.0",
"ini": "1.3.5",
"minimist": "1.2.5",
"strip-json-comments": "2.0.1"
}
},
"readdirp": {
......@@ -1409,7 +1409,7 @@
"integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
"dev": true,
"requires": {
"picomatch": "^2.0.7"
"picomatch": "2.2.2"
}
},
"regenerator-runtime": {
......@@ -1423,7 +1423,7 @@
"integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==",
"dev": true,
"requires": {
"rc": "^1.2.8"
"rc": "1.2.8"
}
},
"registry-url": {
......@@ -1432,7 +1432,7 @@
"integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
"dev": true,
"requires": {
"rc": "^1.2.8"
"rc": "1.2.8"
}
},
"repeat-string": {
......@@ -1445,7 +1445,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
"integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
"requires": {
"path-parse": "^1.0.6"
"path-parse": "1.0.6"
}
},
"responselike": {
......@@ -1454,7 +1454,7 @@
"integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
"dev": true,
"requires": {
"lowercase-keys": "^1.0.0"
"lowercase-keys": "1.0.1"
}
},
"right-align": {
......@@ -1462,7 +1462,7 @@
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"requires": {
"align-text": "^0.1.1"
"align-text": "0.1.4"
}
},
"safe-buffer": {
......@@ -1487,7 +1487,7 @@
"integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
"dev": true,
"requires": {
"semver": "^6.3.0"
"semver": "6.3.0"
},
"dependencies": {
"semver": {
......@@ -1504,18 +1504,18 @@
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
"requires": {
"debug": "2.6.9",
"depd": "~1.1.2",
"destroy": "~1.0.4",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"depd": "1.1.2",
"destroy": "1.0.4",
"encodeurl": "1.0.2",
"escape-html": "1.0.3",
"etag": "1.8.1",
"fresh": "0.5.2",
"http-errors": "~1.7.2",
"http-errors": "1.7.2",
"mime": "1.6.0",
"ms": "2.1.1",
"on-finished": "~2.3.0",
"range-parser": "~1.2.1",
"statuses": "~1.5.0"
"on-finished": "2.3.0",
"range-parser": "1.2.1",
"statuses": "1.5.0"
},
"dependencies": {
"ms": {
......@@ -1530,9 +1530,9 @@
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"encodeurl": "1.0.2",
"escape-html": "1.0.3",
"parseurl": "1.3.3",
"send": "0.17.1"
}
},
......@@ -1563,9 +1563,9 @@
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
"strip-ansi": "^6.0.0"
"emoji-regex": "8.0.0",
"is-fullwidth-code-point": "3.0.0",
"strip-ansi": "6.0.0"
},
"dependencies": {
"ansi-regex": {
......@@ -1592,7 +1592,7 @@
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.0"
"ansi-regex": "5.0.0"
}
}
}
......@@ -1603,7 +1603,7 @@
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"dev": true,
"requires": {
"ansi-regex": "^4.1.0"
"ansi-regex": "4.1.0"
}
},
"strip-json-comments": {
......@@ -1618,7 +1618,7 @@
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
"has-flag": "3.0.0"
}
},
"term-size": {
......@@ -1644,7 +1644,7 @@
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
"is-number": "7.0.0"
}
},
"toidentifier": {
......@@ -1663,7 +1663,7 @@
"integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==",
"dev": true,
"requires": {
"nopt": "~1.0.10"
"nopt": "1.0.10"
}
},
"type-fest": {
......@@ -1678,7 +1678,7 @@
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
"mime-types": "2.1.26"
}
},
"typedarray-pool": {
......@@ -1686,8 +1686,8 @@
"resolved": "https://registry.npmjs.org/typedarray-pool/-/typedarray-pool-1.2.0.tgz",
"integrity": "sha512-YTSQbzX43yvtpfRtIDAYygoYtgT+Rpjuxy9iOpczrjpXLgGoyG7aS5USJXV2d3nn8uHTeb9rXDvzS27zUg5KYQ==",
"requires": {
"bit-twiddle": "^1.0.0",
"dup": "^1.0.0"
"bit-twiddle": "1.0.2",
"dup": "1.0.0"
}
},
"typedarray-to-buffer": {
......@@ -1696,7 +1696,7 @@
"integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
"dev": true,
"requires": {
"is-typedarray": "^1.0.0"
"is-typedarray": "1.0.0"
}
},
"uglify-js": {
......@@ -1704,9 +1704,9 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"requires": {
"source-map": "~0.5.1",
"uglify-to-browserify": "~1.0.0",
"yargs": "~3.10.0"
"source-map": "0.5.7",
"uglify-to-browserify": "1.0.2",
"yargs": "3.10.0"
},
"dependencies": {
"source-map": {
......@@ -1728,7 +1728,7 @@
"integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==",
"dev": true,
"requires": {
"debug": "^2.2.0"
"debug": "2.6.9"
}
},
"unique-string": {
......@@ -1737,7 +1737,7 @@
"integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
"dev": true,
"requires": {
"crypto-random-string": "^2.0.0"
"crypto-random-string": "2.0.0"
}
},
"unpipe": {
......@@ -1751,19 +1751,19 @@
"integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==",
"dev": true,
"requires": {
"boxen": "^4.2.0",
"chalk": "^3.0.0",
"configstore": "^5.0.1",
"has-yarn": "^2.1.0",
"import-lazy": "^2.1.0",
"is-ci": "^2.0.0",
"is-installed-globally": "^0.3.1",
"is-npm": "^4.0.0",
"is-yarn-global": "^0.3.0",
"latest-version": "^5.0.0",
"pupa": "^2.0.1",
"semver-diff": "^3.1.1",
"xdg-basedir": "^4.0.0"
"boxen": "4.2.0",
"chalk": "3.0.0",
"configstore": "5.0.1",
"has-yarn": "2.1.0",
"import-lazy": "2.1.0",
"is-ci": "2.0.0",
"is-installed-globally": "0.3.2",
"is-npm": "4.0.0",
"is-yarn-global": "0.3.0",
"latest-version": "5.1.0",
"pupa": "2.0.1",
"semver-diff": "3.1.1",
"xdg-basedir": "4.0.0"
}
},
"url-parse-lax": {
......@@ -1772,7 +1772,7 @@
"integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
"dev": true,
"requires": {
"prepend-http": "^2.0.0"
"prepend-http": "2.0.0"
}
},
"utils-merge": {
......@@ -1780,6 +1780,11 @@
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.2.0.tgz",
"integrity": "sha512-CYpGiFTUrmI6OBMkAdjSDM0k5h8SkkiTP4WAjQgDgNB1S3Ou9VBEvr6q0Kv2H1mMk7IWfxYGpMH5sd5AvcIV2Q=="
},
"validator": {
"version": "12.2.0",
"resolved": "https://registry.npmjs.org/validator/-/validator-12.2.0.tgz",
......@@ -1801,7 +1806,7 @@
"integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
"dev": true,
"requires": {
"string-width": "^4.0.0"
"string-width": "4.2.0"
}
},
"window-size": {
......@@ -1814,8 +1819,8 @@
"resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
"integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
"requires": {
"acorn": "^3.1.0",
"acorn-globals": "^3.0.0"
"acorn": "3.3.0",
"acorn-globals": "3.1.0"
}
},
"wordwrap": {
......@@ -1835,10 +1840,10 @@
"integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4",
"is-typedarray": "^1.0.0",
"signal-exit": "^3.0.2",
"typedarray-to-buffer": "^3.1.5"
"imurmurhash": "0.1.4",
"is-typedarray": "1.0.0",
"signal-exit": "3.0.3",
"typedarray-to-buffer": "3.1.5"
}
},
"xdg-basedir": {
......@@ -1852,9 +1857,9 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"requires": {
"camelcase": "^1.0.2",
"cliui": "^2.1.0",
"decamelize": "^1.0.0",
"camelcase": "1.2.1",
"cliui": "2.1.0",
"decamelize": "1.2.0",
"window-size": "0.1.0"
}
}
......
......@@ -19,11 +19,13 @@
},
"homepage": "https://gitlab.com/tomeof/node-3dps-extended#README",
"dependencies": {
"body-parser": "^1.19.0",
"box-intersect": "^1.0.2",
"express": "^4.17.1",
"express-validator": "^6.4.0",
"node-fetch": "^2.6.0",
"pug": "^2.0.4"
"pug": "^2.0.4",
"uuid": "^8.2.0"
},
"devDependencies": {
"nodemon": "^2.0.3"
......
const express = require("express");
const bodyParser = require("body-parser");
const tempAssets = require("../src/tempAssets");
let router = express.Router();
router.route("/")
.post(bodyParser.json(), (req, res, next) => {
tempAssets.addTempLayer(req, res);
});
module.exports = router;
\ No newline at end of file
const fs = require("fs");
const fsprom = require('fs').promises;
const boxIntersect = require("box-intersect");
const path = require('path');
const getLayers = (layers) => {
return new Promise((resolve, reject) => {
fs.readFile("./assets/assets.json", (err, data) => {
if (err) {
reject();
}
let assets = JSON.parse(data);
let requestedLayers = layers.split(",");
// const getLayers = (layers) => {
// return new Promise((resolve, reject) => {
// fs.readFile("./assets/assets.json", (err, data) => {
// if (err) {
// reject();
// }
// let assets = JSON.parse(data);
// let requestedLayers = layers.split(",");
// assets = assets.filter(asset => requestedLayers.includes(asset.id));
// assets = assets.filter(asset => asset.scope == "public");
// resolve(assets);
// });
// });
// }
const getLayers = async (layers) => {
let assets = await getAllAssets();
let requestedLayers = layers.split(",");
assets = assets.filter(asset => requestedLayers.includes(asset.id));
assets = assets.filter(asset => asset.scope == "public");
return assets;
}
const getAllAssets = async () => {
try {
let assetsJson = await fsprom.readFile('./assets/assets.json', 'utf8');
let assets = JSON.parse(assetsJson);
let tempassetsJson = await fsprom.readFile('./assets/temporaryAssets.json', 'utf8');
let tempassets = JSON.parse(tempassetsJson);
assets.push(...tempassets);
return assets;
} catch (error) {
console.log(error);
return error;
}
assets = assets.filter(asset => requestedLayers.includes(asset.id));
assets = assets.filter(asset => asset.scope == "public");
resolve(assets);
});
});
}
const getIntersectingLayers = (bb, layers) => {
......@@ -83,37 +117,61 @@ const getIntersecting = (bb) => {
}
const allLayersExist = (layers) => {
// const allLayersExist = (layers) => {
if (!layers) return Promise.reject();
// if (!layers) return Promise.reject();
return new Promise((resolve, reject) => {
fs.readFile("./assets/assets.json", (err, data) => {
if (err) {
reject();
}
let assets = JSON.parse(data);
layers = layers.split(",");
layers.forEach(layer => {
if (assets.findIndex(asset => asset.id == layer) == -1) {
reject();
}
});
resolve();
});
});
// return new Promise((resolve, reject) => {
// fs.readFile("./assets/assets.json", (err, data) => {
// if (err) {
// reject();
// }
// let assets = JSON.parse(data);
// layers = layers.split(",");
// layers.forEach(layer => {
// if (assets.findIndex(asset => asset.id == layer) == -1) {
// reject();
// }
// });
// resolve();
// });
// });
}
// }
const getPublicLayers = () => {
const allLayersExist = async (layers) => {
return new Promise((resolve, reject) => {
fs.readFile("./assets/assets.json", (err, data) => {
let assets = JSON.parse(data);
assets = assets.filter(asset => asset.scope == "public");
resolve(assets);
});
if (!layers) return Promise.reject();
let assets = await getAllAssets();
layers = layers.split(",");
layers.forEach(layer => {
if (assets.findIndex(asset => asset.id == layer) == -1) {
return Promise.reject()
}
});
return;
}
// const getPublicLayers = () => {
// return new Promise((resolve, reject) => {
// fs.readFile("./assets/assets.json", (err, data) => {
// let assets = JSON.parse(data);
// assets = assets.filter(asset => asset.scope == "public");
// resolve(assets);
// });
// });
// }
const getPublicLayers = async () => {
let assets = await getAllAssets();
assets = assets.filter(asset => asset.scope == "public");
return assets;
}
......
const fs = require('fs').promises;
const { v4: uuidv4 } = require('uuid');
const config = require("../config");
const fetch = require("node-fetch");
const addTempLayer = (req, res) => {
(async () => {
try {
await removeExpired();
let doc = await fetch(req.body.url);
let nd = await doc.json();
let tempLayer = {
name: `(tmp) ${req.body.name}`,
id: uuidv4(),
boundingbox: nd.store.extent,
url: req.body.url,
creationTime: Date.now(),
scope: "public"
};
let tempassetsJson = await fs.readFile('./assets/temporaryAssets.json', 'utf8');
let tempassets = JSON.parse(tempassetsJson);
tempassets.push(tempLayer);
let updatedTempassets = JSON.stringify(tempassets, null, 2);
await fs.writeFile('./assets/temporaryAssets.json', updatedTempassets, 'utf8');
res.status(200).send("layer added");
} catch (error) {
console.log(error);
res.status(400).send(error);
}
})();
}
const removeExpired = async () => {
try {
let tempassetsJson = await fs.readFile('./assets/temporaryAssets.json', 'utf8');
let tempassets = JSON.parse(tempassetsJson);
let currentTime = Date.now();
let nonExpired = tempassets.filter(tempasset => {
let diffInSeconds = (currentTime - tempasset.creationTime) / 1000;
return (diffInSeconds < config.tempLayers.expiry.seconds);
});
let updatedTempassets = JSON.stringify(nonExpired, null, 2);
await fs.writeFile('./assets/temporaryAssets.json', updatedTempassets, 'utf8');
} catch (error) {
console.log(error);
}
}
module.exports = { addTempLayer };
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment