glasswork 1.2.0 → 1.4.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 (170) hide show
  1. package/CHANGELOG.md +37 -1
  2. package/dist/core/bootstrap.d.ts.map +1 -1
  3. package/dist/core/bootstrap.js +110 -25
  4. package/dist/core/bootstrap.js.map +1 -1
  5. package/dist/core/contract.d.ts +37 -0
  6. package/dist/core/contract.d.ts.map +1 -0
  7. package/dist/core/contract.js +19 -0
  8. package/dist/core/contract.js.map +1 -0
  9. package/dist/core/index.d.ts +1 -0
  10. package/dist/core/index.d.ts.map +1 -1
  11. package/dist/core/index.js +1 -0
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/core/types.d.ts +12 -0
  14. package/dist/core/types.d.ts.map +1 -1
  15. package/dist/email/email-service.d.ts +5 -2
  16. package/dist/email/email-service.d.ts.map +1 -1
  17. package/dist/email/email-service.js +8 -4
  18. package/dist/email/email-service.js.map +1 -1
  19. package/dist/email/index.d.ts +1 -1
  20. package/dist/email/index.d.ts.map +1 -1
  21. package/dist/email/index.js.map +1 -1
  22. package/dist/email/templated-email-service.d.ts.map +1 -1
  23. package/dist/email/templated-email-service.js +2 -1
  24. package/dist/email/templated-email-service.js.map +1 -1
  25. package/dist/email/types.d.ts +9 -4
  26. package/dist/email/types.d.ts.map +1 -1
  27. package/dist/email/webhooks/handler-factory.d.ts.map +1 -1
  28. package/dist/email/webhooks/handler-factory.js +7 -3
  29. package/dist/email/webhooks/handler-factory.js.map +1 -1
  30. package/dist/email/webhooks/notification-parser.d.ts +2 -1
  31. package/dist/email/webhooks/notification-parser.d.ts.map +1 -1
  32. package/dist/email/webhooks/notification-parser.js +1 -2
  33. package/dist/email/webhooks/notification-parser.js.map +1 -1
  34. package/dist/email/webhooks/signature-verification.d.ts.map +1 -1
  35. package/dist/email/webhooks/signature-verification.js +3 -3
  36. package/dist/email/webhooks/signature-verification.js.map +1 -1
  37. package/dist/email/webhooks/subscription-handler.d.ts +2 -0
  38. package/dist/email/webhooks/subscription-handler.d.ts.map +1 -1
  39. package/dist/email/webhooks/subscription-handler.js +5 -5
  40. package/dist/email/webhooks/subscription-handler.js.map +1 -1
  41. package/dist/email/webhooks/types.d.ts +2 -0
  42. package/dist/email/webhooks/types.d.ts.map +1 -1
  43. package/dist/http/error-handler.d.ts +3 -1
  44. package/dist/http/error-handler.d.ts.map +1 -1
  45. package/dist/http/error-handler.js +3 -4
  46. package/dist/http/error-handler.js.map +1 -1
  47. package/dist/http/index.d.ts +1 -0
  48. package/dist/http/index.d.ts.map +1 -1
  49. package/dist/http/index.js +1 -0
  50. package/dist/http/index.js.map +1 -1
  51. package/dist/http/route-context.d.ts.map +1 -1
  52. package/dist/http/route-context.js +7 -2
  53. package/dist/http/route-context.js.map +1 -1
  54. package/dist/http/route-helpers.d.ts.map +1 -1
  55. package/dist/http/route-helpers.js +1 -1
  56. package/dist/http/route-helpers.js.map +1 -1
  57. package/dist/http/route-openapi-context.d.ts +2 -0
  58. package/dist/http/route-openapi-context.d.ts.map +1 -1
  59. package/dist/http/route-openapi-context.js.map +1 -1
  60. package/dist/http/route-response.d.ts +2 -1
  61. package/dist/http/route-response.d.ts.map +1 -1
  62. package/dist/http/route-response.js +3 -4
  63. package/dist/http/route-response.js.map +1 -1
  64. package/dist/jobs/define-job.d.ts +12 -8
  65. package/dist/jobs/define-job.d.ts.map +1 -1
  66. package/dist/jobs/define-job.js +2 -0
  67. package/dist/jobs/define-job.js.map +1 -1
  68. package/dist/jobs/drivers/mock-driver.d.ts +3 -1
  69. package/dist/jobs/drivers/mock-driver.d.ts.map +1 -1
  70. package/dist/jobs/drivers/mock-driver.js +15 -21
  71. package/dist/jobs/drivers/mock-driver.js.map +1 -1
  72. package/dist/jobs/index.d.ts +2 -2
  73. package/dist/jobs/index.d.ts.map +1 -1
  74. package/dist/jobs/index.js +1 -1
  75. package/dist/jobs/index.js.map +1 -1
  76. package/dist/jobs/job-runner.d.ts +7 -0
  77. package/dist/jobs/job-runner.d.ts.map +1 -0
  78. package/dist/jobs/job-runner.js +38 -0
  79. package/dist/jobs/job-runner.js.map +1 -0
  80. package/dist/jobs/job-service.d.ts +6 -6
  81. package/dist/jobs/job-service.d.ts.map +1 -1
  82. package/dist/jobs/job-service.js +8 -0
  83. package/dist/jobs/job-service.js.map +1 -1
  84. package/dist/jobs/observability/emf.d.ts +5 -15
  85. package/dist/jobs/observability/emf.d.ts.map +1 -1
  86. package/dist/jobs/observability/emf.js +87 -67
  87. package/dist/jobs/observability/emf.js.map +1 -1
  88. package/dist/jobs/observability/index.d.ts +2 -4
  89. package/dist/jobs/observability/index.d.ts.map +1 -1
  90. package/dist/jobs/observability/index.js +1 -3
  91. package/dist/jobs/observability/index.js.map +1 -1
  92. package/dist/jobs/observability/types.d.ts +16 -193
  93. package/dist/jobs/observability/types.d.ts.map +1 -1
  94. package/dist/jobs/types.d.ts +17 -7
  95. package/dist/jobs/types.d.ts.map +1 -1
  96. package/dist/jobs/worker.d.ts +3 -0
  97. package/dist/jobs/worker.d.ts.map +1 -1
  98. package/dist/jobs/worker.js +66 -13
  99. package/dist/jobs/worker.js.map +1 -1
  100. package/dist/list-query/client.d.ts +36 -0
  101. package/dist/list-query/client.d.ts.map +1 -0
  102. package/dist/list-query/client.js +74 -0
  103. package/dist/list-query/client.js.map +1 -0
  104. package/dist/list-query/parser.d.ts.map +1 -1
  105. package/dist/list-query/parser.js +8 -46
  106. package/dist/list-query/parser.js.map +1 -1
  107. package/dist/list-query/protocol.d.ts +14 -0
  108. package/dist/list-query/protocol.d.ts.map +1 -0
  109. package/dist/list-query/protocol.js +44 -0
  110. package/dist/list-query/protocol.js.map +1 -0
  111. package/dist/list-query/query-schema.d.ts.map +1 -1
  112. package/dist/list-query/query-schema.js +6 -5
  113. package/dist/list-query/query-schema.js.map +1 -1
  114. package/dist/list-query/types.d.ts +2 -5
  115. package/dist/list-query/types.d.ts.map +1 -1
  116. package/dist/middleware/rate-limit.d.ts.map +1 -1
  117. package/dist/middleware/rate-limit.js +1 -1
  118. package/dist/middleware/rate-limit.js.map +1 -1
  119. package/dist/observability/exception-tracking.d.ts +6 -1
  120. package/dist/observability/exception-tracking.d.ts.map +1 -1
  121. package/dist/observability/exception-tracking.js +29 -5
  122. package/dist/observability/exception-tracking.js.map +1 -1
  123. package/dist/observability/index.d.ts +1 -0
  124. package/dist/observability/index.d.ts.map +1 -1
  125. package/dist/observability/index.js +1 -0
  126. package/dist/observability/index.js.map +1 -1
  127. package/dist/observability/pino-logger.d.ts +3 -1
  128. package/dist/observability/pino-logger.d.ts.map +1 -1
  129. package/dist/observability/pino-logger.js +17 -11
  130. package/dist/observability/pino-logger.js.map +1 -1
  131. package/dist/observability/sanitizers.d.ts +14 -0
  132. package/dist/observability/sanitizers.d.ts.map +1 -0
  133. package/dist/observability/sanitizers.js +52 -0
  134. package/dist/observability/sanitizers.js.map +1 -0
  135. package/dist/openapi/drift.d.ts +6 -0
  136. package/dist/openapi/drift.d.ts.map +1 -0
  137. package/dist/openapi/drift.js +18 -0
  138. package/dist/openapi/drift.js.map +1 -0
  139. package/dist/openapi/openapi.d.ts +5 -0
  140. package/dist/openapi/openapi.d.ts.map +1 -1
  141. package/dist/openapi/openapi.js +5 -2
  142. package/dist/openapi/openapi.js.map +1 -1
  143. package/dist/uploads/guardduty.d.ts +20 -0
  144. package/dist/uploads/guardduty.d.ts.map +1 -0
  145. package/dist/uploads/guardduty.js +29 -0
  146. package/dist/uploads/guardduty.js.map +1 -0
  147. package/dist/uploads/index.d.ts +1 -1
  148. package/dist/uploads/index.d.ts.map +1 -1
  149. package/dist/uploads/index.js.map +1 -1
  150. package/dist/uploads/s3-key.d.ts +3 -0
  151. package/dist/uploads/s3-key.d.ts.map +1 -0
  152. package/dist/uploads/s3-key.js +5 -0
  153. package/dist/uploads/s3-key.js.map +1 -0
  154. package/dist/uploads/uploads.service.d.ts +27 -7
  155. package/dist/uploads/uploads.service.d.ts.map +1 -1
  156. package/dist/uploads/uploads.service.js +50 -14
  157. package/dist/uploads/uploads.service.js.map +1 -1
  158. package/package.json +11 -1
  159. package/dist/jobs/observability/client.d.ts +0 -26
  160. package/dist/jobs/observability/client.d.ts.map +0 -1
  161. package/dist/jobs/observability/client.js +0 -286
  162. package/dist/jobs/observability/client.js.map +0 -1
  163. package/dist/jobs/observability/dashboard.d.ts +0 -19
  164. package/dist/jobs/observability/dashboard.d.ts.map +0 -1
  165. package/dist/jobs/observability/dashboard.js +0 -144
  166. package/dist/jobs/observability/dashboard.js.map +0 -1
  167. package/dist/jobs/scheduler.d.ts +0 -17
  168. package/dist/jobs/scheduler.d.ts.map +0 -1
  169. package/dist/jobs/scheduler.js +0 -83
  170. package/dist/jobs/scheduler.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,40 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.4.0] - 2026-10-06
