diff --git a/CHANGELOG.md b/CHANGELOG.md
index e50720ff721a8d8944a84da86489a0e3c3497cb6..1fdfe2d6bc24e1244fd7c367172db7e2267a1e1f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,7 +17,17 @@
 - No modifications / Keep major and minors versions in sync with all parts of the project
 -->
 
-## 3.2.0 (???)
+
+## 3.3.0 (???)
+
+### ✨ Feature
+- **CLI**: Show an information message when a new version of the CLI is available (and not required)
+
+### 🐛 Bugfix
+- Fix an error when providing template for assignment creation
+
+
+## 3.2.0 (2023-12-19)
 
 ### 🤏 Minor change
 - **Exercices**: Set names of students in exercise name in alphabetical order
diff --git a/ExpressAPI/package-lock.json b/ExpressAPI/package-lock.json
index 7f4321f0646fcdf72220861400cb3bf2dc221dc2..955714e441d76e13edddcaed9c0a654ea325212b 100644
--- a/ExpressAPI/package-lock.json
+++ b/ExpressAPI/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "dojo_backend_api",
-    "version": "3.2.0",
+    "version": "3.3.0",
     "lockfileVersion": 3,
     "requires": true,
     "packages": {
         "": {
             "name": "dojo_backend_api",
-            "version": "3.2.0",
+            "version": "3.3.0",
             "license": "AGPLv3",
             "dependencies": {
                 "@prisma/client": "^5.6.0",
@@ -71,9 +71,9 @@
             }
         },
         "node_modules/@babel/runtime": {
-            "version": "7.23.5",
-            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.5.tgz",
-            "integrity": "sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==",
+            "version": "7.23.8",
+            "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.8.tgz",
+            "integrity": "sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==",
             "dev": true,
             "dependencies": {
                 "regenerator-runtime": "^0.14.0"
@@ -128,9 +128,9 @@
             "dev": true
         },
         "node_modules/@emotion/unitless": {
-            "version": "0.8.1",
-            "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz",
-            "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==",
+            "version": "0.8.0",
+            "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
+            "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==",
             "dev": true
         },
         "node_modules/@eslint-community/eslint-utils": {
@@ -230,9 +230,9 @@
             }
         },
         "node_modules/@eslint/js": {
-            "version": "8.55.0",
-            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz",
-            "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==",
+            "version": "8.56.0",
+            "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz",
+            "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==",
             "dev": true,
             "peer": true,
             "engines": {
@@ -246,14 +246,14 @@
             "dev": true
         },
         "node_modules/@humanwhocodes/config-array": {
-            "version": "0.11.13",
-            "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz",
-            "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==",
+            "version": "0.11.14",
+            "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+            "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
             "dev": true,
             "peer": true,
             "dependencies": {
-                "@humanwhocodes/object-schema": "^2.0.1",
-                "debug": "^4.1.1",
+                "@humanwhocodes/object-schema": "^2.0.2",
+                "debug": "^4.3.1",
                 "minimatch": "^3.0.5"
             },
             "engines": {
@@ -299,9 +299,9 @@
             }
         },
         "node_modules/@humanwhocodes/object-schema": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz",
-            "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==",
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz",
+            "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==",
             "dev": true,
             "peer": true
         },
@@ -752,13 +752,10 @@
             }
         },
         "node_modules/@prisma/client": {
-            "version": "5.6.0",
-            "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.6.0.tgz",
-            "integrity": "sha512-mUDefQFa1wWqk4+JhKPYq8BdVoFk9NFMBXUI8jAkBfQTtgx8WPx02U2HB/XbAz3GSUJpeJOKJQtNvaAIDs6sug==",
+            "version": "5.8.0",
+            "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.8.0.tgz",
+            "integrity": "sha512-QxO6C4MaA/ysTIbC+EcAH1aX/YkpymhXtO6zPdk+FvA7+59tNibIYpd+7koPdViLg2iKES4ojsxWNUGNJaEcbA==",
             "hasInstallScript": true,
-            "dependencies": {
-                "@prisma/engines-version": "5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee"
-            },
             "engines": {
                 "node": ">=16.13"
             },
@@ -771,17 +768,50 @@
                 }
             }
         },
