glasswork 0.9.2 → 0.10.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 (105) hide show
  1. package/dist/core/bootstrap.d.ts +2 -1
  2. package/dist/core/bootstrap.d.ts.map +1 -1
  3. package/dist/core/bootstrap.js +121 -44
  4. package/dist/core/bootstrap.js.map +1 -1
  5. package/dist/core/types.d.ts +53 -3
  6. package/dist/core/types.d.ts.map +1 -1
  7. package/dist/http/error-handler.d.ts +28 -3
  8. package/dist/http/error-handler.d.ts.map +1 -1
  9. package/dist/http/error-handler.js +97 -22
  10. package/dist/http/error-handler.js.map +1 -1
  11. package/dist/http/errors.d.ts +52 -22
  12. package/dist/http/errors.d.ts.map +1 -1
  13. package/dist/http/errors.js +62 -42
  14. package/dist/http/errors.js.map +1 -1
  15. package/dist/http/route-helpers.d.ts +13 -0
  16. package/dist/http/route-helpers.d.ts.map +1 -1
  17. package/dist/http/route-helpers.js +15 -3
  18. package/dist/http/route-helpers.js.map +1 -1
  19. package/dist/index.d.ts +5 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +9 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/list-query/builder.d.ts +5 -0
  24. package/dist/list-query/builder.d.ts.map +1 -1
  25. package/dist/list-query/builder.js +34 -1
  26. package/dist/list-query/builder.js.map +1 -1
  27. package/dist/middleware/rate-limit.d.ts.map +1 -1
  28. package/dist/middleware/rate-limit.js +28 -18
  29. package/dist/middleware/rate-limit.js.map +1 -1
  30. package/dist/observability/exception-tracking.d.ts +214 -0
  31. package/dist/observability/exception-tracking.d.ts.map +1 -0
  32. package/dist/observability/exception-tracking.js +238 -0
  33. package/dist/observability/exception-tracking.js.map +1 -0
  34. package/dist/observability/pino-logger.d.ts +108 -0
  35. package/dist/observability/pino-logger.d.ts.map +1 -0
  36. package/dist/observability/pino-logger.js +158 -0
  37. package/dist/observability/pino-logger.js.map +1 -0
  38. package/dist/observability/request-context.d.ts +105 -0
  39. package/dist/observability/request-context.d.ts.map +1 -0
  40. package/dist/observability/request-context.js +115 -0
  41. package/dist/observability/request-context.js.map +1 -0
  42. package/dist/openapi/openapi.d.ts.map +1 -1
  43. package/dist/openapi/openapi.js +3 -1
  44. package/dist/openapi/openapi.js.map +1 -1
  45. package/dist/utils/environment.d.ts +2 -1
  46. package/dist/utils/environment.d.ts.map +1 -1
  47. package/dist/utils/environment.js +11 -2
  48. package/dist/utils/environment.js.map +1 -1
  49. package/dist/utils/logger.d.ts +43 -9
  50. package/dist/utils/logger.d.ts.map +1 -1
  51. package/dist/utils/logger.js +60 -16
  52. package/dist/utils/logger.js.map +1 -1
  53. package/package.json +6 -1
  54. package/dist/authorization/ability-middleware.d.ts +0 -61
  55. package/dist/authorization/ability-middleware.d.ts.map +0 -1
  56. package/dist/authorization/ability-middleware.js +0 -74
  57. package/dist/authorization/ability-middleware.js.map +0 -1
  58. package/dist/authorization/index.d.ts +0 -46
  59. package/dist/authorization/index.d.ts.map +0 -1
  60. package/dist/authorization/index.js +0 -46
  61. package/dist/authorization/index.js.map +0 -1
  62. package/dist/authorization/route-helpers.d.ts +0 -106
  63. package/dist/authorization/route-helpers.d.ts.map +0 -1
  64. package/dist/authorization/route-helpers.js +0 -136
  65. package/dist/authorization/route-helpers.js.map +0 -1
  66. package/dist/authorization/service-proxy.d.ts +0 -59
  67. package/dist/authorization/service-proxy.d.ts.map +0 -1
  68. package/dist/authorization/service-proxy.js +0 -110
  69. package/dist/authorization/service-proxy.js.map +0 -1
  70. package/dist/authorization/types.d.ts +0 -58
  71. package/dist/authorization/types.d.ts.map +0 -1
  72. package/dist/authorization/types.js +0 -7
  73. package/dist/authorization/types.js.map +0 -1
  74. package/dist/hooks/authorization-hook.d.ts +0 -100
  75. package/dist/hooks/authorization-hook.d.ts.map +0 -1
  76. package/dist/hooks/authorization-hook.js +0 -93
  77. package/dist/hooks/authorization-hook.js.map +0 -1
  78. package/dist/hooks/index.d.ts +0 -54
  79. package/dist/hooks/index.d.ts.map +0 -1
  80. package/dist/hooks/index.js +0 -55
  81. package/dist/hooks/index.js.map +0 -1
  82. package/dist/hooks/service-hooks.d.ts +0 -82
  83. package/dist/hooks/service-hooks.d.ts.map +0 -1
  84. package/dist/hooks/service-hooks.js +0 -158
  85. package/dist/hooks/service-hooks.js.map +0 -1
  86. package/dist/hooks/types.d.ts +0 -151
  87. package/dist/hooks/types.d.ts.map +0 -1
  88. package/dist/hooks/types.js +0 -2
  89. package/dist/hooks/types.js.map +0 -1
  90. package/dist/openapi/hooks.d.ts +0 -14
  91. package/dist/openapi/hooks.d.ts.map +0 -1
  92. package/dist/openapi/hooks.js +0 -83
  93. package/dist/openapi/hooks.js.map +0 -1
  94. package/dist/openapi/openapi-transformer.d.ts +0 -13
  95. package/dist/openapi/openapi-transformer.d.ts.map +0 -1
  96. package/dist/openapi/openapi-transformer.js +0 -87
  97. package/dist/openapi/openapi-transformer.js.map +0 -1
  98. package/dist/utils/pagination.d.ts +0 -48
  99. package/dist/utils/pagination.d.ts.map +0 -1
  100. package/dist/utils/pagination.js +0 -42
  101. package/dist/utils/pagination.js.map +0 -1
  102. package/dist/utils/serialize-dates.d.ts +0 -27
  103. package/dist/utils/serialize-dates.d.ts.map +0 -1
  104. package/dist/utils/serialize-dates.js +0 -39
  105. package/dist/utils/serialize-dates.js.map +0 -1
