diff --git a/ExpressAPI/package-lock.json b/ExpressAPI/package-lock.json
index 30c87dabc67c4ad49a99b25c88483fd49e895e8a..ca91bb541c89fef5f001a5992964b8dc5474da1a 100644
--- a/ExpressAPI/package-lock.json
+++ b/ExpressAPI/package-lock.json
@@ -19,14 +19,14 @@
                 "express-validator": "^7.0.1",
                 "form-data": "^4.0.0",
                 "helmet": "^7.0.0",
-                "hjson": "^3.2.2",
                 "http-status-codes": "^2.2.0",
+                "json5": "^2.2.3",
                 "jsonwebtoken": "^9.0.0",
                 "knex": "^2.4.2",
                 "morgan": "^1.10.0",
                 "multer": "^1.4.5-lts.1",
                 "mysql": "^2.18.1",
-                "node": "^20.2.0",
+                "node": "^20.5.0",
                 "parse-link-header": "^2.0.0",
                 "uuid": "^9.0.0",
                 "winston": "^3.8.2"
@@ -36,15 +36,14 @@
                 "@types/compression": "^1.7.2",
                 "@types/cors": "^2.8.13",
                 "@types/express": "^4.17.17",
-                "@types/hjson": "^2.4.3",
                 "@types/jsonwebtoken": "^9.0.2",
                 "@types/morgan": "^1.9.4",
                 "@types/multer": "^1.4.7",
-                "@types/node": "^20.4.6",
+                "@types/node": "^20.4.7",
                 "@types/parse-link-header": "^2.0.1",
                 "@types/uuid": "^9.0.2",
-                "nodemon": "^2.0.22",
-                "npm": "^9.6.7",
+                "nodemon": "^3.0.1",
+                "npm": "^9.8.1",
                 "prisma": "^5.1.1",
                 "ts-node": "^10.9.1",
                 "typescript": "^5.1.6"
@@ -228,12 +227,6 @@
                 "@types/send": "*"
             }
         },
-        "node_modules/@types/hjson": {
-            "version": "2.4.3",
-            "resolved": "https://registry.npmjs.org/@types/hjson/-/hjson-2.4.3.tgz",
-            "integrity": "sha512-EDixutNn3FQwa5HdET+Tx0h7TirP2knJa9TB21ySqr8XVqT/VsvvOwnanTLHUOOpNofcUhkRKhOk0Wh4YD9RSA==",
-            "dev": true
-        },
         "node_modules/@types/jsonwebtoken": {
             "version": "9.0.2",
             "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz",
@@ -268,9 +261,9 @@
             }
         },
         "node_modules/@types/node": {
-            "version": "20.4.6",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.6.tgz",
-            "integrity": "sha512-q0RkvNgMweWWIvSMDiXhflGUKMdIxBo2M2tYM/0kEGDueQByFzK4KZAgu5YHGFNxziTlppNpTIBcqHQAxlfHdA==",
+            "version": "20.4.7",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.7.tgz",
+            "integrity": "sha512-bUBrPjEry2QUTsnuEjzjbS7voGWCc30W0qzgMf90GPeDGFRakvrz47ju+oqDAKCXLUCe39u57/ORMl/O/04/9g==",
             "dev": true
         },
         "node_modules/@types/parse-link-header": {
@@ -1120,14 +1113,6 @@
                 "node": ">=16.0.0"
             }
         },
-        "node_modules/hjson": {
-            "version": "3.2.2",
-            "resolved": "https://registry.npmjs.org/hjson/-/hjson-3.2.2.tgz",
-            "integrity": "sha512-MkUeB0cTIlppeSsndgESkfFD21T2nXPRaBStLtf3cAYA2bVEFdXlodZB0TukwZiobPD1Ksax5DK4RTZeaXCI3Q==",
-            "bin": {
-                "hjson": "bin/hjson"
-            }
-        },
         "node_modules/http-errors": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
@@ -1265,6 +1250,17 @@
             "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
             "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
         },
