{ "name": "roo-code-cloud", "private": true, "scripts": { "lint": "eslint .", "check-types": "tsc --noEmit --pretty", "test": "vitest run", "test:e2e": "playwright test", "dev:spotlight": "npx @spotlightjs/spotlight", "dev:next": "next dev --turbopack", "dev": "run-p dev:*", "build": "next build", "start": "next start", "build-stats": "cross-env ANALYZE=true pnpm run build", "clean": "rimraf .next out coverage", "db:generate": "dotenvx run -f .env.development -- drizzle-kit generate", "db:migrate": "dotenvx run -f .env.development -- drizzle-kit migrate", "db:studio": "dotenvx run -f .env.development -- drizzle-kit studio", "storybook": "storybook dev -p 6006", "storybook:build": "storybook build", "storybook:serve": "http-server storybook-static --port 6006 --silent", "serve-storybook": "run-s storybook:*", "test-storybook:ci": "start-server-and-test serve-storybook http://127.0.0.1:6006 test-storybook", "prepare": "husky" }, "dependencies": { "@clerk/localizations": "^3.14.2", "@clerk/nextjs": "^6.18.3", "@clerk/themes": "^2.1.36", "@clickhouse/client": "^1.11.1", "@hookform/resolvers": "^5.0.1", "@logtail/pino": "^0.5.2", "@radix-ui/react-accordion": "^1.2.1", "@radix-ui/react-checkbox": "^1.3.1", "@radix-ui/react-dropdown-menu": "^2.1.14", "@radix-ui/react-icons": "^1.3.2", "@radix-ui/react-label": "^2.1.0", "@radix-ui/react-separator": "^1.1.6", "@radix-ui/react-slider": "^1.3.4", "@radix-ui/react-slot": "^1.2.2", "@radix-ui/react-toast": "^1.2.13", "@radix-ui/react-tooltip": "^1.1.3", "@sentry/nextjs": "^9.17.0", "@spotlightjs/spotlight": "^2.5.0", "@t3-oss/env-nextjs": "^0.13.4", "@tailwindcss/postcss": "^4.1.6", "@tanstack/react-table": "^8.20.5", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "drizzle-orm": "^0.43.1", "lucide-react": "^0.509.0", "next": "^15.3.2", "next-intl": "^4.1.0", "next-themes": "^0.4.6", "pg": "^8.13.0", "pino": "^9.5.0", "pino-pretty": "^13.0.0", "prettier": "^3.5.3", "react": "^19.1.0", "react-dom": "^19.1.0", "react-hook-form": "^7.53.0", "stripe": "^18.1.0", "tailwind-merge": "^3.3.0", "uuid": "^11.1.0", "zod": "^3.23.8" }, "devDependencies": { "@clerk/testing": "^1.3.11", "@dotenvx/dotenvx": "^1.43.0", "@eslint/js": "^9.26.0", "@next/bundle-analyzer": "^15.3.2", "@next/eslint-plugin-next": "^15.3.2", "@percy/cli": "1.30.10", "@percy/playwright": "^1.0.6", "@playwright/test": "^1.48.1", "@storybook/addon-essentials": "^8.3.5", "@storybook/addon-interactions": "^8.3.5", "@storybook/addon-links": "^8.3.5", "@storybook/addon-onboarding": "^8.3.5", "@storybook/blocks": "^8.3.5", "@storybook/nextjs": "^8.3.5", "@storybook/react": "^8.3.5", "@storybook/test": "^8.3.5", "@storybook/test-runner": "^0.22.0", "@testing-library/jest-dom": "^6.6.1", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", "@types/node": "^22.7.6", "@types/pg": "^8.11.10", "@types/react": "^19.1.3", "@vitejs/plugin-react": "^4.3.2", "@vitest/coverage-v8": "^3.1.3", "@vitest/expect": "^3.1.3", "autoprefixer": "^10.4.20", "cross-env": "^7.0.3", "drizzle-kit": "^0.31.1", "eslint": "^9.26.0", "eslint-config-prettier": "^10.1.5", "eslint-plugin-only-warn": "^1.1.0", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-turbo": "^2.5.3", "globals": "^16.1.0", "http-server": "^14.1.1", "husky": "^9.1.6", "import-in-the-middle": "^1.13.1", "jsdom": "^26.1.0", "lint-staged": "^16.0.0", "npm-run-all": "^4.1.5", "postcss": "^8.5.3", "require-in-the-middle": "^7.5.2", "rimraf": "^6.0.1", "start-server-and-test": "^2.0.8", "storybook": "^8.3.5", "tailwindcss": "^4.1.6", "tailwindcss-animate": "^1.0.7", "tsx": "^4.19.1", "tw-animate-css": "^1.2.9", "typescript": "^5.6.3", "typescript-eslint": "^8.32.0", "vite-tsconfig-paths": "^5.0.1", "vitest": "^3.1.3", "vitest-fail-on-console": "^0.7.1" }, "lint-staged": { "*.{js,jsx,ts,tsx,json,css,md}": [ "prettier --write" ], "src/**/*.{ts,tsx}": [ "npx eslint --max-warnings=0 --fix" ] } }