| { | |
| "name": "life-k-line", | |
| "private": true, | |
| "version": "1.0.0", | |
| "type": "module", | |
| "scripts": { | |
| "dev": "concurrently -n server,client -c blue,green \"npm run dev:server\" \"npm run dev:client\"", | |
| "dev:client": "vite", | |
| "dev:server": "node server/index.js", | |
| "build": "vite build", | |
| "preview": "vite preview", | |
| "start": "node server/index.js", | |
| "generate-content": "node scripts/generate-content.js", | |
| "import-content": "node scripts/import-content.js", | |
| "seed-cases": "node scripts/seed-cases.js", | |
| "seed-knowledge": "node scripts/seed-knowledge.js", | |
| "test-apis": "node test-apis.js" | |
| }, | |
| "dependencies": { | |
| "bcryptjs": "^2.4.3", | |
| "better-sqlite3": "^12.5.0", | |
| "cookie-parser": "^1.4.6", | |
| "dotenv": "^16.4.5", | |
| "express": "^4.19.2", | |
| "framer-motion": "^12.23.26", | |
| "html2canvas": "^1.4.1", | |
| "ics": "^3.8.1", | |
| "jsonwebtoken": "^9.0.2", | |
| "lucide-react": "^0.561.0", | |
| "lunar-javascript": "^1.7.7", | |
| "nanoid": "^5.0.7", | |
| "node-cron": "^3.0.3", | |
| "node-fetch": "^3.3.2", | |
| "nodemailer": "^6.9.8", | |
| "qrcode.react": "^4.2.0", | |
| "react": "^19.0.0", | |
| "react-dom": "^19.0.0", | |
| "react-helmet-async": "^2.0.5", | |
| "react-router-dom": "^7.10.1", | |
| "recharts": "^2.12.7" | |
| }, | |
| "devDependencies": { | |
| "@types/react": "^19.0.0", | |
| "@types/react-dom": "^19.0.0", | |
| "@vitejs/plugin-react": "^4.2.1", | |
| "autoprefixer": "^10.4.19", | |
| "concurrently": "^9.0.1", | |
| "postcss": "^8.4.38", | |
| "rollup-plugin-visualizer": "^6.0.5", | |
| "tailwindcss": "^3.4.3", | |
| "typescript": "^5.2.2", | |
| "vite": "^5.2.0" | |
| } | |
| } | |