@@ -50,6 +50,7 @@ export declare function validateNoCycles(modules: ModuleConfig[]): void;
50
50
  /**
51
51
  * Register module providers with Awilix container
52
52
  * @internal - exported for testing utilities
53
+ * @returns Array of async factory provider names that need to be resolved
53
54
  */
54
- export declare function registerModuleProviders(module: ModuleConfig, container: AwilixContainer, logger: import('../utils/logger.js').Logger): void;
55
+ export declare function registerModuleProviders(module: ModuleConfig, container: AwilixContainer, logger: import('../utils/logger.js').Logger): string[];
55
56
  //# sourceMappingURL=bootstrap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAe9C,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAKf,YAAY,EAMb,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,YAAY,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAkG1B;AAkND;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY,EAAE,CAuBvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CA2C9D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,OAAO,oBAAoB,EAAE,MAAM,GAC1C,IAAI,CAQN"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAsB9C,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAKf,YAAY,EAMb,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,YAAY,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAgH1B;AAiPD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,YAAY,GAAG,YAAY,EAAE,CAuBvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,IAAI,CA2C9D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,OAAO,oBAAoB,EAAE,MAAM,GAC1C,MAAM,EAAE,CAeV"}
@@ -4,13 +4,15 @@ import { cors } from 'hono/cors';
4
4
  import { logger as honoLogger } from 'hono/logger';
5
5
  import { requestId } from 'hono/request-id';
