glasswork 1.4.1 → 1.6.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 (224) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/README.md +6 -2
  3. package/dist/audit/audit-logger.d.ts +6 -1
  4. package/dist/audit/audit-logger.d.ts.map +1 -1
  5. package/dist/audit/audit-logger.js +6 -1
  6. package/dist/audit/audit-logger.js.map +1 -1
  7. package/dist/auth/assert.d.ts +4 -0
  8. package/dist/auth/assert.d.ts.map +1 -1
  9. package/dist/auth/assert.js +7 -3
  10. package/dist/auth/assert.js.map +1 -1
  11. package/dist/auth/better-auth-provider.js +13 -4
  12. package/dist/auth/better-auth-provider.js.map +1 -1
  13. package/dist/auth/errors.d.ts +17 -0
  14. package/dist/auth/errors.d.ts.map +1 -0
  15. package/dist/auth/errors.js +23 -0
  16. package/dist/auth/errors.js.map +1 -0
  17. package/dist/auth/index.d.ts +2 -1
  18. package/dist/auth/index.d.ts.map +1 -1
  19. package/dist/auth/index.js +1 -0
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/middleware.d.ts +13 -0
  22. package/dist/auth/middleware.d.ts.map +1 -1
  23. package/dist/auth/middleware.js +19 -8
  24. package/dist/auth/middleware.js.map +1 -1
  25. package/dist/auth/types.d.ts +4 -0
  26. package/dist/auth/types.d.ts.map +1 -1
  27. package/dist/config/providers.d.ts.map +1 -1
  28. package/dist/config/providers.js +5 -4
  29. package/dist/config/providers.js.map +1 -1
  30. package/dist/core/bootstrap.d.ts +2 -2
  31. package/dist/core/bootstrap.d.ts.map +1 -1
  32. package/dist/core/bootstrap.js +162 -83
  33. package/dist/core/bootstrap.js.map +1 -1
  34. package/dist/core/contract.d.ts +9 -2
  35. package/dist/core/contract.d.ts.map +1 -1
  36. package/dist/core/contract.js +2 -1
  37. package/dist/core/contract.js.map +1 -1
  38. package/dist/core/errors.d.ts +16 -0
  39. package/dist/core/errors.d.ts.map +1 -0
  40. package/dist/core/errors.js +31 -0
  41. package/dist/core/errors.js.map +1 -0
  42. package/dist/core/glasswork-config.d.ts +42 -0
  43. package/dist/core/glasswork-config.d.ts.map +1 -0
  44. package/dist/core/glasswork-config.js +2 -0
  45. package/dist/core/glasswork-config.js.map +1 -0
  46. package/dist/core/index.d.ts +7 -4
  47. package/dist/core/index.d.ts.map +1 -1
  48. package/dist/core/index.js +5 -3
  49. package/dist/core/index.js.map +1 -1
  50. package/dist/core/job-services.d.ts +16 -0
  51. package/dist/core/job-services.d.ts.map +1 -0
  52. package/dist/core/job-services.js +19 -0
  53. package/dist/core/job-services.js.map +1 -0
  54. package/dist/core/lifecycle.d.ts +30 -2
  55. package/dist/core/lifecycle.d.ts.map +1 -1
  56. package/dist/core/lifecycle.js +100 -13
  57. package/dist/core/lifecycle.js.map +1 -1
  58. package/dist/core/module-graph.d.ts +7 -1
  59. package/dist/core/module-graph.d.ts.map +1 -1
  60. package/dist/core/module-graph.js +90 -21
  61. package/dist/core/module-graph.js.map +1 -1
  62. package/dist/core/module-inspection.d.ts +44 -0
  63. package/dist/core/module-inspection.d.ts.map +1 -0
  64. package/dist/core/module-inspection.js +114 -0
  65. package/dist/core/module-inspection.js.map +1 -0
  66. package/dist/core/module-runtime.d.ts +22 -0
  67. package/dist/core/module-runtime.d.ts.map +1 -0
  68. package/dist/core/module-runtime.js +252 -0
  69. package/dist/core/module-runtime.js.map +1 -0
  70. package/dist/core/module.d.ts +5 -1
  71. package/dist/core/module.d.ts.map +1 -1
  72. package/dist/core/module.js +15 -3
  73. package/dist/core/module.js.map +1 -1
  74. package/dist/core/request-scope.d.ts +1 -1
  75. package/dist/core/request-scope.d.ts.map +1 -1
  76. package/dist/core/request-scope.js +10 -8
  77. package/dist/core/request-scope.js.map +1 -1
  78. package/dist/core/types.d.ts +106 -10
  79. package/dist/core/types.d.ts.map +1 -1
  80. package/dist/email/compiler/compiler.d.ts.map +1 -1
  81. package/dist/email/compiler/compiler.js +24 -13
  82. package/dist/email/compiler/compiler.js.map +1 -1
  83. package/dist/email/email-service.d.ts +0 -4
  84. package/dist/email/email-service.d.ts.map +1 -1
  85. package/dist/email/email-service.js +2 -29
  86. package/dist/email/email-service.js.map +1 -1
  87. package/dist/email/html-to-text.d.ts +14 -0
  88. package/dist/email/html-to-text.d.ts.map +1 -0
  89. package/dist/email/html-to-text.js +47 -0
  90. package/dist/email/html-to-text.js.map +1 -0
  91. package/dist/email/index.d.ts +1 -0
  92. package/dist/email/index.d.ts.map +1 -1
  93. package/dist/email/index.js +1 -0
  94. package/dist/email/index.js.map +1 -1
  95. package/dist/email/ses.d.ts +7 -0
  96. package/dist/email/ses.d.ts.map +1 -0
  97. package/dist/email/ses.js +6 -0
  98. package/dist/email/ses.js.map +1 -0
  99. package/dist/email/smtp.d.ts +7 -0
  100. package/dist/email/smtp.d.ts.map +1 -0
  101. package/dist/email/smtp.js +6 -0
  102. package/dist/email/smtp.js.map +1 -0
  103. package/dist/email/transports/ses-transport.d.ts.map +1 -1
  104. package/dist/email/transports/ses-transport.js +6 -4
  105. package/dist/email/transports/ses-transport.js.map +1 -1
  106. package/dist/email/transports/smtp-transport.d.ts +40 -0
  107. package/dist/email/transports/smtp-transport.d.ts.map +1 -0
  108. package/dist/email/transports/smtp-transport.js +67 -0
  109. package/dist/email/transports/smtp-transport.js.map +1 -0
  110. package/dist/http/error-handler.d.ts +7 -1
  111. package/dist/http/error-handler.d.ts.map +1 -1
  112. package/dist/http/error-handler.js +18 -6
  113. package/dist/http/error-handler.js.map +1 -1
  114. package/dist/http/error-response.dto.d.ts +6 -0
  115. package/dist/http/error-response.dto.d.ts.map +1 -1
  116. package/dist/http/error-response.dto.js +6 -0
  117. package/dist/http/error-response.dto.js.map +1 -1
  118. package/dist/http/errors.d.ts +12 -0
  119. package/dist/http/errors.d.ts.map +1 -1
  120. package/dist/http/errors.js +35 -23
  121. package/dist/http/errors.js.map +1 -1
  122. package/dist/http/index.d.ts +1 -1
  123. package/dist/http/index.d.ts.map +1 -1
  124. package/dist/http/index.js +1 -1
  125. package/dist/http/index.js.map +1 -1
  126. package/dist/http/route-authorization.d.ts.map +1 -1
  127. package/dist/http/route-authorization.js +3 -3
  128. package/dist/http/route-authorization.js.map +1 -1
  129. package/dist/http/route-helpers.d.ts +2 -1
  130. package/dist/http/route-helpers.d.ts.map +1 -1
  131. package/dist/http/route-helpers.js +29 -2
  132. package/dist/http/route-helpers.js.map +1 -1
  133. package/dist/http/route-openapi-context.d.ts +15 -1
  134. package/dist/http/route-openapi-context.d.ts.map +1 -1
  135. package/dist/http/route-openapi-context.js.map +1 -1
  136. package/dist/http/route-response.d.ts +6 -2
  137. package/dist/http/route-response.d.ts.map +1 -1
  138. package/dist/http/route-response.js +36 -16
  139. package/dist/http/route-response.js.map +1 -1
  140. package/dist/http/route-types.d.ts +12 -4
  141. package/dist/http/route-types.d.ts.map +1 -1
  142. package/dist/http/route-types.js.map +1 -1
  143. package/dist/http/route-validation.d.ts.map +1 -1
  144. package/dist/http/route-validation.js +21 -1
  145. package/dist/http/route-validation.js.map +1 -1
  146. package/dist/jobs/drivers/eventbridge-scheduler-driver.d.ts +1 -0
  147. package/dist/jobs/drivers/eventbridge-scheduler-driver.d.ts.map +1 -1
  148. package/dist/jobs/drivers/eventbridge-scheduler-driver.js +12 -2
  149. package/dist/jobs/drivers/eventbridge-scheduler-driver.js.map +1 -1
  150. package/dist/jobs/drivers/mock-driver.d.ts +4 -0
  151. package/dist/jobs/drivers/mock-driver.d.ts.map +1 -1
  152. package/dist/jobs/drivers/mock-driver.js +10 -3
  153. package/dist/jobs/drivers/mock-driver.js.map +1 -1
  154. package/dist/jobs/drivers/sqs-driver.d.ts +1 -1
  155. package/dist/jobs/drivers/sqs-driver.d.ts.map +1 -1
  156. package/dist/jobs/drivers/sqs-driver.js +8 -2
  157. package/dist/jobs/drivers/sqs-driver.js.map +1 -1
  158. package/dist/jobs/errors.d.ts +14 -1
  159. package/dist/jobs/errors.d.ts.map +1 -1
  160. package/dist/jobs/errors.js +19 -2
  161. package/dist/jobs/errors.js.map +1 -1
  162. package/dist/jobs/index.d.ts +3 -3
  163. package/dist/jobs/index.d.ts.map +1 -1
  164. package/dist/jobs/index.js +1 -1
  165. package/dist/jobs/index.js.map +1 -1
  166. package/dist/jobs/job-service.d.ts +46 -7
  167. package/dist/jobs/job-service.d.ts.map +1 -1
  168. package/dist/jobs/job-service.js +63 -9
  169. package/dist/jobs/job-service.js.map +1 -1
  170. package/dist/jobs/scheduler.d.ts +6 -0
  171. package/dist/jobs/scheduler.d.ts.map +1 -0
  172. package/dist/jobs/scheduler.js +6 -0
  173. package/dist/jobs/scheduler.js.map +1 -0
  174. package/dist/jobs/sqs.d.ts +7 -0
  175. package/dist/jobs/sqs.d.ts.map +1 -0
  176. package/dist/jobs/sqs.js +7 -0
  177. package/dist/jobs/sqs.js.map +1 -0
  178. package/dist/jobs/types.d.ts +6 -1
  179. package/dist/jobs/types.d.ts.map +1 -1
  180. package/dist/jobs/utils.d.ts +6 -0
  181. package/dist/jobs/utils.d.ts.map +1 -1
  182. package/dist/jobs/utils.js +8 -0
  183. package/dist/jobs/utils.js.map +1 -1
  184. package/dist/jobs/worker.d.ts.map +1 -1
  185. package/dist/jobs/worker.js +28 -23
  186. package/dist/jobs/worker.js.map +1 -1
  187. package/dist/middleware/rate-limit.d.ts.map +1 -1
  188. package/dist/middleware/rate-limit.js +5 -4
  189. package/dist/middleware/rate-limit.js.map +1 -1
  190. package/dist/observability/exception-tracking.d.ts +23 -0
  191. package/dist/observability/exception-tracking.d.ts.map +1 -1
  192. package/dist/observability/exception-tracking.js +101 -6
  193. package/dist/observability/exception-tracking.js.map +1 -1
  194. package/dist/observability/index.d.ts +1 -1
  195. package/dist/observability/index.d.ts.map +1 -1
  196. package/dist/observability/index.js +1 -1
  197. package/dist/observability/index.js.map +1 -1
  198. package/dist/observability/sanitizers.d.ts.map +1 -1
  199. package/dist/observability/sanitizers.js +2 -0
  200. package/dist/observability/sanitizers.js.map +1 -1
  201. package/dist/openapi/drift.d.ts +17 -2
  202. package/dist/openapi/drift.d.ts.map +1 -1
  203. package/dist/openapi/drift.js +79 -5
  204. package/dist/openapi/drift.js.map +1 -1
  205. package/dist/openapi/openapi.d.ts.map +1 -1
  206. package/dist/openapi/openapi.js +2 -1
  207. package/dist/openapi/openapi.js.map +1 -1
  208. package/dist/utils/environment.d.ts +10 -2
  209. package/dist/utils/environment.d.ts.map +1 -1
  210. package/dist/utils/environment.js +20 -3
  211. package/dist/utils/environment.js.map +1 -1
  212. package/dist/utils/module-interop.d.ts +9 -0
  213. package/dist/utils/module-interop.d.ts.map +1 -0
  214. package/dist/utils/module-interop.js +16 -0
  215. package/dist/utils/module-interop.js.map +1 -0
  216. package/dist/utils/optional-dependency.d.ts +6 -0
  217. package/dist/utils/optional-dependency.d.ts.map +1 -0
  218. package/dist/utils/optional-dependency.js +16 -0
  219. package/dist/utils/optional-dependency.js.map +1 -0
  220. package/dist/utils/serialize-prisma-types.d.ts +51 -15
  221. package/dist/utils/serialize-prisma-types.d.ts.map +1 -1
  222. package/dist/utils/serialize-prisma-types.js +47 -16
  223. package/dist/utils/serialize-prisma-types.js.map +1 -1
  224. package/package.json +56 -12
