{ "name": "assignment-monitor", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "server": "tsx watch server/index.ts", "dev:all": "concurrently -n web,api -c blue,green \"npm:dev\" \"npm:server\"", "verify-backup": "tsx server/scripts/verifyBackupRoundtrip.ts", "build": "tsc -b && vite build", "lint": "eslint .", "preview": "vite preview" }, "dependencies": { "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.6.2", "dexie": "^4.0.11", "recharts": "^2.15.3", "express": "^4.21.2" }, "devDependencies": { "@eslint/js": "^9.25.0", "@tailwindcss/vite": "^4.1.10", "@types/express": "^4.17.21", "@types/node": "^22.10.5", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@vitejs/plugin-react": "^4.4.1", "concurrently": "^9.1.2", "eslint": "^9.25.0", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "tailwindcss": "^4.1.10", "tsx": "^4.19.2", "typescript": "~5.8.3", "vite": "^6.3.5", "vite-plugin-pwa": "^1.0.0" } }