11
+
12
+ ### Added
13
+
14
+ - Explicit per-send context and application metadata for email delivery hooks.
15
+ - Injectable observability policies for runtime diagnostics.
16
+ - Native S3 client and command options, object inspection, and conditional upload finalization.
17
+ - Native presigner options to bind upload URLs to required request headers.
18
+ - Version-aware upload inspection, finalization, and deletion, with optional source retention and native copy results.
19
+ - **`glasswork/uploads/guardduty`** — an optional adapter that reads GuardDuty scan tags while preserving AWS statuses, object versions, and the original S3 response.
20
+ - Typed job services and a shared validated job lifecycle.
21
+ - Provider overrides and bounded OpenAPI contract generation.
22
+ - **`glasswork/list-query/client`** — a browser-safe codec for sharing list-query state through URLs.
23
+
24
+ ## [1.3.0] - 2026-10-03
25
+
26
+ ### Added
27
+
28
+ - Automatic per-attempt CloudWatch EMF metrics for `bootstrapWorker` in Lambda, with configurable namespaces, stable dimensions, opt-out and a synchronous test sink. Metrics use raw stdout without an AWS SDK dependency, omit payloads and error details, and never change job acknowledgements when emission fails. Dashboards and CloudWatch queries remain application-owned; the jobs documentation includes native CDK and Logs Insights examples.
29
+
30
+ ### Changed
31
+
32
+ - Use TypeScript CDK examples as the primary deployment documentation, while retaining alternative deployment options in the Lambda deployment guide.
33
+
34
+ ### Fixed
35
+
36
+ - Stop FIFO batches after the first failure and report all unprocessed records for retry.
37
+ - Infer separate job input/output types and pass schema output to worker and mock handlers; transport original validated input to avoid chained transforms.
38
+ - Reject unsupported driver delays without recursion.
39
+
40
+ ### Removed
41
+
42
+ - Remove the unused DynamoDB scheduler and its public exports in favor of EventBridge Scheduler.
43
+
10
44
  ## [1.2.0] - 2026-09-29
