@carlonicora/nestjs-neo4jsonapi 1.21.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/bootstrap/app.module.factory.d.ts.map +1 -1
  2. package/dist/bootstrap/app.module.factory.js +3 -0
  3. package/dist/bootstrap/app.module.factory.js.map +1 -1
  4. package/dist/bootstrap/bootstrap.d.ts.map +1 -1
  5. package/dist/bootstrap/bootstrap.js +85 -2
  6. package/dist/bootstrap/bootstrap.js.map +1 -1
  7. package/dist/bootstrap/bootstrap.options.d.ts +47 -0
  8. package/dist/bootstrap/bootstrap.options.d.ts.map +1 -1
  9. package/dist/bootstrap/index.d.ts +1 -1
  10. package/dist/bootstrap/index.d.ts.map +1 -1
  11. package/dist/common/filters/http-exception.filter.d.ts.map +1 -1
  12. package/dist/common/filters/http-exception.filter.js +83 -13
  13. package/dist/common/filters/http-exception.filter.js.map +1 -1
  14. package/dist/core/logging/interceptors/logging.interceptor.d.ts.map +1 -1
  15. package/dist/core/logging/interceptors/logging.interceptor.js +5 -0
  16. package/dist/core/logging/interceptors/logging.interceptor.js.map +1 -1
  17. package/dist/core/logging/interfaces/logging.interface.d.ts +1 -0
  18. package/dist/core/logging/interfaces/logging.interface.d.ts.map +1 -1
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +2 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/openapi/decorators/api-jsonapi-error.decorator.d.ts +52 -0
  24. package/dist/openapi/decorators/api-jsonapi-error.decorator.d.ts.map +1 -0
  25. package/dist/openapi/decorators/api-jsonapi-error.decorator.js +105 -0
  26. package/dist/openapi/decorators/api-jsonapi-error.decorator.js.map +1 -0
  27. package/dist/openapi/decorators/api-jsonapi-query.decorator.d.ts +43 -0
  28. package/dist/openapi/decorators/api-jsonapi-query.decorator.d.ts.map +1 -0
  29. package/dist/openapi/decorators/api-jsonapi-query.decorator.js +117 -0
  30. package/dist/openapi/decorators/api-jsonapi-query.decorator.js.map +1 -0
  31. package/dist/openapi/decorators/api-jsonapi-response.decorator.d.ts +38 -0
  32. package/dist/openapi/decorators/api-jsonapi-response.decorator.d.ts.map +1 -0
  33. package/dist/openapi/decorators/api-jsonapi-response.decorator.js +84 -0
  34. package/dist/openapi/decorators/api-jsonapi-response.decorator.js.map +1 -0
  35. package/dist/openapi/decorators/index.d.ts +4 -0
  36. package/dist/openapi/decorators/index.d.ts.map +1 -0
  37. package/dist/openapi/decorators/index.js +20 -0
  38. package/dist/openapi/decorators/index.js.map +1 -0
  39. package/dist/openapi/factories/entity-schema.factory.d.ts +21 -0
  40. package/dist/openapi/factories/entity-schema.factory.d.ts.map +1 -0
  41. package/dist/openapi/factories/entity-schema.factory.js +177 -0
  42. package/dist/openapi/factories/entity-schema.factory.js.map +1 -0
  43. package/dist/openapi/factories/index.d.ts +3 -0
  44. package/dist/openapi/factories/index.d.ts.map +1 -0
  45. package/dist/openapi/factories/index.js +19 -0
  46. package/dist/openapi/factories/index.js.map +1 -0
  47. package/dist/openapi/factories/request-schema.factory.d.ts +20 -0
  48. package/dist/openapi/factories/request-schema.factory.d.ts.map +1 -0
  49. package/dist/openapi/factories/request-schema.factory.js +160 -0
  50. package/dist/openapi/factories/request-schema.factory.js.map +1 -0
  51. package/dist/openapi/index.d.ts +7 -0
  52. package/dist/openapi/index.d.ts.map +1 -0
  53. package/dist/openapi/index.js +31 -0
  54. package/dist/openapi/index.js.map +1 -0
  55. package/dist/openapi/module/index.d.ts +3 -0
  56. package/dist/openapi/module/index.d.ts.map +1 -0
  57. package/dist/openapi/module/index.js +8 -0
  58. package/dist/openapi/module/index.js.map +1 -0
  59. package/dist/openapi/module/openapi.module.d.ts +20 -0
  60. package/dist/openapi/module/openapi.module.d.ts.map +1 -0
  61. package/dist/openapi/module/openapi.module.js +39 -0
  62. package/dist/openapi/module/openapi.module.js.map +1 -0
  63. package/dist/openapi/module/openapi.service.d.ts +65 -0
  64. package/dist/openapi/module/openapi.service.d.ts.map +1 -0
  65. package/dist/openapi/module/openapi.service.js +127 -0
  66. package/dist/openapi/module/openapi.service.js.map +1 -0
  67. package/dist/openapi/schemas/index.d.ts +3 -0
  68. package/dist/openapi/schemas/index.d.ts.map +1 -0
  69. package/dist/openapi/schemas/index.js +19 -0
  70. package/dist/openapi/schemas/index.js.map +1 -0
  71. package/dist/openapi/schemas/jsonapi-base.schemas.d.ts +54 -0
  72. package/dist/openapi/schemas/jsonapi-base.schemas.d.ts.map +1 -0
  73. package/dist/openapi/schemas/jsonapi-base.schemas.js +170 -0
  74. package/dist/openapi/schemas/jsonapi-base.schemas.js.map +1 -0
  75. package/dist/openapi/schemas/jsonapi-error.schemas.d.ts +19 -0
  76. package/dist/openapi/schemas/jsonapi-error.schemas.d.ts.map +1 -0
  77. package/dist/openapi/schemas/jsonapi-error.schemas.js +200 -0
  78. package/dist/openapi/schemas/jsonapi-error.schemas.js.map +1 -0
  79. package/dist/openapi/utils/cypher-to-openapi.util.d.ts +32 -0
  80. package/dist/openapi/utils/cypher-to-openapi.util.d.ts.map +1 -0
  81. package/dist/openapi/utils/cypher-to-openapi.util.js +55 -0
  82. package/dist/openapi/utils/cypher-to-openapi.util.js.map +1 -0
  83. package/dist/openapi/utils/example-generator.util.d.ts +11 -0
  84. package/dist/openapi/utils/example-generator.util.d.ts.map +1 -0
  85. package/dist/openapi/utils/example-generator.util.js +95 -0
  86. package/dist/openapi/utils/example-generator.util.js.map +1 -0
  87. package/dist/openapi/utils/index.d.ts +3 -0
  88. package/dist/openapi/utils/index.d.ts.map +1 -0
  89. package/dist/openapi/utils/index.js +19 -0
  90. package/dist/openapi/utils/index.js.map +1 -0
  91. package/package.json +4 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.factory.d.ts","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAkB7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAmHpE"}