+        "node_modules/@prisma/debug": {
+            "version": "5.8.0",
+            "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.8.0.tgz",
+            "integrity": "sha512-ZqPpkvbovu/kQJ1bvy57NO4dw97fpQGcbQSCtsqlwSE1UNKJP75R3BKxdznk8ZPMY+GJdMRetWNv4oAvSbWn8Q==",
+            "devOptional": true
+        },
         "node_modules/@prisma/engines": {
-            "version": "5.6.0",
-            "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.6.0.tgz",
-            "integrity": "sha512-Mt2q+GNJpU2vFn6kif24oRSBQv1KOkYaterQsi0k2/lA+dLvhRX6Lm26gon6PYHwUM8/h8KRgXIUMU0PCLB6bw==",
+            "version": "5.8.0",
+            "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.8.0.tgz",
+            "integrity": "sha512-Qhqm9WWLujNEC13AuZlUO14SQ15tNLe5puaz+tOk7UqINqJ3PtqMmuSuzomiw2diGVqZ+HYiSQzlR3+pPucVHA==",
             "devOptional": true,
-            "hasInstallScript": true
+            "hasInstallScript": true,
+            "dependencies": {
+                "@prisma/debug": "5.8.0",
+                "@prisma/engines-version": "5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848",
+                "@prisma/fetch-engine": "5.8.0",
+                "@prisma/get-platform": "5.8.0"
+            }
         },
         "node_modules/@prisma/engines-version": {
-            "version": "5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee",
-            "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.6.0-32.e95e739751f42d8ca026f6b910f5a2dc5adeaeee.tgz",
-            "integrity": "sha512-UoFgbV1awGL/3wXuUK3GDaX2SolqczeeJ5b4FVec9tzeGbSWJboPSbT0psSrmgYAKiKnkOPFSLlH6+b+IyOwAw=="
+            "version": "5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848",
+            "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848.tgz",
+            "integrity": "sha512-cXcoVweYbnv8xRfkWq9oj8BECOdzHUazrSpYCa0ehp5TNz4l5Spa8jbq/VROCTzj3ZncH5D9Q2TmySYTOUeKlw==",
+            "devOptional": true
+        },
+        "node_modules/@prisma/fetch-engine": {
+            "version": "5.8.0",
+            "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.8.0.tgz",
+            "integrity": "sha512-1CAuE+JoYsPNggMEn6qk0zos06Uc9bYZBJ0VBPHD6R7REL05614koAbOCmn52IaYz3nobb7f25hqW6AY7rLkIw==",
+            "devOptional": true,
+            "dependencies": {
+                "@prisma/debug": "5.8.0",
+                "@prisma/engines-version": "5.8.0-37.0a83d8541752d7582de2ebc1ece46519ce72a848",
+                "@prisma/get-platform": "5.8.0"
+            }
+        },
+        "node_modules/@prisma/get-platform": {
+            "version": "5.8.0",
+            "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.8.0.tgz",
+            "integrity": "sha512-Nk3rhTFZ1LYkFZJnpSvQcLPCaBWgJQfteHII6UEENOOkYlmP0k3FuswND54tzzEr4qs39wOdV9pbXKX9U2lv7A==",
+            "devOptional": true,
+            "dependencies": {
+                "@prisma/debug": "5.8.0"
+            }
         },
         "node_modules/@redocly/ajv": {
             "version": "8.11.0",
@@ -800,12 +830,12 @@
             }
         },
         "node_modules/@redocly/cli": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-1.5.0.tgz",
-            "integrity": "sha512-2E6yhYIs/dj6pFM9ahzuyI4AzFOjmOK1dkwYCtTWT1w5kROlW4HVVgHrxnOIUupRDTD5TdScWSH28n2U1VivWQ==",
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/@redocly/cli/-/cli-1.6.0.tgz",
+            "integrity": "sha512-0naVFJGR2tVcpMIHSFRr2HAoyy70qMqDAP6kXcnOdkGkwLRJ8s/5n1STwsym/yZwNkhrt2M0cKT6KAMlTUeCeg==",
             "dev": true,
             "dependencies": {
-                "@redocly/openapi-core": "1.5.0",
+                "@redocly/openapi-core": "1.6.0",
                 "chokidar": "^3.5.1",
                 "colorette": "^1.2.0",
                 "core-js": "^3.32.1",
@@ -832,9 +862,9 @@
             }
         },
         "node_modules/@redocly/openapi-core": {
-            "version": "1.5.0",
-            "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.5.0.tgz",
-            "integrity": "sha512-AnDLoDl1+a7mZO4+lx0KG8zH04BQx4ez6yh403PuNl9/0ygbicPPc9QG/y0/0OImChOA+knKLpJazNFjzhOAeg==",
+            "version": "1.6.0",
+            "resolved": "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.6.0.tgz",
+            "integrity": "sha512-oao6Aey4peLKfagzWGb6N7OBI6CoDWEP4ka/XjrUNZw+UoKVVg3hVBXW4Vr3CJ2O8j6wEa2i+Lbb92VQQsoxwg==",
             "dev": true,
             "dependencies": {
                 "@redocly/ajv": "^8.11.0",
@@ -999,9 +1029,9 @@
             }
         },
         "node_modules/@types/node": {
-            "version": "20.10.3",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz",
-            "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==",
+            "version": "20.11.0",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.0.tgz",
+            "integrity": "sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==",
             "dev": true,
             "dependencies": {
                 "undici-types": "~5.26.4"
@@ -1014,9 +1044,9 @@
             "dev": true
         },
         "node_modules/@types/qs": {
-            "version": "6.9.10",
-            "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz",
-            "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==",
+            "version": "6.9.11",
+            "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
+            "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==",
             "dev": true
         },
         "node_modules/@types/range-parser": {
@@ -1053,9 +1083,9 @@
             }
         },
         "node_modules/@types/stylis": {
-            "version": "4.2.4",
-            "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.4.tgz",
-            "integrity": "sha512-36ZrGJ8fgtBr6nwNnuJ9jXIj+bn/pF6UoqmrQT7+Y99+tFFeHHsoR54+194dHdyhPjgbeoNz3Qru0oRt0l6ASQ==",
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz",
+            "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==",
             "dev": true
         },
         "node_modules/@types/swagger-ui-express": {
@@ -1089,16 +1119,16 @@
             "dev": true
         },
         "node_modules/@typescript-eslint/eslint-plugin": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz",
