diff --git a/ExpressAPI/.idea/jetbrainsConfiguration b/ExpressAPI/.idea/jetbrainsConfiguration index f572bf3afa0a98675247df85c599b5d1e5a62d0d..ef5c7bd49a57bc28db77bad797de4980133d6523 160000 --- a/ExpressAPI/.idea/jetbrainsConfiguration +++ b/ExpressAPI/.idea/jetbrainsConfiguration @@ -1 +1 @@ -Subproject commit f572bf3afa0a98675247df85c599b5d1e5a62d0d +Subproject commit ef5c7bd49a57bc28db77bad797de4980133d6523 diff --git a/ExpressAPI/nodemon.json b/ExpressAPI/nodemon.json index 220b7edeec37b336d961c667a7b3ed58ac7aa31d..3b34dc537aa9a8794590c2e8a81adbbfc61a54d4 100644 --- a/ExpressAPI/nodemon.json +++ b/ExpressAPI/nodemon.json @@ -9,5 +9,5 @@ "verbose": true, "ext" : ".ts,.js", "ignore" : [], - "exec" : "npm run lint; npm run build:openapi; ts-node --files ./src/app.ts" + "exec" : "npm run lint; npm run build:openapi; tsc --noEmit && npx tsx src/app.ts" } diff --git a/ExpressAPI/package-lock.json b/ExpressAPI/package-lock.json index d04243833679bb29fc97734ae22f901b227c9a87..f1471fc20b2291036d8bce3fe2578ea422bda97e 100644 --- a/ExpressAPI/package-lock.json +++ b/ExpressAPI/package-lock.json @@ -58,8 +58,8 @@ "nodemon": "^3.0.3", "npm": "^10.4.0", "prisma": "^5.9.1", - "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "tsx": "^4.7.1", + "typescript": "^5.4.3" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -135,6 +135,374 @@ "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==", "dev": true }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -882,9 +1250,9 @@ } }, "node_modules/@redocly/config": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.1.5.tgz", - "integrity": "sha512-nE7jePALlLDC7hueRy/yWFlTqNv6yrVQnKQVwVepOzuf0PTUYsBWQ2fNxh7Z2L/3PDjTs/Jc2IHmkwAkFyHmnw==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@redocly/config/-/config-0.1.6.tgz", + "integrity": "sha512-8vXiTEKAqun98i7LksmhtMUIMl34ePiPchDdsikQLwh3/Hg8J9FyEZujwm5QvYQE2evo78W6x8pcHJtzSmyZgQ==", "dev": true }, "node_modules/@redocly/openapi-core": { @@ -910,9 +1278,9 @@ } }, "node_modules/@tsconfig/node10": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.10.tgz", - "integrity": "sha512-PiaIWIoPvO6qm6t114ropMCagj6YAF24j9OkCA2mJDXFnlionEwhsBCJ8yek4aib575BI3OkART/90WsgHgLWw==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", "dev": true }, "node_modules/@tsconfig/node12": { @@ -2549,6 +2917,44 @@ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==", "dev": true }, + "node_modules/esbuild": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -3294,6 +3700,18 @@ "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", "dev": true }, + "node_modules/get-tsconfig": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", + "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4555,9 +4973,9 @@ "dev": true }, "node_modules/node": { - "version": "20.11.1", - "resolved": "https://registry.npmjs.org/node/-/node-20.11.1.tgz", - "integrity": "sha512-Xn8PkfFD6TYj/zqL2iK6ENtpEWvEymEHTycYdZydZNkzdqXwopqQKG+Yz+8xDsAJO15Db7VFNzRPVpYk0cbBJg==", + "version": "20.12.0", + "resolved": "https://registry.npmjs.org/node/-/node-20.12.0.tgz", + "integrity": "sha512-2Mk6hEMKBXh6KdiG1DHqI68EU7fEvF6icNJ0/ormVXTv1SXii3tLaIObhUEmCBv15qob23n0yoFPmB6CEos5/Q==", "hasInstallScript": true, "dependencies": { "node-bin-setup": "^1.0.0" @@ -8273,6 +8691,15 @@ "node": ">=4" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -8877,9 +9304,9 @@ } }, "node_modules/swagger-ui-dist": { - "version": "5.12.2", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.12.2.tgz", - "integrity": "sha512-Fk8qZCBgZPkDli81pLrkSN15rs49xKnPkjhtKmUImmak4l2HdLiR/R7RgPkMGn1MuXvoIoLjIWgjE7NBgLWZHg==" + "version": "5.12.3", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.12.3.tgz", + "integrity": "sha512-UAFxQSzxVkY/yfmipeMLj4LwH6I/ZGcfezwSquPm2U9CqOiHp8L6fD7TcyPDYfCZuHFaPw5y4io+fny37Ov9NQ==" }, "node_modules/swagger-ui-express": { "version": "5.0.0", @@ -9110,6 +9537,25 @@ "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, + "node_modules/tsx": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.7.1.tgz", + "integrity": "sha512-8d6VuibXHtlN5E3zFkgY8u4DX7Y3Z27zvvPKVmLon/D4AjuKzarkUBTLDBgj9iTQ0hg5xM7c/mYiRVM+HETf0g==", + "dev": true, + "dependencies": { + "esbuild": "~0.19.10", + "get-tsconfig": "^4.7.2" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", diff --git a/ExpressAPI/package.json b/ExpressAPI/package.json index 6ecabeb7a5e6c3168b7542c374cffed009208c56..5756151d8890e58f3fccdbfc538d6550b19c9274 100644 --- a/ExpressAPI/package.json +++ b/ExpressAPI/package.json @@ -77,7 +77,7 @@ "nodemon" : "^3.0.3", "npm" : "^10.4.0", "prisma" : "^5.9.1", - "ts-node" : "^10.9.2", - "typescript" : "^5.3.3" + "tsx" : "^4.7.1", + "typescript" : "^5.4.3" } } diff --git a/ExpressAPI/prisma/seed.ts b/ExpressAPI/prisma/seed.ts index 74d814d9f269ff4ca5c3651ab743f979799758f5..93680f6e393563ebb3adee65bdfe48e5918797a0 100644 --- a/ExpressAPI/prisma/seed.ts +++ b/ExpressAPI/prisma/seed.ts @@ -1,10 +1,11 @@ -require('../src/InitialImports'); // ATTENTION : These lines MUST be the first of this file +// ATTENTION : This line MUST be the first of this file +import '../src/init.js'; import * as process from 'process'; -import SharedConfig from '../src/shared/config/SharedConfig'; +import SharedConfig from '../src/shared/config/SharedConfig.js'; import { UserRole } from '@prisma/client'; -import logger from '../src/shared/logging/WinstonLogger'; -import db from '../src/helpers/DatabaseHelper'; +import logger from '../src/shared/logging/WinstonLogger.js'; +import db from '../src/helpers/DatabaseHelper.js'; async function main() { diff --git a/ExpressAPI/src/InitialImports.ts b/ExpressAPI/src/InitialImports.ts deleted file mode 100644 index 98e4273b1c3a1b46b6ef444a71a72bf8ae12fa6a..0000000000000000000000000000000000000000 --- a/ExpressAPI/src/InitialImports.ts +++ /dev/null @@ -1,17 +0,0 @@ -import path from 'node:path'; -import cluster from 'node:cluster'; -import myEnv = require('dotenv'); -import dotenvExpand = require('dotenv-expand'); - - -if ( cluster.isPrimary ) { - if ( process.env.NODE_ENV && process.env.NODE_ENV === 'production' ) { - dotenvExpand.expand(myEnv.config()); - } else { - myEnv.config({ path: path.join(__dirname, '../.env.keys') }); - dotenvExpand.expand(myEnv.config({ DOTENV_KEY: process.env.DOTENV_KEY_DEVELOPMENT })); - } -} - - -require('./shared/helpers/TypeScriptExtensions'); // ATTENTION : This line MUST be after the dotenv.config() calls diff --git a/ExpressAPI/src/app.ts b/ExpressAPI/src/app.ts index b1eb7d2dd46eb1f8d64c9c61ccd4805cb6be4d58..cf216ab0dd27362921c0b98a0280f147a9271022 100644 --- a/ExpressAPI/src/app.ts +++ b/ExpressAPI/src/app.ts @@ -1,10 +1,11 @@ -require('./InitialImports'); // ATTENTION : These lines MUST be the first of this file +// ATTENTION : This line MUST be the first of this file +import './init.js'; -import SharedConfig from './shared/config/SharedConfig'; -import WorkerRole from './process/WorkerRole'; -import ClusterManager from './process/ClusterManager'; -import API from './express/API'; -import HttpManager from './managers/HttpManager'; +import SharedConfig from './shared/config/SharedConfig.js'; +import WorkerRole from './process/WorkerRole.js'; +import ClusterManager from './process/ClusterManager.js'; +import API from './express/API.js'; +import HttpManager from './managers/HttpManager.js'; HttpManager.registerAxiosInterceptor(); diff --git a/ExpressAPI/src/config/Config.ts b/ExpressAPI/src/config/Config.ts index 2eaa5ec692b2c84a82c917564ac27634c3433639..9d5766cae888d80ac7d705cece888ea8124170d4 100644 --- a/ExpressAPI/src/config/Config.ts +++ b/ExpressAPI/src/config/Config.ts @@ -1,8 +1,8 @@ import path from 'path'; import fs from 'fs'; -import { Exercise } from '../types/DatabaseTypes'; +import { Exercise } from '../types/DatabaseTypes.js'; import JSON5 from 'json5'; -import GitlabVisibility from '../shared/types/Gitlab/GitlabVisibility'; +import GitlabVisibility from '../shared/types/Gitlab/GitlabVisibility.js'; type ConfigGitlabBadge = { diff --git a/ExpressAPI/src/controllers/Session.ts b/ExpressAPI/src/controllers/Session.ts index d264c7aa4a86ffdeea59c8f9cf55a82d7e049022..3c3bae24d0d118a5e51ccddaa4ec9999ebd36576 100644 --- a/ExpressAPI/src/controllers/Session.ts +++ b/ExpressAPI/src/controllers/Session.ts @@ -1,11 +1,11 @@ import { getReasonPhrase, StatusCodes } from 'http-status-codes'; import * as jwt from 'jsonwebtoken'; import { JwtPayload } from 'jsonwebtoken'; -import Config from '../config/Config'; +import Config from '../config/Config.js'; import express from 'express'; -import UserManager from '../managers/UserManager'; -import { User } from '../types/DatabaseTypes'; -import DojoBackendResponse from '../shared/types/Dojo/DojoBackendResponse'; +import UserManager from '../managers/UserManager.js'; +import { User } from '../types/DatabaseTypes.js'; +import DojoBackendResponse from '../shared/types/Dojo/DojoBackendResponse.js'; class Session { diff --git a/ExpressAPI/src/express/API.ts b/ExpressAPI/src/express/API.ts index 519918ef7da595f36394abd87f6d58c2aa6ea273..4245d9212b7cf423b3b27ff3c43352654d285184 100644 --- a/ExpressAPI/src/express/API.ts +++ b/ExpressAPI/src/express/API.ts @@ -1,22 +1,22 @@ import { Express } from 'express-serve-static-core'; import cors from 'cors'; -import morganMiddleware from '../logging/MorganMiddleware'; +import morganMiddleware from '../logging/MorganMiddleware.js'; import { AddressInfo } from 'net'; import http from 'http'; import helmet from 'helmet'; import express from 'express'; -import WorkerTask from '../process/WorkerTask'; +import WorkerTask from '../process/WorkerTask.js'; import multer from 'multer'; -import SessionMiddleware from '../middlewares/SessionMiddleware'; -import Config from '../config/Config'; -import logger from '../shared/logging/WinstonLogger'; -import ParamsCallbackManager from '../middlewares/ParamsCallbackManager'; -import ApiRoutesManager from '../routes/ApiRoutesManager'; +import SessionMiddleware from '../middlewares/SessionMiddleware.js'; +import Config from '../config/Config.js'; +import logger from '../shared/logging/WinstonLogger.js'; +import ParamsCallbackManager from '../middlewares/ParamsCallbackManager.js'; +import ApiRoutesManager from '../routes/ApiRoutesManager.js'; import compression from 'compression'; -import ClientVersionCheckerMiddleware from '../middlewares/ClientVersionCheckerMiddleware'; +import ClientVersionCheckerMiddleware from '../middlewares/ClientVersionCheckerMiddleware.js'; import swaggerUi from 'swagger-ui-express'; import path from 'path'; -import DojoCliVersionHelper from '../helpers/DojoCliVersionHelper'; +import DojoCliVersionHelper from '../helpers/DojoCliVersionHelper.js'; class API implements WorkerTask { diff --git a/ExpressAPI/src/helpers/DatabaseHelper.ts b/ExpressAPI/src/helpers/DatabaseHelper.ts index 797615fea9171ed184be24a024416fd139a17f3b..21fbff411d83c21ae7d1a89e058ca3f4f1722d04 100644 --- a/ExpressAPI/src/helpers/DatabaseHelper.ts +++ b/ExpressAPI/src/helpers/DatabaseHelper.ts @@ -1,9 +1,9 @@ import { PrismaClient } from '@prisma/client'; -import logger from '../shared/logging/WinstonLogger'; -import UserQueryExtension from './Prisma/Extensions/UserQueryExtension'; -import UserResultExtension from './Prisma/Extensions/UserResultExtension'; -import AssignmentResultExtension from './Prisma/Extensions/AssignmentResultExtension'; -import ExerciseResultExtension from './Prisma/Extensions/ExerciseResultExtension'; +import logger from '../shared/logging/WinstonLogger.js'; +import UserQueryExtension from './Prisma/Extensions/UserQueryExtension.js'; +import UserResultExtension from './Prisma/Extensions/UserResultExtension.js'; +import AssignmentResultExtension from './Prisma/Extensions/AssignmentResultExtension.js'; +import ExerciseResultExtension from './Prisma/Extensions/ExerciseResultExtension.js'; const prisma = new PrismaClient({ diff --git a/ExpressAPI/src/helpers/DojoCliVersionHelper.ts b/ExpressAPI/src/helpers/DojoCliVersionHelper.ts index 4fd8d2505f55d38cd7f0925c94a6b23eb154d9aa..3ee9982d516f224b9b65c568807627bf77a4a96b 100644 --- a/ExpressAPI/src/helpers/DojoCliVersionHelper.ts +++ b/ExpressAPI/src/helpers/DojoCliVersionHelper.ts @@ -1,5 +1,5 @@ -import Config from '../config/Config'; -import GitlabManager from '../managers/GitlabManager'; +import Config from '../config/Config.js'; +import GitlabManager from '../managers/GitlabManager.js'; import * as Gitlab from '@gitbeaker/rest'; diff --git a/ExpressAPI/src/helpers/DojoModelsHelper.ts b/ExpressAPI/src/helpers/DojoModelsHelper.ts index 3b3c35cd4e9197fdd9bb722095e9c73fd409b879..a54c2ac6e218910bb0c1bbd31271bfa9a779c7fa 100644 --- a/ExpressAPI/src/helpers/DojoModelsHelper.ts +++ b/ExpressAPI/src/helpers/DojoModelsHelper.ts @@ -1,4 +1,4 @@ -import LazyVal from '../shared/helpers/LazyVal'; +import LazyVal from '../shared/helpers/LazyVal.js'; class DojoModelsHelper { diff --git a/ExpressAPI/src/helpers/DojoValidators.ts b/ExpressAPI/src/helpers/DojoValidators.ts index 26f60f4ce97d986c2ba2867ad268d79a43ce34c6..cef01a07a39f009cbd2e8e092e9c79d6bb506fb6 100644 --- a/ExpressAPI/src/helpers/DojoValidators.ts +++ b/ExpressAPI/src/helpers/DojoValidators.ts @@ -1,13 +1,13 @@ -import Config from '../config/Config'; +import Config from '../config/Config.js'; import { CustomValidator, ErrorMessage, FieldMessageFactory, Meta } from 'express-validator/src/base'; import { BailOptions, ValidationChain } from 'express-validator/src/chain'; -import GitlabManager from '../managers/GitlabManager'; +import GitlabManager from '../managers/GitlabManager.js'; import express from 'express'; -import logger from '../shared/logging/WinstonLogger'; -import Json5FileValidator from '../shared/helpers/Json5FileValidator'; -import ExerciseResultsFile from '../shared/types/Dojo/ExerciseResultsFile'; -import ParamsCallbackManager from '../middlewares/ParamsCallbackManager'; -import ExerciseManager from '../managers/ExerciseManager'; +import logger from '../shared/logging/WinstonLogger.js'; +import Json5FileValidator from '../shared/helpers/Json5FileValidator.js'; +import ExerciseResultsFile from '../shared/types/Dojo/ExerciseResultsFile.js'; +import ParamsCallbackManager from '../middlewares/ParamsCallbackManager.js'; +import ExerciseManager from '../managers/ExerciseManager.js'; declare type DojoMeta = Meta & { diff --git a/ExpressAPI/src/helpers/GlobalHelper.ts b/ExpressAPI/src/helpers/GlobalHelper.ts index 6bd7b8890dd7b08c7f3188ac5fc0100d0da57dcc..308a941632f9fa6ddcdaee888538f97b2e4a9bc4 100644 --- a/ExpressAPI/src/helpers/GlobalHelper.ts +++ b/ExpressAPI/src/helpers/GlobalHelper.ts @@ -1,7 +1,7 @@ import express from 'express'; -import logger from '../shared/logging/WinstonLogger'; -import GitlabManager from '../managers/GitlabManager'; -import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; +import logger from '../shared/logging/WinstonLogger.js'; +import GitlabManager from '../managers/GitlabManager.js'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode.js'; import { StatusCodes } from 'http-status-codes'; import { GitbeakerRequestError } from '@gitbeaker/requester-utils'; import * as Gitlab from '@gitbeaker/rest'; diff --git a/ExpressAPI/src/helpers/Prisma/Extensions/AssignmentResultExtension.ts b/ExpressAPI/src/helpers/Prisma/Extensions/AssignmentResultExtension.ts index 4c1d8bea9160b8497ce33b05372595e8c15a2cae..41919c8bed823c362208784142904bea7ddd8720 100644 --- a/ExpressAPI/src/helpers/Prisma/Extensions/AssignmentResultExtension.ts +++ b/ExpressAPI/src/helpers/Prisma/Extensions/AssignmentResultExtension.ts @@ -1,7 +1,7 @@ import { Prisma } from '@prisma/client'; -import { Exercise } from '../../../types/DatabaseTypes'; -import db from '../../DatabaseHelper'; -import LazyVal from '../../../shared/helpers/LazyVal'; +import { Exercise } from '../../../types/DatabaseTypes.js'; +import db from '../../DatabaseHelper.js'; +import LazyVal from '../../../shared/helpers/LazyVal.js'; async function getCorrections(assignment: { name: string }): Promise<Array<Partial<Exercise>> | undefined> { diff --git a/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts b/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts index af63f05ed484cf5de6bd45421f484627a6845e63..434ff40da0a0037ded772f47e71acb8f077b0e20 100644 --- a/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts +++ b/ExpressAPI/src/helpers/Prisma/Extensions/UserResultExtension.ts @@ -1,7 +1,7 @@ import { Prisma, UserRole } from '@prisma/client'; -import LazyVal from '../../../shared/helpers/LazyVal'; +import LazyVal from '../../../shared/helpers/LazyVal.js'; import * as Gitlab from '@gitbeaker/rest'; -import GitlabManager from '../../../managers/GitlabManager'; +import GitlabManager from '../../../managers/GitlabManager.js'; export default Prisma.defineExtension(client => { diff --git a/ExpressAPI/src/init.ts b/ExpressAPI/src/init.ts new file mode 100644 index 0000000000000000000000000000000000000000..59695b2570077508b4ea44ffb4d9c45222cf7a34 --- /dev/null +++ b/ExpressAPI/src/init.ts @@ -0,0 +1,15 @@ +import path from 'node:path'; +import cluster from 'node:cluster'; +import dotenv from 'dotenv'; +import dotenvExpand from 'dotenv-expand'; +import './shared/helpers/TypeScriptExtensions.js'; + + +if ( cluster.isPrimary ) { + if ( process.env.NODE_ENV && process.env.NODE_ENV === 'production' ) { + dotenvExpand.expand(dotenv.config()); + } else { + dotenv.config({ path: path.join(__dirname, '../.env.keys') }); + dotenvExpand.expand(dotenv.config({ DOTENV_KEY: process.env.DOTENV_KEY_DEVELOPMENT })); + } +} diff --git a/ExpressAPI/src/logging/MorganMiddleware.ts b/ExpressAPI/src/logging/MorganMiddleware.ts index 6da9b45547361bcea4bda0007ab7f7b1b0b95b1f..a23c0d5d9925bde5c7e4f352923871f2204181bb 100644 --- a/ExpressAPI/src/logging/MorganMiddleware.ts +++ b/ExpressAPI/src/logging/MorganMiddleware.ts @@ -1,5 +1,5 @@ import morgan, { StreamOptions } from 'morgan'; -import logger from '../shared/logging/WinstonLogger'; +import logger from '../shared/logging/WinstonLogger.js'; const stream: StreamOptions = { diff --git a/ExpressAPI/src/managers/AssignmentManager.ts b/ExpressAPI/src/managers/AssignmentManager.ts index 9053b8e5ef05469e31c55be50476d98bbb70308d..7a42824e2bb3c51f3585e757474d980599919e48 100644 --- a/ExpressAPI/src/managers/AssignmentManager.ts +++ b/ExpressAPI/src/managers/AssignmentManager.ts @@ -1,6 +1,6 @@ import { Prisma } from '@prisma/client'; -import { Assignment, User } from '../types/DatabaseTypes'; -import db from '../helpers/DatabaseHelper'; +import { Assignment, User } from '../types/DatabaseTypes.js'; +import db from '../helpers/DatabaseHelper.js'; class AssignmentManager { diff --git a/ExpressAPI/src/managers/ExerciseManager.ts b/ExpressAPI/src/managers/ExerciseManager.ts index 802035222e6a7d52931d2e6ab33e0e9f6360d3a5..258f96379bfe4528e8b59fed8f7be3e78097aeea 100644 --- a/ExpressAPI/src/managers/ExerciseManager.ts +++ b/ExpressAPI/src/managers/ExerciseManager.ts @@ -1,6 +1,6 @@ import { Prisma } from '@prisma/client'; -import { Exercise } from '../types/DatabaseTypes'; -import db from '../helpers/DatabaseHelper'; +import { Exercise } from '../types/DatabaseTypes.js'; +import db from '../helpers/DatabaseHelper.js'; class ExerciseManager { diff --git a/ExpressAPI/src/managers/GitlabManager.ts b/ExpressAPI/src/managers/GitlabManager.ts index f48e9391cad444bf03d0660a3392ef1b08be9f5b..557118540ff3d04539ddcfbfca49475bd8b509ca 100644 --- a/ExpressAPI/src/managers/GitlabManager.ts +++ b/ExpressAPI/src/managers/GitlabManager.ts @@ -1,13 +1,13 @@ -import Config from '../config/Config'; +import Config from '../config/Config.js'; import { StatusCodes } from 'http-status-codes'; -import GitlabVisibility from '../shared/types/Gitlab/GitlabVisibility'; +import GitlabVisibility from '../shared/types/Gitlab/GitlabVisibility.js'; import express from 'express'; -import SharedConfig from '../shared/config/SharedConfig'; +import SharedConfig from '../shared/config/SharedConfig.js'; import { CommitSchema, ExpandedUserSchema, Gitlab, MemberSchema, ProjectBadgeSchema, ProjectSchema, ReleaseSchema, RepositoryFileExpandedSchema, RepositoryFileSchema, RepositoryTreeSchema } from '@gitbeaker/rest'; -import logger from '../shared/logging/WinstonLogger'; +import logger from '../shared/logging/WinstonLogger.js'; import { AccessLevel, EditProjectOptions, ProjectVariableSchema, ProtectedBranchAccessLevel, ProtectedBranchSchema } from '@gitbeaker/core'; -import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; -import SharedGitlabManager from '../shared/managers/SharedGitlabManager'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode.js'; +import SharedGitlabManager from '../shared/managers/SharedGitlabManager.js'; class GitlabManager extends SharedGitlabManager { diff --git a/ExpressAPI/src/managers/HttpManager.ts b/ExpressAPI/src/managers/HttpManager.ts index 408adc592d9119e511e1eff457cfde149937c68f..0d9b7d2cd09841c0d1d5f83cedbba8093f8fb7e6 100644 --- a/ExpressAPI/src/managers/HttpManager.ts +++ b/ExpressAPI/src/managers/HttpManager.ts @@ -1,6 +1,6 @@ import axios, { AxiosError, AxiosRequestHeaders } from 'axios'; import FormData from 'form-data'; -import logger from '../shared/logging/WinstonLogger'; +import logger from '../shared/logging/WinstonLogger.js'; class HttpManager { diff --git a/ExpressAPI/src/managers/UserManager.ts b/ExpressAPI/src/managers/UserManager.ts index 6008cf5d7d301e02fbd83919f076d29193cf5bac..871ea380c53163bc518f752c0373d97a02ef6374 100644 --- a/ExpressAPI/src/managers/UserManager.ts +++ b/ExpressAPI/src/managers/UserManager.ts @@ -1,6 +1,6 @@ import { Prisma } from '@prisma/client'; -import db from '../helpers/DatabaseHelper'; -import { User } from '../types/DatabaseTypes'; +import db from '../helpers/DatabaseHelper.js'; +import { User } from '../types/DatabaseTypes.js'; import * as Gitlab from '@gitbeaker/rest'; diff --git a/ExpressAPI/src/middlewares/ClientVersionCheckerMiddleware.ts b/ExpressAPI/src/middlewares/ClientVersionCheckerMiddleware.ts index f58b2b761a13d06482652eab64594234ac906f92..d4d1cba3fc9cffba1fcf4a254c5880a74353897e 100644 --- a/ExpressAPI/src/middlewares/ClientVersionCheckerMiddleware.ts +++ b/ExpressAPI/src/middlewares/ClientVersionCheckerMiddleware.ts @@ -1,8 +1,8 @@ import express from 'express'; -import Config from '../config/Config'; +import Config from '../config/Config.js'; import semver from 'semver/preload'; -import Session from '../controllers/Session'; -import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; +import Session from '../controllers/Session.js'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode.js'; import { StatusCodes } from 'http-status-codes'; diff --git a/ExpressAPI/src/middlewares/ParamsCallbackManager.ts b/ExpressAPI/src/middlewares/ParamsCallbackManager.ts index 6dd5303a36e38091833b733472c0227733788ebe..a1836d10d7349c935920061299226a7eb825568c 100644 --- a/ExpressAPI/src/middlewares/ParamsCallbackManager.ts +++ b/ExpressAPI/src/middlewares/ParamsCallbackManager.ts @@ -1,8 +1,8 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; import { StatusCodes } from 'http-status-codes'; -import ExerciseManager from '../managers/ExerciseManager'; -import AssignmentManager from '../managers/AssignmentManager'; +import ExerciseManager from '../managers/ExerciseManager.js'; +import AssignmentManager from '../managers/AssignmentManager.js'; type GetFunction = (id: string | number, ...args: Array<unknown>) => Promise<unknown> diff --git a/ExpressAPI/src/middlewares/SecurityMiddleware.ts b/ExpressAPI/src/middlewares/SecurityMiddleware.ts index a3a505902c4ef17af352f5023e3198fd1bbdf506..cffbfae62b44ccb7fa8ddeaae6bfa58211f1a6e0 100644 --- a/ExpressAPI/src/middlewares/SecurityMiddleware.ts +++ b/ExpressAPI/src/middlewares/SecurityMiddleware.ts @@ -1,8 +1,8 @@ import express from 'express'; import { StatusCodes } from 'http-status-codes'; -import SecurityCheckType from '../types/SecurityCheckType'; -import logger from '../shared/logging/WinstonLogger'; -import AssignmentManager from '../managers/AssignmentManager'; +import SecurityCheckType from '../types/SecurityCheckType.js'; +import logger from '../shared/logging/WinstonLogger.js'; +import AssignmentManager from '../managers/AssignmentManager.js'; class SecurityMiddleware { diff --git a/ExpressAPI/src/middlewares/SessionMiddleware.ts b/ExpressAPI/src/middlewares/SessionMiddleware.ts index bf237bfd28d71562e22b68b2317b447abff88c28..0fb52098a320e20ba9630ea428be57c1023c2f7d 100644 --- a/ExpressAPI/src/middlewares/SessionMiddleware.ts +++ b/ExpressAPI/src/middlewares/SessionMiddleware.ts @@ -1,5 +1,5 @@ import express from 'express'; -import Session from '../controllers/Session'; +import Session from '../controllers/Session.js'; import { Express } from 'express-serve-static-core'; diff --git a/ExpressAPI/src/process/ClusterManager.ts b/ExpressAPI/src/process/ClusterManager.ts index fd061eb701901b88329da2fc94f3a2824ec62f92..8607287fa0d312506a6b604bd3057bb7a9dc6916 100644 --- a/ExpressAPI/src/process/ClusterManager.ts +++ b/ExpressAPI/src/process/ClusterManager.ts @@ -1,9 +1,9 @@ import cluster, { Worker } from 'node:cluster'; -import WorkerRole from './WorkerRole'; +import WorkerRole from './WorkerRole.js'; import os from 'os'; -import ClusterStrategy from './ClusterStrategy'; -import WorkerPool from './WorkerPool'; -import logger from '../shared/logging/WinstonLogger'; +import ClusterStrategy from './ClusterStrategy.js'; +import WorkerPool from './WorkerPool.js'; +import logger from '../shared/logging/WinstonLogger.js'; /* diff --git a/ExpressAPI/src/process/ClusterStrategy.ts b/ExpressAPI/src/process/ClusterStrategy.ts index 4628b6ce90f2b9a8b37d4c1437fdf9bf8a499174..7fb8f74c436b8d6c6a91aa84de273c39a9484174 100644 --- a/ExpressAPI/src/process/ClusterStrategy.ts +++ b/ExpressAPI/src/process/ClusterStrategy.ts @@ -1,4 +1,4 @@ -import WorkerPool from './WorkerPool'; +import WorkerPool from './WorkerPool.js'; type ClusterStrategy = Array<WorkerPool> diff --git a/ExpressAPI/src/process/WorkerPool.ts b/ExpressAPI/src/process/WorkerPool.ts index 79c469ee02765ba1b2ee3a59135e16167cc51991..13d5be18f3f6d7cbd802025e4d63af4e5fa385f1 100644 --- a/ExpressAPI/src/process/WorkerPool.ts +++ b/ExpressAPI/src/process/WorkerPool.ts @@ -1,5 +1,5 @@ -import WorkerRole from './WorkerRole'; -import WorkerTask from './WorkerTask'; +import WorkerRole from './WorkerRole.js'; +import WorkerTask from './WorkerTask.js'; /* diff --git a/ExpressAPI/src/routes/ApiRoutesManager.ts b/ExpressAPI/src/routes/ApiRoutesManager.ts index ec4eeb909e0580901c56fcf3fda13ce88c675149..57a418842eb2003e5cab56d24344877837f90691 100644 --- a/ExpressAPI/src/routes/ApiRoutesManager.ts +++ b/ExpressAPI/src/routes/ApiRoutesManager.ts @@ -1,10 +1,10 @@ import { Express } from 'express-serve-static-core'; -import RoutesManager from '../express/RoutesManager'; -import BaseRoutes from './BaseRoutes'; -import SessionRoutes from './SessionRoutes'; -import AssignmentRoutes from './AssignmentRoutes'; -import GitlabRoutes from './GitlabRoutes'; -import ExerciseRoutes from './ExerciseRoutes'; +import RoutesManager from '../express/RoutesManager.js'; +import BaseRoutes from './BaseRoutes.js'; +import SessionRoutes from './SessionRoutes.js'; +import AssignmentRoutes from './AssignmentRoutes.js'; +import GitlabRoutes from './GitlabRoutes.js'; +import ExerciseRoutes from './ExerciseRoutes.js'; class AdminRoutesManager implements RoutesManager { diff --git a/ExpressAPI/src/routes/AssignmentRoutes.ts b/ExpressAPI/src/routes/AssignmentRoutes.ts index 121c4c4fe75ecfc3e69d649043eacd64c0d5702e..4a330a52828006bc82847fbc594406a6a5d535eb 100644 --- a/ExpressAPI/src/routes/AssignmentRoutes.ts +++ b/ExpressAPI/src/routes/AssignmentRoutes.ts @@ -2,24 +2,24 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; import * as ExpressValidator from 'express-validator'; import { StatusCodes } from 'http-status-codes'; -import RoutesManager from '../express/RoutesManager'; -import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware'; -import SecurityMiddleware from '../middlewares/SecurityMiddleware'; -import SecurityCheckType from '../types/SecurityCheckType'; -import GitlabManager from '../managers/GitlabManager'; -import Config from '../config/Config'; -import logger from '../shared/logging/WinstonLogger'; -import DojoValidators from '../helpers/DojoValidators'; +import RoutesManager from '../express/RoutesManager.js'; +import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware.js'; +import SecurityMiddleware from '../middlewares/SecurityMiddleware.js'; +import SecurityCheckType from '../types/SecurityCheckType.js'; +import GitlabManager from '../managers/GitlabManager.js'; +import Config from '../config/Config.js'; +import logger from '../shared/logging/WinstonLogger.js'; +import DojoValidators from '../helpers/DojoValidators.js'; import { Prisma } from '@prisma/client'; -import db from '../helpers/DatabaseHelper'; -import { Assignment } from '../types/DatabaseTypes'; -import AssignmentManager from '../managers/AssignmentManager'; +import db from '../helpers/DatabaseHelper.js'; +import { Assignment } from '../types/DatabaseTypes.js'; +import AssignmentManager from '../managers/AssignmentManager.js'; import fs from 'fs'; import path from 'path'; -import SharedAssignmentHelper from '../shared/helpers/Dojo/SharedAssignmentHelper'; -import GlobalHelper from '../helpers/GlobalHelper'; -import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; -import DojoModelsHelper from '../helpers/DojoModelsHelper'; +import SharedAssignmentHelper from '../shared/helpers/Dojo/SharedAssignmentHelper.js'; +import GlobalHelper from '../helpers/GlobalHelper.js'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode.js'; +import DojoModelsHelper from '../helpers/DojoModelsHelper.js'; import * as Gitlab from '@gitbeaker/rest'; import { GitbeakerRequestError } from '@gitbeaker/requester-utils'; diff --git a/ExpressAPI/src/routes/BaseRoutes.ts b/ExpressAPI/src/routes/BaseRoutes.ts index 474f5bbbe6a7a1a0e28a120c52ebea8cd501e410..57a215ff00ca7bee6260af671e392321d7c84bf6 100644 --- a/ExpressAPI/src/routes/BaseRoutes.ts +++ b/ExpressAPI/src/routes/BaseRoutes.ts @@ -1,7 +1,7 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; import { StatusCodes } from 'http-status-codes'; -import RoutesManager from '../express/RoutesManager'; +import RoutesManager from '../express/RoutesManager.js'; class BaseRoutes implements RoutesManager { diff --git a/ExpressAPI/src/routes/ExerciseRoutes.ts b/ExpressAPI/src/routes/ExerciseRoutes.ts index 34607a0484e811c48956ec67a76b911bd0aff8d2..116fd1df9b57028231c1d6bc833f0f3b68bf0fbf 100644 --- a/ExpressAPI/src/routes/ExerciseRoutes.ts +++ b/ExpressAPI/src/routes/ExerciseRoutes.ts @@ -2,29 +2,29 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; import * as ExpressValidator from 'express-validator'; import { StatusCodes } from 'http-status-codes'; -import RoutesManager from '../express/RoutesManager'; -import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware'; -import SecurityMiddleware from '../middlewares/SecurityMiddleware'; -import GitlabManager from '../managers/GitlabManager'; -import Config from '../config/Config'; -import logger from '../shared/logging/WinstonLogger'; -import DojoValidators from '../helpers/DojoValidators'; +import RoutesManager from '../express/RoutesManager.js'; +import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware.js'; +import SecurityMiddleware from '../middlewares/SecurityMiddleware.js'; +import GitlabManager from '../managers/GitlabManager.js'; +import Config from '../config/Config.js'; +import logger from '../shared/logging/WinstonLogger.js'; +import DojoValidators from '../helpers/DojoValidators.js'; import { v4 as uuidv4 } from 'uuid'; import { Prisma } from '@prisma/client'; -import { Assignment, Exercise } from '../types/DatabaseTypes'; -import db from '../helpers/DatabaseHelper'; -import SecurityCheckType from '../types/SecurityCheckType'; +import { Assignment, Exercise } from '../types/DatabaseTypes.js'; +import db from '../helpers/DatabaseHelper.js'; +import SecurityCheckType from '../types/SecurityCheckType.js'; import JSON5 from 'json5'; import fs from 'fs'; import path from 'path'; -import AssignmentFile from '../shared/types/Dojo/AssignmentFile'; -import ExerciseResultsFile from '../shared/types/Dojo/ExerciseResultsFile'; -import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; -import GlobalHelper from '../helpers/GlobalHelper'; -import { IFileDirStat } from '../shared/helpers/recursiveFilesStats/RecursiveFilesStats'; -import ExerciseManager from '../managers/ExerciseManager'; +import AssignmentFile from '../shared/types/Dojo/AssignmentFile.js'; +import ExerciseResultsFile from '../shared/types/Dojo/ExerciseResultsFile.js'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode.js'; +import GlobalHelper from '../helpers/GlobalHelper.js'; +import { IFileDirStat } from '../shared/helpers/recursiveFilesStats/RecursiveFilesStats.js'; +import ExerciseManager from '../managers/ExerciseManager.js'; import * as Gitlab from '@gitbeaker/rest'; -import GitlabTreeFileType from '../shared/types/Gitlab/GitlabTreeFileType'; +import GitlabTreeFileType from '../shared/types/Gitlab/GitlabTreeFileType.js'; import { GitbeakerRequestError } from '@gitbeaker/requester-utils'; diff --git a/ExpressAPI/src/routes/GitlabRoutes.ts b/ExpressAPI/src/routes/GitlabRoutes.ts index 2d8ced089e6321ee86e7493e6cc97ad04cb93e63..1a5c00d23142e85bccd3b1ed681b1411c10bee7c 100644 --- a/ExpressAPI/src/routes/GitlabRoutes.ts +++ b/ExpressAPI/src/routes/GitlabRoutes.ts @@ -1,9 +1,9 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; -import RoutesManager from '../express/RoutesManager'; -import SecurityMiddleware from '../middlewares/SecurityMiddleware'; -import SecurityCheckType from '../types/SecurityCheckType'; -import GitlabManager from '../managers/GitlabManager'; +import RoutesManager from '../express/RoutesManager.js'; +import SecurityMiddleware from '../middlewares/SecurityMiddleware.js'; +import SecurityCheckType from '../types/SecurityCheckType.js'; +import GitlabManager from '../managers/GitlabManager.js'; class GitlabRoutes implements RoutesManager { diff --git a/ExpressAPI/src/routes/SessionRoutes.ts b/ExpressAPI/src/routes/SessionRoutes.ts index b4f223e664ed675c40f2648a96ca4e42daf8d610..4ea2571c49c15f8e5a3d962c032e43b790554e96 100644 --- a/ExpressAPI/src/routes/SessionRoutes.ts +++ b/ExpressAPI/src/routes/SessionRoutes.ts @@ -2,13 +2,13 @@ import { Express } from 'express-serve-static-core'; import express from 'express'; import * as ExpressValidator from 'express-validator'; import { StatusCodes } from 'http-status-codes'; -import RoutesManager from '../express/RoutesManager'; -import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware'; -import SecurityMiddleware from '../middlewares/SecurityMiddleware'; -import GitlabManager from '../managers/GitlabManager'; -import UserManager from '../managers/UserManager'; -import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode'; -import Config from '../config/Config'; +import RoutesManager from '../express/RoutesManager.js'; +import ParamsValidatorMiddleware from '../middlewares/ParamsValidatorMiddleware.js'; +import SecurityMiddleware from '../middlewares/SecurityMiddleware.js'; +import GitlabManager from '../managers/GitlabManager.js'; +import UserManager from '../managers/UserManager.js'; +import DojoStatusCode from '../shared/types/Dojo/DojoStatusCode.js'; +import Config from '../config/Config.js'; class SessionRoutes implements RoutesManager { diff --git a/ExpressAPI/src/shared b/ExpressAPI/src/shared index 6e78095b3fe73f2c2987de1a3d3b55511335a2bf..021300d29473dee2ad229384d22a521c0e5c14aa 160000 --- a/ExpressAPI/src/shared +++ b/ExpressAPI/src/shared @@ -1 +1 @@ -Subproject commit 6e78095b3fe73f2c2987de1a3d3b55511335a2bf +Subproject commit 021300d29473dee2ad229384d22a521c0e5c14aa diff --git a/ExpressAPI/src/types/DatabaseTypes.ts b/ExpressAPI/src/types/DatabaseTypes.ts index 2a9726980de2a1bcc8187be1df7d3837c0fd4def..011d2efc5643f66cefb4da435b26e4579accfc32 100644 --- a/ExpressAPI/src/types/DatabaseTypes.ts +++ b/ExpressAPI/src/types/DatabaseTypes.ts @@ -1,5 +1,5 @@ import { Prisma } from '@prisma/client'; -import LazyVal from '../shared/helpers/LazyVal'; +import LazyVal from '../shared/helpers/LazyVal.js'; import * as Gitlab from '@gitbeaker/rest'; diff --git a/ExpressAPI/src/types/express/index.d.ts b/ExpressAPI/src/types/express/index.d.ts index e7ac814574fc914961ed95329b1954eb60a74997..744609f9823e62e1348d63df9252a48ccfa3b64b 100644 --- a/ExpressAPI/src/types/express/index.d.ts +++ b/ExpressAPI/src/types/express/index.d.ts @@ -1,5 +1,5 @@ -import Session from '../../controllers/Session'; -import { Assignment, Exercise } from '../DatabaseTypes'; +import Session from '../../controllers/Session.js'; +import { Assignment, Exercise } from '../DatabaseTypes.js'; // to make the file a module and avoid the TypeScript error export {};