{ "name": "oudelaa-backend", "version": "1.0.0", "private": true, "description": "Production-ready social media backend with NestJS and MongoDB", "license": "UNLICENSED", "scripts": { "build": "nest build", "start": "nest start", "start:dev": "nest start --watch", "start:prod": "node dist/main", "lint": "eslint \"src/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { "@nestjs/common": "^10.4.0", "@nestjs/config": "^3.2.3", "@nestjs/core": "^10.4.0", "@nestjs/jwt": "^10.2.0", "@nestjs/mongoose": "^10.1.0", "@nestjs/passport": "^10.0.3", "@nestjs/platform-express": "^10.4.0", "@nestjs/platform-socket.io": "^10.4.0", "@nestjs/swagger": "^8.1.0", "@nestjs/websockets": "^10.4.0", "@types/passport-google-oauth20": "^2.0.17", "bcrypt": "^5.1.1", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "google-auth-library": "^10.6.2", "joi": "^17.13.3", "mongoose": "^8.6.0", "nodemailer": "^8.0.5", "passport": "^0.7.0", "passport-google-oauth20": "^2.0.0", "passport-jwt": "^4.0.1", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1", "socket.io": "^4.8.0" }, "devDependencies": { "@nestjs/cli": "^10.4.5", "@nestjs/schematics": "^10.2.3", "@nestjs/testing": "^10.4.0", "@types/bcrypt": "^5.0.2", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", "@types/node": "^20.16.5", "@types/nodemailer": "^8.0.0", "@types/passport-jwt": "^4.0.1", "@types/supertest": "^6.0.2", "eslint": "^9.11.1", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "jest": "^29.7.0", "prettier": "^3.3.3", "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.2.5", "ts-loader": "^9.5.1", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "^5.6.2" } }