-            "integrity": "sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz",
+            "integrity": "sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/regexpp": "^4.5.1",
-                "@typescript-eslint/scope-manager": "6.13.2",
-                "@typescript-eslint/type-utils": "6.13.2",
-                "@typescript-eslint/utils": "6.13.2",
-                "@typescript-eslint/visitor-keys": "6.13.2",
+                "@typescript-eslint/scope-manager": "6.18.1",
+                "@typescript-eslint/type-utils": "6.18.1",
+                "@typescript-eslint/utils": "6.18.1",
+                "@typescript-eslint/visitor-keys": "6.18.1",
                 "debug": "^4.3.4",
                 "graphemer": "^1.4.0",
                 "ignore": "^5.2.4",
@@ -1124,15 +1154,15 @@
             }
         },
         "node_modules/@typescript-eslint/parser": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.13.2.tgz",
-            "integrity": "sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.18.1.tgz",
+            "integrity": "sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/scope-manager": "6.13.2",
-                "@typescript-eslint/types": "6.13.2",
-                "@typescript-eslint/typescript-estree": "6.13.2",
-                "@typescript-eslint/visitor-keys": "6.13.2",
+                "@typescript-eslint/scope-manager": "6.18.1",
+                "@typescript-eslint/types": "6.18.1",
+                "@typescript-eslint/typescript-estree": "6.18.1",
+                "@typescript-eslint/visitor-keys": "6.18.1",
                 "debug": "^4.3.4"
             },
             "engines": {
@@ -1152,13 +1182,13 @@
             }
         },
         "node_modules/@typescript-eslint/scope-manager": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz",
-            "integrity": "sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz",
+            "integrity": "sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "6.13.2",
-                "@typescript-eslint/visitor-keys": "6.13.2"
+                "@typescript-eslint/types": "6.18.1",
+                "@typescript-eslint/visitor-keys": "6.18.1"
             },
             "engines": {
                 "node": "^16.0.0 || >=18.0.0"
@@ -1169,13 +1199,13 @@
             }
         },
         "node_modules/@typescript-eslint/type-utils": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz",
-            "integrity": "sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz",
+            "integrity": "sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/typescript-estree": "6.13.2",
-                "@typescript-eslint/utils": "6.13.2",
+                "@typescript-eslint/typescript-estree": "6.18.1",
+                "@typescript-eslint/utils": "6.18.1",
                 "debug": "^4.3.4",
                 "ts-api-utils": "^1.0.1"
             },
@@ -1196,9 +1226,9 @@
             }
         },
         "node_modules/@typescript-eslint/types": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.13.2.tgz",
-            "integrity": "sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.18.1.tgz",
+            "integrity": "sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==",
             "dev": true,
             "engines": {
                 "node": "^16.0.0 || >=18.0.0"
@@ -1209,16 +1239,17 @@
             }
         },
         "node_modules/@typescript-eslint/typescript-estree": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz",
-            "integrity": "sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz",
+            "integrity": "sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "6.13.2",
-                "@typescript-eslint/visitor-keys": "6.13.2",
+                "@typescript-eslint/types": "6.18.1",
+                "@typescript-eslint/visitor-keys": "6.18.1",
                 "debug": "^4.3.4",
                 "globby": "^11.1.0",
                 "is-glob": "^4.0.3",
+                "minimatch": "9.0.3",
                 "semver": "^7.5.4",
                 "ts-api-utils": "^1.0.1"
             },
@@ -1235,18 +1266,33 @@
                 }
             }
         },
