From 8afcb347749b77205329b172292a2416468567c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <git@minelli.me> Date: Thu, 28 Mar 2024 22:48:14 +0100 Subject: [PATCH] Adapt to ESM notation (for code compatibility with other Dojo projects) --- ExpressAPI/.idea/jetbrainsConfiguration | 2 +- ExpressAPI/nodemon.json | 2 +- ExpressAPI/package-lock.json | 474 +++++++++++++++++- ExpressAPI/package.json | 4 +- ExpressAPI/prisma/seed.ts | 9 +- ExpressAPI/src/InitialImports.ts | 17 - ExpressAPI/src/app.ts | 13 +- ExpressAPI/src/config/Config.ts | 4 +- ExpressAPI/src/controllers/Session.ts | 8 +- ExpressAPI/src/express/API.ts | 18 +- ExpressAPI/src/helpers/DatabaseHelper.ts | 10 +- .../src/helpers/DojoCliVersionHelper.ts | 4 +- ExpressAPI/src/helpers/DojoModelsHelper.ts | 2 +- ExpressAPI/src/helpers/DojoValidators.ts | 14 +- ExpressAPI/src/helpers/GlobalHelper.ts | 6 +- .../Extensions/AssignmentResultExtension.ts | 6 +- .../Prisma/Extensions/UserResultExtension.ts | 4 +- ExpressAPI/src/init.ts | 15 + ExpressAPI/src/logging/MorganMiddleware.ts | 2 +- ExpressAPI/src/managers/AssignmentManager.ts | 4 +- ExpressAPI/src/managers/ExerciseManager.ts | 4 +- ExpressAPI/src/managers/GitlabManager.ts | 12 +- ExpressAPI/src/managers/HttpManager.ts | 2 +- ExpressAPI/src/managers/UserManager.ts | 4 +- .../ClientVersionCheckerMiddleware.ts | 6 +- .../src/middlewares/ParamsCallbackManager.ts | 4 +- .../src/middlewares/SecurityMiddleware.ts | 6 +- .../src/middlewares/SessionMiddleware.ts | 2 +- ExpressAPI/src/process/ClusterManager.ts | 8 +- ExpressAPI/src/process/ClusterStrategy.ts | 2 +- ExpressAPI/src/process/WorkerPool.ts | 4 +- ExpressAPI/src/routes/ApiRoutesManager.ts | 12 +- ExpressAPI/src/routes/AssignmentRoutes.ts | 30 +- ExpressAPI/src/routes/BaseRoutes.ts | 2 +- ExpressAPI/src/routes/ExerciseRoutes.ts | 34 +- ExpressAPI/src/routes/GitlabRoutes.ts | 8 +- ExpressAPI/src/routes/SessionRoutes.ts | 14 +- ExpressAPI/src/shared | 2 +- ExpressAPI/src/types/DatabaseTypes.ts | 2 +- ExpressAPI/src/types/express/index.d.ts | 4 +- 40 files changed, 613 insertions(+), 167 deletions(-) delete mode 100644 ExpressAPI/src/InitialImports.ts create mode 100644 ExpressAPI/src/init.ts diff --git a/ExpressAPI/.idea/jetbrainsConfiguration b/ExpressAPI/.idea/jetbrainsConfiguration index f572bf3..ef5c7bd 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 220b7ed..3b34dc5 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 d042438..f1471fc 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 6ecabeb..5756151 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 74d814d..93680f6 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 98e4273..0000000 --- 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 b1eb7d2..cf216ab 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 2eaa5ec..9d5766c 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 d264c7a..3c3bae2 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 519918e..4245d92 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 797615f..21fbff4 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 4fd8d25..3ee9982 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 3b3c35c..a54c2ac 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 26f60f4..cef01a0 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 6bd7b88..308a941 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 4c1d8be..41919c8 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 af63f05..434ff40 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 0000000..59695b2 --- /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 6da9b45..a23c0d5 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 9053b8e..7a42824 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 8020352..258f963 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 f48e939..5571185 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 408adc5..0d9b7d2 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 6008cf5..871ea38 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 f58b2b7..d4d1cba 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 6dd5303..a1836d1 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 a3a5059..cffbfae 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 bf237bf..0fb5209 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 fd061eb..8607287 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 4628b6c..7fb8f74 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 79c469e..13d5be1 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 ec4eeb9..57a4188 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 121c4c4..4a330a5 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 474f5bb..57a215f 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 34607a0..116fd1d 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 2d8ced0..1a5c00d 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 b4f223e..4ea2571 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 6e78095..021300d 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 2a97269..011d2ef 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 e7ac814..744609f 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 {}; -- GitLab