{ "name": "pms-backend-node", "version": "1.0.0", "description": "PLM System Backend - Node.js + TypeScript", "main": "dist/app.js", "scripts": { "start": "node dist/app.js", "dev": "nodemon src/app.ts", "build": "tsc", "test": "jest", "test:watch": "jest --watch", "lint": "eslint src/ --ext .ts", "lint:fix": "eslint src/ --ext .ts --fix", "format": "prettier --write src/", "prisma:generate": "prisma generate", "prisma:migrate": "prisma migrate dev", "prisma:studio": "prisma studio", "prisma:seed": "prisma db seed" }, "keywords": [ "plm", "nodejs", "typescript", "express", "prisma" ], "author": "", "license": "ISC", "dependencies": { "express": "^4.18.2", "prisma": "^5.7.1", "@prisma/client": "^5.7.1", "pg": "^8.11.3", "jsonwebtoken": "^9.0.2", "bcryptjs": "^2.4.3", "helmet": "^7.1.0", "cors": "^2.8.5", "multer": "^1.4.5-lts.1", "nodemailer": "^6.9.7", "winston": "^3.11.0", "joi": "^17.11.0", "redis": "^4.6.10", "compression": "^1.7.4", "express-rate-limit": "^7.1.5", "dotenv": "^16.3.1" }, "devDependencies": { "typescript": "^5.3.3", "@types/node": "^20.10.5", "@types/express": "^4.17.21", "@types/pg": "^8.10.9", "@types/jsonwebtoken": "^9.0.5", "@types/bcryptjs": "^2.4.6", "@types/cors": "^2.8.17", "@types/multer": "^1.4.11", "@types/nodemailer": "^6.4.14", "@types/morgan": "^1.9.9", "@types/compression": "^1.7.5", "@types/sanitize-html": "^2.9.5", "@types/node-cron": "^3.0.11", "@types/fs-extra": "^11.0.4", "jest": "^29.7.0", "@types/jest": "^29.5.11", "supertest": "^6.3.3", "@types/supertest": "^6.0.2", "ts-jest": "^29.1.1", "nodemon": "^3.0.2", "ts-node": "^10.9.2", "eslint": "^8.55.0", "@typescript-eslint/eslint-plugin": "^6.14.0", "@typescript-eslint/parser": "^6.14.0", "prettier": "^3.1.0" }, "engines": { "node": ">=20.10.0", "npm": ">=10.0.0" } }