{ "name": "florian", "version": "0.6.0", "private": true, "description": "FLORIAN — Feuerwehr-Verwaltungsplattform", "engines": { "node": ">=22" }, "scripts": { "dev": "next dev -p 3100", "build": "next build", "start": "next start -p 3100", "worker": "tsx --conditions=react-server src/worker/index.ts", "worker:dev": "tsx watch --conditions=react-server src/worker/index.ts", "lint": "next lint", "typecheck": "tsc --noEmit", "test": "vitest run", "test:watch": "vitest", "test:e2e": "playwright test", "db:generate": "prisma generate", "db:migrate": "prisma migrate deploy", "db:migrate:dev": "prisma migrate dev", "db:push": "prisma db push", "db:seed": "tsx prisma/seed.ts", "db:studio": "prisma studio", "screenshots": "tsx scripts/screenshots.ts", "icons": "tsx scripts/icons.ts" }, "dependencies": { "@prisma/client": "^6.16.2", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-checkbox": "^1.3.11", "@radix-ui/react-dialog": "^1.1.23", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-popover": "^1.1.23", "@radix-ui/react-select": "^2.3.7", "@radix-ui/react-separator": "^1.1.7", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.21", "@radix-ui/react-tooltip": "^1.2.16", "@tanstack/react-query": "^5.90.2", "@tanstack/react-table": "^9.2.4", "@trpc/client": "^11.6.0", "@trpc/react-query": "^11.6.0", "@trpc/server": "^11.6.0", "@zxing/browser": "^0.2.1", "@zxing/library": "^0.23.0", "bcryptjs": "^3.0.2", "bullmq": "^5.61.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "date-fns": "^4.1.0", "date-fns-tz": "^3.2.0", "dexie": "^4.4.5", "exceljs": "^4.4.0", "ioredis": "^5.8.1", "lucide-react": "^0.544.0", "minio": "^8.0.6", "next": "^15.5.4", "next-auth": "^5.0.0-beta.29", "next-themes": "^0.4.6", "papaparse": "^5.7.0", "qrcode": "^1.5.4", "react": "^19.1.1", "react-dom": "^19.1.1", "server-only": "^0.0.1", "superjson": "^2.2.6", "tailwind-merge": "^3.3.1", "zod": "^3.25.76" }, "devDependencies": { "@playwright/test": "^1.55.1", "@tailwindcss/postcss": "^4.1.13", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@types/node": "^22.18.6", "@types/papaparse": "^5.5.2", "@types/qrcode": "^1.5.6", "@types/react": "^19.1.13", "@types/react-dom": "^19.1.9", "@vitejs/plugin-react": "^5.0.3", "dotenv": "^17.4.2", "esbuild": "^0.25.10", "eslint": "^9.36.0", "eslint-config-next": "^15.5.4", "fake-indexeddb": "^6.2.5", "jsdom": "^27.0.0", "prisma": "^6.16.2", "tailwindcss": "^4.1.13", "tsx": "^4.20.6", "tw-animate-css": "^1.4.0", "typescript": "^5.9.2", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.2.4" }, "allowScripts": { "prisma": true, "@prisma/client": true, "@prisma/engines": true, "esbuild": true, "unrs-resolver": true, "msgpackr-extract": true } }