+        "node_modules/json5": {
+            "version": "2.2.3",
+            "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+            "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+            "bin": {
+                "json5": "lib/cli.js"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
         "node_modules/jsonwebtoken": {
             "version": "9.0.0",
             "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz",
@@ -1612,9 +1608,9 @@
             "integrity": "sha512-opgw9iSCAzT2+6wJOETCpeRYAQxSopqQ2z+N6BXwIMsQQ7Zj5M8MaafQY8JMlolRR6R1UXg2WmhKp0p9lSOivg=="
         },
         "node_modules/nodemon": {
-            "version": "2.0.22",
-            "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz",
-            "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.0.1.tgz",
+            "integrity": "sha512-g9AZ7HmkhQkqXkRc20w+ZfQ73cHLbE8hnPbtaFbFtCumZsjyMhKk9LajQ07U5Ux28lvFjZ5X7HvWR1xzU8jHVw==",
             "dev": true,
             "dependencies": {
                 "chokidar": "^3.5.2",
@@ -1622,8 +1618,8 @@
                 "ignore-by-default": "^1.0.1",
                 "minimatch": "^3.1.2",
                 "pstree.remy": "^1.1.8",
-                "semver": "^5.7.1",
-                "simple-update-notifier": "^1.0.7",
+                "semver": "^7.5.3",
+                "simple-update-notifier": "^2.0.0",
                 "supports-color": "^5.5.0",
                 "touch": "^3.1.0",
                 "undefsafe": "^2.0.5"
@@ -1632,7 +1628,7 @@
                 "nodemon": "bin/nodemon.js"
             },
             "engines": {
-                "node": ">=8.10.0"
+                "node": ">=10"
             },
             "funding": {
                 "type": "opencollective",
@@ -1654,15 +1650,6 @@
             "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
             "dev": true
         },
-        "node_modules/nodemon/node_modules/semver": {
-            "version": "5.7.1",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-            "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-            "dev": true,
-            "bin": {
-                "semver": "bin/semver"
-            }
-        },
         "node_modules/nopt": {
             "version": "1.0.10",
             "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz",
@@ -1688,15 +1675,17 @@
             }
         },
         "node_modules/npm": {
-            "version": "9.6.7",
-            "resolved": "https://registry.npmjs.org/npm/-/npm-9.6.7.tgz",
-            "integrity": "sha512-xwkU1hSZl6Qrkfw3fhxVmMfNWu0A67+aZZs5gz/LoehCeAPkVhQDB90Z2NFoPSI1KpfBWCJ6Bp28wXzv5U5/2g==",
+            "version": "9.8.1",
+            "resolved": "https://registry.npmjs.org/npm/-/npm-9.8.1.tgz",
+            "integrity": "sha512-AfDvThQzsIXhYgk9zhbk5R+lh811lKkLAeQMMhSypf1BM7zUafeIIBzMzespeuVEJ0+LvY36oRQYf7IKLzU3rw==",
             "bundleDependencies": [
                 "@isaacs/string-locale-compare",
                 "@npmcli/arborist",
                 "@npmcli/config",
+                "@npmcli/fs",
                 "@npmcli/map-workspaces",
                 "@npmcli/package-json",
+                "@npmcli/promise-spawn",
                 "@npmcli/run-script",
                 "abbrev",
                 "archy",
@@ -1747,10 +1736,10 @@
                 "proc-log",
                 "qrcode-terminal",
                 "read",
-                "read-package-json",
-                "read-package-json-fast",
                 "semver",
+                "sigstore",
                 "ssri",
+                "supports-color",
                 "tar",
                 "text-table",
                 "tiny-relative-date",
@@ -1762,47 +1751,49 @@
             "dev": true,
             "dependencies": {
                 "@isaacs/string-locale-compare": "^1.1.0",
-                "@npmcli/arborist": "^6.2.9",
-                "@npmcli/config": "^6.1.7",
+                "@npmcli/arborist": "^6.3.0",
+                "@npmcli/config": "^6.2.1",
+                "@npmcli/fs": "^3.1.0",
                 "@npmcli/map-workspaces": "^3.0.4",
-                "@npmcli/package-json": "^3.1.0",
+                "@npmcli/package-json": "^4.0.1",
+                "@npmcli/promise-spawn": "^6.0.2",
                 "@npmcli/run-script": "^6.0.2",
                 "abbrev": "^2.0.0",
                 "archy": "~1.0.0",
-                "cacache": "^17.1.2",
-                "chalk": "^4.1.2",
+                "cacache": "^17.1.3",
+                "chalk": "^5.3.0",
                 "ci-info": "^3.8.0",
                 "cli-columns": "^4.0.0",
                 "cli-table3": "^0.6.3",
                 "columnify": "^1.6.0",
                 "fastest-levenshtein": "^1.0.16",
                 "fs-minipass": "^3.0.2",
-                "glob": "^10.2.4",
+                "glob": "^10.2.7",
                 "graceful-fs": "^4.2.11",
                 "hosted-git-info": "^6.1.1",
-                "ini": "^4.1.0",
+                "ini": "^4.1.1",
                 "init-package-json": "^5.0.0",
                 "is-cidr": "^4.0.2",
                 "json-parse-even-better-errors": "^3.0.0",
                 "libnpmaccess": "^7.0.2",
-                "libnpmdiff": "^5.0.17",
-                "libnpmexec": "^5.0.17",
-                "libnpmfund": "^4.0.17",
+                "libnpmdiff": "^5.0.19",
+                "libnpmexec": "^6.0.3",
+                "libnpmfund": "^4.0.19",
                 "libnpmhook": "^9.0.3",
                 "libnpmorg": "^5.0.4",
-                "libnpmpack": "^5.0.17",
-                "libnpmpublish": "^7.2.0",
+                "libnpmpack": "^5.0.19",
+                "libnpmpublish": "^7.5.0",
                 "libnpmsearch": "^6.0.2",
                 "libnpmteam": "^5.0.3",
                 "libnpmversion": "^4.0.2",
                 "make-fetch-happen": "^11.1.1",
-                "minimatch": "^9.0.0",
+                "minimatch": "^9.0.3",
                 "minipass": "^5.0.0",
                 "minipass-pipeline": "^1.2.4",
                 "ms": "^2.1.2",
-                "node-gyp": "^9.3.1",
-                "nopt": "^7.1.0",
-                "npm-audit-report": "^4.0.0",
+                "node-gyp": "^9.4.0",
+                "nopt": "^7.2.0",
+                "npm-audit-report": "^5.0.0",
                 "npm-install-checks": "^6.1.1",
                 "npm-package-arg": "^10.1.0",
                 "npm-pick-manifest": "^8.0.1",
@@ -1811,16 +1802,16 @@
                 "npm-user-validate": "^2.0.0",
                 "npmlog": "^7.0.1",
                 "p-map": "^4.0.0",
-                "pacote": "^15.1.3",
+                "pacote": "^15.2.0",
                 "parse-conflict-json": "^3.0.1",
                 "proc-log": "^3.0.0",
                 "qrcode-terminal": "^0.12.0",
                 "read": "^2.1.0",
-                "read-package-json": "^6.0.3",
-                "read-package-json-fast": "^3.0.2",
-                "semver": "^7.5.1",
+                "semver": "^7.5.4",
+                "sigstore": "^1.7.0",
                 "ssri": "^10.0.4",
-                "tar": "^6.1.14",
+                "supports-color": "^9.4.0",
+                "tar": "^6.1.15",
                 "text-table": "~0.2.0",
                 "tiny-relative-date": "^1.3.0",
                 "treeverse": "^3.0.0",
@@ -1846,12 +1837,6 @@
                 "node": ">=0.1.90"
             }
         },
-        "node_modules/npm/node_modules/@gar/promisify": {
-            "version": "1.1.3",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT"
-        },
         "node_modules/npm/node_modules/@isaacs/cliui": {
             "version": "8.0.2",
             "dev": true,
@@ -1905,7 +1890,7 @@
             }
         },
         "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": {
-            "version": "7.0.1",
+            "version": "7.1.0",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
@@ -1926,7 +1911,7 @@
             "license": "ISC"
         },
         "node_modules/npm/node_modules/@npmcli/arborist": {
-            "version": "6.2.9",
+            "version": "6.3.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -1938,7 +1923,7 @@
                 "@npmcli/metavuln-calculator": "^5.0.0",
                 "@npmcli/name-from-folder": "^2.0.0",
                 "@npmcli/node-gyp": "^3.0.0",
-                "@npmcli/package-json": "^3.0.0",
+                "@npmcli/package-json": "^4.0.0",
                 "@npmcli/query": "^3.0.0",
                 "@npmcli/run-script": "^6.0.0",
                 "bin-links": "^4.0.1",
@@ -1973,12 +1958,13 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/config": {
-            "version": "6.1.7",
+            "version": "6.2.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
                 "@npmcli/map-workspaces": "^3.0.2",
+                "ci-info": "^3.8.0",
                 "ini": "^4.1.0",
                 "nopt": "^7.0.0",
                 "proc-log": "^3.0.0",
@@ -2015,7 +2001,7 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/git": {
-            "version": "4.0.4",
+            "version": "4.1.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -2079,19 +2065,6 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
-        "node_modules/npm/node_modules/@npmcli/move-file": {
-            "version": "2.0.1",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "dependencies": {
-                "mkdirp": "^1.0.4",
-                "rimraf": "^3.0.2"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
         "node_modules/npm/node_modules/@npmcli/name-from-folder": {
             "version": "2.0.0",
             "dev": true,
@@ -2111,15 +2084,18 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/package-json": {
-            "version": "3.1.0",
+            "version": "4.0.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
+                "@npmcli/git": "^4.1.0",
                 "glob": "^10.2.2",
+                "hosted-git-info": "^6.1.1",
                 "json-parse-even-better-errors": "^3.0.0",
                 "normalize-package-data": "^5.0.0",
-                "npm-normalize-package-bin": "^3.0.1"
+                "proc-log": "^3.0.0",
+                "semver": "^7.5.3"
             },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -2184,6 +2160,19 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
+        "node_modules/npm/node_modules/@sigstore/tuf": {
+            "version": "1.0.2",
+            "dev": true,
+            "inBundle": true,
+            "license": "Apache-2.0",
+            "dependencies": {
+                "@sigstore/protobuf-specs": "^0.1.0",
+                "tuf-js": "^1.1.7"
+            },
+            "engines": {
+                "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+            }
+        },
         "node_modules/npm/node_modules/@tootallnate/once": {
             "version": "2.0.0",
             "dev": true,
@@ -2351,7 +2340,7 @@
             "license": "MIT"
         },
         "node_modules/npm/node_modules/bin-links": {
-            "version": "4.0.1",
+            "version": "4.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -2417,7 +2406,7 @@
             }
         },
         "node_modules/npm/node_modules/cacache": {
-            "version": "17.1.2",
+            "version": "17.1.3",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -2440,16 +2429,12 @@
             }
         },
         "node_modules/npm/node_modules/chalk": {
-            "version": "4.1.2",
+            "version": "5.3.0",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
-            "dependencies": {
-                "ansi-styles": "^4.1.0",
-                "supports-color": "^7.1.0"
-            },
             "engines": {
-                "node": ">=10"
+                "node": "^12.17.0 || ^14.13 || >=16.0.0"
             },
             "funding": {
                 "url": "https://github.com/chalk/chalk?sponsor=1"
@@ -2759,6 +2744,12 @@
                 "node": ">=0.8.x"
             }
         },
+        "node_modules/npm/node_modules/exponential-backoff": {
+            "version": "3.1.1",
+            "dev": true,
+            "inBundle": true,
+            "license": "Apache-2.0"
+        },
         "node_modules/npm/node_modules/fastest-levenshtein": {
             "version": "1.0.16",
             "dev": true,
@@ -2828,15 +2819,15 @@
             }
         },
         "node_modules/npm/node_modules/glob": {
-            "version": "10.2.4",
+            "version": "10.2.7",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
                 "foreground-child": "^3.1.0",
                 "jackspeak": "^2.0.3",
-                "minimatch": "^9.0.0",
-                "minipass": "^5.0.0 || ^6.0.0",
+                "minimatch": "^9.0.1",
+                "minipass": "^5.0.0 || ^6.0.2",
                 "path-scurry": "^1.7.0"
             },
             "bin": {
@@ -2867,15 +2858,6 @@
                 "node": ">= 0.4.0"
             }
         },
-        "node_modules/npm/node_modules/has-flag": {
-            "version": "4.0.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=8"
-            }
-        },
         "node_modules/npm/node_modules/has-unicode": {
             "version": "2.0.1",
             "dev": true,
@@ -2999,12 +2981,6 @@
                 "node": ">=8"
             }
         },
