- Add Auth Context route role guards so doctors cannot directly enter template management, user management, or audit logs. - Add Audit Logs page, sidebar entry, frontend audit API client, and API client test. - Add backend audit log query endpoint with super/admin visibility rules and query filtering. - Extend PostgreSQL integration tests to cover audit log query permissions. - Move Playwright E2E away from localStorage seed data to real backend API login and seed helpers. - Add E2E coverage for route guards and audit log visibility. - Run Playwright backend on port 3100 and proxy Vite API requests there to avoid local port conflicts. - Make server:dev use the compiled NestJS server path, avoiding tsx parameter-property injection issues. - Update README, AGENTS, feature, testing, security, deployment, progress, API, backendization, and auth/user module docs.
72 lines
2.1 KiB
JSON
72 lines
2.1 KiB
JSON
{
|
|
"name": "react-example",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite --port=3001 --host=0.0.0.0",
|
|
"server:dev": "npm run server:build && node server/dist/main.js",
|
|
"server:build": "tsc -p server/tsconfig.json",
|
|
"server:start": "node server/dist/main.js",
|
|
"build": "vite build",
|
|
"preview": "vite preview",
|
|
"clean": "rm -rf dist",
|
|
"lint": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:e2e": "playwright test",
|
|
"prisma:generate": "prisma generate --schema server/prisma/schema.prisma",
|
|
"prisma:migrate": "prisma migrate dev --schema server/prisma/schema.prisma",
|
|
"prisma:seed": "prisma db seed --schema server/prisma/schema.prisma"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^11.1.19",
|
|
"@nestjs/config": "^4.0.4",
|
|
"@nestjs/core": "^11.1.19",
|
|
"@nestjs/platform-express": "^11.1.19",
|
|
"@prisma/adapter-pg": "^7.8.0",
|
|
"@prisma/client": "^7.8.0",
|
|
"@tailwindcss/vite": "^4.1.14",
|
|
"@vitejs/plugin-react": "^5.0.4",
|
|
"argon2": "^0.44.0",
|
|
"cookie-parser": "^1.4.7",
|
|
"diff": "^9.0.0",
|
|
"express": "^4.21.2",
|
|
"express-session": "^1.19.0",
|
|
"lucide-react": "^0.546.0",
|
|
"motion": "^12.23.24",
|
|
"pg": "^8.20.0",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-router-dom": "^7.14.1",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.2",
|
|
"sanitize-html": "^2.17.3",
|
|
"vite": "^6.2.0",
|
|
"ws": "^8.20.0",
|
|
"zod": "^4.4.1"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/testing": "^11.1.19",
|
|
"@playwright/test": "^1.59.1",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@types/cookie-parser": "^1.4.10",
|
|
"@types/express": "^4.17.21",
|
|
"@types/express-session": "^1.19.0",
|
|
"@types/node": "^22.14.0",
|
|
"@types/pg": "^8.20.0",
|
|
"@types/sanitize-html": "^2.16.1",
|
|
"@types/supertest": "^7.2.0",
|
|
"@types/ws": "^8.18.1",
|
|
"autoprefixer": "^10.4.21",
|
|
"jsdom": "^29.1.1",
|
|
"prisma": "^7.8.0",
|
|
"supertest": "^7.2.2",
|
|
"tailwindcss": "^4.1.14",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "~5.8.2",
|
|
"vite": "^6.2.0",
|
|
"vitest": "^4.1.5"
|
|
}
|
|
}
|