{ "name": "api", "version": "0.0.1", "scripts": { "build": "nest build", "clean": "git clean -xdf dist .turbo node_modules .cache", "dev": "nest start --watch", "format": "prettier --check . --ignore-path ../../.gitignore --ignore-path .prettierignore", "format:fix": "prettier --write --list-different \"./src/**/*.{js,cjs,mjs,ts,tsx,md,json}\"", "lint": "eslint", "migration:generate": "npm run typeorm -- migration:generate src/configs/modules/typeorm-config/migrations/$npm_config_name", "migration:revert": "npm run typeorm -- migration:revert", "migration:run": "npm run typeorm -- migration:run", "start": "nest start", "start:debug": "nest start --debug --watch", "start:dev": "nest start --watch", "start:prod": "node dist/main", "test": "jest --detectOpenHandles --forceExit", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json --runInBand --detectOpenHandles", "test:integration": "jest --config ./integration-test/jest-integration.json --runInBand --detectOpenHandles", "test:watch": "jest --watch --detectOpenHandles", "typecheck": "tsc --noEmit", "typeorm": "ts-node --project ./tsconfig.json -r tsconfig-paths/register ../../node_modules/typeorm/cli -d src/configs/modules/typeorm-config/typeorm-config.datasource.ts" }, "prettier": "@ufb/prettier-config", "dependencies": { "@aws-sdk/client-s3": "^3.1015.0", "@aws-sdk/s3-request-presigner": "^3.1015.0", "@fastify/multipart": "^9.4.0", "@fastify/static": "^9.0.0", "@nestjs-modules/mailer": "^2.0.2", "@nestjs/axios": "^4.0.1", "@nestjs/common": "^11.1.17", "@nestjs/config": "^4.0.3", "@nestjs/core": "^11.1.17", "@nestjs/event-emitter": "^3.0.1", "@nestjs/jwt": "^11.0.2", "@nestjs/passport": "^11.0.5", "@nestjs/platform-express": "^11.1.17", "@nestjs/platform-fastify": "^11.1.17", "@nestjs/schedule": "^6.0.1", "@nestjs/swagger": "^11.2.6", "@nestjs/terminus": "^11.1.1", "@nestjs/typeorm": "^11.0.0", "@opensearch-project/opensearch": "^3.5.1", "@opentelemetry/exporter-logs-otlp-http": "^0.213.0", "@opentelemetry/resources": "^2.6.0", "@opentelemetry/sdk-logs": "^0.213.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@types/passport-jwt": "^4.0.1", "@types/passport-local": "^1.0.38", "@ufb/shared": "workspace:*", "@willsoto/nestjs-prometheus": "^6.0.2", "axios": "^1.13.6", "bcrypt": "^6.0.0", "class-transformer": "^0.5.1", "class-validator": "^0.15.1", "cron": "^4.3.3", "dotenv": "^17.3.1", "exceljs": "^4.4.0", "fast-csv": "^5.0.5", "fastify": "^5.8.4", "joi": "^18.1.1", "luxon": "^3.7.2", "magic-bytes.js": "^1.13.0", "mysql2": "^3.20.0", "nestjs-cls": "^6.2.0", "nestjs-pino": "^4.6.1", "nestjs-typeorm-paginate": "^4.1.0", "nodemailer": "^8.0.3", "passport": "^0.7.0", "passport-custom": "^1.1.1", "passport-jwt": "^4.0.1", "passport-local": "^1.0.0", "pino-http": "^11.0.0", "pino-opentelemetry-transport": "^3.0.0", "pino-pretty": "^13.1.3", "prom-client": "^15.1.3", "reflect-metadata": "^0.2.2", "rxjs": "^7.8.2", "source-map-support": "^0.5.21", "typeorm": "^0.3.28", "typeorm-naming-strategies": "^4.1.0", "typeorm-transactional": "^0.5.0", "uuid": "^13.0.0" }, "devDependencies": { "@faker-js/faker": "^10.4.0", "@nestjs/cli": "^11.0.16", "@nestjs/schematics": "^11.0.9", "@nestjs/testing": "^11.1.17", "@swc-node/jest": "^1.9.1", "@swc/cli": "0.8.0", "@swc/core": "1.13.5", "@swc/helpers": "^0.5.19", "@types/bcrypt": "^6.0.0", "@types/express": "^5.0.6", "@types/jest": "^30.0.0", "@types/luxon": "^3.7.1", "@types/node": "24.12.0", "@types/nodemailer": "^7.0.11", "@types/passport-jwt": "*", "@types/supertest": "^7.2.0", "@typescript-eslint/parser": "^8.46.0", "@ufb/eslint-config": "workspace:*", "@ufb/prettier-config": "workspace:*", "@ufb/tsconfig": "workspace:*", "eslint": "catalog:", "jest": "^30.3.0", "mockdate": "^3.0.5", "prettier": "catalog:", "supertest": "^7.2.2", "ts-jest": "^29.4.6", "ts-loader": "^9.5.4", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", "typescript": "catalog:" } }