1
+ {"version":3,"file":"app.module.factory.d.ts","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAmB7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAsHpE"}
@@ -56,6 +56,7 @@ const discord_module_1 = require("../foundations/discord/discord.module");
56
56
  const app_mode_module_1 = require("../core/appmode/app.mode.module");
57
57
  const core_module_1 = require("../core/core.module");
58
58
  const foundations_modules_1 = require("../foundations/foundations.modules");
59
+ const openapi_module_1 = require("../openapi/module/openapi.module");
59
60
  /**
60
61
  * Creates a dynamic AppModule based on bootstrap options.
61
62
  *
@@ -145,6 +146,8 @@ function createAppModule(options) {
145
146
  }),
146
147
  // Library's AI agents (prompts configured via baseConfig.prompts)
147
148
  agents_modules_1.AgentsModule,
149
+ // OpenAPI module for Swagger/Redoc documentation
150
+ openapi_module_1.OpenApiModule,
148
151
  // User's app-specific modules (MUST be before NecordModule so Necord can discover handlers)
149
152
  ...options.appModules,
150
153
  // Discord bot (only in worker mode when token is configured)
@@ -1 +1 @@
1
- {"version":3,"file":"app.module.factory.js","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.module.factory.js","sourceRoot":"","sources":["../../src/bootstrap/app.module.factory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,0CAsHC;AA5JD,2CAA6D;AAC7D,2CAA6D;AAC7D,yDAA2D;AAC3D,+CAAkD;AAClD,iDAAoD;AACpD,2CAA+C;AAC/C,mCAAsC;AACtC,2CAAuC;AACvC,6CAAgG;AAChG,2CAA6B;AAE7B,6DAAwD;AACxD,sCAA8G;AAC9G,0EAAsE;AACtE,qEAAgE;AAEhE,qDAAiD;AACjD,4EAAuE;AACvE,qEAAiE;AAGjE;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,eAAe,CAAC,OAAyB;;IAEvD,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;QACtB,MAAM,CAAC,OAAO,CAAC,UAAyB;YACtC,6EAA6E;YAC7E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;YAEvD,+CAA+C;YAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,mBAAU,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,mBAAU,CAAC;YAEjG,4DAA4D;YAC5D,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI;gBACjC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;oBAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI;oBACnB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;YAE1C,OAAO;gBACL,MAAM,EAAE,oBAAkB;gBAC1B,OAAO,EAAE;oBACP,iCAAiC;oBACjC,kCAAkB,CAAC,OAAO,EAAE;oBAE5B,yCAAyC;oBACzC,+BAAa,CAAC,OAAO,CAAC,UAAU,CAAC;oBAEjC,8BAA8B;oBAC9B,qBAAY,CAAC,OAAO,CAAC;wBACnB,IAAI,EAAE,CAAC,YAAY,CAAC;wBACpB,QAAQ,EAAE,IAAI;wBACd,KAAK,EAAE,IAAI;qBACZ,CAAC;oBAEF,kDAAkD;oBAClD,2BAAe,CAAC,YAAY,CAAC;wBAC3B,OAAO,EAAE,CAAC,qBAAY,CAAC;wBACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;wBACvB,UAAU,EAAE,CAAC,MAA0C,EAAE,EAAE;4BACzD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAA2B,WAAW,CAAC,CAAC;4BACpE,OAAO;gCACL,UAAU,EAAE;oCACV,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE;oCAC/D,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE;iCAC7D;6BACF,CAAC;wBACJ,CAAC;qBACF,CAAC;oBAEF,0BAA0B;oBAC1B,sBAAS,CAAC,OAAO,CAAC;wBAChB,MAAM,EAAE,IAAI;wBACZ,UAAU,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,iBAAiB,EAAE;qBACpD,CAAC;oBAEF,gCAAgC;oBAChC,wBAAU,CAAC,OAAO,CAAC;wBACjB,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,gBAAgB,IAAI,IAAI;wBACxD,aAAa,EAAE;4BACb,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,IAAI;yBACZ;wBACD,SAAS,EAAE;4BACT,EAAE,GAAG,EAAE,2BAAa,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE;4BACxD,IAAI,4BAAc,CAAC,CAAC,YAAY,CAAC,CAAC;4BAClC,oCAAsB;yBACvB;qBACF,CAAC;oBAEF,sDAAsD;oBACtD,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,yBAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAEhE,wCAAwC;oBACxC,wBAAU,CAAC,OAAO,CAAC;wBACjB,QAAQ;qBACT,CAAC;oBAEF,qFAAqF;oBACrF,uCAAiB,CAAC,OAAO,CAAC;wBACxB,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;qBAC3C,CAAC;oBAEF,kEAAkE;oBAClE,6BAAY;oBAEZ,iDAAiD;oBACjD,8BAAa;oBAEb,4FAA4F;oBAC5F,GAAG,OAAO,CAAC,UAAU;oBAErB,6DAA6D;oBAC7D,gFAAgF;oBAChF,GAAG,CAAC,UAAU,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;wBACxD,CAAC,CAAC;4BACE,qBAAY,CAAC,YAAY,CAAC;gCACxB,OAAO,EAAE,CAAC,qBAAY,CAAC;gCACvB,MAAM,EAAE,CAAC,sBAAa,CAAC;gCACvB,UAAU,EAAE,CAAC,MAA0C,EAAE,EAAE;oCACzD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAyB,SAAS,CAAC,CAAC;oCAC9D,OAAO;wCACL,KAAK,EAAE,OAAO,CAAC,KAAK;wCACpB,OAAO,EAAE,CAAC,8BAAiB,CAAC,MAAM,EAAE,8BAAiB,CAAC,aAAa,CAAC;wCACpE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK;qCAC/D,CAAC;gCACJ,CAAC;6BACF,CAAC;4BACF,8BAAa;yBACd;wBACH,CAAC,CAAC,EAAE,CAAC;iBACR;gBACD,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,EAAE;aAChB,CAAC;QACJ,CAAC;KACF,CAAA;IAjHK,kBAAkB;QADvB,IAAA,eAAM,EAAC,EAAE,CAAC;OACL,kBAAkB,CAiHvB;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxE"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBxE"}
@@ -5,8 +5,10 @@ const common_1 = require("@nestjs/common");
5
5
  const config_1 = require("@nestjs/config");
6
6
  const core_1 = require("@nestjs/core");
7
7
  const platform_fastify_1 = require("@nestjs/platform-fastify");
8
+ const swagger_1 = require("@nestjs/swagger");
8
9
  const stream_1 = require("stream");
9
10
  const http_exception_filter_1 = require("../common/filters/http-exception.filter");
11
+ const openapi_service_1 = require("../openapi/module/openapi.service");
10
12
  const app_mode_constant_1 = require("../core/appmode/constants/app.mode.constant");
11
13
  const cache_interceptor_1 = require("../core/cache/interceptors/cache.interceptor");
12
14
  const cache_service_1 = require("../core/cache/services/cache.service");
@@ -59,7 +61,7 @@ async function bootstrap(options) {
59
61
  await bootstrapWorker(AppModule, modeConfig);
60
62
  }
61
63
  else {
62
- await bootstrapAPI(AppModule, modeConfig);
64
+ await bootstrapAPI(AppModule, modeConfig, options);
63
65
  }
64
66
  }
65
67
  catch (error) {
@@ -70,7 +72,7 @@ async function bootstrap(options) {
70
72
  /**
71
73
  * Bootstrap the application in API mode with Fastify
72
74
  */
