stratal 0.0.22 → 0.0.24

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 (270) hide show
  1. package/README.md +1 -1
  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 +41 -54
  5. package/dist/bin/quarry.mjs.map +1 -1
  6. package/dist/cache/index.d.mts +5 -3
  7. package/dist/cache/index.d.mts.map +1 -1
  8. package/dist/cache/index.mjs +123 -39
  9. package/dist/cache/index.mjs.map +1 -1
  10. package/dist/{cache.service-e34gV6tz.d.mts → cache.service-uElmBtdS.d.mts} +24 -34
  11. package/dist/cache.service-uElmBtdS.d.mts.map +1 -0
  12. package/dist/{command-BU4ApTo5.mjs → command-BvmUAPPQ.mjs} +15 -3
  13. package/dist/command-BvmUAPPQ.mjs.map +1 -0
  14. package/dist/{command-wXfvHbBZ.d.mts → command-CPhFHjG3.d.mts} +2 -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 +3 -3
  19. package/dist/config/index.d.mts.map +1 -1
  20. package/dist/config/index.mjs +7 -6
  21. package/dist/config/index.mjs.map +1 -1
  22. package/dist/{consumer-registry-DHQtypr1.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-GpNNz79X.mjs → container-storage-BmOJ4_Na.mjs} +1 -1
  25. package/dist/{container-storage-GpNNz79X.mjs.map → container-storage-BmOJ4_Na.mjs.map} +1 -1
  26. package/dist/{controller.decorator-DIUazNU7.mjs → controller.decorator-C5UVeJS3.mjs} +4 -4
  27. package/dist/{controller.decorator-DIUazNU7.mjs.map → controller.decorator-C5UVeJS3.mjs.map} +1 -1
  28. package/dist/cron/index.d.mts +79 -4
  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-9bpN9bu4.mjs → cron.module-Bgzq5hiT.mjs} +17 -7
  34. package/dist/cron.module-Bgzq5hiT.mjs.map +1 -0
  35. package/dist/{decorate-HgTKAYK8.mjs → decorate-CuAoSZvs.mjs} +2 -2
  36. package/dist/{deep-merge-C8NgcXw4.mjs → deep-merge-ByiAOZ3r.mjs} +1 -1
  37. package/dist/{deep-merge-C8NgcXw4.mjs.map → deep-merge-ByiAOZ3r.mjs.map} +1 -1
  38. package/dist/di/index.d.mts +2 -2
  39. package/dist/di/index.mjs +3 -3
  40. package/dist/{di-BO1QIb5H.mjs → di-DseMn-z9.mjs} +244 -135
  41. package/dist/di-DseMn-z9.mjs.map +1 -0
  42. package/dist/email/index.d.mts +33 -40
  43. package/dist/email/index.d.mts.map +1 -1
  44. package/dist/email/index.mjs +456 -41
  45. package/dist/email/index.mjs.map +1 -1
  46. package/dist/{en-BPP6h6y5.mjs → en-CDZBMcc1.mjs} +2 -2
  47. package/dist/{en-BPP6h6y5.mjs.map → en-CDZBMcc1.mjs.map} +1 -1
  48. package/dist/{env-DKSbuBi5.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 +1 -1
  51. package/dist/errors/index.mjs +3 -3
  52. package/dist/{errors-BBZTnjdq.mjs → errors-mXYxG0XB.mjs} +5 -5
  53. package/dist/{errors-BBZTnjdq.mjs.map → errors-mXYxG0XB.mjs.map} +1 -1
  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-D1KdDaiP.mjs → events-BXJGZjpG.mjs} +16 -6
  58. package/dist/events-BXJGZjpG.mjs.map +1 -0
  59. package/dist/{exception-context-B4kM-M53.mjs → exception-context-kEoMFwze.mjs} +3 -3
  60. package/dist/{exception-context-B4kM-M53.mjs.map → exception-context-kEoMFwze.mjs.map} +1 -1
  61. package/dist/{gateway-context-CFe6a9gz.mjs → gateway-context-TMu_AlJt.mjs} +25 -6
  62. package/dist/{gateway-context-CFe6a9gz.mjs.map → gateway-context-TMu_AlJt.mjs.map} +1 -1
  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-Ced-uNIF.mjs → guards-DALPXy3_.mjs} +2 -2
  67. package/dist/{guards-Ced-uNIF.mjs.map → guards-DALPXy3_.mjs.map} +1 -1
  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-CdjKFJZZ.mjs → http-method.decorator-ByWZb9DO.mjs} +4 -4
  71. package/dist/{http-method.decorator-CdjKFJZZ.mjs.map → http-method.decorator-ByWZb9DO.mjs.map} +1 -1
  72. package/dist/i18n/index.d.mts +4 -4
  73. package/dist/i18n/index.d.mts.map +1 -1
  74. package/dist/i18n/index.mjs +5 -5
  75. package/dist/i18n/index.mjs.map +1 -1
  76. package/dist/i18n/messages/en/index.d.mts +1 -1
  77. package/dist/i18n/messages/en/index.mjs +1 -1
  78. package/dist/i18n/utils/index.mjs +1 -1
  79. package/dist/i18n/validation/index.d.mts +3 -3
  80. package/dist/i18n/validation/index.mjs +3 -3
  81. package/dist/{i18n.module-BlXrtAlV.mjs → i18n.module-DRQAZoSZ.mjs} +14 -11
  82. package/dist/{i18n.module-BlXrtAlV.mjs.map → i18n.module-DRQAZoSZ.mjs.map} +1 -1
  83. package/dist/{i18n.tokens-hwRpmjRq.mjs → i18n.tokens-CZ_v8oyS.mjs} +1 -1
  84. package/dist/{i18n.tokens-hwRpmjRq.mjs.map → i18n.tokens-CZ_v8oyS.mjs.map} +1 -1
  85. package/dist/{index-B4UBK-2T.d.mts → index-0ItCjaqw.d.mts} +1 -1
  86. package/dist/index-0ItCjaqw.d.mts.map +1 -0
  87. package/dist/{index-CW1YHSft.d.mts → index-B5JBRcWD.d.mts} +249 -103
  88. package/dist/index-B5JBRcWD.d.mts.map +1 -0
  89. package/dist/{index-BtlE9RuO.d.mts → index-BUt92sAE.d.mts} +1 -1
  90. package/dist/index-BUt92sAE.d.mts.map +1 -0
  91. package/dist/{index-DEncMcC6.d.mts → index-B_JoEl3V.d.mts} +221 -16
  92. package/dist/index-B_JoEl3V.d.mts.map +1 -0
  93. package/dist/{index-Dj5IMwtr.d.mts → index-DtBNIFuP.d.mts} +4 -6
  94. package/dist/index-DtBNIFuP.d.mts.map +1 -0
  95. package/dist/{index-KMgSCSM7.d.mts → index-HgOLNruQ.d.mts} +1 -1
  96. package/dist/{index-KMgSCSM7.d.mts.map → index-HgOLNruQ.d.mts.map} +1 -1
  97. package/dist/index.d.mts +6 -5
  98. package/dist/index.mjs +3 -2
  99. package/dist/{is-command-CX5rAfZW.mjs → is-command-CEPO9n8c.mjs} +2 -2
  100. package/dist/{is-command-CX5rAfZW.mjs.map → is-command-CEPO9n8c.mjs.map} +1 -1
  101. package/dist/{is-seeder-CYCtELlm.mjs → is-seeder-Gvh_AM71.mjs} +1 -1
  102. package/dist/{is-seeder-CYCtELlm.mjs.map → is-seeder-Gvh_AM71.mjs.map} +1 -1
  103. package/dist/lazy-module-loader-Ib383jH_.d.mts +60 -0
  104. package/dist/lazy-module-loader-Ib383jH_.d.mts.map +1 -0
  105. package/dist/locale-path.service-D-dHiIPc.mjs +165 -0
  106. package/dist/locale-path.service-D-dHiIPc.mjs.map +1 -0
  107. package/dist/locale-url-nZrZxqJP.mjs +44 -0
  108. package/dist/locale-url-nZrZxqJP.mjs.map +1 -0
  109. package/dist/locale-url.service-C2EWmGdq.mjs +41 -0
  110. package/dist/locale-url.service-C2EWmGdq.mjs.map +1 -0
  111. package/dist/logger/index.d.mts +1 -1
  112. package/dist/logger/index.mjs +2 -2
  113. package/dist/logger/index.mjs.map +1 -1
  114. package/dist/macroable/index.d.mts +2 -2
  115. package/dist/macroable/index.mjs +1 -1
  116. package/dist/{macroable-DzlfzT50.mjs → macroable-cvDTFZ_A.mjs} +1 -1
  117. package/dist/{macroable-DzlfzT50.mjs.map → macroable-cvDTFZ_A.mjs.map} +1 -1
  118. package/dist/{metadata-BVkc4aUu.mjs → metadata-DzzprcID.mjs} +1 -1
  119. package/dist/{metadata-BVkc4aUu.mjs.map → metadata-DzzprcID.mjs.map} +1 -1
  120. package/dist/module/index.d.mts +4 -3
  121. package/dist/module/index.d.mts.map +1 -1
  122. package/dist/module/index.mjs +10 -2
  123. package/dist/module/index.mjs.map +1 -0
  124. package/dist/{module-xYoHba6B.mjs → module-registry-Dm-pqHd3.mjs} +189 -57
  125. package/dist/module-registry-Dm-pqHd3.mjs.map +1 -0
  126. package/dist/module.decorator-CYHY6pG5.mjs +19 -0
  127. package/dist/module.decorator-CYHY6pG5.mjs.map +1 -0
  128. package/dist/openapi/index.d.mts +44 -8
  129. package/dist/openapi/index.d.mts.map +1 -1
  130. package/dist/openapi/index.mjs +3 -2
  131. package/dist/{openapi-C6lm0RmV.mjs → openapi-CstuTM8S.mjs} +55 -229
  132. package/dist/openapi-CstuTM8S.mjs.map +1 -0
  133. package/dist/openapi-tools.service-BC5EC3R3.mjs +206 -0
  134. package/dist/openapi-tools.service-BC5EC3R3.mjs.map +1 -0
  135. package/dist/{openapi.service-CrLlsXAd.d.mts → openapi.service-YhTiJ1bO.d.mts} +3 -3
  136. package/dist/{openapi.service-CrLlsXAd.d.mts.map → openapi.service-YhTiJ1bO.d.mts.map} +1 -1
  137. package/dist/quarry/index.d.mts +14 -5
  138. package/dist/quarry/index.d.mts.map +1 -1
  139. package/dist/quarry/index.mjs +6 -5
  140. package/dist/quarry/runner.d.mts +11 -11
  141. package/dist/quarry/runner.d.mts.map +1 -1
  142. package/dist/quarry/runner.mjs +192 -22
  143. package/dist/quarry/runner.mjs.map +1 -1
  144. package/dist/{quarry-registry-D4hIGScf.d.mts → quarry-registry-CXg0RFXq.d.mts} +4 -4
  145. package/dist/quarry-registry-CXg0RFXq.d.mts.map +1 -0
  146. package/dist/{quarry-registry-DkraZNwn.mjs → quarry.module-BuRPGMDm.mjs} +22 -21
  147. package/dist/quarry.module-BuRPGMDm.mjs.map +1 -0
  148. package/dist/queue/index.d.mts +3 -3
  149. package/dist/queue/index.mjs +42 -31
  150. package/dist/queue/index.mjs.map +1 -1
  151. package/dist/queue.module-nddvxzCB.mjs +613 -0
  152. package/dist/queue.module-nddvxzCB.mjs.map +1 -0
  153. package/dist/queue.tokens-DjHnFmre.mjs +11 -0
  154. package/dist/queue.tokens-DjHnFmre.mjs.map +1 -0
  155. package/dist/{r2-storage.provider-Hfm6LdZQ.mjs → r2-storage.provider-DCxQt9dD.mjs} +4 -4
  156. package/dist/{r2-storage.provider-Hfm6LdZQ.mjs.map → r2-storage.provider-DCxQt9dD.mjs.map} +1 -1
  157. package/dist/{rate-limit.decorator-D69zdZbp.mjs → rate-limit.decorator-BPAie_p3.mjs} +3 -3
  158. package/dist/{rate-limit.decorator-D69zdZbp.mjs.map → rate-limit.decorator-BPAie_p3.mjs.map} +1 -1
  159. package/dist/rate-limiter/index.d.mts +5 -5
  160. package/dist/rate-limiter/index.d.mts.map +1 -1
  161. package/dist/rate-limiter/index.mjs +26 -21
  162. package/dist/rate-limiter/index.mjs.map +1 -1
  163. package/dist/route-name-DGoBOfPg.mjs +171 -0
  164. package/dist/route-name-DGoBOfPg.mjs.map +1 -0
  165. package/dist/route-registration.service-D6vSwiKP.mjs +918 -0
  166. package/dist/route-registration.service-D6vSwiKP.mjs.map +1 -0
  167. package/dist/route-registry-CYqLp2Nj.mjs +123 -0
  168. package/dist/route-registry-CYqLp2Nj.mjs.map +1 -0
  169. package/dist/router/index.d.mts +2 -2
  170. package/dist/router/index.mjs +18 -8
  171. package/dist/router-CWGBD-Bg.mjs +78 -0
  172. package/dist/router-CWGBD-Bg.mjs.map +1 -0
  173. package/dist/router-resolver-D4YlPNlm.mjs +88 -0
  174. package/dist/router-resolver-D4YlPNlm.mjs.map +1 -0
  175. package/dist/seeder/index.d.mts +14 -4
  176. package/dist/seeder/index.d.mts.map +1 -1
  177. package/dist/seeder/index.mjs +5 -3
  178. package/dist/{seeder-BADTig4n.mjs → seeder-7ubkms-Y.mjs} +7 -56
  179. package/dist/seeder-7ubkms-Y.mjs.map +1 -0
  180. package/dist/seeder-registry-CyUmKsJq.mjs +57 -0
  181. package/dist/seeder-registry-CyUmKsJq.mjs.map +1 -0
  182. package/dist/seeder.module-CYYwk3Qk.mjs +15 -0
  183. package/dist/seeder.module-CYYwk3Qk.mjs.map +1 -0
  184. package/dist/{signed-url-BqUqt5dF.mjs → signed-url-DIU0sK_6.mjs} +1 -1
  185. package/dist/{signed-url-BqUqt5dF.mjs.map → signed-url-DIU0sK_6.mjs.map} +1 -1
  186. package/dist/storage/index.d.mts +3 -3
  187. package/dist/storage/index.d.mts.map +1 -1
  188. package/dist/storage/index.mjs +2 -2
  189. package/dist/storage/providers/index.d.mts +2 -2
  190. package/dist/storage/providers/index.d.mts.map +1 -1
  191. package/dist/storage/providers/index.mjs +1 -1
  192. package/dist/{storage-BA3ppVYM.mjs → storage-MDZypIE9.mjs} +12 -11
  193. package/dist/{storage-BA3ppVYM.mjs.map → storage-MDZypIE9.mjs.map} +1 -1
  194. package/dist/{storage-provider.interface-DQMtT42e.d.mts → storage-provider.interface-ClUwxz4S.d.mts} +2 -2
  195. package/dist/storage-provider.interface-ClUwxz4S.d.mts.map +1 -0
  196. package/dist/storage.error-Dnib4VHc.mjs +8 -0
  197. package/dist/{storage.error-C6FY037a.mjs.map → storage.error-Dnib4VHc.mjs.map} +1 -1
  198. package/dist/{stratal-Bdq4IdB3.mjs → stratal-DL9M38_s.mjs} +142 -140
  199. package/dist/stratal-DL9M38_s.mjs.map +1 -0
  200. package/dist/{stratal-BsKmvP6J.d.mts → stratal-DwDJPY9N.d.mts} +3 -3
  201. package/dist/{stratal-BsKmvP6J.d.mts.map → stratal-DwDJPY9N.d.mts.map} +1 -1
  202. package/dist/tiered-cache.service-Dv3BhxxE.d.mts +79 -0
  203. package/dist/tiered-cache.service-Dv3BhxxE.d.mts.map +1 -0
  204. package/dist/trailing-slash-CFyw8nYu.mjs +34 -0
  205. package/dist/trailing-slash-CFyw8nYu.mjs.map +1 -0
  206. package/dist/{types-BaeHi67f.d.mts → types-CmV_9xBD.d.mts} +1 -1
  207. package/dist/types-CmV_9xBD.d.mts.map +1 -0
  208. package/dist/uri-h7Q8Jug9.mjs +251 -0
  209. package/dist/uri-h7Q8Jug9.mjs.map +1 -0
  210. package/dist/{usage-generator-DTqaUMR9.mjs → usage-generator-DAWYasuP.mjs} +4 -4
  211. package/dist/usage-generator-DAWYasuP.mjs.map +1 -0
  212. package/dist/{validation-DUzcjb8Q.mjs → validation-CpOjviyT.mjs} +6 -6
  213. package/dist/{validation-DUzcjb8Q.mjs.map → validation-CpOjviyT.mjs.map} +1 -1
  214. package/dist/{validation.context-XTysWJ3b.mjs → validation.context-CRvmrhq7.mjs} +3 -3
  215. package/dist/{validation.context-XTysWJ3b.mjs.map → validation.context-CRvmrhq7.mjs.map} +1 -1
  216. package/dist/versioning.service-C6aHky8-.mjs +36 -0
  217. package/dist/versioning.service-C6aHky8-.mjs.map +1 -0
  218. package/dist/websocket/index.d.mts +11 -2
  219. package/dist/websocket/index.d.mts.map +1 -1
  220. package/dist/websocket/index.mjs +1 -1
  221. package/dist/workers/index.d.mts +2 -2
  222. package/dist/workers/index.d.mts.map +1 -1
  223. package/dist/workers/index.mjs +3 -3
  224. package/dist/workers/index.mjs.map +1 -1
  225. package/dist/{zod-hMa3rSHV.mjs → zod-eKqqhZ5_.mjs} +2 -2
  226. package/dist/{zod-hMa3rSHV.mjs.map → zod-eKqqhZ5_.mjs.map} +1 -1
  227. package/dist/{zod-DvWTfRpI.d.mts → zod-wecrEVAs.d.mts} +8 -3
  228. package/dist/zod-wecrEVAs.d.mts.map +1 -0
  229. package/package.json +19 -30
  230. package/dist/base-email.provider-BWZHIjt8.mjs +0 -42
  231. package/dist/base-email.provider-BWZHIjt8.mjs.map +0 -1
  232. package/dist/cache.service-e34gV6tz.d.mts.map +0 -1
  233. package/dist/cache.tokens-ovi_c52J.mjs +0 -6
  234. package/dist/cache.tokens-ovi_c52J.mjs.map +0 -1
  235. package/dist/colors-axmupKdp.mjs +0 -16
  236. package/dist/colors-axmupKdp.mjs.map +0 -1
  237. package/dist/command-BU4ApTo5.mjs.map +0 -1
  238. package/dist/command-wXfvHbBZ.d.mts.map +0 -1
  239. package/dist/consumer-registry-DHQtypr1.d.mts.map +0 -1
  240. package/dist/cron-manager-9bpN9bu4.mjs.map +0 -1
  241. package/dist/cron-manager-CSTIBPcM.d.mts +0 -124
  242. package/dist/cron-manager-CSTIBPcM.d.mts.map +0 -1
  243. package/dist/di-BO1QIb5H.mjs.map +0 -1
  244. package/dist/env-DKSbuBi5.d.mts.map +0 -1
  245. package/dist/events-D1KdDaiP.mjs.map +0 -1
  246. package/dist/index-B4UBK-2T.d.mts.map +0 -1
  247. package/dist/index-BtlE9RuO.d.mts.map +0 -1
  248. package/dist/index-CW1YHSft.d.mts.map +0 -1
  249. package/dist/index-DEncMcC6.d.mts.map +0 -1
  250. package/dist/index-Dj5IMwtr.d.mts.map +0 -1
  251. package/dist/module-xYoHba6B.mjs.map +0 -1
  252. package/dist/openapi-C6lm0RmV.mjs.map +0 -1
  253. package/dist/quarry-registry-D4hIGScf.d.mts.map +0 -1
  254. package/dist/quarry-registry-DkraZNwn.mjs.map +0 -1
  255. package/dist/queue.module-DeWJ0tQM.mjs +0 -355
  256. package/dist/queue.module-DeWJ0tQM.mjs.map +0 -1
  257. package/dist/resend.provider-Ur6tU7fK.mjs +0 -68
  258. package/dist/resend.provider-Ur6tU7fK.mjs.map +0 -1
  259. package/dist/router-Cy6DjkvP.mjs +0 -1852
  260. package/dist/router-Cy6DjkvP.mjs.map +0 -1
  261. package/dist/seeder-BADTig4n.mjs.map +0 -1
  262. package/dist/smtp.provider-C129sNBT.mjs +0 -76
  263. package/dist/smtp.provider-C129sNBT.mjs.map +0 -1
  264. package/dist/storage-provider.interface-DQMtT42e.d.mts.map +0 -1
  265. package/dist/storage.error-C6FY037a.mjs +0 -8
  266. package/dist/stratal-Bdq4IdB3.mjs.map +0 -1
  267. package/dist/types-BaeHi67f.d.mts.map +0 -1
  268. package/dist/usage-generator-DTqaUMR9.mjs.map +0 -1
  269. package/dist/zod-DvWTfRpI.d.mts.map +0 -1
  270. /package/dist/{chunk-D1SwGrFN.mjs → chunk-BBjsoOtd.mjs} +0 -0
