{ "name": "tesla-roadtrip", "version": "0.1.0", "description": "AI-powered conversational road trip planner for Tesla owners. Chat with Grok on the left, live interactive map + itinerary on the right.", "private": true, "type": "module", "scripts": { "dev": "concurrently -n \"BACKEND,FRONTEND\" -c \"cyan,green\" \"npm:dev:server\" \"npm:dev:client\"", "dev:server": "tsx watch server/index.ts", "dev:client": "npm --prefix client run dev", "build": "npm --prefix client run build && tsc -p tsconfig.json", "start": "node dist/server/index.js", "test": "vitest run", "typecheck": "tsc --noEmit", "lint": "eslint .", "lint:fix": "eslint . --fix", "db:generate": "prisma generate", "db:migrate": "atlas migrate apply --env dev", "db:seed": "tsx prisma/seed.ts", "prepare": "husky || true" }, "dependencies": { "@prisma/client": "^7.4.0", "@tonycodes/auth-express": "^1.4.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^5.0.1", "helmet": "^7.1.0", "pino": "^10.3.1", "pino-pretty": "^13.1.3", "zod": "^3.22.4" }, "devDependencies": { "@playwright/test": "^1.60.0", "@types/cookie-parser": "^1.4.6", "@types/cors": "^2.8.17", "@types/express": "^5.0.0", "@types/node": "^20.10.0", "@vitest/coverage-v8": "^1.6.0", "concurrently": "^8.2.2", "eslint": "^9.0.0", "husky": "^9.0.0", "lint-staged": "^15.0.0", "prettier": "^3.2.0", "prisma": "^7.4.0", "tsx": "^4.6.2", "typescript": "^5.3.2", "vitest": "^1.6.0" }, "lint-staged": { "*.{ts,tsx}": [ "prettier --write", "eslint --fix" ] } }