stratal 0.0.21 → 0.0.23

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 (296) hide show
  1. package/README.md +2 -2
  2. package/dist/bin/cloudflare-workers-loader.mjs +80 -7
  3. package/dist/bin/cloudflare-workers-loader.mjs.map +1 -1
  4. package/dist/bin/quarry.mjs +84 -160
  5. package/dist/bin/quarry.mjs.map +1 -1
  6. package/dist/cache/index.d.mts +8 -46
  7. package/dist/cache/index.d.mts.map +1 -1
  8. package/dist/cache/index.mjs +134 -97
  9. package/dist/cache/index.mjs.map +1 -1
  10. package/dist/{cache.service-DsnKuNyO.d.mts → cache.service-uElmBtdS.d.mts} +29 -39
  11. package/dist/cache.service-uElmBtdS.d.mts.map +1 -0
  12. package/dist/{command-BgSlsS4M.mjs → command-BvmUAPPQ.mjs} +15 -4
  13. package/dist/command-BvmUAPPQ.mjs.map +1 -0
  14. package/dist/{command-Cmmf0oHX.d.mts → command-CPhFHjG3.d.mts} +3 -2
  15. package/dist/command-CPhFHjG3.d.mts.map +1 -0
  16. package/dist/command-not-found.error-ONAZ2Bpk.mjs +14 -0
  17. package/dist/command-not-found.error-ONAZ2Bpk.mjs.map +1 -0
  18. package/dist/config/index.d.mts +24 -11
  19. package/dist/config/index.d.mts.map +1 -1
  20. package/dist/config/index.mjs +32 -57
  21. package/dist/config/index.mjs.map +1 -1
  22. package/dist/{consumer-registry-B7yUNh0q.d.mts → consumer-registry-D3iMTSdy.d.mts} +54 -22
  23. package/dist/consumer-registry-D3iMTSdy.d.mts.map +1 -0
  24. package/dist/container-storage-BmOJ4_Na.mjs +52 -0
  25. package/dist/container-storage-BmOJ4_Na.mjs.map +1 -0
  26. package/dist/{controller.decorator-B9vwn0zK.mjs → controller.decorator-C5UVeJS3.mjs} +8 -8
  27. package/dist/controller.decorator-C5UVeJS3.mjs.map +1 -0
  28. package/dist/cron/index.d.mts +103 -7
  29. package/dist/cron/index.d.mts.map +1 -1
  30. package/dist/cron/index.mjs +2 -2
  31. package/dist/cron-job-NesZRk8F.d.mts +58 -0
  32. package/dist/cron-job-NesZRk8F.d.mts.map +1 -0
  33. package/dist/{cron-manager-DQSK8uoV.mjs → cron.module-Bgzq5hiT.mjs} +47 -17
  34. package/dist/cron.module-Bgzq5hiT.mjs.map +1 -0
  35. package/dist/decorate-CuAoSZvs.mjs +16 -0
  36. package/dist/deep-merge-ByiAOZ3r.mjs +18 -0
  37. package/dist/deep-merge-ByiAOZ3r.mjs.map +1 -0
  38. package/dist/di/index.d.mts +2 -2
  39. package/dist/di/index.mjs +4 -3
  40. package/dist/di-DseMn-z9.mjs +524 -0
  41. package/dist/di-DseMn-z9.mjs.map +1 -0
  42. package/dist/email/index.d.mts +40 -122
  43. package/dist/email/index.d.mts.map +1 -1
  44. package/dist/email/index.mjs +446 -131
  45. package/dist/email/index.mjs.map +1 -1
  46. package/dist/en-CDZBMcc1.mjs +202 -0
  47. package/dist/en-CDZBMcc1.mjs.map +1 -0
  48. package/dist/{env-D1rcZ8_r.d.mts → env-ug22bJj7.d.mts} +1 -1
  49. package/dist/env-ug22bJj7.d.mts.map +1 -0
  50. package/dist/errors/index.d.mts +2 -2
  51. package/dist/errors/index.mjs +4 -2
  52. package/dist/errors-mXYxG0XB.mjs +333 -0
  53. package/dist/errors-mXYxG0XB.mjs.map +1 -0
  54. package/dist/events/index.d.mts +14 -3
  55. package/dist/events/index.d.mts.map +1 -1
  56. package/dist/events/index.mjs +2 -2
  57. package/dist/{events-CzCV8jI8.mjs → events-BXJGZjpG.mjs} +23 -13
  58. package/dist/events-BXJGZjpG.mjs.map +1 -0
  59. package/dist/exception-context-kEoMFwze.mjs +429 -0
  60. package/dist/exception-context-kEoMFwze.mjs.map +1 -0
  61. package/dist/{gateway-context-CXmXtaUP.mjs → gateway-context-TMu_AlJt.mjs} +38 -31
  62. package/dist/gateway-context-TMu_AlJt.mjs.map +1 -0
  63. package/dist/guards/index.d.mts +3 -3
  64. package/dist/guards/index.d.mts.map +1 -1
  65. package/dist/guards/index.mjs +1 -1
  66. package/dist/{guards-DU1_J9YA.mjs → guards-DALPXy3_.mjs} +6 -5
  67. package/dist/guards-DALPXy3_.mjs.map +1 -0
  68. package/dist/hono-app-CvV3hOfT.mjs +161 -0
  69. package/dist/hono-app-CvV3hOfT.mjs.map +1 -0
  70. package/dist/{http-method.decorator-BrgHMdLQ.mjs → http-method.decorator-ByWZb9DO.mjs} +7 -6
  71. package/dist/http-method.decorator-ByWZb9DO.mjs.map +1 -0
  72. package/dist/i18n/index.d.mts +238 -3
  73. package/dist/i18n/index.d.mts.map +1 -0
  74. package/dist/i18n/index.mjs +39 -3
  75. package/dist/i18n/index.mjs.map +1 -0
  76. package/dist/i18n/messages/en/index.d.mts +2 -2
  77. package/dist/i18n/messages/en/index.mjs +2 -2
  78. package/dist/i18n/utils/index.d.mts +4 -26
  79. package/dist/i18n/utils/index.d.mts.map +1 -1
  80. package/dist/i18n/utils/index.mjs +2 -2
  81. package/dist/i18n/validation/index.d.mts +3 -2
  82. package/dist/i18n/validation/index.mjs +4 -2
  83. package/dist/i18n.module-DRQAZoSZ.mjs +222 -0
  84. package/dist/i18n.module-DRQAZoSZ.mjs.map +1 -0
  85. package/dist/i18n.tokens-CZ_v8oyS.mjs +19 -0
  86. package/dist/i18n.tokens-CZ_v8oyS.mjs.map +1 -0
  87. package/dist/{index-7-hU3GTV.d.mts → index-0ItCjaqw.d.mts} +1 -1
  88. package/dist/index-0ItCjaqw.d.mts.map +1 -0
  89. package/dist/index-B5JBRcWD.d.mts +544 -0
  90. package/dist/index-B5JBRcWD.d.mts.map +1 -0
  91. package/dist/index-BUt92sAE.d.mts +124 -0
  92. package/dist/index-BUt92sAE.d.mts.map +1 -0
  93. package/dist/{index-ByOyTmqf.d.mts → index-B_JoEl3V.d.mts} +751 -2229
  94. package/dist/index-B_JoEl3V.d.mts.map +1 -0
  95. package/dist/index-DtBNIFuP.d.mts +42 -0
  96. package/dist/index-DtBNIFuP.d.mts.map +1 -0
  97. package/dist/{index-C1KvMncZ.d.mts → index-HgOLNruQ.d.mts} +3 -108
  98. package/dist/index-HgOLNruQ.d.mts.map +1 -0
  99. package/dist/index.d.mts +6 -43
  100. package/dist/index.mjs +3 -2
  101. package/dist/{is-command-C6a7WTPw.mjs → is-command-CEPO9n8c.mjs} +2 -2
  102. package/dist/{is-command-C6a7WTPw.mjs.map → is-command-CEPO9n8c.mjs.map} +1 -1
  103. package/dist/{is-seeder-CebjZCDn.mjs → is-seeder-Gvh_AM71.mjs} +1 -1
  104. package/dist/{is-seeder-CebjZCDn.mjs.map → is-seeder-Gvh_AM71.mjs.map} +1 -1
  105. package/dist/lazy-module-loader-Ib383jH_.d.mts +60 -0
  106. package/dist/lazy-module-loader-Ib383jH_.d.mts.map +1 -0
  107. package/dist/locale-path.service-D-dHiIPc.mjs +165 -0
  108. package/dist/locale-path.service-D-dHiIPc.mjs.map +1 -0
  109. package/dist/locale-url-nZrZxqJP.mjs +44 -0
  110. package/dist/locale-url-nZrZxqJP.mjs.map +1 -0
  111. package/dist/locale-url.service-C2EWmGdq.mjs +41 -0
  112. package/dist/locale-url.service-C2EWmGdq.mjs.map +1 -0
  113. package/dist/logger/index.d.mts +2 -2
  114. package/dist/logger/index.mjs +170 -2
  115. package/dist/logger/index.mjs.map +1 -0
  116. package/dist/macroable/index.d.mts +2 -2
  117. package/dist/macroable/index.mjs +1 -1
  118. package/dist/{macroable-BmufBshB.mjs → macroable-cvDTFZ_A.mjs} +1 -1
  119. package/dist/{macroable-BmufBshB.mjs.map → macroable-cvDTFZ_A.mjs.map} +1 -1
  120. package/dist/metadata-DzzprcID.mjs +39 -0
  121. package/dist/metadata-DzzprcID.mjs.map +1 -0
  122. package/dist/module/index.d.mts +7 -24
  123. package/dist/module/index.d.mts.map +1 -1
  124. package/dist/module/index.mjs +10 -2
  125. package/dist/module/index.mjs.map +1 -0
  126. package/dist/module-registry-Dm-pqHd3.mjs +554 -0
  127. package/dist/module-registry-Dm-pqHd3.mjs.map +1 -0
  128. package/dist/module.decorator-CYHY6pG5.mjs +19 -0
  129. package/dist/module.decorator-CYHY6pG5.mjs.map +1 -0
  130. package/dist/openapi/index.d.mts +44 -8
  131. package/dist/openapi/index.d.mts.map +1 -1
  132. package/dist/openapi/index.mjs +3 -3
  133. package/dist/openapi-CstuTM8S.mjs +309 -0
  134. package/dist/openapi-CstuTM8S.mjs.map +1 -0
  135. package/dist/{openapi-tools.service-Zs-Ewv7F.mjs → openapi-tools.service-BC5EC3R3.mjs} +8 -2
  136. package/dist/openapi-tools.service-BC5EC3R3.mjs.map +1 -0
  137. package/dist/{openapi.service-Bt9bCIrd.d.mts → openapi.service-YhTiJ1bO.d.mts} +3 -3
  138. package/dist/openapi.service-YhTiJ1bO.d.mts.map +1 -0
  139. package/dist/quarry/index.d.mts +14 -163
  140. package/dist/quarry/index.d.mts.map +1 -1
  141. package/dist/quarry/index.mjs +6 -5
  142. package/dist/quarry/runner.d.mts +184 -0
  143. package/dist/quarry/runner.d.mts.map +1 -0
  144. package/dist/quarry/runner.mjs +945 -0
  145. package/dist/quarry/runner.mjs.map +1 -0
  146. package/dist/quarry-registry-CXg0RFXq.d.mts +69 -0
  147. package/dist/quarry-registry-CXg0RFXq.d.mts.map +1 -0
  148. package/dist/quarry.module-BuRPGMDm.mjs +312 -0
  149. package/dist/quarry.module-BuRPGMDm.mjs.map +1 -0
  150. package/dist/queue/index.d.mts +3 -3
  151. package/dist/queue/index.mjs +57 -48
  152. package/dist/queue/index.mjs.map +1 -1
  153. package/dist/queue.module-nddvxzCB.mjs +613 -0
  154. package/dist/queue.module-nddvxzCB.mjs.map +1 -0
  155. package/dist/queue.tokens-DjHnFmre.mjs +11 -0
  156. package/dist/queue.tokens-DjHnFmre.mjs.map +1 -0
  157. package/dist/{r2-storage.provider-DuonKeYm.mjs → r2-storage.provider-DCxQt9dD.mjs} +6 -6
  158. package/dist/r2-storage.provider-DCxQt9dD.mjs.map +1 -0
  159. package/dist/{rate-limit.decorator-6qzNcSOt.mjs → rate-limit.decorator-BPAie_p3.mjs} +6 -11
  160. package/dist/rate-limit.decorator-BPAie_p3.mjs.map +1 -0
  161. package/dist/rate-limiter/index.d.mts +11 -50
  162. package/dist/rate-limiter/index.d.mts.map +1 -1
  163. package/dist/rate-limiter/index.mjs +33 -42
  164. package/dist/rate-limiter/index.mjs.map +1 -1
  165. package/dist/route-name-DGoBOfPg.mjs +171 -0
  166. package/dist/route-name-DGoBOfPg.mjs.map +1 -0
  167. package/dist/route-registration.service-D6vSwiKP.mjs +918 -0
  168. package/dist/route-registration.service-D6vSwiKP.mjs.map +1 -0
  169. package/dist/route-registry-CYqLp2Nj.mjs +123 -0
  170. package/dist/route-registry-CYqLp2Nj.mjs.map +1 -0
  171. package/dist/router/index.d.mts +2 -2
  172. package/dist/router/index.mjs +18 -7
  173. package/dist/router-CWGBD-Bg.mjs +78 -0
  174. package/dist/router-CWGBD-Bg.mjs.map +1 -0
  175. package/dist/router-resolver-D4YlPNlm.mjs +88 -0
  176. package/dist/router-resolver-D4YlPNlm.mjs.map +1 -0
  177. package/dist/seeder/index.d.mts +16 -11
  178. package/dist/seeder/index.d.mts.map +1 -1
  179. package/dist/seeder/index.mjs +5 -3
  180. package/dist/seeder-7ubkms-Y.mjs +81 -0
  181. package/dist/seeder-7ubkms-Y.mjs.map +1 -0
  182. package/dist/seeder-registry-CyUmKsJq.mjs +57 -0
  183. package/dist/seeder-registry-CyUmKsJq.mjs.map +1 -0
  184. package/dist/seeder.module-CYYwk3Qk.mjs +15 -0
  185. package/dist/seeder.module-CYYwk3Qk.mjs.map +1 -0
  186. package/dist/{signed-url-BQPbv2In.mjs → signed-url-DIU0sK_6.mjs} +1 -1
  187. package/dist/{signed-url-BQPbv2In.mjs.map → signed-url-DIU0sK_6.mjs.map} +1 -1
  188. package/dist/storage/index.d.mts +15 -39
  189. package/dist/storage/index.d.mts.map +1 -1
  190. package/dist/storage/index.mjs +3 -3
  191. package/dist/storage/providers/index.d.mts +2 -2
  192. package/dist/storage/providers/index.d.mts.map +1 -1
  193. package/dist/storage/providers/index.mjs +1 -1
  194. package/dist/{storage-D8CBP72Z.mjs → storage-MDZypIE9.mjs} +66 -59
  195. package/dist/storage-MDZypIE9.mjs.map +1 -0
  196. package/dist/{storage-provider.interface-Bd6vA4ak.d.mts → storage-provider.interface-ClUwxz4S.d.mts} +2 -3
  197. package/dist/storage-provider.interface-ClUwxz4S.d.mts.map +1 -0
  198. package/dist/storage.error-Dnib4VHc.mjs +8 -0
  199. package/dist/storage.error-Dnib4VHc.mjs.map +1 -0
  200. package/dist/stratal-DL9M38_s.mjs +383 -0
  201. package/dist/stratal-DL9M38_s.mjs.map +1 -0
  202. package/dist/stratal-DwDJPY9N.d.mts +43 -0
  203. package/dist/stratal-DwDJPY9N.d.mts.map +1 -0
  204. package/dist/tiered-cache.service-Dv3BhxxE.d.mts +79 -0
  205. package/dist/tiered-cache.service-Dv3BhxxE.d.mts.map +1 -0
  206. package/dist/trailing-slash-CFyw8nYu.mjs +34 -0
  207. package/dist/trailing-slash-CFyw8nYu.mjs.map +1 -0
  208. package/dist/{types-cySNS_lp.d.mts → types-CmV_9xBD.d.mts} +1 -1
  209. package/dist/types-CmV_9xBD.d.mts.map +1 -0
  210. package/dist/uri-h7Q8Jug9.mjs +251 -0
  211. package/dist/uri-h7Q8Jug9.mjs.map +1 -0
  212. package/dist/{usage-generator-BUdlhnCK.mjs → usage-generator-DAWYasuP.mjs} +7 -4
  213. package/dist/usage-generator-DAWYasuP.mjs.map +1 -0
  214. package/dist/validation-CpOjviyT.mjs +49 -0
  215. package/dist/validation-CpOjviyT.mjs.map +1 -0
  216. package/dist/validation.context-CRvmrhq7.mjs +117 -0
  217. package/dist/validation.context-CRvmrhq7.mjs.map +1 -0
  218. package/dist/versioning.service-C6aHky8-.mjs +36 -0
  219. package/dist/versioning.service-C6aHky8-.mjs.map +1 -0
  220. package/dist/websocket/index.d.mts +16 -14
  221. package/dist/websocket/index.d.mts.map +1 -1
  222. package/dist/websocket/index.mjs +2 -2
  223. package/dist/workers/index.d.mts +2 -2
  224. package/dist/workers/index.d.mts.map +1 -1
  225. package/dist/workers/index.mjs +3 -2
  226. package/dist/workers/index.mjs.map +1 -1
  227. package/dist/zod-eKqqhZ5_.mjs +72 -0
  228. package/dist/zod-eKqqhZ5_.mjs.map +1 -0
  229. package/dist/{index-Bnpfq6uk.d.mts → zod-wecrEVAs.d.mts} +63 -133
  230. package/dist/zod-wecrEVAs.d.mts.map +1 -0
  231. package/package.json +28 -39
  232. package/dist/base-email.provider-CfQCA08m.mjs +0 -42
  233. package/dist/base-email.provider-CfQCA08m.mjs.map +0 -1
  234. package/dist/cache.service-DsnKuNyO.d.mts.map +0 -1
  235. package/dist/cache.tokens-B7Rw1C9Q.mjs +0 -6
  236. package/dist/cache.tokens-B7Rw1C9Q.mjs.map +0 -1
  237. package/dist/colors-DJaRDXoS.mjs +0 -16
  238. package/dist/colors-DJaRDXoS.mjs.map +0 -1
  239. package/dist/command-BgSlsS4M.mjs.map +0 -1
  240. package/dist/command-Cmmf0oHX.d.mts.map +0 -1
  241. package/dist/consumer-registry-B7yUNh0q.d.mts.map +0 -1
  242. package/dist/controller.decorator-B9vwn0zK.mjs.map +0 -1
  243. package/dist/cron-manager-CmTimEjf.d.mts +0 -131
  244. package/dist/cron-manager-CmTimEjf.d.mts.map +0 -1
  245. package/dist/cron-manager-DQSK8uoV.mjs.map +0 -1
  246. package/dist/en-DSH_bhh6.mjs +0 -308
  247. package/dist/en-DSH_bhh6.mjs.map +0 -1
  248. package/dist/env-D1rcZ8_r.d.mts.map +0 -1
  249. package/dist/errors-COW9-Mar.mjs +0 -1739
  250. package/dist/errors-COW9-Mar.mjs.map +0 -1
  251. package/dist/errors-ORxu1-Bb.mjs +0 -74
  252. package/dist/errors-ORxu1-Bb.mjs.map +0 -1
  253. package/dist/events-CzCV8jI8.mjs.map +0 -1
  254. package/dist/gateway-context-CXmXtaUP.mjs.map +0 -1
  255. package/dist/guards-DU1_J9YA.mjs.map +0 -1
  256. package/dist/http-method.decorator-BrgHMdLQ.mjs.map +0 -1
  257. package/dist/i18n.module-CzXLW9Hy.mjs +0 -2532
  258. package/dist/i18n.module-CzXLW9Hy.mjs.map +0 -1
  259. package/dist/index-7-hU3GTV.d.mts.map +0 -1
  260. package/dist/index-Bnpfq6uk.d.mts.map +0 -1
  261. package/dist/index-ByOyTmqf.d.mts.map +0 -1
  262. package/dist/index-C1KvMncZ.d.mts.map +0 -1
  263. package/dist/index-DBd_2wv8.d.mts +0 -263
  264. package/dist/index-DBd_2wv8.d.mts.map +0 -1
  265. package/dist/index-DUzWs0z7.d.mts +0 -494
  266. package/dist/index-DUzWs0z7.d.mts.map +0 -1
  267. package/dist/index.d.mts.map +0 -1
  268. package/dist/logger-DlV7NtvD.mjs +0 -440
  269. package/dist/logger-DlV7NtvD.mjs.map +0 -1
  270. package/dist/module-BzLg57FK.mjs +0 -866
  271. package/dist/module-BzLg57FK.mjs.map +0 -1
  272. package/dist/openapi-tools.service-Zs-Ewv7F.mjs.map +0 -1
  273. package/dist/openapi.service-Bt9bCIrd.d.mts.map +0 -1
  274. package/dist/quarry-registry-BwY2hOxm.mjs +0 -699
  275. package/dist/quarry-registry-BwY2hOxm.mjs.map +0 -1
  276. package/dist/queue.module-BhCjZp6H.mjs +0 -409
  277. package/dist/queue.module-BhCjZp6H.mjs.map +0 -1
  278. package/dist/r2-storage.provider-DuonKeYm.mjs.map +0 -1
  279. package/dist/rate-limit.decorator-6qzNcSOt.mjs.map +0 -1
  280. package/dist/resend.provider-DB4IlFjG.mjs +0 -68
  281. package/dist/resend.provider-DB4IlFjG.mjs.map +0 -1
  282. package/dist/seeder-zoEfEw9i.mjs +0 -138
  283. package/dist/seeder-zoEfEw9i.mjs.map +0 -1
  284. package/dist/setup-CefZKV_e.mjs +0 -37
  285. package/dist/setup-CefZKV_e.mjs.map +0 -1
  286. package/dist/smtp.provider-B6D7zuWX.mjs +0 -76
  287. package/dist/smtp.provider-B6D7zuWX.mjs.map +0 -1
  288. package/dist/storage-D8CBP72Z.mjs.map +0 -1
  289. package/dist/storage-provider.interface-Bd6vA4ak.d.mts.map +0 -1
  290. package/dist/stratal-CNwpbSZl.mjs +0 -535
  291. package/dist/stratal-CNwpbSZl.mjs.map +0 -1
  292. package/dist/types-cySNS_lp.d.mts.map +0 -1
  293. package/dist/usage-generator-BUdlhnCK.mjs.map +0 -1
  294. package/dist/validation-DtJwAv7O.mjs +0 -248
  295. package/dist/validation-DtJwAv7O.mjs.map +0 -1
  296. /package/dist/{chunk-D1SwGrFN.mjs → chunk-BBjsoOtd.mjs} +0 -0
