Photo Management (per specs/photo-management.md): - Sharp integration for 3-size compression (thumb/medium/full) - WebP output with 80-90% quality - Client-side compression with browser-image-compression - PhotoUpload component with camera/drag-drop support - Upload API with bulk support and stats endpoint Testing: - Backend: Jest tests for all major API endpoints - Frontend: Vitest tests for utilities and API clients - CI: Updated Forgejo workflow for test execution Specs (100% coverage): - visitor-management.md (Phase 8) - messaging.md (Phase 9) - audit-and-documents.md (Phase 10) - accessibility-i18n.md (Phase 11) - hardware-integration.md (Phase 12) - advanced-features.md (Phase 13) Documentation: - OpenAPI 3.0 spec (docs/openapi.yaml) - All endpoints documented with schemas
39 lines
No EOL
942 B
JSON
39 lines
No EOL
942 B
JSON
{
|
|
"name": "ca-grow-ops-backend",
|
|
"version": "1.0.0",
|
|
"main": "dist/server.js",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "node dist/server.js",
|
|
"dev": "ts-node-dev --transpile-only src/server.ts",
|
|
"test": "jest",
|
|
"lint": "eslint src/**/*.ts"
|
|
},
|
|
"prisma": {
|
|
"seed": "node prisma/seed.js"
|
|
},
|
|
"dependencies": {
|
|
"@fastify/jwt": "^7.2.4",
|
|
"@fastify/multipart": "^8.0.0",
|
|
"@prisma/client": "^5.7.0",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/jsonwebtoken": "^9.0.10",
|
|
"bcrypt": "^6.0.0",
|
|
"dotenv": "^16.3.1",
|
|
"fastify": "^4.25.0",
|
|
"fastify-plugin": "^4.5.0",
|
|
"jsonwebtoken": "^9.0.3",
|
|
"sharp": "^0.33.0",
|
|
"zod": "^3.22.4"
|
|
},
|
|
"devDependencies": {
|
|
"@types/jest": "^29.5.11",
|
|
"@types/node": "^20.10.0",
|
|
"eslint": "^8.56.0",
|
|
"jest": "^29.7.0",
|
|
"prisma": "^5.7.0",
|
|
"ts-jest": "^29.1.1",
|
|
"ts-node-dev": "^2.0.0",
|
|
"typescript": "^5.3.3"
|
|
}
|
|
} |