+        "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+            "version": "9.0.3",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+            "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+            "dev": true,
+            "dependencies": {
+                "brace-expansion": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=16 || 14 >=14.17"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/isaacs"
+            }
+        },
         "node_modules/@typescript-eslint/utils": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.13.2.tgz",
-            "integrity": "sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.18.1.tgz",
+            "integrity": "sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==",
             "dev": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.4.0",
                 "@types/json-schema": "^7.0.12",
                 "@types/semver": "^7.5.0",
-                "@typescript-eslint/scope-manager": "6.13.2",
-                "@typescript-eslint/types": "6.13.2",
-                "@typescript-eslint/typescript-estree": "6.13.2",
+                "@typescript-eslint/scope-manager": "6.18.1",
+                "@typescript-eslint/types": "6.18.1",
+                "@typescript-eslint/typescript-estree": "6.18.1",
                 "semver": "^7.5.4"
             },
             "engines": {
@@ -1261,12 +1307,12 @@
             }
         },
         "node_modules/@typescript-eslint/visitor-keys": {
-            "version": "6.13.2",
-            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz",
-            "integrity": "sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw==",
+            "version": "6.18.1",
+            "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz",
+            "integrity": "sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==",
             "dev": true,
             "dependencies": {
-                "@typescript-eslint/types": "6.13.2",
+                "@typescript-eslint/types": "6.18.1",
                 "eslint-visitor-keys": "^3.4.1"
             },
             "engines": {
@@ -1303,9 +1349,9 @@
             }
         },
         "node_modules/acorn": {
-            "version": "8.11.2",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
-            "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
+            "version": "8.11.3",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz",
+            "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==",
             "dev": true,
             "bin": {
                 "acorn": "bin/acorn"
@@ -1325,9 +1371,9 @@
             }
         },
         "node_modules/acorn-walk": {
-            "version": "8.3.0",
-            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz",
-            "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==",
+            "version": "8.3.1",
+            "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz",
+            "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==",
             "dev": true,
             "engines": {
                 "node": ">=0.4.0"
@@ -1466,11 +1512,11 @@
             }
         },
         "node_modules/axios": {
-            "version": "1.6.2",
-            "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz",
-            "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==",
+            "version": "1.6.5",
+            "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz",
+            "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==",
             "dependencies": {
-                "follow-redirects": "^1.15.0",
+                "follow-redirects": "^1.15.4",
                 "form-data": "^4.0.0",
                 "proxy-from-env": "^1.1.0"
             }
@@ -1805,9 +1851,9 @@
             "dev": true
         },
         "node_modules/classnames": {
-            "version": "2.3.2",
-            "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz",
-            "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==",
+            "version": "2.5.1",
+            "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+            "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
             "dev": true
         },
         "node_modules/clean-stack": {
@@ -2095,9 +2141,9 @@
             "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
         },
         "node_modules/core-js": {
-            "version": "3.33.3",
-            "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz",
-            "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==",
+            "version": "3.35.0",
+            "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz",
+            "integrity": "sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==",
             "dev": true,
             "hasInstallScript": true,
             "funding": {
@@ -2452,16 +2498,16 @@
             }
         },
         "node_modules/eslint": {
-            "version": "8.55.0",
-            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz",
-            "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==",
+            "version": "8.56.0",
+            "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz",
+            "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==",
             "dev": true,
             "peer": true,
             "dependencies": {
                 "@eslint-community/eslint-utils": "^4.2.0",
                 "@eslint-community/regexpp": "^4.6.1",
                 "@eslint/eslintrc": "^2.1.4",
-                "@eslint/js": "8.55.0",
+                "@eslint/js": "8.56.0",
                 "@humanwhocodes/config-array": "^0.11.13",
                 "@humanwhocodes/module-importer": "^1.0.1",
                 "@nodelib/fs.walk": "^1.2.8",
@@ -2845,9 +2891,9 @@
             }
         },
         "node_modules/fastq": {
-            "version": "1.15.0",
-            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
-            "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
+            "version": "1.16.0",
+            "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz",
+            "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==",
             "dev": true,
             "dependencies": {
                 "reusify": "^1.0.4"
@@ -3009,9 +3055,9 @@
             "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
         },
         "node_modules/follow-redirects": {
-            "version": "1.15.3",
-            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
-            "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
+            "version": "1.15.4",
+            "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz",
+            "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==",
             "funding": [
                 {
                     "type": "individual",
@@ -3112,12 +3158,13 @@
             }
         },
         "node_modules/genversion": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.1.1.tgz",
-            "integrity": "sha512-/H861PMsihhjgX2qqhTN8egM11V04imhA+3JRFY3jjPua2Sy1NqaqqQPjSP8rdM9jZoKpFhVj9g3Fs9XPCjBYQ==",
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/genversion/-/genversion-3.2.0.tgz",
+            "integrity": "sha512-OIYSX6XYA8PHecLDCTri30hadSZfAjZ8Iq1+BBDXqLWP4dRLuJNLoNjsSWtTpw97IccK2LDWzkEstxAB8GdN7g==",
             "dev": true,
             "dependencies": {
                 "commander": "^7.2.0",
+                "ejs": "^3.1.9",
                 "find-package": "^1.0.0"
             },
             "bin": {
@@ -3160,9 +3207,9 @@
             }
         },
         "node_modules/get-port-please": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.1.tgz",
-            "integrity": "sha512-3UBAyM3u4ZBVYDsxOQfJDxEa6XTbpBDrOjp4mf7ExFRt5BKs/QywQQiJsh2B+hxcZLSapWqCRvElUe8DnKcFHA==",
+            "version": "3.1.2",
+            "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz",
+            "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==",
             "dev": true
         },
         "node_modules/glob": {
@@ -3220,9 +3267,9 @@
             }
         },
         "node_modules/globals": {
-            "version": "13.23.0",
-            "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz",
-            "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==",
+            "version": "13.24.0",
+            "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+            "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
             "dev": true,
             "peer": true,
             "dependencies": {
@@ -4581,9 +4628,9 @@
             }
         },
         "node_modules/npm": {
-            "version": "10.2.4",
-            "resolved": "https://registry.npmjs.org/npm/-/npm-10.2.4.tgz",
-            "integrity": "sha512-umEuYneVEYO9KoEEI8n2sSGmNQeqco/3BSeacRlqIkCzw4E7XGtYSWMeJobxzr6hZ2n9cM+u5TsMTcC5bAgoWA==",
+            "version": "10.3.0",
+            "resolved": "https://registry.npmjs.org/npm/-/npm-10.3.0.tgz",
+            "integrity": "sha512-9u5GFc1UqI2DLlGI7QdjkpIaBs3UhTtY8KoCqYJK24gV/j/tByaI4BA4R7RkOc+ASqZMzFPKt4Pj2Z8JcGo//A==",
             "bundleDependencies": [
                 "@isaacs/string-locale-compare",
                 "@npmcli/arborist",
@@ -4665,12 +4712,12 @@
                 "@npmcli/fs": "^3.1.0",
                 "@npmcli/map-workspaces": "^3.0.4",
                 "@npmcli/package-json": "^5.0.0",
-                "@npmcli/promise-spawn": "^7.0.0",
-                "@npmcli/run-script": "^7.0.2",
+                "@npmcli/promise-spawn": "^7.0.1",
+                "@npmcli/run-script": "^7.0.3",
                 "@sigstore/tuf": "^2.2.0",
                 "abbrev": "^2.0.0",
                 "archy": "~1.0.0",
-                "cacache": "^18.0.0",
+                "cacache": "^18.0.2",
                 "chalk": "^5.3.0",
                 "ci-info": "^4.0.0",
                 "cli-columns": "^4.0.0",
@@ -4684,7 +4731,7 @@
                 "ini": "^4.1.1",
                 "init-package-json": "^6.0.0",
                 "is-cidr": "^5.0.3",
-                "json-parse-even-better-errors": "^3.0.0",
+                "json-parse-even-better-errors": "^3.0.1",
                 "libnpmaccess": "^8.0.1",
                 "libnpmdiff": "^6.0.3",
                 "libnpmexec": "^7.0.4",
@@ -4713,7 +4760,7 @@
                 "npm-user-validate": "^2.0.0",
                 "npmlog": "^7.0.1",
                 "p-map": "^4.0.0",
-                "pacote": "^17.0.4",
+                "pacote": "^17.0.5",
                 "parse-conflict-json": "^3.0.1",
                 "proc-log": "^3.0.0",
                 "qrcode-terminal": "^0.12.0",
@@ -4812,7 +4859,7 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/arborist": {
-            "version": "7.2.1",
+            "version": "7.3.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -4859,7 +4906,7 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/config": {
-            "version": "8.0.2",
+            "version": "8.1.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -4917,7 +4964,7 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/git": {
-            "version": "5.0.3",
+            "version": "5.0.4",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -5018,7 +5065,7 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/promise-spawn": {
-            "version": "7.0.0",
+            "version": "7.0.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -5042,7 +5089,7 @@
             }
         },
         "node_modules/npm/node_modules/@npmcli/run-script": {
-            "version": "7.0.2",
+            "version": "7.0.3",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -5146,18 +5193,6 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
-        "node_modules/npm/node_modules/abort-controller": {
-            "version": "3.0.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "dependencies": {
-                "event-target-shim": "^5.0.0"
-            },
-            "engines": {
-                "node": ">=6.5"
-            }
-        },
         "node_modules/npm/node_modules/agent-base": {
             "version": "7.1.0",
             "dev": true,
@@ -5220,14 +5255,10 @@
             "license": "MIT"
         },
         "node_modules/npm/node_modules/are-we-there-yet": {
-            "version": "4.0.1",
+            "version": "4.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
-            "dependencies": {
-                "delegates": "^1.0.0",
-                "readable-stream": "^4.1.0"
-            },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
@@ -5238,26 +5269,6 @@
             "inBundle": true,
             "license": "MIT"
         },
-        "node_modules/npm/node_modules/base64-js": {
-            "version": "1.5.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"
-        },
         "node_modules/npm/node_modules/bin-links": {
             "version": "4.0.3",
             "dev": true,
@@ -5291,30 +5302,6 @@
                 "balanced-match": "^1.0.0"
             }
         },
-        "node_modules/npm/node_modules/buffer": {
-            "version": "6.0.3",
-            "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",
-            "dependencies": {
-                "base64-js": "^1.3.1",
-                "ieee754": "^1.2.1"
-            }
-        },
         "node_modules/npm/node_modules/builtins": {
             "version": "5.0.1",
             "dev": true,
@@ -5325,7 +5312,7 @@
             }
         },
         "node_modules/npm/node_modules/cacache": {
-            "version": "18.0.0",
+            "version": "18.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -5335,7 +5322,7 @@
                 "glob": "^10.2.2",
                 "lru-cache": "^10.0.1",
                 "minipass": "^7.0.3",
-                "minipass-collect": "^1.0.2",
+                "minipass-collect": "^2.0.1",
                 "minipass-flush": "^1.0.5",
                 "minipass-pipeline": "^1.2.4",
                 "p-map": "^4.0.0",
@@ -5620,12 +5607,6 @@
                 "url": "https://github.com/sponsors/sindresorhus"
             }
         },