@@ -1 +1 @@
1
- {"version":3,"file":"route-authorization.js","sourceRoot":"","sources":["../../src/http/route-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,UAAU,yBAAyB,CACvC,SAIC,EACD,YAAqB;IAErB,MAAM,OAAO,GAAI,YAA2E;SACzF,OAAO,CAAC;IACX,MAAM,IAAI,GAAI,YAA0C,CAAC,IAAI,CAAC;IAC9D,MAAM,eAAe,GAClB,YAA8C,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC;IAEjD,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAgB,CAAC,CAAC;IAE/E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,IAAI,kBAAkB,CAC1B,gCAAgC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,CACxE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"route-authorization.js","sourceRoot":"","sources":["../../src/http/route-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAExE,MAAM,UAAU,yBAAyB,CACvC,SAIC,EACD,YAAqB;IAErB,MAAM,OAAO,GAAI,YAA2E;SACzF,OAAO,CAAC;IACX,MAAM,IAAI,GAAI,YAA0C,CAAC,IAAI,CAAC;IAC9D,MAAM,eAAe,GAClB,YAA8C,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC;IAEjD,IAAI,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,OAAgB,CAAC,CAAC;IAE/E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAqB,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,kBAAkB,CAC1B,gCAAgC,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,EACvE,EAAE,SAAS,EAAE,WAAW,EAAE,CAC3B,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { Context, Hono } from 'hono';
2
+ import type { ConfiguredStrictTypes } from '../core/glasswork-config.js';
2
3
  import type { RouteFactory, RouteHandlers } from '../core/types.js';
3
4
  import type { BoundRouteFunction, RouteConfig, STATUS_DESCRIPTIONS, ValibotSchema } from './route-types.js';
4
5
  export type { OpenAPIContext } from './route-openapi-context.js';
@@ -11,5 +12,5 @@ export declare function createRoutes<TServices = Record<string, unknown>, TConte
11
12
  /**
12
13
  * Create a route handler with validation and OpenAPI metadata.
13
14
  */
14
- export declare function route<TBody extends ValibotSchema | undefined = undefined, TQuery extends ValibotSchema | undefined = undefined, TParams extends ValibotSchema | undefined = undefined, TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>> = Record<never, never>, TPublic extends boolean = false, TStrictTypes extends boolean = false, TContextVariables extends object = Context['var']>(router: Hono, config: RouteConfig<TBody, TQuery, TParams, TResponses, TPublic, TStrictTypes, TContextVariables>): RouteHandlers;
15
+ export declare function route<TBody extends ValibotSchema | undefined = undefined, TQuery extends ValibotSchema | undefined = undefined, TParams extends ValibotSchema | undefined = undefined, TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>> = Record<never, never>, TPublic extends boolean = false, TStrictTypes extends boolean = ConfiguredStrictTypes, TContextVariables extends object = Context['var']>(router: Hono, config: RouteConfig<TBody, TQuery, TParams, TResponses, TPublic, TStrictTypes, TContextVariables>): RouteHandlers;
15
16
  //# sourceMappingURL=route-helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMpE,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAClF,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,iBAAiB,SAAS,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAEjD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,IAAI,GACjG,YAAY,CAKd;AAED;;GAEG;AACH,wBAAgB,KAAK,CACnB,KAAK,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACnD,MAAM,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACpD,OAAO,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACrD,UAAU,SAAS,OAAO,CACxB,MAAM,CAAC,MAAM,OAAO,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,CACpE,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACxB,OAAO,SAAS,OAAO,GAAG,KAAK,EAC/B,YAAY,SAAS,OAAO,GAAG,KAAK,EACpC,iBAAiB,SAAS,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAEjD,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAChG,aAAa,CA0Cf"}
1
+ {"version":3,"file":"route-helpers.d.ts","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAOpE,OAAO,KAAK,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAClF,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAE1B;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,iBAAiB,SAAS,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAEjD,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,KAAK,IAAI,GACjG,YAAY,CAKd;AAED;;GAEG;AACH,wBAAgB,KAAK,CACnB,KAAK,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACnD,MAAM,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACpD,OAAO,SAAS,aAAa,GAAG,SAAS,GAAG,SAAS,EACrD,UAAU,SAAS,OAAO,CACxB,MAAM,CAAC,MAAM,OAAO,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,CACpE,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,EACxB,OAAO,SAAS,OAAO,GAAG,KAAK,EAC/B,YAAY,SAAS,OAAO,GAAG,qBAAqB,EACpD,iBAAiB,SAAS,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,EAEjD,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,iBAAiB,CAAC,GAChG,aAAa,CAmDf"}
@@ -1,3 +1,4 @@
1
+ import { detectEnvironment } from '../utils/environment.js';
1
2
  import { enforceRouteAuthorization } from './route-authorization.js';
2
3
  import { buildRouteContext } from './route-context.js';
3
4
  import { buildOpenAPIMiddleware } from './route-openapi.js';
@@ -41,9 +42,35 @@ export function route(router, config) {
41
42
  if (config.authorize) {
42
43
  enforceRouteAuthorization(config.authorize, routeContext);
43
44
  }
44
- const result = await config.handler(routeContext);
45
- return handleResponse(result, config.responses, config.serialization, config.strictTypes, config.summary, c, routeContext.logger);
45
+ const statusTracking = trackExplicitStatus(c);
46
+ let result;
47
+ try {
48
+ result = await config.handler(routeContext);
49
+ }
50
+ finally {
51
+ statusTracking.stop();
52
+ }
53
+ return handleResponse(result, config.responses, config.serialization, openAPIContext.serialization, config.strictTypes ?? openAPIContext.strictTypes, config.summary, c, openAPIContext.environment ?? detectEnvironment(), routeContext.logger, statusTracking.status);
46
54
  });
47
55
  return middlewares;
48
56
  }
