{ "name": "child-gold-land-backend-nest", "version": "0.0.0", "private": true, "scripts": { "build": "nest build", "dev": "nest start --watch", "start": "node dist/main.js", "start:prod": "node dist/main.js", "type-check": "tsc --noEmit -p tsconfig.json", "test:integration": "tsx --tsconfig tsconfig.json test/integration.test.ts", "test:progression": "tsx --tsconfig tsconfig.json test/progression.test.ts", "test:concurrency": "tsx --tsconfig tsconfig.json test/concurrency.test.ts", "test:gold-precision": "tsx --tsconfig tsconfig.json test/gold-precision.test.ts", "test:lesson-rewards": "tsx --tsconfig tsconfig.json test/lesson-rewards-api.test.ts", "test:dual-connection": "tsx --tsconfig tsconfig.json test/dual-connection.test.ts", "test:production-config": "tsx --tsconfig tsconfig.json test/production-config.test.ts", "test:auth-rate-limit": "tsx --tsconfig tsconfig.json test/auth-rate-limit.test.ts", "test:client-ip": "tsx --tsconfig tsconfig.json test/client-ip.test.ts", "test:auth-rate-limit-xff": "tsx --tsconfig tsconfig.json test/auth-rate-limit-xff.test.ts", "test:restore-safety": "tsx --tsconfig tsconfig.json test/restore-safety.test.ts", "test:budgeting": "tsx --tsconfig tsconfig.json test/budgeting.test.ts", "test:risk-return": "tsx --tsconfig tsconfig.json test/risk-return.test.ts", "test:portfolio": "tsx --tsconfig tsconfig.json test/portfolio.test.ts", "test:compound-interest": "tsx --tsconfig tsconfig.json test/compound-interest.test.ts", "test:smart-shop": "tsx --tsconfig tsconfig.json test/smart-shop.test.ts", "test:financial-goal": "tsx --tsconfig tsconfig.json test/financial-goal.test.ts", "test:castle-exam": "tsx --tsconfig tsconfig.json test/castle-exam.test.ts", "test:production-error": "tsx --tsconfig tsconfig.json test/production-error.test.ts", "backup:sqlite": "node scripts/sqlite-backup.mjs", "restore:sqlite": "node scripts/sqlite-restore.mjs", "smoke:trial-production": "node scripts/trial-production-smoke.mjs", "test:backup-restore": "tsx --tsconfig tsconfig.json test/backup-restore.test.ts", "test": "npm run test:progression && npm run test:integration && npm run test:concurrency && npm run test:gold-precision && npm run test:lesson-rewards && npm run test:dual-connection && npm run test:production-config && npm run test:production-error && npm run test:client-ip && npm run test:auth-rate-limit && npm run test:auth-rate-limit-xff && npm run test:backup-restore && npm run test:restore-safety && npm run test:budgeting && npm run test:risk-return && npm run test:portfolio && npm run test:compound-interest && npm run test:smart-shop && npm run test:financial-goal && npm run test:castle-exam" }, "dependencies": { "@nestjs/common": "^11.0.12", "@nestjs/config": "^4.0.2", "@nestjs/core": "^11.0.12", "@nestjs/jwt": "^11.0.0", "@nestjs/platform-fastify": "^11.0.12", "bcryptjs": "^3.0.2", "better-sqlite3": "^12.2.0", "class-transformer": "^0.5.1", "class-validator": "^0.14.1", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2" }, "devDependencies": { "@nestjs/cli": "^11.0.6", "@nestjs/testing": "^11.0.12", "@types/bcryptjs": "^2.4.6", "@types/better-sqlite3": "^7.6.13", "@types/node": "^24.13.3", "tsx": "^4.20.3", "typescript": "~5.8.3" }, "engines": { "node": "^22.18.0 || >=24.12.0" } }