{ "name": "leakhub_convex", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "npm-run-all --parallel dev:frontend dev:backend", "dev:frontend": "vite --open", "dev:backend": "convex dev", "predev": "convex dev --until-success && convex dev --once --run-sh \"node setup.mjs --once\" && convex dashboard", "build": "tsc --noEmit && vite build", "lint": "tsc && eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", "deploy": "npm run build && npx wrangler deploy", "cf-typegen": "npx wrangler types" }, "dependencies": { "@convex-dev/auth": "^0.0.90", "@radix-ui/react-avatar": "^1.1.10", "@radix-ui/react-checkbox": "^1.3.3", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-slot": "^1.2.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "convex": "^1.28.0", "lucide-react": "^0.547.0", "react": "^19.0.0", "react-dom": "^19.0.0", "react-router-dom": "^7.9.4", "tailwind-merge": "^3.3.1" }, "devDependencies": { "@cloudflare/vite-plugin": "^1.13.17", "@convex-dev/eslint-plugin": "^1.0.0", "@eslint/js": "^9.21.0", "@tailwindcss/vite": "^4.1.16", "@types/node": "^22.18.12", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", "@vitejs/plugin-react": "^5.0.0", "dotenv": "^16.4.7", "eslint": "^9.21.0", "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^15.15.0", "npm-run-all": "^4.1.5", "prettier": "^3.5.3", "tailwindcss": "^4.1.16", "tw-animate-css": "^1.4.0", "typescript": "~5.7.2", "typescript-eslint": "^8.24.1", "vite": "^6.2.0", "wrangler": "^4.45.2" } }