57
+ /**
58
+ * Hono keeps the status private and reports 200 until a response exists, so an explicit
59
+ * `context.status(200)` is indistinguishable from the default. Record the status the
60
+ * handler sets, and restore Hono's method once the handler has finished.
61
+ */
62
+ function trackExplicitStatus(c) {
63
+ const setStatus = c.status;
64
+ const tracking = {
65
+ status: undefined,
66
+ stop: () => {
67
+ c.status = setStatus;
68
+ },
69
+ };
70
+ c.status = (code) => {
71
+ tracking.status = code;
72
+ setStatus(code);
73
+ };
74
+ return tracking;
75
+ }
49
76
  //# sourceMappingURL=route-helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGxF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAUlF;;GAEG;AACH,MAAM,UAAU,YAAY,CAI1B,OAAkG;IAElG,OAAO,CAAC,MAAY,EAAE,QAAiC,EAAE,EAAE;QACzD,MAAM,UAAU,GAA0C,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5F,OAAO,CAAC,MAAM,EAAE,QAAqB,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAWnB,MAAY,EACZ,MAAiG;IAEjG,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,CAAU,EAAE,EAAE;QACpC,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,yBAAyB,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAElD,OAAO,cAAc,CACnB,MAAM,EACN,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,OAAO,EACd,CAAC,EACD,YAAY,CAAC,MAAM,CACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,WAA4B,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"route-helpers.js","sourceRoot":"","sources":["../../src/http/route-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import type { Hono } from 'hono';
