stratal 0.0.1

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 (867) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/dist/application.d.ts +118 -0
  4. package/dist/application.d.ts.map +1 -0
  5. package/dist/application.js +247 -0
  6. package/dist/application.js.map +1 -0
  7. package/dist/cache/cache.module.d.ts +14 -0
  8. package/dist/cache/cache.module.d.ts.map +1 -0
  9. package/dist/cache/cache.module.js +32 -0
  10. package/dist/cache/cache.module.js.map +1 -0
  11. package/dist/cache/cache.tokens.d.ts +5 -0
  12. package/dist/cache/cache.tokens.d.ts.map +1 -0
  13. package/dist/cache/cache.tokens.js +4 -0
  14. package/dist/cache/cache.tokens.js.map +1 -0
  15. package/dist/cache/errors/cache-delete.error.d.ts +11 -0
  16. package/dist/cache/errors/cache-delete.error.d.ts.map +1 -0
  17. package/dist/cache/errors/cache-delete.error.js +14 -0
  18. package/dist/cache/errors/cache-delete.error.js.map +1 -0
  19. package/dist/cache/errors/cache-get.error.d.ts +11 -0
  20. package/dist/cache/errors/cache-get.error.d.ts.map +1 -0
  21. package/dist/cache/errors/cache-get.error.js +14 -0
  22. package/dist/cache/errors/cache-get.error.js.map +1 -0
  23. package/dist/cache/errors/cache-list.error.d.ts +10 -0
  24. package/dist/cache/errors/cache-list.error.d.ts.map +1 -0
  25. package/dist/cache/errors/cache-list.error.js +13 -0
  26. package/dist/cache/errors/cache-list.error.js.map +1 -0
  27. package/dist/cache/errors/cache-put.error.d.ts +11 -0
  28. package/dist/cache/errors/cache-put.error.d.ts.map +1 -0
  29. package/dist/cache/errors/cache-put.error.js +14 -0
  30. package/dist/cache/errors/cache-put.error.js.map +1 -0
  31. package/dist/cache/errors/index.d.ts +5 -0
  32. package/dist/cache/errors/index.d.ts.map +1 -0
  33. package/dist/cache/errors/index.js +5 -0
  34. package/dist/cache/errors/index.js.map +1 -0
  35. package/dist/cache/index.d.ts +5 -0
  36. package/dist/cache/index.d.ts.map +1 -0
  37. package/dist/cache/index.js +5 -0
  38. package/dist/cache/index.js.map +1 -0
  39. package/dist/cache/services/cache.service.d.ts +152 -0
  40. package/dist/cache/services/cache.service.d.ts.map +1 -0
  41. package/dist/cache/services/cache.service.js +223 -0
  42. package/dist/cache/services/cache.service.js.map +1 -0
  43. package/dist/cache/services/index.d.ts +2 -0
  44. package/dist/cache/services/index.d.ts.map +1 -0
  45. package/dist/cache/services/index.js +2 -0
  46. package/dist/cache/services/index.js.map +1 -0
  47. package/dist/config/config.module.d.ts +79 -0
  48. package/dist/config/config.module.d.ts.map +1 -0
  49. package/dist/config/config.module.js +120 -0
  50. package/dist/config/config.module.js.map +1 -0
  51. package/dist/config/config.tokens.d.ts +4 -0
  52. package/dist/config/config.tokens.d.ts.map +1 -0
  53. package/dist/config/config.tokens.js +4 -0
  54. package/dist/config/config.tokens.js.map +1 -0
  55. package/dist/config/config.types.d.ts +68 -0
  56. package/dist/config/config.types.d.ts.map +1 -0
  57. package/dist/config/config.types.js +9 -0
  58. package/dist/config/config.types.js.map +1 -0
  59. package/dist/config/errors/config-not-initialized.error.d.ts +12 -0
  60. package/dist/config/errors/config-not-initialized.error.d.ts.map +1 -0
  61. package/dist/config/errors/config-not-initialized.error.js +15 -0
  62. package/dist/config/errors/config-not-initialized.error.js.map +1 -0
  63. package/dist/config/errors/index.d.ts +2 -0
  64. package/dist/config/errors/index.d.ts.map +1 -0
  65. package/dist/config/errors/index.js +2 -0
  66. package/dist/config/errors/index.js.map +1 -0
  67. package/dist/config/index.d.ts +7 -0
  68. package/dist/config/index.d.ts.map +1 -0
  69. package/dist/config/index.js +9 -0
  70. package/dist/config/index.js.map +1 -0
  71. package/dist/config/register-as.d.ts +62 -0
  72. package/dist/config/register-as.d.ts.map +1 -0
  73. package/dist/config/register-as.js +48 -0
  74. package/dist/config/register-as.js.map +1 -0
  75. package/dist/config/services/config.service.d.ts +58 -0
  76. package/dist/config/services/config.service.d.ts.map +1 -0
  77. package/dist/config/services/config.service.js +123 -0
  78. package/dist/config/services/config.service.js.map +1 -0
  79. package/dist/cron/cron-job.d.ts +55 -0
  80. package/dist/cron/cron-job.d.ts.map +1 -0
  81. package/dist/cron/cron-job.js +2 -0
  82. package/dist/cron/cron-job.js.map +1 -0
  83. package/dist/cron/cron-manager.d.ts +60 -0
  84. package/dist/cron/cron-manager.d.ts.map +1 -0
  85. package/dist/cron/cron-manager.js +120 -0
  86. package/dist/cron/cron-manager.js.map +1 -0
  87. package/dist/cron/errors/cron-execution.error.d.ts +10 -0
  88. package/dist/cron/errors/cron-execution.error.d.ts.map +1 -0
  89. package/dist/cron/errors/cron-execution.error.js +17 -0
  90. package/dist/cron/errors/cron-execution.error.js.map +1 -0
  91. package/dist/cron/index.d.ts +4 -0
  92. package/dist/cron/index.d.ts.map +1 -0
  93. package/dist/cron/index.js +3 -0
  94. package/dist/cron/index.js.map +1 -0
  95. package/dist/di/conditional-binding-builder.d.ts +93 -0
  96. package/dist/di/conditional-binding-builder.d.ts.map +1 -0
  97. package/dist/di/conditional-binding-builder.js +115 -0
  98. package/dist/di/conditional-binding-builder.js.map +1 -0
  99. package/dist/di/container.d.ts +399 -0
  100. package/dist/di/container.d.ts.map +1 -0
  101. package/dist/di/container.js +466 -0
  102. package/dist/di/container.js.map +1 -0
  103. package/dist/di/decorators/inject-param.decorator.d.ts +67 -0
  104. package/dist/di/decorators/inject-param.decorator.d.ts.map +1 -0
  105. package/dist/di/decorators/inject-param.decorator.js +53 -0
  106. package/dist/di/decorators/inject-param.decorator.js.map +1 -0
  107. package/dist/di/decorators.d.ts +57 -0
  108. package/dist/di/decorators.d.ts.map +1 -0
  109. package/dist/di/decorators.js +74 -0
  110. package/dist/di/decorators.js.map +1 -0
  111. package/dist/di/errors/conditional-binding-fallback.error.d.ts +16 -0
  112. package/dist/di/errors/conditional-binding-fallback.error.d.ts.map +1 -0
  113. package/dist/di/errors/conditional-binding-fallback.error.js +19 -0
  114. package/dist/di/errors/conditional-binding-fallback.error.js.map +1 -0
  115. package/dist/di/errors/index.d.ts +3 -0
  116. package/dist/di/errors/index.d.ts.map +1 -0
  117. package/dist/di/errors/index.js +3 -0
  118. package/dist/di/errors/index.js.map +1 -0
  119. package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts +12 -0
  120. package/dist/di/errors/request-scope-operation-not-allowed.error.d.ts.map +1 -0
  121. package/dist/di/errors/request-scope-operation-not-allowed.error.js +15 -0
  122. package/dist/di/errors/request-scope-operation-not-allowed.error.js.map +1 -0
  123. package/dist/di/index.d.ts +13 -0
  124. package/dist/di/index.d.ts.map +1 -0
  125. package/dist/di/index.js +11 -0
  126. package/dist/di/index.js.map +1 -0
  127. package/dist/di/request-context-store.d.ts +122 -0
  128. package/dist/di/request-context-store.d.ts.map +1 -0
  129. package/dist/di/request-context-store.js +135 -0
  130. package/dist/di/request-context-store.js.map +1 -0
  131. package/dist/di/tokens.d.ts +25 -0
  132. package/dist/di/tokens.d.ts.map +1 -0
  133. package/dist/di/tokens.js +27 -0
  134. package/dist/di/tokens.js.map +1 -0
  135. package/dist/di/types.d.ts +56 -0
  136. package/dist/di/types.d.ts.map +1 -0
  137. package/dist/di/types.js +34 -0
  138. package/dist/di/types.js.map +1 -0
  139. package/dist/email/consumers/email.consumer.d.ts +43 -0
  140. package/dist/email/consumers/email.consumer.d.ts.map +1 -0
  141. package/dist/email/consumers/email.consumer.js +133 -0
  142. package/dist/email/consumers/email.consumer.js.map +1 -0
  143. package/dist/email/consumers/index.d.ts +2 -0
  144. package/dist/email/consumers/index.d.ts.map +1 -0
  145. package/dist/email/consumers/index.js +2 -0
  146. package/dist/email/consumers/index.js.map +1 -0
  147. package/dist/email/contracts/email-attachment.d.ts +61 -0
  148. package/dist/email/contracts/email-attachment.d.ts.map +1 -0
  149. package/dist/email/contracts/email-attachment.js +58 -0
  150. package/dist/email/contracts/email-attachment.js.map +1 -0
  151. package/dist/email/contracts/email-message.contract.d.ts +58 -0
  152. package/dist/email/contracts/email-message.contract.d.ts.map +1 -0
  153. package/dist/email/contracts/email-message.contract.js +62 -0
  154. package/dist/email/contracts/email-message.contract.js.map +1 -0
  155. package/dist/email/contracts/index.d.ts +4 -0
  156. package/dist/email/contracts/index.d.ts.map +1 -0
  157. package/dist/email/contracts/index.js +4 -0
  158. package/dist/email/contracts/index.js.map +1 -0
  159. package/dist/email/contracts/send-email.input.d.ts +72 -0
  160. package/dist/email/contracts/send-email.input.d.ts.map +1 -0
  161. package/dist/email/contracts/send-email.input.js +28 -0
  162. package/dist/email/contracts/send-email.input.js.map +1 -0
  163. package/dist/email/email.module.d.ts +122 -0
  164. package/dist/email/email.module.d.ts.map +1 -0
  165. package/dist/email/email.module.js +129 -0
  166. package/dist/email/email.module.js.map +1 -0
  167. package/dist/email/email.tokens.d.ts +33 -0
  168. package/dist/email/email.tokens.d.ts.map +1 -0
  169. package/dist/email/email.tokens.js +33 -0
  170. package/dist/email/email.tokens.js.map +1 -0
  171. package/dist/email/errors/email-provider-not-supported.error.d.ts +13 -0
  172. package/dist/email/errors/email-provider-not-supported.error.d.ts.map +1 -0
  173. package/dist/email/errors/email-provider-not-supported.error.js +15 -0
  174. package/dist/email/errors/email-provider-not-supported.error.js.map +1 -0
  175. package/dist/email/errors/email-resend-api-failed.error.d.ts +13 -0
  176. package/dist/email/errors/email-resend-api-failed.error.d.ts.map +1 -0
  177. package/dist/email/errors/email-resend-api-failed.error.js +15 -0
  178. package/dist/email/errors/email-resend-api-failed.error.js.map +1 -0
  179. package/dist/email/errors/email-smtp-connection-failed.error.d.ts +13 -0
  180. package/dist/email/errors/email-smtp-connection-failed.error.d.ts.map +1 -0
  181. package/dist/email/errors/email-smtp-connection-failed.error.js +15 -0
  182. package/dist/email/errors/email-smtp-connection-failed.error.js.map +1 -0
  183. package/dist/email/errors/index.d.ts +7 -0
  184. package/dist/email/errors/index.d.ts.map +1 -0
  185. package/dist/email/errors/index.js +7 -0
  186. package/dist/email/errors/index.js.map +1 -0
  187. package/dist/email/errors/resend-api-key-missing.error.d.ts +13 -0
  188. package/dist/email/errors/resend-api-key-missing.error.d.ts.map +1 -0
  189. package/dist/email/errors/resend-api-key-missing.error.js +15 -0
  190. package/dist/email/errors/resend-api-key-missing.error.js.map +1 -0
  191. package/dist/email/errors/smtp-configuration-missing.error.d.ts +13 -0
  192. package/dist/email/errors/smtp-configuration-missing.error.d.ts.map +1 -0
  193. package/dist/email/errors/smtp-configuration-missing.error.js +15 -0
  194. package/dist/email/errors/smtp-configuration-missing.error.js.map +1 -0
  195. package/dist/email/errors/smtp-host-missing.error.d.ts +13 -0
  196. package/dist/email/errors/smtp-host-missing.error.d.ts.map +1 -0
  197. package/dist/email/errors/smtp-host-missing.error.js +15 -0
  198. package/dist/email/errors/smtp-host-missing.error.js.map +1 -0
  199. package/dist/email/index.d.ts +6 -0
  200. package/dist/email/index.d.ts.map +1 -0
  201. package/dist/email/index.js +8 -0
  202. package/dist/email/index.js.map +1 -0
  203. package/dist/email/providers/base-email.provider.d.ts +22 -0
  204. package/dist/email/providers/base-email.provider.d.ts.map +1 -0
  205. package/dist/email/providers/base-email.provider.js +43 -0
  206. package/dist/email/providers/base-email.provider.js.map +1 -0
  207. package/dist/email/providers/email-provider.interface.d.ts +66 -0
  208. package/dist/email/providers/email-provider.interface.d.ts.map +1 -0
  209. package/dist/email/providers/email-provider.interface.js +2 -0
  210. package/dist/email/providers/email-provider.interface.js.map +1 -0
  211. package/dist/email/providers/index.d.ts +5 -0
  212. package/dist/email/providers/index.d.ts.map +1 -0
  213. package/dist/email/providers/index.js +5 -0
  214. package/dist/email/providers/index.js.map +1 -0
  215. package/dist/email/providers/resend.provider.d.ts +26 -0
  216. package/dist/email/providers/resend.provider.d.ts.map +1 -0
  217. package/dist/email/providers/resend.provider.js +84 -0
  218. package/dist/email/providers/resend.provider.js.map +1 -0
  219. package/dist/email/providers/smtp.provider.d.ts +25 -0
  220. package/dist/email/providers/smtp.provider.d.ts.map +1 -0
  221. package/dist/email/providers/smtp.provider.js +86 -0
  222. package/dist/email/providers/smtp.provider.js.map +1 -0
  223. package/dist/email/services/email-provider-factory.d.ts +24 -0
  224. package/dist/email/services/email-provider-factory.d.ts.map +1 -0
  225. package/dist/email/services/email-provider-factory.js +59 -0
  226. package/dist/email/services/email-provider-factory.js.map +1 -0
  227. package/dist/email/services/email.service.d.ts +51 -0
  228. package/dist/email/services/email.service.d.ts.map +1 -0
  229. package/dist/email/services/email.service.js +75 -0
  230. package/dist/email/services/email.service.js.map +1 -0
  231. package/dist/email/services/index.d.ts +3 -0
  232. package/dist/email/services/index.d.ts.map +1 -0
  233. package/dist/email/services/index.js +3 -0
  234. package/dist/email/services/index.js.map +1 -0
  235. package/dist/env.d.ts +21 -0
  236. package/dist/env.d.ts.map +1 -0
  237. package/dist/env.js +2 -0
  238. package/dist/env.js.map +1 -0
  239. package/dist/errors/application-error.d.ts +80 -0
  240. package/dist/errors/application-error.d.ts.map +1 -0
  241. package/dist/errors/application-error.js +118 -0
  242. package/dist/errors/application-error.js.map +1 -0
  243. package/dist/errors/error-codes.d.ts +198 -0
  244. package/dist/errors/error-codes.d.ts.map +1 -0
  245. package/dist/errors/error-codes.js +180 -0
  246. package/dist/errors/error-codes.js.map +1 -0
  247. package/dist/errors/get-http-status.d.ts +12 -0
  248. package/dist/errors/get-http-status.d.ts.map +1 -0
  249. package/dist/errors/get-http-status.js +62 -0
  250. package/dist/errors/get-http-status.js.map +1 -0
  251. package/dist/errors/index.d.ts +5 -0
  252. package/dist/errors/index.d.ts.map +1 -0
  253. package/dist/errors/index.js +5 -0
  254. package/dist/errors/index.js.map +1 -0
  255. package/dist/errors/is-application-error.d.ts +9 -0
  256. package/dist/errors/is-application-error.d.ts.map +1 -0
  257. package/dist/errors/is-application-error.js +11 -0
  258. package/dist/errors/is-application-error.js.map +1 -0
  259. package/dist/guards/guard-execution.service.d.ts +37 -0
  260. package/dist/guards/guard-execution.service.d.ts.map +1 -0
  261. package/dist/guards/guard-execution.service.js +74 -0
  262. package/dist/guards/guard-execution.service.js.map +1 -0
  263. package/dist/guards/index.d.ts +12 -0
  264. package/dist/guards/index.d.ts.map +1 -0
  265. package/dist/guards/index.js +12 -0
  266. package/dist/guards/index.js.map +1 -0
  267. package/dist/guards/types.d.ts +60 -0
  268. package/dist/guards/types.d.ts.map +1 -0
  269. package/dist/guards/types.js +5 -0
  270. package/dist/guards/types.js.map +1 -0
  271. package/dist/guards/use-guards.decorator.d.ts +73 -0
  272. package/dist/guards/use-guards.decorator.d.ts.map +1 -0
  273. package/dist/guards/use-guards.decorator.js +89 -0
  274. package/dist/guards/use-guards.decorator.js.map +1 -0
  275. package/dist/i18n/errors/index.d.ts +6 -0
  276. package/dist/i18n/errors/index.d.ts.map +1 -0
  277. package/dist/i18n/errors/index.js +6 -0
  278. package/dist/i18n/errors/index.js.map +1 -0
  279. package/dist/i18n/errors/locale-not-supported.error.d.ts +12 -0
  280. package/dist/i18n/errors/locale-not-supported.error.d.ts.map +1 -0
  281. package/dist/i18n/errors/locale-not-supported.error.js +15 -0
  282. package/dist/i18n/errors/locale-not-supported.error.js.map +1 -0
  283. package/dist/i18n/errors/translation-missing.error.d.ts +12 -0
  284. package/dist/i18n/errors/translation-missing.error.d.ts.map +1 -0
  285. package/dist/i18n/errors/translation-missing.error.js +15 -0
  286. package/dist/i18n/errors/translation-missing.error.js.map +1 -0
  287. package/dist/i18n/i18n.module.d.ts +60 -0
  288. package/dist/i18n/i18n.module.d.ts.map +1 -0
  289. package/dist/i18n/i18n.module.js +103 -0
  290. package/dist/i18n/i18n.module.js.map +1 -0
  291. package/dist/i18n/i18n.options.d.ts +60 -0
  292. package/dist/i18n/i18n.options.d.ts.map +1 -0
  293. package/dist/i18n/i18n.options.js +18 -0
  294. package/dist/i18n/i18n.options.js.map +1 -0
  295. package/dist/i18n/i18n.tokens.d.ts +13 -0
  296. package/dist/i18n/i18n.tokens.d.ts.map +1 -0
  297. package/dist/i18n/i18n.tokens.js +13 -0
  298. package/dist/i18n/i18n.tokens.js.map +1 -0
  299. package/dist/i18n/i18n.types.d.ts +78 -0
  300. package/dist/i18n/i18n.types.d.ts.map +1 -0
  301. package/dist/i18n/i18n.types.js +8 -0
  302. package/dist/i18n/i18n.types.js.map +1 -0
  303. package/dist/i18n/index.d.ts +12 -0
  304. package/dist/i18n/index.d.ts.map +1 -0
  305. package/dist/i18n/index.js +12 -0
  306. package/dist/i18n/index.js.map +1 -0
  307. package/dist/i18n/messages/en/common.d.ts +23 -0
  308. package/dist/i18n/messages/en/common.d.ts.map +1 -0
  309. package/dist/i18n/messages/en/common.js +23 -0
  310. package/dist/i18n/messages/en/common.js.map +1 -0
  311. package/dist/i18n/messages/en/emails.d.ts +12 -0
  312. package/dist/i18n/messages/en/emails.d.ts.map +1 -0
  313. package/dist/i18n/messages/en/emails.js +12 -0
  314. package/dist/i18n/messages/en/emails.js.map +1 -0
  315. package/dist/i18n/messages/en/errors.d.ts +115 -0
  316. package/dist/i18n/messages/en/errors.d.ts.map +1 -0
  317. package/dist/i18n/messages/en/errors.js +132 -0
  318. package/dist/i18n/messages/en/errors.js.map +1 -0
  319. package/dist/i18n/messages/en/index.d.ts +13 -0
  320. package/dist/i18n/messages/en/index.d.ts.map +1 -0
  321. package/dist/i18n/messages/en/index.js +13 -0
  322. package/dist/i18n/messages/en/index.js.map +1 -0
  323. package/dist/i18n/messages/en/validation.d.ts +38 -0
  324. package/dist/i18n/messages/en/validation.d.ts.map +1 -0
  325. package/dist/i18n/messages/en/validation.js +38 -0
  326. package/dist/i18n/messages/en/validation.js.map +1 -0
  327. package/dist/i18n/messages/en/zod.d.ts +125 -0
  328. package/dist/i18n/messages/en/zod.d.ts.map +1 -0
  329. package/dist/i18n/messages/en/zod.js +132 -0
  330. package/dist/i18n/messages/en/zod.js.map +1 -0
  331. package/dist/i18n/messages/index.d.ts +27 -0
  332. package/dist/i18n/messages/index.d.ts.map +1 -0
  333. package/dist/i18n/messages/index.js +25 -0
  334. package/dist/i18n/messages/index.js.map +1 -0
  335. package/dist/i18n/middleware/i18n-context.middleware.d.ts +15 -0
  336. package/dist/i18n/middleware/i18n-context.middleware.d.ts.map +1 -0
  337. package/dist/i18n/middleware/i18n-context.middleware.js +42 -0
  338. package/dist/i18n/middleware/i18n-context.middleware.js.map +1 -0
  339. package/dist/i18n/middleware/index.d.ts +6 -0
  340. package/dist/i18n/middleware/index.d.ts.map +1 -0
  341. package/dist/i18n/middleware/index.js +6 -0
  342. package/dist/i18n/middleware/index.js.map +1 -0
  343. package/dist/i18n/middleware/locale-extraction.middleware.d.ts +19 -0
  344. package/dist/i18n/middleware/locale-extraction.middleware.d.ts.map +1 -0
  345. package/dist/i18n/middleware/locale-extraction.middleware.js +49 -0
  346. package/dist/i18n/middleware/locale-extraction.middleware.js.map +1 -0
  347. package/dist/i18n/services/i18n.service.d.ts +62 -0
  348. package/dist/i18n/services/i18n.service.d.ts.map +1 -0
  349. package/dist/i18n/services/i18n.service.js +118 -0
  350. package/dist/i18n/services/i18n.service.js.map +1 -0
  351. package/dist/i18n/services/message-loader.service.d.ts +47 -0
  352. package/dist/i18n/services/message-loader.service.d.ts.map +1 -0
  353. package/dist/i18n/services/message-loader.service.js +121 -0
  354. package/dist/i18n/services/message-loader.service.js.map +1 -0
  355. package/dist/i18n/setup.d.ts +27 -0
  356. package/dist/i18n/setup.d.ts.map +1 -0
  357. package/dist/i18n/setup.js +40 -0
  358. package/dist/i18n/setup.js.map +1 -0
  359. package/dist/i18n/validation/index.d.ts +9 -0
  360. package/dist/i18n/validation/index.d.ts.map +1 -0
  361. package/dist/i18n/validation/index.js +10 -0
  362. package/dist/i18n/validation/index.js.map +1 -0
  363. package/dist/i18n/validation/validation.context.d.ts +34 -0
  364. package/dist/i18n/validation/validation.context.d.ts.map +1 -0
  365. package/dist/i18n/validation/validation.context.js +42 -0
  366. package/dist/i18n/validation/validation.context.js.map +1 -0
  367. package/dist/i18n/validation/validation.error-map.d.ts +8 -0
  368. package/dist/i18n/validation/validation.error-map.d.ts.map +1 -0
  369. package/dist/i18n/validation/validation.error-map.js +158 -0
  370. package/dist/i18n/validation/validation.error-map.js.map +1 -0
  371. package/dist/i18n/validation/validation.types.d.ts +44 -0
  372. package/dist/i18n/validation/validation.types.d.ts.map +1 -0
  373. package/dist/i18n/validation/validation.types.js +2 -0
  374. package/dist/i18n/validation/validation.types.js.map +1 -0
  375. package/dist/i18n/validation/with-i18n.d.ts +29 -0
  376. package/dist/i18n/validation/with-i18n.d.ts.map +1 -0
  377. package/dist/i18n/validation/with-i18n.js +40 -0
  378. package/dist/i18n/validation/with-i18n.js.map +1 -0
  379. package/dist/index.d.ts +22 -0
  380. package/dist/index.d.ts.map +1 -0
  381. package/dist/index.js +23 -0
  382. package/dist/index.js.map +1 -0
  383. package/dist/infrastructure/error-handler/error-response.d.ts +32 -0
  384. package/dist/infrastructure/error-handler/error-response.d.ts.map +1 -0
  385. package/dist/infrastructure/error-handler/error-response.js +14 -0
  386. package/dist/infrastructure/error-handler/error-response.js.map +1 -0
  387. package/dist/infrastructure/error-handler/global-error-handler.d.ts +81 -0
  388. package/dist/infrastructure/error-handler/global-error-handler.d.ts.map +1 -0
  389. package/dist/infrastructure/error-handler/global-error-handler.js +178 -0
  390. package/dist/infrastructure/error-handler/global-error-handler.js.map +1 -0
  391. package/dist/infrastructure/error-handler/index.d.ts +6 -0
  392. package/dist/infrastructure/error-handler/index.d.ts.map +1 -0
  393. package/dist/infrastructure/error-handler/index.js +5 -0
  394. package/dist/infrastructure/error-handler/index.js.map +1 -0
  395. package/dist/infrastructure/error-handler/internal-error.d.ts +16 -0
  396. package/dist/infrastructure/error-handler/internal-error.d.ts.map +1 -0
  397. package/dist/infrastructure/error-handler/internal-error.js +19 -0
  398. package/dist/infrastructure/error-handler/internal-error.js.map +1 -0
  399. package/dist/infrastructure/errors/index.d.ts +2 -0
  400. package/dist/infrastructure/errors/index.d.ts.map +1 -0
  401. package/dist/infrastructure/errors/index.js +2 -0
  402. package/dist/infrastructure/errors/index.js.map +1 -0
  403. package/dist/infrastructure/errors/request-container-not-initialized.error.d.ts +12 -0
  404. package/dist/infrastructure/errors/request-container-not-initialized.error.d.ts.map +1 -0
  405. package/dist/infrastructure/errors/request-container-not-initialized.error.js +15 -0
  406. package/dist/infrastructure/errors/request-container-not-initialized.error.js.map +1 -0
  407. package/dist/infrastructure/index.d.ts +3 -0
  408. package/dist/infrastructure/index.d.ts.map +1 -0
  409. package/dist/infrastructure/index.js +3 -0
  410. package/dist/infrastructure/index.js.map +1 -0
  411. package/dist/logger/contracts/index.d.ts +4 -0
  412. package/dist/logger/contracts/index.d.ts.map +1 -0
  413. package/dist/logger/contracts/index.js +4 -0
  414. package/dist/logger/contracts/index.js.map +1 -0
  415. package/dist/logger/contracts/log-context.d.ts +16 -0
  416. package/dist/logger/contracts/log-context.d.ts.map +1 -0
  417. package/dist/logger/contracts/log-context.js +2 -0
  418. package/dist/logger/contracts/log-context.js.map +1 -0
  419. package/dist/logger/contracts/log-entry.d.ts +17 -0
  420. package/dist/logger/contracts/log-entry.d.ts.map +1 -0
  421. package/dist/logger/contracts/log-entry.js +2 -0
  422. package/dist/logger/contracts/log-entry.js.map +1 -0
  423. package/dist/logger/contracts/log-level.d.ts +16 -0
  424. package/dist/logger/contracts/log-level.d.ts.map +1 -0
  425. package/dist/logger/contracts/log-level.js +22 -0
  426. package/dist/logger/contracts/log-level.js.map +1 -0
  427. package/dist/logger/formatters/formatter.interface.d.ts +14 -0
  428. package/dist/logger/formatters/formatter.interface.d.ts.map +1 -0
  429. package/dist/logger/formatters/formatter.interface.js +2 -0
  430. package/dist/logger/formatters/formatter.interface.js.map +1 -0
  431. package/dist/logger/formatters/index.d.ts +4 -0
  432. package/dist/logger/formatters/index.d.ts.map +1 -0
  433. package/dist/logger/formatters/index.js +4 -0
  434. package/dist/logger/formatters/index.js.map +1 -0
  435. package/dist/logger/formatters/json-formatter.d.ts +22 -0
  436. package/dist/logger/formatters/json-formatter.d.ts.map +1 -0
  437. package/dist/logger/formatters/json-formatter.js +28 -0
  438. package/dist/logger/formatters/json-formatter.js.map +1 -0
  439. package/dist/logger/formatters/pretty-formatter.d.ts +19 -0
  440. package/dist/logger/formatters/pretty-formatter.d.ts.map +1 -0
  441. package/dist/logger/formatters/pretty-formatter.js +42 -0
  442. package/dist/logger/formatters/pretty-formatter.js.map +1 -0
  443. package/dist/logger/index.d.ts +7 -0
  444. package/dist/logger/index.d.ts.map +1 -0
  445. package/dist/logger/index.js +10 -0
  446. package/dist/logger/index.js.map +1 -0
  447. package/dist/logger/logger.tokens.d.ts +29 -0
  448. package/dist/logger/logger.tokens.d.ts.map +1 -0
  449. package/dist/logger/logger.tokens.js +29 -0
  450. package/dist/logger/logger.tokens.js.map +1 -0
  451. package/dist/logger/services/index.d.ts +2 -0
  452. package/dist/logger/services/index.d.ts.map +1 -0
  453. package/dist/logger/services/index.js +2 -0
  454. package/dist/logger/services/index.js.map +1 -0
  455. package/dist/logger/services/logger.service.d.ts +86 -0
  456. package/dist/logger/services/logger.service.d.ts.map +1 -0
  457. package/dist/logger/services/logger.service.js +161 -0
  458. package/dist/logger/services/logger.service.js.map +1 -0
  459. package/dist/logger/transports/base-transport.d.ts +24 -0
  460. package/dist/logger/transports/base-transport.d.ts.map +1 -0
  461. package/dist/logger/transports/base-transport.js +23 -0
  462. package/dist/logger/transports/base-transport.js.map +1 -0
  463. package/dist/logger/transports/console-transport.d.ts +19 -0
  464. package/dist/logger/transports/console-transport.d.ts.map +1 -0
  465. package/dist/logger/transports/console-transport.js +53 -0
  466. package/dist/logger/transports/console-transport.js.map +1 -0
  467. package/dist/logger/transports/index.d.ts +4 -0
  468. package/dist/logger/transports/index.d.ts.map +1 -0
  469. package/dist/logger/transports/index.js +4 -0
  470. package/dist/logger/transports/index.js.map +1 -0
  471. package/dist/logger/transports/transport.interface.d.ts +21 -0
  472. package/dist/logger/transports/transport.interface.d.ts.map +1 -0
  473. package/dist/logger/transports/transport.interface.js +2 -0
  474. package/dist/logger/transports/transport.interface.js.map +1 -0
  475. package/dist/middleware/index.d.ts +24 -0
  476. package/dist/middleware/index.d.ts.map +1 -0
  477. package/dist/middleware/index.js +23 -0
  478. package/dist/middleware/index.js.map +1 -0
  479. package/dist/middleware/middleware-configuration.service.d.ts +64 -0
  480. package/dist/middleware/middleware-configuration.service.d.ts.map +1 -0
  481. package/dist/middleware/middleware-configuration.service.js +210 -0
  482. package/dist/middleware/middleware-configuration.service.js.map +1 -0
  483. package/dist/middleware/middleware-consumer.d.ts +57 -0
  484. package/dist/middleware/middleware-consumer.d.ts.map +1 -0
  485. package/dist/middleware/middleware-consumer.js +130 -0
  486. package/dist/middleware/middleware-consumer.js.map +1 -0
  487. package/dist/middleware/types.d.ts +94 -0
  488. package/dist/middleware/types.d.ts.map +1 -0
  489. package/dist/middleware/types.js +2 -0
  490. package/dist/middleware/types.js.map +1 -0
  491. package/dist/module/errors/index.d.ts +5 -0
  492. package/dist/module/errors/index.d.ts.map +1 -0
  493. package/dist/module/errors/index.js +5 -0
  494. package/dist/module/errors/index.js.map +1 -0
  495. package/dist/module/errors/invalid-module-provider.error.d.ts +11 -0
  496. package/dist/module/errors/invalid-module-provider.error.d.ts.map +1 -0
  497. package/dist/module/errors/invalid-module-provider.error.js +14 -0
  498. package/dist/module/errors/invalid-module-provider.error.js.map +1 -0
  499. package/dist/module/errors/module-already-registered.error.d.ts +11 -0
  500. package/dist/module/errors/module-already-registered.error.d.ts.map +1 -0
  501. package/dist/module/errors/module-already-registered.error.js +14 -0
  502. package/dist/module/errors/module-already-registered.error.js.map +1 -0
  503. package/dist/module/errors/module-circular-dependency.error.d.ts +11 -0
  504. package/dist/module/errors/module-circular-dependency.error.d.ts.map +1 -0
  505. package/dist/module/errors/module-circular-dependency.error.js +15 -0
  506. package/dist/module/errors/module-circular-dependency.error.js.map +1 -0
  507. package/dist/module/errors/module-dependency-not-found.error.d.ts +11 -0
  508. package/dist/module/errors/module-dependency-not-found.error.d.ts.map +1 -0
  509. package/dist/module/errors/module-dependency-not-found.error.js +14 -0
  510. package/dist/module/errors/module-dependency-not-found.error.js.map +1 -0
  511. package/dist/module/index.d.ts +4 -0
  512. package/dist/module/index.d.ts.map +1 -0
  513. package/dist/module/index.js +7 -0
  514. package/dist/module/index.js.map +1 -0
  515. package/dist/module/module-registry.d.ts +101 -0
  516. package/dist/module/module-registry.d.ts.map +1 -0
  517. package/dist/module/module-registry.js +278 -0
  518. package/dist/module/module-registry.js.map +1 -0
  519. package/dist/module/module.decorator.d.ts +34 -0
  520. package/dist/module/module.decorator.d.ts.map +1 -0
  521. package/dist/module/module.decorator.js +107 -0
  522. package/dist/module/module.decorator.js.map +1 -0
  523. package/dist/module/types.d.ts +240 -0
  524. package/dist/module/types.d.ts.map +1 -0
  525. package/dist/module/types.js +8 -0
  526. package/dist/module/types.js.map +1 -0
  527. package/dist/openapi/index.d.ts +5 -0
  528. package/dist/openapi/index.d.ts.map +1 -0
  529. package/dist/openapi/index.js +7 -0
  530. package/dist/openapi/index.js.map +1 -0
  531. package/dist/openapi/openapi.module.d.ts +52 -0
  532. package/dist/openapi/openapi.module.d.ts.map +1 -0
  533. package/dist/openapi/openapi.module.js +110 -0
  534. package/dist/openapi/openapi.module.js.map +1 -0
  535. package/dist/openapi/openapi.tokens.d.ts +12 -0
  536. package/dist/openapi/openapi.tokens.d.ts.map +1 -0
  537. package/dist/openapi/openapi.tokens.js +12 -0
  538. package/dist/openapi/openapi.tokens.js.map +1 -0
  539. package/dist/openapi/services/index.d.ts +3 -0
  540. package/dist/openapi/services/index.d.ts.map +1 -0
  541. package/dist/openapi/services/index.js +3 -0
  542. package/dist/openapi/services/index.js.map +1 -0
  543. package/dist/openapi/services/openapi-config.service.d.ts +43 -0
  544. package/dist/openapi/services/openapi-config.service.d.ts.map +1 -0
  545. package/dist/openapi/services/openapi-config.service.js +98 -0
  546. package/dist/openapi/services/openapi-config.service.js.map +1 -0
  547. package/dist/openapi/services/openapi.service.d.ts +52 -0
  548. package/dist/openapi/services/openapi.service.d.ts.map +1 -0
  549. package/dist/openapi/services/openapi.service.js +228 -0
  550. package/dist/openapi/services/openapi.service.js.map +1 -0
  551. package/dist/openapi/types.d.ts +61 -0
  552. package/dist/openapi/types.d.ts.map +1 -0
  553. package/dist/openapi/types.js +2 -0
  554. package/dist/openapi/types.js.map +1 -0
  555. package/dist/polyfills/dom.polyfill.d.ts +2 -0
  556. package/dist/polyfills/dom.polyfill.d.ts.map +1 -0
  557. package/dist/polyfills/dom.polyfill.js +30 -0
  558. package/dist/polyfills/dom.polyfill.js.map +1 -0
  559. package/dist/polyfills/index.d.ts +8 -0
  560. package/dist/polyfills/index.d.ts.map +1 -0
  561. package/dist/polyfills/index.js +8 -0
  562. package/dist/polyfills/index.js.map +1 -0
  563. package/dist/queue/consumer-registry.d.ts +77 -0
  564. package/dist/queue/consumer-registry.d.ts.map +1 -0
  565. package/dist/queue/consumer-registry.js +110 -0
  566. package/dist/queue/consumer-registry.js.map +1 -0
  567. package/dist/queue/decorators/index.d.ts +2 -0
  568. package/dist/queue/decorators/index.d.ts.map +1 -0
  569. package/dist/queue/decorators/index.js +2 -0
  570. package/dist/queue/decorators/index.js.map +1 -0
  571. package/dist/queue/decorators/inject-queue.decorator.d.ts +31 -0
  572. package/dist/queue/decorators/inject-queue.decorator.d.ts.map +1 -0
  573. package/dist/queue/decorators/inject-queue.decorator.js +33 -0
  574. package/dist/queue/decorators/inject-queue.decorator.js.map +1 -0
  575. package/dist/queue/errors/index.d.ts +3 -0
  576. package/dist/queue/errors/index.d.ts.map +1 -0
  577. package/dist/queue/errors/index.js +3 -0
  578. package/dist/queue/errors/index.js.map +1 -0
  579. package/dist/queue/errors/queue-binding-not-found.error.d.ts +12 -0
  580. package/dist/queue/errors/queue-binding-not-found.error.d.ts.map +1 -0
  581. package/dist/queue/errors/queue-binding-not-found.error.js +15 -0
  582. package/dist/queue/errors/queue-binding-not-found.error.js.map +1 -0
  583. package/dist/queue/errors/queue-provider-not-supported.error.d.ts +13 -0
  584. package/dist/queue/errors/queue-provider-not-supported.error.d.ts.map +1 -0
  585. package/dist/queue/errors/queue-provider-not-supported.error.js +16 -0
  586. package/dist/queue/errors/queue-provider-not-supported.error.js.map +1 -0
  587. package/dist/queue/index.d.ts +14 -0
  588. package/dist/queue/index.d.ts.map +1 -0
  589. package/dist/queue/index.js +21 -0
  590. package/dist/queue/index.js.map +1 -0
  591. package/dist/queue/providers/cloudflare-queue.provider.d.ts +42 -0
  592. package/dist/queue/providers/cloudflare-queue.provider.d.ts.map +1 -0
  593. package/dist/queue/providers/cloudflare-queue.provider.js +73 -0
  594. package/dist/queue/providers/cloudflare-queue.provider.js.map +1 -0
  595. package/dist/queue/providers/index.d.ts +4 -0
  596. package/dist/queue/providers/index.d.ts.map +1 -0
  597. package/dist/queue/providers/index.js +4 -0
  598. package/dist/queue/providers/index.js.map +1 -0
  599. package/dist/queue/providers/queue-provider.interface.d.ts +34 -0
  600. package/dist/queue/providers/queue-provider.interface.d.ts.map +1 -0
  601. package/dist/queue/providers/queue-provider.interface.js +2 -0
  602. package/dist/queue/providers/queue-provider.interface.js.map +1 -0
  603. package/dist/queue/providers/sync-queue.provider.d.ts +48 -0
  604. package/dist/queue/providers/sync-queue.provider.d.ts.map +1 -0
  605. package/dist/queue/providers/sync-queue.provider.js +89 -0
  606. package/dist/queue/providers/sync-queue.provider.js.map +1 -0
  607. package/dist/queue/queue-consumer.d.ts +64 -0
  608. package/dist/queue/queue-consumer.d.ts.map +1 -0
  609. package/dist/queue/queue-consumer.js +2 -0
  610. package/dist/queue/queue-consumer.js.map +1 -0
  611. package/dist/queue/queue-manager.d.ts +36 -0
  612. package/dist/queue/queue-manager.d.ts.map +1 -0
  613. package/dist/queue/queue-manager.js +80 -0
  614. package/dist/queue/queue-manager.js.map +1 -0
  615. package/dist/queue/queue-name.d.ts +50 -0
  616. package/dist/queue/queue-name.d.ts.map +1 -0
  617. package/dist/queue/queue-name.js +21 -0
  618. package/dist/queue/queue-name.js.map +1 -0
  619. package/dist/queue/queue-registry.d.ts +46 -0
  620. package/dist/queue/queue-registry.d.ts.map +1 -0
  621. package/dist/queue/queue-registry.js +78 -0
  622. package/dist/queue/queue-registry.js.map +1 -0
  623. package/dist/queue/queue-sender.d.ts +38 -0
  624. package/dist/queue/queue-sender.d.ts.map +1 -0
  625. package/dist/queue/queue-sender.interface.d.ts +46 -0
  626. package/dist/queue/queue-sender.interface.d.ts.map +1 -0
  627. package/dist/queue/queue-sender.interface.js +2 -0
  628. package/dist/queue/queue-sender.interface.js.map +1 -0
  629. package/dist/queue/queue-sender.js +54 -0
  630. package/dist/queue/queue-sender.js.map +1 -0
  631. package/dist/queue/queue.module.d.ts +80 -0
  632. package/dist/queue/queue.module.d.ts.map +1 -0
  633. package/dist/queue/queue.module.js +113 -0
  634. package/dist/queue/queue.module.js.map +1 -0
  635. package/dist/queue/queue.tokens.d.ts +7 -0
  636. package/dist/queue/queue.tokens.d.ts.map +1 -0
  637. package/dist/queue/queue.tokens.js +6 -0
  638. package/dist/queue/queue.tokens.js.map +1 -0
  639. package/dist/queue/services/index.d.ts +2 -0
  640. package/dist/queue/services/index.d.ts.map +1 -0
  641. package/dist/queue/services/index.js +2 -0
  642. package/dist/queue/services/index.js.map +1 -0
  643. package/dist/queue/services/queue-provider-factory.d.ts +41 -0
  644. package/dist/queue/services/queue-provider-factory.d.ts.map +1 -0
  645. package/dist/queue/services/queue-provider-factory.js +78 -0
  646. package/dist/queue/services/queue-provider-factory.js.map +1 -0
  647. package/dist/router/constants.d.ts +72 -0
  648. package/dist/router/constants.d.ts.map +1 -0
  649. package/dist/router/constants.js +54 -0
  650. package/dist/router/constants.js.map +1 -0
  651. package/dist/router/controller.d.ts +56 -0
  652. package/dist/router/controller.d.ts.map +1 -0
  653. package/dist/router/controller.js +2 -0
  654. package/dist/router/controller.js.map +1 -0
  655. package/dist/router/decorators/controller.decorator.d.ts +55 -0
  656. package/dist/router/decorators/controller.decorator.d.ts.map +1 -0
  657. package/dist/router/decorators/controller.decorator.js +76 -0
  658. package/dist/router/decorators/controller.decorator.js.map +1 -0
  659. package/dist/router/decorators/index.d.ts +3 -0
  660. package/dist/router/decorators/index.d.ts.map +1 -0
  661. package/dist/router/decorators/index.js +7 -0
  662. package/dist/router/decorators/index.js.map +1 -0
  663. package/dist/router/decorators/route.decorator.d.ts +87 -0
  664. package/dist/router/decorators/route.decorator.d.ts.map +1 -0
  665. package/dist/router/decorators/route.decorator.js +99 -0
  666. package/dist/router/decorators/route.decorator.js.map +1 -0
  667. package/dist/router/errors/controller-method-not-found.error.d.ts +11 -0
  668. package/dist/router/errors/controller-method-not-found.error.d.ts.map +1 -0
  669. package/dist/router/errors/controller-method-not-found.error.js +14 -0
  670. package/dist/router/errors/controller-method-not-found.error.js.map +1 -0
  671. package/dist/router/errors/controller-registration.error.d.ts +15 -0
  672. package/dist/router/errors/controller-registration.error.d.ts.map +1 -0
  673. package/dist/router/errors/controller-registration.error.js +21 -0
  674. package/dist/router/errors/controller-registration.error.js.map +1 -0
  675. package/dist/router/errors/index.d.ts +9 -0
  676. package/dist/router/errors/index.d.ts.map +1 -0
  677. package/dist/router/errors/index.js +11 -0
  678. package/dist/router/errors/index.js.map +1 -0
  679. package/dist/router/errors/openapi-route-registration.error.d.ts +17 -0
  680. package/dist/router/errors/openapi-route-registration.error.d.ts.map +1 -0
  681. package/dist/router/errors/openapi-route-registration.error.js +20 -0
  682. package/dist/router/errors/openapi-route-registration.error.js.map +1 -0
  683. package/dist/router/errors/openapi-validation.error.d.ts +19 -0
  684. package/dist/router/errors/openapi-validation.error.d.ts.map +1 -0
  685. package/dist/router/errors/openapi-validation.error.js +22 -0
  686. package/dist/router/errors/openapi-validation.error.js.map +1 -0
  687. package/dist/router/errors/route-not-found.error.d.ts +11 -0
  688. package/dist/router/errors/route-not-found.error.d.ts.map +1 -0
  689. package/dist/router/errors/route-not-found.error.js +14 -0
  690. package/dist/router/errors/route-not-found.error.js.map +1 -0
  691. package/dist/router/errors/router-already-configured.error.d.ts +5 -0
  692. package/dist/router/errors/router-already-configured.error.d.ts.map +1 -0
  693. package/dist/router/errors/router-already-configured.error.js +8 -0
  694. package/dist/router/errors/router-already-configured.error.js.map +1 -0
  695. package/dist/router/errors/router-not-configured.error.d.ts +5 -0
  696. package/dist/router/errors/router-not-configured.error.d.ts.map +1 -0
  697. package/dist/router/errors/router-not-configured.error.js +8 -0
  698. package/dist/router/errors/router-not-configured.error.js.map +1 -0
  699. package/dist/router/errors/schema-validation.error.d.ts +11 -0
  700. package/dist/router/errors/schema-validation.error.d.ts.map +1 -0
  701. package/dist/router/errors/schema-validation.error.js +18 -0
  702. package/dist/router/errors/schema-validation.error.js.map +1 -0
  703. package/dist/router/index.d.ts +13 -0
  704. package/dist/router/index.d.ts.map +1 -0
  705. package/dist/router/index.js +18 -0
  706. package/dist/router/index.js.map +1 -0
  707. package/dist/router/middleware/index.d.ts +2 -0
  708. package/dist/router/middleware/index.d.ts.map +1 -0
  709. package/dist/router/middleware/index.js +4 -0
  710. package/dist/router/middleware/index.js.map +1 -0
  711. package/dist/router/middleware/logger.middleware.d.ts +19 -0
  712. package/dist/router/middleware/logger.middleware.d.ts.map +1 -0
  713. package/dist/router/middleware/logger.middleware.js +32 -0
  714. package/dist/router/middleware/logger.middleware.js.map +1 -0
  715. package/dist/router/middleware.interface.d.ts +38 -0
  716. package/dist/router/middleware.interface.d.ts.map +1 -0
  717. package/dist/router/middleware.interface.js +2 -0
  718. package/dist/router/middleware.interface.js.map +1 -0
  719. package/dist/router/router-context.d.ts +117 -0
  720. package/dist/router/router-context.d.ts.map +1 -0
  721. package/dist/router/router-context.js +145 -0
  722. package/dist/router/router-context.js.map +1 -0
  723. package/dist/router/router.service.d.ts +62 -0
  724. package/dist/router/router.service.d.ts.map +1 -0
  725. package/dist/router/router.service.js +166 -0
  726. package/dist/router/router.service.js.map +1 -0
  727. package/dist/router/router.tokens.d.ts +39 -0
  728. package/dist/router/router.tokens.d.ts.map +1 -0
  729. package/dist/router/router.tokens.js +39 -0
  730. package/dist/router/router.tokens.js.map +1 -0
  731. package/dist/router/schemas/common.schemas.d.ts +148 -0
  732. package/dist/router/schemas/common.schemas.d.ts.map +1 -0
  733. package/dist/router/schemas/common.schemas.js +88 -0
  734. package/dist/router/schemas/common.schemas.js.map +1 -0
  735. package/dist/router/schemas/index.d.ts +2 -0
  736. package/dist/router/schemas/index.d.ts.map +1 -0
  737. package/dist/router/schemas/index.js +2 -0
  738. package/dist/router/schemas/index.js.map +1 -0
  739. package/dist/router/services/index.d.ts +7 -0
  740. package/dist/router/services/index.d.ts.map +1 -0
  741. package/dist/router/services/index.js +7 -0
  742. package/dist/router/services/index.js.map +1 -0
  743. package/dist/router/services/request-scope.service.d.ts +44 -0
  744. package/dist/router/services/request-scope.service.d.ts.map +1 -0
  745. package/dist/router/services/request-scope.service.js +78 -0
  746. package/dist/router/services/request-scope.service.js.map +1 -0
  747. package/dist/router/services/route-registration.service.d.ts +94 -0
  748. package/dist/router/services/route-registration.service.d.ts.map +1 -0
  749. package/dist/router/services/route-registration.service.js +451 -0
  750. package/dist/router/services/route-registration.service.js.map +1 -0
  751. package/dist/router/types.d.ts +130 -0
  752. package/dist/router/types.d.ts.map +1 -0
  753. package/dist/router/types.js +2 -0
  754. package/dist/router/types.js.map +1 -0
  755. package/dist/storage/contracts/delete-file.input.d.ts +7 -0
  756. package/dist/storage/contracts/delete-file.input.d.ts.map +1 -0
  757. package/dist/storage/contracts/delete-file.input.js +6 -0
  758. package/dist/storage/contracts/delete-file.input.js.map +1 -0
  759. package/dist/storage/contracts/download-result.d.ts +28 -0
  760. package/dist/storage/contracts/download-result.d.ts.map +1 -0
  761. package/dist/storage/contracts/download-result.js +2 -0
  762. package/dist/storage/contracts/download-result.js.map +1 -0
  763. package/dist/storage/contracts/file-exists.input.d.ts +7 -0
  764. package/dist/storage/contracts/file-exists.input.d.ts.map +1 -0
  765. package/dist/storage/contracts/file-exists.input.js +6 -0
  766. package/dist/storage/contracts/file-exists.input.js.map +1 -0
  767. package/dist/storage/contracts/get-presigned-url.input.d.ts +26 -0
  768. package/dist/storage/contracts/get-presigned-url.input.d.ts.map +1 -0
  769. package/dist/storage/contracts/get-presigned-url.input.js +14 -0
  770. package/dist/storage/contracts/get-presigned-url.input.js.map +1 -0
  771. package/dist/storage/contracts/index.d.ts +6 -0
  772. package/dist/storage/contracts/index.d.ts.map +1 -0
  773. package/dist/storage/contracts/index.js +6 -0
  774. package/dist/storage/contracts/index.js.map +1 -0
  775. package/dist/storage/contracts/upload-file.input.d.ts +34 -0
  776. package/dist/storage/contracts/upload-file.input.d.ts.map +1 -0
  777. package/dist/storage/contracts/upload-file.input.js +10 -0
  778. package/dist/storage/contracts/upload-file.input.js.map +1 -0
  779. package/dist/storage/errors/disk-not-configured.error.d.ts +5 -0
  780. package/dist/storage/errors/disk-not-configured.error.d.ts.map +1 -0
  781. package/dist/storage/errors/disk-not-configured.error.js +7 -0
  782. package/dist/storage/errors/disk-not-configured.error.js.map +1 -0
  783. package/dist/storage/errors/file-not-found.error.d.ts +5 -0
  784. package/dist/storage/errors/file-not-found.error.d.ts.map +1 -0
  785. package/dist/storage/errors/file-not-found.error.js +8 -0
  786. package/dist/storage/errors/file-not-found.error.js.map +1 -0
  787. package/dist/storage/errors/file-too-large.error.d.ts +5 -0
  788. package/dist/storage/errors/file-too-large.error.d.ts.map +1 -0
  789. package/dist/storage/errors/file-too-large.error.js +11 -0
  790. package/dist/storage/errors/file-too-large.error.js.map +1 -0
  791. package/dist/storage/errors/index.d.ts +9 -0
  792. package/dist/storage/errors/index.d.ts.map +1 -0
  793. package/dist/storage/errors/index.js +9 -0
  794. package/dist/storage/errors/index.js.map +1 -0
  795. package/dist/storage/errors/invalid-disk.error.d.ts +5 -0
  796. package/dist/storage/errors/invalid-disk.error.d.ts.map +1 -0
  797. package/dist/storage/errors/invalid-disk.error.js +8 -0
  798. package/dist/storage/errors/invalid-disk.error.js.map +1 -0
  799. package/dist/storage/errors/invalid-file-type.error.d.ts +5 -0
  800. package/dist/storage/errors/invalid-file-type.error.d.ts.map +1 -0
  801. package/dist/storage/errors/invalid-file-type.error.js +10 -0
  802. package/dist/storage/errors/invalid-file-type.error.js.map +1 -0
  803. package/dist/storage/errors/presigned-url-invalid-expiry.error.d.ts +5 -0
  804. package/dist/storage/errors/presigned-url-invalid-expiry.error.d.ts.map +1 -0
  805. package/dist/storage/errors/presigned-url-invalid-expiry.error.js +12 -0
  806. package/dist/storage/errors/presigned-url-invalid-expiry.error.js.map +1 -0
  807. package/dist/storage/errors/storage-provider-not-supported.error.d.ts +5 -0
  808. package/dist/storage/errors/storage-provider-not-supported.error.d.ts.map +1 -0
  809. package/dist/storage/errors/storage-provider-not-supported.error.js +8 -0
  810. package/dist/storage/errors/storage-provider-not-supported.error.js.map +1 -0
  811. package/dist/storage/errors/storage-response-body-missing.error.d.ts +5 -0
  812. package/dist/storage/errors/storage-response-body-missing.error.d.ts.map +1 -0
  813. package/dist/storage/errors/storage-response-body-missing.error.js +8 -0
  814. package/dist/storage/errors/storage-response-body-missing.error.js.map +1 -0
  815. package/dist/storage/index.d.ts +15 -0
  816. package/dist/storage/index.d.ts.map +1 -0
  817. package/dist/storage/index.js +18 -0
  818. package/dist/storage/index.js.map +1 -0
  819. package/dist/storage/providers/s3-multipart-provider.interface.d.ts +194 -0
  820. package/dist/storage/providers/s3-multipart-provider.interface.d.ts.map +1 -0
  821. package/dist/storage/providers/s3-multipart-provider.interface.js +2 -0
  822. package/dist/storage/providers/s3-multipart-provider.interface.js.map +1 -0
  823. package/dist/storage/providers/s3-storage.provider.d.ts +77 -0
  824. package/dist/storage/providers/s3-storage.provider.d.ts.map +1 -0
  825. package/dist/storage/providers/s3-storage.provider.js +310 -0
  826. package/dist/storage/providers/s3-storage.provider.js.map +1 -0
  827. package/dist/storage/providers/storage-provider.interface.d.ts +58 -0
  828. package/dist/storage/providers/storage-provider.interface.d.ts.map +1 -0
  829. package/dist/storage/providers/storage-provider.interface.js +2 -0
  830. package/dist/storage/providers/storage-provider.interface.js.map +1 -0
  831. package/dist/storage/services/storage-manager.service.d.ts +48 -0
  832. package/dist/storage/services/storage-manager.service.d.ts.map +1 -0
  833. package/dist/storage/services/storage-manager.service.js +111 -0
  834. package/dist/storage/services/storage-manager.service.js.map +1 -0
  835. package/dist/storage/services/storage.service.d.ts +140 -0
  836. package/dist/storage/services/storage.service.d.ts.map +1 -0
  837. package/dist/storage/services/storage.service.js +232 -0
  838. package/dist/storage/services/storage.service.js.map +1 -0
  839. package/dist/storage/storage.module.d.ts +52 -0
  840. package/dist/storage/storage.module.d.ts.map +1 -0
  841. package/dist/storage/storage.module.js +81 -0
  842. package/dist/storage/storage.module.js.map +1 -0
  843. package/dist/storage/storage.tokens.d.ts +10 -0
  844. package/dist/storage/storage.tokens.d.ts.map +1 -0
  845. package/dist/storage/storage.tokens.js +10 -0
  846. package/dist/storage/storage.tokens.js.map +1 -0
  847. package/dist/storage/types.d.ts +31 -0
  848. package/dist/storage/types.d.ts.map +1 -0
  849. package/dist/storage/types.js +2 -0
  850. package/dist/storage/types.js.map +1 -0
  851. package/dist/types.d.ts +16 -0
  852. package/dist/types.d.ts.map +1 -0
  853. package/dist/types.js +2 -0
  854. package/dist/types.js.map +1 -0
  855. package/dist/worker/index.d.ts +2 -0
  856. package/dist/worker/index.d.ts.map +1 -0
  857. package/dist/worker/index.js +2 -0
  858. package/dist/worker/index.js.map +1 -0
  859. package/dist/worker/module-worker.d.ts +48 -0
  860. package/dist/worker/module-worker.d.ts.map +1 -0
  861. package/dist/worker/module-worker.js +88 -0
  862. package/dist/worker/module-worker.js.map +1 -0
  863. package/dist/worker/stratal-worker.d.ts +48 -0
  864. package/dist/worker/stratal-worker.d.ts.map +1 -0
  865. package/dist/worker/stratal-worker.js +88 -0
  866. package/dist/worker/stratal-worker.js.map +1 -0
  867. package/package.json +148 -0
