stratal 0.0.1 → 0.0.4

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 (283) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +101 -25
  3. package/dist/application.d.ts +0 -1
  4. package/dist/application.d.ts.map +1 -1
  5. package/dist/application.js +3 -2
  6. package/dist/application.js.map +1 -1
  7. package/dist/cache/errors/cache-delete.error.d.ts +1 -1
  8. package/dist/cache/errors/cache-delete.error.d.ts.map +1 -1
  9. package/dist/cache/errors/cache-delete.error.js +1 -1
  10. package/dist/cache/errors/cache-delete.error.js.map +1 -1
  11. package/dist/cache/errors/cache-get.error.d.ts +1 -1
  12. package/dist/cache/errors/cache-get.error.d.ts.map +1 -1
  13. package/dist/cache/errors/cache-get.error.js +1 -1
  14. package/dist/cache/errors/cache-get.error.js.map +1 -1
  15. package/dist/cache/errors/cache-list.error.d.ts +1 -1
  16. package/dist/cache/errors/cache-list.error.d.ts.map +1 -1
  17. package/dist/cache/errors/cache-list.error.js +1 -1
  18. package/dist/cache/errors/cache-list.error.js.map +1 -1
  19. package/dist/cache/errors/cache-put.error.d.ts +1 -1
  20. package/dist/cache/errors/cache-put.error.d.ts.map +1 -1
  21. package/dist/cache/errors/cache-put.error.js +1 -1
  22. package/dist/cache/errors/cache-put.error.js.map +1 -1
  23. package/dist/config/config.types.d.ts +2 -2
  24. package/dist/config/errors/config-not-initialized.error.d.ts +1 -1
  25. package/dist/config/errors/config-not-initialized.error.d.ts.map +1 -1
  26. package/dist/config/errors/config-not-initialized.error.js +1 -1
  27. package/dist/config/errors/config-not-initialized.error.js.map +1 -1
  28. package/dist/config/services/config.service.d.ts +6 -5
  29. package/dist/config/services/config.service.d.ts.map +1 -1
  30. package/dist/config/services/config.service.js +25 -8
  31. package/dist/config/services/config.service.js.map +1 -1
  32. package/dist/cron/cron-job.d.ts +5 -6
  33. package/dist/cron/cron-job.d.ts.map +1 -1
  34. package/dist/cron/errors/cron-execution.error.d.ts +1 -1
  35. package/dist/cron/errors/cron-execution.error.d.ts.map +1 -1
  36. package/dist/cron/errors/cron-execution.error.js +1 -1
  37. package/dist/cron/errors/cron-execution.error.js.map +1 -1
  38. package/dist/di/container.d.ts +0 -4
  39. package/dist/di/container.d.ts.map +1 -1
  40. package/dist/di/container.js +0 -4
  41. package/dist/di/container.js.map +1 -1
  42. package/dist/di/decorators/inject-param.decorator.d.ts.map +1 -1
  43. package/dist/di/decorators/inject-param.decorator.js +1 -1
  44. package/dist/di/decorators/inject-param.decorator.js.map +1 -1
  45. package/dist/di/decorators.d.ts +1 -1
  46. package/dist/di/decorators.js +1 -1
  47. package/dist/di/errors/conditional-binding-fallback.error.d.ts +1 -1
  48. package/dist/di/errors/conditional-binding-fallback.error.d.ts.map +1 -1
  49. package/dist/di/errors/conditional-binding-fallback.error.js +1 -1
  50. package/dist/di/errors/conditional-binding-fallback.error.js.map +1 -1
  51. package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts +1 -1
  52. package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts.map +1 -1
  53. package/dist/di/errors/request-scope-operation-not-allowed.error.js +1 -1
  54. package/dist/di/errors/request-scope-operation-not-allowed.error.js.map +1 -1
  55. package/dist/email/consumers/email.consumer.d.ts.map +1 -1
  56. package/dist/email/consumers/email.consumer.js +1 -5
  57. package/dist/email/consumers/email.consumer.js.map +1 -1
  58. package/dist/email/services/email.service.d.ts +1 -1
  59. package/dist/email/services/email.service.js +1 -1
  60. package/dist/errors/application-error.d.ts +7 -1
  61. package/dist/errors/application-error.d.ts.map +1 -1
  62. package/dist/errors/application-error.js +8 -1
  63. package/dist/errors/application-error.js.map +1 -1
  64. package/dist/errors/error-codes.d.ts +0 -2
  65. package/dist/errors/error-codes.d.ts.map +1 -1
  66. package/dist/errors/error-codes.js +0 -2
  67. package/dist/errors/error-codes.js.map +1 -1
  68. package/dist/errors/error-response.d.ts.map +1 -0
  69. package/dist/errors/error-response.js.map +1 -0
  70. package/dist/{infrastructure/error-handler → errors}/global-error-handler.d.ts +3 -3
  71. package/dist/errors/global-error-handler.d.ts.map +1 -0
  72. package/dist/{infrastructure/error-handler → errors}/global-error-handler.js +9 -11
  73. package/dist/errors/global-error-handler.js.map +1 -0
  74. package/dist/errors/index.d.ts +4 -0
  75. package/dist/errors/index.d.ts.map +1 -1
  76. package/dist/errors/index.js +4 -0
  77. package/dist/errors/index.js.map +1 -1
  78. package/dist/{infrastructure/error-handler → errors}/internal-error.d.ts +1 -1
  79. package/dist/errors/internal-error.d.ts.map +1 -0
  80. package/dist/{infrastructure/error-handler → errors}/internal-error.js +2 -2
  81. package/dist/errors/internal-error.js.map +1 -0
  82. package/dist/{infrastructure/errors → errors}/request-container-not-initialized.error.d.ts +1 -1
  83. package/dist/errors/request-container-not-initialized.error.d.ts.map +1 -0
  84. package/dist/{infrastructure/errors → errors}/request-container-not-initialized.error.js +2 -2
  85. package/dist/errors/request-container-not-initialized.error.js.map +1 -0
  86. package/dist/guards/types.d.ts +1 -1
  87. package/dist/guards/types.d.ts.map +1 -1
  88. package/dist/guards/types.js +1 -1
  89. package/dist/guards/types.js.map +1 -1
  90. package/dist/guards/use-guards.decorator.d.ts +4 -4
  91. package/dist/guards/use-guards.decorator.js +4 -4
  92. package/dist/i18n/errors/locale-not-supported.error.d.ts +1 -1
  93. package/dist/i18n/errors/locale-not-supported.error.d.ts.map +1 -1
  94. package/dist/i18n/errors/locale-not-supported.error.js +1 -1
  95. package/dist/i18n/errors/locale-not-supported.error.js.map +1 -1
  96. package/dist/i18n/errors/translation-missing.error.d.ts +1 -1
  97. package/dist/i18n/errors/translation-missing.error.d.ts.map +1 -1
  98. package/dist/i18n/errors/translation-missing.error.js +1 -2
  99. package/dist/i18n/errors/translation-missing.error.js.map +1 -1
  100. package/dist/i18n/i18n.module.d.ts +3 -3
  101. package/dist/i18n/i18n.module.d.ts.map +1 -1
  102. package/dist/i18n/i18n.module.js +3 -3
  103. package/dist/i18n/i18n.module.js.map +1 -1
  104. package/dist/i18n/i18n.options.d.ts +2 -2
  105. package/dist/i18n/i18n.options.js +1 -1
  106. package/dist/i18n/i18n.tokens.d.ts +1 -1
  107. package/dist/i18n/i18n.tokens.d.ts.map +1 -1
  108. package/dist/i18n/i18n.tokens.js +1 -1
  109. package/dist/i18n/i18n.tokens.js.map +1 -1
  110. package/dist/i18n/messages/en/common.d.ts +1 -5
  111. package/dist/i18n/messages/en/common.d.ts.map +1 -1
  112. package/dist/i18n/messages/en/common.js +1 -5
  113. package/dist/i18n/messages/en/common.js.map +1 -1
  114. package/dist/i18n/messages/en/errors.d.ts +0 -7
  115. package/dist/i18n/messages/en/errors.d.ts.map +1 -1
  116. package/dist/i18n/messages/en/errors.js +0 -8
  117. package/dist/i18n/messages/en/errors.js.map +1 -1
  118. package/dist/i18n/messages/en/zod.js +1 -1
  119. package/dist/i18n/services/i18n.service.d.ts +1 -13
  120. package/dist/i18n/services/i18n.service.d.ts.map +1 -1
  121. package/dist/i18n/services/i18n.service.js +3 -39
  122. package/dist/i18n/services/i18n.service.js.map +1 -1
  123. package/dist/i18n/services/message-loader.service.d.ts +19 -1
  124. package/dist/i18n/services/message-loader.service.d.ts.map +1 -1
  125. package/dist/i18n/services/message-loader.service.js +57 -3
  126. package/dist/i18n/services/message-loader.service.js.map +1 -1
  127. package/dist/index.d.ts +0 -18
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +0 -19
  130. package/dist/index.js.map +1 -1
  131. package/dist/logger/contracts/log-context.d.ts +1 -3
  132. package/dist/logger/contracts/log-context.d.ts.map +1 -1
  133. package/dist/logger/formatters/json-formatter.d.ts +0 -1
  134. package/dist/logger/formatters/json-formatter.d.ts.map +1 -1
  135. package/dist/logger/formatters/json-formatter.js +0 -1
  136. package/dist/logger/formatters/json-formatter.js.map +1 -1
  137. package/dist/logger/formatters/pretty-formatter.d.ts +0 -1
  138. package/dist/logger/formatters/pretty-formatter.d.ts.map +1 -1
  139. package/dist/logger/formatters/pretty-formatter.js +0 -1
  140. package/dist/logger/formatters/pretty-formatter.js.map +1 -1
  141. package/dist/logger/services/logger.service.d.ts +2 -2
  142. package/dist/logger/services/logger.service.js +2 -2
  143. package/dist/middleware/middleware-consumer.d.ts +3 -3
  144. package/dist/middleware/middleware-consumer.js +4 -4
  145. package/dist/middleware/types.d.ts +2 -2
  146. package/dist/module/errors/invalid-module-provider.error.d.ts +1 -1
  147. package/dist/module/errors/invalid-module-provider.error.d.ts.map +1 -1
  148. package/dist/module/errors/invalid-module-provider.error.js +1 -2
  149. package/dist/module/errors/invalid-module-provider.error.js.map +1 -1
  150. package/dist/module/errors/module-already-registered.error.d.ts +1 -1
  151. package/dist/module/errors/module-already-registered.error.d.ts.map +1 -1
  152. package/dist/module/errors/module-already-registered.error.js +1 -2
  153. package/dist/module/errors/module-already-registered.error.js.map +1 -1
  154. package/dist/module/errors/module-circular-dependency.error.d.ts +1 -1
  155. package/dist/module/errors/module-circular-dependency.error.d.ts.map +1 -1
  156. package/dist/module/errors/module-circular-dependency.error.js +1 -2
  157. package/dist/module/errors/module-circular-dependency.error.js.map +1 -1
  158. package/dist/module/errors/module-dependency-not-found.error.d.ts +1 -1
  159. package/dist/module/errors/module-dependency-not-found.error.d.ts.map +1 -1
  160. package/dist/module/errors/module-dependency-not-found.error.js +1 -2
  161. package/dist/module/errors/module-dependency-not-found.error.js.map +1 -1
  162. package/dist/module/module-registry.d.ts +1 -1
  163. package/dist/module/module-registry.js +2 -2
  164. package/dist/module/module-registry.js.map +1 -1
  165. package/dist/module/module.decorator.d.ts +3 -3
  166. package/dist/module/module.decorator.d.ts.map +1 -1
  167. package/dist/module/module.decorator.js +4 -4
  168. package/dist/module/module.decorator.js.map +1 -1
  169. package/dist/module/types.d.ts +11 -11
  170. package/dist/module/types.d.ts.map +1 -1
  171. package/dist/openapi/openapi.module.d.ts +1 -1
  172. package/dist/openapi/openapi.module.js +1 -1
  173. package/dist/openapi/services/openapi-config.service.d.ts +1 -1
  174. package/dist/openapi/services/openapi-config.service.js +1 -1
  175. package/dist/queue/errors/queue-binding-not-found.error.d.ts +1 -1
  176. package/dist/queue/errors/queue-binding-not-found.error.d.ts.map +1 -1
  177. package/dist/queue/errors/queue-binding-not-found.error.js +1 -2
  178. package/dist/queue/errors/queue-binding-not-found.error.js.map +1 -1
  179. package/dist/queue/errors/queue-provider-not-supported.error.d.ts +1 -1
  180. package/dist/queue/errors/queue-provider-not-supported.error.d.ts.map +1 -1
  181. package/dist/queue/errors/queue-provider-not-supported.error.js +1 -2
  182. package/dist/queue/errors/queue-provider-not-supported.error.js.map +1 -1
  183. package/dist/queue/queue-consumer.d.ts +0 -2
  184. package/dist/queue/queue-consumer.d.ts.map +1 -1
  185. package/dist/queue/queue-name.d.ts +2 -2
  186. package/dist/queue/queue-name.js +1 -1
  187. package/dist/queue/queue.module.d.ts +1 -1
  188. package/dist/queue/queue.module.js +1 -1
  189. package/dist/router/constants.js +6 -6
  190. package/dist/router/constants.js.map +1 -1
  191. package/dist/router/controller.d.ts +1 -1
  192. package/dist/router/decorators/controller.decorator.d.ts +2 -18
  193. package/dist/router/decorators/controller.decorator.d.ts.map +1 -1
  194. package/dist/router/decorators/controller.decorator.js +2 -18
  195. package/dist/router/decorators/controller.decorator.js.map +1 -1
  196. package/dist/router/decorators/index.js +0 -2
  197. package/dist/router/decorators/index.js.map +1 -1
  198. package/dist/router/errors/controller-method-not-found.error.d.ts +1 -1
  199. package/dist/router/errors/controller-method-not-found.error.d.ts.map +1 -1
  200. package/dist/router/errors/controller-method-not-found.error.js +1 -2
  201. package/dist/router/errors/controller-method-not-found.error.js.map +1 -1
  202. package/dist/router/errors/controller-registration.error.d.ts +2 -2
  203. package/dist/router/errors/controller-registration.error.d.ts.map +1 -1
  204. package/dist/router/errors/controller-registration.error.js +2 -3
  205. package/dist/router/errors/controller-registration.error.js.map +1 -1
  206. package/dist/router/errors/index.js +0 -2
  207. package/dist/router/errors/index.js.map +1 -1
  208. package/dist/router/errors/openapi-route-registration.error.d.ts +1 -1
  209. package/dist/router/errors/openapi-route-registration.error.d.ts.map +1 -1
  210. package/dist/router/errors/openapi-route-registration.error.js +1 -2
  211. package/dist/router/errors/openapi-route-registration.error.js.map +1 -1
  212. package/dist/router/errors/openapi-validation.error.d.ts +1 -1
  213. package/dist/router/errors/openapi-validation.error.d.ts.map +1 -1
  214. package/dist/router/errors/openapi-validation.error.js +1 -2
  215. package/dist/router/errors/openapi-validation.error.js.map +1 -1
  216. package/dist/router/errors/route-not-found.error.d.ts +1 -1
  217. package/dist/router/errors/route-not-found.error.d.ts.map +1 -1
  218. package/dist/router/errors/route-not-found.error.js +1 -2
  219. package/dist/router/errors/route-not-found.error.js.map +1 -1
  220. package/dist/router/errors/schema-validation.error.d.ts +1 -1
  221. package/dist/router/errors/schema-validation.error.d.ts.map +1 -1
  222. package/dist/router/errors/schema-validation.error.js +1 -2
  223. package/dist/router/errors/schema-validation.error.js.map +1 -1
  224. package/dist/router/router-context.js +1 -1
  225. package/dist/router/router-context.js.map +1 -1
  226. package/dist/router/router.service.d.ts +1 -1
  227. package/dist/router/router.service.d.ts.map +1 -1
  228. package/dist/router/router.service.js +2 -2
  229. package/dist/router/router.service.js.map +1 -1
  230. package/dist/router/services/request-scope.service.d.ts +2 -4
  231. package/dist/router/services/request-scope.service.d.ts.map +1 -1
  232. package/dist/router/services/request-scope.service.js +2 -4
  233. package/dist/router/services/request-scope.service.js.map +1 -1
  234. package/dist/router/types.d.ts.map +1 -1
  235. package/dist/storage/dom.polyfill.d.ts.map +1 -0
  236. package/dist/storage/dom.polyfill.js.map +1 -0
  237. package/dist/storage/providers/s3-storage.provider.d.ts +1 -1
  238. package/dist/storage/providers/s3-storage.provider.d.ts.map +1 -1
  239. package/dist/storage/services/storage.service.d.ts +2 -5
  240. package/dist/storage/services/storage.service.d.ts.map +1 -1
  241. package/dist/storage/services/storage.service.js +2 -5
  242. package/dist/storage/services/storage.service.js.map +1 -1
  243. package/dist/storage/storage.module.d.ts +1 -1
  244. package/dist/storage/storage.module.js +1 -1
  245. package/dist/worker/stratal-worker.d.ts +2 -1
  246. package/dist/worker/stratal-worker.d.ts.map +1 -1
  247. package/dist/worker/stratal-worker.js +1 -0
  248. package/dist/worker/stratal-worker.js.map +1 -1
  249. package/package.json +36 -30
  250. package/dist/infrastructure/error-handler/error-response.d.ts.map +0 -1
  251. package/dist/infrastructure/error-handler/error-response.js.map +0 -1
  252. package/dist/infrastructure/error-handler/global-error-handler.d.ts.map +0 -1
  253. package/dist/infrastructure/error-handler/global-error-handler.js.map +0 -1
  254. package/dist/infrastructure/error-handler/index.d.ts +0 -6
  255. package/dist/infrastructure/error-handler/index.d.ts.map +0 -1
  256. package/dist/infrastructure/error-handler/index.js +0 -5
  257. package/dist/infrastructure/error-handler/index.js.map +0 -1
  258. package/dist/infrastructure/error-handler/internal-error.d.ts.map +0 -1
  259. package/dist/infrastructure/error-handler/internal-error.js.map +0 -1
  260. package/dist/infrastructure/errors/index.d.ts +0 -2
  261. package/dist/infrastructure/errors/index.d.ts.map +0 -1
  262. package/dist/infrastructure/errors/index.js +0 -2
  263. package/dist/infrastructure/errors/index.js.map +0 -1
  264. package/dist/infrastructure/errors/request-container-not-initialized.error.d.ts.map +0 -1
  265. package/dist/infrastructure/errors/request-container-not-initialized.error.js.map +0 -1
  266. package/dist/infrastructure/index.d.ts +0 -3
  267. package/dist/infrastructure/index.d.ts.map +0 -1
  268. package/dist/infrastructure/index.js +0 -3
  269. package/dist/infrastructure/index.js.map +0 -1
  270. package/dist/polyfills/dom.polyfill.d.ts.map +0 -1
  271. package/dist/polyfills/dom.polyfill.js.map +0 -1
  272. package/dist/polyfills/index.d.ts +0 -8
  273. package/dist/polyfills/index.d.ts.map +0 -1
  274. package/dist/polyfills/index.js +0 -8
  275. package/dist/polyfills/index.js.map +0 -1
  276. package/dist/worker/module-worker.d.ts +0 -48
  277. package/dist/worker/module-worker.d.ts.map +0 -1
  278. package/dist/worker/module-worker.js +0 -88
  279. package/dist/worker/module-worker.js.map +0 -1
  280. /package/dist/{infrastructure/error-handler → errors}/error-response.d.ts +0 -0
  281. /package/dist/{infrastructure/error-handler → errors}/error-response.js +0 -0
  282. /package/dist/{polyfills → storage}/dom.polyfill.d.ts +0 -0
  283. /package/dist/{polyfills → storage}/dom.polyfill.js +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,115 @@