2
- import type { OpenAPIResponseProcessor } from '../core/types.js';
2
+ import type { DecimalSerialization } from '../core/glasswork-config.js';
3
+ import type { Environment, OpenAPIResponseProcessor } from '../core/types.js';
3
4
  import type { PinoLogger } from '../observability/pino-logger.js';
5
+ import type { SerializationConfig } from '../utils/serialize-prisma-types.js';
4
6
  /**
5
7
  * OpenAPI context stored in Hono app context.
6
8
  * Set during bootstrap and used when defining routes.
@@ -15,6 +17,18 @@ export interface OpenAPIContext {
15
17
  pino?: PinoLogger;
16
18
  logger?: import('../utils/logger.js').Logger;
17
19
  sanitizers?: import('../observability/sanitizers.js').ObservabilitySanitizers;
20
+ /**
21
+ * Environment resolved by `bootstrap()`. Production rejects responses that match no
22
+ * declared schema. Routes outside bootstrap fall back to `detectEnvironment()`.
23
+ */
24
+ environment?: Environment;
25
+ /**
26
+ * Application-wide serialization built from the `serialization` bootstrap option. A route's
27
+ * own transformers run before its transformers. Routes outside bootstrap use the defaults.
28
+ */
29
+ serialization?: SerializationConfig<DecimalSerialization>;
30
+ /** `serialization.strictTypes` from bootstrap; a route's own `strictTypes` takes precedence. */
31
+ strictTypes?: boolean;
18
32
  }
