{ "name": "shattered-void-mmo", "version": "0.1.0", "description": "Shattered Void - A post-collapse galaxy MMO strategy game", "main": "src/server.js", "scripts": { "dev": "nodemon --inspect=0.0.0.0:9229 src/server.js", "start": "node src/server.js", "start:game": "node start-game.js", "start:dev": "NODE_ENV=development node start-game.js", "start:prod": "NODE_ENV=production node start-game.js", "start:staging": "NODE_ENV=staging node start-game.js", "start:quick": "./start.sh", "start:debug": "./start.sh --debug --verbose", "start:no-frontend": "./start.sh --no-frontend", "start:backend-only": "ENABLE_FRONTEND=false node start-game.js", "game": "./start.sh", "test": "jest --verbose --coverage", "test:watch": "jest --watch --verbose", "test:integration": "jest --testPathPattern=integration --runInBand", "test:e2e": "jest --testPathPattern=e2e --runInBand", "lint": "eslint src/ --ext .js --fix", "lint:check": "eslint src/ --ext .js", "health:check": "node -e \"require('./scripts/health-monitor'); console.log('Health monitoring available')\"", "system:check": "node -e \"const checks = require('./scripts/startup-checks'); new checks().runAllChecks().then(r => console.log('System checks:', r.success ? 'PASSED' : 'FAILED'))\"", "db:migrate": "knex migrate:latest", "db:rollback": "knex migrate:rollback", "db:seed": "knex seed:run", "db:reset": "knex migrate:rollback:all && knex migrate:latest && knex seed:run", "db:setup": "createdb shattered_void_dev && npm run db:migrate && npm run db:seed", "db:validate": "node -e \"const val = require('./scripts/database-validator'); new val().validateDatabase().then(r => console.log('DB validation:', r.success ? 'PASSED' : 'FAILED', r.error || ''))\"", "setup": "node scripts/setup.js", "docker:build": "docker build -t shattered-void .", "docker:run": "docker-compose up -d", "docker:dev": "docker-compose -f docker-compose.dev.yml up -d", "logs": "tail -f logs/combined.log", "logs:error": "tail -f logs/error.log", "logs:audit": "tail -f logs/audit.log", "logs:startup": "tail -f logs/startup.log" }, "dependencies": { "bcrypt": "^5.1.1", "compression": "^1.7.4", "connect-redis": "^7.1.0", "cookie-parser": "^1.4.6", "cors": "^2.8.5", "dotenv": "^16.3.1", "express": "^4.18.2", "express-rate-limit": "^7.1.5", "express-session": "^1.17.3", "express-validator": "^7.0.1", "express-ws": "^5.0.2", "helmet": "^7.1.0", "joi": "^17.11.1", "jsonwebtoken": "^9.0.2", "knex": "^3.0.1", "lodash": "^4.17.21", "moment": "^2.29.4", "node-cron": "^3.0.3", "nodemailer": "^6.9.7", "pg": "^8.11.3", "rate-limit-redis": "^4.2.1", "redis": "^4.6.11", "socket.io": "^4.8.1", "uuid": "^9.0.1", "validator": "^13.15.15", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.7.1", "ws": "^8.14.2" }, "devDependencies": { "@types/jest": "^29.5.8", "eslint": "^8.56.0", "eslint-config-node": "^4.1.0", "eslint-plugin-jest": "^27.6.0", "eslint-plugin-node": "^11.1.0", "jest": "^29.7.0", "nodemon": "^3.0.2", "supertest": "^6.3.3" }, "engines": { "node": ">=18.0.0", "npm": ">=9.0.0" }, "keywords": [ "mmo", "strategy", "game", "nodejs", "postgresql", "redis", "websocket" ], "author": "Shattered Void Development Team", "license": "UNLICENSED", "private": true, "repository": { "type": "git", "url": "https://github.com/your-org/shattered-void-mmo.git" }, "jest": { "testEnvironment": "node", "collectCoverageFrom": [ "src/**/*.js", "!src/server.js", "!src/database/migrations/**", "!src/database/seeds/**" ], "coverageDirectory": "coverage", "coverageReporters": [ "text", "lcov", "html" ], "testMatch": [ "**/tests/**/*.test.js" ] } }