{ "name": "web", "type": "module", "private": true, "scripts": { "build": "nuxt build", "dev": "nuxt dev", "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare", "prepare": "cd .. && husky web/.husky", "api:models": "npx swagger-typescript-api generate -p ../api/docs/swagger.json -o ./shared/types -n api.ts --no-client", "lint:js": "eslint .", "lint:style": "stylelint \"**/*.{css,scss,sass,vue}\"", "lint:prettier": "prettier --check .", "lint": "pnpm lint:js && pnpm lint:style && pnpm lint:prettier", "lintfix": "prettier --write --list-different . && pnpm lint:js --fix && pnpm lint:style --fix", "test": "echo 'No tests configured yet'" }, "lint-staged": { "*.{js,ts,vue}": "eslint --cache", "*.{css,scss,sass,vue}": "stylelint", "*": "prettier --check --ignore-unknown" }, "dependencies": { "@mdi/js": "^7.4.47", "@nuxtjs/google-fonts": "^3.2.0", "@pinia/nuxt": "^0.11.3", "chart.js": "^4.5.1", "chartjs-adapter-moment": "^1.0.1", "date-fns": "^4.3.0", "firebase": "^12.13.0", "flag-icons": "^7.5.0", "highlight.js": "^11.11.1", "libphonenumber-js": "^1.13.3", "moment": "^2.30.1", "nuxt": "^4.4.6", "pinia": "^3.0.4", "prettier": "^3.8.4", "pusher-js": "^8.5.0", "qrcode": "^1.5.4", "sass": "^1.100.0", "v-phone-input": "^7.0.0", "vue": "^3.5.34", "vue-chartjs": "^5.3.3", "vue-router": "^5.0.7", "vuetify": "^4.0.7" }, "devDependencies": { "@commitlint/cli": "^21.0.2", "@commitlint/config-conventional": "^21.0.2", "@nuxt/eslint": "^1.16.0", "@types/qrcode": "^1.5.6", "eslint": "^10.5.0", "eslint-config-prettier": "^10.1.8", "husky": "^9.1.7", "lint-staged": "^17.0.8", "postcss-html": "^1.8.1", "stylelint": "^17.13.0", "stylelint-config-recommended-vue": "^1.6.1", "stylelint-config-standard": "^40.0.0", "typescript": "^5.9.3", "vuetify-nuxt-module": "^0.19.5" } }