@@ -0,0 +1,14 @@
1
+ import { ERROR_CODES } from '../../errors';
2
+ import { ApplicationError } from '../../infrastructure/error-handler';
3
+ /**
4
+ * ModuleAlreadyRegisteredError
5
+ *
6
+ * Thrown when attempting to register a module that is already registered.
7
+ * This prevents duplicate module registration which could cause unexpected behavior.
8
+ */
9
+ export class ModuleAlreadyRegisteredError extends ApplicationError {
10
+ constructor(moduleName) {
11
+ super('errors.moduleAlreadyRegistered', ERROR_CODES.SYSTEM.MODULE_ALREADY_REGISTERED, { moduleName });
12
+ }
13
+ }
14
+ //# sourceMappingURL=module-already-registered.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-already-registered.error.js","sourceRoot":"","sources":["../../../src/module/errors/module-already-registered.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,4BAA6B,SAAQ,gBAAgB;IAChE,YAAY,UAAkB;QAC5B,KAAK,CACH,gCAAgC,EAChC,WAAW,CAAC,MAAM,CAAC,yBAAyB,EAC5C,EAAE,UAAU,EAAE,CACf,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { ApplicationError } from '../../infrastructure/error-handler';
2
+ /**
3
+ * ModuleCircularDependencyError
4
+ *
5
+ * Thrown when a circular dependency is detected in the module dependency graph.
6
+ * This prevents infinite loops during module initialization.
7
+ */
8
+ export declare class ModuleCircularDependencyError extends ApplicationError {
9
+ constructor(dependencyPath: string[]);
10
+ }
11
+ //# sourceMappingURL=module-circular-dependency.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-circular-dependency.error.d.ts","sourceRoot":"","sources":["../../../src/module/errors/module-circular-dependency.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;gBACrD,cAAc,EAAE,MAAM,EAAE;CAQrC"}
@@ -0,0 +1,15 @@
1
+ import { ERROR_CODES } from '../../errors';
2
+ import { ApplicationError } from '../../infrastructure/error-handler';
3
+ /**
4
+ * ModuleCircularDependencyError
5
+ *
6
+ * Thrown when a circular dependency is detected in the module dependency graph.
7
+ * This prevents infinite loops during module initialization.
8
+ */
9
+ export class ModuleCircularDependencyError extends ApplicationError {
10
+ constructor(dependencyPath) {
11
+ const cycle = dependencyPath.join(' -> ');
12
+ super('errors.moduleCircularDependency', ERROR_CODES.SYSTEM.MODULE_CIRCULAR_DEPENDENCY, { cycle });
13
+ }
14
+ }
15
+ //# sourceMappingURL=module-circular-dependency.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-circular-dependency.error.js","sourceRoot":"","sources":["../../../src/module/errors/module-circular-dependency.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,6BAA8B,SAAQ,gBAAgB;IACjE,YAAY,cAAwB;QAClC,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzC,KAAK,CACH,iCAAiC,EACjC,WAAW,CAAC,MAAM,CAAC,0BAA0B,EAC7C,EAAE,KAAK,EAAE,CACV,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { ApplicationError } from '../../infrastructure/error-handler';
2
+ /**
3
+ * ModuleDependencyNotFoundError
4
+ *
5
+ * Thrown when a module declares a dependency on another module that hasn't been registered.
6
+ * This indicates a missing module or incorrect dependency declaration.
7
+ */
8
+ export declare class ModuleDependencyNotFoundError extends ApplicationError {
9
+ constructor(dependency: string, moduleName?: string);
10
+ }
11
+ //# sourceMappingURL=module-dependency-not-found.error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-dependency-not-found.error.d.ts","sourceRoot":"","sources":["../../../src/module/errors/module-dependency-not-found.error.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAErE;;;;;GAKG;AACH,qBAAa,6BAA8B,SAAQ,gBAAgB;gBACrD,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAOpD"}
@@ -0,0 +1,14 @@
1
+ import { ERROR_CODES } from '../../errors';
2
+ import { ApplicationError } from '../../infrastructure/error-handler';
3
+ /**
4
+ * ModuleDependencyNotFoundError
5
+ *
6
+ * Thrown when a module declares a dependency on another module that hasn't been registered.
7
+ * This indicates a missing module or incorrect dependency declaration.
8
+ */
9
+ export class ModuleDependencyNotFoundError extends ApplicationError {
10
+ constructor(dependency, moduleName) {
11
+ super('errors.moduleDependencyNotFound', ERROR_CODES.SYSTEM.MODULE_DEPENDENCY_NOT_FOUND, { dependency, moduleName });
12
+ }
13
+ }
14
+ //# sourceMappingURL=module-dependency-not-found.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-dependency-not-found.error.js","sourceRoot":"","sources":["../../../src/module/errors/module-dependency-not-found.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,6BAA8B,SAAQ,gBAAgB;IACjE,YAAY,UAAkB,EAAE,UAAmB;QACjD,KAAK,CACH,iCAAiC,EACjC,WAAW,CAAC,MAAM,CAAC,2BAA2B,EAC9C,EAAE,UAAU,EAAE,UAAU,EAAE,CAC3B,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export * from './module.decorator';
2
+ export * from './module-registry';
3
+ export * from './types';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AACA,cAAc,oBAAoB,CAAA;AAGlC,cAAc,mBAAmB,CAAA;AAGjC,cAAc,SAAS,CAAA"}
@@ -0,0 +1,7 @@
1
+ // Module decorator and utilities
2
+ export * from './module.decorator';
3
+ // Module registry
4
+ export * from './module-registry';
5
+ // Types
6
+ export * from './types';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,cAAc,oBAAoB,CAAA;AAElC,kBAAkB;AAClB,cAAc,mBAAmB,CAAA;AAEjC,QAAQ;AACR,cAAc,SAAS,CAAA"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Module Registry
3
+ *
4
+ * Manages module lifecycle for the @Module decorator pattern.
5
+ * Simplified for tsyringe's flat container model:
6
+ * - Imports are traversed for registration (organization only)
7
+ * - Modules registered in declaration order
8
+ * - Lifecycle hooks: onInitialize, onShutdown
9
+ */
10
+ import type { Container } from '../di/container';
11
+ import type { LoggerService } from '../logger';
12
+ import { type MiddlewareConfigEntry } from '../middleware';
13
+ import type { Constructor } from '../types';
14
+ import type { DynamicModule, ModuleClass } from './types';
15
+ /**
16
+ * ModuleRegistry - manages module lifecycle
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const registry = new ModuleRegistry(container, logger)
21
+ * registry.register(AppModule) // Traverses imports recursively
22
+ * await registry.initialize()
23
+ * // ... application running ...
24
+ * await registry.shutdown()
25
+ * ```
26
+ */
27
+ export declare class ModuleRegistry {
28
+ private readonly container;
29
+ private readonly logger;
30
+ private modules;
31
+ private registeredClasses;
32
+ private initialized;
33
+ private allControllers;
34
+ private allConsumers;
35
+ private allJobs;
36
+ private allMiddlewareConfigs;
37
+ constructor(container: Container, logger: LoggerService);
38
+ /**
39
+ * Register a module (static or dynamic)
40
+ *
41
+ * @param moduleOrDynamic - Module class decorated with @Module or DynamicModule from configure()
42
+ */
43
+ register(moduleOrDynamic: ModuleClass | DynamicModule): void;
44
+ /**
45
+ * Register multiple modules in order
46
+ */
47
+ registerAll(modules: (ModuleClass | DynamicModule)[]): void;
48
+ /**
49
+ * Initialize all modules (call configure and onInitialize hooks)
50
+ */
51
+ initialize(): Promise<void>;
52
+ /**
53
+ * Get all controllers registered from all modules
54
+ */
55
+ getAllControllers(): Constructor[];
56
+ /**
57
+ * Get all consumers registered from all modules
58
+ */
59
+ getAllConsumers(): Constructor[];
60
+ /**
61
+ * Get all jobs registered from all modules
62
+ */
63
+ getAllJobs(): Constructor[];
64
+ /**
65
+ * Get all middleware configurations from all modules
66
+ */
67
+ getAllMiddlewareConfigs(): MiddlewareConfigEntry[];
68
+ /**
69
+ * Shutdown all modules (call onShutdown hooks in reverse order)
70
+ */
71
+ shutdown(): Promise<void>;
72
+ /**
73
+ * Type guard for MiddlewareConfigurable
74
+ */
75
+ private hasMiddlewareConfigurable;
76
+ /**
77
+ * Type guard for OnInitialize
78
+ */
79
+ private hasOnInitialize;
80
+ /**
81
+ * Type guard for OnShutdown
82
+ */
83
+ private hasOnShutdown;
84
+ /**
85
+ * Resolve module class and options from static or dynamic module
86
+ *
87
+ * For DynamicModules, merges the decorator metadata (consumers, controllers, jobs)
88
+ * with the DynamicModule options (providers, imports). This ensures modules using
89
+ * forRoot/forRootAsync patterns still have their decorator-defined consumers registered.
90
+ */
91
+ private resolveModule;
92
+ /**
93
+ * Type guard for DynamicModule
94
+ */
95
+ private isDynamicModule;
96
+ /**
97
+ * Register a single provider in the container
98
+ */
99
+ private registerProvider;
100
+ }
101
+ //# sourceMappingURL=module-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EAMZ,MAAM,SAAS,CAAA;AAQhB;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IAYvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,iBAAiB,CAAyB;IAClD,OAAO,CAAC,WAAW,CAAQ;IAG3B,OAAO,CAAC,cAAc,CAAoB;IAC1C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,oBAAoB,CAA8B;gBAGvC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,aAAa;IAGxC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,EAAE,WAAW,GAAG,aAAa,GAAG,IAAI;IAsD5D;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,CAAC,WAAW,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI;IAM3D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,iBAAiB,IAAI,WAAW,EAAE;IAIlC;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,UAAU,IAAI,WAAW,EAAE;IAI3B;;OAEG;IACH,uBAAuB,IAAI,qBAAqB,EAAE;IAIlD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA0BzB"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Module Registry
3
+ *
4
+ * Manages module lifecycle for the @Module decorator pattern.
5
+ * Simplified for tsyringe's flat container model:
6
+ * - Imports are traversed for registration (organization only)
7
+ * - Modules registered in declaration order
8
+ * - Lifecycle hooks: onInitialize, onShutdown
9
+ */
10
+ import { instancePerContainerCachingFactory } from 'tsyringe';
11
+ import { Scope } from '../di/types';
12
+ import { createMiddlewareConsumer, } from '../middleware';
13
+ import { getModuleOptions } from './module.decorator';
14
+ /**
15
+ * ModuleRegistry - manages module lifecycle
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const registry = new ModuleRegistry(container, logger)
20
+ * registry.register(AppModule) // Traverses imports recursively
21
+ * await registry.initialize()
22
+ * // ... application running ...
23
+ * await registry.shutdown()
24
+ * ```
25
+ */
26
+ export class ModuleRegistry {
27
+ container;
28
+ logger;
29
+ modules = [];
30
+ registeredClasses = new Set();
31
+ initialized = false;
32
+ // Collected items from all modules for Application to use
33
+ allControllers = [];
34
+ allConsumers = [];
35
+ allJobs = [];
36
+ allMiddlewareConfigs = [];
37
+ constructor(container, logger) {
38
+ this.container = container;
39
+ this.logger = logger;
40
+ }
41
+ /**
42
+ * Register a module (static or dynamic)
43
+ *
44
+ * @param moduleOrDynamic - Module class decorated with @Module or DynamicModule from configure()
45
+ */
46
+ register(moduleOrDynamic) {
47
+ const { moduleClass, options } = this.resolveModule(moduleOrDynamic);
48
+ const isDynamic = this.isDynamicModule(moduleOrDynamic);
49
+ // Check for duplicate registration
50
+ if (this.registeredClasses.has(moduleClass)) {
51
+ // For DynamicModules: Still register the additional providers
52
+ // This allows withRoot() to add configuration even if base module is registered
53
+ if (isDynamic) {
54
+ this.logger.debug(`Module ${moduleClass.name} already registered, registering DynamicModule providers`);
55
+ for (const provider of options.providers ?? []) {
56
+ this.registerProvider(provider);
57
+ }
58
+ }
59
+ else {
60
+ this.logger.debug(`Module ${moduleClass.name} already registered, skipping`);
61
+ }
62
+ return;
63
+ }
64
+ this.registeredClasses.add(moduleClass);
65
+ this.logger.info(`Registering module: ${moduleClass.name}`);
66
+ // First, register imported modules recursively
67
+ for (const ImportedModule of options.imports ?? []) {
68
+ this.register(ImportedModule);
69
+ }
70
+ // Register providers in container
71
+ for (const provider of options.providers ?? []) {
72
+ this.registerProvider(provider);
73
+ }
74
+ // Register controllers and collect them
75
+ for (const controller of options.controllers ?? []) {
76
+ this.container.register(controller);
77
+ this.allControllers.push(controller);
78
+ }
79
+ // Register consumers as singletons by default and collect them
80
+ for (const consumer of options.consumers ?? []) {
81
+ this.container.register(consumer, Scope.Singleton);
82
+ this.allConsumers.push(consumer);
83
+ this.logger.info(`Collected consumer: ${consumer.name}`, { queueCount: this.allConsumers.length });
84
+ }
85
+ // Register jobs as singletons by default and collect them
86
+ for (const job of options.jobs ?? []) {
87
+ this.container.register(job, Scope.Singleton);
88
+ this.allJobs.push(job);
89
+ }
90
+ this.modules.push({ moduleClass, options, instance: null });
91
+ }
92
+ /**
93
+ * Register multiple modules in order
94
+ */
95
+ registerAll(modules) {
96
+ for (const module of modules) {
97
+ this.register(module);
98
+ }
99
+ }
100
+ /**
101
+ * Initialize all modules (call configure and onInitialize hooks)
102
+ */
103
+ async initialize() {
104
+ if (this.initialized)
105
+ return;
106
+ this.logger.info('Initializing modules...');
107
+ const context = {
108
+ container: this.container,
109
+ logger: this.logger,
110
+ };
111
+ for (const registered of this.modules) {
112
+ // Instantiate module class
113
+ const instance = new registered.moduleClass();
114
+ registered.instance = instance;
115
+ // Call configure() for middleware configuration if implemented
116
+ if (this.hasMiddlewareConfigurable(instance)) {
117
+ this.logger.debug(`Configuring middleware for: ${registered.moduleClass.name}`);
118
+ const consumer = createMiddlewareConsumer();
119
+ instance.configure(consumer);
120
+ const entries = consumer.getEntries();
121
+ this.allMiddlewareConfigs.push(...entries);
122
+ this.logger.debug(`Collected ${entries.length} middleware config(s) from ${registered.moduleClass.name}`);
123
+ }
124
+ // Call onInitialize if implemented
125
+ if (this.hasOnInitialize(instance)) {
126
+ this.logger.info(`Initializing: ${registered.moduleClass.name}`);
127
+ await instance.onInitialize(context);
128
+ }
129
+ }
130
+ this.initialized = true;
131
+ this.logger.info('All modules initialized');
132
+ }
133
+ /**
134
+ * Get all controllers registered from all modules
135
+ */
136
+ getAllControllers() {
137
+ return this.allControllers;
138
+ }
139
+ /**
140
+ * Get all consumers registered from all modules
141
+ */
142
+ getAllConsumers() {
143
+ return this.allConsumers;
144
+ }
145
+ /**
146
+ * Get all jobs registered from all modules
147
+ */
148
+ getAllJobs() {
149
+ return this.allJobs;
150
+ }
151
+ /**
152
+ * Get all middleware configurations from all modules
153
+ */
154
+ getAllMiddlewareConfigs() {
155
+ return this.allMiddlewareConfigs;
156
+ }
157
+ /**
158
+ * Shutdown all modules (call onShutdown hooks in reverse order)
159
+ */
160
+ async shutdown() {
161
+ this.logger.info('Shutting down modules...');
162
+ const context = {
163
+ container: this.container,
164
+ logger: this.logger,
165
+ };
166
+ // Reverse order for shutdown
167
+ const reversed = [...this.modules].reverse();
168
+ for (const { moduleClass, instance } of reversed) {
169
+ if (instance && this.hasOnShutdown(instance)) {
170
+ try {
171
+ await instance.onShutdown(context);
172
+ }
173
+ catch (error) {
174
+ this.logger.error(`Error shutting down ${moduleClass.name}:`, error);
175
+ }
176
+ }
177
+ }
178
+ this.logger.info('All modules shut down');
179
+ }
180
+ /**
181
+ * Type guard for MiddlewareConfigurable
182
+ */
183
+ hasMiddlewareConfigurable(instance) {
184
+ return (typeof instance === 'object' &&
185
+ instance !== null &&
186
+ 'configure' in instance &&
187
+ typeof instance.configure === 'function');
188
+ }
189
+ /**
190
+ * Type guard for OnInitialize
191
+ */
192
+ hasOnInitialize(instance) {
193
+ return (typeof instance === 'object' &&
194
+ instance !== null &&
195
+ 'onInitialize' in instance &&
196
+ typeof instance.onInitialize === 'function');
197
+ }
198
+ /**
199
+ * Type guard for OnShutdown
200
+ */
201
+ hasOnShutdown(instance) {
202
+ return (typeof instance === 'object' &&
203
+ instance !== null &&
204
+ 'onShutdown' in instance &&
205
+ typeof instance.onShutdown === 'function');
206
+ }
207
+ /**
208
+ * Resolve module class and options from static or dynamic module
209
+ *
210
+ * For DynamicModules, merges the decorator metadata (consumers, controllers, jobs)
211
+ * with the DynamicModule options (providers, imports). This ensures modules using
212
+ * forRoot/forRootAsync patterns still have their decorator-defined consumers registered.
213
+ */
214
+ resolveModule(moduleOrDynamic) {
215
+ // DynamicModule (from forRoot/forRootAsync) - has module property
216
+ if (this.isDynamicModule(moduleOrDynamic)) {
217
+ const { module: moduleClass, ...dynamicRest } = moduleOrDynamic;
218
+ // Get decorator options and merge with dynamic options
219
+ // This ensures consumers/controllers/jobs from @Module decorator are included
220
+ const decoratorOptions = getModuleOptions(moduleClass) ?? {};
221
+ const mergedOptions = {
222
+ ...decoratorOptions,
223
+ ...dynamicRest,
224
+ // Merge arrays: decorator providers first, then dynamic providers
225
+ providers: [...(decoratorOptions.providers ?? []), ...(dynamicRest.providers ?? [])],
226
+ imports: [...(decoratorOptions.imports ?? [])],
227
+ };
228
+ return { moduleClass: moduleClass, options: mergedOptions };
229
+ }
230
+ // Static module (decorated with @Module)
231
+ const moduleClass = moduleOrDynamic;
232
+ const options = getModuleOptions(moduleClass) ?? {};
233
+ return { moduleClass, options };
234
+ }
235
+ /**
236
+ * Type guard for DynamicModule
237
+ */
238
+ isDynamicModule(value) {
239
+ return (typeof value === 'object' &&
240
+ value !== null &&
241
+ 'module' in value && // Required property for dynamic modules
242
+ typeof value.module === 'function');
243
+ }
244
+ /**
245
+ * Register a single provider in the container
246
+ */
247
+ registerProvider(provider) {
248
+ if (typeof provider === 'function') {
249
+ // Class-only provider - transient by default
250
+ this.container.register(provider);
251
+ }
252
+ else if ('useClass' in provider) {
253
+ // ClassProvider with optional scope
254
+ this.container.register(provider.provide, provider.useClass, provider.scope);
255
+ }
256
+ else if ('useValue' in provider) {
257
+ // ValueProvider - no scope needed (values are inherently singleton)
258
+ this.container.registerValue(provider.provide, provider.useValue);
259
+ }
260
+ else if ('useFactory' in provider) {
261
+ // FactoryProvider - use instancePerContainerCachingFactory to:
262
+ // 1. Get the actual container at resolution time (global vs request)
263
+ // 2. Cache result per container
264
+ const { provide, useFactory, inject = [] } = provider;
265
+ this.container.getTsyringeContainer().register(provide, {
266
+ useFactory: instancePerContainerCachingFactory((dependencyContainer) => {
267
+ const deps = inject.map((token) => dependencyContainer.resolve(token));
268
+ return useFactory(...deps);
269
+ })
270
+ });
271
+ }
272
+ else if ('useExisting' in provider) {
273
+ // ExistingProvider - alias to another token
274
+ this.container.registerExisting(provider.provide, provider.useExisting);
275
+ }
276
+ }
277
+ }
278
+ //# sourceMappingURL=module-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../src/module/module-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Module Decorator
3
+ *
4
+ * NestJS-style @Module decorator for defining modules with providers, controllers, etc.
5
+ * Encapsulates tsyringe's @registry decorator for auto-registration.
6
+ */
7
+ import type { Constructor } from '../types';
8
+ import type { ModuleOptions } from './types';
9
+ export declare const MODULE_OPTIONS_KEY: unique symbol;
10
+ /**
11
+ * @Module decorator - defines a module with imports, providers, controllers, consumers, jobs
12
+ *
13
+ * Uses tsyringe's @registry internally to auto-register providers when module is imported.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * @Module({
18
+ * imports: [OtherModule],
19
+ * providers: [MyService, MyRepository],
20
+ * controllers: [MyController],
21
+ * })
22
+ * export class MyModule {}
23
+ * ```
24
+ */
25
+ export declare function Module(options: ModuleOptions): <TFunction extends abstract new (...args: never[]) => unknown>(target: TFunction) => TFunction;
26
+ /**
27
+ * Get module options from decorated class
28
+ */
29
+ export declare function getModuleOptions(target: Constructor): ModuleOptions | undefined;
30
+ /**
31
+ * Check if a class is decorated with @Module
32
+ */
33
+ export declare function isModuleClass(target: unknown): target is Constructor;
34
+ //# sourceMappingURL=module.decorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.decorator.d.ts","sourceRoot":"","sources":["../../src/module/module.decorator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,kBAAkB,eAA2B,CAAA;AAU1D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,IACnC,SAAS,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,EAAE,QAAQ,SAAS,KAAG,SAAS,CAcpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAE/E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,WAAW,CAKpE"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Module Decorator
3
+ *
4
+ * NestJS-style @Module decorator for defining modules with providers, controllers, etc.
5
+ * Encapsulates tsyringe's @registry decorator for auto-registration.
6
+ */
7
+ import { instancePerContainerCachingFactory, registry } from 'tsyringe';
8
+ import { InvalidModuleProviderError } from './errors';
9
+ export const MODULE_OPTIONS_KEY = Symbol('module:options');
10
+ /**
11
+ * @Module decorator - defines a module with imports, providers, controllers, consumers, jobs
12
+ *
13
+ * Uses tsyringe's @registry internally to auto-register providers when module is imported.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * @Module({
18
+ * imports: [OtherModule],
19
+ * providers: [MyService, MyRepository],
20
+ * controllers: [MyController],
21
+ * })
22
+ * export class MyModule {}
23
+ * ```
24
+ */
25
+ export function Module(options) {
26
+ return (target) => {
27
+ // Store module options for runtime access
28
+ Reflect.defineMetadata(MODULE_OPTIONS_KEY, options, target);
29
+ // Build tsyringe registry entries from providers
30
+ const registryEntries = buildRegistryEntries(options.providers ?? []);
31
+ // Apply tsyringe @registry decorator (encapsulated)
32
+ if (registryEntries.length > 0) {
33
+ registry(registryEntries)(target);
34
+ }
35
+ return target;
36
+ };
37
+ }
38
+ /**
39
+ * Get module options from decorated class
40
+ */
41
+ export function getModuleOptions(target) {
42
+ return Reflect.getMetadata(MODULE_OPTIONS_KEY, target);
43
+ }
44
+ /**
45
+ * Check if a class is decorated with @Module
46
+ */
47
+ export function isModuleClass(target) {
48
+ return (typeof target === 'function' &&
49
+ Reflect.hasMetadata(MODULE_OPTIONS_KEY, target));
50
+ }
51
+ /**
52
+ * Convert our Provider types to tsyringe registry format
53
+ *
54
+ * Maps provider scope to tsyringe's lifecycle option.
55
+ * Scope enum values map directly to Lifecycle enum values.
56
+ */
57
+ function buildRegistryEntries(providers) {
58
+ return providers.map((provider) => {
59
+ // Class-only provider - transient by default
60
+ if (typeof provider === 'function') {
61
+ return {
62
+ token: provider,
63
+ useClass: provider,
64
+ };
65
+ }
66
+ // ClassProvider with optional scope
67
+ if ('useClass' in provider) {
68
+ return {
69
+ token: provider.provide,
70
+ useClass: provider.useClass,
71
+ options: provider.scope !== undefined
72
+ ? { lifecycle: provider.scope }
73
+ : undefined,
74
+ };
75
+ }
76
+ // ValueProvider - no scope needed (values are inherently singleton)
77
+ if ('useValue' in provider) {
78
+ return {
79
+ token: provider.provide,
80
+ useValue: provider.useValue,
81
+ };
82
+ }
83
+ // FactoryProvider - use instancePerContainerCachingFactory to:
84
+ // 1. Get the actual container at resolution time (global vs request)
85
+ // 2. Cache result per container
86
+ if ('useFactory' in provider) {
87
+ const { provide, useFactory, inject = [] } = provider;
88
+ return {
89
+ token: provide,
90
+ useFactory: instancePerContainerCachingFactory((dependencyContainer) => {
91
+ const deps = inject.map((token) => dependencyContainer.resolve(token));
92
+ return useFactory(...deps);
93
+ }),
94
+ };
95
+ }
96
+ // ExistingProvider - alias to another token (uses tsyringe's useToken)
97
+ if ('useExisting' in provider) {
98
+ return {
99
+ token: provider.provide,
100
+ useToken: provider.useExisting,
101
+ };
102
+ }
103
+ // Fallback (should not reach here with proper types)
104
+ throw new InvalidModuleProviderError(provider);
105
+ });
106
+ }
107
+ //# sourceMappingURL=module.decorator.js.map