diff --git a/package-lock.json b/package-lock.json index 4b5e2a1..1edf018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "requires": true, "packages": { "": { + "name": "citas_recorridos_api", "version": "1.0.0", "license": "ISC", "dependencies": { @@ -27,52 +28,24 @@ } }, "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz", - "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.6.tgz", + "integrity": "sha512-qK1ECws8UxuPqOA8F5LFD90vyVU33W7N3hGfgsOVfrJaRVc8McC3JClTDHpeSbL9CBrOHly/4GsNPAvIgNZE+g==", "dependencies": { "detect-libc": "^1.0.3", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.5", "nopt": "^5.0.0", - "npmlog": "^4.1.2", + "npmlog": "^5.0.1", "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" + "semver": "^7.3.5", + "tar": "^6.1.11" }, "bin": { "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -95,14 +68,14 @@ } }, "node_modules/@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==" + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, "node_modules/@types/node": { - "version": "14.14.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz", - "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==" + "version": "14.17.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.29.tgz", + "integrity": "sha512-sd4CHI9eTJXTH2vF3RGtGkqvWRwhsSSUFsXD4oG38GZzSZ0tNPbWikd2AbOAcKxCXhOg57fL8FPxjpfSzb2pIQ==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -154,35 +127,64 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, "dependencies": { - "string-width": "^3.0.0" + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/ansi-align/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, "node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/ansi-styles": { @@ -195,6 +197,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/any-promise": { @@ -216,17 +221,20 @@ } }, "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "node_modules/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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dependencies": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" } }, "node_modules/array-flatten": { @@ -287,19 +295,66 @@ } }, "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "dev": true, "dependencies": { "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" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/boxen/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -362,6 +417,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cacheable-request/node_modules/lowercase-keys": { @@ -374,25 +432,31 @@ } }, "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chalk/node_modules/has-flag": { @@ -417,24 +481,24 @@ } }, "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "dependencies": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "glob-parent": "~5.1.0", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { - "fsevents": "~2.3.1" + "fsevents": "~2.3.2" } }, "node_modules/chownr": { @@ -458,6 +522,9 @@ "dev": true, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/clone-response": { @@ -469,14 +536,6 @@ "mimic-response": "^1.0.0" } }, - "node_modules/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=", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -495,6 +554,14 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -567,11 +634,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "node_modules/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=" - }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -650,9 +712,9 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "node_modules/denque": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", - "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", "engines": { "node": ">=0.10" } @@ -694,11 +756,11 @@ } }, "node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", "engines": { - "node": ">=8" + "node": ">=10" } }, "node_modules/dottie": { @@ -718,9 +780,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/encodeurl": { @@ -832,9 +894,9 @@ } }, "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "engines": { "node": ">= 0.6" } @@ -868,6 +930,7 @@ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, + "hasInstallScript": true, "optional": true, "os": [ "darwin" @@ -877,61 +940,22 @@ } }, "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dependencies": { - "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" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz", + "integrity": "sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==", "dependencies": { - "ansi-regex": "^2.0.0" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1 || ^2.0.0", + "strip-ansi": "^3.0.1 || ^4.0.0", + "wide-align": "^1.1.2" }, "engines": { - "node": ">=0.10.0" + "node": ">=10" } }, "node_modules/get-stream": { @@ -947,9 +971,9 @@ } }, "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -978,24 +1002,27 @@ } }, "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dev": true, "dependencies": { - "ini": "1.3.7" + "ini": "2.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/gmail-send": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/gmail-send/-/gmail-send-1.8.10.tgz", - "integrity": "sha512-QMpWwzeA64U69HzOEzI37UNc73xXkhTg8LuqsfKX9W7LjiQY3yRvViVn7ZhuJWLTV4136vsLJf2sXiZKmdykbw==", + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/gmail-send/-/gmail-send-1.8.14.tgz", + "integrity": "sha512-hc+4Ej7ZJtw0G5sync10pmWkpPXIabkQ+p/a92lPPTXni3ChEU9sR2wxOvK6Hx+5Ou+2m9h1cVffWEgtR6Gzkw==", "dependencies": { - "lodash": "^4.17.15", - "nodemailer": "^6.3.0" + "lodash": "^4.17.21", + "nodemailer": "^6.6.5" } }, "node_modules/got": { @@ -1021,9 +1048,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "node_modules/has-flag": { @@ -1139,9 +1166,9 @@ } }, "node_modules/inflection": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", - "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.1.tgz", + "integrity": "sha512-dldYtl2WlN0QDkIDtg8+xFwOS2Tbmp12t1cHa5/YClU6ZQjTFm7B66UcVbh9NQB+HvT5BAd2t5+yKsBkw5pcqA==", "engines": [ "node >= 0.4.0" ] @@ -1161,10 +1188,13 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -1216,9 +1246,9 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -1228,25 +1258,31 @@ } }, "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-number": { @@ -1293,11 +1329,6 @@ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -1364,6 +1395,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-dir/node_modules/semver": { @@ -1375,14 +1409,14 @@ } }, "node_modules/mariadb": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.3.tgz", - "integrity": "sha512-9ZbQ1zLqasLCQy6KDcPHtX7EUIMBlQ8p64gNR61+yfpCIWjPDji3aR56LvwbOz1QnQbVgYBOJ4J/pHoFN5MR+w==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.5.tgz", + "integrity": "sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==", "dependencies": { "@types/geojson": "^7946.0.7", "@types/node": "^14.14.28", - "denque": "^1.4.1", - "iconv-lite": "^0.6.2", + "denque": "^1.5.0", + "iconv-lite": "^0.6.3", "long": "^4.0.0", "moment-timezone": "^0.5.33", "please-upgrade-node": "^3.2.0" @@ -1392,9 +1426,9 @@ } }, "node_modules/mariadb/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -1435,19 +1469,19 @@ } }, "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "dependencies": { - "mime-db": "1.47.0" + "mime-db": "1.50.0" }, "engines": { "node": ">= 0.6" @@ -1480,9 +1514,9 @@ "dev": true }, "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", "dependencies": { "yallist": "^4.0.0" }, @@ -1551,25 +1585,28 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" } }, "node_modules/nodemailer": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.6.2.tgz", - "integrity": "sha512-YSzu7TLbI+bsjCis/TZlAXBoM4y93HhlIgo0P5oiA2ua9Z4k+E2Fod//ybIzdJxOlXGRcHIh/WaeCBehvxZb/Q==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.0.tgz", + "integrity": "sha512-AtiTVUFHLiiDnMQ43zi0YgkzHOEWUkhDgPlBXrsDzJiJvB29Alo4OKxHQ0ugF3gRqRQIneCLtZU3yiUo7pItZw==", "engines": { "node": ">=6.0.0" } }, "node_modules/nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz", + "integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -1582,13 +1619,17 @@ "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "update-notifier": "^5.1.0" }, "bin": { "nodemon": "bin/nodemon.js" }, "engines": { "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" } }, "node_modules/nodemon/node_modules/debug": { @@ -1606,16 +1647,27 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dependencies": { "abbrev": "1" }, "bin": { "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" } }, "node_modules/normalize-path": { @@ -1628,31 +1680,23 @@ } }, "node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/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=", - "engines": { - "node": ">=0.10.0" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, "node_modules/object-assign": { @@ -1737,12 +1781,15 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "node_modules/picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, "engines": { "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/please-upgrade-node": { @@ -1762,17 +1809,12 @@ "node": ">=4" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dependencies": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" }, "engines": { @@ -1852,24 +1894,29 @@ "rc": "cli.js" } }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" @@ -1944,12 +1991,17 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/semver-compare": { @@ -2007,13 +2059,13 @@ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" }, "node_modules/sequelize": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.6.2.tgz", - "integrity": "sha512-H/zrzmTK+tis9PJaSigkuXI57nKBvNCtPQol0yxCvau1iWLzSOuq8t3tMOVeQ+Ep8QH2HoD9/+FCCIAqzUr/BQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.7.0.tgz", + "integrity": "sha512-OVw3psUggqQT9kYg5Z9fja/BMdBxX/Ua3Bwx2yif5g6QuYEE4UfWq5jW6LmbacGwgK6bgZs05Q2zCkJZCDFrSA==", "dependencies": { "debug": "^4.1.1", "dottie": "^2.0.0", - "inflection": "1.12.0", + "inflection": "1.13.1", "lodash": "^4.17.20", "moment": "^2.26.0", "moment-timezone": "^0.5.31", @@ -2022,11 +2074,31 @@ "sequelize-pool": "^6.0.0", "toposort-class": "^1.0.1", "uuid": "^8.1.0", - "validator": "^10.11.0", + "validator": "^13.6.0", "wkx": "^0.5.0" }, "engines": { "node": ">=10.0.0" + }, + "peerDependenciesMeta": { + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } } }, "node_modules/sequelize-pool": { @@ -2038,14 +2110,19 @@ } }, "node_modules/sequelize/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/sequelize/node_modules/ms": { @@ -2053,28 +2130,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, - "node_modules/sequelize/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sequelize/node_modules/validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", @@ -2100,9 +2155,9 @@ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "node_modules/statuses": { "version": "1.5.0", @@ -2113,73 +2168,53 @@ } }, "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "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==", "dependencies": { - "safe-buffer": "~5.1.0" + "safe-buffer": "~5.2.0" } }, + "node_modules/string_decoder/node_modules/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==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" + "node": ">=4" } }, "node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dependencies": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^3.0.0" }, "engines": { - "node": ">=6" + "node": ">=4" } }, "node_modules/strip-bom": { @@ -2215,9 +2250,9 @@ } }, "node_modules/tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -2230,15 +2265,6 @@ "node": ">= 10" } }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -2285,13 +2311,36 @@ "nodetouch": "bin/nodetouch.js" } }, + "node_modules/touch/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { @@ -2316,13 +2365,10 @@ } }, "node_modules/undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "dependencies": { - "debug": "^2.2.0" - } + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "node_modules/unique-string": { "version": "2.0.0", @@ -2345,27 +2391,31 @@ } }, "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "dev": true, "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.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-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, "node_modules/url-parse-lax": { @@ -2417,43 +2467,26 @@ "node": ">= 0.8" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/widest-line": { @@ -2468,6 +2501,50 @@ "node": ">=8" } }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/widest-line/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wkx": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", @@ -2476,6 +2553,67 @@ "@types/node": "*" } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -2510,37 +2648,19 @@ }, "dependencies": { "@mapbox/node-pre-gyp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz", - "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.6.tgz", + "integrity": "sha512-qK1ECws8UxuPqOA8F5LFD90vyVU33W7N3hGfgsOVfrJaRVc8McC3JClTDHpeSbL9CBrOHly/4GsNPAvIgNZE+g==", "requires": { "detect-libc": "^1.0.3", "https-proxy-agent": "^5.0.0", "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", + "node-fetch": "^2.6.5", "nopt": "^5.0.0", - "npmlog": "^4.1.2", + "npmlog": "^5.0.1", "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - }, - "dependencies": { - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } + "semver": "^7.3.5", + "tar": "^6.1.11" } }, "@sindresorhus/is": { @@ -2559,14 +2679,14 @@ } }, "@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==" + "version": "7946.0.8", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.8.tgz", + "integrity": "sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==" }, "@types/node": { - "version": "14.14.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.41.tgz", - "integrity": "sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==" + "version": "14.17.29", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.29.tgz", + "integrity": "sha512-sd4CHI9eTJXTH2vF3RGtGkqvWRwhsSSUFsXD4oG38GZzSZ0tNPbWikd2AbOAcKxCXhOg57fL8FPxjpfSzb2pIQ==" }, "abbrev": { "version": "1.1.1", @@ -2606,32 +2726,52 @@ } }, "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", "dev": true, "requires": { - "string-width": "^3.0.0" + "string-width": "^4.1.0" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" } } } }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" }, "ansi-styles": { "version": "4.3.0", @@ -2658,17 +2798,17 @@ } }, "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" }, "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==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "requires": { "delegates": "^1.0.0", - "readable-stream": "^2.0.6" + "readable-stream": "^3.6.0" } }, "array-flatten": { @@ -2719,19 +2859,53 @@ } }, "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", "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" + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "brace-expansion": { @@ -2790,15 +2964,15 @@ } }, "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", "dev": true }, "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", @@ -2823,19 +2997,19 @@ } }, "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { - "anymatch": "~3.1.1", + "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "readdirp": "~3.6.0" } }, "chownr": { @@ -2864,11 +3038,6 @@ "mimic-response": "^1.0.0" } }, - "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=" - }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2884,6 +3053,11 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", @@ -2941,11 +3115,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, - "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=" - }, "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", @@ -3006,9 +3175,9 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "denque": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", - "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" }, "depd": { "version": "1.1.2", @@ -3035,9 +3204,9 @@ } }, "dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", + "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" }, "dottie": { "version": "2.0.2", @@ -3056,9 +3225,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encodeurl": { @@ -3152,9 +3321,9 @@ } }, "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" }, "fresh": { "version": "0.5.2", @@ -3182,51 +3351,19 @@ "optional": true }, "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.1.tgz", + "integrity": "sha512-6STz6KdQgxO4S/ko+AbjlFGGdGcknluoqU+79GOFCDqqyYj5OanQf9AjxwN0jCidtT+ziPMmPSt9E4hfQ0CwIQ==", "requires": { - "aproba": "^1.0.3", + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - } + "string-width": "^1.0.1 || ^2.0.0", + "strip-ansi": "^3.0.1 || ^4.0.0", + "wide-align": "^1.1.2" } }, "get-stream": { @@ -3239,9 +3376,9 @@ } }, "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3261,21 +3398,21 @@ } }, "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", "dev": true, "requires": { - "ini": "1.3.7" + "ini": "2.0.0" } }, "gmail-send": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/gmail-send/-/gmail-send-1.8.10.tgz", - "integrity": "sha512-QMpWwzeA64U69HzOEzI37UNc73xXkhTg8LuqsfKX9W7LjiQY3yRvViVn7ZhuJWLTV4136vsLJf2sXiZKmdykbw==", + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/gmail-send/-/gmail-send-1.8.14.tgz", + "integrity": "sha512-hc+4Ej7ZJtw0G5sync10pmWkpPXIabkQ+p/a92lPPTXni3ChEU9sR2wxOvK6Hx+5Ou+2m9h1cVffWEgtR6Gzkw==", "requires": { - "lodash": "^4.17.15", - "nodemailer": "^6.3.0" + "lodash": "^4.17.21", + "nodemailer": "^6.6.5" } }, "got": { @@ -3298,9 +3435,9 @@ } }, "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", "dev": true }, "has-flag": { @@ -3389,9 +3526,9 @@ "dev": true }, "inflection": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", - "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=" + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.1.tgz", + "integrity": "sha512-dldYtl2WlN0QDkIDtg8+xFwOS2Tbmp12t1cHa5/YClU6ZQjTFm7B66UcVbh9NQB+HvT5BAd2t5+yKsBkw5pcqA==" }, "inflight": { "version": "1.0.6", @@ -3408,9 +3545,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, "ipaddr.js": { @@ -3448,28 +3585,28 @@ "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" } }, "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", "dev": true }, "is-number": { @@ -3507,11 +3644,6 @@ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -3576,23 +3708,23 @@ } }, "mariadb": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.3.tgz", - "integrity": "sha512-9ZbQ1zLqasLCQy6KDcPHtX7EUIMBlQ8p64gNR61+yfpCIWjPDji3aR56LvwbOz1QnQbVgYBOJ4J/pHoFN5MR+w==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.5.tgz", + "integrity": "sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==", "requires": { "@types/geojson": "^7946.0.7", "@types/node": "^14.14.28", - "denque": "^1.4.1", - "iconv-lite": "^0.6.2", + "denque": "^1.5.0", + "iconv-lite": "^0.6.3", "long": "^4.0.0", "moment-timezone": "^0.5.33", "please-upgrade-node": "^3.2.0" }, "dependencies": { "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -3620,16 +3752,16 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" + "version": "1.50.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.50.0.tgz", + "integrity": "sha512-9tMZCDlYHqeERXEHO9f/hKfNXhre5dK2eE/krIvUjZbS2KPcqGDfNShIWS1uW9XOTKQKqK6qbeOci18rbfW77A==" }, "mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", + "version": "2.1.33", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.33.tgz", + "integrity": "sha512-plLElXp7pRDd0bNZHw+nMd52vRYjLwQjygaNg7ddJ2uJtTlmnTCjWuPKxVu6//AdaRuME84SvLW91sIkBqGT0g==", "requires": { - "mime-db": "1.47.0" + "mime-db": "1.50.0" } }, "mimic-response": { @@ -3653,9 +3785,9 @@ "dev": true }, "minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", "requires": { "yallist": "^4.0.0" } @@ -3703,19 +3835,22 @@ "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.5.tgz", + "integrity": "sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "nodemailer": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.6.2.tgz", - "integrity": "sha512-YSzu7TLbI+bsjCis/TZlAXBoM4y93HhlIgo0P5oiA2ua9Z4k+E2Fod//ybIzdJxOlXGRcHIh/WaeCBehvxZb/Q==" + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.0.tgz", + "integrity": "sha512-AtiTVUFHLiiDnMQ43zi0YgkzHOEWUkhDgPlBXrsDzJiJvB29Alo4OKxHQ0ugF3gRqRQIneCLtZU3yiUo7pItZw==" }, "nodemon": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.7.tgz", - "integrity": "sha512-XHzK69Awgnec9UzHr1kc8EomQh4sjTQ8oRf8TsGrSmHDx9/UmiGG9E/mM3BuTfNeFwdNBvrqQq/RHL0xIeyFOA==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.14.tgz", + "integrity": "sha512-frcpDx+PviKEQRSYzwhckuO2zoHcBYLHI754RE9z5h1RGtrngerc04mLpQQCPWBkH/2ObrX7We9YiwVSYZpFJQ==", "dev": true, "requires": { "chokidar": "^3.2.2", @@ -3727,7 +3862,7 @@ "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.3", - "update-notifier": "^4.1.0" + "update-notifier": "^5.1.0" }, "dependencies": { "debug": { @@ -3744,14 +3879,19 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true } } }, "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "requires": { "abbrev": "1" } @@ -3763,27 +3903,22 @@ "dev": true }, "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" } }, - "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=" - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3847,9 +3982,9 @@ "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" }, "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "please-upgrade-node": { @@ -3866,17 +4001,12 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.2.0", "ipaddr.js": "1.9.1" } }, @@ -3936,26 +4066,30 @@ "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } } }, "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" @@ -4015,10 +4149,12 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "requires": { + "lru-cache": "^6.0.0" + } }, "semver-compare": { "version": "1.0.0", @@ -4070,13 +4206,13 @@ } }, "sequelize": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.6.2.tgz", - "integrity": "sha512-H/zrzmTK+tis9PJaSigkuXI57nKBvNCtPQol0yxCvau1iWLzSOuq8t3tMOVeQ+Ep8QH2HoD9/+FCCIAqzUr/BQ==", + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.7.0.tgz", + "integrity": "sha512-OVw3psUggqQT9kYg5Z9fja/BMdBxX/Ua3Bwx2yif5g6QuYEE4UfWq5jW6LmbacGwgK6bgZs05Q2zCkJZCDFrSA==", "requires": { "debug": "^4.1.1", "dottie": "^2.0.0", - "inflection": "1.12.0", + "inflection": "1.13.1", "lodash": "^4.17.20", "moment": "^2.26.0", "moment-timezone": "^0.5.31", @@ -4085,14 +4221,14 @@ "sequelize-pool": "^6.0.0", "toposort-class": "^1.0.1", "uuid": "^8.1.0", - "validator": "^10.11.0", + "validator": "^13.6.0", "wkx": "^0.5.0" }, "dependencies": { "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "requires": { "ms": "2.1.2" } @@ -4101,19 +4237,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==" } } }, @@ -4144,9 +4267,9 @@ "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==" }, "statuses": { "version": "1.5.0", @@ -4154,60 +4277,35 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "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.1.0" - } - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "safe-buffer": "~5.2.0" }, "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.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==" } } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "ansi-regex": "^4.1.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" } }, "strip-bom": { @@ -4234,9 +4332,9 @@ } }, "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -4246,12 +4344,6 @@ "yallist": "^4.0.0" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", @@ -4284,12 +4376,28 @@ "dev": true, "requires": { "nopt": "~1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "dev": true, + "requires": { + "abbrev": "1" + } + } } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "type-is": { @@ -4311,13 +4419,10 @@ } }, "undefsafe": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", - "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", - "dev": true, - "requires": { - "debug": "^2.2.0" - } + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true }, "unique-string": { "version": "2.0.0", @@ -4334,22 +4439,23 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", "dev": true, "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", + "boxen": "^5.0.0", + "chalk": "^4.1.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-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" } @@ -4388,36 +4494,26 @@ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" } }, "widest-line": { @@ -4427,6 +4523,40 @@ "dev": true, "requires": { "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "wkx": { @@ -4437,6 +4567,51 @@ "@types/node": "*" } }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/server/controller/Alumno/get.js b/server/controller/Alumno/get.js new file mode 100644 index 0000000..3206592 --- /dev/null +++ b/server/controller/Alumno/get.js @@ -0,0 +1,35 @@ +const { validarNumeroCuenta } = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +// const Carrera = require(`${dbPath}/Carrera`); +// const Grupo = require(`${dbPath}/Grupo`); +// const Horario = require(`${dbPath}/Horario`); +// const GrupoHorario = require(`${dbPath}/GrupoHorario`); +// const TercerSemestre = require(`${dbPath}/TercerSemestre`); + +const get = async (body) => { + // const numeroCuenta = validarNumeroCuenta(body.numeroCuenta); + // let alumnoTercerSemestre = {}; + // return TercerSemestre.findOne({ + // where: { numeroCuenta }, + // include: [{ model: Grupo, include: [{ model: Carrera }] }], + // }) + // .then((res) => { + // if (!res) throw new Error('No existe esta alumno.'); + // if (res.deseaAsistir) + // throw new Error('Ya se registro a este alumno al recorrido.'); + // alumnoTercerSemestre = res; + // delete alumnoTercerSemestre.dataValues.idGrupo; + // delete alumnoTercerSemestre.dataValues.Grupo.dataValues.idCarrera; + // return GrupoHorario.findOne({ + // where: { idGrupo: alumnoTercerSemestre.Grupo.idGrupo }, + // include: [{ model: Horario }], + // }); + // }) + // .then((res) => { + // delete res.dataValues.idHorario; + // delete res.dataValues.idGrupo; + // return { alumnoTercerSemestre, GrupoHorario: res }; + // }); +}; + +module.exports = get; diff --git a/server/controller/Carrera/get.js b/server/controller/Carrera/get.js deleted file mode 100644 index 6442a42..0000000 --- a/server/controller/Carrera/get.js +++ /dev/null @@ -1,5 +0,0 @@ -const Carrera = require('../../db/tablas/Carrera'); - -const get = async () => Carrera.findAll(); - -module.exports = get; \ No newline at end of file diff --git a/server/controller/CarreraHorario/get.js b/server/controller/CarreraHorario/get.js deleted file mode 100644 index 894d83e..0000000 --- a/server/controller/CarreraHorario/get.js +++ /dev/null @@ -1,37 +0,0 @@ -const { validarId } = require('../../helper/validar'); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const CarreraHorario = require(`${dbPath}/CarreraHorario`); -const Horario = require(`${dbPath}/Horario`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); - -const get = async (body) => { - const idCarrera = validarId(body.idCarrera); - const data = []; - - return Carrera.findOne({ where: { idCarrera } }) - .then((res) => { - if (!res) throw new Error('No existe esta carrera.'); - return CarreraHorario.findAll({ - where: { idCarrera }, - include: [{ model: Horario }], - }); - }) - .then(async (res) => { - for (let i = 0; i < res.length; i++) { - const lugaresOcupados = await PrimerSemestre.findAll({ - where: { idHorario: res[i].Horario.idHorario }, - }).then((res) => res.length); - - if (lugaresOcupados < 45) - data.push({ - idHorario: res[i].Horario.idHorario, - horario: res[i].Horario.horario, - lugares: 45 - lugaresOcupados, - }); - } - return data; - }); -}; - -module.exports = get; diff --git a/server/controller/CarreraHorario/horariosDia.js b/server/controller/CarreraHorario/horariosDia.js deleted file mode 100644 index 5809b79..0000000 --- a/server/controller/CarreraHorario/horariosDia.js +++ /dev/null @@ -1,21 +0,0 @@ -const moment = require('moment'); -const dbPath = '../../db/tablas'; -const CarreraHorario = require(`${dbPath}/CarreraHorario`); -const Horario = require(`${dbPath}/Horario`); -const hoy = moment(); - -const horariosDia = async (body) => { - const data = []; - - return CarreraHorario.findAll({ - include: [{ model: Horario }], - order: ['idHorario'], - }).then(async (res) => { - for (let i = 0; i < res.length; i++) - if (hoy.dayOfYear() === moment(res[i].Horario.horario).dayOfYear()) - data.push({ Horario: res[i].Horario }); - return data; - }); -}; - -module.exports = horariosDia; diff --git a/server/controller/CarreraHorario/monitor.js b/server/controller/CarreraHorario/monitor.js deleted file mode 100644 index 8a2b8fd..0000000 --- a/server/controller/CarreraHorario/monitor.js +++ /dev/null @@ -1,25 +0,0 @@ -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const CarreraHorario = require(`${dbPath}/CarreraHorario`); -const Horario = require(`${dbPath}/Horario`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); - -const monitor = async (body) => { - const data = []; - - return CarreraHorario.findAll({ - include: [{ model: Horario }, { model: Carrera }], - order: ['idHorario'], - }).then(async (res) => { - for (let i = 0; i < res.length; i++) { - const asistentes = await PrimerSemestre.findAll({ - where: { idHorario: res[i].idHorario }, - }).then((res) => res.length); - - data.push({ CarreraHorario: res[i], asistentes }); - } - return data; - }); -}; - -module.exports = monitor; diff --git a/server/controller/Grupo/get.js b/server/controller/Grupo/get.js deleted file mode 100644 index 6800fd4..0000000 --- a/server/controller/Grupo/get.js +++ /dev/null @@ -1,23 +0,0 @@ -const { Op } = require('sequelize'); -const { validarId } = require('../../helper/validar'); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); - -const get = async (body) => { - const idCarrera = validarId(body.idCarrera); - - return Carrera.findOne({ where: { idCarrera } }) - .then((res) => { - if (!res) throw new Error('No existe esta carrera.'); - return Grupo.findAll({ - where: { idCarrera, grupo: { [Op.like]: '11%' } }, - }); - }) - .then((res) => { - for (let i = 0; i < res.length; i++) delete res[i].dataValues.idCarrera; - return res; - }); -}; - -module.exports = get; diff --git a/server/controller/GrupoHorario/horariosDia.js b/server/controller/GrupoHorario/horariosDia.js deleted file mode 100644 index edaec70..0000000 --- a/server/controller/GrupoHorario/horariosDia.js +++ /dev/null @@ -1,21 +0,0 @@ -const moment = require('moment'); -const dbPath = '../../db/tablas'; -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const Horario = require(`${dbPath}/Horario`); -const hoy = moment(); - -const horariosDia = async (body) => { - const data = []; - - return GrupoHorario.findAll({ - include: [{ model: Horario }], - order: ['idHorario'], - }).then(async (res) => { - for (let i = 0; i < res.length; i++) - if (hoy.dayOfYear() === moment(res[i].Horario.horario).dayOfYear()) - data.push({ Horario: res[i].Horario }); - return data; - }); -}; - -module.exports = horariosDia; diff --git a/server/controller/GrupoHorario/monitor.js b/server/controller/GrupoHorario/monitor.js deleted file mode 100644 index be23a16..0000000 --- a/server/controller/GrupoHorario/monitor.js +++ /dev/null @@ -1,29 +0,0 @@ -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const Horario = require(`${dbPath}/Horario`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); - -const monitor = async (body) => { - const data = []; - - return GrupoHorario.findAll({ - include: [ - { model: Horario }, - { model: Grupo, include: [{ model: Carrera }] }, - ], - order: ['idHorario'], - }).then(async (res) => { - for (let i = 0; i < res.length; i++) { - const asistentes = await TercerSemestre.findAll({ - where: { idGrupo: res[i].idGrupo, deseaAsistir: true }, - }).then((res) => res.length); - - data.push({ GrupoHorario: res[i], asistentes }); - } - return data; - }); -}; - -module.exports = monitor; diff --git a/server/controller/Horario/get.js b/server/controller/Horario/get.js new file mode 100644 index 0000000..3206592 --- /dev/null +++ b/server/controller/Horario/get.js @@ -0,0 +1,35 @@ +const { validarNumeroCuenta } = require('../../helper/validar'); +const dbPath = '../../db/tablas'; +// const Carrera = require(`${dbPath}/Carrera`); +// const Grupo = require(`${dbPath}/Grupo`); +// const Horario = require(`${dbPath}/Horario`); +// const GrupoHorario = require(`${dbPath}/GrupoHorario`); +// const TercerSemestre = require(`${dbPath}/TercerSemestre`); + +const get = async (body) => { + // const numeroCuenta = validarNumeroCuenta(body.numeroCuenta); + // let alumnoTercerSemestre = {}; + // return TercerSemestre.findOne({ + // where: { numeroCuenta }, + // include: [{ model: Grupo, include: [{ model: Carrera }] }], + // }) + // .then((res) => { + // if (!res) throw new Error('No existe esta alumno.'); + // if (res.deseaAsistir) + // throw new Error('Ya se registro a este alumno al recorrido.'); + // alumnoTercerSemestre = res; + // delete alumnoTercerSemestre.dataValues.idGrupo; + // delete alumnoTercerSemestre.dataValues.Grupo.dataValues.idCarrera; + // return GrupoHorario.findOne({ + // where: { idGrupo: alumnoTercerSemestre.Grupo.idGrupo }, + // include: [{ model: Horario }], + // }); + // }) + // .then((res) => { + // delete res.dataValues.idHorario; + // delete res.dataValues.idGrupo; + // return { alumnoTercerSemestre, GrupoHorario: res }; + // }); +}; + +module.exports = get; diff --git a/server/controller/PrimerSemestre/alumnosCarrera.js b/server/controller/PrimerSemestre/alumnosCarrera.js deleted file mode 100644 index b41735a..0000000 --- a/server/controller/PrimerSemestre/alumnosCarrera.js +++ /dev/null @@ -1,26 +0,0 @@ -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); - -const alumnosCarrera = async (body) => { - const data = []; - - return Carrera.findAll().then(async (res) => { - for (let i = 0; i < res.length; i++) { - const alumnos = await PrimerSemestre.findAll({ - include: [ - { - model: Grupo, - where: { idCarrera: res[i].idCarrera }, - }, - ], - }).then((res) => res.length); - - data.push({ Carrera: res[i], alumnos }); - } - return data; - }); -}; - -module.exports = alumnosCarrera; diff --git a/server/controller/PrimerSemestre/asistencia.js b/server/controller/PrimerSemestre/asistencia.js deleted file mode 100644 index c52d04f..0000000 --- a/server/controller/PrimerSemestre/asistencia.js +++ /dev/null @@ -1,32 +0,0 @@ -const moment = require('moment'); -const helperPath = '../../helper'; -const { validarNumeroCuenta } = require(`${helperPath}/validar`); -const dbPath = '../../db/tablas'; -const Horario = require(`${dbPath}/Horario`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); -const hoy = moment(); - -const asistencia = async (body) => { - const numeroCuenta = validarNumeroCuenta(body.numeroCuenta); - - return PrimerSemestre.findOne({ - where: { numeroCuenta }, - include: [{ model: Horario }], - }) - .then((res) => { - if (!res) throw new Error('No existe este alumno.'); - if (hoy.dayOfYear() != moment(res.Horario.horario).dayOfYear()) - throw new Error('Este alumno no tiene una cita para el día de hoy.'); - if (res.asistio) - throw new Error('Ya fue registrada la asistencia de este alumno.'); - return PrimerSemestre.update( - { asistio: true }, - { where: { numeroCuenta } } - ); - }) - .then((res) => ({ - message: 'Se registro correctamente la asistencia de este alumno.', - })); -}; - -module.exports = asistencia; diff --git a/server/controller/PrimerSemestre/asistentes.js b/server/controller/PrimerSemestre/asistentes.js deleted file mode 100644 index c951001..0000000 --- a/server/controller/PrimerSemestre/asistentes.js +++ /dev/null @@ -1,21 +0,0 @@ -const helperPath = '../../helper'; -const validar = require(`${helperPath}/validar`); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const Horario = require(`${dbPath}/Horario`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); - -const asistentes = async (body) => { - const idHorario = validar.validarId(body.idHorario); - - return Horario.findOne({ where: { idHorario } }).then((res) => { - if (!res) throw new Error('No existe este horario.'); - return PrimerSemestre.findAll({ - where: { idHorario }, - include: [{ model: Grupo, include: [{ model: Carrera }] }], - }); - }); -}; - -module.exports = asistentes; diff --git a/server/controller/PrimerSemestre/csv.js b/server/controller/PrimerSemestre/csv.js deleted file mode 100644 index 2ddf5b1..0000000 --- a/server/controller/PrimerSemestre/csv.js +++ /dev/null @@ -1,59 +0,0 @@ -const moment = require('moment'); -const { convertArrayToCSV } = require('convert-array-to-csv'); -const helperPath = '../../helper'; -const helper = require(`${helperPath}/helper`); -const encriptar = require(`${helperPath}/encriptar`); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const Horario = require(`${dbPath}/Horario`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); - -const csv = async (body) => { - const path = `server/uploads/primer_semestre.csv`; - const data = []; - - if ( - !encriptar.comparar( - body.password, - '$2b$10$8FDx15tey9s9ITXNNE/Qourk1EfyrC6W8/ROqI0sGMuyOAuZ8oHMO' - ) - ) - throw new Error('Contraseña incorrecta.'); - return PrimerSemestre.findAll({ - include: [{ model: Grupo, include: [{ model: Carrera }] }], - }) - .then(async (res) => { - for (let i = 0; i < res.length; i++) { - const horario = await Horario.findOne({ - where: { idHorario: res[i].idHorario }, - }).then((res) => moment(res.horario)); - - data.push({ - numeroCuenta: res[i].numeroCuenta, - nombre: res[i].nombre, - carrera: res[i].Grupo.Carrera.carrera, - grupo: res[i].Grupo.grupo, - dia: `${ - horario.date() < 10 ? '0' + horario.date() : horario.date() - }/${ - horario.month() + 1 < 10 - ? '0' + (horario.month() + 1) - : horario.month() + 1 - }/${horario.year()}`, - hora: `${ - horario.hour() < 10 ? '0' + horario.hour() : horario.hour() - }:${ - horario.minute() < 10 ? '0' + horario.minute() : horario.minute() - }`, - correo: res[i].correo, - asistio: res[i].asistio ? 'si' : 'no', - }); - } - await helper.eliminarArchivo(path).catch((err) => {}); - return helper.crearArchivo(path, convertArrayToCSV(data)); - }) - .then((res) => path); -}; - -module.exports = csv; diff --git a/server/controller/PrimerSemestre/registrar.js b/server/controller/PrimerSemestre/registrar.js deleted file mode 100644 index c8d40df..0000000 --- a/server/controller/PrimerSemestre/registrar.js +++ /dev/null @@ -1,85 +0,0 @@ -const helperPath = '../../helper'; -const gmail = require(`${helperPath}/gmail`); -const correos = require(`${helperPath}/correos`); -const validar = require(`${helperPath}/validar`); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const CarreraHorario = require(`${dbPath}/CarreraHorario`); -const Horario = require(`${dbPath}/Horario`); -const Grupo = require(`${dbPath}/Grupo`); -const PrimerSemestre = require(`${dbPath}/PrimerSemestre`); - -const registrar = async (body) => { - const idCarrera = validar.validarId(body.idCarrera); - const idGrupo = validar.validarId(body.idGrupo); - const idHorario = validar.validarId(body.idHorario); - const numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta); - const correo = validar.validarCorreo(body.correo); - const nombre = validar.validarTexto(body.nombre, 'El nombre', 70); - let mail = {}; - let horario = {}; - let carrera = {}; - - return Carrera.findOne({ where: { idCarrera } }) - .then((res) => { - if (!res) throw new Error('No existe esta carrera.'); - carrera = res; - return Grupo.findOne({ - where: { idGrupo }, - }); - }) - .then((res) => { - if (!res) throw new Error('No existe este grupo.'); - return Grupo.findOne({ where: { idGrupo, idCarrera } }); - }) - .then((res) => { - if (!res) - throw new Error('Este grupo no pertenece a la carrera indicada.'); - if (res.grupo[0] === '2' && res.grupo[1] === '2') - throw new Error( - 'Este grupo es de segundo semestre, no es valido para este registro.' - ); - return Horario.findOne({ where: { idHorario } }); - }) - .then((res) => { - if (!res) throw new Error('No existe este horario.'); - horario = res; - return CarreraHorario.findOne({ where: { idCarrera, idHorario } }); - }) - .then((res) => { - if (!res) throw new Error('Esta carrera no tiene asignado este horario.'); - return PrimerSemestre.findOne({ where: { numeroCuenta } }); - }) - .then((res) => { - if (res) throw new Error('Ya se registro a este alumno al recorrido.'); - return PrimerSemestre.findAll({ - where: { idHorario }, - }); - }) - .then((res) => { - if (res.length >= 45) - throw new Error('Este horario ya esta lleno, elige otro.'); - return PrimerSemestre.create({ - numeroCuenta, - correo, - nombre, - idHorario, - idGrupo, - }); - }) - .then((res) => { - mail = correos.correoPrimerSemestre( - res.numeroCuenta, - res.nombre, - carrera.carrera, - horario.horario - ); - return gmail(mail.subject, res.correo, mail.message); - }) - .then((res) => ({ - message: - 'Te has registrado correctamente, hemos mandado tu comprobante a tu correo.', - })); -}; - -module.exports = registrar; diff --git a/server/controller/TercerSemestre/alumnosCarrera.js b/server/controller/TercerSemestre/alumnosCarrera.js deleted file mode 100644 index 414839c..0000000 --- a/server/controller/TercerSemestre/alumnosCarrera.js +++ /dev/null @@ -1,27 +0,0 @@ -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); - -const alumnosCarrera = async (body) => { - const data = []; - - return Carrera.findAll().then(async (res) => { - for (let i = 0; i < res.length; i++) { - const alumnos = await TercerSemestre.findAll({ - where: { deseaAsistir: true }, - include: [ - { - model: Grupo, - where: { idCarrera: res[i].idCarrera }, - }, - ], - }).then((res) => res.length); - - data.push({ Carrera: res[i], alumnos }); - } - return data; - }); -}; - -module.exports = alumnosCarrera; diff --git a/server/controller/TercerSemestre/asistencia.js b/server/controller/TercerSemestre/asistencia.js deleted file mode 100644 index 3b885c6..0000000 --- a/server/controller/TercerSemestre/asistencia.js +++ /dev/null @@ -1,38 +0,0 @@ -const moment = require('moment'); -const helperPath = '../../helper'; -const { validarNumeroCuenta } = require(`${helperPath}/validar`); -const dbPath = '../../db/tablas'; -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const Horario = require(`${dbPath}/Horario`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); -const hoy = moment(); - -const asistencia = async (body) => { - const numeroCuenta = validarNumeroCuenta(body.numeroCuenta); - - return TercerSemestre.findOne({ - where: { numeroCuenta }, - }) - .then((res) => { - if (!res) throw new Error('No existe este alumno.'); - if (res.asistio) - throw new Error('Ya fue registrada la asistencia de este alumno.'); - return GrupoHorario.findOne({ - where: { idGrupo: res.idGrupo }, - include: [{ model: Horario }], - }); - }) - .then((res) => { - if (hoy.dayOfYear() != moment(res.Horario.horario).dayOfYear()) - throw new Error('Este alumno no tiene una cita para el día de hoy.'); - return TercerSemestre.update( - { asistio: true }, - { where: { numeroCuenta } } - ); - }) - .then((res) => ({ - message: 'Se registro correctamente la asistencia de este alumno.', - })); -}; - -module.exports = asistencia; diff --git a/server/controller/TercerSemestre/asistentes.js b/server/controller/TercerSemestre/asistentes.js deleted file mode 100644 index 8e87eeb..0000000 --- a/server/controller/TercerSemestre/asistentes.js +++ /dev/null @@ -1,30 +0,0 @@ -const helperPath = '../../helper'; -const validar = require(`${helperPath}/validar`); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const Horario = require(`${dbPath}/Horario`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); - -const asistentes = async (body) => { - const idHorario = validar.validarId(body.idHorario); - - return Horario.findOne({ where: { idHorario } }) - .then((res) => { - if (!res) throw new Error('No existe este horario.'); - return GrupoHorario.findOne({ - where: { idHorario }, - }); - }) - .then((res) => { - if (!res) - throw new Error('No hay un grupo que tenga asignado este horario.'); - return TercerSemestre.findAll({ - where: { idGrupo: res.idGrupo, deseaAsistir: true }, - include: [{ model: Grupo, include: [{ model: Carrera }] }], - }); - }); -}; - -module.exports = asistentes; diff --git a/server/controller/TercerSemestre/csv.js b/server/controller/TercerSemestre/csv.js deleted file mode 100644 index f851bac..0000000 --- a/server/controller/TercerSemestre/csv.js +++ /dev/null @@ -1,61 +0,0 @@ -const { convertArrayToCSV } = require('convert-array-to-csv'); -const moment = require('moment'); -const helperPath = '../../helper'; -const helper = require(`${helperPath}/helper`); -const encriptar = require(`${helperPath}/encriptar`); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const Horario = require(`${dbPath}/Horario`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); - -const csv = async (body) => { - const path = `server/uploads/tercer_semestre.csv`; - const data = []; - - if ( - !encriptar.comparar( - body.password, - '$2b$10$8FDx15tey9s9ITXNNE/Qourk1EfyrC6W8/ROqI0sGMuyOAuZ8oHMO' - ) - ) - throw new Error('Contraseña incorrecta.'); - return TercerSemestre.findAll({ - where: { deseaAsistir: true }, - include: [{ model: Grupo, include: [{ model: Carrera }] }], - }) - .then(async (res) => { - for (let i = 0; i < res.length; i++) { - const horario = await GrupoHorario.findOne({ - where: { idGrupo: res[i].idGrupo }, - include: [{ model: Horario }], - }).then((res) => moment(res.Horario.horario)); - - data.push({ - numeroCuenta: res[i].numeroCuenta, - nombre: res[i].nombre, - carrera: res[i].Grupo.Carrera.carrera, - grupo: res[i].Grupo.grupo, - dia: `${ - horario.date() < 10 ? '0' + horario.date() : horario.date() - }/${ - horario.month() + 1 < 10 - ? '0' + (horario.month() + 1) - : horario.month() + 1 - }/${horario.year()}`, - hora: `${ - horario.hour() < 10 ? '0' + horario.hour() : horario.hour() - }:${ - horario.minute() < 10 ? '0' + horario.minute() : horario.minute() - }`, - asistio: res[i].asistio ? 'si' : 'no', - }); - } - await helper.eliminarArchivo(path).catch((err) => {}); - return helper.crearArchivo(path, convertArrayToCSV(data)); - }) - .then((res) => path); -}; - -module.exports = csv; diff --git a/server/controller/TercerSemestre/get.js b/server/controller/TercerSemestre/get.js deleted file mode 100644 index 6e04333..0000000 --- a/server/controller/TercerSemestre/get.js +++ /dev/null @@ -1,36 +0,0 @@ -const { validarNumeroCuenta } = require('../../helper/validar'); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const Horario = require(`${dbPath}/Horario`); -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); - -const get = async (body) => { - const numeroCuenta = validarNumeroCuenta(body.numeroCuenta); - let alumnoTercerSemestre = {}; - - return TercerSemestre.findOne({ - where: { numeroCuenta }, - include: [{ model: Grupo, include: [{ model: Carrera }] }], - }) - .then((res) => { - if (!res) throw new Error('No existe esta alumno.'); - if (res.deseaAsistir) - throw new Error('Ya se registro a este alumno al recorrido.'); - alumnoTercerSemestre = res; - delete alumnoTercerSemestre.dataValues.idGrupo; - delete alumnoTercerSemestre.dataValues.Grupo.dataValues.idCarrera; - return GrupoHorario.findOne({ - where: { idGrupo: alumnoTercerSemestre.Grupo.idGrupo }, - include: [{ model: Horario }], - }); - }) - .then((res) => { - delete res.dataValues.idHorario; - delete res.dataValues.idGrupo; - return { alumnoTercerSemestre, GrupoHorario: res }; - }); -}; - -module.exports = get; diff --git a/server/controller/TercerSemestre/registrar.js b/server/controller/TercerSemestre/registrar.js deleted file mode 100644 index 2a7ea96..0000000 --- a/server/controller/TercerSemestre/registrar.js +++ /dev/null @@ -1,57 +0,0 @@ -const helperPath = '../../helper'; -const gmail = require(`${helperPath}/gmail`); -const correos = require(`${helperPath}/correos`); -const { validarId } = require(`${helperPath}/validar`); -const dbPath = '../../db/tablas'; -const Carrera = require(`${dbPath}/Carrera`); -const Grupo = require(`${dbPath}/Grupo`); -const GrupoHorario = require(`${dbPath}/GrupoHorario`); -const Horario = require(`${dbPath}/Horario`); -const TercerSemestre = require(`${dbPath}/TercerSemestre`); - -const registrar = async (body) => { - const idTercerSemestre = validarId(body.idTercerSemestre); - let alumno = {}; - let mail = {}; - - return TercerSemestre.findOne({ - where: { idTercerSemestre }, - include: [{ model: Grupo, include: [{ model: Carrera }] }], - }) - .then((res) => { - if (!res) throw new Error('No existe esta alumno.'); - if (res.deseaAsistir) - throw new Error('Ya se registro a este alumno al recorrido.'); - alumno = res; - return GrupoHorario.findOne({ - where: { idGrupo: alumno.idGrupo }, - include: [{ model: Horario }], - }); - }) - .then((res) => { - mail = correos.correoTercerSemestre( - alumno.numeroCuenta, - alumno.nombre, - alumno.Grupo.Carrera.carrera, - res.Horario.horario - ); - return gmail( - mail.subject, - 'lemuelhelonmarquezrosas@gmail.com', - // `${res.numeroCuenta}@pcpuma.acatlan.unam.mx` - mail.message - ); - }) - .then((res) => - TercerSemestre.update( - { deseaAsistir: true }, - { where: { idTercerSemestre } } - ) - ) - .then((res) => ({ - message: - 'Te has registrado correctamente, hemos mandado tu comprobante a tu correo pcpuma.', - })); -}; - -module.exports = registrar; diff --git a/server/db/install.js b/server/db/install.js index f421bad..b41b086 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -3,34 +3,22 @@ const { Op } = require('sequelize'); const moment = require('moment'); const colors = require('colors'); const Carrera = require('./tablas/Carrera'); -const CarreraHorario = require('./tablas/CarreraHorario'); -const Grupo = require('./tablas/Grupo'); -const GrupoHorario = require('./tablas/GrupoHorario'); +const AlumnoHorario = require('./tablas/AlumnoHorario'); const Horario = require('./tablas/Horario'); -const PrimerSemestre = require('./tablas/PrimerSemestre'); -const TercerSemestre = require('./tablas/TercerSemestre'); +const Alumno = require('./tablas/Alumno'); const drop = async () => { console.log('\nPaso 1) Desinstalando la db.'.bold.blue); - await TercerSemestre.drop(); - console.log('La tabla TercerSemestre se desinstalo correctamente.'.magenta); - - await PrimerSemestre.drop(); - console.log('La tabla PrimerSemestre se desinstalo correctamente.'.magenta); - - await GrupoHorario.drop(); - console.log('La tabla GrupoHorario se desinstalo correctamente.'.magenta); - - await CarreraHorario.drop(); - console.log('La tabla CarreraHorario se desinstalo correctamente.'.magenta); - - await Grupo.drop(); - console.log('La tabla Grupo se desinstalo correctamente.'.magenta); + await AlumnoHorario.drop(); + console.log('La tabla AlumnoHorario se desinstalo correctamente.'.magenta); await Horario.drop(); console.log('La tabla Horario se desinstalo correctamente.'.magenta); + await Alumno.drop(); + console.log('La tabla Alumno se desinstalo correctamente.'.magenta); + await Carrera.drop(); console.log('La tabla Carrera se desinstalo correctamente.'.magenta); }; @@ -41,258 +29,38 @@ const sync = async () => { await Carrera.sync(); console.log('La tabla Carrera se instalo correctamente.'.magenta); + await Alumno.sync(); + console.log('La tabla Alumno se instalo correctamente.'.magenta); + await Horario.sync(); console.log('La tabla Horario se instalo correctamente.'.magenta); - await Grupo.sync(); - console.log('La tabla Grupo se instalo correctamente.'.magenta); - - await CarreraHorario.sync(); - console.log('La tabla CarreraHorario se instalo correctamente.'.magenta); - - await GrupoHorario.sync(); - console.log('La tabla GrupoHorario se instalo correctamente.'.magenta); - - await PrimerSemestre.sync(); - console.log('La tabla PrimerSemestre se instalo correctamente.'.magenta); - - await TercerSemestre.sync(); - console.log('La tabla TercerSemestre se instalo correctamente.'.magenta); -}; - -const data = [ - { - carrera: 'ACTUARÍA', - matutino: 4, - despertino: 3, - horarioAsignado: { dia: '2021/08/12', horaInicio: '08:00' }, - horariosAsignados: [{ dia: '2021/08/06', horaInicio: '08:00', turnos: 7 }], - }, - { - carrera: 'ARQUITECTURA', - matutino: 4, - despertino: 3, - horarioAsignado: { dia: '2021/08/10', horaInicio: '10:40' }, - horariosAsignados: [{ dia: '2021/08/03', horaInicio: '10:40', turnos: 7 }], - }, - { - carrera: 'CIENCIAS POLÍTICAS Y ADMON. PÚBLICA', - matutino: 3, - despertino: 2, - horarioAsignado: { dia: '2021/08/12', horaInicio: '13:00' }, - horariosAsignados: [{ dia: '2021/08/06', horaInicio: '13:00', turnos: 5 }], - }, - { - carrera: 'COMUNICACIÓN', - matutino: 4, - despertino: 4, - horarioAsignado: { dia: '2021/08/11', horaInicio: '08:00' }, - horariosAsignados: [{ dia: '2021/08/04', horaInicio: '08:00', turnos: 8 }], - }, - { - carrera: 'DERECHO', - matutino: 9, - despertino: 9, - horarioAsignado: { dia: '2021/08/09', horaInicio: '08:00' }, - horariosAsignados: [{ dia: '2021/08/02', horaInicio: '08:00', turnos: 18 }], - }, - { - carrera: 'DISEÑO GRÁFICO', - matutino: 4, - despertino: 4, - horarioAsignado: { dia: '2021/08/10', horaInicio: '08:00' }, - horariosAsignados: [{ dia: '2021/08/03', horaInicio: '08:00', turnos: 8 }], - }, - { - carrera: 'ECONOMÍA', - matutino: 3, - despertino: 2, - horarioAsignado: { dia: '2021/08/13', horaInicio: '08:00' }, - horariosAsignados: [ - { dia: '2021/08/04', horaInicio: '15:20', turnos: 1 }, - { dia: '2021/08/05', horaInicio: '08:00', turnos: 4 }, - ], - }, - { - carrera: 'ENSEÑANZA DE INGLÉS', - matutino: 1, - despertino: 1, - horarioAsignado: { dia: '2021/08/11', horaInicio: '15:00' }, - horariosAsignados: [{ dia: '2021/08/04', horaInicio: '15:00', turnos: 1 }], - }, - { - carrera: 'FILOSOFÍA', - matutino: 1, - despertino: 1, - horarioAsignado: { dia: '2021/08/11', horaInicio: '12:40' }, - horariosAsignados: [{ dia: '2021/08/04', horaInicio: '12:40', turnos: 2 }], - }, - { - carrera: 'HISTORIA', - matutino: 2, - despertino: 1, - horarioAsignado: { dia: '2021/08/11', horaInicio: '14:00' }, - horariosAsignados: [{ dia: '2021/08/04', horaInicio: '14:00', turnos: 3 }], - }, - { - carrera: 'INGENIERÍA CIVIL', - matutino: 3, - despertino: 2, - horarioAsignado: { dia: '2021/08/09', horaInicio: '14:00' }, - horariosAsignados: [{ dia: '2021/08/02', horaInicio: '14:00', turnos: 5 }], - }, - { - carrera: 'LENGUA Y LITERATURA HISPÁNICAS', - matutino: 1, - despertino: 1, - horarioAsignado: { dia: '2021/08/11', horaInicio: '13:20' }, - horariosAsignados: [{ dia: '2021/08/04', horaInicio: '13:20', turnos: 2 }], - }, - { - carrera: 'MATEMÁTICAS. APL. Y COMP. (1999)', - matutino: 4, - despertino: 4, - horarioAsignado: { dia: '2021/08/12', horaInicio: '10:20' }, - horariosAsignados: [{ dia: '2021/08/06', horaInicio: '10:20', turnos: 8 }], - }, - { - carrera: 'PEDAGOGÍA', - matutino: 4, - despertino: 2, - horarioAsignado: { dia: '2021/08/11', horaInicio: '10:40' }, - horariosAsignados: [{ dia: '2021/08/04', horaInicio: '10:40', turnos: 6 }], - }, - { - carrera: 'RELACIONES INTERNACIONALES', - matutino: 3, - despertino: 3, - horarioAsignado: { dia: '2021/08/10', horaInicio: '13:00' }, - horariosAsignados: [{ dia: '2021/08/03', horaInicio: '13:00', turnos: 6 }], - }, - { - carrera: 'SOCIOLOGÍA', - matutino: 2, - despertino: 2, - horarioAsignado: { dia: '2021/08/13', horaInicio: '09:40' }, - horariosAsignados: [ - { dia: '2021/08/03', horaInicio: '15:00', turnos: 2 }, - { dia: '2021/08/06', horaInicio: '14:40', turnos: 2 }, - ], - }, - // { - // carrera: 'DERECHO (SUA)', - // matutino: 0, - // despertino: 0, - // horarioAsignado:{dia:'',horaInicio:''} - // }, - // { - // carrera: 'ENSEÑANZA DE ESPAÑOL(LENG EXTRANJERA)SUA', - // matutino: 0, - // despertino: 0, - // horarioAsignado:{dia:'',horaInicio:''} - // }, - // { - // carrera: 'ENSEÑANZA DE FRANCES(LENG EXTRANJERA)SUA', - // matutino: 0, - // despertino: 0, - // horarioAsignado:{dia:'',horaInicio:''} - // }, - // { - // carrera: 'ENSEÑANZA DE INGLES (LENG EXTRANJERA)SUA', - // matutino: 0, - // despertino: 0, - // horarioAsignado:{dia:'',horaInicio:''} - // }, - // { - // carrera: 'ENSEÑANZA DE ITALIANO(LENG EXTRANJ.)SUA', - // matutino: 0, - // despertino: 0, - // horarioAsignado:{dia:'',horaInicio:''} - // }, - // { - // carrera: 'RELACIONES INTERNACIONALES (SUA)', - // matutino: 0, - // despertino: 0, - // horarioAsignado:{dia:'',horaInicio:''} - // }, -]; - -const dataCarrera = async () => { - console.log('\nPaso 3) Instalando catalogo Carrera.'.bold.blue); - for (let i = 0; i < data.length; i++) { - await Carrera.create({ carrera: data[i].carrera }); - console.log( - `Se agrego la carrera ${data[i].carrera} correctamente.`.magenta - ); - } -}; - -const dataGrupo = async () => { - console.log('\nPaso 4) Instalando catalogo Grupo.'.bold.blue); - for (let i = 0; i < data.length; i++) { - for (let j = 1; j <= data[i].matutino; j++) { - const grupo = `110${j}`; - - await Grupo.create({ grupo, idCarrera: i + 1 }); - console.log( - `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` - .magenta - ); - } - console.log(); - for (let j = 1; j <= data[i].despertino; j++) { - const grupo = `115${j}`; - - await Grupo.create({ grupo, idCarrera: i + 1 }); - console.log( - `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` - .magenta - ); - } - console.log(); - for (let j = 1; j <= data[i].matutino; j++) { - const grupo = `220${j}`; - - await Grupo.create({ grupo, idCarrera: i + 1 }); - console.log( - `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` - .magenta - ); - } - console.log(); - for (let j = 1; j <= data[i].despertino; j++) { - const grupo = `225${j}`; - - await Grupo.create({ grupo, idCarrera: i + 1 }); - console.log( - `Se agrego el grupo ${grupo} a la carrera ${data[i].carrera} correctamente.` - .magenta - ); - } - console.log('\n'); - } + await AlumnoHorario.sync(); + console.log('La tabla AlumnoHorario se instalo correctamente.'.magenta); }; const dataHorario = async () => { - const diaFin = 13; - const diaInicio = 2; + const diaInicio = 16; + const diaFin = 22; - console.log('\nPaso 5) Instalando catalogo Horario.'.bold.blue); + console.log('\nPaso 3) Instalando catalogo Horario.'.bold.blue); for (let i = diaInicio; i <= diaFin; i++) { - const dia = `2021/08/${i < 10 ? '0' + i : i}`; - const horaFin = 15; - const minutoFin = 20; - let horaInicio = 8; + const dia = `2021/11/${i < 10 ? '0' + i : i}`; + const horaFin = 17; + const minutoFin = 0; + let horaInicio = 10; let minutoInicio = 0; let parar = false; + let turno = 'V'; - if (i === 7 || i === 8) continue; + if (i === 20 || i === 21) continue; while (!parar) { const hora = `${horaInicio < 10 ? '0' + horaInicio : horaInicio}:${ minutoInicio < 10 ? '0' + minutoInicio : minutoInicio }`; - await Horario.create({ horario: `${dia} ${hora}` }); + if (horaInicio === 13 && minutoInicio === 40) turno = 'M'; + await Horario.create({ horario: `${dia} ${hora}`, turno }); console.log(`Se agrego el horario ${dia} ${hora} correctamente.`.magenta); if (horaInicio === horaFin && minutoInicio === minutoFin) parar = true; else { @@ -306,93 +74,10 @@ const dataHorario = async () => { } }; -const dataGrupoHorario = async () => { - console.log('\nPaso 6) Instalando catalogo GrupoHorario.'.bold.blue); - for (let i = 0; i < data.length; i++) { - const gruposCarrera = await Grupo.findAll({ - where: { grupo: { [Op.like]: '22%' }, idCarrera: i + 1 }, - }); - let idHorario = await Horario.findOne({ - where: { - horario: new Date( - `${data[i].horarioAsignado.dia} ${data[i].horarioAsignado.horaInicio}` - ), - }, - }).then((res) => res.idHorario); - - for (let j = 0; j < gruposCarrera.length; j++) { - await GrupoHorario.create({ - idHorario, - idGrupo: gruposCarrera[j].idGrupo, - }) - .then((res) => - GrupoHorario.findOne({ - where: { idGrupoHorario: res.idGrupoHorario }, - include: [ - { model: Grupo, include: [{ model: Carrera }] }, - { model: Horario }, - ], - }) - ) - .then((res) => { - console.log( - `Se le asigno al grupo ${res.Grupo.grupo} de la carrera ${ - res.Grupo.Carrera.carrera - } el horario ${moment(res.Horario.horario).format()}`.magenta - ); - idHorario++; - }); - } - console.log(); - } -}; - -const dataCarreraHorario = async () => { - console.log('\nPaso 7) Instalando catalogo CarreraHorario.'.bold.blue); - for (let i = 0; i < data.length; i++) { - for (let j = 0; j < data[i].horariosAsignados.length; j++) { - let idHorario = await Horario.findOne({ - where: { - horario: new Date( - `${data[i].horariosAsignados[j].dia} ${data[i].horariosAsignados[j].horaInicio}` - ), - }, - }).then((res) => res.idHorario); - - for (let k = 0; k < data[i].horariosAsignados[j].turnos; k++) { - await CarreraHorario.create({ - idHorario, - idCarrera: i + 1, - }) - .then((res) => - CarreraHorario.findOne({ - where: { idCarreraHorario: res.idCarreraHorario }, - include: [{ model: Carrera }, { model: Horario }], - }) - ) - .then((res) => { - console.log( - `Se le asigno a la carrera ${ - res.Carrera.carrera - } el horario ${moment(res.Horario.horario).format()}`.magenta - ); - idHorario++; - }); - } - } - - console.log(); - } -}; - const exe = async () => { await drop(); await sync(); - await dataCarrera(); - await dataGrupo(); await dataHorario(); - await dataGrupoHorario(); - await dataCarreraHorario(); console.log( '\nSe ha instalado exitosamente la base de datos.\n'.underline.bold.green diff --git a/server/db/tablas/Grupo.js b/server/db/tablas/Alumno.js similarity index 60% rename from server/db/tablas/Grupo.js rename to server/db/tablas/Alumno.js index 6290877..d8e2547 100644 --- a/server/db/tablas/Grupo.js +++ b/server/db/tablas/Alumno.js @@ -2,30 +2,35 @@ const { DataTypes, Model } = require('sequelize'); const sequelize = require('../../config/sequelize.conf'); const Carrera = require('./Carrera'); -class Grupo extends Model {} -Grupo.init( +class Alumno extends Model {} +Alumno.init( { - idGrupo: { + idAlumno: { type: DataTypes.INTEGER, primaryKey: true, allowNull: false, unique: true, autoIncrement: true, }, - grupo: { - type: DataTypes.STRING(4), + numeroCuenta: { + type: DataTypes.STRING(10), + allowNull: false, + unique: true, + }, + turno: { + type: DataTypes.STRING(1), allowNull: false, }, }, { sequelize, - modelName: 'Grupo', - tableName: 'grupo', + modelName: 'Alumno', + tableName: 'alumno', timestamps: false, } ); -Grupo.belongsTo(Carrera, { +Alumno.belongsTo(Carrera, { foreignKey: { name: 'idCarrera', type: DataTypes.INTEGER, @@ -33,4 +38,4 @@ Grupo.belongsTo(Carrera, { }, }); -module.exports = Grupo; +module.exports = Alumno; diff --git a/server/db/tablas/GrupoHorario.js b/server/db/tablas/AlumnoHorario.js similarity index 62% rename from server/db/tablas/GrupoHorario.js rename to server/db/tablas/AlumnoHorario.js index 1c0c905..f4b68cc 100644 --- a/server/db/tablas/GrupoHorario.js +++ b/server/db/tablas/AlumnoHorario.js @@ -1,12 +1,12 @@ const { DataTypes, Model } = require('sequelize'); const sequelize = require('../../config/sequelize.conf'); +const Alumno = require('./Alumno'); const Horario = require('./Horario'); -const Grupo = require('./Grupo'); -class GrupoHorario extends Model {} -GrupoHorario.init( +class AlumnoHorario extends Model {} +AlumnoHorario.init( { - idGrupoHorario: { + idAlumnoHorario: { type: DataTypes.INTEGER, primaryKey: true, allowNull: false, @@ -16,13 +16,13 @@ GrupoHorario.init( }, { sequelize, - modelName: 'GrupoHorario', - tableName: 'grupo_horario', + modelName: 'AlumnoHorario', + tableName: 'alumno_horario', timestamps: false, } ); -GrupoHorario.belongsTo(Horario, { +AlumnoHorario.belongsTo(Horario, { foreignKey: { name: 'idHorario', type: DataTypes.INTEGER, @@ -30,12 +30,12 @@ GrupoHorario.belongsTo(Horario, { }, }); -GrupoHorario.belongsTo(Grupo, { +AlumnoHorario.belongsTo(Alumno, { foreignKey: { - name: 'idGrupo', + name: 'idAlumno', type: DataTypes.INTEGER, allowNull: false, }, }); -module.exports = GrupoHorario; +module.exports = AlumnoHorario; diff --git a/server/db/tablas/CarreraHorario.js b/server/db/tablas/CarreraHorario.js deleted file mode 100644 index c148fa6..0000000 --- a/server/db/tablas/CarreraHorario.js +++ /dev/null @@ -1,41 +0,0 @@ -const { DataTypes, Model } = require('sequelize'); -const sequelize = require('../../config/sequelize.conf'); -const Carrera = require('./Carrera'); -const Horario = require('./Horario'); - -class CarreraHorario extends Model {} -CarreraHorario.init( - { - idCarreraHorario: { - type: DataTypes.INTEGER, - primaryKey: true, - allowNull: false, - unique: true, - autoIncrement: true, - }, - }, - { - sequelize, - modelName: 'CarreraHorario', - tableName: 'carrera_horario', - timestamps: false, - } -); - -CarreraHorario.belongsTo(Horario, { - foreignKey: { - name: 'idHorario', - type: DataTypes.INTEGER, - allowNull: false, - }, -}); - -CarreraHorario.belongsTo(Carrera, { - foreignKey: { - name: 'idCarrera', - type: DataTypes.INTEGER, - allowNull: false, - }, -}); - -module.exports = CarreraHorario; diff --git a/server/db/tablas/Horario.js b/server/db/tablas/Horario.js index 6468b41..9cebf8d 100644 --- a/server/db/tablas/Horario.js +++ b/server/db/tablas/Horario.js @@ -15,6 +15,10 @@ Horario.init( type: DataTypes.DATE, allowNull: false, }, + turno: { + type: DataTypes.STRING(1), + allowNull: false, + }, }, { sequelize, diff --git a/server/db/tablas/PrimerSemestre.js b/server/db/tablas/PrimerSemestre.js deleted file mode 100644 index 7a6eba9..0000000 --- a/server/db/tablas/PrimerSemestre.js +++ /dev/null @@ -1,61 +0,0 @@ -const { DataTypes, Model } = require('sequelize'); -const sequelize = require('../../config/sequelize.conf'); -const Horario = require('./Horario'); -const Grupo = require('./Grupo'); - -class PrimerSemestre extends Model {} -PrimerSemestre.init( - { - idPrimerSemestre: { - type: DataTypes.INTEGER, - primaryKey: true, - allowNull: false, - unique: true, - autoIncrement: true, - }, - numeroCuenta: { - type: DataTypes.STRING(10), - allowNull: false, - unique: true, - }, - nombre: { - type: DataTypes.STRING(70), - allowNull: false, - }, - correo: { - type: DataTypes.STRING(60), - allowNull: false, - }, - asistio: { - type: DataTypes.BOOLEAN, - allowNull: true, - defaultValue: null, - }, - }, - { - sequelize, - modelName: 'PrimerSemestre', - tableName: 'primer_semestre', - timestamps: false, - } -); - -PrimerSemestre.belongsTo(Grupo, { - foreignKey: { - name: 'idGrupo', - type: DataTypes.INTEGER, - allowNull: true, - defaultValue: null, - }, -}); - -PrimerSemestre.belongsTo(Horario, { - foreignKey: { - name: 'idHorario', - type: DataTypes.INTEGER, - allowNull: true, - defaultValue: null, - }, -}); - -module.exports = PrimerSemestre; diff --git a/server/db/tablas/TercerSemestre.js b/server/db/tablas/TercerSemestre.js deleted file mode 100644 index bc933e1..0000000 --- a/server/db/tablas/TercerSemestre.js +++ /dev/null @@ -1,51 +0,0 @@ -const { DataTypes, Model } = require('sequelize'); -const sequelize = require('../../config/sequelize.conf'); -const Grupo = require('./Grupo'); - -class TercerSemestre extends Model {} -TercerSemestre.init( - { - idTercerSemestre: { - type: DataTypes.INTEGER, - primaryKey: true, - allowNull: false, - unique: true, - autoIncrement: true, - }, - numeroCuenta: { - type: DataTypes.STRING(10), - allowNull: false, - unique: true, - }, - nombre: { - type: DataTypes.STRING(70), - allowNull: false, - }, - deseaAsistir: { - type: DataTypes.BOOLEAN, - allowNull: true, - defaultValue: null, - }, - asistio: { - type: DataTypes.BOOLEAN, - allowNull: true, - defaultValue: null, - }, - }, - { - sequelize, - modelName: 'TercerSemestre', - tableName: 'tercer_semestre', - timestamps: false, - } -); - -TercerSemestre.belongsTo(Grupo, { - foreignKey: { - name: 'idGrupo', - type: DataTypes.INTEGER, - allowNull: false, - }, -}); - -module.exports = TercerSemestre; diff --git a/server/routes/Grupo.js b/server/routes/Alumno.js similarity index 77% rename from server/routes/Grupo.js rename to server/routes/Alumno.js index 35f2caa..ba3183b 100644 --- a/server/routes/Grupo.js +++ b/server/routes/Alumno.js @@ -1,9 +1,10 @@ const express = require('express'); const app = express(); -const route = '/grupo'; -const controllerPath = '../controller/Grupo'; +const route = '/tercer_semestre'; +const controllerPath = '../controller/TercerSemestre'; const get = require(`${controllerPath}/get`); +// GET app.get(`${route}`, (req, res) => { return get(req.query) .then((data) => { diff --git a/server/routes/AlumnoHorario.js b/server/routes/AlumnoHorario.js new file mode 100644 index 0000000..4485e38 --- /dev/null +++ b/server/routes/AlumnoHorario.js @@ -0,0 +1,29 @@ +const express = require('express'); +const app = express(); +const route = '/grupo_horario'; +const controllerPath = '../controller/GrupoHorario'; +// const horariosDia = require(`${controllerPath}/horariosDia`); +// const monitor = require(`${controllerPath}/monitor`); + +// // GET +// app.get(`${route}/horarios_dia`, (req, res) => { +// return horariosDia(req.body) +// .then((data) => { +// res.status(200).json(data); +// }) +// .catch((err) => { +// res.status(400).json({ message: err.message }); +// }); +// }); + +// app.get(`${route}/monitor`, (req, res) => { +// return monitor(req.body) +// .then((data) => { +// res.status(200).json(data); +// }) +// .catch((err) => { +// res.status(400).json({ message: err.message }); +// }); +// }); + +module.exports = app; diff --git a/server/routes/Carrera.js b/server/routes/Carrera.js deleted file mode 100644 index 68f1dd9..0000000 --- a/server/routes/Carrera.js +++ /dev/null @@ -1,17 +0,0 @@ -const express = require('express'); -const app = express(); -const route = '/carrera'; -const controllerPath = '../controller/Carrera'; -const get = require(`${controllerPath}/get`); - -app.get(`${route}`, (req, res) => { - return get() - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -module.exports = app; diff --git a/server/routes/CarreraHorario.js b/server/routes/CarreraHorario.js deleted file mode 100644 index 3755bec..0000000 --- a/server/routes/CarreraHorario.js +++ /dev/null @@ -1,40 +0,0 @@ -const express = require('express'); -const app = express(); -const route = '/carrera_horario'; -const controllerPath = '../controller/CarreraHorario'; -const get = require(`${controllerPath}/get`); -const horariosDia = require(`${controllerPath}/horariosDia`); -const monitor = require(`${controllerPath}/monitor`); - -// GET -app.get(`${route}`, (req, res) => { - return get(req.query) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.get(`${route}/horarios_dia`, (req, res) => { - return horariosDia(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.get(`${route}/monitor`, (req, res) => { - return monitor(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -module.exports = app; diff --git a/server/routes/GrupoHorario.js b/server/routes/GrupoHorario.js deleted file mode 100644 index a78936b..0000000 --- a/server/routes/GrupoHorario.js +++ /dev/null @@ -1,29 +0,0 @@ -const express = require('express'); -const app = express(); -const route = '/grupo_horario'; -const controllerPath = '../controller/GrupoHorario'; -const horariosDia = require(`${controllerPath}/horariosDia`); -const monitor = require(`${controllerPath}/monitor`); - -// GET -app.get(`${route}/horarios_dia`, (req, res) => { - return horariosDia(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.get(`${route}/monitor`, (req, res) => { - return monitor(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -module.exports = app; diff --git a/server/routes/PrimerSemestre.js b/server/routes/PrimerSemestre.js deleted file mode 100644 index e77f373..0000000 --- a/server/routes/PrimerSemestre.js +++ /dev/null @@ -1,64 +0,0 @@ -const express = require('express'); -const app = express(); -const route = '/primer_semestre'; -const controllerPath = '../controller/PrimerSemestre'; -const alumnosCarrera = require(`${controllerPath}/alumnosCarrera`); -const asistencia = require(`${controllerPath}/asistencia`); -const asistentes = require(`${controllerPath}/asistentes`); -const csv = require(`${controllerPath}/csv`); -const registrar = require(`${controllerPath}/registrar`); - -// POST -app.post(`${route}/csv`, (req, res) => { - return csv(req.body) - .then((data) => { - res.download(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.post(`${route}/registrar`, (req, res) => { - return registrar(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -// PUT -app.put(`${route}/asistencia`, (req, res) => { - return asistencia(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -// GET -app.get(`${route}/asistentes`, (req, res) => { - return asistentes(req.query) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.get(`${route}/alumnos_carrera`, (req, res) => { - return alumnosCarrera(req.query) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -module.exports = app; diff --git a/server/routes/TercerSemestre.js b/server/routes/TercerSemestre.js deleted file mode 100644 index 14e2a5d..0000000 --- a/server/routes/TercerSemestre.js +++ /dev/null @@ -1,75 +0,0 @@ -const express = require('express'); -const app = express(); -const route = '/tercer_semestre'; -const controllerPath = '../controller/TercerSemestre'; -const alumnosCarrera = require(`${controllerPath}/alumnosCarrera`); -const asistencia = require(`${controllerPath}/asistencia`); -const asistentes = require(`${controllerPath}/asistentes`); -const csv = require(`${controllerPath}/csv`); -const get = require(`${controllerPath}/get`); -const registrar = require(`${controllerPath}/registrar`); - -// POST -app.post(`${route}/csv`, (req, res) => { - return csv(req.body) - .then((data) => { - res.download(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -//PUT -app.put(`${route}/registrar`, (req, res) => { - return registrar(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.put(`${route}/asistencia`, (req, res) => { - return asistencia(req.body) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -// GET -app.get(`${route}`, (req, res) => { - return get(req.query) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.get(`${route}/asistentes`, (req, res) => { - return asistentes(req.query) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -app.get(`${route}/alumnos_carrera`, (req, res) => { - return alumnosCarrera(req.query) - .then((data) => { - res.status(200).json(data); - }) - .catch((err) => { - res.status(400).json({ message: err.message }); - }); -}); - -module.exports = app; diff --git a/server/routes/index.js b/server/routes/index.js index 56cf8da..c4be554 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -1,11 +1,7 @@ const express = require('express'); const app = express(); -app.use(require('./Carrera')); -app.use(require('./CarreraHorario')); -app.use(require('./Grupo')); -app.use(require('./GrupoHorario')); -app.use(require('./PrimerSemestre')); -app.use(require('./TercerSemestre')); +app.use(require('./Alumno')); +app.use(require('./AlumnoHorario')); module.exports = app;