{ "name": "whale-town-end-v2", "version": "2.0.0", "packageManager": "pnpm@9.15.4", "description": "WhaleTown V2 NestJS backend and administration service", "main": "dist/main.js", "scripts": { "test:adventure": "jest --runInBand --runTestsByPath src/business/player/adventure.service.spec.ts", "dev": "nest start --watch", "build": "nest build", "start": "node dist/main.js", "start:prod": "node dist/main.js", "db:migrate": "node --env-file=.env -r ts-node/register scripts/run_migrations.ts", "character-maker": "python3 tools/character_maker/app.py", "test": "jest --runInBand --runTestsByPath src/business/auth/register.service.spec.ts src/business/chat/chat.service.spec.ts src/business/chat/services/chat_session.service.spec.ts src/business/mall/mall.service.spec.ts src/business/room_decor/room_decor.service.spec.ts src/gateway/auth/register.controller.spec.ts src/gateway/chat/chat.gateway.spec.ts src/business/world_npc/world_npc.service.spec.ts src/business/auth/skin_defaults.spec.ts", "test:affected": "jest --runInBand --runTestsByPath src/business/auth/register.service.spec.ts src/business/chat/chat.service.spec.ts src/business/chat/services/chat_session.service.spec.ts src/business/mall/mall.service.spec.ts src/business/room_decor/room_decor.service.spec.ts src/gateway/auth/register.controller.spec.ts src/gateway/chat/chat.gateway.spec.ts src/business/world_npc/world_npc.service.spec.ts src/business/auth/skin_defaults.spec.ts", "test:world-npc": "ts-node --transpile-only scripts/test_world_npc_runtime.ts" }, "keywords": [ "game", "pixel", "2d", "server", "nestjs" ], "author": "", "license": "MIT", "engines": { "node": ">=20" }, "dependencies": { "@nestjs/cache-manager": "^3.1.0", "@nestjs/common": "^11.1.9", "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.1.9", "@nestjs/jwt": "^11.0.2", "@nestjs/platform-express": "^11.1.11", "@nestjs/platform-ws": "^11.1.11", "@nestjs/schedule": "^6.1.0", "@nestjs/swagger": "^11.2.3", "@nestjs/throttler": "^6.5.0", "@nestjs/typeorm": "^11.0.0", "@nestjs/websockets": "^11.1.11", "@types/archiver": "^7.0.0", "@types/bcrypt": "^6.0.0", "archiver": "^7.0.1", "axios": "^1.18.0", "bcrypt": "^6.0.0", "cache-manager": "^7.2.8", "class-transformer": "^0.5.1", "class-validator": "^0.14.3", "express": "^5.2.1", "ioredis": "^5.8.2", "jsonwebtoken": "^9.0.3", "mysql2": "^3.23.1", "nestjs-pino": "^4.5.0", "node-fetch": "^3.3.2", "nodemailer": "^9.0.1", "pino": "^10.1.0", "pino-http": "^11.0.0", "reflect-metadata": "^0.1.14", "rxjs": "^7.8.2", "swagger-ui-express": "^5.0.1", "typeorm": "^0.3.31", "uuid": "^13.0.0", "ws": "^8.21.0", "zulip-js": "^2.1.0" }, "devDependencies": { "@nestjs/cli": "^10.4.9", "@nestjs/schematics": "^10.2.3", "@nestjs/testing": "^11.1.9", "@types/express": "^5.0.6", "@types/jest": "^29.5.14", "@types/jsonwebtoken": "^9.0.10", "@types/node": "^20.19.27", "@types/nodemailer": "^8.0.1", "@types/ws": "^8.18.1", "pino-pretty": "^13.1.3", "dotenv": "^16.6.1", "jest": "^29.7.0", "ts-jest": "^29.2.5", "ts-node": "^10.9.2", "typescript": "^5.9.3" }, "pnpm": { "overrides": { "body-parser@2.2.2": "2.3.0", "brace-expansion@1.1.14": "1.1.18", "brace-expansion@2.1.0": "2.1.4", "form-data@2.5.5": "2.5.6", "js-yaml@4.1.1": "4.3.1", "multer@2.1.1": "2.2.0", "qs@6.15.2": "6.16.0", "ws@8.20.1": "8.21.3" } } }