-        "node_modules/npm/node_modules/infer-owner": {
-            "version": "1.0.4",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC"
-        },
         "node_modules/npm/node_modules/inflight": {
             "version": "1.0.6",
             "dev": true,
@@ -3022,7 +2998,7 @@
             "license": "ISC"
         },
         "node_modules/npm/node_modules/ini": {
-            "version": "4.1.0",
+            "version": "4.1.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -3076,7 +3052,7 @@
             }
         },
         "node_modules/npm/node_modules/is-core-module": {
-            "version": "2.12.0",
+            "version": "2.12.1",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
@@ -3109,7 +3085,7 @@
             "license": "ISC"
         },
         "node_modules/npm/node_modules/jackspeak": {
-            "version": "2.2.0",
+            "version": "2.2.1",
             "dev": true,
             "inBundle": true,
             "license": "BlueOak-1.0.0",
@@ -3179,12 +3155,12 @@
             }
         },
         "node_modules/npm/node_modules/libnpmdiff": {
-            "version": "5.0.17",
+            "version": "5.0.19",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
-                "@npmcli/arborist": "^6.2.9",
+                "@npmcli/arborist": "^6.3.0",
                 "@npmcli/disparity-colors": "^3.0.0",
                 "@npmcli/installed-package-contents": "^2.0.2",
                 "binary-extensions": "^2.2.0",
@@ -3199,14 +3175,13 @@
             }
         },
         "node_modules/npm/node_modules/libnpmexec": {
-            "version": "5.0.17",
+            "version": "6.0.3",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
-                "@npmcli/arborist": "^6.2.9",
+                "@npmcli/arborist": "^6.3.0",
                 "@npmcli/run-script": "^6.0.0",
-                "chalk": "^4.1.0",
                 "ci-info": "^3.7.1",
                 "npm-package-arg": "^10.1.0",
                 "npmlog": "^7.0.1",
@@ -3222,12 +3197,12 @@
             }
         },
         "node_modules/npm/node_modules/libnpmfund": {
-            "version": "4.0.17",
+            "version": "4.0.19",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
-                "@npmcli/arborist": "^6.2.9"
+                "@npmcli/arborist": "^6.3.0"
             },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -3260,12 +3235,12 @@
             }
         },
         "node_modules/npm/node_modules/libnpmpack": {
-            "version": "5.0.17",
+            "version": "5.0.19",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
-                "@npmcli/arborist": "^6.2.9",
+                "@npmcli/arborist": "^6.3.0",
                 "@npmcli/run-script": "^6.0.0",
                 "npm-package-arg": "^10.1.0",
                 "pacote": "^15.0.8"
@@ -3275,7 +3250,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmpublish": {
-            "version": "7.2.0",
+            "version": "7.5.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -3370,7 +3345,7 @@
             }
         },
         "node_modules/npm/node_modules/minimatch": {
-            "version": "9.0.0",
+            "version": "9.0.3",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -3590,15 +3565,16 @@
             }
         },
         "node_modules/npm/node_modules/node-gyp": {
-            "version": "9.3.1",
+            "version": "9.4.0",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
             "dependencies": {
                 "env-paths": "^2.2.0",
+                "exponential-backoff": "^3.1.1",
                 "glob": "^7.1.4",
                 "graceful-fs": "^4.2.6",
-                "make-fetch-happen": "^10.0.3",
+                "make-fetch-happen": "^11.0.3",
                 "nopt": "^6.0.0",
                 "npmlog": "^6.0.0",
                 "rimraf": "^3.0.2",
@@ -3613,19 +3589,6 @@
                 "node": "^12.13 || ^14.13 || >=16"
             }
         },