6
6
  import { secureHeaders } from 'hono/secure-headers';
7
- import { defaultErrorHandler } from '../http/error-handler.js';
7
+ import { createErrorHandler, defaultErrorHandler } from '../http/error-handler.js';
8
8
  import { route, setOpenAPIContext } from '../http/route-helpers.js';
9
9
  import { createRateLimitMiddleware } from '../middleware/rate-limit.js';
10
+ import { createPinoHttpMiddleware } from '../observability/pino-logger.js';
11
+ import { createRequestContextMiddleware } from '../observability/request-context.js';
10
12
  import { configureOpenAPI } from '../openapi/openapi.js';
11
13
  import { createBuiltinProcessors } from '../openapi/openapi-processors.js';
12
- import { isLambda } from '../utils/environment.js';
13
- import { createLogger, createPlainLogger } from '../utils/logger.js';
14
+ import { isLambda, isTest } from '../utils/environment.js';
15
+ import { createLogger, createPlainLogger, getDefaultLogLevel, } from '../utils/logger.js';
14
16
  /**
15
17
  * Detect environment from NODE_ENV or AWS Lambda context
16
18
  */
@@ -65,24 +67,35 @@ function detectEnvironment() {
65
67
  * ```
66
68
  */
67
69
  export async function bootstrap(rootModule, options = {}) {
68
- const { apiBasePath = '/api', debug = false, environment = detectEnvironment(), errorHandler = defaultErrorHandler, openapi, rateLimit, middleware, logger, } = options;
70
+ const { apiBasePath = '/api', debug = false, environment = detectEnvironment(), errorHandler = defaultErrorHandler, openapi, rateLimit, middleware, logger, exceptionTracking, } = options;
69
71
  // Create logger for bootstrap process
70
- const bootstrapLogger = createLogger('Glasswork', debug);
72
+ // Convert debug boolean to log level: debug=true -> 'debug', debug=false -> default level
73
+ // In test mode, use silent unless debug=true is explicitly set (for testing/debugging)
74
+ const bootstrapLogLevel = debug ? 'debug' : isTest() ? 'silent' : getDefaultLogLevel();
75
+ const bootstrapLogger = createLogger('Glasswork', bootstrapLogLevel);
71
76
  // Create Awilix container with PROXY mode (Lambda-compatible)
72
77
  const container = createContainer({
73
78
  injectionMode: InjectionMode.PROXY,
74
79
  strict: true,
75
80
  });
76
- bootstrapLogger.info('Bootstrapping application...');
81
+ bootstrapLogger.debug('Bootstrapping application...');
77
82
  // Collect all modules (flatten imports)
78
83
  const allModules = collectModules(rootModule);
79
- bootstrapLogger.info(`Found ${allModules.length} modules: ${allModules.map((m) => m.name).join(', ')}`);
84
+ bootstrapLogger.debug(`Found ${allModules.length} modules: ${allModules.map((m) => m.name).join(', ')}`);
80
85
  // Validate no circular dependencies
81
86
  validateNoCycles(allModules);
82
- // Register all providers
87
+ // Register all providers and collect async factory names
88
+ const asyncFactoryNames = [];
83
89
  for (const module of allModules) {
84
- bootstrapLogger.info(`Registering module: ${module.name}`);
85
- registerModuleProviders(module, container, bootstrapLogger);
90
+ bootstrapLogger.debug(`Registering module: ${module.name}`);
91
+ const moduleAsyncFactories = registerModuleProviders(module, container, bootstrapLogger);
92
+ asyncFactoryNames.push(...moduleAsyncFactories);
93
+ }
94
+ // Resolve async factories and re-register them as values
95
+ // This ensures all async providers are fully initialized before bootstrap completes
96
+ if (asyncFactoryNames.length > 0) {
97
+ bootstrapLogger.debug(`Resolving ${asyncFactoryNames.length} async factory providers...`);
98
+ await resolveAsyncFactories(container, asyncFactoryNames, bootstrapLogger);
86
99
  }
87
100
  // Create Hono app and apply middleware
88
101
  const { app, openAPIContext } = createApp({
@@ -92,6 +105,7 @@ export async function bootstrap(rootModule, options = {}) {
92
105
  rateLimit,
93
106
  middleware,
94
107
  logger,
108
+ exceptionTracking,
95
109
  bootstrapLogger,
96
110
  });
97
111
  // Mount module routes
@@ -103,32 +117,32 @@ export async function bootstrap(rootModule, options = {}) {
103
117
  bootstrapLogger,
104
118
  openAPIContext,
105
119
  });
106
- bootstrapLogger.info('Bootstrap complete');
107
- bootstrapLogger.info(`Environment: ${environment}`);
108
- bootstrapLogger.info(`Registered ${Object.keys(container.cradle).length} services`);
120
+ bootstrapLogger.debug('Bootstrap complete');
121
+ bootstrapLogger.debug(`Environment: ${environment}`);
122
+ bootstrapLogger.debug(`Registered ${Object.keys(container.cradle).length} services`);
109
123
  // State tracking for idempotency
110
124
  let isStarted = false;
111
125
  let isStopped = false;
112
126
  // Define start and stop functions
113
127
  const start = async () => {
114
128
  if (isStarted) {
115
- bootstrapLogger.warn('Application already started, skipping onModuleInit');
129
+ bootstrapLogger.debug('Application already started, skipping onModuleInit');
116
130
  return;
117
131
  }
118
132
  isStarted = true;
119
- bootstrapLogger.info('Starting application (running onModuleInit)...');
133
+ bootstrapLogger.debug('Starting application (running onModuleInit)...');
120
134
  await executeLifecycleHooks(container, 'onModuleInit', bootstrapLogger);
121
- bootstrapLogger.info('Application started successfully');
135
+ bootstrapLogger.debug('Application started successfully');
122
136
  };
123
137
  const stop = async () => {
124
138
  if (isStopped) {
125
- bootstrapLogger.warn('Application already stopped, skipping onModuleDestroy');
139
+ bootstrapLogger.debug('Application already stopped, skipping onModuleDestroy');
126
140
  return;
127
141
  }
128
142
  isStopped = true;
129
- bootstrapLogger.info('Stopping application (running onModuleDestroy)...');
143
+ bootstrapLogger.debug('Stopping application (running onModuleDestroy)...');
130
144
  await executeLifecycleHooks(container, 'onModuleDestroy', bootstrapLogger);
131
- bootstrapLogger.info('Application stopped successfully');
145
+ bootstrapLogger.debug('Application stopped successfully');
132
146
  };
133
147
  // Auto-start in production/development (but not test)
134
148
  // This ensures providers are initialized before requests come in
@@ -156,7 +170,7 @@ function createApp(options) {
156
170
  * Build the OpenAPI context with processors and security schemes
157
171
  */
158
172
  function buildOpenAPIContext(options) {
159
- const { openapi, rateLimit, middleware } = options;
173
+ const { openapi, rateLimit, middleware, logger } = options;
160
174
  // Create built-in processors based on config
161
175
  const builtinProcessors = createBuiltinProcessors({
162
176
  corsEnabled: !!middleware?.cors,
@@ -171,16 +185,29 @@ function buildOpenAPIContext(options) {
171
185
  if (components?.securitySchemes) {
172
186
  securitySchemes.push(...Object.keys(components.securitySchemes));
173
187
  }
174
- return { processors, securitySchemes };
188
+ return { processors, securitySchemes, pino: logger?.pino };
175
189
  }
176
190
  /**
177
191
  * Apply error handler to the app
178
192
  */
179
- function applyErrorHandler(app, { errorHandler, bootstrapLogger, }) {
193
+ function applyErrorHandler(app, { errorHandler, exceptionTracking, bootstrapLogger, }) {
180
194
  if (errorHandler === false)
181
195
  return;
182
- bootstrapLogger.info('Applying error handler');
183
- app.onError(errorHandler);
196
+ // If using default error handler and exception tracking is configured, create custom handler
197
+ if (errorHandler === defaultErrorHandler && exceptionTracking) {
198
+ bootstrapLogger.debug('Applying error handler with exception tracking');
199
+ const customErrorHandler = createErrorHandler({
200
+ exceptionTracker: exceptionTracking.tracker,
201
+ trackingConfig: {
202
+ trackStatusCodes: exceptionTracking.trackStatusCodes ?? ((status) => status >= 500),
203
+ },
204
+ });
205
+ app.onError(customErrorHandler);
206
+ }
207
+ else {
208
+ bootstrapLogger.debug('Applying error handler');
209
+ app.onError(errorHandler);
210
+ }
184
211
  }
185
212
  /**
186
213
  * Apply security-related middleware (secure headers, request ID, CORS)
@@ -188,17 +215,17 @@ function applyErrorHandler(app, { errorHandler, bootstrapLogger, }) {
188
215
  function applySecurityMiddleware(app, { environment, middleware, bootstrapLogger, }) {
189
216
  // Secure headers (default: true in production)
190
217
  if (middleware?.secureHeaders !== false && environment === 'production') {
191
- bootstrapLogger.info('Applying secure headers');
218
+ bootstrapLogger.debug('Applying secure headers');
192
219
  app.use(secureHeaders());
193
220
  }
194
221
  // Request ID (default: true)
195
222
  if (middleware?.requestId !== false) {
196
- bootstrapLogger.info('Applying request ID middleware');
223
+ bootstrapLogger.debug('Applying request ID middleware');
197
224
  app.use(requestId());
198
225
  }
199
226
  // CORS
200
227
  if (middleware?.cors) {
201
- bootstrapLogger.info('Applying CORS middleware');
228
+ bootstrapLogger.debug('Applying CORS middleware');
202
229
  app.use(cors(middleware.cors));
203
230
  }
204
231
  }
@@ -208,9 +235,22 @@ function applySecurityMiddleware(app, { environment, middleware, bootstrapLogger
208
235
  function applyLoggingMiddleware(app, { logger, bootstrapLogger, }) {
209
236
  if (logger?.enabled === false)
210
237
  return;
211
- // Auto-detect plain mode based on environment if not specified
212
- const usePlainLogger = logger?.plain ?? isLambda();
213
- bootstrapLogger.info(`Applying logger (plain: ${usePlainLogger})`);
238
+ // If Pino logger instance provided, use structured logging with request context
239
+ if (logger?.pino) {
240
+ bootstrapLogger.debug('Applying Pino logger with request context (AsyncLocalStorage)');
241
+ // Apply request context middleware first (sets up AsyncLocalStorage)
242
+ app.use(createRequestContextMiddleware());
243
+ // Apply Pino HTTP logging middleware
244
+ app.use(createPinoHttpMiddleware(logger.pino));
245
+ return;
246
+ }
247
+ // In test mode, skip HTTP logging unless explicitly enabled
248
+ if (isTest()) {
249
+ return;
250
+ }
251
+ // Default: Use plain logger for Lambda or colored logger for development
252
+ const usePlainLogger = isLambda();
253
+ bootstrapLogger.debug(`Applying built-in logger (plain: ${usePlainLogger})`);
214
254
  app.use(usePlainLogger ? createPlainLogger() : honoLogger());
215
255
  }
216
256
  /**
@@ -219,7 +259,7 @@ function applyLoggingMiddleware(app, { logger, bootstrapLogger, }) {
219
259
  function applyRateLimiting(app, { rateLimit, bootstrapLogger, }) {
220
260
  if (!rateLimit?.enabled)
221
261
  return;
222
- bootstrapLogger.info(`Rate limiting enabled (${rateLimit.storage} storage, ${rateLimit.maxRequests || 100} req/${rateLimit.windowMs || 60000}ms)`);
262
+ bootstrapLogger.debug(`Rate limiting enabled (${rateLimit.storage} storage, ${rateLimit.maxRequests || 100} req/${rateLimit.windowMs || 60000}ms)`);
223
263
  app.use(createRateLimitMiddleware(rateLimit));
224
264
  }
225
265
  /**
@@ -229,7 +269,7 @@ function applyOpenAPIDocumentation(app, options) {
229
269
  const { environment, openapi, rateLimit, middleware, bootstrapLogger } = options;
230
270
  if (!openapi?.enabled)
231
271
  return;
232
- bootstrapLogger.info('Configuring OpenAPI');
272
+ bootstrapLogger.debug('Configuring OpenAPI');
233
273
  configureOpenAPI({ app, environment, openapi, rateLimit, middleware });
234
274
  }
235
275
  /**
@@ -241,7 +281,7 @@ function mountModuleRoutes(options) {
241
281
  if (!module.routes || !module.basePath) {
242
282
  continue;
243
283
  }
244
- bootstrapLogger.info(`Mounting routes: ${apiBasePath}/${module.basePath}`);
284
+ bootstrapLogger.debug(`Mounting routes: ${apiBasePath}/${module.basePath}`);
245
285
  const router = new Hono();
246
286
  // Set OpenAPI context on the router so routes can access it
247
287
  setOpenAPIContext(router, openAPIContext);
@@ -318,40 +358,46 @@ export function validateNoCycles(modules) {
318
358
  /**
319
359
  * Register module providers with Awilix container
320
360
  * @internal - exported for testing utilities
361
+ * @returns Array of async factory provider names that need to be resolved
321
362
  */
322
363
  export function registerModuleProviders(module, container, logger) {
364
+ const asyncFactoryNames = [];
323
365
  if (!module.providers) {
324
- return;
366
+ return asyncFactoryNames;
325
367
  }
326
368
  for (const provider of module.providers) {
327
- registerProvider(provider, container, module.name, logger);
369
+ const asyncFactoryName = registerProvider(provider, container, module.name, logger);
370
+ if (asyncFactoryName) {
371
+ asyncFactoryNames.push(asyncFactoryName);
372
+ }
328
373
  }
374
+ return asyncFactoryNames;
329
375
  }
330
376
  /**
331
377
  * Register a single provider with Awilix
378
+ * @returns The provider name if it's an async factory, undefined otherwise
332
379
  */
333
380
  function registerProvider(provider, container, moduleName, logger) {
334
381
  if (typeof provider === 'function') {
335
382
  registerClassProvider(provider, container, logger);
336
- return;
383
+ return undefined;
337
384
  }
338
385
  if ('useClass' in provider) {
339
386
  registerExplicitClassProvider(provider, container, logger);
340
- return;
387
+ return undefined;
341
388
  }
342
389
  if ('useValue' in provider) {
343
390
  registerValueProvider(provider, container, logger);
344
- return;
391
+ return undefined;
345
392
  }
346
393
  if ('useFactory' in provider) {
347
- registerFactoryProvider(provider, container, logger);
348
- return;
394
+ return registerFactoryProvider(provider, container, logger);
349
395
  }
350
396
  throw new Error(`Invalid provider configuration in module "${moduleName}"`);
351
397
  }
352
398
  function registerClassProvider(provider, container, logger) {
353
399
  const name = camelCase(provider.name);
354
- logger.info(` - Registering ${name} (${provider.name})`);
400
+ logger.debug(` - Registering ${name} (${provider.name})`);
355
401
  container.register({
356
402
  [name]: asClass(provider).singleton(),
357
403
  });
@@ -359,21 +405,26 @@ function registerClassProvider(provider, container, logger) {
359
405
  function registerExplicitClassProvider(provider, container, logger) {
360
406
  const name = typeof provider.provide === 'string' ? provider.provide : camelCase(provider.provide.name);
361
407
  const scope = provider.scope || 'SINGLETON';
362
- logger.info(` - Registering ${name} (scope: ${scope})`);
408
+ logger.debug(` - Registering ${name} (scope: ${scope})`);
363
409
  const registration = asClass(provider.useClass);
364
410
  container.register({
365
411
  [name]: applyScopeToRegistration(registration, scope),
366
412
  });
367
413
  }
368
414
  function registerValueProvider(provider, container, logger) {
369
- logger.info(` - Registering ${provider.provide} (value)`);
415
+ logger.debug(` - Registering ${provider.provide} (value)`);
370
416
  container.register({
371
417
  [provider.provide]: asValue(provider.useValue),
372
418
  });
373
419
  }
420
+ /**
421
+ * Register a factory provider with Awilix
422
+ * @returns The provider name if it's an async factory, undefined otherwise
423
+ */
374
424
  function registerFactoryProvider(provider, container, logger) {
375
425
  const scope = provider.scope || 'SINGLETON';
376
- logger.info(` - Registering ${provider.provide} (factory, scope: ${scope})`);
426
+ const isAsync = isAsyncFunction(provider.useFactory);
427
+ logger.debug(` - Registering ${provider.provide} (factory${isAsync ? ' async' : ''}, scope: ${scope})`);
377
428
  const registration = asFunction(provider.useFactory);
378
429
  // Apply dependency injection if specified
379
430
  if (provider.inject && provider.inject.length > 0) {
@@ -382,6 +433,32 @@ function registerFactoryProvider(provider, container, logger) {
382
433
  container.register({
383
434
  [provider.provide]: applyScopeToRegistration(registration, scope),
384
435
  });
436
+ // Return the name if this is an async factory so it can be resolved during bootstrap
437
+ return isAsync ? provider.provide : undefined;
438
+ }
439
+ /**
440
+ * Check if a function is async (returns a Promise)
441
+ */
442
+ function isAsyncFunction(fn) {
443
+ return fn.constructor.name === 'AsyncFunction';
444
+ }
445
+ /**
446
+ * Resolve async factory providers and re-register them as values.
447
+ * This ensures all async providers are fully initialized before bootstrap completes.
448
+ */
449
+ async function resolveAsyncFactories(container, names, logger) {
450
+ for (const name of names) {
451
+ logger.debug(` - Resolving async factory: ${name}`);
452
+ const resolved = container.resolve(name);
453
+ // If the resolved value is a Promise, await it and re-register as a value
454
+ if (resolved instanceof Promise) {
455
+ const value = await resolved;
456
+ container.register({
457
+ [name]: asValue(value),
458
+ });
459
+ logger.debug(` - Resolved ${name} (async factory → value)`);
460
+ }
461
+ }
385
462
  }
386
463
  function applyScopeToRegistration(registration, scope) {
387
464
  if (scope === 'SCOPED') {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -356,10 +356,55 @@ export interface LoggerOptions {
356
356
  */
357
357
  enabled?: boolean;
358
358
  /**
359
- * Use plain logger (no ANSI colors) for Lambda/CloudWatch
360
- * Auto-detected based on environment if not specified
359
+ * Pino logger instance (recommended for Lambda).
360
+ *
361
+ * When provided, enables:
362
+ * - Automatic request ID binding via AsyncLocalStorage
363
+ * - Structured JSON logging optimized for CloudWatch Logs Insights
364
+ * - Automatic context propagation to services via `getRequestId()`
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * import pino from 'pino';
369
+ *
370
+ * const { app } = await bootstrap(AppModule, {
371
+ * logger: {
372
+ * pino: pino({ level: 'info' }),
373
+ * },
374
+ * });
375
+ *
376
+ * // In your services:
377
+ * import { getRequestId } from 'glasswork';
378
+ * const requestId = getRequestId(); // Works automatically!
379
+ * ```
380
+ */
381
+ pino?: import('../observability/pino-logger.js').PinoLogger;
382
+ }
383
+ /**
384
+ * Exception tracking configuration options
385
+ */
386
+ export interface ExceptionTrackingOptions {
387
+ /**
388
+ * Exception tracker instance (AppSignal, Sentry, etc.)
361
389
  */
362
- plain?: boolean;
390
+ tracker: import('../observability/exception-tracking.js').ExceptionTracker;
391
+ /**
392
+ * Function to determine which HTTP status codes trigger tracking
393
+ * @default (status) => status >= 500 (only 5xx errors)
394
+ *
395
+ * @example
396
+ * ```typescript
397
+ * // Track 5xx and 404 errors
398
+ * trackStatusCodes: (status) => status >= 500 || status === 404
399
+ *
400
+ * // Track only 5xx (default)
401
+ * trackStatusCodes: (status) => status >= 500
402
+ *
403
+ * // Track all errors
404
+ * trackStatusCodes: () => true
405
+ * ```
406
+ */
407
+ trackStatusCodes?: (statusCode: number) => boolean;
363
408
  }