11
45
 
12
46
  ### Added
@@ -120,7 +154,9 @@ Major release: subpath exports, dependency upgrades (CASL 7, MJML 5, Valibot 1.4
120
154
 
121
155
  Last 0.x release before the 1.0 breaking changes. Earlier 0.x history is available on [GitHub releases](https://github.com/rolandboon/glasswork/releases).
122
156
 
123
- [Unreleased]: https://github.com/rolandboon/glasswork/compare/v1.2.0...HEAD
157
+ [Unreleased]: https://github.com/rolandboon/glasswork/compare/v1.4.0...HEAD
158
+ [1.4.0]: https://github.com/rolandboon/glasswork/compare/v1.3.0...v1.4.0
159
+ [1.3.0]: https://github.com/rolandboon/glasswork/compare/v1.2.0...v1.3.0
124
160
  [1.2.0]: https://github.com/rolandboon/glasswork/compare/v1.1.0...v1.2.0
125
161
  [1.1.0]: https://github.com/rolandboon/glasswork/compare/v1.0.0...v1.1.0
126
162
  [1.0.0]: https://github.com/rolandboon/glasswork/compare/v0.13.3...v1.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAIf,YAAY,EAKb,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,YAAY,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CAsH1B"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/core/bootstrap.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAIf,YAAY,EAKb,MAAM,YAAY,CAAC;AAwBpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,YAAY,EACxB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,CAAC,CA4E1B"}
@@ -1,4 +1,4 @@
1
- import { createContainer, InjectionMode } from 'awilix';
1
+ import { asValue, createContainer, InjectionMode } from 'awilix';
2
2
  import { Hono } from 'hono';
3
3
  import { cors } from 'hono/cors';
4
4
  import { logger as honoLogger } from 'hono/logger';
@@ -7,8 +7,9 @@ import { secureHeaders } from 'hono/secure-headers';
7
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';
10
+ import { createContextAwarePinoLogger, createPinoHttpMiddleware, } from '../observability/pino-logger.js';
11
11
  import { createRequestContextMiddleware } from '../observability/request-context.js';
12
+ import { createSanitizedExceptionTracker, createSanitizedLogger, } from '../observability/sanitizers.js';
12
13
  import { configureOpenAPI } from '../openapi/openapi.js';
13
14
  import { createBuiltinProcessors } from '../openapi/openapi-processors.js';
14
15
  import { isLambda, isTest } from '../utils/environment.js';
@@ -70,12 +71,16 @@ function detectEnvironment() {
70
71
  * ```
71
72
  */
72
73
  export async function bootstrap(rootModule, options = {}) {
73
- const { apiBasePath = '/api', debug = false, environment = detectEnvironment(), errorHandler = defaultErrorHandler, openapi, rateLimit, middleware, logger, exceptionTracking, } = options;
74
+ const { apiBasePath = '/api', debug = false, environment = detectEnvironment(), errorHandler = defaultErrorHandler, openapi, rateLimit, middleware, logger, exceptionTracking, mode = 'runtime', providerOverrides = [], } = options;
74
75
  // Create logger for bootstrap process
75
76
  // Convert debug boolean to log level: debug=true -> 'debug', debug=false -> default level
76
77
  // In test mode, use silent unless debug=true is explicitly set (for testing/debugging)
77
78
  const bootstrapLogLevel = debug ? 'debug' : isTest() ? 'silent' : getDefaultLogLevel();
78
- const bootstrapLogger = createLogger('Glasswork', bootstrapLogLevel);
79
+ const baseLogger = logger?.instance ??
80
+ (logger?.pino
81
+ ? createContextAwarePinoLogger({ pino: logger.pino, service: 'Glasswork' })
82
+ : createLogger('Glasswork', bootstrapLogLevel));
83
+ const bootstrapLogger = createSanitizedLogger(baseLogger, logger?.sanitizers);
79
84
  // Create Awilix container with PROXY mode (Lambda-compatible)
80
85
  const container = createContainer({
81
86
  injectionMode: InjectionMode.PROXY,
@@ -94,14 +99,49 @@ export async function bootstrap(rootModule, options = {}) {
94
99
  const moduleAsyncFactories = registerModuleProviders(module, container, bootstrapLogger);
95
100
  asyncFactoryNames.push(...moduleAsyncFactories);
96
101
  }
97
- // Resolve async factories and re-register them as values
98
- // This ensures all async providers are fully initialized before bootstrap completes
99
- if (asyncFactoryNames.length > 0) {
100
- bootstrapLogger.debug(`Resolving ${asyncFactoryNames.length} async factory providers...`);
101
- await resolveAsyncFactoryProviders(container, asyncFactoryNames, bootstrapLogger);
102
+ const activeAsyncFactories = applyProviderOverrides(container, asyncFactoryNames, providerOverrides, mode, bootstrapLogger);
103
+ // Resolve async factories before mounting runtime routes.
104
+ if (mode === 'runtime' && activeAsyncFactories.length > 0) {
105
+ await resolveAsyncFactoryProviders(container, activeAsyncFactories, bootstrapLogger);
102
106
  }
107
+ return finishBootstrap(allModules, container, bootstrapLogger, {
108
+ environment,
109
+ apiBasePath,
110
+ mode,
111
+ errorHandler,
112
+ openapi,
113
+ rateLimit,
114
+ middleware,
115
+ logger,
116
+ exceptionTracking,
117
+ });
118
+ }
119
+ function applyProviderOverrides(container, asyncFactoryNames, providerOverrides, mode, bootstrapLogger) {
120
+ const originalRegistrations = { ...container.registrations };
121
+ const overrideAsyncFactories = registerModuleProviders({ name: 'bootstrap-overrides', providers: providerOverrides }, container, bootstrapLogger);
122
+ const overriddenNames = new Set(Object.keys(container.registrations).filter((name) => container.registrations[name] !== originalRegistrations[name]));
123
+ const activeAsyncFactories = [
124
+ ...new Set([
125
+ ...asyncFactoryNames.filter((name) => !overriddenNames.has(name)),
126
+ ...overrideAsyncFactories,
127
+ ]),
128
+ ];
129
+ if (mode === 'contract') {
130
+ if (providerOverrides.some((provider) => typeof provider === 'function' || !('useValue' in provider))) {
131
+ throw new Error('Contract providerOverrides must use explicit values');
132
+ }
133
+ for (const name of Object.keys(container.registrations)) {
134
+ if (!overriddenNames.has(name))
135
+ container.register({ [name]: asValue(createContractPlaceholder(name)) });
136
+ }
137
+ }
138
+ return activeAsyncFactories;
139
+ }
140
+ async function finishBootstrap(allModules, container, bootstrapLogger, resolved) {
141
+ const { environment, apiBasePath, mode, errorHandler, openapi, rateLimit, middleware, logger, exceptionTracking, } = resolved;
103
142
  // Create Hono app and apply middleware
104
- const { app, openAPIContext, writeOpenAPISpec } = createApp({
143
+ const { app, openAPIContext, writeOpenAPISpec, generateOpenAPI } = createApp({
144
+ mode,
105
145
  environment,
106
146
  errorHandler,
107
147
  openapi,
@@ -133,6 +173,8 @@ export async function bootstrap(rootModule, options = {}) {
133
173
  let isStopped = false;
134
174
  // Define start and stop functions
135
175
  const start = async () => {
176
+ if (mode === 'contract')
177
+ throw new Error('Contract bootstrap has no runtime lifecycle');
136
178
  if (isStarted) {
137
179
  bootstrapLogger.debug('Application already started, skipping onModuleInit');
138
180
  return;
@@ -143,6 +185,8 @@ export async function bootstrap(rootModule, options = {}) {
143
185
  bootstrapLogger.debug('Application started successfully');
144
186
  };
145
187
  const stop = async () => {
188
+ if (mode === 'contract')
189
+ throw new Error('Contract bootstrap has no runtime lifecycle');
146
190
  if (isStopped) {
147
191
  bootstrapLogger.debug('Application already stopped, skipping onModuleDestroy');
148
192
  return;
@@ -154,16 +198,25 @@ export async function bootstrap(rootModule, options = {}) {
154
198
  };
155
199
  // Auto-start in production/development (but not test)
156
200
  // This ensures providers are initialized before requests come in
157
- if (environment !== 'test') {
201
+ if (mode === 'runtime' && environment !== 'test') {
158
202
  await start();
159
203
  }
160
- return { app, container, start, stop };
204
+ return { app, container, start, stop, generateOpenAPI };
205
+ }
206
+ function createContractPlaceholder(name) {
207
+ const fail = () => {
208
+ throw new Error(`Contract route registration used provider "${name}". Supply an explicit providerOverride for metadata construction.`);
209
+ };
210
+ return new Proxy(fail, { get: fail, set: fail });
161
211
  }
162
212
  /**
163
213
  * Create Hono app and apply middleware
164
214
  */
165
215
  function createApp(options) {
166
216
  const app = new Hono();
217
+ if (options.mode === 'contract') {
218
+ app.use('*', async (c) => c.json({ error: 'Contract bootstrap cannot handle HTTP requests' }, 503));
219
+ }
167
220
  // Build OpenAPI context with processors
168
221
  const openAPIContext = buildOpenAPIContext(options);
169
222
  setOpenAPIContext(app, openAPIContext);
@@ -171,8 +224,8 @@ function createApp(options) {
171
224
  applySecurityMiddleware(app, options);
172
225
  applyLoggingMiddleware(app, options);
173
226
  applyRateLimiting(app, options);
174
- const { writeSpec: writeOpenAPISpec } = applyOpenAPIDocumentation(app, options);
175
- return { app, openAPIContext, writeOpenAPISpec };
227
+ const { writeSpec: writeOpenAPISpec, generateSpec: generateOpenAPI } = applyOpenAPIDocumentation(app, options);
228
+ return { app, openAPIContext, writeOpenAPISpec, generateOpenAPI };
176
229
  }
177
230
  /**
178
231
  * Build the OpenAPI context with processors and security schemes
@@ -193,21 +246,32 @@ function buildOpenAPIContext(options) {
193
246
  if (components?.securitySchemes) {
194
247
  securitySchemes.push(...Object.keys(components.securitySchemes));
195
248
  }
196
- return { processors, securitySchemes, pino: logger?.pino };
249
+ return {
250
+ processors,
251
+ securitySchemes,
252
+ pino: logger?.pino,
253
+ sanitizers: logger?.sanitizers,
254
+ logger: logger?.instance,
255
+ };
197
256
  }
198
257
  /**
199
258
  * Apply error handler to the app
200
259
  */
201
- function applyErrorHandler(app, { errorHandler, exceptionTracking, bootstrapLogger, }) {
260
+ function applyErrorHandler(app, { errorHandler, exceptionTracking, bootstrapLogger, logger, }) {
202
261
  if (errorHandler === false)
203
262
  return;
204
263
  // If using default error handler and exception tracking is configured, create custom handler
205
- if (errorHandler === defaultErrorHandler && exceptionTracking) {
206
- bootstrapLogger.debug('Applying error handler with exception tracking');
264
+ if (errorHandler === defaultErrorHandler) {
265
+ bootstrapLogger.debug(exceptionTracking
266
+ ? 'Applying error handler with exception tracking'
267
+ : 'Applying framework error handler');
207
268
  const customErrorHandler = createErrorHandler({
208
- exceptionTracker: exceptionTracking.tracker,
269
+ logger: bootstrapLogger,
270
+ exceptionTracker: exceptionTracking
271
+ ? createSanitizedExceptionTracker(exceptionTracking.tracker, logger?.sanitizers)
272
+ : undefined,
209
273
  trackingConfig: {
210
- trackStatusCodes: exceptionTracking.trackStatusCodes ?? ((status) => status >= 500),
274
+ trackStatusCodes: exceptionTracking?.trackStatusCodes ?? ((status) => status >= 500),
211
275
  },
212
276
  });
213
277
  app.onError(customErrorHandler);
@@ -246,15 +310,29 @@ function applySecurityMiddleware(app, { environment, middleware, bootstrapLogger
246
310
  * Apply logging middleware
247
311
  */
248
312
  function applyLoggingMiddleware(app, { logger, bootstrapLogger, }) {
313
+ app.use(createRequestContextMiddleware());
249
314
  if (logger?.enabled === false)
250
315
  return;
251
316
  // If Pino logger instance provided, use structured logging with request context
252
317
  if (logger?.pino) {
253
318
  bootstrapLogger.debug('Applying Pino logger with request context (AsyncLocalStorage)');
254
- // Apply request context middleware first (sets up AsyncLocalStorage)
255
- app.use(createRequestContextMiddleware());
256
319
  // Apply Pino HTTP logging middleware
257
- app.use(createPinoHttpMiddleware(logger.pino));
320
+ app.use(createPinoHttpMiddleware(logger.pino, logger.sanitizers));
321
+ return;
322
+ }
323
+ if (logger?.instance || logger?.sanitizers) {
324
+ app.use(async (c, next) => {
325
+ const start = Date.now();
326
+ await next();
327
+ const level = c.res.status >= 500 ? 'error' : c.res.status >= 400 ? 'warn' : 'info';
328
+ bootstrapLogger[level]('HTTP Request', {
329
+ requestId: c.get('requestId'),
330
+ method: c.req.method,
331
+ path: c.req.path,
332
+ status: c.res.status,
333
+ duration: Date.now() - start,
334
+ });
335
+ });
258
336
  return;
259
337
  }
260
338
  // In test mode, skip HTTP logging unless explicitly enabled
@@ -273,7 +351,7 @@ function applyRateLimiting(app, { rateLimit, bootstrapLogger, }) {
273
351
  if (!rateLimit?.enabled)
274
352
  return;
275
353
  bootstrapLogger.debug(`Rate limiting enabled (${rateLimit.storage} storage, ${rateLimit.maxRequests || 100} req/${rateLimit.windowMs || 60000}ms)`);
276
- app.use(createRateLimitMiddleware(rateLimit));
354
+ app.use(createRateLimitMiddleware({ ...rateLimit, logger: bootstrapLogger }));
277
355
  }
278
356
  /**
279
357
  * Apply OpenAPI documentation
@@ -283,7 +361,14 @@ function applyOpenAPIDocumentation(app, options) {
283
361
  if (!openapi?.enabled)
284
362
  return {};
285
363
  bootstrapLogger.debug('Configuring OpenAPI');
286
- return configureOpenAPI({ app, environment, openapi, rateLimit, middleware });
364
+ return configureOpenAPI({
365
+ app,
366
+ environment,
367
+ openapi,
368
+ rateLimit,
369
+ middleware,
370
+ logger: bootstrapLogger,
371
+ });
287
372
  }
288
373
  /**
289
374
  * Mount module routes to the app
@@ -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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"}
@@ -0,0 +1,37 @@
1
+ import type { BootstrapOptions, ModuleConfig } from './types.js';
2
+ /** Generates route contracts without runtime provider initialization or a server. */
3
+ export declare function generateOpenAPI(module: ModuleConfig, options?: Omit<BootstrapOptions, 'mode'>): Promise<{
4
+ tags: import("openapi-types").OpenAPIV3.TagObject[];
5
+ info: {
6
+ description: string;
7
+ title: string;
8
+ termsOfService?: string;
9
+ contact?: import("openapi-types").OpenAPIV3.ContactObject;
10
+ version: string;
11
+ summary?: string;
12
+ license?: import("openapi-types").OpenAPIV3_1.LicenseObject;
13
+ };
14
+ paths: {
15
+ [x: string]: Omit<import("openapi-types").OpenAPIV3.PathItemObject<{}>, "parameters" | "servers"> & {
16
+ servers?: import("openapi-types").OpenAPIV3_1.ServerObject[];
17
+ parameters?: (import("openapi-types").OpenAPIV3_1.ReferenceObject | import("openapi-types").OpenAPIV3_1.ParameterObject)[];
18
+ } & {
19
+ get?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
20
+ put?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
21
+ post?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
22
+ delete?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
23
+ options?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
24
+ head?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
25
+ patch?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
26
+ trace?: import("openapi-types").OpenAPIV3_1.OperationObject<{}>;
27
+ };
28
+ };
29
+ components: import("openapi-types").OpenAPIV3_1.ComponentsObject;
30
+ openapi: string;
31
+ externalDocs?: import("openapi-types").OpenAPIV3.ExternalDocumentationObject;
32
+ security?: import("openapi-types").OpenAPIV3.SecurityRequirementObject[];
33
+ servers?: import("openapi-types").OpenAPIV3_1.ServerObject[];
34
+ webhooks?: Record<string, import("openapi-types").OpenAPIV3_1.PathItemObject | import("openapi-types").OpenAPIV3_1.ReferenceObject>;
35
+ jsonSchemaDialect?: string;
36
+ }>;
37
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/core/contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjE,qFAAqF;AACrF,wBAAsB,eAAe,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAc7C"}
@@ -0,0 +1,19 @@
1
+ import { bootstrap } from './bootstrap.js';
2
+ /** Generates route contracts without runtime provider initialization or a server. */
3
+ export async function generateOpenAPI(module, options = {}) {
4
+ const result = await bootstrap(module, {
5
+ ...options,
6
+ mode: 'contract',
7
+ logger: { enabled: false, ...options.logger },
8
+ openapi: { ...options.openapi, enabled: true, serveSpecs: false, serveUI: false },
9
+ });
10
+ try {
11
+ if (!result.generateOpenAPI)
12
+ throw new Error('OpenAPI generation is unavailable');
13
+ return await result.generateOpenAPI();
14
+ }
15
+ finally {
16
+ await result.container.dispose();
17
+ }
18
+ }
19
+ //# sourceMappingURL=contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/core/contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAoB,EACpB,OAAO,GAAmC,EAAE;IAE5C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE;QACrC,GAAG,OAAO;QACV,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QAC7C,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;KAClF,CAAC,CAAC;IACH,IAAI,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAClF,OAAO,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;IACxC,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
@@ -14,6 +14,7 @@ export { pick } from '../utils/pick.js';
14
14
  export type { AcceptPrismaTypes, PrismaDecimalLike, SerializationConfig, SerializedTypes, TypeTransformer, } from '../utils/serialize-prisma-types.js';
15
15
  export { defaultConfig, serializePrismaTypes } from '../utils/serialize-prisma-types.js';
16
16
  export { bootstrap } from './bootstrap.js';
17
+ export { generateOpenAPI } from './contract.js';
17
18
  export { defineModule } from './module.js';
18
19
  export type { BootstrapOptions, BootstrapResult, Constructor, Environment, ExceptionTrackingOptions, LoggerOptions, MiddlewareOptions, ModuleConfig, OnModuleDestroy, OnModuleInit, OpenAPIDocumentation, OpenAPIOptions, OpenAPIProcessorContext, OpenAPIResponseObject, OpenAPIResponseProcessor, ProviderConfig, RateLimitOptions, RateLimitStorage, RouteConfigExtensions, RouteHandlers, ServiceScope, } from './types.js';
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,yBAAyB,EACzB,YAAY,EACZ,KAAK,qBAAqB,EAC1B,cAAc,EACd,KAAK,kBAAkB,EACvB,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,kBAAkB,EACvB,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,yBAAyB,EACzB,YAAY,EACZ,KAAK,qBAAqB,EAC1B,cAAc,EACd,KAAK,kBAAkB,EACvB,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EACT,KAAK,kBAAkB,EACvB,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,YAAY,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,wBAAwB,EACxB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
@@ -11,5 +11,6 @@ export { omit } from '../utils/omit.js';
11
11
  export { pick } from '../utils/pick.js';
12
12
  export { defaultConfig, serializePrismaTypes } from '../utils/serialize-prisma-types.js';
13
13
  export { bootstrap } from './bootstrap.js';
14
+ export { generateOpenAPI } from './contract.js';
14
15
  export { defineModule } from './module.js';
15
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAIL,yBAAyB,EACzB,YAAY,EAEZ,cAAc,EAEd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAIL,yBAAyB,EACzB,YAAY,EAEZ,cAAc,EAEd,WAAW,EACX,cAAc,EACd,UAAU,EACV,YAAY,EACZ,SAAS,EAET,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQxC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -301,6 +301,8 @@ export type RateLimitStorage = 'memory' | 'dynamodb';
301
301
  * Rate limiting configuration
302
302
  */
303
303
  export interface RateLimitOptions {
304
+ /** Logger for infrastructure errors in the rate limiter. */
305
+ logger?: import('../utils/logger.js').Logger;
304
306
  /**
305
307
  * Whether rate limiting is enabled
306
308
  */
@@ -367,6 +369,10 @@ export interface MiddlewareOptions {
367
369
  * Logger configuration options
368
370
  */
369
371
  export interface LoggerOptions {
372
+ /** Logger for framework diagnostics; Hono and Awilix remain directly accessible. */
373
+ instance?: import('../utils/logger.js').Logger;
374
+ /** Policy for HTTP diagnostics, framework errors, and exception tracking. */
375
+ sanitizers?: import('../observability/sanitizers.js').ObservabilitySanitizers;
370
376
  /**
371
377
  * Enable HTTP request logging
372
378
  * @default true
@@ -427,6 +433,10 @@ export interface ExceptionTrackingOptions {
427
433
  * Bootstrap options
428
434
  */
429
435
  export interface BootstrapOptions {
436
+ /** Runtime initializes providers; contract mode only registers route metadata. */
437
+ mode?: 'runtime' | 'contract';
438
+ /** Applied after module registration and before any provider is initialized. */
439
+ providerOverrides?: ProviderConfig[];
430
440
  /**
431
441
  * Environment (auto-detected from NODE_ENV if not provided)
432
442
  */
@@ -472,6 +482,8 @@ export interface BootstrapOptions {
472
482
  * Bootstrap result
473
483
  */
474
484
  export interface BootstrapResult {
485
+ /** Available when OpenAPI is enabled; uses the mounted native route registry. */
486
+ generateOpenAPI?: import('../openapi/openapi.js').ConfigureOpenAPIResult['generateSpec'];
475
487
  /**
476
488
  * Hono application instance
477
489
  */
@@ -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":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEhE;;;;GAIG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX;IACE,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;CACnB,GACD;IACE,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,OAAO,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB,CAAC;AAEN,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAE7B;;OAEG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;IAEnC;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAEvC;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,qBAAqB,GAAG;QACnC,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE;YACR,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SACvD,CAAC;KACH,CAAC;IACF,iFAAiF;IACjF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,EAAE,uBAAuB,KAC7B,qBAAqB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAM,WAAW,qBAAqB;CAAG;AAEzC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,kBAAkB,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,MAAM,CAAC;IAC7C;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,oBAAoB,EAAE,MAAM,CAAC;IAC/C,6EAA6E;IAC7E,UAAU,CAAC,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,CAAC;IAC9E;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,IAAI,CAAC,EAAE,OAAO,iCAAiC,EAAE,UAAU,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,OAAO,EAAE,OAAO,wCAAwC,EAAE,gBAAgB,CAAC;IAE3E;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;CACpD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAC9B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,cAAc,EAAE,CAAC;IACrC;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,YAAY,GAAG,KAAK,CAAC;IAEpC;;OAEG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B;;OAEG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IACzF;;OAEG;IACH,GAAG,EAAE,IAAI,CAAC;IAEV;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B;;OAEG;IACH,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B"}
@@ -1,4 +1,4 @@
1
- import type { EmailConfig, EmailMessage, EmailResult, OnSentHook } from './types.js';
1
+ import type { EmailConfig, EmailMessage, EmailResult, EmailSendContext, OnSentHook } from './types.js';
2
2
  /**
3
3
  * Options for sending an email
4
4
  */
@@ -7,6 +7,8 @@ export interface SendOptions {
7
7
  from?: string;
8
8
  /** Override the default reply-to */
9
9
  replyTo?: string;
10
+ /** Application correlation data for tracking; not email headers or template content. */
11
+ metadata?: EmailSendContext['metadata'];
10
12
  }
11
13
  /**
12
14
  * Email service for sending emails through configured transport
@@ -27,6 +29,7 @@ export interface SendOptions {
27
29
  * ```
28
30
  */
29
31
  export declare class EmailService {
32
+ private readonly logger;
30
33
  private readonly transport;
31
34
  private readonly defaultFrom;
32
35
  private readonly defaultReplyTo?;
@@ -41,7 +44,7 @@ export declare class EmailService {
41
44
  */
42
45
  sendRaw(message: Omit<EmailMessage, 'from'> & {
43
46
  from?: string;
44
- }, options?: SendOptions): Promise<EmailResult>;
47
+ }, options?: SendOptions, context?: Pick<EmailSendContext, 'template'>): Promise<EmailResult>;
45
48
  /**
46
49
  * Gets the transport name for debugging
47
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"email-service.d.ts","sourceRoot":"","sources":["../../src/email/email-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EAEX,UAAU,EACX,MAAM,YAAY,CAAC;AAIpB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa;IAErC,YAAY,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU,EAKnD;IAED;;;;;;OAMG;IACG,OAAO,CACX,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACvD,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,WAAW,CAAC,CAqBtB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;CA2BnB"}
1
+ {"version":3,"file":"email-service.d.ts","sourceRoot":"","sources":["../../src/email/email-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,gBAAgB,EAEhB,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACzC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa;IAErC,YAAY,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,UAAU,EAMnD;IAED;;;;;;OAMG;IACG,OAAO,CACX,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EACvD,OAAO,CAAC,EAAE,WAAW,EACrB,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAM,GAC/C,OAAO,CAAC,WAAW,CAAC,CAwBtB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,OAAO,CAAC,UAAU;CA2BnB"}
@@ -1,5 +1,4 @@
1
1
  import { createLogger } from '../utils/logger.js';
2
- const logger = createLogger('EmailService');
3
2
  /**
4
3
  * Email service for sending emails through configured transport
5
4
  *
@@ -19,11 +18,13 @@ const logger = createLogger('EmailService');
19
18
  * ```
20
19
  */
21
20
  export class EmailService {
21
+ logger;
22
22
  transport;
23
23
  defaultFrom;
24
24
  defaultReplyTo;
25
25
  onSent;
26
26
  constructor(config, onSent) {
27
+ this.logger = config.logger ?? createLogger('EmailService');
27
28
  this.transport = config.transport;
28
29
  this.defaultFrom = config.from;
29
30
  this.defaultReplyTo = config.replyTo;
@@ -36,7 +37,7 @@ export class EmailService {
36
37
  * @param options - Optional overrides for sender/reply-to
37
38
  * @returns The send result with message ID
38
39
  */
39
- async sendRaw(message, options) {
40
+ async sendRaw(message, options, context = {}) {
40
41
  const fullMessage = {
41
42
  ...message,
42
43
  from: options?.from || message.from || this.defaultFrom,
@@ -47,11 +48,14 @@ export class EmailService {
47
48
  // Call onSent hook if configured
48
49
  if (this.onSent && result.success) {
49
50
  try {
50
- await this.onSent(result, fullMessage);
51
+ await this.onSent(result, fullMessage, {
52
+ ...context,
53
+ ...(options?.metadata ? { metadata: options.metadata } : {}),
54
+ });
51
55
  }
52
56
  catch (error) {
53
57
  // Log but don't fail the send
54
- logger.error('onSent hook failed:', error);
58
+ this.logger.error('onSent hook failed:', error);
55
59
  }
56
60
  }
57
61
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/email/email-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AASlD,MAAM,MAAM,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;AAY5C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,YAAY;IACN,SAAS,CAAiB;IAC1B,WAAW,CAAS;IACpB,cAAc,CAAU;IACxB,MAAM,CAAc;IAErC,YAAY,MAAmB,EAAE,MAAmB;QAClD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CACX,OAAuD,EACvD,OAAqB;QAErB,MAAM,WAAW,GAAiB;YAChC,GAAG,OAAO;YACV,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;YACvD,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;YACnE,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;SACpD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEtD,iCAAiC;QACjC,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,8BAA8B;gBAC9B,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,IAAY;QAC7B,OAAO,CACL,IAAI;YACF,4CAA4C;aAC3C,OAAO,CAAC,iCAAiC,EAAE,EAAE,CAAC;aAC9C,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC;YACjD,sBAAsB;aACrB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC;YAC9B,qCAAqC;aACpC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC;YACzC,qBAAqB;aACpB,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;aAC5B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;YAC1B,6BAA6B;aAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YACxB,8BAA8B;aAC7B,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;aACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;aACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;aACtB,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;aACxB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;YACxB,sBAAsB;aACrB,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;aAChC,IAAI,EAAE,CACV,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"email-service.js","sourceRoot":"","sources":["../../src/email/email-service.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,6 @@ export { createTemplateRegistry, type TemplateDefinition, TemplateRegistry, type
7
7
  export { type SendTemplateOptions, TemplatedEmailService, } from './templated-email-service.js';
8
8
  export { MockTransport, type StoredEmail } from './transports/mock-transport.js';
9
9
  export { SESTransport } from './transports/ses-transport.js';
10
- export type { EmailAttachment, EmailConfig, EmailMessage, EmailModuleOptions, EmailResult, EmailTransport, OnSentHook, SESTransportConfig, SMTPTransportConfig, } from './types.js';
10
+ export type { EmailAttachment, EmailConfig, EmailMessage, EmailModuleOptions, EmailResult, EmailSendContext, EmailTransport, OnSentHook, SESTransportConfig, SMTPTransportConfig, } from './types.js';
11
11
  export { type BouncedEvent, type ComplaintEvent, type CreateWebhookHandlerOptions, clearCertCache, createSESWebhookHandler, type DeliveredEvent, type HandleSubscriptionOptions, handleSNSSubscription, parseSESNotification, parseSNSMessage, type SESBounceNotification, type SESComplaintNotification, type SESDeliveryNotification, type SESEvent, type SESNotification, type SESWebhookHandlers, type SNSMessage, type VerifySignatureOptions, verifySNSSignature, } from './webhooks/index.js';
12
12
  //# sourceMappingURL=index.d.ts.map