-        "node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs": {
-            "version": "2.1.2",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "@gar/promisify": "^1.1.3",
-                "semver": "^7.3.5"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
         "node_modules/npm/node_modules/node-gyp/node_modules/abbrev": {
             "version": "1.1.1",
             "dev": true,
@@ -3655,87 +3618,6 @@
                 "concat-map": "0.0.1"
             }
         },
-        "node_modules/npm/node_modules/node-gyp/node_modules/cacache": {
-            "version": "16.1.3",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "@npmcli/fs": "^2.1.0",
-                "@npmcli/move-file": "^2.0.0",
-                "chownr": "^2.0.0",
-                "fs-minipass": "^2.1.0",
-                "glob": "^8.0.1",
-                "infer-owner": "^1.0.4",
-                "lru-cache": "^7.7.1",
-                "minipass": "^3.1.6",
-                "minipass-collect": "^1.0.2",
-                "minipass-flush": "^1.0.5",
-                "minipass-pipeline": "^1.2.4",
-                "mkdirp": "^1.0.4",
-                "p-map": "^4.0.0",
-                "promise-inflight": "^1.0.1",
-                "rimraf": "^3.0.2",
-                "ssri": "^9.0.0",
-                "tar": "^6.1.11",
-                "unique-filename": "^2.0.0"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/brace-expansion": {
-            "version": "2.0.1",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "dependencies": {
-                "balanced-match": "^1.0.0"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/glob": {
-            "version": "8.1.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^5.0.1",
-                "once": "^1.3.0"
-            },
-            "engines": {
-                "node": ">=12"
-            },
-            "funding": {
-                "url": "https://github.com/sponsors/isaacs"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/cacache/node_modules/minimatch": {
-            "version": "5.1.6",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "brace-expansion": "^2.0.1"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/fs-minipass": {
-            "version": "2.1.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "minipass": "^3.0.0"
-            },
-            "engines": {
-                "node": ">= 8"
-            }
-        },
         "node_modules/npm/node_modules/node-gyp/node_modules/gauge": {
             "version": "4.0.4",
             "dev": true,
@@ -3775,33 +3657,6 @@
                 "url": "https://github.com/sponsors/isaacs"
             }
         },
