Files
ocean-cleanup/server/package.json
Paul Bailey d71c994f0f fix: Resolve TypeScript errors and apply database migration for email-optional
- Add Prisma import for JsonNull filter
- Fix async/await for calculateDistance function
- Install mysql2 for database operations
- Apply ALTER TABLE migration to make email nullable in database
- Verify all tests pass successfully

Tests confirm:
- Users can be created without email
- Notifications work for users without email
- Email sending gracefully skipped when no email present
- Database queries correctly filter by email presence
2025-11-18 18:13:20 +00:00

53 lines
1.2 KiB
JSON

{
"name": "litter-scouts-api",
"version": "1.0.0",
"description": "Backend API for Litter Scouts",
"main": "dist/index.js",
"scripts": {
"dev": "tsx watch src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"prisma:generate": "prisma generate",
"prisma:migrate": "prisma migrate dev",
"prisma:studio": "prisma studio"
},
"keywords": [
"beach",
"litter",
"environment",
"api"
],
"author": "",
"license": "MIT",
"dependencies": {
"@clerk/clerk-sdk-node": "^5.0.0",
"@prisma/client": "^5.22.0",
"axios": "^1.13.2",
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"exifr": "^7.1.3",
"express": "^4.21.1",
"express-validator": "^7.2.0",
"helmet": "^8.0.0",
"json2csv": "^6.0.0-alpha.2",
"multer": "^1.4.5-lts.1",
"mysql2": "^3.15.3",
"node-cron": "^4.2.1",
"nodemailer": "^7.0.10",
"redis": "^5.9.0",
"zod": "^3.23.8"
},
"devDependencies": {
"@types/cors": "^2.8.17",
"@types/express": "^5.0.0",
"@types/json2csv": "^5.0.7",
"@types/multer": "^1.4.12",
"@types/node": "^22.9.0",
"@types/node-cron": "^3.0.11",
"@types/nodemailer": "^7.0.3",
"prisma": "^5.22.0",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
}
}