{
  "name": "web",
  "version": "1.0.0",
  "private": true,
  "license": "AGPL-3.0-only",
  "scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "nuxt generate",
    "lint:js": "eslint --ext \".js,.ts,.vue\" --ignore-path .gitignore .",
    "lint:style": "stylelint \"**/*.{css,scss,sass,html,vue}\" --ignore-path .gitignore",
    "lint:prettier": "prettier --check .",
    "lint": "yarn lint:js && yarn lint:style && yarn lint:prettier",
    "lintfix": "prettier --write --list-different . && yarn lint:js --fix && yarn lint:style --fix",
    "api:models": "npx swagger-typescript-api generate -p ..\\api\\docs\\swagger.json -o ./models -n api.ts --no-client",
    "test": "jest"
  },
  "lint-staged": {
    "*.{js,ts,vue}": "eslint --cache",
    "*.{css,scss,sass,html,vue}": "stylelint",
    "*.**": "prettier --check --ignore-unknown"
  },
  "dependencies": {
    "@mdi/js": "^7.4.47",
    "@nuxtjs/dotenv": "^1.4.2",
    "@nuxtjs/firebase": "^8.2.2",
    "@nuxtjs/sitemap": "^2.4.0",
    "chart.js": "^4.5.1",
    "chartjs-adapter-moment": "^1.0.1",
    "core-js": "^3.48.0",
    "date-fns": "^2.30.0",
    "dotenv": "^17.2.3",
    "firebase": "^10.14.1",
    "firebaseui": "^6.1.0",
    "jest-environment-jsdom": "^30.2.0",
    "libphonenumber-js": "^1.12.36",
    "moment": "^2.30.1",
    "nuxt": "^2.18.1",
    "nuxt-highlightjs": "^1.0.3",
    "pusher-js": "^8.4.0",
    "qrcode": "^1.5.0",
    "ufo": "^1.6.1",
    "vue": "^2.7.16",
    "vue-chartjs": "^5.3.3",
    "vue-class-component": "^7.2.6",
    "vue-glow": "^1.4.2",
    "vue-property-decorator": "^9.1.2",
    "vue-router": "^3.6.5",
    "vue-server-renderer": "2.7.16",
    "vue-template-compiler": "^2.7.16",
    "vuetify": "^2.7.2",
    "vuex": "^3.6.2",
    "webpack": "^5.104.1"
  },
  "devDependencies": {
    "@babel/eslint-parser": "^7.28.6",
    "@commitlint/cli": "^20.4.0",
    "@commitlint/config-conventional": "^20.4.0",
    "@nuxt/types": "^2.18.1",
    "@nuxt/typescript-build": "^3.0.2",
    "@nuxtjs/eslint-config-typescript": "^12.1.0",
    "@nuxtjs/eslint-module": "^4.1.0",
    "@nuxtjs/stylelint-module": "^5.2.0",
    "@nuxtjs/vuetify": "^1.12.3",
    "@types/qrcode": "^1.5.6",
    "@vue/test-utils": "^1.3.6",
    "axios": "^0.31.0",
    "babel-core": "7.0.0-bridge.0",
    "babel-jest": "^30.2.0",
    "eslint": "^8.57.1",
    "eslint-config-prettier": "^10.1.8",
    "eslint-plugin-nuxt": "^4.0.0",
    "eslint-plugin-vue": "^9.33.0",
    "highlight.js": "^11.11.1",
    "jest": "^30.2.0",
    "lint-staged": "^16.1.4",
    "node-fetch-native": "^1.6.7",
    "postcss-html": "^1.8.1",
    "prettier": "3.8.1",
    "stylelint": "^15.11.0",
    "stylelint-config-prettier": "^9.0.5",
    "stylelint-config-recommended-vue": "^1.5.0",
    "stylelint-config-standard": "^34.0.0",
    "ts-jest": "^29.4.6",
    "vue-client-only": "^2.1.0",
    "vue-jest": "^3.0.7",
    "vue-meta": "^2.4.0",
    "vue-no-ssr": "^1.1.1"
  }
}
