{
  "name": "ff-admin",
  "version": "1.3.5",
  "description": "Feuerwehr/Verein Mitgliederverwaltung UI",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "run-p type-check \"build-only {@}\" --",
    "preview": "vite preview",
    "build-only": "vite build",
    "type-check": "vue-tsc --build --force",
    "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
    "format": "prettier --write src/",
    "bnp": "npm run build-only && npm run preview",
    "generate-pwa-assets": "pwa-assets-generator --preset minimal-2023 public/fw-wappen.png"
  },
  "repository": {
    "type": "git",
    "url": "https://forgejo.jk-effects.cloud/Ehrenamt/ff-admin.git"
  },
  "keywords": [
    "Feuerwehr"
  ],
  "author": "JK Effects",
  "license": "AGPL-3.0-only",
  "dependencies": {
    "@fullcalendar/core": "^6.1.15",
    "@fullcalendar/daygrid": "^6.1.15",
    "@fullcalendar/interaction": "^6.1.15",
    "@fullcalendar/timegrid": "^6.1.15",
    "@fullcalendar/vue3": "^6.1.15",
    "@headlessui/vue": "^1.7.23",
    "@heroicons/vue": "^2.1.5",
    "@tailwindcss/vite": "^4.1.3",
    "@vueup/vue-quill": "^1.2.0",
    "axios": "^1.7.9",
    "event-source-polyfill": "^1.0.31",
    "grapesjs": "^0.22.4",
    "grapesjs-preset-newsletter": "^1.0.2",
    "highlight.js": "^11.11.1",
    "jwt-decode": "^4.0.0",
    "lodash.clonedeep": "^4.5.0",
    "lodash.difference": "^4.5.0",
    "lodash.differencewith": "^4.5.0",
    "lodash.isequal": "^4.5.0",
    "markdown-it": "^14.1.0",
    "markdown-it-anchor": "^9.2.0",
    "markdown-it-prism": "^3.0.0",
    "nprogress": "^0.2.0",
    "pdf-dist": "^1.0.0",
    "pinia": "^3.0.2",
    "qrcode": "^1.5.3",
    "qs": "^6.11.2",
    "socket.io-client": "^4.5.0",
    "unplugin-vue-markdown": "^28.3.1",
    "uuid": "^11.1.0",
    "vue": "^3.4.29",
    "vue-qrcode-reader": "^5.7.1",
    "vue-router": "^4.3.3"
  },
  "devDependencies": {
    "@rushstack/eslint-patch": "^1.8.0",
    "@tailwindcss/postcss": "^4.1.3",
    "@tsconfig/node20": "^20.1.4",
    "@types/eslint": "~9.6.0",
    "@types/event-source-polyfill": "^1.0.5",
    "@types/lodash.clonedeep": "^4.5.9",
    "@types/lodash.difference": "^4.5.9",
    "@types/lodash.differencewith": "^4.5.9",
    "@types/lodash.isequal": "^4.5.8",
    "@types/markdown-it": "^14.1.2",
    "@types/node": "^22.14.0",
    "@types/nprogress": "^0.2.0",
    "@types/qrcode": "^1.5.5",
    "@types/qs": "^6.9.11",
    "@types/uuid": "^10.0.0",
    "@vite-pwa/assets-generator": "^1.0.0",
    "@vitejs/plugin-vue": "^5.0.5",
    "@vue/eslint-config-prettier": "^10.2.0",
    "@vue/eslint-config-typescript": "^14.5.0",
    "@vue/tsconfig": "^0.7.0",
    "eslint": "^9.24.0",
    "eslint-plugin-vue": "^10.0.0",
    "npm-run-all2": "^7.0.2",
    "prettier": "^3.2.5",
    "tailwindcss": "^4.1.3",
    "typescript": "^5.8.3",
    "vite": "^6.2.6",
    "vite-plugin-pwa": "^1.0.0",
    "vite-plugin-vue-devtools": "^7.6.8",
    "vue-tsc": "^2.0.21"
  }
}