diff --git a/package-lock.json b/package-lock.json index 10b3883..900dedf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -112,9 +112,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "14.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.11.tgz", - "integrity": "sha512-zCoCEMA+IPpsRkyCFBqew5vGb7r8RSiB3uwdu/map7uwLAfu1MTazW26/pUDWoNnF88vJz4W3U56i5gtXNqxGg==" + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", + "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" }, "node_modules/abbrev": { "version": "1.1.1", @@ -299,19 +299,19 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "dependencies": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", + "qs": "6.9.7", + "raw-body": "2.4.3", "type-is": "~1.6.18" }, "engines": { @@ -384,9 +384,9 @@ } }, "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } @@ -681,9 +681,9 @@ "integrity": "sha512-dxUINCt28k6WbXGMoB+AaKjGY0Y6GkKwZmT+kvD4nJgVCOKsnIQ3G6n0v2II1lG4NwXQk6EWZ+pPDub9wcqqMg==" }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "engines": { "node": ">= 0.6" } @@ -776,9 +776,9 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==", "engines": { "node": ">=0.10" } @@ -960,16 +960,16 @@ } }, "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.19.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.4.2", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", @@ -984,7 +984,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.9.7", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.17.2", @@ -1590,9 +1590,9 @@ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", + "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" }, "node_modules/lowercase-keys": { "version": "1.0.1", @@ -1637,16 +1637,16 @@ } }, "node_modules/mariadb": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.5.tgz", - "integrity": "sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.6.tgz", + "integrity": "sha512-zBx7loYY5GzLl8Y6AKxGXfY9DUYIIdGrmEORPOK9FEu0pg5ZLBKCGJuucHwKADxTBxKY7eM4rxndqxRcnMZKIw==", "dependencies": { - "@types/geojson": "^7946.0.7", - "@types/node": "^14.14.28", - "denque": "^1.5.0", + "@types/geojson": "^7946.0.8", + "@types/node": "^17.0.10", + "denque": "^2.0.1", "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "moment-timezone": "^0.5.33", + "long": "^5.2.0", + "moment-timezone": "^0.5.34", "please-upgrade-node": "^3.2.0" }, "engines": { @@ -1725,9 +1725,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2113,9 +2113,9 @@ } }, "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", "engines": { "node": ">=0.6" }, @@ -2132,11 +2132,11 @@ } }, "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "dependencies": { - "bytes": "3.1.1", + "bytes": "3.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" @@ -2334,9 +2334,9 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/sequelize": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.1.tgz", - "integrity": "sha512-YFGqrwkmEhSbpZBxay5+PRKMiZNNUJzgIixCyFkLm9+/5Rqq5jBADEjTAC8RYHzwsOGNboYh18imXrYNCjBZCQ==", + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.2.tgz", + "integrity": "sha512-0fCdO4qrkuMWizq3blDVHPC4NvrDkRnrFucoJKlaukdatrDpluBw2GXQ53rBQeizbHGefdgehhFiyFzyo0COKg==", "funding": [ { "type": "opencollective", @@ -3025,9 +3025,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "14.18.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.11.tgz", - "integrity": "sha512-zCoCEMA+IPpsRkyCFBqew5vGb7r8RSiB3uwdu/map7uwLAfu1MTazW26/pUDWoNnF88vJz4W3U56i5gtXNqxGg==" + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.18.tgz", + "integrity": "sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA==" }, "abbrev": { "version": "1.1.1", @@ -3174,19 +3174,19 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", + "qs": "6.9.7", + "raw-body": "2.4.3", "type-is": "~1.6.18" } }, @@ -3244,9 +3244,9 @@ } }, "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" }, "cacheable-request": { "version": "6.1.0", @@ -3473,9 +3473,9 @@ "integrity": "sha512-dxUINCt28k6WbXGMoB+AaKjGY0Y6GkKwZmT+kvD4nJgVCOKsnIQ3G6n0v2II1lG4NwXQk6EWZ+pPDub9wcqqMg==" }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" }, "cookie-signature": { "version": "1.0.6", @@ -3547,9 +3547,9 @@ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz", + "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==" }, "depd": { "version": "1.1.2", @@ -3689,16 +3689,16 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.17.3", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", + "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.19.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.4.2", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", @@ -3713,7 +3713,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.9.7", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.17.2", @@ -4190,9 +4190,9 @@ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" }, "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", + "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" }, "lowercase-keys": { "version": "1.0.1", @@ -4224,16 +4224,16 @@ } }, "mariadb": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.5.tgz", - "integrity": "sha512-6dklvcKWuuaV1JjAwnE2ezR+jTt7JrZHftgeHHBmjB0wgfaUpdxol1DPWclwMcCrsO9yoM0FuCOiCcCgXc//9Q==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/mariadb/-/mariadb-2.5.6.tgz", + "integrity": "sha512-zBx7loYY5GzLl8Y6AKxGXfY9DUYIIdGrmEORPOK9FEu0pg5ZLBKCGJuucHwKADxTBxKY7eM4rxndqxRcnMZKIw==", "requires": { - "@types/geojson": "^7946.0.7", - "@types/node": "^14.14.28", - "denque": "^1.5.0", + "@types/geojson": "^7946.0.8", + "@types/node": "^17.0.10", + "denque": "^2.0.1", "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "moment-timezone": "^0.5.33", + "long": "^5.2.0", + "moment-timezone": "^0.5.34", "please-upgrade-node": "^3.2.0" }, "dependencies": { @@ -4287,9 +4287,9 @@ "dev": true }, "minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "requires": { "brace-expansion": "^1.1.7" } @@ -4579,9 +4579,9 @@ } }, "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" }, "range-parser": { "version": "1.2.1", @@ -4589,11 +4589,11 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", + "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "http-errors": "1.8.1", "iconv-lite": "0.4.24", "unpipe": "1.0.0" @@ -4747,9 +4747,9 @@ } }, "sequelize": { - "version": "6.16.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.1.tgz", - "integrity": "sha512-YFGqrwkmEhSbpZBxay5+PRKMiZNNUJzgIixCyFkLm9+/5Rqq5jBADEjTAC8RYHzwsOGNboYh18imXrYNCjBZCQ==", + "version": "6.16.2", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.16.2.tgz", + "integrity": "sha512-0fCdO4qrkuMWizq3blDVHPC4NvrDkRnrFucoJKlaukdatrDpluBw2GXQ53rBQeizbHGefdgehhFiyFzyo0COKg==", "requires": { "@types/debug": "^4.1.7", "debug": "^4.3.3", diff --git a/server/controller/Multa/historialMultasUsuario.js b/server/controller/Multa/historialMultasUsuario.js index 2e1d366..bf63549 100644 --- a/server/controller/Multa/historialMultasUsuario.js +++ b/server/controller/Multa/historialMultasUsuario.js @@ -18,24 +18,6 @@ const historialMultasUsuario = async (body) => { { model: Prestamo, where: { idUsuario }, - // include: [ - // { - // model: Equipo, - // include: [ - // { - // model: Carrito, - // include: [{ model: Modulo }, { model: TipoCarrito }], - // attributes: ['idCarrito', 'carrito'], - // }, - // ], - // attributes: [ - // 'idEquipo', - // 'numeroSerie', - // 'numeroInventario', - // 'equipo', - // ], - // }, - // ], attributes: ['idPrestamo'], }, { diff --git a/server/controller/Multa/multar.js b/server/controller/Multa/multar.js index a7be73f..7ee1250 100644 --- a/server/controller/Multa/multar.js +++ b/server/controller/Multa/multar.js @@ -42,7 +42,6 @@ const multar = async (body) => { }) .then((res) => { if (!res) throw new Error('No existe esta infracción.'); - // Checar si tiene una multa activa, agragar días a multa gravedad = res.gravedad; return Prestamo.findOne({ where: { idPrestamo }, diff --git a/server/controller/Prestamo/cancelarOperador.js b/server/controller/Prestamo/cancelarOperador.js index fcce9ab..fff267e 100644 --- a/server/controller/Prestamo/cancelarOperador.js +++ b/server/controller/Prestamo/cancelarOperador.js @@ -8,6 +8,7 @@ const Prestamo = require(`${dbPath}/Prestamo`); const cancelarOperador = async (body) => { const idPrestamo = validarNumeroEntero(body.idPrestamo, 'id préstamo', true); const idOperador = validarNumeroEntero(body.idOperador, 'id operador', true); + let idUsuario = null; return Operador.findOne({ where: { idOperador } }) .then((res) => { @@ -16,6 +17,7 @@ const cancelarOperador = async (body) => { }) .then((res) => { if (!res) throw new Error('Este préstamo no existe.'); + idUsuario = res.idUsuario; if (!res.activo) throw new Error( 'Este préstamo ya no esta activo, no se puede cancelar.' @@ -36,7 +38,7 @@ const cancelarOperador = async (body) => { ) ) .then(() => { - io.getIO().emit('actualizar', { idPrestamo }); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Se canceló el préstamo correctamente.' }; }); }; diff --git a/server/controller/Prestamo/cancelarUsuario.js b/server/controller/Prestamo/cancelarUsuario.js index ab72a94..ea0be80 100644 --- a/server/controller/Prestamo/cancelarUsuario.js +++ b/server/controller/Prestamo/cancelarUsuario.js @@ -43,7 +43,7 @@ const cancelarUsuario = async (body) => { ) ) .then(() => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Se canceló el préstamo correctamente.' }; }); }; diff --git a/server/controller/Prestamo/diezMinutos.js b/server/controller/Prestamo/diezMinutos.js new file mode 100644 index 0000000..6fb8e1f --- /dev/null +++ b/server/controller/Prestamo/diezMinutos.js @@ -0,0 +1,11 @@ +const dbPath = '../../db/tablas'; +const Prestamo = require(`${dbPath}/Prestamo`); + +const diezMinutos = async (body) => { + return Prestamo.findAll({ + where: { activo: true, idOperadorEntrega: null }, + attributes: ['idPrestamo', 'activo', 'horaMaxRecoger', 'idOperadorEntrega'], + }); +}; + +module.exports = diezMinutos; diff --git a/server/controller/Prestamo/entregar.js b/server/controller/Prestamo/entregar.js index e62a64a..b5b4ae3 100644 --- a/server/controller/Prestamo/entregar.js +++ b/server/controller/Prestamo/entregar.js @@ -17,11 +17,12 @@ const entregar = async (body) => { 'id operador entrega', true ); - let idEquipo; let update = { idOperadorEntrega, horaInicio: ahora.format(), }; + let idEquipo = null; + let idUsuario = null; return Operador.findOne({ where: { idOperador: idOperadorEntrega } }) .then((res) => { @@ -34,6 +35,7 @@ const entregar = async (body) => { .then(async (res) => { if (!res) throw new Error('No existe este préstamo.'); idEquipo = res.idEquipo; + idUsuario = res.idUsuario; if (!res.activo) throw new Error('Este préstamo ya no esta activo.'); if (res.Equipo.idStatus === 2) throw new Error('Ya se entrego el equipo al usuario.'); @@ -43,7 +45,7 @@ const entregar = async (body) => { Prestamo.update({ activo: false }, { where: { idPrestamo } }) ) .then(() => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); throw new Error( 'Ya pasó el tiempo límite para recoger el equipo de cómputo.' ); @@ -68,7 +70,7 @@ const entregar = async (body) => { }) ) .then((res) => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); return res; }); }; diff --git a/server/controller/Prestamo/pedir.js b/server/controller/Prestamo/pedir.js index cc634c5..af1799a 100644 --- a/server/controller/Prestamo/pedir.js +++ b/server/controller/Prestamo/pedir.js @@ -30,7 +30,7 @@ const pedir = async (body) => { let whereEquipo = { idStatus: 4 }; let idEquipo; - if (ahora.weekday === 6 || ahora.weekday === 7) + if (ahora.day() === 6 || ahora.day() === 0) throw new Error( 'No se puede pedir un equipo de cómputo los días sabados y domingos.' ); @@ -111,7 +111,7 @@ const pedir = async (body) => { }) ) .then((res) => { - io.getIO().emit('actualizar', { idPrestamo: res.idPrestamo }); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Haz solicitado un equipo de cómputo correctamente. Presentate al módulo señalado y muestra tu QR.', diff --git a/server/controller/Prestamo/regresar.js b/server/controller/Prestamo/regresar.js index 2641367..a0f9512 100644 --- a/server/controller/Prestamo/regresar.js +++ b/server/controller/Prestamo/regresar.js @@ -19,6 +19,7 @@ const regresar = async (body) => { ); const update = { idOperadorRegreso }; let diferencia = null; + let idUsuario = null; return Operador.findOne({ where: { idOperador: idOperadorRegreso } }) .then((res) => { @@ -30,6 +31,7 @@ const regresar = async (body) => { }) .then(async (res) => { if (!res) throw new Error('No existe este préstamo.'); + idUsuario = res.idUsuario; if (!res.activo && res.idOperadorRegreso) throw new Error('Este préstamo ya no esta activo.'); if (res.Equipo.idStatus === 1) @@ -46,10 +48,7 @@ const regresar = async (body) => { descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), }).then(() => - Usuario.update( - { multa: true }, - { where: { idUsuario: res.idUsuario } } - ) + Usuario.update({ multa: true }, { where: { idUsuario } }) ); } return Equipo.update( @@ -59,7 +58,7 @@ const regresar = async (body) => { }) .then(() => Prestamo.update(update, { where: { idPrestamo } })) .then(() => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Se ha regresado correctamente el equipo de cómputo.', }; diff --git a/server/controller/Prestamo/regresarNumeroInventario.js b/server/controller/Prestamo/regresarNumeroInventario.js index 51c63e2..a0c82a6 100644 --- a/server/controller/Prestamo/regresarNumeroInventario.js +++ b/server/controller/Prestamo/regresarNumeroInventario.js @@ -26,6 +26,7 @@ const regresarNumeroInventario = async (body) => { const update = { idOperadorRegreso }; let diferencia = null; let idPrestamo = null; + let idUsuario = null; return Operador.findOne({ where: { idOperador: idOperadorRegreso } }) .then((res) => { @@ -53,6 +54,7 @@ const regresarNumeroInventario = async (body) => { if (res.Equipo.idStatus === 1) throw new Error('Aún no se ha entregado el equipo al usuario.'); idPrestamo = res.idPrestamo; + idUsuario = res.idUsuario; if (!res.regresoInmediato) { update.horaEntrega = ahora.format(); update.activo = false; @@ -65,10 +67,7 @@ const regresarNumeroInventario = async (body) => { descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), }).then(() => - Usuario.update( - { multa: true }, - { where: { idUsuario: res.idUsuario } } - ) + Usuario.update({ multa: true }, { where: { idUsuario } }) ); } return Equipo.update( @@ -78,7 +77,7 @@ const regresarNumeroInventario = async (body) => { }) .then(() => Prestamo.update(update, { where: { idPrestamo } })) .then(() => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Se ha regresado correctamente el equipo de cómputo.', }; diff --git a/server/controller/Prestamo/regresoInmediato.js b/server/controller/Prestamo/regresoInmediato.js index bcb78ca..4539d8c 100644 --- a/server/controller/Prestamo/regresoInmediato.js +++ b/server/controller/Prestamo/regresoInmediato.js @@ -12,6 +12,7 @@ const regresoInmediato = async (body) => { const ahoraAux = moment(); const idPrestamo = validarNumeroEntero(body.idPrestamo, 'id préstamo', true); let diferencia = null; + let idUsuario = null; return Prestamo.findOne({ where: { idPrestamo }, @@ -19,6 +20,7 @@ const regresoInmediato = async (body) => { }) .then(async (res) => { if (!res) throw new Error('No existe este préstamo.'); + idUsuario = res.idUsuario; if (!res.activo) throw new Error('Este préstamo ya no esta activo.'); if (res.Equipo.idStatus === 1) throw new Error('Aún no se ha entregado el equipo al usuario.'); @@ -31,10 +33,7 @@ const regresoInmediato = async (body) => { descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), }).then(() => - Usuario.update( - { multa: true }, - { where: { idUsuario: res.idUsuario } } - ) + Usuario.update({ multa: true }, { where: { idUsuario } }) ); return Equipo.update( { idStatus: 3 }, @@ -48,7 +47,7 @@ const regresoInmediato = async (body) => { ) ) .then(() => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Se ha regresado correctamente el equipo de cómputo.', }; diff --git a/server/controller/Prestamo/regresoInmediatoNumeroInventario.js b/server/controller/Prestamo/regresoInmediatoNumeroInventario.js index db5e6ee..911f750 100644 --- a/server/controller/Prestamo/regresoInmediatoNumeroInventario.js +++ b/server/controller/Prestamo/regresoInmediatoNumeroInventario.js @@ -18,6 +18,7 @@ const regresoInmediatoNumeroInventario = async (body) => { ); let diferencia = null; let idPrestamo = null; + let idUsuario = null; return Prestamo.findOne({ where: { activo: true }, @@ -28,6 +29,7 @@ const regresoInmediatoNumeroInventario = async (body) => { throw new Error( 'No existe un préstamo activo con este número de inventario.' ); + idUsuario = res.idUsuario; if (!res.activo) throw new Error('Este préstamo ya no esta activo.'); if (res.Equipo.idStatus === 1) throw new Error('Aún no se ha entregado el equipo al usuario.'); @@ -41,10 +43,7 @@ const regresoInmediatoNumeroInventario = async (body) => { descripcion: `Se paso por ${diferencia} minutos para entregar el equipo.`, fechaFin: ahoraAux.add(parseInt(diferencia / 15) * 7, 'd').format(), }).then(() => - Usuario.update( - { multa: true }, - { where: { idUsuario: res.idUsuario } } - ) + Usuario.update({ multa: true }, { where: { idUsuario } }) ); return Equipo.update( { idStatus: 3 }, @@ -58,7 +57,7 @@ const regresoInmediatoNumeroInventario = async (body) => { ) ) .then(() => { - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); return { message: 'Se ha regresado correctamente el equipo de cómputo.', }; diff --git a/server/controller/Prestamo/reporte.js b/server/controller/Prestamo/reporte.js index d406e2d..2ecb7aa 100644 --- a/server/controller/Prestamo/reporte.js +++ b/server/controller/Prestamo/reporte.js @@ -34,8 +34,8 @@ const reporte = async (body) => { return Prestamo.findAll({ where: { [Op.and]: [ - { createdAt: { [Op.gte]: inicio.format() } }, - { createdAt: { [Op.lte]: fin.format() } }, + { createdAt: { [Op.gte]: inicio.add(-1, 'd').format() } }, + { createdAt: { [Op.lte]: fin.add(1, 'd').format() } }, ], }, include: [ @@ -127,7 +127,7 @@ const reporte = async (body) => { await helper.eliminarArchivo(path).catch((err) => {}); return helper.crearArchivo(path, convertArrayToCSV(data)); }) - .then((res) => path); + .then(() => path); }; module.exports = reporte; diff --git a/server/controller/Prestamo/status.js b/server/controller/Prestamo/status.js index 8a7b8ac..419c614 100644 --- a/server/controller/Prestamo/status.js +++ b/server/controller/Prestamo/status.js @@ -15,6 +15,7 @@ const status = async (body) => { const idPrestamo = validarNumeroEntero(body.idPrestamo, 'id préstamo', true); let message = ''; let atraso = false; + let idUsuario = null; return Prestamo.findOne({ where: { idPrestamo }, @@ -22,6 +23,7 @@ const status = async (body) => { }) .then(async (res) => { if (!res) throw new Error('No existe este préstamo.'); + idUsuario = res.idUsuario; if (!res.activo) { if (!res.horaEntrega) message = 'Este préstamo fue cancelado.'; else message = 'Este préstamo no es encuentra activo.'; @@ -43,7 +45,7 @@ const status = async (body) => { ); message = 'Ya paso el tiempo limite para recoger el dispositivo. Se ha cancelado tu prestamo.'; - io.getIO().emit('actualizar'); + io.getIO().emit('actualizar', { idUsuario }); } else message = 'Aún no se entrega el equipo al usuario.'; return Prestamo.findOne({ where: { idPrestamo }, diff --git a/server/routes/Prestamo.js b/server/routes/Prestamo.js index b67adb4..3f4e113 100644 --- a/server/routes/Prestamo.js +++ b/server/routes/Prestamo.js @@ -6,6 +6,7 @@ const controllerPath = '../controller/Prestamo'; const activos = require(`${controllerPath}/activos`); const cancelarOperador = require(`${controllerPath}/cancelarOperador`); const cancelarUsuario = require(`${controllerPath}/cancelarUsuario`); +const diezMinutos = require(`${controllerPath}/diezMinutos`); const historial = require(`${controllerPath}/historial`); const historialEquipo = require(`${controllerPath}/historialEquipo`); const historialUsuario = require(`${controllerPath}/historialUsuario`); @@ -119,6 +120,16 @@ app.get(`${route}/activos`, verificaToken, (req, res) => { }); }); +app.get(`${route}/diez_minutos`, verificaToken, (req, res) => { + return diezMinutos(req.query) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + app.get(`${route}/historial`, verificaToken, (req, res) => { return historial(req.query) .then((data) => {