@@ -1,46 +1,41 @@
1
- import { d as ApplicationError, gn as AsyncModuleOptions, vn as DynamicModule } from "../index-ByOyTmqf.mjs";
2
- import { o as z } from "../index-Bnpfq6uk.mjs";
3
- import { g as QueueName, h as IQueueSender } from "../index-DUzWs0z7.mjs";
1
+ import { Dn as AsyncModuleOptions, Dr as ApplicationError, kn as DynamicModule } from "../index-B_JoEl3V.mjs";
2
+ import { a as z } from "../zod-wecrEVAs.mjs";
3
+ import { a as QueueBinding } from "../consumer-registry-D3iMTSdy.mjs";
4
+ import { m as IQueueSender } from "../index-B5JBRcWD.mjs";
4
5
  import { ReactElement } from "react";
5
6
 
7
+ //#region src/email/email.error.d.ts
8
+ declare class EmailError extends ApplicationError {}
9
+ //#endregion
6
10
  //#region src/email/email.module.d.ts
7
11
  /**
8
12
  * SMTP configuration options
13
+ *
14
+ * URL format: `smtp://user:pass@host:port` or `smtps://user:pass@host:port`
15
+ * - `smtp://` → STARTTLS on port 587 (default)
16
+ * - `smtps://` → implicit TLS on port 465 (default)
9
17
  */