-        "node_modules/npm/node_modules/delegates": {
-            "version": "1.0.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT"
-        },
         "node_modules/npm/node_modules/diff": {
             "version": "5.1.0",
             "dev": true,
@@ -5672,24 +5653,6 @@
             "inBundle": true,
             "license": "MIT"
         },
-        "node_modules/npm/node_modules/event-target-shim": {
-            "version": "5.0.1",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/npm/node_modules/events": {
-            "version": "3.3.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">=0.8.x"
-            }
-        },
         "node_modules/npm/node_modules/exponential-backoff": {
             "version": "3.1.1",
             "dev": true,
@@ -5885,28 +5848,8 @@
                 "node": ">=0.10.0"
             }
         },
-        "node_modules/npm/node_modules/ieee754": {
-            "version": "1.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": "BSD-3-Clause"
-        },
         "node_modules/npm/node_modules/ignore-walk": {
-            "version": "6.0.3",
+            "version": "6.0.4",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6044,7 +5987,7 @@
             }
         },
         "node_modules/npm/node_modules/json-parse-even-better-errors": {
-            "version": "3.0.0",
+            "version": "3.0.1",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
@@ -6083,7 +6026,7 @@
             "license": "MIT"
         },
         "node_modules/npm/node_modules/libnpmaccess": {
-            "version": "8.0.1",
+            "version": "8.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6096,7 +6039,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmdiff": {
-            "version": "6.0.3",
+            "version": "6.0.5",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6116,7 +6059,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmexec": {
-            "version": "7.0.4",
+            "version": "7.0.6",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6138,7 +6081,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmfund": {
-            "version": "5.0.1",
+            "version": "5.0.3",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6150,7 +6093,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmhook": {
-            "version": "10.0.0",
+            "version": "10.0.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6163,7 +6106,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmorg": {
-            "version": "6.0.1",
+            "version": "6.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6176,7 +6119,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmpack": {
-            "version": "6.0.3",
+            "version": "6.0.5",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6191,7 +6134,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmpublish": {
-            "version": "9.0.2",
+            "version": "9.0.3",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6210,7 +6153,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmsearch": {
-            "version": "7.0.0",
+            "version": "7.0.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6222,7 +6165,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmteam": {
-            "version": "6.0.0",
+            "version": "6.0.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6235,7 +6178,7 @@
             }
         },
         "node_modules/npm/node_modules/libnpmversion": {
-            "version": "5.0.1",
+            "version": "5.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6251,13 +6194,10 @@
             }
         },
         "node_modules/npm/node_modules/lru-cache": {
-            "version": "10.0.2",
+            "version": "10.1.0",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
-            "dependencies": {
-                "semver": "^7.3.5"
-            },
             "engines": {
                 "node": "14 || >=16.14"
             }
@@ -6309,27 +6249,15 @@
             }
         },
         "node_modules/npm/node_modules/minipass-collect": {
-            "version": "1.0.2",
-            "dev": true,
-            "inBundle": true,
-            "license": "ISC",
-            "dependencies": {
-                "minipass": "^3.0.0"
-            },
-            "engines": {
-                "node": ">= 8"
-            }
-        },
-        "node_modules/npm/node_modules/minipass-collect/node_modules/minipass": {
-            "version": "3.3.6",
+            "version": "2.0.1",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
-                "yallist": "^4.0.0"
+                "minipass": "^7.0.3"
             },
             "engines": {
-                "node": ">=8"
+                "node": ">=16 || 14 >=14.17"
             }
         },
         "node_modules/npm/node_modules/minipass-fetch": {
@@ -6616,12 +6544,12 @@
             }
         },
         "node_modules/npm/node_modules/npm-packlist": {
-            "version": "8.0.0",
+            "version": "8.0.2",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
             "dependencies": {
-                "ignore-walk": "^6.0.0"
+                "ignore-walk": "^6.0.4"
             },
             "engines": {
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
@@ -6713,7 +6641,7 @@
             }
         },
         "node_modules/npm/node_modules/pacote": {
-            "version": "17.0.4",
+            "version": "17.0.5",
             "dev": true,
             "inBundle": true,
             "license": "ISC",
@@ -6784,7 +6712,7 @@
             }
         },
         "node_modules/npm/node_modules/postcss-selector-parser": {
-            "version": "6.0.13",
+            "version": "6.0.15",
             "dev": true,
             "inBundle": true,
             "license": "MIT",
@@ -6805,15 +6733,6 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
-        "node_modules/npm/node_modules/process": {
-            "version": "0.11.10",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "engines": {
-                "node": ">= 0.6.0"
-            }
-        },
         "node_modules/npm/node_modules/promise-all-reject-late": {
             "version": "1.0.1",
             "dev": true,
@@ -6920,22 +6839,6 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
-        "node_modules/npm/node_modules/readable-stream": {
-            "version": "4.4.2",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "dependencies": {
-                "abort-controller": "^3.0.0",
-                "buffer": "^6.0.3",
-                "events": "^3.3.0",
-                "process": "^0.11.10",
-                "string_decoder": "^1.3.0"
-            },
-            "engines": {
-                "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
-            }
-        },
         "node_modules/npm/node_modules/retry": {
             "version": "0.12.0",
             "dev": true,
@@ -6945,26 +6848,6 @@
                 "node": ">= 4"
             }
         },
-        "node_modules/npm/node_modules/safe-buffer": {
-            "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"
-        },
         "node_modules/npm/node_modules/safer-buffer": {
             "version": "2.1.2",
             "dev": true,
@@ -7135,15 +7018,6 @@
                 "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
             }
         },