-        "node_modules/npm/node_modules/node-gyp/node_modules/make-fetch-happen": {
-            "version": "10.2.1",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "agentkeepalive": "^4.2.1",
-                "cacache": "^16.1.0",
-                "http-cache-semantics": "^4.1.0",
-                "http-proxy-agent": "^5.0.0",
-                "https-proxy-agent": "^5.0.0",
-                "is-lambda": "^1.0.1",
-                "lru-cache": "^7.7.1",
-                "minipass": "^3.1.6",
-                "minipass-collect": "^1.0.2",
-                "minipass-fetch": "^2.0.3",
-                "minipass-flush": "^1.0.5",
-                "minipass-pipeline": "^1.2.4",
-                "negotiator": "^0.6.3",
-                "promise-retry": "^2.0.1",
-                "socks-proxy-agent": "^7.0.0",
-                "ssri": "^9.0.0"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
         "node_modules/npm/node_modules/node-gyp/node_modules/minimatch": {
             "version": "3.1.2",
             "dev": true,
@@ -3814,35 +3669,6 @@
                 "node": "*"
             }
         },
-        "node_modules/npm/node_modules/node-gyp/node_modules/minipass": {
-            "version": "3.3.6",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "yallist": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/minipass-fetch": {
-            "version": "2.1.2",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "dependencies": {
-                "minipass": "^3.1.6",
-                "minipass-sized": "^1.0.3",
-                "minizlib": "^2.1.2"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            },
-            "optionalDependencies": {
-                "encoding": "^0.1.13"
-            }
-        },
         "node_modules/npm/node_modules/node-gyp/node_modules/nopt": {
             "version": "6.0.0",
             "dev": true,
@@ -3893,42 +3719,6 @@
             "inBundle": true,
             "license": "ISC"
         },