19
33
  /**
20
34
  * Set the OpenAPI context for a Hono app instance.
@@ -1 +1 @@
1
- {"version":3,"file":"route-openapi-context.d.ts","sourceRoot":"","sources":["../../src/http/route-openapi-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,wBAAwB,EAAE,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,MAAM,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,CAAC;CAC/E;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE1E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,GAAG,cAAc,CAE3D"}
1
+ {"version":3,"file":"route-openapi-context.d.ts","sourceRoot":"","sources":["../../src/http/route-openapi-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAE9E;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,wBAAwB,EAAE,CAAC;IACvC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,MAAM,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,CAAC;IAC9E;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;IAC1D,gGAAgG;IAChG,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAE1E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,IAAI,GAAG,cAAc,CAE3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-openapi-context.js","sourceRoot":"","sources":["../../src/http/route-openapi-context.ts"],"names":[],"mappings":"AAoBA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAS,EAAE,OAAuB;IAClE,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAS;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAChG,CAAC"}
1
+ {"version":3,"file":"route-openapi-context.js","sourceRoot":"","sources":["../../src/http/route-openapi-context.ts"],"names":[],"mappings":"AAkCA,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAwB,CAAC;AAE9D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAS,EAAE,OAAuB;IAClE,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAS;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AAChG,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import type { Context } from 'hono';
2
+ import type { DecimalSerialization } from '../core/glasswork-config.js';
3
+ import type { Environment } from '../core/types.js';
2
4
  import { type Logger } from '../utils/logger.js';
3
- import { type SerializationConfig } from '../utils/serialize-prisma-types.js';
5
+ import { type SerializationConfig, type TypeTransformer } from '../utils/serialize-prisma-types.js';
4
6
  import type { STATUS_DESCRIPTIONS, ValibotSchema } from './route-types.js';
5
- export declare function handleResponse<TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>>>(result: unknown, responses: TResponses | undefined, serializationConfig: Partial<SerializationConfig> | undefined, strictTypes: boolean | undefined, routeSummary: string | undefined, context: Context, logger?: Logger): Promise<Response | undefined>;
7
+ export declare function handleResponse<TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>>>(result: unknown, responses: TResponses | undefined, serializationConfig: {
8
+ transformers?: TypeTransformer[];
9
+ } | undefined, applicationSerialization: SerializationConfig<DecimalSerialization> | undefined, strictTypes: boolean | undefined, routeSummary: string | undefined, context: Context, environment: Environment, logger?: Logger, explicitStatus?: number): Promise<Response | undefined>;
6
10
  //# sourceMappingURL=route-response.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-response.d.ts","sourceRoot":"","sources":["../../src/http/route-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgE3E,wBAAsB,cAAc,CAClC,UAAU,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC,EAE/F,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,EAC7D,WAAW,EAAE,OAAO,GAAG,SAAS,EAChC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,OAAO,EAChB,MAAM,GAAE,MAA+B,GACtC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CA4C/B"}
1
+ {"version":3,"file":"route-response.d.ts","sourceRoot":"","sources":["../../src/http/route-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAEL,KAAK,mBAAmB,EAExB,KAAK,eAAe,EACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AA+F3E,wBAAsB,cAAc,CAClC,UAAU,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC,EAE/F,MAAM,EAAE,OAAO,EACf,SAAS,EAAE,UAAU,GAAG,SAAS,EACjC,mBAAmB,EAAE;IAAE,YAAY,CAAC,EAAE,eAAe,EAAE,CAAA;CAAE,GAAG,SAAS,EACrE,wBAAwB,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,GAAG,SAAS,EAC/E,WAAW,EAAE,OAAO,GAAG,SAAS,EAChC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,MAAM,GAAE,MAA+B,EACvC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAqD/B"}
@@ -1,21 +1,38 @@
1
1
  import { safeParseAsync } from 'valibot';
2
2
  import { createLogger } from '../utils/logger.js';
3
3
  import { defaultConfig as defaultSerializationConfig, serializePrismaTypes, } from '../utils/serialize-prisma-types.js';
4
- function serializeResponseData(data, serializationConfig) {
5
- const config = serializationConfig
4
+ /**
5
+ * Route-level transformers run first, then the application-wide configuration from
6
+ * bootstrap (or the defaults), which ends with the built-in Date and Decimal handling.
7
+ */
8
+ function serializeResponseData(data, routeTransformers, applicationConfig = defaultSerializationConfig) {
9
+ const config = routeTransformers?.length
6
10
  ? {
7
- transformers: [
8
- ...(serializationConfig.transformers || []),
9
- ...defaultSerializationConfig.transformers,
10
- ],
11
+ ...applicationConfig,
12
+ transformers: [...routeTransformers, ...applicationConfig.transformers],
11
13
  }
12
- : defaultSerializationConfig;
14
+ : applicationConfig;
13
15
  return serializePrismaTypes(data, config);
14
16
  }
