workspace/projects/gamilit/apps/backend/package.json
2025-12-08 21:15:39 -06:00

96 lines
2.9 KiB
JSON

{
"name": "@gamilit/backend",
"version": "1.0.0",
"description": "GAMILIT Backend - Educational Gamification Platform",
"main": "dist/main.js",
"scripts": {
"build": "tsc",
"start": "node -r tsconfig-paths/register dist/main.js",
"dev": "ts-node-dev --respawn --transpile-only -r tsconfig-paths/register src/main.ts",
"prod": "NODE_ENV=production node -r tsconfig-paths/register dist/main.js",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"lint": "eslint \"{src,__tests__}/**/*.ts\"",
"format": "prettier --write \"src/**/*.ts\" \"__tests__/**/*.ts\"",
"generate:vapid": "node scripts/generate-vapid-keys.js"
},
"dependencies": {
"@nestjs/cache-manager": "^3.0.1",
"@nestjs/common": "^11.1.8",
"@nestjs/config": "^4.0.2",
"@nestjs/core": "^11.1.8",
"@nestjs/jwt": "^11.0.1",
"@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.1.8",
"@nestjs/platform-socket.io": "^11.1.8",
"@nestjs/schedule": "^6.0.1",
"@nestjs/swagger": "^11.2.1",
"@nestjs/terminus": "^10.2.0",
"@nestjs/throttler": "^5.0.1",
"@nestjs/typeorm": "^11.0.0",
"@nestjs/websockets": "^11.1.8",
"@types/nodemailer": "^7.0.4",
"bcrypt": "^5.1.1",
"cache-manager": "^5.2.4",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.2",
"compression": "^1.7.4",
"cors": "^2.8.5",
"dotenv": "^16.3.1",
"express": "^4.18.2",
"express-rate-limit": "^7.1.5",
"helmet": "^7.1.0",
"joi": "^18.0.1",
"jsonwebtoken": "^9.0.2",
"nodemailer": "^7.0.11",
"passport": "^0.7.0",
"passport-jwt": "^4.0.1",
"passport-local": "^1.0.0",
"pg": "^8.11.3",
"reflect-metadata": "^0.1.14",
"rxjs": "^7.8.1",
"sanitize-html": "^2.11.0",
"socket.io": "^4.8.1",
"typeorm": "^0.3.22",
"web-push": "^3.6.7",
"winston": "^3.18.3"
},
"devDependencies": {
"@faker-js/faker": "^8.3.1",
"@nestjs/testing": "^11.1.8",
"@types/bcrypt": "^5.0.2",
"@types/cache-manager": "^4.0.6",
"@types/compression": "^1.7.5",
"@types/cors": "^2.8.17",
"@types/express": "^4.17.21",
"@types/jest": "^29.5.11",
"@types/jsonwebtoken": "^9.0.5",
"@types/node": "^24.7.2",
"@types/passport": "^1.0.17",
"@types/passport-jwt": "^4.0.1",
"@types/passport-local": "^1.0.38",
"@types/pg": "^8.10.9",
"@types/sanitize-html": "^2.9.5",
"@typescript-eslint/eslint-plugin": "^6.19.1",
"@typescript-eslint/parser": "^6.19.1",
"eslint": "^8.56.0",
"eslint-config-airbnb-typescript": "^17.1.0",
"eslint-plugin-import": "^2.32.0",
"factory.ts": "^1.4.0",
"jest": "^29.7.0",
"jest-mock-extended": "^3.0.5",
"prettier": "^3.2.4",
"supertest": "^6.3.3",
"ts-jest": "^29.1.1",
"ts-node": "^10.9.2",
"ts-node-dev": "^2.0.0",
"tsconfig-paths": "^3.15.0",
"typescript": "^5.9.3"
},
"engines": {
"node": ">=18.0.0",
"npm": ">=9.0.0"
}
}