10
18
  interface SmtpConfig {
11
- /** SMTP server host */
12
- host: string;
13
- /** SMTP server port */
14
- port: number;
15
- /** Use TLS */
16
- secure?: boolean;
17
- /** SMTP username */
18
- username?: string;
19
- /** SMTP password */
20
- password?: string;
19
+ url: string;
21
20
  }
22
21
  /**
23
22
  * Email module configuration options
24
23
  */
25
24
  interface EmailModuleOptions {
26
- /** Email provider type */
27
- provider: 'resend' | 'smtp';
28
25
  /** Default from address */
29
26
  from: {
30
27
  name: string;
31
28
  email: string;
32
29
  };
33
- /** Resend API key (required for resend provider) */
34
- apiKey?: string;
35
- /** SMTP configuration (required for smtp provider) */
36
- smtp?: SmtpConfig;
30
+ /** SMTP configuration */
31
+ smtp: SmtpConfig;
37
32
  /** Default reply-to address */
38
33
  replyTo?: string;
39
34
  /**
40
- * Queue name for email dispatch.
41
- * The queue must be registered via QueueModule.registerQueue(name).
35
+ * Queue binding for email dispatch.
36
+ * The binding must be registered via QueueModule.registerQueue(binding).
42
37
  */
43
- queue: QueueName;
38
+ queue: QueueBinding;
44
39
  }
