diff --git a/frontend/nuxt.config.ts b/frontend/nuxt.config.ts index 96b8e99..d7bed85 100644 --- a/frontend/nuxt.config.ts +++ b/frontend/nuxt.config.ts @@ -33,4 +33,9 @@ export default defineNuxtConfig({ }, redirectIfAuthenticated: true }, + + typescript: { + strict: true, + typeCheck: true, + } }); \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 042dff6..366ca89 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -13,6 +13,10 @@ "vue": "^3.5.22", "vue-router": "^4.5.1", "vuetify-nuxt-module": "^0.18.8" + }, + "devDependencies": { + "typescript": "^5.9.3", + "vue-tsc": "^3.1.3" } }, "node_modules/@antfu/utils": { @@ -3268,6 +3272,18 @@ "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", "license": "MIT" }, + "node_modules/@volar/typescript": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.23", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, "node_modules/@vue-macros/common": { "version": "3.0.0-beta.16", "resolved": "https://registry.npmjs.org/@vue-macros/common/-/common-3.0.0-beta.16.tgz", @@ -3461,9 +3477,9 @@ } }, "node_modules/@vue/language-core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.1.1.tgz", - "integrity": "sha512-qjMY3Q+hUCjdH+jLrQapqgpsJ0rd/2mAY02lZoHG3VFJZZZKLjAlV+Oo9QmWIT4jh8+Rx8RUGUi++d7T9Wb6Mw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.1.3.tgz", + "integrity": "sha512-KpR1F/eGAG9D1RZ0/T6zWJs6dh/pRLfY5WupecyYKJ1fjVmDMgTPw9wXmKv2rBjo4zCJiOSiyB8BDP1OUwpMEA==", "license": "MIT", "dependencies": { "@volar/language-core": "2.4.23", @@ -9857,6 +9873,20 @@ "integrity": "sha512-wTk4DH3cxwk196uGLK/E9pE45aLfeKJacKmcEgEOA/q5dnPGNxXt0cfYdFxb57L+sEpf1oJH4Dnx/pnRcku9jg==", "license": "MIT" }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/ufo": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", @@ -10645,6 +10675,23 @@ "vue": "^3.2.0" } }, + "node_modules/vue-tsc": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.1.3.tgz", + "integrity": "sha512-StMNfZHwPIXQgY3KxPKM0Jsoc8b46mDV3Fn2UlHCBIwRJApjqrSwqeMYgWf0zpN+g857y74pv7GWuBm+UqQe1w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.1.3" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, "node_modules/vuetify": { "version": "3.10.5", "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.10.5.tgz", diff --git a/frontend/package.json b/frontend/package.json index 7416944..40cec08 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -16,5 +16,9 @@ "vue": "^3.5.22", "vue-router": "^4.5.1", "vuetify-nuxt-module": "^0.18.8" + }, + "devDependencies": { + "typescript": "^5.9.3", + "vue-tsc": "^3.1.3" } } diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index 307b213..9c9f3de 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -14,5 +14,9 @@ { "path": "./.nuxt/tsconfig.node.json" } - ] -} + ], + "compilerOptions": { + "strict": true, + "strictNullChecks": true, + } +} \ No newline at end of file