{ "name": "backend", "version": "1.0.0", "description": "", "main": "dist/index.js", "scripts": { "dev": "ts-node-dev --respawn --transpile-only ./index.ts", "start": "node dist/index.js", "build": "tsc", "pm2:start": "pm2 start ecosystem.config.js --env production && pm2 save", "pm2:stop": "pm2 stop ospab-backend && pm2 delete ospab-backend && pm2 save", "pm2:restart": "pm2 reload ecosystem.config.js --env production && pm2 save", "pm2:logs": "pm2 logs ospab-backend", "pm2:monit": "pm2 monit", "pm2:status": "pm2 list" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "@prisma/client": "^6.0.0", "@types/ssh2": "^1.15.5", "@types/ws": "^8.18.1", "axios": "^1.12.2", "bcrypt": "^6.0.0", "bcryptjs": "^2.4.3", "compression": "^1.8.1", "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.21.2", "express-rate-limit": "^8.2.1", "express-session": "^1.18.2", "helmet": "^8.1.0", "jsonwebtoken": "^9.0.2", "minio": "^8.0.6", "multer": "^2.0.2", "nodemailer": "^6.9.15", "nvm": "^0.0.4", "passport": "^0.7.0", "passport-github": "^1.1.0", "passport-google-oauth20": "^2.0.0", "passport-vkontakte": "^0.5.0", "passport-yandex": "^0.0.5", "proxmox-api": "^1.1.1", "ssh2": "^1.17.0", "web-push": "^3.6.7", "ws": "^8.18.3", "xterm": "^5.3.0" }, "devDependencies": { "@types/bcrypt": "^6.0.0", "@types/bcryptjs": "^2.4.6", "@types/compression": "^1.8.1", "@types/cors": "^2.8.17", "@types/express": "^4.17.23", "@types/express-session": "^1.18.2", "@types/jsonwebtoken": "^9.0.10", "@types/multer": "^2.0.0", "@types/node": "^20.12.12", "@types/nodemailer": "^6.4.15", "@types/passport": "^1.0.17", "@types/passport-github": "^1.1.12", "@types/passport-google-oauth20": "^2.0.16", "@types/passport-vkontakte": "^1.0.5", "@types/web-push": "^3.6.4", "@types/xterm": "^2.0.3", "prisma": "^6.0.0", "ts-node-dev": "^2.0.0", "typescript": "^5.4.5" } }