364
409
  /**
365
410
  * Bootstrap options
@@ -396,6 +441,11 @@ export interface BootstrapOptions {
396
441
  * Logger configuration
397
442
  */
398
443
  logger?: LoggerOptions;
444
+ /**
445
+ * Exception tracking configuration (Sentry, AppSignal, etc.)
446
+ * @default undefined (no tracking)
447
+ */
448
+ exceptionTracking?: ExceptionTrackingOptions;
399
449
  /**
400
450
  * Enable debug logging
401
451
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,43 @@
1
1
  import type { Context, ErrorHandler } from 'hono';
2
2
  import type { ContentfulStatusCode } from 'hono/utils/http-status';
3
+ import { type LogLevel } from '../utils/logger.js';
4
+ /**
5
+ * Exception tracker interface (duplicated here to avoid import dependency)
6
+ */
7
+ interface ExceptionTracker {
8
+ captureException(error: Error, context?: Record<string, unknown>): void;
9
+ }
10
+ /**
11
+ * Exception tracking configuration
12
+ */
13
+ interface ExceptionTrackingConfig {
14
+ trackStatusCodes: (statusCode: number) => boolean;
15
+ }
3
16
  interface FormattedError {
4
17
  message: string;
5
18
  statusCode: ContentfulStatusCode;
6
19
  }