-        "node_modules/npm/node_modules/node-gyp/node_modules/ssri": {
-            "version": "9.0.1",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "minipass": "^3.1.1"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/unique-filename": {
-            "version": "2.0.1",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "unique-slug": "^3.0.0"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
-        "node_modules/npm/node_modules/node-gyp/node_modules/unique-slug": {
-            "version": "3.0.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "imurmurhash": "^0.1.4"
-            },
-            "engines": {
-                "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
-            }
-        },
         "node_modules/npm/node_modules/node-gyp/node_modules/which": {
             "version": "2.0.2",
             "dev": true,
@@ -3945,7 +3735,7 @@
             }
         },
         "node_modules/npm/node_modules/nopt": {
-            "version": "7.1.0",
+            "version": "7.2.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -3975,13 +3765,10 @@
             }
         },
         "node_modules/npm/node_modules/npm-audit-report": {
-            "version": "4.0.0",
+            "version": "5.0.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
-            "dependencies": {
-                "chalk": "^4.0.0"
-            },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
@@ -4141,7 +3928,7 @@
             }
         },
         "node_modules/npm/node_modules/pacote": {
-            "version": "15.1.3",
+            "version": "15.2.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -4205,13 +3992,13 @@
             }
         },
         "node_modules/npm/node_modules/path-scurry": {
-            "version": "1.9.1",
+            "version": "1.9.2",
             "dev": true,
             "inBundle": true,
             "license": "BlueOak-1.0.0",
             "dependencies": {
                 "lru-cache": "^9.1.1",
-                "minipass": "^5.0.0 || ^6.0.0"
+                "minipass": "^5.0.0 || ^6.0.2"
             },
             "engines": {
                 "node": ">=16 || 14 >=14.17"
@@ -4339,7 +4126,7 @@
             }
         },
         "node_modules/npm/node_modules/read-package-json": {
-            "version": "6.0.3",
+            "version": "6.0.4",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -4448,8 +4235,22 @@
             }
         },
         "node_modules/npm/node_modules/safe-buffer": {
-            "version": "5.1.2",
+            "version": "5.2.1",
             "dev": true,
+            "funding": [
+                {
+                    "type": "github",
+                    "url": "https://github.com/sponsors/feross"
+                },
+                {
+                    "type": "patreon",
+                    "url": "https://www.patreon.com/feross"
+                },
+                {
+                    "type": "consulting",
+                    "url": "https://feross.org/support"
+                }
+            ],
             "inBundle": true,
             "license": "MIT"
         },