-        "node_modules/npm/node_modules/string_decoder": {
-            "version": "1.3.0",
-            "dev": true,
-            "inBundle": true,
-            "license": "MIT",
-            "dependencies": {
-                "safe-buffer": "~5.2.0"
-            }
-        },
         "node_modules/npm/node_modules/string-width": {
             "version": "4.2.3",
             "dev": true,
@@ -7971,9 +7845,9 @@
             }
         },
         "node_modules/postcss": {
-            "version": "8.4.32",
-            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
-            "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
+            "version": "8.4.31",
+            "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
+            "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
             "dev": true,
             "funding": [
                 {
@@ -7990,7 +7864,7 @@
                 }
             ],
             "dependencies": {
-                "nanoid": "^3.3.7",
+                "nanoid": "^3.3.6",
                 "picocolors": "^1.0.0",
                 "source-map-js": "^1.0.2"
             },
@@ -8015,13 +7889,13 @@
             }
         },
         "node_modules/prisma": {
-            "version": "5.6.0",
-            "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.6.0.tgz",
-            "integrity": "sha512-EEaccku4ZGshdr2cthYHhf7iyvCcXqwJDvnoQRAJg5ge2Tzpv0e2BaMCp+CbbDUwoVTzwgOap9Zp+d4jFa2O9A==",
+            "version": "5.8.0",
+            "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.8.0.tgz",
+            "integrity": "sha512-hDKoEqPt2qEUTH5yGO3l27CBnPtwvte0CGMKrpCr9+/A919JghfqJ3qgCGgMbOwdkXUOzdho0RH9tyUF3UhpMw==",
             "devOptional": true,
             "hasInstallScript": true,
             "dependencies": {
-                "@prisma/engines": "5.6.0"
+                "@prisma/engines": "5.8.0"
             },
             "bin": {
                 "prisma": "build/index.js"
@@ -8303,9 +8177,9 @@
             }
         },
         "node_modules/regenerator-runtime": {
-            "version": "0.14.0",
-            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz",
-            "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==",
+            "version": "0.14.1",
+            "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+            "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
             "dev": true
         },
         "node_modules/require-directory": {
@@ -8794,9 +8668,9 @@
             }
         },
         "node_modules/streamx": {
-            "version": "2.15.5",
-            "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.5.tgz",
-            "integrity": "sha512-9thPGMkKC2GctCzyCUjME3yR03x2xNo0GPKGkRw2UMYN+gqWa9uqpyNWhmsNCutU5zHmkUum0LsCRQTXUgUCAg==",
+            "version": "2.15.6",
+            "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz",
+            "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==",
             "dependencies": {
                 "fast-fifo": "^1.1.0",
                 "queue-tick": "^1.0.1"
@@ -8850,20 +8724,20 @@
             }
         },
         "node_modules/styled-components": {
-            "version": "6.1.1",
-            "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.1.tgz",
-            "integrity": "sha512-cpZZP5RrKRIClBW5Eby4JM1wElLVP4NQrJbJ0h10TidTyJf4SIIwa3zLXOoPb4gJi8MsJ8mjq5mu2IrEhZIAcQ==",
+            "version": "6.1.8",
+            "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.8.tgz",
+            "integrity": "sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw==",
             "dev": true,
             "dependencies": {
-                "@emotion/is-prop-valid": "^1.2.1",
-                "@emotion/unitless": "^0.8.0",
-                "@types/stylis": "^4.0.2",
-                "css-to-react-native": "^3.2.0",
-                "csstype": "^3.1.2",
-                "postcss": "^8.4.31",
-                "shallowequal": "^1.1.0",
-                "stylis": "^4.3.0",
-                "tslib": "^2.5.0"
+                "@emotion/is-prop-valid": "1.2.1",
+                "@emotion/unitless": "0.8.0",
+                "@types/stylis": "4.2.0",
+                "css-to-react-native": "3.2.0",
+                "csstype": "3.1.2",
+                "postcss": "8.4.31",
+                "shallowequal": "1.1.0",
+                "stylis": "4.3.1",
+                "tslib": "2.5.0"
             },
             "engines": {
                 "node": ">= 16"
@@ -8877,10 +8751,16 @@
                 "react-dom": ">= 16.8.0"
             }
         },