7
20
  interface ErrorHandlerOptions {
8
21
  /**
9
- * Whether to log errors to console
10
- * @default true in development, false in test
22
+ * Log level for error logging.
23
+ * Errors are logged if level allows (error level or lower).
24
+ * @default Uses default log level (silent in test, info otherwise)
11
25
  */
12
- logErrors?: boolean;
26
+ logLevel?: LogLevel;
13
27
  /**
14
28
  * Custom error response handler
15
29
  */
16
30
  responseHandler?: (error: FormattedError, context: Context) => Response | Promise<Response>;
31
+ /**
32
+ * Exception tracker for external error monitoring (Sentry, AppSignal, etc.)
33
+ * @default undefined (no tracking)
34
+ */
35
+ exceptionTracker?: ExceptionTracker;
36
+ /**
37
+ * Exception tracking configuration
38
+ * @default { trackStatusCodes: (status) => status >= 500 }
39
+ */
40
+ trackingConfig?: Pick<ExceptionTrackingConfig, 'trackStatusCodes'>;
17
41
  }
18
42
  /**
19
43
  * Create an error handler middleware for Hono
@@ -23,6 +47,7 @@ interface ErrorHandlerOptions {
23
47
  * - HTTPException (Hono's built-in HTTP exceptions)
24
48
  * - Validation errors (returns 422)
25
49
  * - Generic errors (returns 500)
50
+ * - Exception tracking (optional, via exceptionTracker option)
26
51
  */
27
52
  export declare function createErrorHandler(options?: ErrorHandlerOptions): ErrorHandler;
28
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/http/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAMnE,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED,UAAU,mBAAmB;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC7F;AAcD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CA+BlF;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,cAAuB,CAAC"}
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/http/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAiD,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGlG;;GAEG;AACH,UAAU,gBAAgB;IACxB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzE;AAED;;GAEG;AACH,UAAU,uBAAuB;IAC/B,gBAAgB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;CACnD;AAKD,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,oBAAoB,CAAC;CAClC;AAED,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5F;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,cAAc,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;CACpE;AAwID;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAqDlF;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,cAAuB,CAAC"}