@@ -4461,7 +4262,7 @@
             "optional": true
         },
         "node_modules/npm/node_modules/semver": {
-            "version": "7.5.1",
+            "version": "7.5.4",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -4527,14 +4328,14 @@
             }
         },
         "node_modules/npm/node_modules/sigstore": {
-            "version": "1.5.2",
+            "version": "1.7.0",
             "dev": true,
             "inBundle": true,
             "license": "Apache-2.0",
             "dependencies": {
                 "@sigstore/protobuf-specs": "^0.1.0",
-                "make-fetch-happen": "^11.0.1",
-                "tuf-js": "^1.1.3"
+                "@sigstore/tuf": "^1.0.1",
+                "make-fetch-happen": "^11.0.1"
             },
             "bin": {
                 "sigstore": "bin/sigstore.js"
@@ -4626,12 +4427,12 @@
             }
         },
         "node_modules/npm/node_modules/string_decoder": {
-            "version": "1.1.1",
+            "version": "1.3.0",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
             "dependencies": {
-                "safe-buffer": "~5.1.0"
+                "safe-buffer": "~5.2.0"
             }
         },
         "node_modules/npm/node_modules/string-width": {
@@ -4689,19 +4490,19 @@
             }
         },
         "node_modules/npm/node_modules/supports-color": {
-            "version": "7.2.0",
+            "version": "9.4.0",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
-            "dependencies": {
-                "has-flag": "^4.0.0"
-            },
             "engines": {
-                "node": ">=8"
+                "node": ">=12"
+            },
+            "funding": {
+                "url": "https://github.com/chalk/supports-color?sponsor=1"
             }
         },
         "node_modules/npm/node_modules/tar": {
-            "version": "6.1.14",
+            "version": "6.1.15",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -4763,14 +4564,14 @@
             }
         },
         "node_modules/npm/node_modules/tuf-js": {
-            "version": "1.1.6",
+            "version": "1.1.7",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
             "dependencies": {
                 "@tufjs/models": "1.0.4",
                 "debug": "^4.3.4",
-                "make-fetch-happen": "^11.1.0"
+                "make-fetch-happen": "^11.1.1"
             },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -4950,7 +4751,7 @@
             }
         },
         "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": {
-            "version": "7.0.1",
+            "version": "7.1.0",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
@@ -5270,9 +5071,9 @@
             "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
         },
         "node_modules/semver": {
-            "version": "7.5.1",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
-            "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==",
+            "version": "7.5.4",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
+            "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
             "dependencies": {
                 "lru-cache": "^6.0.0"
             },
@@ -5352,24 +5153,15 @@
             }
         },
         "node_modules/simple-update-notifier": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz",