@@ -1,6 +1,7 @@
1
- import { Sn as AsyncModuleOptions, wn as DynamicModule, xr as ApplicationError } from "../index-DEncMcC6.mjs";
2
- import { a as z } from "../zod-DvWTfRpI.mjs";
3
- import { h as QueueBinding, m as IQueueSender } from "../index-CW1YHSft.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
 
6
7
  //#region src/email/email.error.d.ts
@@ -9,34 +10,25 @@ declare class EmailError extends ApplicationError {}
9
10
  //#region src/email/email.module.d.ts
10
11
  /**
11
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)
12
17
  */
13
18
  interface SmtpConfig {
14
- /** SMTP server host */
15
- host: string;
16
- /** SMTP server port */
17
- port: number;
18
- /** Use TLS */
19
- secure?: boolean;
20
- /** SMTP username */
21
- username?: string;
22
- /** SMTP password */
23
- password?: string;
19
+ url: string;
24
20
  }
25
21
  /**
26
22
  * Email module configuration options
27
23
  */
28
24
  interface EmailModuleOptions {
29
- /** Email provider type */
30
- provider: 'resend' | 'smtp';
31
25
  /** Default from address */
32
26
  from: {
33
27
  name: string;
34
28
  email: string;
35
29
  };
36
- /** Resend API key (required for resend provider) */
37
- apiKey?: string;
38
- /** SMTP configuration (required for smtp provider) */
39
- smtp?: SmtpConfig;
30
+ /** SMTP configuration */
31
+ smtp: SmtpConfig;
40
32
  /** Default reply-to address */
41
33
  replyTo?: string;
42
34
  /**
@@ -55,9 +47,8 @@ declare class EmailModule {
55
47
  * @example
56
48
  * ```typescript
57
49
  * EmailModule.forRoot({
58
- * provider: 'resend',
59
- * apiKey: env.RESEND_API_KEY,
60
50
  * from: { name: 'App', email: 'noreply@example.com' },
51
+ * smtp: { url: 'smtp://user:pass@smtp.example.com:587' },
61
52
  * queue: 'NOTIFICATIONS_QUEUE',
62
53
  * })
63
54
  * ```
@@ -76,8 +67,6 @@ declare class EmailModule {
76
67
  * EmailModule.forRootAsync({
77
68
  * inject: [emailConfig.KEY],
78
69
  * useFactory: (email) => ({
79
- * provider: email.provider,
80
- * apiKey: email.apiKey,
81
70
  * from: email.from,
82
71
  * smtp: email.smtp,
83
72
  * queue: email.queue,
@@ -175,7 +164,6 @@ type EmailAttachment = z.infer<typeof emailAttachmentSchema>;
175
164
  *
176
165
  * Attachment after resolution, ready for email provider.
177
166
  * Content can be Buffer (for inline) or ReadableStream (for storage-based).
178
- * Both nodemailer and Resend support these formats directly.
179
167
  */
180
168
  interface ResolvedEmailAttachment {
181
169
  filename: string;
@@ -410,7 +398,7 @@ interface EmailBatchSendResult {
410
398
  /**
411
399
  * Email Provider Interface
412
400
  *
413
- * All email provider implementations (Resend, SMTP, etc.) must implement this interface.
401
+ * All email provider implementations must implement this interface.
414
402
  * This allows the EmailService to work with any provider without knowing the implementation details.
415
403
  */
416
404
  interface IEmailProvider {
@@ -431,27 +419,32 @@ interface IEmailProvider {
431
419
  }
432
420
  //#endregion
433
421
  //#region src/email/services/email-provider-factory.d.ts
434
- /**
435
- * Email Provider Factory
436
- *
437
- * Creates email provider instances based on configuration.
438
- * Supports automatic provider selection from module options.
439
- *
440
- * Providers are loaded lazily via dynamic imports to avoid pulling in
441
- * heavy Node.js-only dependencies (e.g. nodemailer) at module parse time,
442
- * which would break Cloudflare Workers and vitest-pool-workers environments.
443
- */
444
422
  declare class EmailProviderFactory {
445
423
  private readonly options;
446
424
  constructor(options: EmailModuleOptions);
425
+ create(): IEmailProvider;
426
+ }
427
+ //#endregion
428
+ //#region src/email/providers/base-email.provider.d.ts
429
+ /**
430
+ * Base Email Provider
431
+ *
432
+ * Abstract base class for email providers.
433
+ * Provides shared implementation of sendBatch() to reduce code duplication.
434
+ */
435
+ declare abstract class BaseEmailProvider implements IEmailProvider {
447
436
  /**
448
- * Create email provider instance based on configuration
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
449
442
  *
450
- * @returns Email provider implementation
451
- * @throws EmailError if provider is not supported
443
+ * Default implementation sends emails sequentially.
444
+ * Concrete providers can override for optimized batch sending.
452
445
  */
453
- create(): Promise<IEmailProvider>;
446
+ sendBatch(messages: ResolvedEmailMessage[]): Promise<EmailBatchSendResult>;
454
447
  }
455
448
  //#endregion
456
- export { EMAIL_TOKENS, EmailAddress, EmailAttachment, EmailError, EmailMessage, EmailModule, EmailModuleOptions, EmailProviderFactory, EmailService, InlineEmailAttachment, ResolvedEmailAttachment, ResolvedEmailMessage, SendBatchEmailInput, SendBatchEmailInputWithTemplate, SendEmailInput, SendEmailInputWithTemplate, SmtpConfig, 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 };
457
450
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
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"],"mappings":"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"}
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":"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"}