diff --git a/ExerciseChecker/.env.vault b/ExerciseChecker/.env.vault index e11b10fb7d650cd0360780e0207a4e4b58e1ee1c..b8fbc2973436dce36ad541af62c45cd8cb5abbcf 100644 --- a/ExerciseChecker/.env.vault +++ b/ExerciseChecker/.env.vault @@ -4,11 +4,11 @@ #/--------------------------------------------------/ # development -DOTENV_VAULT_DEVELOPMENT="yxeHrFbuHIisGi14tAdEdBMIyjj/yapYVSfCKqIVP3YI3AS7l5M4GRkeuWFqULV0RbSnCpOlNzzD1t2fOTlRoPc8MLO/eZQPWgvdarDXqo9+sjhEGbpluRxq0nGqMNs640jezyswMS8YTFJ0JPZOUUtAfP8ntS6usSsEyxY1PjdN5zrwvpKerua9angXwLguF7Kxst+iI9EudgdUXaPLFELfl5FjvFy8vCQVmUEu3dkMYu7Hh1vDhNcIn5G7LM6hRaII1QnrFb9vXG1Q341X3QqhuVW/XD2SLQzwFWdyGw69DwQbjNcrk/CyDutGmZm8D6jPM0S1YMyTYTBRZJSYutWUcpE5CvDx9eR3Bkj35J+rMa4SjGJLuPnbE+IHHLnVDI/6WNnngkEjXwpCtNQ7EmpKf0aqKHU2aOCzDrAOZWtWXLY6LFV6qqSW4czl0StoYBDErC1qYu+OODyMDJgJD461Pvg34OvAGaOnAsDMCmRM6nHzc6IYaivlOv6v8WMMbfXjzzZbDGx5PaosO0M4T4B3NHkW7XR6xpenxtJnkzorZDqCGXDMSWrGiEK4NiJKHi38+Wwc9B4nCK4+/l+MyDYszHSuXCeKCveUNu2GtezUkn5K7pFPBum0jTyvwt0Gi4Fd9lCTIFhX4SUQmBKXq/CRvYzwJXXKmzitA2eFEwZ6s6wOtD1289eG107jwqu4ErAiZGIfk1fnHgCfwRlcydb1kQMSfRtKFuPZh4Ky9cpwkNmxxOtUMHFcBUO5b8HOssRi0WbyXSuz/bY7XwVS+y6tB3AHAEtIF69z2ooHQ5goGUl+bpqYHnJx0Ydguwgzdu42ngXXFh1hpRgsEa61H0dc2olfOCq+jccVARde+pgPuUrcWcmwC4GfH/43OA8Gvuqi6yLUIU92W8fAt5JOBPudyQiqBlQuwSyKfXq1z22d23nsqZk0feySZEJmRHFJdQxZ7o+ocdmOi7YsxEO/N/3KTXTpyiqQw6rjKMoXXyLtx95Xiumj17riblJdaB2/V6Cmu08Mx/MPkYiXdXlN7EBO13DZrWA1v6VcH7XwagytzVEuLSZESf3/8Joi1tjJ38Rp8gJZRJqvs6AqvVyPXlLTesqBHYGOXiZK0K3CIdQeKHPWMMl1tmRG0OQjd/OP5xaV1FoyRzKK0pZNUw6shQ3/Kq9VDSfD8isY" +DOTENV_VAULT_DEVELOPMENT="pAFGiNIzk8NWeOZ8yvHynZA7VTY/yk51wMqZcMZB7Znkl3ASlSNXk2BnDkGOGyDu5rlzhdxWtsiiriHXcTliLBI4bwpV4pyihZ/Ykf+1omLFlihvj6mWLU1HeYr5W/3Cz7E+siOM96cenAlvPPzcV5giWsGIhTBRWm6xLR4z0viOMSt0cBLZfJrmZJg1FQvtZ5Q/DkQD7xPGqCXKYEe3zY2atUXBivtoBfTUCo7FLV+buc/0J8Syi9PE0+bkrkHg8kw2QMFWbbD7xRgrAFZpJDoQ3u5tKjAUAzJAEL1YYI9QLtqQLpn04KuozMz9U7zOP3T1sg7SbRJkJOqrV6BJyK4isDvyIGDBvE5SsEAr9UjW3srnyFcnbt45j/DTWmdS/xbnZam/KWtJ94mUJCp3fjUJbrsRKvoGvE6FK1ndBfn6ouwH48KMpCGd7xCnWllBXQrZVY+JF0BtTJ/4fXit3CG/Tgr+NatqRLoxTwBJ0AxwYsas5LZFqxYDccmHJgSL9kcTIq/3o1doVWDEXfmPPxW1Cud0xGyriFEQisLFt3DusmzAmQQQiwVA3K/DVxSuR3FEK4kSATq2Rb3wtdYpqPuvcliphvGI9scnmEC+2aP9f29zc0bzlThxnpWHFCCX1tf/b/ev9FdQ2UF/5S7HAJjeSUrgcIMO/vIYTJpP5akTdD4u2FrDt6J4QE/MIsdjsAj72JDNHRrJG4Bwi40Uokyjy0PJOr/E6sr06h7fwW41GUF4cDa6fzSuEbx12+9nrsYHWwaPPOFzJhbDBQWx7ykHVm+4ZEVdZrNp9n9i0AjLYWaKa5NllvSVlvlkGuGjJZuk7yXZR2SltcQ9+yicm1zu38sOw2aaRHZ+QXsUfQtgWgjGdGLYnhZYrTWHQo3IromIMaUYfdQtHxxVHg6iEe91LJBJaQnJag4WgWIF0gO8W85yxLTZtf5vEAPvVPEuHa9n584YTK7or0PKdNpVhFwycQ5XpYYxhKkOFuLxqpeuE/Xwr3kQ8CtVmcraYjGQplAK98BxScizjBJwTMlDGgjxXKFKpek3ByrNHnAWfL6yfqAtLikcmSlhmToQI9cSTmroRVqCZHU=" # production -DOTENV_VAULT_PRODUCTION="wqJojUtefX59gm+ABa/hmihyOt/NBG0/fs2ygzPk9S9Cknbk9A+Kusn1yiEirCJM1W/onXlRbkVIXXfyQv+FsX8o9iDmC0hERGoVjswfysbnpPEVkCHj9rNzpGsFurwy/OllW7gYk1k9xhqSb9+JTxV0xCkK7LywqQiK7jNI5ySVcOd10TeSIZqyNa2Z0s9ciAROq0JuBADuT1PB33FU1pwIwSiA68tfDTW4qDEPRwgdx4xr7wHPYePqC2DE1KtG9MQ5+NvoTlbLsxN5MbOoTnaqzwfCx3OHMZZhQ6eU1pKT3A6PZXF1cIwYUzyqFsa1fwE+LCnHf+INZhfEjA8W8lSuKa/mdOMfMjmswe0XltQcmlE5q/4U2k/7f77yHXrBc/ygHZkyLcyvvuRGW+cIRErbl8Xd4aTn9lt41GGPtlYKf8bzRwH5OOD183eNQx14G6gArdclGiFCTN5xbx/3wy2rgbFAwyOFUzPu6JYW3X2I0BiBLrKLSALat0r2N/uHOm7TRuTqXmJh7I7ojMvs5GzgplfSl1tu7ls5XKp3MJe5roSJiPhmzCsBVll9EnAy8dA+xHzDizXHvRoBeheVm5Hk0uNM2JIsK/V3gpeAw8U80K4uTZ8v2EtU18UL8oczqu2nAmnbmy/coRClYg+kqpicGfFiIVPbcyqlfuPVM+c0jqLSEkbf/kf8AsD5WfX4n/BSKsyxd8gu8TaPcmf54ArVF0hQJPGewOfJM7aELR0HpB+PERN2Xu21rq+AR2EeWx4aJA==" +DOTENV_VAULT_PRODUCTION="OswZCjaal0fJVIPbBu5TxpcXmp8Gy/f24a0qosYDVxQ5YEMVbReu65DUr2D2OhC3qcs5CO7uVtFtw6H2KgIxSAl8yKP0DG0+NEaK97FZFB9oPEdfrOUVRrZuZvDXG3QjsaN5l9ntbo/Qqtp+Qb8yU7uxLUDdZs2thbSF9u6EQJY5rWi0TIfpes8qldoSpKm4HrbC43Ayi03MTR9aUy/IURhPc1dwQeYJLj/6q0MAO4RiBZ2+RHLIh3As5jRSZis67EQVaiYbnhjmd+mdgOumH3lFcaixfBxYR1mqw4ruSuU2EVPJ88kJDmabcXzf9dYf5IS3FJJ/EDh7VER83QKe13oAeFikmUO427+QGMrUUPfgzND0hqVt80cOTU35MRe8Rhf+IClrnn5Dlf61zB1bvrEwMnl83A7lrg9N0ahbOxlhI7EdqsMijKuBprgx0f+AcTStzDputOebFCevKnKBDjUjMNGNWYxRdQcerCHANjPTuJg2KcnFh2GXr37YA8VHQWXtux1CdhsNYLvnnQkIN0kMj934RmSwtDPQJkkkRqddNFM7Nh4cq3Hv8/0RCXI+mC3xHkJe6cyHFRIke3/r+xuvjfzKFoUYc5ZoyHggcFagmm/bt1YpfJ3Rt5U721BLdfCRxSFRACBLF0s/Q+v3qMbAvo6mTMR8voswwN2iX47epfibpqXfMGqqil4tFvyrrAr3iix8SFmxON0IYw3ce5LDqrisuCLzsnP1HEysi284qUJM3EUss8zRficD4bRjZ7cGKg==" # test -DOTENV_VAULT_TEST="VwdbVlhp+PEKvTdQp/m4H5c4lsWP8RLuM0othsKWalTCvyAJWnzmLTcoSTOr9SGDzSyE4PUg25GH4XsA788O0KgekGYkhMQPR2mZdtIjGSDmEWXwgzZ/3ccqJhw5HofJahH4bzO918XplQIRt5d6SzoC/CzjJWjYURSLnqBq8IckKbOwUfpSehD4w5BzXGBKr8B6UQsXo+l4KnTmVrepzLekzzHzxBwJrwStmgOJc+etEUaEzSzmfRo7crLb9Hw1CbNGncjU/8oLbJrhrHa4YVZVdzKmmcAbjJRg70kZUpe9ypEUNJljuuK3aVu+Epcb8cigZlOFcn4EypfBDCiUVF+VJ/p2s+IznwgM8Uj1tRoLFNCEp9Y0Tx8oDuFAFBu6Ljtvm2UozrMF60r0N+oKU3Mig9vEMCYPUtWHw11fGgbDlamts8nDzCOSrbQ4mhcz2Ux01ib7jQdgWswVcbBjxSrxPRgxvRN/C47KqxuqdFr5n2jLRTdZMobR4N0j9KVgPGfUHuApfMbIsJeMLT4ydT+CUIS8fYcAaO/yeLuo77MlG1qJJ/ReqFLpn7rf/hwS8jZJ6fwA1cMXKzs0sq4234OJTNmtPuoREJpmMrWcO4bX/yjmCtTWjMH68ie0uPv2+Fr/QH/wIHL5i5/nBkffDnsvqzd/e4WLBj/AkUNRXSFHxayhCJFTvJ9oVhpNE18LZpXTKP9lGsbumRrxxTunru/SQbr33hAqDRSrQI3wRfewhPEWWaoCqZi4/Tzd+F8b1JKRGEsO18rcbtza" +DOTENV_VAULT_TEST="y1LzEopFimx84ymlRbu927PRGzD1CK/5rORM1OViDEqcjMxWeFlQWRWvD1SlugTYCBhJu+fRuL4ql8ozuR3CDGdCoJYamGnQ7ThpbOB06iNan4rzRzMsDaBT0VCgHkWP/Mp8/t47EKNtD8qDxRNgWRSZZGkyPpoReVV9nC8wD3AzdCVaslisxzROHr279sgEJzXL6MWHl9FGbjU37Mr01dj+5LFJlDFbdTA7adtNmw+DhUwXyPapu7YoOrOBbSy8ZyuG0fmSTaJqjLXp6Tz101DmyozAX5XINUi6DtGASZWpISKBhtBJ/6DrQKa0de8/LQVZKFswl9bt7e/f+iGtLuKqjvrHyQPMUdgbNlGiRrsKha6iemOeJKzsLGLWwvics966K8iABy6nW3W9NrJTIri7Ylv9aDPRlMB0ITFj8U05rd+RK+VvNB53Fp0IZFIDR+zjrLPYaAw0wOykH9PxoZ32x5ZacPpDbspUcGV0r+EqFb9zRd8BJpeMU9SDkyVGLlm+7alWG6tDLT2x6YbkSzN14XKDATtHt+JAjoxxSaVDrSLhR7v08a3t5/q/T97SmRXECtqN5IP3sMGqhQUW2i/U4opJ4pkq7tHqh9SBr2MCyvBKqVNPZZfYkJIUkFFsQjNJRhCSYyZujqMU6D92U8VV1zWarhMswTavksjKYzS70J/eNqA2HE9SdGAHqcDbebM6HdMUYi7UgJ5kM5ZqAlzBpTOfFLam5z2uYgjmTPbDv7Kj4y9TdHWZXxhNiTXATmm+N3RHPfDW9NAW" diff --git a/ExerciseChecker/.gitlab-ci/01_functions.yml b/ExerciseChecker/.gitlab-ci/01_functions.yml index 05fe3aec03b9723a1d71575ff6d6412cf57809c5..631e831e819148d641be3a29a7f7fce2f5d4fa9f 100644 --- a/ExerciseChecker/.gitlab-ci/01_functions.yml +++ b/ExerciseChecker/.gitlab-ci/01_functions.yml @@ -51,7 +51,7 @@ # Decrypt env vars for production - apk add npm sed - cd $PROJECT_FOLDER - - sed -i -r "s/\{\{VERSION\}\}/${VERSION}/g" src/app.ts + #- sed -i -r "s/\{\{VERSION\}\}/${VERSION}/g" src/app.ts # Not needed anymore - | if [[ $CI_COMMIT_REF_PROTECTED == "true" || $IS_TEST == true ]]; then echo "Decrypt production env vars" diff --git a/ExerciseChecker/package-lock.json b/ExerciseChecker/package-lock.json index dc76552cc0702b3cf34414b47a725b0979f52ea2..d474963710ae6391e27dbeb3b6814c1d229bf82d 100644 --- a/ExerciseChecker/package-lock.json +++ b/ExerciseChecker/package-lock.json @@ -9,11 +9,9 @@ "version": "3.3.0", "license": "AGPLv3", "dependencies": { - "ajv": "^8.12.0", - "axios": "^1.6.2", + "axios": "^1.6.5", "boxen": "^5.1.2", "chalk": "^4.1.2", - "dockerode": "^3.3.5", "dotenv": "^16.3.1", "dotenv-expand": "^10.0.0", "fs-extra": "^11.2.0", @@ -22,25 +20,26 @@ "ora": "^5.4.1", "tar-stream": "^3.1.6", "winston": "^3.11.0", - "yaml": "^2.3.4" + "yaml": "^2.3.4", + "zod": "^3.22.4", + "zod-validation-error": "^3.0.0" }, "bin": { "dirmanager": "dist/app.js" }, "devDependencies": { - "@types/dockerode": "^3.3.23", "@types/fs-extra": "^11.0.4", "@types/js-yaml": "^4.0.9", - "@types/node": "^18.19.2", + "@types/node": "^18.19.8", "@types/tar-stream": "^3.1.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser": "^6.13.2", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", "dotenv-vault": "^1.25.0", - "genversion": "^3.1.1", + "genversion": "^3.2.0", "pkg": "^5.8.1", "tiny-typed-emitter": "^2.1.0", - "ts-node": "^10.9.1", - "typescript": "^5.3.2" + "ts-node": "^10.9.2", + "typescript": "^5.3.3" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -111,11 +110,6 @@ "node": ">=6.9.0" } }, - "node_modules/@balena/dockerignore": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz", - "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==" - }, "node_modules/@colors/colors": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", @@ -204,23 +198,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@eslint/eslintrc/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -252,13 +229,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -381,9 +351,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz", + "integrity": "sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -726,34 +696,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/@oclif/plugin-update/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/@oclif/plugin-update/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/@oclif/plugin-warn-if-update-available": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.1.1.tgz", @@ -867,26 +809,6 @@ "@types/node": "*" } }, - "node_modules/@types/docker-modem": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/@types/docker-modem/-/docker-modem-3.0.6.tgz", - "integrity": "sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/ssh2": "*" - } - }, - "node_modules/@types/dockerode": { - "version": "3.3.23", - "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.3.23.tgz", - "integrity": "sha512-Lz5J+NFgZS4cEVhquwjIGH4oQwlVn2h7LXD3boitujBnzOE5o7s9H8hchEjoDK2SlRsJTogdKnQeiJgPPKLIEw==", - "dev": true, - "dependencies": { - "@types/docker-modem": "*", - "@types/node": "*" - } - }, "node_modules/@types/fs-extra": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz", @@ -919,9 +841,9 @@ } }, "node_modules/@types/node": { - "version": "18.19.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.6.tgz", - "integrity": "sha512-X36s5CXMrrJOs2lQCdDF68apW4Rfx9ixYMawlepwmE4Anezv/AV2LSpKD1Ub8DAc+urp5bk0BGZ6NtmBitfnsg==", + "version": "18.19.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz", + "integrity": "sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -933,15 +855,6 @@ "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", "dev": true }, - "node_modules/@types/ssh2": { - "version": "1.11.18", - "resolved": "https://registry.npmjs.org/@types/ssh2/-/ssh2-1.11.18.tgz", - "integrity": "sha512-7eH4ppQMFlzvn//zhwD54MWaITR1aSc1oFBye9vb76GZ2Y9PSFYdwVIwOlxRXWs5+1hifntXyt+8a6SUbOD7Hg==", - "dev": true, - "dependencies": { - "@types/node": "^18.11.18" - } - }, "node_modules/@types/tar-stream": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/@types/tar-stream/-/tar-stream-3.1.3.tgz", @@ -957,16 +870,16 @@ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz", - "integrity": "sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz", + "integrity": "sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.18.1", - "@typescript-eslint/type-utils": "6.18.1", - "@typescript-eslint/utils": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/type-utils": "6.19.0", + "@typescript-eslint/utils": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "graphemer": "^1.4.0", "ignore": "^5.2.4", @@ -992,15 +905,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.1.tgz", - "integrity": "sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz", + "integrity": "sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "6.18.1", - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/typescript-estree": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4" }, "engines": { @@ -1020,13 +933,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz", - "integrity": "sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz", + "integrity": "sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1" + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0" }, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1037,13 +950,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz", - "integrity": "sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz", + "integrity": "sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "6.18.1", - "@typescript-eslint/utils": "6.18.1", + "@typescript-eslint/typescript-estree": "6.19.0", + "@typescript-eslint/utils": "6.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.0.1" }, @@ -1064,9 +977,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.1.tgz", - "integrity": "sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz", + "integrity": "sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==", "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" @@ -1077,13 +990,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz", - "integrity": "sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz", + "integrity": "sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/visitor-keys": "6.18.1", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/visitor-keys": "6.19.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1105,17 +1018,17 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.1.tgz", - "integrity": "sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz", + "integrity": "sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.18.1", - "@typescript-eslint/types": "6.18.1", - "@typescript-eslint/typescript-estree": "6.18.1", + "@typescript-eslint/scope-manager": "6.19.0", + "@typescript-eslint/types": "6.19.0", + "@typescript-eslint/typescript-estree": "6.19.0", "semver": "^7.5.4" }, "engines": { @@ -1130,12 +1043,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.18.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz", - "integrity": "sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==", + "version": "6.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz", + "integrity": "sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.18.1", + "@typescript-eslint/types": "6.19.0", "eslint-visitor-keys": "^3.4.1" }, "engines": { @@ -1176,9 +1089,9 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", "dev": true, "engines": { "node": ">=0.4.0" @@ -1197,13 +1110,15 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { @@ -1298,14 +1213,6 @@ "node": ">=8" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", @@ -1374,14 +1281,6 @@ } ] }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -1457,15 +1356,6 @@ "ieee754": "^1.1.13" } }, - "node_modules/buildcheck": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.6.tgz", - "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", - "optional": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/byline": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz", @@ -1533,7 +1423,8 @@ "node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true }, "node_modules/clean-stack": { "version": "3.0.1", @@ -1720,20 +1611,6 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, - "node_modules/cpu-features": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.9.tgz", - "integrity": "sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "buildcheck": "~0.0.6", - "nan": "^2.17.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -1758,6 +1635,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1850,33 +1728,6 @@ "node": ">=8" } }, - "node_modules/docker-modem": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-3.0.8.tgz", - "integrity": "sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==", - "dependencies": { - "debug": "^4.1.1", - "readable-stream": "^3.5.0", - "split-ca": "^1.0.1", - "ssh2": "^1.11.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/dockerode": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-3.3.5.tgz", - "integrity": "sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==", - "dependencies": { - "@balena/dockerignore": "^1.0.2", - "docker-modem": "^3.0.0", - "tar-fs": "~2.0.1" - }, - "engines": { - "node": ">= 8.0" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -1970,6 +1821,7 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, "dependencies": { "once": "^1.4.0" } @@ -2089,23 +1941,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/eslint/node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -2137,13 +1972,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "peer": true - }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -2260,7 +2088,9 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "peer": true }, "node_modules/fast-fifo": { "version": "1.3.2", @@ -2467,9 +2297,9 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" }, "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", "funding": [ { "type": "individual", @@ -2541,7 +2371,8 @@ "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true }, "node_modules/fs-extra": { "version": "11.2.0", @@ -3168,9 +2999,11 @@ "dev": true }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "peer": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -3439,7 +3272,8 @@ "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true }, "node_modules/ms": { "version": "2.1.2", @@ -3476,12 +3310,6 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", - "optional": true - }, "node_modules/napi-build-utils": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", @@ -3548,6 +3376,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "dependencies": { "wrappy": "1" } @@ -3848,34 +3677,6 @@ "node": ">=10" } }, - "node_modules/pkg-fetch/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/pkg-fetch/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/pkg/node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -3951,6 +3752,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -3960,6 +3762,8 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "peer": true, "engines": { "node": ">=6" } @@ -4044,14 +3848,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.8", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", @@ -4200,7 +3996,8 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/semver": { "version": "7.5.4", @@ -4327,34 +4124,12 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/split-ca": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz", - "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==" - }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/ssh2": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.15.0.tgz", - "integrity": "sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==", - "hasInstallScript": true, - "dependencies": { - "asn1": "^0.2.6", - "bcrypt-pbkdf": "^1.0.2" - }, - "engines": { - "node": ">=10.16.0" - }, - "optionalDependencies": { - "cpu-features": "~0.0.9", - "nan": "^2.18.0" - } - }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", @@ -4493,20 +4268,22 @@ } }, "node_modules/tar-fs": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.1.tgz", - "integrity": "sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, "dependencies": { "chownr": "^1.1.1", "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", - "tar-stream": "^2.0.0" + "tar-stream": "^2.1.4" } }, "node_modules/tar-fs/node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", @@ -4672,11 +4449,6 @@ "node": "*" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -4732,6 +4504,8 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "peer": true, "dependencies": { "punycode": "^2.1.0" } @@ -4856,7 +4630,8 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true }, "node_modules/y18n": { "version": "5.0.8", @@ -4929,6 +4704,25 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-validation-error": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.0.0.tgz", + "integrity": "sha512-x+agsJJG9rvC7axF0xqTEdZhJkLHyIZkdOAWDJSmwGPzxNHMHwtU6w2yDOAAP6yuSfTAUhAMJRBfhVGY64ySEQ==", + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "zod": "^3.18.0" + } } } } diff --git a/ExerciseChecker/package.json b/ExerciseChecker/package.json index 2e310ef71fb8b3695b69b80a6a6943f59f45dc98..81be35099dcd6aaad3b8f66380ae3ecafeb1cee7 100644 --- a/ExerciseChecker/package.json +++ b/ExerciseChecker/package.json @@ -29,34 +29,33 @@ "test" : "echo \"Error: no test specified\" && exit 1" }, "dependencies" : { - "ajv" : "^8.12.0", - "axios" : "^1.6.2", - "boxen" : "^5.1.2", - "chalk" : "^4.1.2", - "dockerode" : "^3.3.5", - "dotenv" : "^16.3.1", - "dotenv-expand" : "^10.0.0", - "fs-extra" : "^11.2.0", - "http-status-codes": "^2.3.0", - "json5" : "^2.2.3", - "ora" : "^5.4.1", - "tar-stream" : "^3.1.6", - "winston" : "^3.11.0", - "yaml" : "^2.3.4" + "axios" : "^1.6.5", + "boxen" : "^5.1.2", + "chalk" : "^4.1.2", + "dotenv" : "^16.3.1", + "dotenv-expand" : "^10.0.0", + "fs-extra" : "^11.2.0", + "http-status-codes" : "^2.3.0", + "json5" : "^2.2.3", + "ora" : "^5.4.1", + "tar-stream" : "^3.1.6", + "winston" : "^3.11.0", + "yaml" : "^2.3.4", + "zod" : "^3.22.4", + "zod-validation-error": "^3.0.0" }, "devDependencies": { - "@types/dockerode" : "^3.3.23", "@types/fs-extra" : "^11.0.4", "@types/js-yaml" : "^4.0.9", - "@types/node" : "^18.19.2", + "@types/node" : "^18.19.8", "@types/tar-stream" : "^3.1.3", - "@typescript-eslint/eslint-plugin": "^6.13.2", - "@typescript-eslint/parser" : "^6.13.2", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser" : "^6.19.0", "dotenv-vault" : "^1.25.0", - "genversion" : "^3.1.1", + "genversion" : "^3.2.0", "pkg" : "^5.8.1", "tiny-typed-emitter" : "^2.1.0", - "ts-node" : "^10.9.1", - "typescript" : "^5.3.2" + "ts-node" : "^10.9.2", + "typescript" : "^5.3.3" } } diff --git a/ExerciseChecker/src/app.ts b/ExerciseChecker/src/app.ts index 79e07d2e8e23ef4900d9a228f8a5e31767d8d66c..791025be5f901f4e3db0234b26c5667b806c792a 100644 --- a/ExerciseChecker/src/app.ts +++ b/ExerciseChecker/src/app.ts @@ -15,7 +15,6 @@ require('./shared/helpers/TypeScriptExtensions'); // ATTENTION : This line MUST import ClientsSharedConfig from './sharedByClients/config/ClientsSharedConfig'; import Styles from './types/Style'; -import Icon from './sharedByClients/types/Icon'; import RecursiveFilesStats from './shared/helpers/recursiveFilesStats/RecursiveFilesStats'; import Toolbox from './shared/helpers/Toolbox'; import ExerciseCheckerError from './shared/types/Dojo/ExerciseCheckerError'; @@ -28,12 +27,14 @@ import ExerciseDockerCompose from './sharedByClients/helpers/Dojo import ExerciseResultsSanitizerAndValidator from './sharedByClients/helpers/Dojo/ExerciseResultsSanitizerAndValidator'; import ExerciseAssignment from './sharedByClients/models/ExerciseAssignment'; import ClientsSharedExerciseHelper from './sharedByClients/helpers/Dojo/ClientsSharedExerciseHelper'; +import Icon from './shared/types/Icon'; +import { version } from './config/Version'; (async () => { HttpManager.registerAxiosInterceptor(); - console.log(Styles.APP_NAME(`${ Config.appName } (version {{VERSION}})`)); + console.log(Styles.APP_NAME(`${ Config.appName } (version ${ version })`)); let exerciseAssignment: ExerciseAssignment | undefined; let exerciseDockerCompose: ExerciseDockerCompose; @@ -48,7 +49,7 @@ import ClientsSharedExerciseHelper from './sharedByClients/helpers/Dojo - Download immutables files (maybe throw or show an error if the files have been modified ?) */ { - console.log(Styles.INFO(`${ Icon.INFO }️ Checking the exercise's assignment and his immutable files`)); + console.log(Styles.INFO(`${ Icon.INFO }️Checking the exercise's assignment and his immutable files`)); exerciseAssignment = await DojoBackendManager.getExerciseAssignment(); if ( !exerciseAssignment ) { console.error(Styles.ERROR(`${ Icon.ERROR } Error while getting the exercise's assignment`)); @@ -85,11 +86,11 @@ import ClientsSharedExerciseHelper from './sharedByClients/helpers/Dojo try { await new Promise<void>((resolve, reject) => { - exerciseDockerCompose.events.on('step', (name: string, message: string) => { + exerciseDockerCompose.events.on('step', (_name: string, message: string) => { console.log(Styles.INFO(`${ Icon.INFO } ${ message }`)); }); - exerciseDockerCompose.events.on('endStep', (stepName: string, message: string, error: boolean) => { + exerciseDockerCompose.events.on('endStep', (_stepName: string, message: string, error: boolean) => { if ( error ) { console.error(Styles.ERROR(`${ Icon.ERROR } ${ message }`)); } @@ -119,11 +120,11 @@ import ClientsSharedExerciseHelper from './sharedByClients/helpers/Dojo try { await new Promise<void>((resolve) => { - exerciseResultsValidation.events.on('step', (name: string, message: string) => { + exerciseResultsValidation.events.on('step', (_name: string, message: string) => { console.log(Styles.INFO(`${ Icon.INFO } ${ message }`)); }); - exerciseResultsValidation.events.on('endStep', (stepName: string, message: string, error: boolean) => { + exerciseResultsValidation.events.on('endStep', (_stepName: string, message: string, error: boolean) => { if ( error ) { console.error(Styles.ERROR(`${ Icon.ERROR } ${ message }`)); } diff --git a/ExerciseChecker/src/shared b/ExerciseChecker/src/shared index 101cc26895eb0b5fe97e03bb96039e0cddd94391..89f3579ca9009f793742170928d808ab4c35d931 160000 --- a/ExerciseChecker/src/shared +++ b/ExerciseChecker/src/shared @@ -1 +1 @@ -Subproject commit 101cc26895eb0b5fe97e03bb96039e0cddd94391 +Subproject commit 89f3579ca9009f793742170928d808ab4c35d931 diff --git a/ExerciseChecker/src/sharedByClients b/ExerciseChecker/src/sharedByClients index 39ababf437cd738b45e07743455be7588640d5c9..098c6d20f6ed84240c086b979b56afd598fdfea4 160000 --- a/ExerciseChecker/src/sharedByClients +++ b/ExerciseChecker/src/sharedByClients @@ -1 +1 @@ -Subproject commit 39ababf437cd738b45e07743455be7588640d5c9 +Subproject commit 098c6d20f6ed84240c086b979b56afd598fdfea4 diff --git a/ExerciseChecker/src/types/Style.ts b/ExerciseChecker/src/types/Style.ts index 3b9d9f986980bd4d132da2f91bb92522825920c7..19fca5a752f32fbca2e2645f927eeefafcf9cb9c 100644 --- a/ExerciseChecker/src/types/Style.ts +++ b/ExerciseChecker/src/types/Style.ts @@ -2,8 +2,8 @@ import chalk from 'chalk'; class Style { - public readonly APP_NAME = chalk.bgBlue.black.bold; - public readonly INFO = chalk.blue; + public readonly APP_NAME = chalk.bgBlue.black.bold.underline; + public readonly INFO = chalk.blue.bold.italic; public readonly ERROR = chalk.red; public readonly SUCCESS = chalk.green; public readonly FAILURE = chalk.red; diff --git a/ExerciseChecker/tsconfig.json b/ExerciseChecker/tsconfig.json index 88b6af04266eaeba378778af03b22e9473448127..6dd8b7ef56110c1be2c0ce6d891878d406ba1acf 100644 --- a/ExerciseChecker/tsconfig.json +++ b/ExerciseChecker/tsconfig.json @@ -3,7 +3,7 @@ "rootDir" : "src", "outDir" : "dist", "strict" : true, - "target" : "es6", + "target" : "ES2022", "module" : "commonjs", "sourceMap" : true, "esModuleInterop" : true,