73
- async function bootstrapAPI(AppModule, modeConfig) {
75
+ async function bootstrapAPI(AppModule, modeConfig, options) {
74
76
  const app = await core_1.NestFactory.create(AppModule.forRoot(modeConfig), new platform_fastify_1.FastifyAdapter(defaults_1.defaultFastifyOptions), { logger: ["error", "warn"] });
75
77
  const configService = app.get((config_1.ConfigService));
76
78
  const loggingService = app.get(logging_service_1.AppLoggingService);
@@ -105,6 +107,8 @@ async function bootstrapAPI(AppModule, modeConfig) {
105
107
  const corsService = app.get(cors_service_1.CorsService);
106
108
  corsService.validateConfiguration();
107
109
  app.enableCors(corsService.getCorsConfiguration());
110
+ // Setup OpenAPI documentation
111
+ await setupOpenApiDocs(app, options, loggingService);
108
112
  // Start server
109
113
  const port = configService.get("api").port;
110
114
  await app.listen(port, "0.0.0.0");
@@ -157,6 +161,85 @@ function setupFastifyLoggingHook(app, loggingService) {
157
161
  return payload;
158
162
  });
159
163
  }
164
+ /**
165
+ * Setup OpenAPI documentation (Swagger UI and/or Redoc)
166
+ */
167
+ async function setupOpenApiDocs(app, options, loggingService) {
168
+ const openApiConfig = options.openApi;
169
+ if (!openApiConfig?.enableSwagger && !openApiConfig?.enableRedoc) {
170
+ return;
171
+ }
172
+ const { title = "API Documentation", description = "Auto-generated API documentation", version = "1.0.0", bearerAuth = true, contactEmail, license, licenseUrl, swaggerPath = "/api-docs", redocPath = "/docs", } = openApiConfig;
173
+ // Build OpenAPI document
174
+ const documentBuilder = new swagger_1.DocumentBuilder().setTitle(title).setDescription(description).setVersion(version);
175
+ if (bearerAuth) {
176
+ documentBuilder.addBearerAuth({
177
+ type: "http",
178
+ scheme: "bearer",
179
+ bearerFormat: "JWT",
180
+ description: "Enter your JWT token",
181
+ }, "JWT-auth");
182
+ }
183
+ if (contactEmail) {
184
+ documentBuilder.setContact("API Support", "", contactEmail);
185
+ }
186
+ if (license) {
187
+ documentBuilder.setLicense(license, licenseUrl || "");
188
+ }
189
+ const config = documentBuilder.build();
190
+ // Get schemas from OpenApiService
191
+ let extraSchemas = {};
192
+ try {
193
+ const openApiService = app.get(openapi_service_1.OpenApiService);
194
+ // Register entity descriptors if provided
195
+ if (openApiConfig.entityDescriptors && openApiConfig.entityDescriptors.length > 0) {
196
+ openApiService.registerEntities(openApiConfig.entityDescriptors);
197
+ loggingService.log(`Registered ${openApiConfig.entityDescriptors.length} entities with OpenAPI`);
198
+ }
199
+ extraSchemas = openApiService.getAllSchemas();
200
+ }
201
+ catch {
202
+ loggingService.warn("OpenApiService not available, using base schemas only");
203
+ }
204
+ // Create document with extra schemas
205
+ const document = swagger_1.SwaggerModule.createDocument(app, config, {
206
+ extraModels: [],
207
+ });
208
+ // Merge extra schemas into components
209
+ document.components = document.components || {};
210
+ document.components.schemas = {
211
+ ...document.components.schemas,
212
+ ...extraSchemas,
213
+ };
214
+ // Setup Swagger UI
215
+ if (openApiConfig.enableSwagger) {
216
+ swagger_1.SwaggerModule.setup(swaggerPath, app, document, {
217
+ swaggerOptions: {
218
+ persistAuthorization: true,
219
+ docExpansion: "none",
220
+ filter: true,
221
+ showRequestDuration: true,
222
+ },
223
+ });
224
+ loggingService.log(`Swagger UI available at ${swaggerPath}`);
225
+ }
226
+ // Setup Redoc
227
+ if (openApiConfig.enableRedoc) {
228
+ try {
229
+ const { RedocModule } = await import("nestjs-redoc");
230
+ await RedocModule.setup(redocPath, app, document, {
231
+ title: title,
232
+ sortPropsAlphabetically: true,
233
+ hideDownloadButton: false,
234
+ hideHostname: false,
235
+ });
236
+ loggingService.log(`Redoc available at ${redocPath}`);
237
+ }
238
+ catch {
239
+ loggingService.warn("Failed to setup Redoc. Make sure nestjs-redoc is installed.");
240
+ }
241
+ }
242
+ }
160
243
  /**
161
244
  * Setup graceful shutdown handlers for SIGTERM and SIGINT
162
245
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":";;AAkDA,8BAqBC;AAvED,2CAAgD;AAChD,2CAA+C;AAC/C,uCAAsD;AACtD,+DAAkF;AAClF,mCAAsC;AAEtC,mFAA8E;AAE9E,mFAAqF;AACrF,oFAAgF;AAChF,wEAAoE;AACpE,qEAAiE;AACjE,0FAAsF;AACtF,8EAA6E;AAC7E,0FAAsF;AACtF,iEAA6D;AAE7D,6DAAuD;AAEvD,yCAA0G;AAC1G,uDAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,0CAA0C;IAC1C,4BAAY,CAAC,UAAU,EAAE,CAAC;IAE1B,kDAAkD;IAClD,qBAAY,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAEtC,MAAM,IAAI,GAAG,IAAA,qBAAU,GAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,2BAAO,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,SAAc,EAAE,UAAyB;IACnE,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAClC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAC7B,IAAI,iCAAc,CAAC,gCAAqB,CAAC,EACzC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAC9B,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA,sBAAkC,CAAA,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,mCAAiB,CAAC,CAAC;IAElD,gFAAgF;IAChF,MAAM,IAAA,qCAAmB,EAAC,GAAG,CAAC,CAAC;IAE/B,sCAAsC;IACtC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,kCAAuB,CAAC,CAAC;IAE3E,gBAAgB;IAChB,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9B,uBAAuB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,GAAG,CAAC,gBAAgB,CAAC,IAAI,2CAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IAE9D,yBAAyB;IACzB,GAAG,CAAC,cAAc,CAChB,IAAI,uBAAc,CAAC;QACjB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,wBAAwB,EAAE,IAAI;KAC/B,CAAC,CACH,CAAC;IAEF,2BAA2B;IAC3B,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAA2B,WAAW,CAAC,CAAC;IACjF,IAAI,eAAe,EAAE,OAAO,EAAE,CAAC;QAC7B,cAAc,CAAC,GAAG,CAAC,0BAA0B,eAAe,CAAC,KAAK,iBAAiB,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9G,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,qBAAqB,CAAC,IAAI,oCAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,4BAAY,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3G,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,CAAC;IAEvD,qBAAqB;IACrB,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,0BAAW,CAAC,CAAC;IACzC,WAAW,CAAC,qBAAqB,EAAE,CAAC;IACpC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEnD,eAAe;IACf,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAqB,KAAK,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAElC,OAAO,CAAC,IAAI,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACnD,cAAc,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IAEzD,oBAAoB;IACpB,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,SAAc,EAAE,UAAyB;IACtE,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACpF,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,mCAAiB,CAAC,CAAC;IAClD,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE7C,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,GAA2B,EAAE,cAAiC;IAC7F,GAAG;SACA,cAAc,EAAE;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAElD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;YAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7G,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,CAAC,CAAC;YACjB,CAAC;YAED,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAEjG,cAAc,CAAC,cAAc,CAAC,gCAAgC,EAAE,cAAc,EAAE;gBAC9E,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;YAEH,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAQ;IACrC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,MAAM,YAAY,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.ts"],"names":[],"mappings":";;AAoDA,8BAqBC;AAzED,2CAAgD;AAChD,2CAA+C;AAC/C,uCAAsD;AACtD,+DAAkF;AAClF,6CAAiE;AACjE,mCAAsC;AAEtC,mFAA8E;AAC9E,uEAAmE;AAEnE,mFAAqF;AACrF,oFAAgF;AAChF,wEAAoE;AACpE,qEAAiE;AACjE,0FAAsF;AACtF,8EAA6E;AAC7E,0FAAsF;AACtF,iEAA6D;AAE7D,6DAAuD;AAEvD,yCAA0G;AAC1G,uDAAwD;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACI,KAAK,UAAU,SAAS,CAAC,OAAyB;IACvD,0CAA0C;IAC1C,4BAAY,CAAC,UAAU,EAAE,CAAC;IAE1B,kDAAkD;IAClD,qBAAY,CAAC,mBAAmB,GAAG,EAAE,CAAC;IAEtC,MAAM,IAAI,GAAG,IAAA,qBAAU,GAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAA,oCAAe,EAAC,OAAO,CAAC,CAAC;IAE3C,IAAI,CAAC;QACH,IAAI,IAAI,KAAK,2BAAO,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,YAAY,CAAC,SAAc,EAAE,UAAyB,EAAE,OAAyB;IAC9F,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAClC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAC7B,IAAI,iCAAc,CAAC,gCAAqB,CAAC,EACzC,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAC9B,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA,sBAAkC,CAAA,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,mCAAiB,CAAC,CAAC;IAElD,gFAAgF;IAChF,MAAM,IAAA,qCAAmB,EAAC,GAAG,CAAC,CAAC;IAE/B,sCAAsC;IACtC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,kCAAuB,CAAC,CAAC;IAE3E,gBAAgB;IAChB,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC9B,uBAAuB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE7C,0BAA0B;IAC1B,GAAG,CAAC,gBAAgB,CAAC,IAAI,2CAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IAE9D,yBAAyB;IACzB,GAAG,CAAC,cAAc,CAChB,IAAI,uBAAc,CAAC;QACjB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,wBAAwB,EAAE,IAAI;KAC/B,CAAC,CACH,CAAC;IAEF,2BAA2B;IAC3B,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAA2B,WAAW,CAAC,CAAC;IACjF,IAAI,eAAe,EAAE,OAAO,EAAE,CAAC;QAC7B,cAAc,CAAC,GAAG,CAAC,0BAA0B,eAAe,CAAC,KAAK,iBAAiB,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9G,CAAC;SAAM,CAAC;QACN,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC/C,CAAC;IAED,uEAAuE;IACvE,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,qBAAqB,CAAC,IAAI,oCAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,4BAAY,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,gBAAS,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;IAC3G,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC,wCAAkB,CAAC,CAAC,CAAC;IAEvD,qBAAqB;IACrB,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,0BAAW,CAAC,CAAC;IACzC,WAAW,CAAC,qBAAqB,EAAE,CAAC;IACpC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEnD,8BAA8B;IAC9B,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;IAErD,eAAe;IACf,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAqB,KAAK,CAAC,CAAC,IAAI,CAAC;IAC/D,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAElC,OAAO,CAAC,IAAI,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACnD,cAAc,CAAC,GAAG,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IAEzD,oBAAoB;IACpB,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,SAAc,EAAE,UAAyB;IACtE,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACpF,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,mCAAiB,CAAC,CAAC;IAClD,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAE9B,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE7C,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,GAA2B,EAAE,cAAiC;IAC7F,GAAG;SACA,cAAc,EAAE;SAChB,WAAW,EAAE;SACb,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAElD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;YAC3C,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC;gBACH,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7G,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,CAAC,CAAC;YACjB,CAAC;YAED,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YAEjG,cAAc,CAAC,cAAc,CAAC,gCAAgC,EAAE,cAAc,EAAE;gBAC9E,YAAY;gBACZ,UAAU;gBACV,UAAU;gBACV,gBAAgB,EAAE,IAAI;aACvB,CAAC,CAAC;YAEH,cAAc,CAAC,mBAAmB,EAAE,CAAC;QACvC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAA2B,EAC3B,OAAyB,EACzB,cAAiC;IAEjC,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IACtC,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;QACjE,OAAO;IACT,CAAC;IAED,MAAM,EACJ,KAAK,GAAG,mBAAmB,EAC3B,WAAW,GAAG,kCAAkC,EAChD,OAAO,GAAG,OAAO,EACjB,UAAU,GAAG,IAAI,EACjB,YAAY,EACZ,OAAO,EACP,UAAU,EACV,WAAW,GAAG,WAAW,EACzB,SAAS,GAAG,OAAO,GACpB,GAAG,aAAa,CAAC;IAElB,yBAAyB;IACzB,MAAM,eAAe,GAAG,IAAI,yBAAe,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE9G,IAAI,UAAU,EAAE,CAAC;QACf,eAAe,CAAC,aAAa,CAC3B;YACE,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,QAAQ;YAChB,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,sBAAsB;SACpC,EACD,UAAU,CACX,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,eAAe,CAAC,UAAU,CAAC,aAAa,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;IAEvC,kCAAkC;IAClC,IAAI,YAAY,GAAwB,EAAE,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,GAAG,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC;QAE/C,0CAA0C;QAC1C,IAAI,aAAa,CAAC,iBAAiB,IAAI,aAAa,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClF,cAAc,CAAC,gBAAgB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACjE,cAAc,CAAC,GAAG,CAAC,cAAc,aAAa,CAAC,iBAAiB,CAAC,MAAM,wBAAwB,CAAC,CAAC;QACnG,CAAC;QAED,YAAY,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,cAAc,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAC/E,CAAC;IAED,qCAAqC;IACrC,MAAM,QAAQ,GAAG,uBAAa,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE;QACzD,WAAW,EAAE,EAAE;KAChB,CAAC,CAAC;IAEH,sCAAsC;IACtC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAChD,QAAQ,CAAC,UAAU,CAAC,OAAO,GAAG;QAC5B,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO;QAC9B,GAAG,YAAY;KAChB,CAAC;IAEF,mBAAmB;IACnB,IAAI,aAAa,CAAC,aAAa,EAAE,CAAC;QAChC,uBAAa,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,EAAE;YAC9C,cAAc,EAAE;gBACd,oBAAoB,EAAE,IAAI;gBAC1B,YAAY,EAAE,MAAM;gBACpB,MAAM,EAAE,IAAI;gBACZ,mBAAmB,EAAE,IAAI;aAC1B;SACF,CAAC,CAAC;QACH,cAAc,CAAC,GAAG,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,cAAc;IACd,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,GAAU,EAAE,QAAQ,EAAE;gBACvD,KAAK,EAAE,KAAK;gBACZ,uBAAuB,EAAE,IAAI;gBAC7B,kBAAkB,EAAE,KAAK;gBACzB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YACH,cAAc,CAAC,GAAG,CAAC,sBAAsB,SAAS,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,cAAc,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,GAAQ;IACrC,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,gBAAgB,MAAM,YAAY,EAAE,KAAK,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { DynamicModule, Type } from "@nestjs/common";
2
+ import { EntityDescriptor, RelationshipDef } from "../common/interfaces/entity.schema.interface";
2
3
  import { ContentExtensionConfig } from "../foundations/content/interfaces/content.extension.interface";
3
4
  /**
4
5
  * i18n configuration options
@@ -52,5 +53,51 @@ export interface BootstrapOptions {
52
53
  * ```
53
54
  */
54
55
  contentExtension?: ContentExtensionConfig;
56
+ /**
57
+ * OpenAPI documentation configuration.
58
+ * When provided, sets up Swagger UI and/or Redoc documentation endpoints.
59
+ *
60
+ * @example
61
+ * ```typescript
62
+ * openApi: {
63
+ * enableSwagger: true,
64
+ * swaggerPath: '/api-docs',
65
+ * enableRedoc: true,
66
+ * redocPath: '/docs',
67
+ * title: 'My API',
68
+ * version: '1.0.0',
69
+ * }
70
+ * ```
71
+ */
72
+ openApi?: OpenApiOptions;
73
+ }
74
+ /**
75
+ * OpenAPI documentation options
76
+ */
77
+ export interface OpenApiOptions {
78
+ /** Enable Swagger UI endpoint (default: false) */
79
+ enableSwagger?: boolean;
80
+ /** Path for Swagger UI (default: '/api-docs') */
81
+ swaggerPath?: string;
82
+ /** Enable Redoc endpoint (default: false) */
83
+ enableRedoc?: boolean;
84
+ /** Path for Redoc (default: '/docs') */
85
+ redocPath?: string;
86
+ /** API documentation title */
87
+ title?: string;
88
+ /** API documentation description */
89
+ description?: string;
90
+ /** API version */
91
+ version?: string;
92
+ /** Enable JWT Bearer authentication in docs (default: true) */
93
+ bearerAuth?: boolean;
94
+ /** Contact email for API */
95
+ contactEmail?: string;
96
+ /** License name */
97
+ license?: string;
98
+ /** License URL */
99
+ licenseUrl?: string;
100
+ /** Entity descriptors to register for OpenAPI schema generation */
101
+ entityDescriptors?: EntityDescriptor<any, Record<string, RelationshipDef>>[];
55
102
  }
