{ "name": "teknav-backend", "private": true, "type": "module", "scripts": { "dev": "tsx watch src/server.ts", "build": "tsc", "test": "node --test tests/*.test.mjs", "start": "node --enable-source-maps dist/src/server.js", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:deploy": "prisma migrate deploy", "prisma:apply": "node scripts/apply-schema.mjs", "prisma:studio": "prisma studio", "publish:due": "node scripts/publish-due.mjs", "newsletter:digest": "node scripts/weekly-digest.mjs", "seed": "tsx prisma/seed.ts" }, "prisma": { "seed": "tsx prisma/seed.ts" }, "dependencies": { "@fastify/compress": "^8.3.1", "@fastify/cookie": "^11.0.2", "@fastify/cors": "^11.2.0", "@fastify/rate-limit": "^10.3.0", "@node-rs/argon2": "^2.0.2", "@prisma/client": "^5.22.0", "cheerio": "^1.2.0", "fastify": "^5.8.5", "fastify-plugin": "^4.5.1", "ioredis": "^5.4.1", "nodemailer": "^8.0.10", "pino": "^9.5.0", "sanitize-html": "^2.17.4", "web-push": "^3.6.7", "zod": "^3.23.8" }, "optionalDependencies": { "sharp": "^0.33.5" }, "devDependencies": { "@types/node": "^22.9.0", "@types/nodemailer": "^6.4.16", "@types/sanitize-html": "^2.16.1", "@types/web-push": "^3.6.4", "pino-pretty": "^13.1.3", "prisma": "^5.22.0", "tsx": "^4.19.2", "typescript": "^5.6.3" } }