-            "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==",
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz",
+            "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==",
             "dev": true,
             "dependencies": {
-                "semver": "~7.0.0"
+                "semver": "^7.5.3"
             },
             "engines": {
-                "node": ">=8.10.0"
-            }
-        },
-        "node_modules/simple-update-notifier/node_modules/semver": {
-            "version": "7.0.0",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
-            "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
-            "dev": true,
-            "bin": {
-                "semver": "bin/semver.js"
+                "node": ">=10"
             }
         },
         "node_modules/sqlstring": {
diff --git a/ExpressAPI/package.json b/ExpressAPI/package.json
index 60207b678d0c7619644fa7422edf7a85d7913d76..033739129505cbb04ae90f47e8004a285db99c50 100644
--- a/ExpressAPI/package.json
+++ b/ExpressAPI/package.json
@@ -30,14 +30,14 @@
         "express-validator": "^7.0.1",
         "form-data"        : "^4.0.0",
         "helmet"           : "^7.0.0",
-        "hjson"            : "^3.2.2",
         "http-status-codes": "^2.2.0",
+        "json5"            : "^2.2.3",
         "jsonwebtoken"     : "^9.0.0",
         "knex"             : "^2.4.2",
         "morgan"           : "^1.10.0",
         "multer"           : "^1.4.5-lts.1",
         "mysql"            : "^2.18.1",
-        "node"             : "^20.2.0",
+        "node"             : "^20.5.0",
         "parse-link-header": "^2.0.0",
         "uuid"             : "^9.0.0",
         "winston"          : "^3.8.2"
@@ -47,17 +47,16 @@
         "@types/compression"      : "^1.7.2",
         "@types/cors"             : "^2.8.13",
         "@types/express"          : "^4.17.17",
-        "@types/hjson"            : "^2.4.3",
         "@types/jsonwebtoken"     : "^9.0.2",
         "@types/morgan"           : "^1.9.4",
         "@types/multer"           : "^1.4.7",
-        "@types/node"             : "^20.4.6",
+        "@types/node"             : "^20.4.7",
         "@types/parse-link-header": "^2.0.1",
         "@types/uuid"             : "^9.0.2",
-        "nodemon"                 : "^2.0.22",
+        "nodemon"                 : "^3.0.1",
         "prisma"                  : "^5.1.1",
         "ts-node"                 : "^10.9.1",
         "typescript"              : "^5.1.6",
-        "npm"                     : "^9.6.7"
+        "npm"                     : "^9.8.1"
     }
 }
diff --git a/ExpressAPI/src/routes/ExerciceRoutes.ts b/ExpressAPI/src/routes/ExerciceRoutes.ts
index 1300354945dde7391b4faf8502689f38498061d7..42cbff97a98872488819411b83f78f36e9c1b658 100644
--- a/ExpressAPI/src/routes/ExerciceRoutes.ts
+++ b/ExpressAPI/src/routes/ExerciceRoutes.ts
@@ -23,7 +23,7 @@ import GitlabTreeFile                 from '../shared/types/Gitlab/GitlabTreeFil
 import GitlabFile                     from '../shared/types/Gitlab/GitlabFile';
 import EnonceFile                     from '../shared/types/Dojo/EnonceFile';
 import GitlabTreeFileType             from '../shared/types/Gitlab/GitlabTreeFileType';
-import hjson                          from 'hjson';
+import JSON5                          from 'json5';
 
 
 class ExerciceRoutes implements RoutesManager {
@@ -149,7 +149,7 @@ class ExerciceRoutes implements RoutesManager {
             return file;
         }));
 
-        const dojoEnonceFile: EnonceFile = hjson.parse(atob(enonceHjsonFile.content)) as EnonceFile;
+        const dojoEnonceFile: EnonceFile = JSON5.parse(atob(enonceHjsonFile.content)) as EnonceFile;
 
         const immutablePaths = dojoEnonceFile.immutable.map(fileDescriptor => fileDescriptor.path);
 
diff --git a/ExpressAPI/src/shared b/ExpressAPI/src/shared
index 7d7227e748ce8d5475fee4a5a5fc2ced0c0ef5c3..4dc9da6a4b20987a1f0df47c884b6f2891f4e415 160000
--- a/ExpressAPI/src/shared
+++ b/ExpressAPI/src/shared
@@ -1 +1 @@
-Subproject commit 7d7227e748ce8d5475fee4a5a5fc2ced0c0ef5c3
+Subproject commit 4dc9da6a4b20987a1f0df47c884b6f2891f4e415