+        "node_modules/styled-components/node_modules/tslib": {
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+            "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+            "dev": true
+        },
         "node_modules/stylis": {
-            "version": "4.3.0",
-            "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz",
-            "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==",
+            "version": "4.3.1",
+            "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz",
+            "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==",
             "dev": true
         },
         "node_modules/supports-color": {
@@ -8924,9 +8804,9 @@
             }
         },
         "node_modules/swagger-ui-dist": {
-            "version": "5.10.3",
-            "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.10.3.tgz",
-            "integrity": "sha512-fu3aozjxFWsmcO1vyt1q1Ji2kN7KlTd1vHy27E9WgPyXo9nrEzhQPqgxaAjbMsOmb8XFKNGo4Sa3Q+84Fh+pFw=="
+            "version": "5.11.0",
+            "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.11.0.tgz",
+            "integrity": "sha512-j0PIATqQSEFGOLmiJOJZj1X1Jt6bFIur3JpY7+ghliUnfZs0fpWDdHEkn9q7QUlBtKbkn6TepvSxTqnE8l3s0A=="
         },
         "node_modules/swagger-ui-express": {
             "version": "5.0.0",
@@ -9030,8 +8910,7 @@
             "version": "0.2.0",
             "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
             "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
-            "dev": true,
-            "peer": true
+            "dev": true
         },
         "node_modules/through": {
             "version": "2.3.8",
@@ -9110,9 +8989,9 @@
             }
         },
         "node_modules/ts-node": {
-            "version": "10.9.1",
-            "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
-            "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+            "version": "10.9.2",
+            "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+            "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
             "dev": true,
             "dependencies": {
                 "@cspotcode/source-map-support": "^0.8.0",
@@ -9213,9 +9092,9 @@
             "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
         },
         "node_modules/typescript": {
-            "version": "5.3.2",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz",
-            "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==",
+            "version": "5.3.3",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
+            "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
             "dev": true,
             "bin": {
                 "tsc": "bin/tsc",
diff --git a/ExpressAPI/package.json b/ExpressAPI/package.json
index d2e1db43a36aac6028c8580257ede4a577cbb5cb..6a7b21468969803fdd857e04f82de52e8237a8fd 100644
--- a/ExpressAPI/package.json
+++ b/ExpressAPI/package.json
@@ -1,7 +1,7 @@
 {
     "name"           : "dojo_backend_api",
     "description"    : "Backend API of the Dojo project",
-    "version"        : "3.2.0",
+    "version"        : "3.3.0",
     "license"        : "AGPLv3",
     "author"         : "Michaël Minelli <dojo@minelli.me>",
     "main"           : "dist/src/app.js",