forked from Shared/esg
Implement normalized error handling with Persian translations across all exception types, replace legacy NestJS exceptions with AppException, and add unit, integration, and smoke tests. - Add error catalog with gateway-owned codes and Persian messages - Introduce AppException wrapping normalized error envelopes - Add translateError helper for automatic messageFa population - Remove claims module and update provider error normalization - Add unit tests for error contracts and helper functions - Add integration tests for admin and inquiry endpoints - Add smoke tests for real provider connectivity - Add test support utilities (auth mocks, assertions, app factory)
83 lines
2.9 KiB
JSON
83 lines
2.9 KiB
JSON
{
|
|
"name": "inquiry-gateway",
|
|
"version": "1.0.0",
|
|
"description": "Unified inquiry gateway for external service providers",
|
|
"private": true,
|
|
"license": "MIT",
|
|
"scripts": {
|
|
"build": "nest build",
|
|
"start": "nest start",
|
|
"start:dev": "nest start --watch",
|
|
"start:prod": "node dist/main",
|
|
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
"test": "jest --selectProjects unit integration admin",
|
|
"test:unit": "jest --selectProjects unit",
|
|
"test:integration": "jest --selectProjects integration",
|
|
"test:admin": "jest --selectProjects admin",
|
|
"test:watch": "jest --selectProjects unit integration admin --watch",
|
|
"test:cov": "jest --selectProjects unit integration admin --coverage",
|
|
"smoke": "ESG_SMOKE_ENABLED=true jest --selectProjects smoke --runInBand",
|
|
"smoke:client": "npm run smoke --",
|
|
"cli:create-super-admin": "ts-node -r tsconfig-paths/register src/cli/create-super-admin.ts"
|
|
},
|
|
"dependencies": {
|
|
"@nestjs/common": "^10.4.15",
|
|
"@nestjs/config": "^3.3.0",
|
|
"@nestjs/core": "^10.4.15",
|
|
"@nestjs/jwt": "^11.0.2",
|
|
"@nestjs/mongoose": "^10.1.0",
|
|
"@nestjs/passport": "^11.0.5",
|
|
"@nestjs/platform-express": "^10.4.15",
|
|
"@nestjs/swagger": "^8.1.0",
|
|
"@nestjs/throttler": "^6.3.0",
|
|
"@opentelemetry/api": "^1.9.1",
|
|
"@opentelemetry/api-logs": "^0.218.0",
|
|
"@opentelemetry/auto-instrumentations-node": "^0.76.0",
|
|
"@opentelemetry/exporter-logs-otlp-http": "^0.218.0",
|
|
"@opentelemetry/exporter-metrics-otlp-http": "^0.218.0",
|
|
"@opentelemetry/exporter-trace-otlp-http": "^0.218.0",
|
|
"@opentelemetry/resources": "^2.7.1",
|
|
"@opentelemetry/sdk-logs": "^0.218.0",
|
|
"@opentelemetry/sdk-metrics": "^2.7.1",
|
|
"@opentelemetry/sdk-node": "^0.218.0",
|
|
"@opentelemetry/semantic-conventions": "^1.41.1",
|
|
"@opentelemetry/winston-transport": "^0.28.0",
|
|
"axios": "^1.7.9",
|
|
"bcrypt": "^6.0.0",
|
|
"class-transformer": "^0.5.1",
|
|
"class-validator": "^0.14.1",
|
|
"dotenv": "^16.4.5",
|
|
"express": "^5.2.1",
|
|
"mongoose": "^8.9.3",
|
|
"passport": "^0.7.0",
|
|
"passport-jwt": "^4.0.1",
|
|
"reflect-metadata": "^0.2.2",
|
|
"rxjs": "^7.8.1",
|
|
"socks-proxy-agent": "^7.0.0",
|
|
"uuid": "^11.0.3"
|
|
},
|
|
"devDependencies": {
|
|
"@nestjs/cli": "^10.4.9",
|
|
"@nestjs/schematics": "^10.2.3",
|
|
"@nestjs/testing": "^10.4.15",
|
|
"@types/bcrypt": "^6.0.0",
|
|
"@types/express": "^5.0.6",
|
|
"@types/jest": "^29.5.14",
|
|
"@types/node": "^22.19.19",
|
|
"@types/passport-jwt": "^4.0.1",
|
|
"@types/supertest": "^7.2.0",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^8.18.2",
|
|
"@typescript-eslint/parser": "^8.18.2",
|
|
"eslint": "^9.17.0",
|
|
"jest": "^29.7.0",
|
|
"source-map-support": "^0.5.21",
|
|
"supertest": "^7.2.2",
|
|
"ts-jest": "^29.2.5",
|
|
"ts-loader": "^9.5.1",
|
|
"ts-node": "^10.9.2",
|
|
"tsconfig-paths": "^4.2.0",
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|