{ "name": "server", "version": "0.0.1", "description": "", "author": "", "private": true, "license": "UNLICENSED", "scripts": { "prebuild": "pnpm --filter @projectx/types build", "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "sh -c 'export $(grep -v \"^#\" .env | xargs) 2>/dev/null; exec nest start --watch'", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "db:generate": "drizzle-kit generate --name", "db:migrate": "drizzle-kit migrate", "db:migrate:runtime": "node dist/scripts/migrate.js", "db:studio": "drizzle-kit studio", "db:seed": "tsx src/scripts/db-seed.ts", "scan:test": "ts-node -r tsconfig-paths/register src/scripts/scan-test.ts", "sim:missing": "ts-node -r tsconfig-paths/register src/scripts/missing-detection-sim.ts", "pretype-check": "pnpm --filter @projectx/types build", "type-check": "tsc --noEmit -p tsconfig.build.json", "lint": "pnpm run lint:check", "lint:check": "eslint \"{src,apps,libs,test}/**/*.ts\"", "lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "vitest run", "test:vitest": "vitest run", "test:watch": "vitest", "test:vitest:watch": "vitest", "test:cov": "vitest run --coverage", "test:vitest:cov": "vitest run --coverage", "test:e2e": "vitest run test/app.e2e-spec.ts" }, "dependencies": { "7z-wasm": "^1.2.0", "@fastify/compress": "^8.3.1", "@fastify/cookie": "^11.0.2", "@fastify/formbody": "^8.0.2", "@fastify/helmet": "^13.0.2", "@fastify/multipart": "^9.4.0", "@fastify/rate-limit": "^10.3.0", "@fastify/static": "^9.0.0", "@nestjs/common": "^11.1.16", "@nestjs/config": "^4.0.3", "@nestjs/core": "^11.1.16", "@nestjs/jwt": "^11.0.2", "@nestjs/passport": "^11.0.5", "@nestjs/platform-fastify": "^11.1.16", "@nestjs/platform-socket.io": "^11.1.16", "@nestjs/schedule": "^6.1.1", "@nestjs/terminus": "^11.1.1", "@nestjs/websockets": "^11.1.16", "@parcel/watcher": "^2.5.6", "@projectx/types": "workspace:*", "@types/archiver": "^7.0.0", "archiver": "^7.0.1", "bcryptjs": "^3.0.3", "cheerio": "^1.2.0", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "drizzle-orm": "^0.45.1", "fast-xml-parser": "^5.5.4", "fastify": "^5.8.2", "jose": "^6.2.1", "ms": "^2.1.3", "nestjs-pino": "^4.6.0", "node-unrar-js": "^2.0.2", "nodemailer": "^8.0.2", "passport": "^0.7.0", "passport-jwt": "^4.0.1", "pdf-lib": "^1.17.1", "pg": "^8.18.0", "pino-http": "^11.0.0", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2", "sharp": "^0.34.5", "socket.io": "^4.8.3", "unzipper": "^0.12.3", "zod": "^4.3.6" }, "devDependencies": { "@eslint/eslintrc": "^3.3.5", "@eslint/js": "^10.0.1", "@nestjs/cli": "^11.0.16", "@nestjs/schematics": "^11.0.9", "@nestjs/testing": "^11.1.16", "@swc/cli": "^0.8.0", "@swc/core": "^1.15.18", "@types/bcrypt": "^6.0.0", "@types/bcryptjs": "^3.0.0", "@types/express": "^5.0.6", "@types/node": "^25.5.0", "@types/nodemailer": "^7.0.11", "@types/passport-jwt": "^4.0.1", "@types/pg": "^8.18.0", "@types/supertest": "^7.2.0", "@types/unzipper": "^0.10.11", "@vitest/coverage-v8": "^4.1.0", "drizzle-kit": "^0.31.9", "eslint": "^10.0.3", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.5", "globals": "^17.4.0", "pino-pretty": "^13.1.3", "prettier": "^3.8.1", "source-map-support": "^0.5.21", "supertest": "^7.2.2", "ts-loader": "^9.5.4", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "tsx": "^4.21.0", "typescript": "^5.9.3", "typescript-eslint": "^8.57.0", "vitest": "^4.1.0" } }