56
103
  //# sourceMappingURL=bootstrap.options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+DAA+D,CAAC;AAEvG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;IAE1C;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;CAC3C"}
1
+ {"version":3,"file":"bootstrap.options.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap.options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,+DAA+D,CAAC;AAEvG;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;IAE1C;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEnC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAE1C;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;CAC9E"}
@@ -42,7 +42,7 @@ import { AppMode, AppModeConfig } from "../core/appmode/constants/app.mode.const
42
42
  export { AppMode, AppModeConfig };
43
43
  export { createAppModule } from "./app.module.factory";
44
44
  export { bootstrap } from "./bootstrap";
45
- export { BootstrapOptions, I18nOptions } from "./bootstrap.options";
45
+ export { BootstrapOptions, I18nOptions, OpenApiOptions } from "./bootstrap.options";
46
46
  export { defaultFastifyOptions, defaultMultipartOptions, getAppMode, getAppModeConfig } from "./defaults";
47
47
  export { RAW_BODY_ROUTES, setupRawBodyCapture } from "./raw-body.config";
48
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bootstrap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bootstrap/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"http-exception.filter.d.ts","sourceRoot":"","sources":["../../../src/common/filters/http-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAS,eAAe,EAAuC,MAAM,gBAAgB,CAAC;AAE5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAEhF,qBACa,mBAAoB,YAAW,eAAe;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE,iBAAiB;IAEnE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAQ/B,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa;CA2D9C"}
1
+ {"version":3,"file":"http-exception.filter.d.ts","sourceRoot":"","sources":["../../../src/common/filters/http-exception.filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAS,eAAe,EAAuC,MAAM,gBAAgB,CAAC;AAE5G,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AA0ChF,qBACa,mBAAoB,YAAW,eAAe;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAP,MAAM,CAAC,EAAE,iBAAiB;IAEnE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAQ/B,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa;CAuG9C"}
@@ -11,12 +11,49 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var HttpExceptionFilter_1;
15
14
  Object.defineProperty(exports, "__esModule", { value: true });
16
15
  exports.HttpExceptionFilter = void 0;
17
16
  const common_1 = require("@nestjs/common");
18
17
  const logging_service_1 = require("../../core/logging/services/logging.service");
19
- let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
18
+ /**
19
+ * Determine if we're in production mode.
20
+ * Stack traces should be hidden from clients and sanitized in logs in production.
21
+ */
22
+ function isProduction() {
23
+ return process.env.NODE_ENV === "production";
24
+ }
25
+ /**
26
+ * Sanitize error message for client response in production.
27
+ * Internal server errors should not expose implementation details.
28
+ */
29
+ function sanitizeClientMessage(status, message) {
30
+ if (status >= 500 && isProduction()) {
31
+ return "An internal error occurred. Please try again later.";
32
+ }
33
+ return message;
34
+ }
35
+ /**
36
+ * Sanitize stack trace for logging in production.
37
+ * Remove absolute paths and sensitive information.
38
+ */
39
+ function sanitizeStackTrace(stack) {
40
+ if (!stack)
41
+ return undefined;
42
+ if (!isProduction())
43
+ return stack;
44
+ // In production, keep the stack but remove absolute paths
45
+ return stack
46
+ .split("\n")
47
+ .map((line) => {
48
+ // Remove absolute paths, keep relative structure
49
+ return line
50
+ .replace(/\s+at\s+.+\(\/.+\/node_modules\//g, " at [node_modules]/")
51
+ .replace(/\s+at\s+.+\(\/.+\/packages\//g, " at [packages]/")
52
+ .replace(/\s+at\s+.+\(\/.+\/src\//g, " at [src]/");
53
+ })
54
+ .join("\n");
55
+ }
56
+ let HttpExceptionFilter = class HttpExceptionFilter {
20
57
  constructor(logger) {
21
58
  this.logger = logger;
22
59
  }
@@ -44,27 +81,58 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
44
81
  const request = ctx.getRequest();
45
82
  const status = exception instanceof common_1.HttpException ? exception.getStatus() : common_1.HttpStatus.INTERNAL_SERVER_ERROR;
46
83
  const message = exception instanceof common_1.HttpException ? exception.getResponse() : "Internal server error";
84
+ const timestamp = new Date().toISOString();
85
+ // Get request context from the logging service (includes userId, companyId, requestId)
86
+ const requestContext = this.logger?.getRequestContext();
87
+ // Build structured error log entry
88
+ const structuredLogEntry = {
89
+ level: status >= 500 ? "error" : "warn",
90
+ timestamp,
91
+ context: "HttpExceptionFilter",
92
+ error: {
93
+ status,
94
+ name: exception instanceof Error ? exception.name : "UnknownError",
95
+ message: exception instanceof Error ? exception.message : String(message),
96
+ stack: sanitizeStackTrace(exception instanceof Error ? exception.stack : undefined),
97
+ },
98
+ request: {
99
+ method: request.method,
100
+ url: request.url,
101
+ requestId: requestContext?.requestId || request.id,
102
+ userId: requestContext?.userId,
103
+ companyId: requestContext?.companyId,
104
+ ip: request.ip,
105
+ userAgent: request.headers["user-agent"],
106
+ },
107
+ };
47
108
  // Enhanced logging for validation errors
48
109
  if (exception instanceof common_1.HttpException && this.logger) {
49
110
  const validationErrors = this.extractValidationErrors(exception);
50
111
  if (validationErrors) {
51
- // Include validation errors directly in the message for console visibility
112
+ // Include validation errors in structured log
52
113
  const validationErrorsFormatted = validationErrors.map((e) => ` - ${e}`).join("\n");
53
- const stackTrace = exception instanceof Error ? exception.stack : String(exception);
54
- const errorMessage = `Unhandled Exception: ${status} - ${request.method} ${request.url}\n\nValidation Errors:\n${validationErrorsFormatted}\n\nStack: ${stackTrace}`;
55
- this.logger.error(errorMessage, stackTrace, HttpExceptionFilter_1.name);
114
+ this.logger.warn(`Validation Error: ${status} - ${request.method} ${request.url}\n\nValidation Errors:\n${validationErrorsFormatted}`, "HttpExceptionFilter", {
115
+ ...structuredLogEntry,
116
+ validationErrors,
117
+ });
118
+ }
119
+ else if (status >= 500) {
120
+ // Log 5xx errors as error level with full context
121
+ this.logger.error(`Server Error: ${status} - ${request.method} ${request.url}`, exception instanceof Error ? exception : undefined, "HttpExceptionFilter", structuredLogEntry);
56
122
  }
57
123
  else {
58
- // Existing error logging for non-validation errors
59
- this.logger.error(`Unhandled Exception: ${status} - ${request.method} ${request.url}`, exception instanceof Error ? exception.stack : String(exception), HttpExceptionFilter_1.name);
124
+ // Log 4xx errors as warn level
125
+ this.logger.warn(`Client Error: ${status} - ${request.method} ${request.url}`, "HttpExceptionFilter", structuredLogEntry);
60
126
  }
61
127
  }
62
128
  else if (this.logger) {
63
- // Non-HttpException errors
64
- this.logger.error(`Unhandled Exception: ${status} - ${request.method} ${request.url}`, exception instanceof Error ? exception.stack : String(exception), HttpExceptionFilter_1.name);
129
+ // Non-HttpException errors (always 500)
130
+ this.logger.error(`Unhandled Exception: ${status} - ${request.method} ${request.url}`, exception instanceof Error ? exception : undefined, "HttpExceptionFilter", structuredLogEntry);
65
131
  }
66
132
  // Extract the error detail message for both the JSON:API errors array and the top-level message field
67
- const errorDetail = typeof message === "string" ? message : message?.message || "An error occurred";
133
+ const rawErrorDetail = typeof message === "string" ? message : message?.message || "An error occurred";
134
+ // Sanitize the client-facing message (hide internal details in production for 5xx)
135
+ const errorDetail = sanitizeClientMessage(status, rawErrorDetail);
68
136
  const errorResponse = {
69
137
  message: errorDetail, // Top-level message for easy frontend consumption
70
138
  errors: [
@@ -76,9 +144,11 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
76
144
  pointer: request.url,
77
145
  },
78
146
  meta: {
79
- timestamp: new Date().toISOString(),
147
+ timestamp,
80
148
  path: request.url,
81
149
  method: request.method,
150
+ // Only include requestId in response, never userId/companyId
151
+ requestId: requestContext?.requestId || request.id,
82
152
  },
83
153
  },
84
154
  ],
@@ -87,7 +157,7 @@ let HttpExceptionFilter = HttpExceptionFilter_1 = class HttpExceptionFilter {
87
157
  }
88
158
  };
89
159
  exports.HttpExceptionFilter = HttpExceptionFilter;
90
- exports.HttpExceptionFilter = HttpExceptionFilter = HttpExceptionFilter_1 = __decorate([
160
+ exports.HttpExceptionFilter = HttpExceptionFilter = __decorate([
91
161
  (0, common_1.Catch)(),
92
162
  __param(0, (0, common_1.Optional)()),
93
163
  __metadata("design:paramtypes", [logging_service_1.AppLoggingService])
@@ -1 +1 @@
1
- {"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../../src/common/filters/http-exception.filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-exception.filter.js","sourceRoot":"","sources":["../../../src/common/filters/http-exception.filter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logging.interceptor.d.ts","sourceRoot":"","sources":["../../../../src/core/logging/interceptors/logging.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAc,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAc,UAAU,EAAmB,MAAM,MAAM,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,qBACa,kBAAmB,YAAW,eAAe;IAItD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;gBAGzB,cAAc,EAAE,iBAAiB,EACjC,UAAU,EAAE,UAAU;IAGzC,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;CAkE9E"}
1
+ {"version":3,"file":"logging.interceptor.d.ts","sourceRoot":"","sources":["../../../../src/core/logging/interceptors/logging.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAc,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE5F,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAc,UAAU,EAAmB,MAAM,MAAM,CAAC;AAI/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAOhE,qBACa,kBAAmB,YAAW,eAAe;IAItD,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAJ7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;gBAGzB,cAAc,EAAE,iBAAiB,EACjC,UAAU,EAAE,UAAU;IAGzC,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC;CAwE9E"}
@@ -32,6 +32,9 @@ let LoggingInterceptor = class LoggingInterceptor {
32
32
  const requestMethod = request.method;
33
33
  const userIp = request.ip;
34
34
  const userAgent = request.headers["user-agent"];
35
+ // Extract user context if authenticated (user may be attached by JWT guard)
36
+ const userId = request.user?.userId;
37
+ const companyId = request.user?.companyId;
35
38
  // Set up request context for logging with trace correlation
36
39
  const logContext = {
37
40
  requestId,
@@ -39,6 +42,8 @@ let LoggingInterceptor = class LoggingInterceptor {
39
42
  userAgent,
40
43
  method: requestMethod,
41
44
  url: requestPath,
45
+ ...(userId && { userId }),
46
+ ...(companyId && { companyId }),
42
47
  };
43
48
  // Set context in ClsService for the entire request lifecycle
44
49
  this.loggingService.setRequestContext(logContext);
@@ -1 +1 @@
1
- {"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../../../src/core/logging/interceptors/logging.interceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.interceptor.js","sourceRoot":"","sources":["../../../../src/core/logging/interceptors/logging.interceptor.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ export interface LogContext {
3
3
  traceId?: string;
4
4
  spanId?: string;
5
5
  userId?: string;
6
+ companyId?: string;
6
7
  ip?: string;
7
8
  userAgent?: string;
8
9
  method?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"logging.interface.d.ts","sourceRoot":"","sources":["../../../../src/core/logging/interfaces/logging.interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging.interface.d.ts","sourceRoot":"","sources":["../../../../src/core/logging/interfaces/logging.interface.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,4 +9,5 @@ export * from "./core";
9
9
  export * from "./foundations";
10
10
  export * from "./agents";
11
11
  export * from "./bootstrap";
12
+ export * from "./openapi";
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAGzB,cAAc,UAAU,CAAC;AAGzB,cAAc,QAAQ,CAAC;AAGvB,cAAc,eAAe,CAAC;AAG9B,cAAc,UAAU,CAAC;AAGzB,cAAc,aAAa,CAAC;AAG5B,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -31,4 +31,6 @@ __exportStar(require("./foundations"), exports);
31
31
  __exportStar(require("./agents"), exports);
32
32
  // Bootstrap utilities
33
33
  __exportStar(require("./bootstrap"), exports);
34
+ // OpenAPI module exports
35
+ __exportStar(require("./openapi"), exports);
34
36
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AAEvB,4BAA4B;AAC5B,gDAA8B;AAE9B,uBAAuB;AACvB,2CAAyB;AAEzB,sBAAsB;AACtB,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,iBAAiB;AACjB,2CAAyB;AAEzB,iBAAiB;AACjB,2CAAyB;AAEzB,sBAAsB;AACtB,yCAAuB;AAEvB,4BAA4B;AAC5B,gDAA8B;AAE9B,uBAAuB;AACvB,2CAAyB;AAEzB,sBAAsB;AACtB,8CAA4B;AAE5B,yBAAyB;AACzB,4CAA0B"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Options for @ApiJsonApiErrors decorator.
3
+ */
4
+ export interface ApiJsonApiErrorsOptions {
5
+ badRequest?: boolean;
6
+ unauthorized?: boolean;
7
+ forbidden?: boolean;
8
+ notFound?: boolean;
9
+ unprocessable?: boolean;
10
+ serverError?: boolean;
11
+ }
12
+ /**
13
+ * Decorator that adds common JSON:API error responses to an endpoint.
14
+ * By default adds 401 (Unauthorized) and 500 (Server Error).
15
+ *
16
+ * @example
17
+ * @ApiJsonApiErrors()
18
+ * @Get()
19
+ * findAll() { ... }
20
+ *
21
+ * @example
22
+ * @ApiJsonApiErrors({ notFound: true })
23
+ * @Get(':id')
24
+ * findById() { ... }
25
+ */
26
+ export declare function ApiJsonApiErrors(options?: ApiJsonApiErrorsOptions): MethodDecorator;
27
+ /**
28
+ * Convenience decorator for read endpoints (GET by ID).
29
+ * Adds 401, 404, and 500 error responses.
30
+ */
31
+ export declare function ApiJsonApiReadErrors(): MethodDecorator;
32
+ /**
33
+ * Convenience decorator for list endpoints (GET all).
34
+ * Adds 401 and 500 error responses.
35
+ */
36
+ export declare function ApiJsonApiListErrors(): MethodDecorator;
37
+ /**
38
+ * Convenience decorator for create endpoints (POST).
39
+ * Adds 400, 401, 422, and 500 error responses.
40
+ */
41
+ export declare function ApiJsonApiCreateErrors(): MethodDecorator;
42
+ /**
43
+ * Convenience decorator for update endpoints (PUT/PATCH).
44
+ * Adds 400, 401, 404, 422, and 500 error responses.
45
+ */
46
+ export declare function ApiJsonApiUpdateErrors(): MethodDecorator;
47
+ /**
48
+ * Convenience decorator for delete endpoints (DELETE).
49
+ * Adds 401, 403, 404, and 500 error responses.
50
+ */
51
+ export declare function ApiJsonApiDeleteErrors(): MethodDecorator;
52
+ //# sourceMappingURL=api-jsonapi-error.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-jsonapi-error.decorator.d.ts","sourceRoot":"","sources":["../../../src/openapi/decorators/api-jsonapi-error.decorator.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,eAAe,CAmEvF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,CAExD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,CAMxD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,CAExD"}