{ "name": "@epicure/web", "version": "0.63.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "eslint", "typecheck": "tsc --noEmit", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage" }, "dependencies": { "@ai-sdk/anthropic": "^3.0.86", "@ai-sdk/openai": "^3.0.74", "@asteasolutions/zod-to-openapi": "^7.3.4", "@aws-sdk/client-s3": "^3.1085.0", "@aws-sdk/s3-presigned-post": "^3.1085.0", "@base-ui/react": "^1.6.0", "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@epicure/db": "workspace:*", "@hookform/resolvers": "^5.4.0", "@zxing/browser": "^0.2.1", "ai": "^6.0.209", "better-auth": "^1.6.20", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "diff": "^9.0.0", "drizzle-orm": "^0.45.2", "ioredis": "^5.11.1", "lucide-react": "^1.21.0", "next": "16.2.9", "next-intl": "^4.13.0", "next-themes": "^0.4.6", "nodemailer": "^9.0.1", "qrcode": "^1.5.4", "react": "19.2.4", "react-dom": "19.2.4", "react-hook-form": "^7.80.0", "react-markdown": "^10.1.0", "shadcn": "^4.11.0", "sonner": "^2.0.7", "tailwind-merge": "^3.6.0", "tw-animate-css": "^1.4.0", "undici": "^7.28.0", "web-push": "^3.6.7", "zod": "^3.25.76" }, "devDependencies": { "@tailwindcss/postcss": "^4", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/node": "^20.19.43", "@types/nodemailer": "^8.0.1", "@types/qrcode": "^1.5.6", "@types/react": "^19", "@types/react-dom": "^19", "@types/web-push": "^3.6.4", "@vitejs/plugin-react": "^6.0.3", "@vitest/coverage-v8": "^4.1.9", "eslint": "^9", "eslint-config-next": "16.2.9", "jsdom": "^29.1.1", "tailwindcss": "^4", "typescript": "^5", "vitest": "^4.1.9" } }