{ "name": "dashboard", "type": "module", "engines": { "node": ">=24 <25" }, "license": "Apache-2.0", "packageManager": "pnpm@12.11.2", "scripts": { "dev": "react-router dev", "mock": "HTTPS=false MOCK_DATA=1 NEXT_PUBLIC_MOCK_DATA=1 ANALYTICS_PUBLIC_ORIGIN=https://dashboard.example react-router dev", "build": "pnpm run build:client && pnpm run build:server && pnpm run perf:bundle", "start": "node server/index.mjs", "lint": "eslint .", "typecheck": "tsc --noEmit", "test": "vitest run", "license:check": "node scripts/check-licenses.mjs", "build:client": "RR_SKIP_SSR=1 NODE_OPTIONS=\"--max-old-space-size=512 --max-semi-space-size=8\" react-router build", "build:server": "RR_SKIP_CLIENT=1 NODE_OPTIONS=\"--max-old-space-size=192 --max-semi-space-size=8\" react-router build", "test:e2e": "playwright test", "app-store:repair-coverage": "tsx scripts/repair-app-store-coverage.ts", "perf:query-plane": "node scripts/query-plane-perf.mjs", "perf:compression": "node scripts/check-compression.mjs", "perf:bundle": "node scripts/bundle-budget.mjs", "perf:baseline:summary": "node scripts/summarize-network-baseline.mjs" }, "dependencies": { "@ai-sdk/openai": "^4.0.46", "@chenglou/pretext": "^0.0.8", "@radix-ui/react-alert-dialog": "^1.1.23", "@radix-ui/react-avatar": "^1.2.6", "@radix-ui/react-checkbox": "^1.3.11", "@radix-ui/react-collapsible": "^1.1.20", "@radix-ui/react-dialog": "^1.1.23", "@radix-ui/react-dropdown-menu": "^2.1.24", "@radix-ui/react-label": "^2.1.15", "@radix-ui/react-popover": "^1.1.23", "@radix-ui/react-scroll-area": "^1.2.18", "@radix-ui/react-select": "^2.3.7", "@radix-ui/react-separator": "^1.1.15", "@radix-ui/react-slot": "^1.3.3", "@radix-ui/react-switch": "^1.3.7", "@radix-ui/react-tabs": "^1.1.21", "@radix-ui/react-tooltip": "^1.2.16", "@react-router/node": "7.18.4", "@tanstack/react-query": "^5.101.2", "ai": "^7.0.77", "argon2": "^0.44.0", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "drizzle-orm": "^0.45.2", "graphql": "^17.0.2", "graphql-yoga": "^5.24.6", "i18next": "^26.3.4", "i18next-browser-languagedetector": "^8.2.1", "isbot": "^5", "jose": "^6.2.3", "lodash": "^4.17.21", "pg": "8.21.0", "react": "^19.2.7", "react-dom": "^19.2.7", "react-i18next": "^17.0.8", "react-router": "7.18.4", "sonner": "^2.0.8", "tailwind-merge": "^3.6.0", "tw-animate-css": "^1.4.0", "twitter-api-v2": "^1.18.2", "twitter-openapi-typescript": "^0.0.56", "ua-parser-js": "^1.0.41", "zod": "^4.4.3" }, "devDependencies": { "@eslint/js": "^9.39.5", "@playwright/test": "^1.63.0", "@react-router/dev": "7.18.4", "@tailwindcss/postcss": "^4.3.3", "@tailwindcss/vite": "^4.3.3", "@types/lodash": "^4.17.0", "@types/node": "^26.1.0", "@types/pg": "8.20.0", "@types/react": "^19.2.17", "@types/react-dom": "^19.2.3", "drizzle-kit": "^0.31.10", "eslint": "^9.39.5", "eslint-plugin-react-hooks": "^6.0.0", "lucide-react": "^1.17.0", "recharts": "^3.9.2", "tailwindcss": "^4.3.2", "tsx": "^4.23.0", "typescript": "^5.0.0", "typescript-eslint": "^8.59.2", "vite": "8.3.5", "vitest": "^4.1.12" } }