15
- async function parseResponse(data, responses, logger) {
17
+ /**
18
+ * Picks the response status and schema. A status the handler set explicitly wins when the
19
+ * route declares a schema for it; otherwise the first declared success or redirect schema
20
+ * that accepts the data decides the status.
21
+ */
22
+ async function parseResponse(data, responses, logger, environment, explicitStatus) {
16
23
  if (!responses) {
17
24
  return { data };
18
25
  }
26
+ const explicitSchema = explicitStatus === undefined
27
+ ? undefined
28
+ : responses[explicitStatus];
29
+ if (explicitSchema) {
30
+ const result = await safeParseAsync(explicitSchema, data);
31
+ if (result.success) {
32
+ return { data: result.output, statusCode: explicitStatus };
33
+ }
34
+ return rejectUnmatchedResponse(data, logger, environment, `the ${explicitStatus} schema`);
35
+ }
19
36
  const successCodes = [
20
37
  200, 201, 202, 204, 301, 302, 307, 308,
21
38
  ];
@@ -28,18 +45,21 @@ async function parseResponse(data, responses, logger) {
28
45
  return { data: result.output, statusCode };
29
46
  }
30
47
  }
31
- if (process.env.NODE_ENV === 'production') {
32
- logger.error('Response data does not match any defined success/redirect schema. ' +
48
+ return rejectUnmatchedResponse(data, logger, environment, 'any defined success/redirect schema');
49
+ }
50
+ function rejectUnmatchedResponse(data, logger, environment, expected) {
51
+ if (environment === 'production') {
52
+ logger.error(`Response data does not match ${expected}. ` +
33
53
  'Refusing to return unvalidated data in production.');
34
54
  throw new Error('Response validation failed: Data does not match any defined response schema. ' +
35
55
  'This prevents potentially sensitive data from being leaked.');
36
56
  }
37
- logger.warn('Response data does not match any defined success/redirect schema. ' +
57
+ logger.warn(`Response data does not match ${expected}. ` +
38
58
  'Data will be returned as-is without validation or key stripping. ' +
39
59
  'This would throw an error in production.');
40
60
  return { data };
41
61
  }
42
- export async function handleResponse(result, responses, serializationConfig, strictTypes, routeSummary, context, logger = createLogger('Routes')) {
62
+ export async function handleResponse(result, responses, serializationConfig, applicationSerialization, strictTypes, routeSummary, context, environment, logger = createLogger('Routes'), explicitStatus) {
43
63
  if (result instanceof Response) {
44
64
  return result;
45
65
  }
@@ -50,7 +70,7 @@ export async function handleResponse(result, responses, serializationConfig, str
50
70
  let serializedResult;
51
71
  try {
52
72
  if (!strictTypes) {
53
- serializedResult = serializeResponseData(result, serializationConfig);
73
+ serializedResult = serializeResponseData(result, serializationConfig?.transformers, applicationSerialization);
54
74
  }
55
75
  else {
56
76
  serializedResult = result;
@@ -61,14 +81,14 @@ export async function handleResponse(result, responses, serializationConfig, str
61
81
  error: error instanceof Error ? error.message : String(error),
62
82
  route: routeSummary || 'unknown',
63
83
  });
64
- const errorMessage = process.env.NODE_ENV === 'production'
84
+ const errorMessage = environment === 'production'
65
85
  ? 'Failed to serialize response data'
66
86
  : error instanceof Error
67
87
  ? error.message
68
88
  : String(error);
69
- return context.json({ error: 'Internal Server Error', message: errorMessage }, 500);
89
+ return context.json({ error: 'Internal Server Error', code: 'internal-server-error', message: errorMessage }, 500);
70
90
  }
71
- const { data: parsedResult, statusCode } = await parseResponse(serializedResult, responses, logger);
91
+ const { data: parsedResult, statusCode } = await parseResponse(serializedResult, responses, logger, environment, explicitStatus);
72
92
  if (statusCode) {
73
93
  context.status(statusCode);
74
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"route-response.js","sourceRoot":"","sources":["../../src/http/route-response.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-response.js","sourceRoot":"","sources":["../../src/http/route-response.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import type { Context, MiddlewareHandler } from 'hono';
2
2
  import type { DescribeRouteOptions } from 'hono-openapi';
3
3
  import type { BaseIssue, BaseSchema, BaseSchemaAsync, InferOutput } from 'valibot';
4
+ import type { ConfiguredStrictTypes } from '../core/glasswork-config.js';
4
5
  import type { RouteConfigExtensions, RouteFactory, RouteHandlers } from '../core/types.js';
5
- import type { AcceptPrismaTypes, SerializationConfig } from '../utils/serialize-prisma-types.js';
6
+ import type { AcceptPrismaTypes, TypeTransformer } from '../utils/serialize-prisma-types.js';
6
7
  /**
7
8
  * OpenAPI extensions for route configuration
8
9
  */
@@ -54,8 +55,8 @@ export type { RouteFactory };
54
55
  /**
55
56
  * Bound route function type - route() pre-bound to a router's OpenAPI context.
56
57
  */
57
- export type BoundRouteFunction<TContextVariables extends object = Context['var']> = <TBody extends ValibotSchema | undefined = undefined, TQuery extends ValibotSchema | undefined = undefined, TParams extends ValibotSchema | undefined = undefined, TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>> = Record<never, never>, TPublic extends boolean = false, TStrictTypes extends boolean = false>(config: RouteConfig<TBody, TQuery, TParams, TResponses, TPublic, TStrictTypes, TContextVariables>) => RouteHandlers;
58
- export interface RouteConfig<TBody extends ValibotSchema | undefined = undefined, TQuery extends ValibotSchema | undefined = undefined, TParams extends ValibotSchema | undefined = undefined, TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>> = Record<never, never>, TPublic extends boolean = false, TStrictTypes extends boolean = false, TContextVariables extends object = Context['var']> extends RouteConfigExtensions {
58
+ export type BoundRouteFunction<TContextVariables extends object = Context['var']> = <TBody extends ValibotSchema | undefined = undefined, TQuery extends ValibotSchema | undefined = undefined, TParams extends ValibotSchema | undefined = undefined, TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>> = Record<never, never>, TPublic extends boolean = false, TStrictTypes extends boolean = ConfiguredStrictTypes>(config: RouteConfig<TBody, TQuery, TParams, TResponses, TPublic, TStrictTypes, TContextVariables>) => RouteHandlers;
59
+ export interface RouteConfig<TBody extends ValibotSchema | undefined = undefined, TQuery extends ValibotSchema | undefined = undefined, TParams extends ValibotSchema | undefined = undefined, TResponses extends Partial<Record<keyof typeof STATUS_DESCRIPTIONS, ValibotSchema | undefined>> = Record<never, never>, TPublic extends boolean = false, TStrictTypes extends boolean = ConfiguredStrictTypes, TContextVariables extends object = Context['var']> extends RouteConfigExtensions {
59
60
  tags?: string[];
60
61
  summary?: string;
61
62
  description?: string;
@@ -68,8 +69,15 @@ export interface RouteConfig<TBody extends ValibotSchema | undefined = undefined
68
69
  responses?: TResponses;
69
70
  openapi?: RouteOpenAPIOptions;
70
71
  middleware?: MiddlewareHandler[];
72
+ /**
73
+ * Disable automatic serialization and require the handler to return the schema types exactly.
74
+ * Defaults to the `serialization.strictTypes` bootstrap option, as declared in `GlassworkConfig`.
75
+ */
71
76
  strictTypes?: TStrictTypes;
72
- serialization?: Partial<SerializationConfig>;
77
+ /** Transformers for this route, which run before the application-wide ones from bootstrap. */
78
+ serialization?: {
79
+ transformers?: TypeTransformer[];
80
+ };
73
81
  authorize?: {
74
82
  action: string;
75
83
  subject: string | {
@@ -1 +1 @@
1
- {"version":3,"file":"route-types.d.ts","sourceRoot":"","sources":["../../src/http/route-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-types.d.ts","sourceRoot":"","sources":["../../src/http/route-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-types.js","sourceRoot":"","sources":["../../src/http/route-types.ts"],"names":[],"mappings":"AA+CA;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,uBAAuB;CACpB,CAAC"}
1
+ {"version":3,"file":"route-types.js","sourceRoot":"","sources":["../../src/http/route-types.ts"],"names":[],"mappings":"AAgDA;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,UAAU;IACf,GAAG,EAAE,sBAAsB;IAC3B,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,uBAAuB;CACpB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-validation.d.ts","sourceRoot":"","sources":["../../src/http/route-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAS9E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EACzC,MAAM,EAAE,aAAa,GACpB,iBAAiB,CAMnB"}
1
+ {"version":3,"file":"route-validation.d.ts","sourceRoot":"","sources":["../../src/http/route-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,iBAAiB,EAAE,MAAM,MAAM,CAAC;AAGvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,CAS9E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EACzC,MAAM,EAAE,aAAa,GACpB,iBAAiB,CAanB"}
@@ -17,8 +17,28 @@ export function hasPaginationFields(schema) {
17
17
  export function createValidationMiddleware(type, schema) {
18
18
  return validator(type, schema, (result, c) => {
19
19
  if (!result.success) {
20
- return c.json({ error: 'Validation failed', issues: result.error }, 422);
20
+ return c.json({
21
+ error: 'Validation failed',
22
+ code: 'validation-failed',
23
+ issues: toValidationIssues(result.error),
24
+ }, 422);
21
25
  }
22
26
  });
23
27
  }
28
+ /**
29
+ * Reduce schema issues to `{ message, path }`, as `ValidationIssueDto` documents. Raw issues
30
+ * also hold the received input, which would echo the request body, such as a password,
31
+ * back to the client.
32
+ */
33
+ function toValidationIssues(issues) {
34
+ if (!Array.isArray(issues))
35
+ return [];
36
+ return issues.map((issue) => ({
37
+ message: issue.message,
38
+ path: (issue.path ?? []).map((segment) => {
39
+ const key = typeof segment === 'object' && segment !== null ? segment.key : segment;
40
+ return typeof key === 'number' ? key : String(key);
41
+ }),
42
+ }));
43
+ }
24
44
  //# sourceMappingURL=route-validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-validation.js","sourceRoot":"","sources":["../../src/http/route-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,SAAS,GAAG,MAA+C,CAAC;IAClE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,MAAM,IAAI,SAAS,CAAC,OAAO,IAAI,UAAU,IAAI,SAAS,CAAC,OAAO,CAAC;IACxE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAyC,EACzC,MAAqB;IAErB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,MAA6C,EAAE,CAAU,EAAE,EAAE;QAC3F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"route-validation.js","sourceRoot":"","sources":["../../src/http/route-validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiC;IACnE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,MAAM,SAAS,GAAG,MAA+C,CAAC;IAClE,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,MAAM,IAAI,SAAS,CAAC,OAAO,IAAI,UAAU,IAAI,SAAS,CAAC,OAAO,CAAC;IACxE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAyC,EACzC,MAAqB;IAErB,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,MAA6C,EAAE,CAAU,EAAE,EAAE;QAC3F,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC;aACzC,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAOD;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAAe;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAQ,MAAwB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YACvC,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;YACpF,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;KACH,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -35,6 +35,7 @@ export interface ScheduleResult extends EnqueueResult {
35
35
  export declare class EventBridgeSchedulerDriver {
36
36
  private readonly config;
37
37
  private client;
38
+ private disposed;
38
39
  constructor(config: EventBridgeSchedulerConfig);
39
40
  /**
40
41
  * Lazily initialize the Scheduler client.
@@ -1 +1 @@
1
- {"version":3,"file":"eventbridge-scheduler-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/eventbridge-scheduler-driver.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7D,MAAM,WAAW,0BAA0B;IACzC,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,0BAA0B;IAC1B,WAAW,EAAE,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,qBAAa,0BAA0B;IAGzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,MAAM,CAAoC;IAElD,YAA6B,MAAM,EAAE,0BAA0B,EAAI;IAEnE;;OAEG;YACW,SAAS;IAUvB;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkDpE;IAED;;;;OAIG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQhD;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7B;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAwBtB"}
1
+ {"version":3,"file":"eventbridge-scheduler-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/eventbridge-scheduler-driver.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG7D,MAAM,WAAW,0BAA0B;IACzC,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,0BAA0B;IAC1B,WAAW,EAAE,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,YAAY,EAAE,MAAM,CAAC;CACtB;AAQD;;;;;GAKG;AACH,qBAAa,0BAA0B;IAIzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHnC,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAA6B,MAAM,EAAE,0BAA0B,EAAI;IAEnE;;OAEG;YACW,SAAS;IAavB;;;;;;;;OAQG;IACG,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAmDpE;IAED;;;;OAIG;IACG,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAShD;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAM7B;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;CAwBtB"}
@@ -1,5 +1,6 @@
1
- import { CreateScheduleCommand, DeleteScheduleCommand, SchedulerClient, } from '@aws-sdk/client-scheduler';
1
+ import { optionalDependency } from '../../utils/optional-dependency.js';
2
2
  import { generateJobId } from '../utils.js';
3
+ const loadScheduler = optionalDependency('@aws-sdk/client-scheduler', 'EventBridgeSchedulerDriver', () => import('@aws-sdk/client-scheduler'));
3
4
  /**
4
5
  * EventBridge Scheduler driver for scheduling jobs with delays longer than 15 minutes.
5
6
  *
@@ -9,6 +10,7 @@ import { generateJobId } from '../utils.js';
9
10
  export class EventBridgeSchedulerDriver {
10
11
  config;
11
12
  client = null;
13
+ disposed = false;
12
14
  constructor(config) {
13
15
  this.config = config;
14
16
  }
@@ -16,8 +18,13 @@ export class EventBridgeSchedulerDriver {
16
18
  * Lazily initialize the Scheduler client.
17
19
  */
18
20
  async getClient() {
21
+ if (this.disposed)
22
+ throw new Error('EventBridgeSchedulerDriver has been disposed');
19
23
  if (!this.client) {
20
- this.client = new SchedulerClient({
24
+ const { SchedulerClient } = await loadScheduler();
25
+ if (this.disposed)
26
+ throw new Error('EventBridgeSchedulerDriver has been disposed');
27
+ this.client ??= new SchedulerClient({
21
28
  region: this.config.region,
22
29
  ...(this.config.endpoint && { endpoint: this.config.endpoint }),
23
30
  });
@@ -47,6 +54,7 @@ export class EventBridgeSchedulerDriver {
47
54
  metadata: config.message.metadata,
48
55
  enqueuedAt: new Date().toISOString(),
49
56
  });
57
+ const { CreateScheduleCommand } = await loadScheduler();
50
58
  const command = new CreateScheduleCommand({
51
59
  Name: scheduleName,
52
60
  GroupName: this.config.scheduleGroupName ?? 'default',
@@ -85,6 +93,7 @@ export class EventBridgeSchedulerDriver {
85
93
  */
86
94
  async cancel(scheduleName) {
87
95
  const client = await this.getClient();
96
+ const { DeleteScheduleCommand } = await loadScheduler();
88
97
  const command = new DeleteScheduleCommand({
89
98
  Name: scheduleName,
90
99
  GroupName: this.config.scheduleGroupName ?? 'default',
@@ -96,6 +105,7 @@ export class EventBridgeSchedulerDriver {
96
105
  * Call this when you're done using the driver to prevent memory leaks.
97
106
  */
98
107
  async dispose() {
108
+ this.disposed = true;
99
109
  if (this.client) {
100
110
  this.client.destroy();
101
111
  this.client = null;
@@ -1 +1 @@
1
- {"version":3,"file":"eventbridge-scheduler-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/eventbridge-scheduler-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eventbridge-scheduler-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/eventbridge-scheduler-driver.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,10 @@ export interface MockQueueDriverConfig {
28
28
  * Resolver to get DI services for job execution.
29
29
  * Called when a job is executed, returning the services container.
30
30
  * Required when executeImmediately is true.
31
+ *
32
+ * When it returns a module's injected services (the cradle a factory receives), a job
33
+ * declared in a module's `jobs` runs in a new scope of that module, like in the worker.
34
+ * Other jobs, and plain objects, use the returned services as-is.
31
35
  */
32
36
  serviceResolver?: () => Record<string, unknown>;
33
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mock-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAc,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhG,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgC;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAM;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IAEjC,YAAY,MAAM,GAAE,qBAA0B,EAK7C;IAED;;OAEG;IACH,eAAe,CAAC,KAAK,QAAoC,GAAG,IAAI,CAE/D;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAED,IAAI,OAAO,IAAI,eAAe,GAAG,SAAS,CAEzC;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAczD;IAED,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;YAMd,kBAAkB;IA8BhC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,wBAAwB;IAO1B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAOrE;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;CACF"}
1
+ {"version":3,"file":"mock-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAc,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGhG,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,EAAE,CAAC,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,IAAI,UAAU;IACvB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAgC;IACjE,QAAQ,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAM;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IAEjC,YAAY,MAAM,GAAE,qBAA0B,EAK7C;IAED;;OAEG;IACH,eAAe,CAAC,KAAK,QAAoC,GAAG,IAAI,CAE/D;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;IAED,IAAI,OAAO,IAAI,eAAe,GAAG,SAAS,CAEzC;IAEK,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAczD;IAED,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,oBAAoB;YAMd,kBAAkB;IAmChC,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,wBAAwB;IAO1B,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAOrE;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;CACF"}
@@ -1,6 +1,7 @@
1
+ import { resolveJobServices } from '../../core/job-services.js';
1
2
  import { createLogger } from '../../utils/logger.js';
2
3
  import { runJobAttempt } from '../job-runner.js';
3
- import { generateJobId } from '../utils.js';
4
+ import { generateJobId, toWirePayload } from '../utils.js';
4
5
  /**
5
6
  * In-memory queue driver for testing and local development.
6
7
  *
@@ -85,7 +86,9 @@ export class MockQueueDriver {
85
86
  this.warnMissingJobDefinition(message.jobName);
86
87
  return;
87
88
  }
88
- const services = this.serviceResolver();
89
+ const resolved = this.serviceResolver();
90
+ const owned = resolveJobServices(resolved, message.jobName);
91
+ const services = owned?.services ?? resolved;
89
92
  const logger = this.resolveLogger(services);
90
93
  const context = this.createJobContext({
91
94
  services,
@@ -94,12 +97,16 @@ export class MockQueueDriver {
94
97
  jobName: message.jobName,
95
98
  });
96
99
  try {
97
- await runJobAttempt(job, message.payload, context);
100
+ // Run with the payload a worker would receive after JSON transport.
101
+ await runJobAttempt(job, toWirePayload(message.payload), context);
98
102
  }
99
103
  catch (error) {
100
104
  logger.error('Local job attempt failed', { jobId, jobName: message.jobName, error });
101
105
  throw error;
102
106
  }
107
+ finally {
108
+ await owned?.dispose();
109
+ }
103
110
  }
104
111
  resolveLogger(services) {
105
112
  if (this.logger)
@@ -1 +1 @@
1
- {"version":3,"file":"mock-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-driver.js","sourceRoot":"","sources":["../../../src/jobs/drivers/mock-driver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type SQSClient as SQSClientType } from '@aws-sdk/client-sqs';
1
+ import type { SQSClient as SQSClientType } from '@aws-sdk/client-sqs';
2
2
  import type { Duration, EnqueueResult, JobMessage, QueueDriver } from '../types.js';
3
3
  import { type EventBridgeSchedulerConfig } from './eventbridge-scheduler-driver.js';
4
4
  export interface SQSDriverConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"sqs-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/sqs-driver.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,IAAI,aAAa,EAChC,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EACL,KAAK,0BAA0B,EAGhC,MAAM,mCAAmC,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,yCAAyC;IACzC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,WAAW;IAOpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAA6B,MAAM,EAAE,eAAe,EAQnD;IAED;;;OAGG;YACW,SAAS;IAajB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAkCzD;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CASrE;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;IAED;;;;OAIG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxD;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7B;IAED,OAAO,CAAC,WAAW;YASL,gBAAgB;YAwChB,uBAAuB;CAgBtC"}
1
+ {"version":3,"file":"sqs-driver.d.ts","sourceRoot":"","sources":["../../../src/jobs/drivers/sqs-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,SAAS,IAAI,aAAa,EAC3B,MAAM,qBAAqB,CAAC;AAG7B,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,EACL,KAAK,0BAA0B,EAGhC,MAAM,mCAAmC,CAAC;AAQ3C,MAAM,WAAW,eAAe;IAC9B,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,yCAAyC;IACzC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;GAMG;AACH,qBAAa,cAAe,YAAW,WAAW;IAOpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAS;IAEzB,YAA6B,MAAM,EAAE,eAAe,EAQnD;IAED;;;OAGG;YACW,SAAS;IAejB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAmCzD;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CASrE;IAEK,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAO5E;IAED;;;;OAIG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKxD;IAED;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7B;IAED,OAAO,CAAC,WAAW;YASL,gBAAgB;YAyChB,uBAAuB;CAgBtC"}