45
40
  declare class EmailModule {
46
41
  /**
@@ -52,10 +47,9 @@ declare class EmailModule {
52
47
  * @example
53
48
  * ```typescript
54
49
  * EmailModule.forRoot({
55
- * provider: 'resend',
56
- * apiKey: env.RESEND_API_KEY,
57
50
  * from: { name: 'App', email: 'noreply@example.com' },
58
- * queue: 'notifications-queue',
51
+ * smtp: { url: 'smtp://user:pass@smtp.example.com:587' },
52
+ * queue: 'NOTIFICATIONS_QUEUE',
59
53
  * })
60
54
  * ```
61
55
  */
@@ -73,8 +67,6 @@ declare class EmailModule {
73
67
  * EmailModule.forRootAsync({
74
68
  * inject: [emailConfig.KEY],
75
69
  * useFactory: (email) => ({
76
- * provider: email.provider,
77
- * apiKey: email.apiKey,
78
70
  * from: email.from,
79
71
  * smtp: email.smtp,
80
72
  * queue: email.queue,
@@ -114,7 +106,7 @@ declare const EMAIL_TOKENS: {
114
106
  readonly EmailProvider: symbol;
115
107
  /**
116
108
  * Queue sender for email dispatch.
117
- * Bound via EmailModule.forRoot({ queue: 'queue-name' })
109
+ * Bound via EmailModule.forRoot({ queue: 'QUEUE_BINDING_NAME' })
118
110
  */
119
111
  readonly EmailQueue: symbol;
120
112
  };
@@ -172,7 +164,6 @@ type EmailAttachment = z.infer<typeof emailAttachmentSchema>;
172
164
  *
173
165
  * Attachment after resolution, ready for email provider.
174
166
  * Content can be Buffer (for inline) or ReadableStream (for storage-based).
175
- * Both nodemailer and Resend support these formats directly.
176
167
  */
177
168
  interface ResolvedEmailAttachment {
178
169
  filename: string;
@@ -321,7 +312,7 @@ type SendBatchEmailInputWithTemplate = Omit<SendBatchEmailInput, 'messages'> & {
321
312
  *
322
313
  * Main facade for sending emails. Routes emails to queues for async processing.
323
314
  * The queue is injected via EMAIL_TOKENS.EmailQueue, configured by the application
324
- * via EmailModule.forRoot({ queue: 'queue-name' }).
315
+ * via EmailModule.forRoot({ queue: 'QUEUE_BINDING_NAME' }).
325
316
  *
326
317
  * @example Basic usage
327
318
  * ```typescript
@@ -407,7 +398,7 @@ interface EmailBatchSendResult {
407
398
  /**
408
399
  * Email Provider Interface
409
400
  *
410
- * All email provider implementations (Resend, SMTP, etc.) must implement this interface.
401
+ * All email provider implementations must implement this interface.
411
402
  * This allows the EmailService to work with any provider without knowing the implementation details.
412
403
  */
413
404
  interface IEmailProvider {
@@ -428,105 +419,32 @@ interface IEmailProvider {
428
419
  }
429
420
  //#endregion
430
421
  //#region src/email/services/email-provider-factory.d.ts
431
- /**
432
- * Email Provider Factory
433
- *
434
- * Creates email provider instances based on configuration.
435
- * Supports automatic provider selection from module options.
436
- *
437
- * Providers are loaded lazily via dynamic imports to avoid pulling in
438
- * heavy Node.js-only dependencies (e.g. nodemailer) at module parse time,
439
- * which would break Cloudflare Workers and vitest-pool-workers environments.
440
- */
441
422
  declare class EmailProviderFactory {
442
423
  private readonly options;
443
424
  constructor(options: EmailModuleOptions);
444
- /**
445
- * Create email provider instance based on configuration
446
- *
447
- * @returns Email provider implementation
448
- * @throws EmailProviderNotSupportedError if provider is not supported
449
- */
450
- create(): Promise<IEmailProvider>;
451
- }
452
- //#endregion
453
- //#region src/email/errors/resend-api-key-missing.error.d.ts
454
- /**
455
- * ResendApiKeyMissingError
456
- *
457
- * Thrown when the Resend API key is not configured in environment variables.
458
- * This prevents the Resend email provider from initializing.
459
- *
460
- * Resolution: Set the RESEND_EMAIL_API_KEY environment variable.
461
- */
462
- declare class ResendApiKeyMissingError extends ApplicationError {
463
- constructor();
464
- }
465
- //#endregion
466
- //#region src/email/errors/smtp-configuration-missing.error.d.ts
467
- /**
468
- * SmtpConfigurationMissingError
469
- *
470
- * Thrown when SMTP configuration is not found in environment variables.
471
- * This prevents the SMTP email provider from initializing.
472
- *
473
- * Resolution: Set the SMTP_URL environment variable with format: smtp://user:pass@host:port
474
- */
475
- declare class SmtpConfigurationMissingError extends ApplicationError {
476
- constructor();
425
+ create(): IEmailProvider;
477
426
  }
478
427
  //#endregion
479
- //#region src/email/errors/smtp-host-missing.error.d.ts
428
+ //#region src/email/providers/base-email.provider.d.ts
480
429
  /**
481
- * SmtpHostMissingError
430
+ * Base Email Provider
482
431
  *
483
- * Thrown when SMTP host could not be parsed from SMTP_URL or is empty.
484
- * This prevents the SMTP email provider from initializing.
485
- *
486
- * Resolution: Ensure SMTP_URL is correctly formatted: smtp://user:pass@host:port
432
+ * Abstract base class for email providers.
433
+ * Provides shared implementation of sendBatch() to reduce code duplication.
487
434
  */
488
- declare class SmtpHostMissingError extends ApplicationError {
489
- constructor();
490
- }
491
- //#endregion
492
- //#region src/email/errors/email-smtp-connection-failed.error.d.ts
493
- /**
494
- * EmailSmtpConnectionFailedError
495
- *
496
- * Thrown when connection to SMTP server fails during email sending.
497
- * This is a runtime error that may be temporary.
498
- *
499
- * Resolution: Check SMTP server availability, network connectivity, or wait and retry.
500
- */
501
- declare class EmailSmtpConnectionFailedError extends ApplicationError {
502
- constructor(smtpHost: string, smtpPort: number);
503
- }
504
- //#endregion
505
- //#region src/email/errors/email-resend-api-failed.error.d.ts
506
- /**
507
- * EmailResendApiFailedError
508
- *
509
- * Thrown when Resend API returns an error during email sending.
510
- * This is a runtime error from the Resend service.
511
- *
512
- * Resolution: Check Resend API status, API key validity, or wait and retry.
513
- */
514
- declare class EmailResendApiFailedError extends ApplicationError {
515
- constructor();
516
- }
517
- //#endregion
518
- //#region src/email/errors/email-provider-not-supported.error.d.ts
519
- /**
520
- * EmailProviderNotSupportedError
521
- *
522
- * Thrown when an unsupported email provider is configured.
523
- * Only 'resend' and 'smtp' providers are currently supported.
524
- *
525
- * Resolution: Set EMAIL_PROVIDER to either 'resend' or 'smtp'.
526
- */
527
- declare class EmailProviderNotSupportedError extends ApplicationError {
528
- constructor(provider: string);
435
+ declare abstract class BaseEmailProvider implements IEmailProvider {
436
+ /**
437
+ * Send a single email - must be implemented by concrete providers
438
+ */
439
+ abstract send(message: ResolvedEmailMessage): Promise<EmailSendResult>;
440
+ /**
441
+ * Send multiple emails in a batch
442
+ *
443
+ * Default implementation sends emails sequentially.
444
+ * Concrete providers can override for optimized batch sending.
445
+ */
446
+ sendBatch(messages: ResolvedEmailMessage[]): Promise<EmailBatchSendResult>;
529
447
  }
530
448
  //#endregion
531
- export { EMAIL_TOKENS, EmailAddress, EmailAttachment, EmailMessage, EmailModule, EmailModuleOptions, EmailProviderFactory, EmailProviderNotSupportedError, EmailResendApiFailedError, EmailService, EmailSmtpConnectionFailedError, InlineEmailAttachment, ResendApiKeyMissingError, ResolvedEmailAttachment, ResolvedEmailMessage, SendBatchEmailInput, SendBatchEmailInputWithTemplate, SendEmailInput, SendEmailInputWithTemplate, SmtpConfig, SmtpConfigurationMissingError, SmtpHostMissingError, StorageEmailAttachment, emailAddressSchema, emailAttachmentSchema, emailMessageSchema, inlineEmailAttachmentSchema, sendBatchEmailInputSchema, sendEmailInputSchema, storageEmailAttachmentSchema };
449
+ export { BaseEmailProvider, EMAIL_TOKENS, EmailAddress, EmailAttachment, EmailBatchSendResult, EmailError, EmailMessage, EmailModule, EmailModuleOptions, EmailProviderFactory, EmailSendResult, EmailService, IEmailProvider, InlineEmailAttachment, ResolvedEmailAttachment, ResolvedEmailMessage, SendBatchEmailInput, SendBatchEmailInputWithTemplate, SendEmailInput, SendEmailInputWithTemplate, SmtpConfig, StorageEmailAttachment, emailAddressSchema, emailAttachmentSchema, emailMessageSchema, inlineEmailAttachmentSchema, sendBatchEmailInputSchema, sendEmailInputSchema, storageEmailAttachmentSchema };
532
450
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/email/email.module.ts","../../src/email/email.tokens.ts","../../src/email/contracts/email-attachment.ts","../../src/email/contracts/email-message.contract.ts","../../src/email/contracts/send-email.input.ts","../../src/email/services/email.service.ts","../../src/email/providers/email-provider.interface.ts","../../src/email/services/email-provider-factory.ts","../../src/email/errors/resend-api-key-missing.error.ts","../../src/email/errors/smtp-configuration-missing.error.ts","../../src/email/errors/smtp-host-missing.error.ts","../../src/email/errors/email-smtp-connection-failed.error.ts","../../src/email/errors/email-resend-api-failed.error.ts","../../src/email/errors/email-provider-not-supported.error.ts"],"mappings":";;;;;;;;;UAmDiB,UAAA;EA+DA;EA7Df,IAAA;EA6FO;EA3FP,IAAA;EA2FgD;EAzFhD,MAAA;EAyFsE;EAvFtE,QAAA;EAuFmF;EArFnF,QAAA;AAAA;;ACnDF;;UDyDiB,kBAAA;EC/BP;EDiCR,QAAA;;EAGA,IAAA;IAAQ,IAAA;IAAc,KAAA;EAAA;;EAGtB,MAAA;;EAGA,IAAA,GAAO,UAAA;EEtEI;EFyEX,OAAA;;;;;EAMA,KAAA,EAAO,SAAA;AAAA;AAAA,cAUI,WAAA;EEzF2B;;;;;;;;;;;;;;;;EAAA,OF0G/B,OAAA,CAAQ,OAAA,EAAS,kBAAA,GAAqB,aAAA;;;;;;;;AE7E/C;;;;;;;;;;;;;;;SF6GS,YAAA,CAAa,OAAA,EAAS,kBAAA,CAAmB,kBAAA,IAAsB,aAAA;AAAA;;;;;;;;;AA/FxE;;;AAAA,cCzCa,YAAA;ED2CX;;;EAAA;EAQA;;;EAAA;EAMiC;;;EAAA;EAKjC;;;EAAA;EAMA;;;;EAAA;;;;;;;;;AA3BF;cE3Ca,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;;AF2DxC;;;cE9Ba,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;cAwB5B,qBAAA,EAAqB,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;KAQtB,qBAAA,GAAwB,CAAA,CAAE,KAAA,QAAa,2BAAA;AAAA,KACvC,sBAAA,GAAyB,CAAA,CAAE,KAAA,QAAa,4BAAA;AAAA,KACxC,eAAA,GAAkB,CAAA,CAAE,KAAA,QAAa,qBAAA;;;;;;;;UAS5B,uBAAA;EACf,QAAA;EACA,OAAA,EAAS,MAAA,GAAS,cAAA;EAClB,WAAA;AAAA;;;;;;;AFhCF;cG3Ca,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;cAWlB,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;KA2DnB,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;;;;KAK9B,YAAA,GAAe,CAAA,CAAE,KAAA,QAAa,kBAAA;;;;;;;KAQ9B,oBAAA,GAAuB,IAAA,CAAK,YAAA;EACtC,WAAA,GAAc,uBAAA;AAAA;;;;;;;;AHzChB;;cIzCa,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;AJgFjC;;KIrEY,cAAA,GAAiB,CAAA,CAAE,KAAA,QAAa,oBAAA;;;;;;cAO/B,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAU1B,mBAAA,GAAsB,CAAA,CAAE,KAAA,QAAa,yBAAA;;;KC9BrC,0BAAA,GAA6B,IAAA,CAAK,cAAA;EAC5C,QAAA,GAAW,YAAA;AAAA;AAAA,KAGD,+BAAA,GAAkC,IAAA,CAAK,mBAAA;EACjD,QAAA,EAAU,0BAAA;AAAA;;;;;;;;;ALsDZ;;;;;;;;;;;cK/Ba,YAAA;EAAA,mBAGU,KAAA,EAAO,YAAA;cAAP,KAAA,EAAO,YAAA;ELgDZ;;AAGlB;;;;;;EKxCQ,IAAA,CAAA;IAAO,QAAA;IAAA,GAAa;EAAA,GAAS,0BAAA,GAA6B,OAAA;ELgGM;;;;;;;;EKjFhE,SAAA,CAAU,KAAA,EAAO,+BAAA,GAAkC,OAAA;AAAA;;;;;;;;UC1D1C,eAAA;EN4CU;;;EMxCzB,SAAA;EN4CA;;;EMvCA,QAAA;EN6CQ;;AAMV;EM9CE,QAAA,GAAW,MAAA;AAAA;;;;;;UAQI,oBAAA;ENiDf;;;EM7CA,KAAA;ENsDO;;;EMjDP,UAAA;EN2DsB;;;EMtDtB,MAAA;ENuGgD;;;EMlGhD,OAAA,EAAS,eAAA;AAAA;;;;;;;UASM,cAAA;ENyFK;;;;;;EMlFpB,IAAA,CAAK,OAAA,EAAS,oBAAA,GAAuB,OAAA,CAAQ,eAAA;ELtDlC;;;;;;EK8DX,SAAA,CAAU,QAAA,EAAU,oBAAA,KAAyB,OAAA,CAAQ,oBAAA;AAAA;;;;;;;ANrBvD;;;;;;cOjCa,oBAAA;EAAA,iBAGQ,OAAA;cAAA,OAAA,EAAS,kBAAA;EPwCpB;;AAMV;;;;EOrCQ,MAAA,CAAA,GAAU,OAAA,CAAQ,cAAA;AAAA;;;;;;;;APqB1B;;;cQzCa,wBAAA,SAAiC,gBAAA;EAAA,WAAA,CAAA;AAAA;;;;;;;;ARyC9C;;;cSzCa,6BAAA,SAAsC,gBAAA;EAAA,WAAA,CAAA;AAAA;;;;;;;;ATyCnD;;;cUzCa,oBAAA,SAA6B,gBAAA;EAAA,WAAA,CAAA;AAAA;;;;;;;;AVyC1C;;;cWzCa,8BAAA,SAAuC,gBAAA;cACtC,QAAA,UAAkB,QAAA;AAAA;;;;;;;;AXwChC;;;cYzCa,yBAAA,SAAkC,gBAAA;EAAA,WAAA,CAAA;AAAA;;;;;;;;AZyC/C;;;cazCa,8BAAA,SAAuC,gBAAA;cACtC,QAAA;AAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/email/email.error.ts","../../src/email/email.module.ts","../../src/email/email.tokens.ts","../../src/email/contracts/email-attachment.ts","../../src/email/contracts/email-message.contract.ts","../../src/email/contracts/send-email.input.ts","../../src/email/services/email.service.ts","../../src/email/providers/email-provider.interface.ts","../../src/email/services/email-provider-factory.ts","../../src/email/providers/base-email.provider.ts"],"mappings":";;;;;;;cAEa,UAAA,SAAmB,gBAAgB;;;;;;;;;;UCmD/B,UAAA;EACf,GAAG;AAAA;;;;UAMY,kBAAA;EAsEuD;EApEtE,IAAA;IAAQ,IAAA;IAAc,KAAA;EAAA;;EAGtB,IAAA,EAAM,UAAA;EC7BE;EDgCR,OAAA;EChCQ;;;;EDsCR,KAAA,EAAO,YAAY;AAAA;AAAA,cAUR,WAAA;;;;;AE5Eb;;;;;;;;;;;SF4FS,OAAA,CAAQ,OAAA,EAAS,kBAAA,GAAqB,aAAA;EE5FP;;;;;;;;;;;;;;;;;;;;EAAA,OF0H/B,YAAA,CAAa,OAAA,EAAS,kBAAA,CAAmB,kBAAA,IAAsB,aAAA;AAAA;;;;;;;;;;;ADhIxE;cEQa,YAAA;;;AFRmC;;;;ACmDhD;;;;AACK;;EAM8B;;;EAAA;EAEzB;;;;EAAA;;;;;;;;;;cEtDG,2BAAA,EAA2B,CAAA,CAAA,SAAA;;;;;;;;;AF6CxC;;;;cEhBa,4BAAA,EAA4B,CAAA,CAAA,SAAA;;;;;;;;;;;;cAwB5B,qBAAA,EAAqB,CAAA,CAAA,QAAA,WAAA,CAAA,CAAA,SAAA;;;;;;;;;;;;;KAQtB,qBAAA,GAAwB,CAAA,CAAE,KAAK,QAAQ,2BAAA;AAAA,KACvC,sBAAA,GAAyB,CAAA,CAAE,KAAK,QAAQ,4BAAA;AAAA,KACxC,eAAA,GAAkB,CAAA,CAAE,KAAK,QAAQ,qBAAA;;;;;;;UAQ5B,uBAAA;EACf,QAAA;EACA,OAAA,EAAS,MAAA,GAAS,cAAc;EAChC,WAAA;AAAA;;;;;;;;cC1EW,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;AJNiB;;;;ACmDhD;cGlCa,kBAAA,EAAkB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;KA2DnB,YAAA,GAAe,CAAA,CAAE,KAAK,QAAQ,kBAAA;;;;KAK9B,YAAA,GAAe,CAAA,CAAE,KAAK,QAAQ,kBAAA;;;;;;;KAQ9B,oBAAA,GAAuB,IAAA,CAAK,YAAA;EACtC,WAAA,GAAc,uBAAA;AAAA;;;;;;;;;;cClFH,oBAAA,EAAoB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AJgEZ;KIrDT,cAAA,GAAiB,CAAA,CAAE,KAAK,QAAQ,oBAAA;;;;;;cAO/B,yBAAA,EAAyB,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAU1B,mBAAA,GAAsB,CAAA,CAAE,KAAK,QAAQ,yBAAA;;;KC/BrC,0BAAA,GAA6B,IAAA,CAAK,cAAA;EAC5C,QAAA,GAAW,YAAA;AAAA;AAAA,KAGD,+BAAA,GAAkC,IAAA,CAAK,mBAAA;EACjD,QAAA,EAAU,0BAAA;AAAA;;;;ANVoC;;;;ACmDhD;;;;AACK;AAML;;;;;;;cKzBa,YAAA;EAAA,mBAGU,KAAA,EAAO,YAAA;cAAP,KAAA,EAAO,YAAA;ELoC5B;;;AAAmB;AAGrB;;;;EK5BQ,IAAA;IAAO,QAAA;IAAA,GAAa;EAAA,GAAS,0BAAA,GAA6B,OAAA;ELiFhB;;;;;;;;EKzD1C,SAAA,CAAU,KAAA,EAAO,+BAAA,GAAkC,OAAA;AAAA;;;;;;;;UClE1C,eAAA;;APLjB;;EOSE,SAAA;EPT8C;AAAA;;EOc9C,QAAA;;ANqCF;;EMhCE,QAAA,GAAW,MAAM;AAAA;ANiCd;AAML;;;;AANK,UMzBY,oBAAA;ENiCP;;;EM7BR,KAAA;ENmCA;;;EM9BA,UAAA;ENoCmB;AAGrB;;EMlCE,MAAA;ENyDwB;;;EMpDxB,OAAA,EAAS,eAAe;AAAA;;;;;;;UAST,cAAA;ENyEc;;;;;AAAsD;EMlEnF,IAAA,CAAK,OAAA,EAAS,oBAAA,GAAuB,OAAA,CAAQ,eAAA;;;ALtD/C;;;;EK8DE,SAAA,CAAU,QAAA,EAAU,oBAAA,KAAyB,OAAA,CAAQ,oBAAA;AAAA;;;cChE1C,oBAAA;EAAA,iBAGQ,OAAA;cAAA,OAAA,EAAS,kBAAA;EAG5B,MAAA,IAAU,cAAc;AAAA;;;;;;;;;uBCLJ,iBAAA,YAA6B,cAAA;ETP3B;;;EAAA,SSWb,IAAA,CAAK,OAAA,EAAS,oBAAA,GAAuB,OAAA,CAAQ,eAAA;;;;ARwCxD;;;EQhCQ,SAAA,CAAU,QAAA,EAAU,oBAAA,KAAyB,OAAA,CAAQ,oBAAA;AAAA"}