{ "name": "hair-keeper", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev -p 3000 --turbo", "dev:attach": "DEV_TERMINAL=nextdev;tmux new-session -A -s $DEV_TERMINAL\\; send-keys \"pnpm run dev\" ^M", "build": "next build", "start": "next start -p 3000", "lint": "eslint", "db:seed": "tsx prisma/seed.ts", "build:analyze": "ANALYZE=true next build" }, "dependencies": { "@ai-sdk/anthropic": "^2.0.29", "@ai-sdk/openai": "^2.0.52", "@ai-sdk/react": "^2.0.71", "@auth/prisma-adapter": "^2.10.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@headless-tree/core": "^1.5.1", "@headless-tree/react": "^1.5.1", "@hookform/resolvers": "^5.2.2", "@next/bundle-analyzer": "^15.5.6", "@prisma/client": "^6.15.0", "@radix-ui/react-alert-dialog": "^1.1.15", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-collapsible": "^1.1.12", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-direction": "^1.1.1", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-hover-card": "^1.1.15", "@radix-ui/react-label": "^2.1.7", "@radix-ui/react-popover": "^1.1.15", "@radix-ui/react-progress": "^1.1.7", "@radix-ui/react-radio-group": "^1.3.8", "@radix-ui/react-select": "^2.2.6", "@radix-ui/react-separator": "^1.1.7", "@radix-ui/react-slider": "^1.3.6", "@radix-ui/react-slot": "^1.2.3", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@radix-ui/react-use-controllable-state": "^1.2.2", "@radix-ui/react-visually-hidden": "^1.2.3", "@tanstack/react-query": "^5.87.1", "@tanstack/react-table": "^8.21.3", "@tanstack/react-virtual": "^3.13.12", "@trpc/client": "^11.5.1", "@trpc/next": "^11.5.1", "@trpc/react-query": "^11.5.1", "@trpc/server": "^11.5.1", "@types/dagre": "^0.7.53", "@types/pg": "^8.15.5", "@use-gesture/react": "^10.3.1", "@xyflow/react": "^12.8.6", "ai": "^5.0.71", "bcryptjs": "^3.0.2", "browser-image-compression": "^2.0.2", "bullmq": "^5.61.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "copy-to-clipboard": "^3.3.3", "dagre": "^0.8.5", "date-fns": "^4.1.0", "embla-carousel-react": "^8.6.0", "framer-motion": "^12.23.24", "ioredis": "^5.8.1", "lodash": "^4.17.21", "lucide-react": "^0.543.0", "minio": "^8.0.6", "motion": "^12.23.22", "nanoid": "^5.1.6", "next": "~15.4.0", "next-auth": "^4.24.11", "next-themes": "^0.4.6", "nuqs": "^2.6.0", "pg": "^8.16.3", "prism-react-renderer": "^2.4.1", "prisma": "^6.15.0", "radix-ui": "^1.4.3", "react": "~19.1.0", "react-day-picker": "^9.11.0", "react-dom": "~19.1.0", "react-dropzone": "^14.3.8", "react-hook-form": "^7.62.0", "recharts": "^3.2.0", "shiki": "^3.15.0", "sonner": "^2.0.7", "streamdown": "^1.4.0", "superjson": "^2.2.2", "tailwind-merge": "^3.3.1", "use-stick-to-bottom": "^1.1.1", "vaul": "^1.1.2", "zod": "^4.1.9" }, "devDependencies": { "@eslint/eslintrc": "^3", "@tailwindcss/postcss": "^4", "@types/bcryptjs": "^2.4.6", "@types/lodash": "^4.17.20", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", "eslint": "^9", "eslint-config-next": "15.5.2", "react-icons": "^5.5.0", "react-live": "^4.1.8", "shadcn": "^3.5.0", "tailwindcss": "^4", "tsx": "^4.20.5", "tw-animate-css": "^1.3.8", "typescript": "^5" } }