1
+ # stratal
2
+
3
+ ## 0.0.4
4
+
5
+ ### Patch Changes
6
+
7
+ - **Lazy i18n context building** — `MessageLoaderService` now lazily builds and caches `CoreContext` per locale on first access instead of eagerly at startup, reducing initialization overhead.
8
+ - **Pre-build i18n contexts at startup** — Moved `CoreContext` creation and message flattening from per-request `I18nService` to the singleton `MessageLoaderService`, eliminating repeated work on every `t()` call.
9
+ - **Skip stack traces in production** — Added a static flag on `ApplicationError` to disable stack trace capture in production, where traces are stripped from responses anyway.
10
+
11
+ - **Cross-realm metadata keys** — Migrated all internal metadata symbols from `Symbol()` to `Symbol.for()` with a `stratal:` prefix for reliable cross-realm identity in Cloudflare Workers.
12
+ - **Benchmark configuration** — Added a benchmark section to the Vitest config and updated Wrangler compatibility flags for Node.js modules.
13
+ - **i18n integration tests** — Added localization integratnning in the workerd pool.
14
+
15
+ - **Consistent zod imports** — Updated zod imports across benchmark files to use the i18n validation module.
16
+ - **Cleaner error handling** — `GlobalErrorHandler` now passes the translated message directly to the logger, avoiding double-translation.
17
+
18
+ ## 0.0.3
19
+
20
+ ### Patch Changes
21
+
22
+ - - **Lazy i18n context building** — `MessageLoaderService` now lazily builds and caches `CoreContext` per locale on first access instead of eagerly at startup, reducing initialization overhead.
23
+ - **Pre-build i18n contexts at startup** — Moved `CoreContext` creation and message flattening from per-request `I18nService` to the singleton `MessageLoaderService`, eliminating repeated work on every `t()` call.
24
+ - **Skip stack traces in production** — Added a static flag on `ApplicationError` to disable stack trace capture in production, where traces are stripped from responses anyway.
25
+
26
+ - **Cross-realm metadata keys** — Migrated all internal metadata symbols from `Symbol()` to `Symbol.for()` with a `stratal:` prefix for reliable cross-realm identity in Cloudflare Workers.
27
+ - **Benchmark configuration** — Added a benchmark section to the Vitest config and updated Wrangler compatibility flags for Node.js modules.
28
+ - **i18n integration tests** — Added localization integratnning in the workerd pool.
29
+
30
+ - **Consistent zod imports** — Updated zod imports across benchmark files to use the i18n validation module.
31
+ - **Cleaner error handling** — `GlobalErrorHandler` now passes the translated message directly to the logger, avoiding double-translation.
32
+
33
+ ## 0.0.2
34
+
35
+ ### Patch Changes
36
+
37
+ #### `stratal` (core)
38
+
39
+ ##### Breaking Changes
40
+
41
+ - **`withRoot`/`withRootAsync` renamed to `forRoot`/`forRootAsync`** — All dynamic module configuration methods have been renamed for consistency. Update every `SomeModule.withRoot(...)` call to `SomeModule.forRoot(...)` and `SomeModule.withRootAsync(...)` to `SomeModule.forRootAsync(...)`. ([`152913a`](https://github.com/strataljs/stratal/commit/152913a))
42
+
43
+ - **Barrel export removed — use sub-path imports** — The top-level `stratal` barrel export has been removed. Consumers must now import from sub-paths (`stratal/di`, `stratal/router`, `stratal/cache`, `stratal/validation`, etc.). ([`af073d8`](https://github.com/strataljs/stratal/commit/af073d8))
44
+
45
+ ##### Features
46
+
47
+ - **DOM polyfill for Cloudflare Workers** — Added a DOM polyfill to support AWS SDK v3 XML parsing in Cloudflare Workers environments. ([`f3b2cb9`](https://github.com/strataljs/stratal/commit/f3b2cb9))
48
+
49
+ - **Benchmark suite** — Added benchmark functionality for measuring framework performa30438`](https://github.com/strataljs/stratal/commit/7230438))
50
+
51
+ ##### Security
52
+
53
+ - **ConfigService blocks prototype pollution** — `ConfigService` now rejects dangerous keys (`__proto__`, `constructor`, `prototype`) to prevent prototype pollution attacks. ([`567139c`](https://github.com/strataljs/stratal/commit/567139c), [`e64b4e7`](https://github.com/strataljs/stratal/commit/e64b4e7))
54
+
55
+ ##### Bug Fixes
56
+
57
+ - **`reflect-metadata` import moved to vitest setup** — Removed unused `reflect-metadata` imports from example files and centralized the import in `vitest.setup.ts`. ([`f3b2cb9`](https://github.com/strataljs/stratal/commit/f3b2cb9))
58
+
59
+ ---
60
+
61
+ #### `@stratal/testing`
62
+
63
+ ##### Breaking Changes
64
+
65
+ - **Import paths updated** — Import paths updated to match the new core sub-path exports (e.g. `stratal/di` instead of the barrel `stratal`). ([`af073d8`](https://github.com/strataljs/stratal/commit/af073d8))
66
+
67
+ - Updated dependencies []:
68
+ - stratal@0.0.2
69
+
70
+ ## 0.0.1
71
+
72
+ ### Patch Changes
73
+
74
+ - Initial release of the Stratal framework — a modular Cloudflare Workers framework built on Hono and tsyringe.
75
+
76
+ **Core Infrastructure**
77
+
78
+ - NestJS-style module system with `@Module()` decorator, dynamic modules (`withRoot`, `withRootAsync`), and lifecycle hooks (`OnInitialize`, `OnShutdown`)
79
+ - Two-tier dependency injection container (global singletons + request-scoped) powered by tsyringe with conditional registration and service decoration
80
+ - `StratalWorker` entry point extending Cloudflare's `WorkerEntrypoint` for HTTP fetch, queue batches, and scheduled cron triggers
81
+
82
+ **Routing & API**
83
+
84
+ - Hono-based routing with `@Controller()` and `@Route()` decorators, automatic controller discovery, and route guards via `@UseGuards()`
85
+ - OpenAPI schema generation with `@hono/zod-openapi` and Scalar API reference integration
86
+ - NestJS-like middleware configuration with route-specific application and exclusion
87
+
88
+ **Background Processing**
89
+
90
+ - Queue consumerfor Cloudflare Queues with `@Consumer()` and `@QueueJob()` decorators and batch processing
91
+ - Cron job scheduling via `CronManager` integrated with Cloudflare's scheduled events
92
+
93
+ **Services & Integrations**
94
+
95
+ - Email module with pluggable providers (Nodemailer, Resend) and queue-based sending
96
+ - Storage module with AWS S3 / Cloudflare R2 support, multipart uploads, presigned URLs, and TUS resumable uploads
97
+ - Internationalization (i18n) module with locale detection, message compilation, and request-scoped translations
98
+ - Cache module with pluggable providers and Cloudflare KV integration
99
+ - Configuration module with `registerAs()` namespaces and Zod-based validation
100
+ - Structured logging with JSON and pretty formatters
101
+
102
+ **Developer Experience**
103
+
104
+ - Zod-powered request/response validation with type inference
105
+ - Custom `ApplicationError` class with HTTP status mapping
106
+ - ESM-only with full TypeScript decorator support (`emitDecoratorMetadata`)
107
+ - Sub-path exports for tree-shakeable imports (`stratal/di`, `stratal/router`, `stratal/cache`, etc.)
108
+
109
+ - `TestingModule` and `TestingModuleBuilder` for bootstrapping isolated module environments in tests
110
+ - `TestHttpClient` with request builder and response wrapper for integration testing
111
+ - `FetchMock` for mocking HTTP fetch calls
112
+ - `FakeStorageService` for in-memory storage testing without S3/R2
113
+ - `ProviderOverrideBuilder` for replacing providers with test doubles
114
+ - Nodemailer mock for email testing
115
+ - Test environment utilities via `getTestEnv()`
package/README.md CHANGED
@@ -1,50 +1,126 @@
1
- # stratal
1
+ # Stratal
2
2
 
3
- A modular Cloudflare Workers framework with dependency injection, queue-based events, and type-safe configuration.
3
+ A modular framework for building Cloudflare Workers with dependency injection, OpenAPI documentation, queues, cron jobs, and more.
4
4
 
5
- For full documentation and examples, see the [main README](../../README.md).
5
+ [![npm version](https://img.shields.io/npm/v/stratal)](https://www.npmjs.com/package/stratal)
6
+ [![CI](https://github.com/strataljs/stratal/actions/workflows/ci.yml/badge.svg)](https://github.com/strataljs/stratal/actions/workflows/ci.yml)
7
+ [![Benchmark](https://github.com/strataljs/stratal/actions/workflows/benchmark.yml/badge.svg)](https://github.com/strataljs/stratal/actions/workflows/benchmark.yml)
8
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
9
+ [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/strataljs/stratal/badge)](https://securityscorecards.dev/viewer/?uri=github.com/strataljs/stratal)
10
+ [![Known Vulnerabilities](https://snyk.io/test/github/strataljs/stratal/badge.svg)](https://snyk.io/test/github/strataljs/stratal)
11
+ [![npm downloads](https://img.shields.io/npm/dm/stratal)](https://www.npmjs.com/package/stratal)
12
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
13
+ [![Bundle size](https://img.shields.io/bundlephobia/minzip/stratal)](https://bundlephobia.com/package/stratal)
14
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/strataljs/stratal/pulls)
15
+ [![GitHub stars](https://img.shields.io/github/stars/strataljs/stratal?style=social)](https://github.com/strataljs/stratal)
16
+
17
+ ## Documentation
18
+
19
+ Full guides and examples are available at **[stratal.dev](https://stratal.dev)**. API reference lives at **[api-reference.stratal.dev](https://api-reference.stratal.dev)**.
20
+
21
+ ## Features
22
+
23
+ - **Dependency Injection** — Two-tier DI container (global + request-scoped) powered by tsyringe
24
+ - **OpenAPI Documentation** — Define Zod schemas once and get a full OpenAPI 3.0 spec with interactive docs
25
+ - **Modular Architecture** — NestJS-style modules with lifecycle hooks, dynamic configuration, and middleware
26
+ - **Hono Routing** — Convention-based RESTful controllers with automatic HTTP method mapping
27
+ - **Queue Consumers** — Typed Cloudflare Queue consumers with message-type filtering
28
+ - **Cron Jobs** — Scheduled tasks via Cloudflare Workers cron triggers
29
+ - **Storage** — S3-compatible file storage with presigned URLs and TUS upload support
30
+ - **Email** — Resend and SMTP providers with React Email template support
31
+ - **i18n** — Type-safe internationalization with locale detection from request headers
32
+ - **Guards and Middleware** — Route protection and per-module middleware configuration
33
+
34
+ > **Note:** Stratal is in active development and APIs may change before v1. It is okay to use in projects, but consider pinning your dependency version so that a new patch does not break your existing code.
6
35
 
7
36
  ## Installation
8
37
 
38
+ Scaffold a new project from an official template:
39
+
9
40
  ```bash
10
- npm install stratal
41
+ npm create stratal my-app
42
+ # or
43
+ yarn create stratal my-app
11
44
  # or
12
- yarn add stratal
45
+ pnpm create stratal my-app
13
46
  ```
14
47
 
15
- ### Optional dependencies
48
+ Available templates:
49
+
50
+ | Template | Description | Example |
51
+ |---|---|---|
52
+ | `hello-world` | A minimal Stratal app with a single GET endpoint | [Source](https://github.com/strataljs/stratal/tree/main/examples/01-hello-world) |
53
+ | `crud-api` | RESTful notes API with full CRUD operations and DI | [Source](https://github.com/strataljs/stratal/tree/main/examples/02-crud-api) |
54
+ | `testing` | Vitest + @stratal/testing with Cloudflare worker pool | [Source](https://github.com/strataljs/stratal/tree/main/examples/03-testing) |
55
+ | `guards` | Route protection with @UseGuards and CanActivate | [Source](https://github.com/strataljs/stratal/tree/main/examples/04-guards) |
56
+ | `middleware` | Middleware configuration with apply/exclude/forRoutes | [Source](https://github.com/strataljs/stratal/tree/main/examples/05-middleware) |
57
+ | `queues` | Queue producer/consumer pattern with Cloudflare Queues | [Source](https://github.com/strataljs/stratal/tree/main/examples/06-queues) |
58
+ | `scheduled-tasks` | Cron job scheduling with the CronJob interface | [Source](https://github.com/strataljs/stratal/tree/main/examples/07-scheduled-tasks) |
59
+ | `openapi` | OpenAPI docs with Scalar UI and Zod schema integration | [Source](https://github.com/strataljs/stratal/tree/main/examples/08-openapi) |
60
+
61
+ For benchmarks, see the [main README](https://github.com/strataljs/stratal#benchmarks).
62
+
63
+ You can also specify a template directly:
16
64
 
17
- Stratal keeps heavy integrations optional. Install only what you need:
65
+ ```bash
66
+ npm create stratal my-app -- -t crud-api
67
+ ```
68
+
69
+ Or add Stratal to an existing project:
18
70
 
19
71
  ```bash
20
- # Storage (S3-compatible)
21
- npm install @aws-sdk/client-s3 @aws-sdk/lib-storage @aws-sdk/s3-request-presigner
72
+ npm install stratal
73
+ ```
22
74
 
23
- # Email (Resend provider)
24
- npm install resend react react-dom @react-email/components
75
+ ### AI Agent Skills
25
76
 
26
- # Email (SMTP provider)
27
- npm install nodemailer
77
+ Stratal provides [Agent Skills](https://agentskills.io) for AI coding assistants like Claude Code and Cursor. Install to give your AI agent knowledge of Stratal patterns, conventions, and APIs:
28
78
 
29
- # File uploads (TUS protocol)
30
- npm install @tus/server
79
+ ```bash
80
+ npx skills add strataljs/stratal
31
81
  ```
32
82
 
33
- ## Sub-path Exports
83
+ ## Quick Start
34
84
 
35
- Import specific modules for better tree-shaking:
85
+ Define a module with a controller and wire it up as a Cloudflare Worker:
36
86
 
37
87
  ```typescript
38
- import { Application } from 'stratal' // Core
39
- import { Container } from 'stratal/di' // DI container
40
- import { RouterService } from 'stratal/router' // Routing
41
- import { z } from 'stratal/validation' // Zod + OpenAPI
42
- import { ApplicationError } from 'stratal/errors' // Error types
43
- import { I18nModule } from 'stratal/i18n' // Internationalization
44
- import { CacheModule } from 'stratal/cache' // Caching
45
- import { LoggerService } from 'stratal/logger' // Logging
88
+ import { type ApplicationConfig } from 'stratal'
89
+ import { Module } from 'stratal/module'
90
+ import { Controller, Route, type RouterContext } from 'stratal/router'
91
+ import { StratalWorker } from 'stratal/worker'
92
+ import { z } from 'stratal/validation'
93
+
94
+ // Define a controller
95
+ @Controller('/api/greetings')
96
+ class GreetingsController {
97
+ @Route({
98
+ summary: 'Say hello',
99
+ response: z.object({ message: z.string() }),
100
+ })
101
+ async index(ctx: RouterContext) {
102
+ return ctx.json({ message: 'Hello from Stratal!' })
103
+ }
104
+ }
105
+
106
+ // Create the root module
107
+ @Module({
108
+ controllers: [GreetingsController],
109
+ })
110
+ class AppModule {}
111
+
112
+ // Worker entry point
113
+ export default class Backend extends StratalWorker {
114
+ protected configure(): ApplicationConfig {
115
+ return { module: AppModule }
116
+ }
117
+ }
46
118
  ```
47
119
 
120
+ ## Contributing
121
+
122
+ Contributions are welcome! Please see [CONTRIBUTING.md](https://github.com/strataljs/stratal/blob/main/CONTRIBUTING.md) for guidelines.
123
+
48
124
  ## License
49
125
 
50
126
  MIT
@@ -1,4 +1,3 @@
1
- import 'reflect-metadata';
2
1
  import { Container } from './di/container';
3
2
  import { type StratalEnv } from './env';
4
3
  import { LogLevel } from './logger';
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAA;AAMzB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAGvC,OAAO,EAAiE,QAAQ,EAAmB,MAAM,UAAU,CAAA;AAEnH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhE,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7F,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,GAAG,aAAa,CAAA;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC9B,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IAapB,QAAQ,CAAC,GAAG,EAAE,UAAU;IACxB,QAAQ,CAAC,GAAG,EAAE,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAd5B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAQ;gBAGhB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,gBAAgB,EACb,SAAS,EAAE,iBAAiB;IAwB/C;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAkCjC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAU5B;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAerE;;;;;;;OAOG;IACH,uBAAuB,CAAC,MAAM,SAAO,GAAG,aAAa;IAQ/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAO7B"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAGvC,OAAO,EAAiE,QAAQ,EAAmB,MAAM,UAAU,CAAA;AAEnH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhE,OAAO,EAAkD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAA;AAG7F,MAAM,WAAW,iBAAiB;IAChC,8BAA8B;IAC9B,MAAM,EAAE,WAAW,GAAG,aAAa,CAAA;IACnC,oEAAoE;IACpE,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,QAAQ,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAA;KAC9B,CAAA;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAAa,WAAW;IAapB,QAAQ,CAAC,GAAG,EAAE,UAAU;IACxB,QAAQ,CAAC,GAAG,EAAE,gBAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAd5B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAW;IAE7B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAQ;gBAGhB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,gBAAgB,EACb,SAAS,EAAE,iBAAiB;IAwB/C;;;;;;;OAOG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCjC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAU5B;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAerE;;;;;;;OAOG;IACH,uBAAuB,CAAC,MAAM,SAAO,GAAG,aAAa;IAQ/C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAO7B"}
@@ -1,11 +1,10 @@
1
- import 'reflect-metadata';
2
1
  import { container as tsyringeRootContainer } from 'tsyringe';
3
2
  import { CacheModule } from './cache';
4
3
  import { CronManager } from './cron/cron-manager';
5
4
  import { Container } from './di/container';
6
5
  import { DI_TOKENS } from './di/tokens';
6
+ import { ApplicationError, GlobalErrorHandler } from './errors';
7
7
  import { I18nModule } from './i18n/i18n.module';
8
- import { GlobalErrorHandler } from './infrastructure/error-handler';
9
8
  import { ConsoleTransport, JsonFormatter, LOGGER_TOKENS, LoggerService, LogLevel, PrettyFormatter } from './logger';
10
9
  import { ModuleRegistry } from './module/module-registry';
11
10
  import { OpenAPIModule } from './openapi';
@@ -93,6 +92,8 @@ export class Application {
93
92
  if (this.initialized) {
94
93
  return;
95
94
  }
95
+ // Disable stack trace capture in production (expensive and stripped from responses)
96
+ ApplicationError.captureStackTraces = this.env.ENVIRONMENT !== 'production';
96
97
  // Phase 1: Register core infrastructure modules (internal)
97
98
  this.moduleRegistry.registerAll([
98
99
  I18nModule,
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ApplicationError } from '../../infrastructure/error-handler';
1
+ import { ApplicationError } from '../../errors';
2
2
  /**
3
3
  * Error thrown when a cache delete operation fails
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-delete.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;gBACxC,GAAG,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"cache-delete.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;gBACxC,GAAG,EAAE,MAAM;CAGxB"}
@@ -1,5 +1,5 @@
1
1
  import { ERROR_CODES } from '../../errors';
2
- import { ApplicationError } from '../../infrastructure/error-handler';
2
+ import { ApplicationError } from '../../errors';
3
3
  /**
4
4
  * Error thrown when a cache delete operation fails
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-delete.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,YAAY,GAAW;QACrB,KAAK,CAAC,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACtF,CAAC;CACF"}
1
+ {"version":3,"file":"cache-delete.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-delete.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,gBAAiB,SAAQ,gBAAgB;IACpD,YAAY,GAAW;QACrB,KAAK,CAAC,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACtF,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { ApplicationError } from '../../infrastructure/error-handler';
1
+ import { ApplicationError } from '../../errors';
2
2
  /**
3
3
  * Error thrown when a cache get operation fails
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-get.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,GAAG,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"cache-get.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,GAAG,EAAE,MAAM;CAGxB"}
@@ -1,5 +1,5 @@
1
1
  import { ERROR_CODES } from '../../errors';
2
- import { ApplicationError } from '../../infrastructure/error-handler';
2
+ import { ApplicationError } from '../../errors';
3
3
  /**
4
4
  * Error thrown when a cache get operation fails
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-get.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"cache-get.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-get.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { ApplicationError } from '../../infrastructure/error-handler';
1
+ import { ApplicationError } from '../../errors';
2
2
  /**
3
3
  * Error thrown when a cache list operation fails
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-list.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;;CAInD"}
1
+ {"version":3,"file":"cache-list.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,gBAAgB;;CAInD"}
@@ -1,5 +1,5 @@
1
1
  import { ERROR_CODES } from '../../errors';
2
- import { ApplicationError } from '../../infrastructure/error-handler';
2
+ import { ApplicationError } from '../../errors';
3
3
  /**
4
4
  * Error thrown when a cache list operation fails
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-list.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD;QACE,KAAK,CAAC,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;IAC/E,CAAC;CACF"}
1
+ {"version":3,"file":"cache-list.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-list.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAClD;QACE,KAAK,CAAC,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;IAC/E,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { ApplicationError } from '../../infrastructure/error-handler';
1
+ import { ApplicationError } from '../../errors';
2
2
  /**
3
3
  * Error thrown when a cache put operation fails
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-put.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,GAAG,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"cache-put.error.d.ts","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,GAAG,EAAE,MAAM;CAGxB"}
@@ -1,5 +1,5 @@
1
1
  import { ERROR_CODES } from '../../errors';
2
- import { ApplicationError } from '../../infrastructure/error-handler';
2
+ import { ApplicationError } from '../../errors';
3
3
  /**
4
4
  * Error thrown when a cache put operation fails
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"cache-put.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"cache-put.error.js","sourceRoot":"","sources":["../../../src/cache/errors/cache-put.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,GAAW;QACrB,KAAK,CAAC,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;IACnF,CAAC;CACF"}
@@ -47,8 +47,8 @@ export interface IConfigService<T extends object = ModuleConfig> {
47
47
  */
48
48
  get<P extends ConfigPath<T>>(path: P): ConfigPathValue<T, P>;
49
49
  /**
50
- * Set config value at runtime (for tenant overrides)
51
- * @example config.set('email.from.name', 'School Name')
50
+ * Set config value at runtime (for runtime overrides)
51
+ * @example config.set('email.from.name', 'Custom Name')
52
52
  */
53
53
  set<P extends ConfigPath<T>>(path: P, value: ConfigPathValue<T, P>): void;
54
54
  /**
@@ -1,4 +1,4 @@
1
- import { ApplicationError } from '../../infrastructure/error-handler';
1
+ import { ApplicationError } from '../../errors';
2
2
  /**
3
3
  * ConfigNotInitializedError
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"config-not-initialized.error.d.ts","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;;CAO9D"}
1
+ {"version":3,"file":"config-not-initialized.error.d.ts","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;GAMG;AACH,qBAAa,yBAA0B,SAAQ,gBAAgB;;CAO9D"}
@@ -1,5 +1,5 @@
1
1
  import { ERROR_CODES } from '../../errors';
2
- import { ApplicationError } from '../../infrastructure/error-handler';
2
+ import { ApplicationError } from '../../errors';
3
3
  /**
4
4
  * ConfigNotInitializedError
5
5
  *
@@ -1 +1 @@
1
- {"version":3,"file":"config-not-initialized.error.js","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,gBAAgB;IAC7D;QACE,KAAK,CACH,6BAA6B,EAC7B,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAC1C,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"config-not-initialized.error.js","sourceRoot":"","sources":["../../../src/config/errors/config-not-initialized.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;;GAMG;AACH,MAAM,OAAO,yBAA0B,SAAQ,gBAAgB;IAC7D;QACE,KAAK,CACH,6BAA6B,EAC7B,WAAW,CAAC,MAAM,CAAC,sBAAsB,CAC1C,CAAA;IACH,CAAC;CACF"}
@@ -2,7 +2,7 @@ import type { ConfigPath, ConfigPathValue, IConfigService, ModuleConfig } from '
2
2
  /**
3
3
  * ConfigService with dot notation support for get/set operations
4
4
  *
5
- * Supports runtime overrides via set() - useful for tenant-specific config.
5
+ * Supports runtime overrides via set() - useful for request-specific config overrides.
6
6
  * Use reset() to restore original values.
7
7
  *
8
8
  * @example
@@ -11,8 +11,8 @@ import type { ConfigPath, ConfigPathValue, IConfigService, ModuleConfig } from '
11
11
  * const url = config.get('database.url')
12
12
  * const fromName = config.get('email.from.name')
13
13
  *
14
- * // Set at runtime (e.g., in middleware for tenant override)
15
- * config.set('email.from.name', tenant.schoolName)
14
+ * // Set at runtime (e.g., in middleware for runtime override)
15
+ * config.set('email.from.name', 'Custom Name')
16
16
  *
17
17
  * // Reset to original
18
18
  * config.reset('email.from.name') // reset specific path
@@ -33,8 +33,8 @@ export declare class ConfigService<T extends object = ModuleConfig> implements I
33
33
  */
34
34
  get<P extends ConfigPath<T>>(path: P): ConfigPathValue<T, P>;
35
35
  /**
36
- * Set config value at runtime (for tenant overrides)
37
- * @example config.set('email.from.name', 'School Name')
36
+ * Set config value at runtime (for runtime overrides)
37
+ * @example config.set('email.from.name', 'Custom Name')
38
38
  */
39
39
  set<P extends ConfigPath<T>>(path: P, value: ConfigPathValue<T, P>): void;
40
40
  /**
@@ -52,6 +52,7 @@ export declare class ConfigService<T extends object = ModuleConfig> implements I
52
52
  has(path: ConfigPath<T>): boolean;
53
53
  private getByPath;
54
54
  private setByPath;
55
+ private isDangerousKey;
55
56
  private ensureInitialized;
56
57
  private deepClone;
57
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGhG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,aAAa,CAAe;IAEpC;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK3B;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IAK5D;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAKzE;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAUjC;;OAEG;IACH,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;IAKlB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAKjC,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"config.service.d.ts","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAGhG;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBACa,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IACtF,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,aAAa,CAAe;IAEpC;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI;IAK3B;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;IAK5D;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;IAKzE;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAUjC;;OAEG;IACH,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC;IAKlB;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO;IAKjC,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,SAAS;CAMlB"}
@@ -10,7 +10,7 @@ import { ConfigNotInitializedError } from '../errors';
10
10
  /**
11
11
  * ConfigService with dot notation support for get/set operations
12
12
  *
13
- * Supports runtime overrides via set() - useful for tenant-specific config.
13
+ * Supports runtime overrides via set() - useful for request-specific config overrides.
14
14
  * Use reset() to restore original values.
15
15
  *
16
16
  * @example
@@ -19,8 +19,8 @@ import { ConfigNotInitializedError } from '../errors';
19
19
  * const url = config.get('database.url')
20
20
  * const fromName = config.get('email.from.name')
21
21
  *
22
- * // Set at runtime (e.g., in middleware for tenant override)
23
- * config.set('email.from.name', tenant.schoolName)
22
+ * // Set at runtime (e.g., in middleware for runtime override)
23
+ * config.set('email.from.name', 'Custom Name')
24
24
  *
25
25
  * // Reset to original
26
26
  * config.reset('email.from.name') // reset specific path
@@ -47,8 +47,8 @@ let ConfigService = class ConfigService {
47
47
  return this.getByPath(this.currentConfig, path);
48
48
  }
49
49
  /**
50
- * Set config value at runtime (for tenant overrides)
51
- * @example config.set('email.from.name', 'School Name')
50
+ * Set config value at runtime (for runtime overrides)
51
+ * @example config.set('email.from.name', 'Custom Name')
52
52
  */
53
53
  set(path, value) {
54
54
  this.ensureInitialized();
@@ -86,6 +86,8 @@ let ConfigService = class ConfigService {
86
86
  const keys = path.split('.');
87
87
  let current = obj;
88
88
  for (const key of keys) {
89
+ if (this.isDangerousKey(key))
90
+ return undefined;
89
91
  if (current === null || current === undefined)
90
92
  return undefined;
91
93
  current = current[key];
@@ -94,15 +96,30 @@ let ConfigService = class ConfigService {
94
96
  }
95
97
  setByPath(obj, path, value) {
96
98
  const keys = path.split('.');
99
+ if (keys.some((key) => this.isDangerousKey(key)))
100
+ return;
97
101
  let current = obj;
98
102
  for (let i = 0; i < keys.length - 1; i++) {
99
103
  const key = keys[i];
100
- if (!(key in current) || typeof current[key] !== 'object' || current[key] === null) {
101
- current[key] = {};
104
+ if (!Object.hasOwn(current, key) || typeof current[key] !== 'object' || current[key] === null) {
105
+ Object.defineProperty(current, key, {
106
+ value: {},
107
+ writable: true,
108
+ enumerable: true,
109
+ configurable: true,
110
+ });
102
111
  }
103
112
  current = current[key];
104
113
  }
105
- current[keys[keys.length - 1]] = value;
114
+ Object.defineProperty(current, keys[keys.length - 1], {
115
+ value,
116
+ writable: true,
117
+ enumerable: true,
118
+ configurable: true,
119
+ });
120
+ }
121
+ isDangerousKey(key) {
122
+ return key === '__proto__' || key === 'constructor' || key === 'prototype';
106
123
  }
107
124
  ensureInitialized() {
108
125
  if (!this.currentConfig) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.service.js","sourceRoot":"","sources":["../../../src/config/services/config.service.ts"],"names":[],"mappings":"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"}