{ "name": "gymflow-ai", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vite build", "preview": "vite preview", "dev:full": "npm-run-all --parallel dev \"dev --prefix server\"", "dev:full:bg": "npm-run-all --parallel dev \"dev --prefix server\" &", "prod:full": "npm-run-all --parallel preview server:prod", "server:prod": "npm run start:prod --prefix server", "server:test": "npm run start:test --prefix server", "test:full": "cross-env BACKEND_PORT=3201 npm-run-all --parallel dev server:test" }, "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@google/genai": "^1.30.0", "lucide-react": "^0.554.0", "npm-run-all": "^4.1.5", "playwright": "^1.57.0", "playwright-test": "^14.1.12", "react": "^19.2.0", "react-dom": "^19.2.0", "react-markdown": "^10.1.0", "react-router-dom": "^7.10.1", "recharts": "^3.4.1", "remark-gfm": "^4.0.1" }, "devDependencies": { "@playwright/test": "^1.57.0", "@types/node": "^22.14.0", "@vitejs/plugin-react": "^5.0.0", "autoprefixer": "^10.4.22", "concurrently": "^8.2.2", "cross-env": "^10.1.0", "postcss": "^8.5.6", "tailwindcss": "^3.4.17", "typescript": "~5.8.2", "vite": "^6.2.0" } }