blob: 21dd86686d0c8582106d5cf604ec0e2544407277 [file]
{
"name": "custos-portal",
"version": "0.1.0",
"private": true,
"engines": {
"node": ">=22",
"pnpm": ">=9"
},
"packageManager": "pnpm@9.15.9",
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "biome lint .",
"format": "biome format --write .",
"typecheck": "tsc --noEmit",
"test": "vitest run --passWithNoTests",
"test:watch": "vitest",
"test:e2e": "playwright test",
"clean": "rm -rf .next dist coverage",
"gen:api": "tsx scripts/gen-api.mts",
"gen:api:check": "pnpm gen:api && git diff --quiet src/generated || (echo 'OpenAPI codegen drift — re-run pnpm gen:api' && exit 1)",
"verify": "pnpm lint && pnpm typecheck && pnpm test && pnpm gen:api:check && pnpm build"
},
"dependencies": {
"@base-ui/react": "^1.5.0",
"@casl/ability": "^7.0.0",
"@casl/react": "^7.0.0",
"@hookform/resolvers": "^5.4.0",
"@tanstack/react-query": "^5.100.11",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-react": "^1.16.0",
"msw": "^2.14.6",
"next": "15.5.18",
"next-auth": "5.0.0-beta.31",
"next-themes": "^0.4.6",
"react": "19.2.4",
"react-dom": "19.2.4",
"react-hook-form": "^7.76.0",
"react-json-view-lite": "^2.5.0",
"recharts": "^3.8.1",
"server-only": "^0.0.1",
"shadcn": "^4.8.0",
"sonner": "^2.0.7",
"tailwind-merge": "^3.6.0",
"tw-animate-css": "^1.4.0",
"vaul": "^1.1.2",
"zod": "^4.4.3"
},
"devDependencies": {
"@axe-core/playwright": "^4.11.3",
"@biomejs/biome": "1.9.4",
"@hey-api/openapi-ts": "^0.98.2",
"@playwright/test": "^1.60.0",
"@tailwindcss/postcss": "^4",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.2",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@vitejs/plugin-react": "^6.0.2",
"axe-core": "^4.11.4",
"jsdom": "^29.1.1",
"tailwindcss": "^4",
"tsx": "^4.22.4",
"typescript": "^5.9.3",
"vitest": "^4.1.7"
},
"msw": {
"workerDirectory": [
"public"
]
}
}