echos-ocr/package.json
Randall Stillwell d3e7374439 Add SaaS foundation: Auth.js, dashboard shell, org model, auto-assignment
Major architectural upgrade preparing Echo OCR for self-hosted SaaS deployment:

- Auth: Built-in Auth.js v5 with credentials + Authentik OIDC SSO, JWT sessions,
  middleware route protection, login/signup/setup pages, registration API
- UI: Dashboard layout with collapsible sidebar nav, AppShell wrapper, route
  groups for (dashboard) and (auth), new pages for events/people/reports
- Schema: Auth.js tables (Account, Session, VerificationToken), Organization,
  OrgMember, Location, CollectionDay, Invitation, SystemConfig, ApiKey models;
  proper User relations to ResponseCard/ActivityLog/Notification
- Permissions: Role hierarchy (owner/admin/editor/reviewer/viewer) with
  action-based permission map and requirePermission/requireAuth helpers
- Onboarding: Multi-step setup wizard for first-user bootstrap (account, org,
  location) with SystemConfig tracking
- Events: CollectionDay model with rrule support for recurring church services
- Auto-assign: Event-aware card assignment engine replacing getPreviousSunday()
- Migration: seed-migration.ts script for upgrading existing deployments

Made-with: Cursor
2026-04-14 23:59:38 -05:00

66 lines
1.8 KiB
JSON

{
"name": "echos-ocr",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "npx prisma generate && next build",
"start": "next start",
"lint": "eslint",
"db:migrate": "npx prisma migrate dev",
"db:push": "npx prisma db push",
"db:studio": "npx prisma studio",
"postinstall": "npx prisma generate"
},
"dependencies": {
"@ai-sdk/gateway": "^3.0.66",
"@ai-sdk/openai-compatible": "^2.0.35",
"@auth/prisma-adapter": "^2.11.2",
"@aws-sdk/client-s3": "^3.1005.0",
"@aws-sdk/s3-request-presigner": "^3.1005.0",
"@base-ui/react": "^1.2.0",
"@prisma/adapter-pg": "^7.4.2",
"@prisma/client": "^7.4.2",
"@tanstack/react-table": "^8.21.3",
"ai": "^6.0.116",
"bcryptjs": "^3.0.3",
"chokidar": "^5.0.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"date-fns": "^4.1.0",
"dotenv": "^17.3.1",
"imapflow": "^1.2.18",
"lucide-react": "^0.577.0",
"mailparser": "^3.9.6",
"next": "16.1.6",
"next-auth": "^5.0.0-beta.31",
"next-themes": "^0.4.6",
"pdf-lib": "^1.17.1",
"pdf2pic": "^3.2.0",
"pg": "^8.20.0",
"prisma": "^7.4.2",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"rrule": "^2.8.1",
"shadcn": "^4.0.2",
"sharp": "^0.34.5",
"sonner": "^2.0.7",
"tailwind-merge": "^3.5.0",
"tw-animate-css": "^1.4.0",
"zod": "^4.3.6"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/bcryptjs": "^2.4.6",
"@types/mailparser": "^3.4.6",
"@types/node": "^25.4.0",
"@types/pg": "^8.18.0",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.1.6",
"tailwindcss": "^4",
"typescript": "^5"
}
}