@morojs/moro 1.8.0 → 1.8.2

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 (356) hide show
  1. package/README.md +29 -38
  2. package/dist/core/auth/morojs-adapter.js +95 -45
  3. package/dist/core/auth/morojs-adapter.js.map +1 -1
  4. package/dist/core/config/config-manager.js.map +1 -1
  5. package/dist/core/config/config-sources.js +8 -49
  6. package/dist/core/config/config-sources.js.map +1 -1
  7. package/dist/core/config/config-validator.js +2 -3
  8. package/dist/core/config/config-validator.js.map +1 -1
  9. package/dist/core/config/file-loader.js.map +1 -1
  10. package/dist/core/config/index.js.map +1 -1
  11. package/dist/core/config/schema.js +4 -1
  12. package/dist/core/config/schema.js.map +1 -1
  13. package/dist/core/config/utils.js.map +1 -1
  14. package/dist/core/database/adapters/drizzle.js +2 -2
  15. package/dist/core/database/adapters/drizzle.js.map +1 -1
  16. package/dist/core/database/adapters/index.js.map +1 -1
  17. package/dist/core/database/adapters/mongodb.d.ts +1 -0
  18. package/dist/core/database/adapters/mongodb.js +16 -0
  19. package/dist/core/database/adapters/mongodb.js.map +1 -1
  20. package/dist/core/database/adapters/mysql.d.ts +1 -0
  21. package/dist/core/database/adapters/mysql.js +13 -2
  22. package/dist/core/database/adapters/mysql.js.map +1 -1
  23. package/dist/core/database/adapters/postgresql.js +2 -2
  24. package/dist/core/database/adapters/postgresql.js.map +1 -1
  25. package/dist/core/database/adapters/redis.js.map +1 -1
  26. package/dist/core/database/adapters/sql-safety.js +5 -4
  27. package/dist/core/database/adapters/sql-safety.js.map +1 -1
  28. package/dist/core/database/adapters/sqlite.js.map +1 -1
  29. package/dist/core/database/index.js.map +1 -1
  30. package/dist/core/docs/index.js +11 -7
  31. package/dist/core/docs/index.js.map +1 -1
  32. package/dist/core/docs/openapi-generator.js +8 -6
  33. package/dist/core/docs/openapi-generator.js.map +1 -1
  34. package/dist/core/docs/schema-to-openapi.js +3 -3
  35. package/dist/core/docs/schema-to-openapi.js.map +1 -1
  36. package/dist/core/docs/simple-docs.js.map +1 -1
  37. package/dist/core/docs/swagger-ui.js.map +1 -1
  38. package/dist/core/docs/zod-to-openapi.js +2 -2
  39. package/dist/core/docs/zod-to-openapi.js.map +1 -1
  40. package/dist/core/events/event-bus.js +14 -5
  41. package/dist/core/events/event-bus.js.map +1 -1
  42. package/dist/core/events/index.js.map +1 -1
  43. package/dist/core/framework.d.ts +2 -2
  44. package/dist/core/framework.js +21 -14
  45. package/dist/core/framework.js.map +1 -1
  46. package/dist/core/graphql/adapter.js.map +1 -1
  47. package/dist/core/graphql/adapters/graphql-js-adapter.js.map +1 -1
  48. package/dist/core/graphql/core.js.map +1 -1
  49. package/dist/core/graphql/index.js.map +1 -1
  50. package/dist/core/graphql/loader.js.map +1 -1
  51. package/dist/core/graphql/types.js.map +1 -1
  52. package/dist/core/grpc/adapters/grpc-js-adapter.js +4 -0
  53. package/dist/core/grpc/adapters/grpc-js-adapter.js.map +1 -1
  54. package/dist/core/grpc/adapters/index.js.map +1 -1
  55. package/dist/core/grpc/grpc-adapter.js.map +1 -1
  56. package/dist/core/grpc/grpc-manager.js.map +1 -1
  57. package/dist/core/grpc/index.js.map +1 -1
  58. package/dist/core/grpc/middleware/auth.js +1 -1
  59. package/dist/core/grpc/middleware/auth.js.map +1 -1
  60. package/dist/core/grpc/middleware/logging.js.map +1 -1
  61. package/dist/core/grpc/middleware/validation.js +1 -1
  62. package/dist/core/grpc/middleware/validation.js.map +1 -1
  63. package/dist/core/grpc/types.d.ts +7 -7
  64. package/dist/core/grpc/types.js.map +1 -1
  65. package/dist/core/http/http-server.d.ts +0 -13
  66. package/dist/core/http/http-server.js +34 -141
  67. package/dist/core/http/http-server.js.map +1 -1
  68. package/dist/core/http/http2-server.js +27 -5
  69. package/dist/core/http/http2-server.js.map +1 -1
  70. package/dist/core/http/index.js.map +1 -1
  71. package/dist/core/http/moro-engine-server.d.ts +2 -2
  72. package/dist/core/http/moro-engine-server.js +48 -22
  73. package/dist/core/http/moro-engine-server.js.map +1 -1
  74. package/dist/core/http/utils/compression.js +3 -3
  75. package/dist/core/http/utils/compression.js.map +1 -1
  76. package/dist/core/http/utils/lazy-event-emitter.js.map +1 -1
  77. package/dist/core/http/utils/multipart-parser.js +7 -3
  78. package/dist/core/http/utils/multipart-parser.js.map +1 -1
  79. package/dist/core/http/utils/query-parser.js.map +1 -1
  80. package/dist/core/http/utils/size.js +2 -2
  81. package/dist/core/http/utils/size.js.map +1 -1
  82. package/dist/core/http/utils/ssl-config.d.ts +10 -10
  83. package/dist/core/http/utils/ssl-config.js.map +1 -1
  84. package/dist/core/http/utils/uws-worker-clustering.js +37 -30
  85. package/dist/core/http/utils/uws-worker-clustering.js.map +1 -1
  86. package/dist/core/http/uws-http-server.d.ts +1 -0
  87. package/dist/core/http/uws-http-server.js +80 -22
  88. package/dist/core/http/uws-http-server.js.map +1 -1
  89. package/dist/core/jobs/cron-parser.js +7 -5
  90. package/dist/core/jobs/cron-parser.js.map +1 -1
  91. package/dist/core/jobs/index.js.map +1 -1
  92. package/dist/core/jobs/job-executor.d.ts +1 -1
  93. package/dist/core/jobs/job-executor.js.map +1 -1
  94. package/dist/core/jobs/job-scheduler.d.ts +3 -3
  95. package/dist/core/jobs/job-scheduler.js.map +1 -1
  96. package/dist/core/jobs/job-state-manager.d.ts +3 -3
  97. package/dist/core/jobs/job-state-manager.js +25 -4
  98. package/dist/core/jobs/job-state-manager.js.map +1 -1
  99. package/dist/core/jobs/leader-election.d.ts +15 -0
  100. package/dist/core/jobs/leader-election.js +158 -69
  101. package/dist/core/jobs/leader-election.js.map +1 -1
  102. package/dist/core/jobs/types.d.ts +4 -4
  103. package/dist/core/jobs/types.js.map +1 -1
  104. package/dist/core/jobs/utils.d.ts +1 -1
  105. package/dist/core/jobs/utils.js +7 -3
  106. package/dist/core/jobs/utils.js.map +1 -1
  107. package/dist/core/logger/filters.js +3 -2
  108. package/dist/core/logger/filters.js.map +1 -1
  109. package/dist/core/logger/index.js.map +1 -1
  110. package/dist/core/logger/logger.js +56 -25
  111. package/dist/core/logger/logger.js.map +1 -1
  112. package/dist/core/logger/outputs.js.map +1 -1
  113. package/dist/core/mail/adapters/console-adapter.js.map +1 -1
  114. package/dist/core/mail/adapters/index.js.map +1 -1
  115. package/dist/core/mail/adapters/nodemailer-adapter.js.map +1 -1
  116. package/dist/core/mail/adapters/resend-adapter.js.map +1 -1
  117. package/dist/core/mail/adapters/sendgrid-adapter.js.map +1 -1
  118. package/dist/core/mail/adapters/ses-adapter.js.map +1 -1
  119. package/dist/core/mail/index.js.map +1 -1
  120. package/dist/core/mail/mail-adapter.js.map +1 -1
  121. package/dist/core/mail/mail-manager.d.ts +10 -0
  122. package/dist/core/mail/mail-manager.js +21 -5
  123. package/dist/core/mail/mail-manager.js.map +1 -1
  124. package/dist/core/mail/template-engine.js.map +1 -1
  125. package/dist/core/mail/types.js.map +1 -1
  126. package/dist/core/middleware/built-in/auth/core.js +3 -3
  127. package/dist/core/middleware/built-in/auth/core.js.map +1 -1
  128. package/dist/core/middleware/built-in/auth/helpers.js +4 -4
  129. package/dist/core/middleware/built-in/auth/helpers.js.map +1 -1
  130. package/dist/core/middleware/built-in/auth/hook.js.map +1 -1
  131. package/dist/core/middleware/built-in/auth/index.js.map +1 -1
  132. package/dist/core/middleware/built-in/auth/jwt-helpers.d.ts +4 -4
  133. package/dist/core/middleware/built-in/auth/jwt-helpers.js.map +1 -1
  134. package/dist/core/middleware/built-in/auth/middleware.js.map +1 -1
  135. package/dist/core/middleware/built-in/auth/providers.js.map +1 -1
  136. package/dist/core/middleware/built-in/body-parsers/index.js.map +1 -1
  137. package/dist/core/middleware/built-in/body-size/core.js +2 -2
  138. package/dist/core/middleware/built-in/body-size/core.js.map +1 -1
  139. package/dist/core/middleware/built-in/body-size/hook.js.map +1 -1
  140. package/dist/core/middleware/built-in/body-size/index.js.map +1 -1
  141. package/dist/core/middleware/built-in/body-size/middleware.js.map +1 -1
  142. package/dist/core/middleware/built-in/cache/adapters/cache/file.js +3 -1
  143. package/dist/core/middleware/built-in/cache/adapters/cache/file.js.map +1 -1
  144. package/dist/core/middleware/built-in/cache/adapters/cache/index.js.map +1 -1
  145. package/dist/core/middleware/built-in/cache/adapters/cache/memory.js.map +1 -1
  146. package/dist/core/middleware/built-in/cache/adapters/cache/redis.js.map +1 -1
  147. package/dist/core/middleware/built-in/cache/adapters/index.js.map +1 -1
  148. package/dist/core/middleware/built-in/cache/core.js.map +1 -1
  149. package/dist/core/middleware/built-in/cache/hook.js +3 -3
  150. package/dist/core/middleware/built-in/cache/hook.js.map +1 -1
  151. package/dist/core/middleware/built-in/cache/index.js.map +1 -1
  152. package/dist/core/middleware/built-in/cache/middleware.js.map +1 -1
  153. package/dist/core/middleware/built-in/cdn/adapters/cdn/azure.js.map +1 -1
  154. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudflare.js.map +1 -1
  155. package/dist/core/middleware/built-in/cdn/adapters/cdn/cloudfront.js.map +1 -1
  156. package/dist/core/middleware/built-in/cdn/adapters/cdn/index.js.map +1 -1
  157. package/dist/core/middleware/built-in/cdn/adapters/index.js.map +1 -1
  158. package/dist/core/middleware/built-in/cdn/core.js.map +1 -1
  159. package/dist/core/middleware/built-in/cdn/hook.js.map +1 -1
  160. package/dist/core/middleware/built-in/cdn/index.js.map +1 -1
  161. package/dist/core/middleware/built-in/cdn/middleware.js.map +1 -1
  162. package/dist/core/middleware/built-in/compression/core.js.map +1 -1
  163. package/dist/core/middleware/built-in/compression/hook.js.map +1 -1
  164. package/dist/core/middleware/built-in/compression/index.js.map +1 -1
  165. package/dist/core/middleware/built-in/compression/middleware.js.map +1 -1
  166. package/dist/core/middleware/built-in/cookie/core.js.map +1 -1
  167. package/dist/core/middleware/built-in/cookie/hook.js.map +1 -1
  168. package/dist/core/middleware/built-in/cookie/index.js.map +1 -1
  169. package/dist/core/middleware/built-in/cookie/middleware.js.map +1 -1
  170. package/dist/core/middleware/built-in/cors/core.js.map +1 -1
  171. package/dist/core/middleware/built-in/cors/hook.js.map +1 -1
  172. package/dist/core/middleware/built-in/cors/index.js.map +1 -1
  173. package/dist/core/middleware/built-in/cors/middleware.js.map +1 -1
  174. package/dist/core/middleware/built-in/csp/core.js.map +1 -1
  175. package/dist/core/middleware/built-in/csp/hook.js.map +1 -1
  176. package/dist/core/middleware/built-in/csp/index.js.map +1 -1
  177. package/dist/core/middleware/built-in/csp/middleware.js.map +1 -1
  178. package/dist/core/middleware/built-in/csrf/core.js +1 -1
  179. package/dist/core/middleware/built-in/csrf/core.js.map +1 -1
  180. package/dist/core/middleware/built-in/csrf/hook.js.map +1 -1
  181. package/dist/core/middleware/built-in/csrf/index.js.map +1 -1
  182. package/dist/core/middleware/built-in/csrf/middleware.js.map +1 -1
  183. package/dist/core/middleware/built-in/error-tracker/index.js.map +1 -1
  184. package/dist/core/middleware/built-in/error-tracker/middleware.js.map +1 -1
  185. package/dist/core/middleware/built-in/graphql/core.js.map +1 -1
  186. package/dist/core/middleware/built-in/graphql/helpers.js.map +1 -1
  187. package/dist/core/middleware/built-in/graphql/hook.js.map +1 -1
  188. package/dist/core/middleware/built-in/graphql/index.js.map +1 -1
  189. package/dist/core/middleware/built-in/graphql/middleware.js.map +1 -1
  190. package/dist/core/middleware/built-in/graphql/subscriptions.js.map +1 -1
  191. package/dist/core/middleware/built-in/helmet/core.js.map +1 -1
  192. package/dist/core/middleware/built-in/helmet/hook.js.map +1 -1
  193. package/dist/core/middleware/built-in/helmet/index.js.map +1 -1
  194. package/dist/core/middleware/built-in/helmet/middleware.js.map +1 -1
  195. package/dist/core/middleware/built-in/http2/core.js.map +1 -1
  196. package/dist/core/middleware/built-in/http2/hook.js.map +1 -1
  197. package/dist/core/middleware/built-in/http2/index.js.map +1 -1
  198. package/dist/core/middleware/built-in/http2/middleware.js.map +1 -1
  199. package/dist/core/middleware/built-in/index.js.map +1 -1
  200. package/dist/core/middleware/built-in/performance-monitor/index.js.map +1 -1
  201. package/dist/core/middleware/built-in/performance-monitor/middleware.js.map +1 -1
  202. package/dist/core/middleware/built-in/range/core.js +4 -1
  203. package/dist/core/middleware/built-in/range/core.js.map +1 -1
  204. package/dist/core/middleware/built-in/range/hook.js.map +1 -1
  205. package/dist/core/middleware/built-in/range/index.js.map +1 -1
  206. package/dist/core/middleware/built-in/range/middleware.js.map +1 -1
  207. package/dist/core/middleware/built-in/rate-limit/core.js.map +1 -1
  208. package/dist/core/middleware/built-in/rate-limit/hook.js.map +1 -1
  209. package/dist/core/middleware/built-in/rate-limit/index.js.map +1 -1
  210. package/dist/core/middleware/built-in/rate-limit/middleware.js.map +1 -1
  211. package/dist/core/middleware/built-in/request-logger/index.js.map +1 -1
  212. package/dist/core/middleware/built-in/request-logger/middleware.js.map +1 -1
  213. package/dist/core/middleware/built-in/session/core.js +4 -4
  214. package/dist/core/middleware/built-in/session/core.js.map +1 -1
  215. package/dist/core/middleware/built-in/session/hook.js.map +1 -1
  216. package/dist/core/middleware/built-in/session/index.js.map +1 -1
  217. package/dist/core/middleware/built-in/session/middleware.js.map +1 -1
  218. package/dist/core/middleware/built-in/sse/core.js.map +1 -1
  219. package/dist/core/middleware/built-in/sse/hook.js.map +1 -1
  220. package/dist/core/middleware/built-in/sse/index.js.map +1 -1
  221. package/dist/core/middleware/built-in/sse/middleware.js.map +1 -1
  222. package/dist/core/middleware/built-in/static/core.js.map +1 -1
  223. package/dist/core/middleware/built-in/static/hook.js.map +1 -1
  224. package/dist/core/middleware/built-in/static/index.js.map +1 -1
  225. package/dist/core/middleware/built-in/static/middleware.js.map +1 -1
  226. package/dist/core/middleware/built-in/template/core.js +1 -1
  227. package/dist/core/middleware/built-in/template/core.js.map +1 -1
  228. package/dist/core/middleware/built-in/template/hook.js.map +1 -1
  229. package/dist/core/middleware/built-in/template/index.js.map +1 -1
  230. package/dist/core/middleware/built-in/template/middleware.js.map +1 -1
  231. package/dist/core/middleware/built-in/upload/core.js.map +1 -1
  232. package/dist/core/middleware/built-in/upload/hook.js.map +1 -1
  233. package/dist/core/middleware/built-in/upload/index.js.map +1 -1
  234. package/dist/core/middleware/built-in/upload/middleware.js.map +1 -1
  235. package/dist/core/middleware/built-in/validation/core.js.map +1 -1
  236. package/dist/core/middleware/built-in/validation/hook.js.map +1 -1
  237. package/dist/core/middleware/built-in/validation/index.js.map +1 -1
  238. package/dist/core/middleware/built-in/validation/middleware.js.map +1 -1
  239. package/dist/core/middleware/index.js +2 -2
  240. package/dist/core/middleware/index.js.map +1 -1
  241. package/dist/core/modules/auto-discovery.js +11 -7
  242. package/dist/core/modules/auto-discovery.js.map +1 -1
  243. package/dist/core/modules/index.js.map +1 -1
  244. package/dist/core/modules/modules.js +18 -13
  245. package/dist/core/modules/modules.js.map +1 -1
  246. package/dist/core/networking/adapters/engine-adapter.js +30 -2
  247. package/dist/core/networking/adapters/engine-adapter.js.map +1 -1
  248. package/dist/core/networking/adapters/index.js.map +1 -1
  249. package/dist/core/networking/adapters/socketio-adapter.d.ts +1 -0
  250. package/dist/core/networking/adapters/socketio-adapter.js +12 -1
  251. package/dist/core/networking/adapters/socketio-adapter.js.map +1 -1
  252. package/dist/core/networking/adapters/uws-adapter.js +1 -1
  253. package/dist/core/networking/adapters/uws-adapter.js.map +1 -1
  254. package/dist/core/networking/adapters/ws-adapter.d.ts +15 -0
  255. package/dist/core/networking/adapters/ws-adapter.js +120 -6
  256. package/dist/core/networking/adapters/ws-adapter.js.map +1 -1
  257. package/dist/core/networking/index.js.map +1 -1
  258. package/dist/core/networking/service-discovery.js +7 -5
  259. package/dist/core/networking/service-discovery.js.map +1 -1
  260. package/dist/core/networking/websocket-adapter.d.ts +22 -3
  261. package/dist/core/networking/websocket-adapter.js.map +1 -1
  262. package/dist/core/networking/websocket-manager.js +70 -67
  263. package/dist/core/networking/websocket-manager.js.map +1 -1
  264. package/dist/core/pooling/object-pool-manager.js +6 -0
  265. package/dist/core/pooling/object-pool-manager.js.map +1 -1
  266. package/dist/core/queue/adapters/bull-adapter.js.map +1 -1
  267. package/dist/core/queue/adapters/index.js.map +1 -1
  268. package/dist/core/queue/adapters/kafka-adapter.js +2 -2
  269. package/dist/core/queue/adapters/kafka-adapter.js.map +1 -1
  270. package/dist/core/queue/adapters/memory-adapter.js +6 -6
  271. package/dist/core/queue/adapters/memory-adapter.js.map +1 -1
  272. package/dist/core/queue/adapters/rabbitmq-adapter.d.ts +50 -0
  273. package/dist/core/queue/adapters/rabbitmq-adapter.js +176 -20
  274. package/dist/core/queue/adapters/rabbitmq-adapter.js.map +1 -1
  275. package/dist/core/queue/adapters/sqs-adapter.d.ts +12 -2
  276. package/dist/core/queue/adapters/sqs-adapter.js +75 -24
  277. package/dist/core/queue/adapters/sqs-adapter.js.map +1 -1
  278. package/dist/core/queue/index.js.map +1 -1
  279. package/dist/core/queue/middleware/index.js.map +1 -1
  280. package/dist/core/queue/middleware/monitoring.d.ts +1 -1
  281. package/dist/core/queue/middleware/monitoring.js.map +1 -1
  282. package/dist/core/queue/middleware/priority.js +2 -1
  283. package/dist/core/queue/middleware/priority.js.map +1 -1
  284. package/dist/core/queue/middleware/rate-limit.js.map +1 -1
  285. package/dist/core/queue/queue-adapter.js.map +1 -1
  286. package/dist/core/queue/queue-manager.js.map +1 -1
  287. package/dist/core/queue/types.d.ts +8 -8
  288. package/dist/core/queue/types.js.map +1 -1
  289. package/dist/core/routing/app-integration.js.map +1 -1
  290. package/dist/core/routing/create-router.js.map +1 -1
  291. package/dist/core/routing/index.js.map +1 -1
  292. package/dist/core/routing/path-matcher.js.map +1 -1
  293. package/dist/core/routing/radix-tree.js.map +1 -1
  294. package/dist/core/routing/router.js.map +1 -1
  295. package/dist/core/routing/unified-router.js +12 -4
  296. package/dist/core/routing/unified-router.js.map +1 -1
  297. package/dist/core/runtime/aws-lambda-adapter.js.map +1 -1
  298. package/dist/core/runtime/base-adapter.js +2 -2
  299. package/dist/core/runtime/base-adapter.js.map +1 -1
  300. package/dist/core/runtime/cloudflare-workers-adapter.js +2 -0
  301. package/dist/core/runtime/cloudflare-workers-adapter.js.map +1 -1
  302. package/dist/core/runtime/index.js.map +1 -1
  303. package/dist/core/runtime/node-adapter.js +19 -17
  304. package/dist/core/runtime/node-adapter.js.map +1 -1
  305. package/dist/core/runtime/vercel-edge-adapter.js +2 -0
  306. package/dist/core/runtime/vercel-edge-adapter.js.map +1 -1
  307. package/dist/core/utilities/circuit-breaker.d.ts +1 -0
  308. package/dist/core/utilities/circuit-breaker.js +25 -2
  309. package/dist/core/utilities/circuit-breaker.js.map +1 -1
  310. package/dist/core/utilities/container.js +9 -9
  311. package/dist/core/utilities/container.js.map +1 -1
  312. package/dist/core/utilities/hooks.js +28 -6
  313. package/dist/core/utilities/hooks.js.map +1 -1
  314. package/dist/core/utilities/index.js.map +1 -1
  315. package/dist/core/utilities/module-path.js.map +1 -1
  316. package/dist/core/utilities/package-utils.js +1 -1
  317. package/dist/core/utilities/package-utils.js.map +1 -1
  318. package/dist/core/utilities/response-helpers.js +1 -1
  319. package/dist/core/utilities/response-helpers.js.map +1 -1
  320. package/dist/core/validation/adapters.js.map +1 -1
  321. package/dist/core/validation/error-handler.js.map +1 -1
  322. package/dist/core/validation/index.js.map +1 -1
  323. package/dist/core/validation/schema-interface.js.map +1 -1
  324. package/dist/core/workers/facade.js.map +1 -1
  325. package/dist/core/workers/index.js.map +1 -1
  326. package/dist/core/workers/worker-entry.d.ts +1 -0
  327. package/dist/core/workers/worker-entry.js +12 -0
  328. package/dist/core/workers/worker-entry.js.map +1 -0
  329. package/dist/core/workers/worker-manager.d.ts +23 -2
  330. package/dist/core/workers/worker-manager.js +117 -17
  331. package/dist/core/workers/worker-manager.js.map +1 -1
  332. package/dist/core/workers/worker.js +8 -6
  333. package/dist/core/workers/worker.js.map +1 -1
  334. package/dist/index.d.ts +1 -1
  335. package/dist/index.js +4 -1
  336. package/dist/index.js.map +1 -1
  337. package/dist/moro.d.ts +18 -1
  338. package/dist/moro.js +168 -50
  339. package/dist/moro.js.map +1 -1
  340. package/dist/types/auth.d.ts +4 -4
  341. package/dist/types/auth.js.map +1 -1
  342. package/dist/types/cache.js.map +1 -1
  343. package/dist/types/cdn.js.map +1 -1
  344. package/dist/types/config.d.ts +10 -10
  345. package/dist/types/config.js.map +1 -1
  346. package/dist/types/core.js.map +1 -1
  347. package/dist/types/database.js.map +1 -1
  348. package/dist/types/discovery.js.map +1 -1
  349. package/dist/types/events.js.map +1 -1
  350. package/dist/types/hooks.js.map +1 -1
  351. package/dist/types/http.js.map +1 -1
  352. package/dist/types/logger.js.map +1 -1
  353. package/dist/types/module.js.map +1 -1
  354. package/dist/types/runtime.js.map +1 -1
  355. package/dist/types/session.js.map +1 -1
  356. package/package.json +29 -17
@@ -1 +1 @@
1
- {"version":3,"file":"sendgrid-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/sendgrid-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendgrid-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/sendgrid-adapter.ts"],"names":[],"mappings":"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","sourcesContent":["// SendGrid Adapter - SendGrid Email Service\n// ESM-first module with lazy loading\n\nimport { BaseMailAdapter } from '../mail-adapter.js';\nimport type { MailOptions, MailResult, SendGridConnection } from '../types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../../utilities/package-utils.js';\nimport { createFrameworkLogger } from '../../logger/index.js';\nimport type { Logger } from '../../../types/logger.js';\n\n/**\n * SendGrid adapter for email sending\n * Supports SendGrid API features\n */\nexport class SendGridAdapter extends BaseMailAdapter {\n private client: any;\n private logger: Logger;\n private sandboxMode: boolean;\n\n constructor() {\n super();\n this.logger = createFrameworkLogger('Mail:SendGrid');\n this.sandboxMode = false;\n }\n\n override async initialize(config: SendGridConnection): Promise<void> {\n if (!config.apiKey) {\n throw new Error('SendGrid API key is required');\n }\n\n if (!isPackageAvailable('@sendgrid/mail')) {\n throw new Error(\n 'SendGrid mail package is not installed.\\n' +\n 'Install it with: npm install @sendgrid/mail\\n' +\n 'Or use a different mail adapter.'\n );\n }\n\n const sendgridPath = resolveUserPackage('@sendgrid/mail');\n const sgMail = await import(sendgridPath);\n\n sgMail.default.setApiKey(config.apiKey);\n this.client = sgMail.default;\n this.sandboxMode = config.sandboxMode || false;\n\n await super.initialize(config);\n this.logger.info('SendGrid adapter initialized', 'Mail');\n }\n\n async send(options: MailOptions): Promise<MailResult> {\n this.ensureInitialized();\n\n if (!this.client) {\n throw new Error('SendGrid client not initialized');\n }\n\n try {\n const msg: any = {\n from: this.formatAddress(options.from),\n to: this.formatAddressesArray(options.to),\n subject: options.subject,\n text: options.text,\n html: options.html,\n };\n\n if (options.cc) {\n msg.cc = this.formatAddressesArray(options.cc);\n }\n\n if (options.bcc) {\n msg.bcc = this.formatAddressesArray(options.bcc);\n }\n\n if (options.replyTo) {\n msg.replyTo = this.formatAddress(options.replyTo);\n }\n\n if (options.attachments) {\n msg.attachments = options.attachments.map(att => ({\n filename: att.filename,\n content: Buffer.isBuffer(att.content) ? att.content.toString('base64') : att.content,\n type: att.contentType,\n disposition: 'attachment',\n contentId: att.cid,\n }));\n }\n\n // Build headers with compliance fields\n const headers: Record<string, string> = { ...options.headers };\n\n if (options.messageId) {\n headers['Message-ID'] = options.messageId;\n }\n\n if (options.references) {\n headers['References'] = Array.isArray(options.references)\n ? options.references.join(' ')\n : options.references;\n }\n\n if (options.inReplyTo) {\n headers['In-Reply-To'] = options.inReplyTo;\n }\n\n // List management headers (RFC 2369)\n if (options.listUnsubscribe) {\n headers['List-Unsubscribe'] = Array.isArray(options.listUnsubscribe)\n ? `<${options.listUnsubscribe.join('>, <')}>`\n : `<${options.listUnsubscribe}>`;\n }\n\n if (options.listUnsubscribePost) {\n headers['List-Unsubscribe-Post'] = options.listUnsubscribePost;\n }\n\n if (options.listId) {\n headers['List-ID'] = options.listId;\n }\n\n if (Object.keys(headers).length > 0) {\n msg.headers = headers;\n }\n\n // SendGrid-specific features\n if (options.tags && options.tags.length > 0) {\n msg.categories = options.tags;\n }\n\n if (options.metadata) {\n msg.customArgs = options.metadata;\n }\n\n if (options.scheduledAt) {\n msg.sendAt = Math.floor(options.scheduledAt.getTime() / 1000);\n }\n\n if (this.sandboxMode) {\n msg.mailSettings = {\n sandboxMode: {\n enable: true,\n },\n };\n }\n\n const response = await this.client.send(msg);\n\n return {\n success: true,\n messageId: response[0]?.headers?.['x-message-id'],\n response: JSON.stringify(response[0]),\n };\n } catch (error: any) {\n this.logger.error('Failed to send email via SendGrid', 'Mail', { error });\n\n return {\n success: false,\n error: error?.message || String(error),\n };\n }\n }\n\n override async sendBulk(options: MailOptions[]): Promise<MailResult[]> {\n this.ensureInitialized();\n\n if (!this.client) {\n throw new Error('SendGrid client not initialized');\n }\n\n try {\n const messages = options.map(opts => ({\n from: this.formatAddress(opts.from),\n to: this.formatAddressesArray(opts.to),\n subject: opts.subject,\n text: opts.text,\n html: opts.html,\n }));\n\n const response = await this.client.send(messages);\n\n return response.map((res: any) => ({\n success: true,\n messageId: res?.headers?.['x-message-id'],\n response: JSON.stringify(res),\n }));\n } catch (error: any) {\n this.logger.error('Failed to send bulk emails via SendGrid', 'Mail', { error });\n\n return options.map(() => ({\n success: false,\n error: error?.message || String(error),\n }));\n }\n }\n\n getName(): string {\n return 'SendGrid';\n }\n\n override async verify(): Promise<boolean> {\n return this.initialized;\n }\n\n private formatAddress(address: any): any {\n if (!address) {\n return '';\n }\n\n if (typeof address === 'string') {\n return { email: address };\n }\n\n return {\n email: address.email,\n name: address.name,\n };\n }\n\n private formatAddressesArray(addresses: any): any[] {\n if (!addresses) {\n return [];\n }\n\n if (typeof addresses === 'string') {\n return [{ email: addresses }];\n }\n\n if (Array.isArray(addresses)) {\n return addresses.map(addr => this.formatAddress(addr));\n }\n\n return [this.formatAddress(addresses)];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ses-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/ses-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ses-adapter.js","sourceRoot":"","sources":["../../../../src/core/mail/adapters/ses-adapter.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,qCAAqC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;GAGG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IACrC,MAAM,CAAM;IACZ,MAAM,CAAS;IACf,gBAAgB,CAAsB;IAE9C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IAEQ,KAAK,CAAC,UAAU,CAAC,MAAqB;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,iCAAiC;gBAC/B,oDAAoD;gBACpD,kCAAkC,CACrC,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,YAAY,GAAQ;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;QAEF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAChD,CAAC;aAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;YACxD,YAAY,CAAC,WAAW,GAAG;gBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnD,MAAM,WAAW,GAAQ;gBACvB,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;aACnD,CAAC;YAEF,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;gBAChB,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,OAAO,GAAQ;gBACnB,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO,CAAC,OAAO;oBACrB,OAAO,EAAE,OAAO;iBACjB;gBACD,IAAI,EAAE,EAAE;aACT,CAAC;YAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,OAAO;iBACjB,CAAC;YACJ,CAAC;YAED,MAAM,aAAa,GAAQ;gBACzB,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC9C,WAAW,EAAE,WAAW;gBACxB,OAAO,EAAE,OAAO;gBAChB,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3F,oBAAoB,EAAE,IAAI,CAAC,gBAAgB;aAC5C,CAAC;YAEF,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,aAAa,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAChD,CAAC;YAED,qFAAqF;YACrF,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,aAAa,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,CAAC;oBACrE,IAAI,EAAE,OAAO,KAAK,EAAE;oBACpB,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC,CAAC;YACN,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;aACnC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAErE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;aACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,SAAS,CAAC;IACnB,CAAC;IAEQ,KAAK,CAAC,MAAM;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;YAC1D,MAAM,EAAE,+BAA+B,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,IAAI,+BAA+B,CAAC,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,OAAY;QACtC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,IAAI,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,GAAG,CAAC;QAChD,CAAC;QAED,OAAO,OAAO,CAAC,KAAK,CAAC;IACvB,CAAC;IAEO,oBAAoB,CAAC,SAAc;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;CACF","sourcesContent":["// AWS SES Adapter - Amazon Simple Email Service\n// ESM-first module with lazy loading\n\nimport { BaseMailAdapter } from '../mail-adapter.js';\nimport type { MailOptions, MailResult, SESConnection } from '../types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../../utilities/package-utils.js';\nimport { createFrameworkLogger } from '../../logger/index.js';\nimport type { Logger } from '../../../types/logger.js';\n\n/**\n * AWS SES adapter for email sending\n * Supports AWS Simple Email Service\n */\nexport class SESAdapter extends BaseMailAdapter {\n private client: any;\n private logger: Logger;\n private configurationSet?: string | undefined;\n\n constructor() {\n super();\n this.logger = createFrameworkLogger('Mail:SES');\n }\n\n override async initialize(config: SESConnection): Promise<void> {\n if (!config.region) {\n throw new Error('AWS region is required for SES adapter');\n }\n\n if (!isPackageAvailable('@aws-sdk/client-ses')) {\n throw new Error(\n 'AWS SES SDK is not installed.\\n' +\n 'Install it with: npm install @aws-sdk/client-ses\\n' +\n 'Or use a different mail adapter.'\n );\n }\n\n const sesPath = resolveUserPackage('@aws-sdk/client-ses');\n const { SESClient } = await import(sesPath);\n\n const clientConfig: any = {\n region: config.region,\n };\n\n if (config.credentials) {\n clientConfig.credentials = config.credentials;\n } else if (config.accessKeyId && config.secretAccessKey) {\n clientConfig.credentials = {\n accessKeyId: config.accessKeyId,\n secretAccessKey: config.secretAccessKey,\n };\n }\n\n this.client = new SESClient(clientConfig);\n this.configurationSet = config.configurationSet;\n\n await super.initialize(config);\n this.logger.info('AWS SES adapter initialized', 'Mail');\n }\n\n async send(options: MailOptions): Promise<MailResult> {\n this.ensureInitialized();\n\n if (!this.client) {\n throw new Error('SES client not initialized');\n }\n\n try {\n const sesPath = resolveUserPackage('@aws-sdk/client-ses');\n const { SendEmailCommand } = await import(sesPath);\n\n const destination: any = {\n ToAddresses: this.formatAddressesArray(options.to),\n };\n\n if (options.cc) {\n destination.CcAddresses = this.formatAddressesArray(options.cc);\n }\n\n if (options.bcc) {\n destination.BccAddresses = this.formatAddressesArray(options.bcc);\n }\n\n const message: any = {\n Subject: {\n Data: options.subject,\n Charset: 'UTF-8',\n },\n Body: {},\n };\n\n if (options.text) {\n message.Body.Text = {\n Data: options.text,\n Charset: 'UTF-8',\n };\n }\n\n if (options.html) {\n message.Body.Html = {\n Data: options.html,\n Charset: 'UTF-8',\n };\n }\n\n const commandParams: any = {\n Source: this.formatSingleAddress(options.from),\n Destination: destination,\n Message: message,\n ReplyToAddresses: options.replyTo ? [this.formatSingleAddress(options.replyTo)] : undefined,\n ConfigurationSetName: this.configurationSet,\n };\n\n if (options.returnPath) {\n commandParams.ReturnPath = options.returnPath;\n }\n\n // Add custom headers via Tags (SES limitation - headers must be added via raw email)\n if (options.tags && options.tags.length > 0) {\n commandParams.Tags = options.tags.map((tag: string, index: number) => ({\n Name: `tag-${index}`,\n Value: tag,\n }));\n }\n\n const command = new SendEmailCommand(commandParams);\n\n const response = await this.client.send(command);\n\n return {\n success: true,\n messageId: response.MessageId,\n response: JSON.stringify(response),\n };\n } catch (error: any) {\n this.logger.error('Failed to send email via SES', 'Mail', { error });\n\n return {\n success: false,\n error: error?.message || String(error),\n };\n }\n }\n\n getName(): string {\n return 'AWS SES';\n }\n\n override async verify(): Promise<boolean> {\n if (!this.client) {\n return false;\n }\n\n try {\n const sesPath = resolveUserPackage('@aws-sdk/client-ses');\n const { GetAccountSendingEnabledCommand } = await import(sesPath);\n\n const command = new GetAccountSendingEnabledCommand({});\n await this.client.send(command);\n return true;\n } catch (error) {\n this.logger.error('SES verification failed', 'Mail', { error });\n return false;\n }\n }\n\n private formatSingleAddress(address: any): string {\n if (!address) {\n return '';\n }\n\n if (typeof address === 'string') {\n return address;\n }\n\n if (address.name) {\n return `\"${address.name}\" <${address.email}>`;\n }\n\n return address.email;\n }\n\n private formatAddressesArray(addresses: any): string[] {\n if (!addresses) {\n return [];\n }\n\n if (typeof addresses === 'string') {\n return [addresses];\n }\n\n if (Array.isArray(addresses)) {\n return addresses.map(addr => {\n if (typeof addr === 'string') {\n return addr;\n }\n return addr.email;\n });\n }\n\n if (typeof addresses === 'object') {\n return [addresses.email];\n }\n\n return [];\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/mail/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,mBAAmB;AAmBnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/mail/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,mBAAmB;AAmBnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,kBAAkB;AAClB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,qBAAqB,CAAC","sourcesContent":["// Mail System - Public API\n// ESM-first module\n\nexport type {\n MailConfig,\n MailOptions,\n MailResult,\n MailAdapter,\n MailAdapterType,\n EmailAddress,\n EmailAttachment,\n TemplateConfig,\n TemplateEngine,\n MailQueueConfig,\n NodemailerConnection,\n SendGridConnection,\n SESConnection,\n ResendConnection,\n} from './types.js';\n\nexport { MailManager } from './mail-manager.js';\nexport { TemplateEngineManager } from './template-engine.js';\nexport { BaseMailAdapter } from './mail-adapter.js';\n\n// Export adapters\nexport {\n ConsoleAdapter,\n NodemailerAdapter,\n SendGridAdapter,\n SESAdapter,\n ResendAdapter,\n} from './adapters/index.js';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mail-adapter.js","sourceRoot":"","sources":["../../../src/core/mail/mail-adapter.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,mBAAmB;AAInB;;;GAGG;AACH,MAAM,OAAgB,eAAe;IACzB,MAAM,CAAM;IACZ,WAAW,GAAG,KAAK,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAW;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAYD;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,OAAkD;QAI3E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACO,kBAAkB,CAC1B,SAIsC;QAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"mail-adapter.js","sourceRoot":"","sources":["../../../src/core/mail/mail-adapter.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,mBAAmB;AAInB;;;GAGG;AACH,MAAM,OAAgB,eAAe;IACzB,MAAM,CAAM;IACZ,WAAW,GAAG,KAAK,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAW;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAYD;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAsB;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,OAAkD;QAI3E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACO,kBAAkB,CAC1B,SAIsC;QAEtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACO,iBAAiB;QACzB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,oDAAoD,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;CACF","sourcesContent":["// Base Mail Adapter Interface\n// ESM-first module\n\nimport type { MailAdapter, MailOptions, MailResult } from './types.js';\n\n/**\n * Abstract base class for mail adapters\n * Provides common functionality and interface\n */\nexport abstract class BaseMailAdapter implements MailAdapter {\n protected config: any;\n protected initialized = false;\n\n /**\n * Initialize adapter with configuration\n */\n async initialize(config: any): Promise<void> {\n this.config = config;\n this.initialized = true;\n }\n\n /**\n * Send an email (must be implemented by subclasses)\n */\n abstract send(options: MailOptions): Promise<MailResult>;\n\n /**\n * Get adapter name (must be implemented by subclasses)\n */\n abstract getName(): string;\n\n /**\n * Send multiple emails in bulk\n * Default implementation sends one by one\n * Override for better performance\n */\n async sendBulk(options: MailOptions[]): Promise<MailResult[]> {\n if (!this.initialized) {\n throw new Error(`${this.getName()} adapter not initialized`);\n }\n\n const results: MailResult[] = [];\n\n for (const mailOptions of options) {\n try {\n const result = await this.send(mailOptions);\n results.push(result);\n } catch (error) {\n results.push({\n success: false,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return results;\n }\n\n /**\n * Verify adapter connection (optional)\n */\n async verify(): Promise<boolean> {\n return this.initialized;\n }\n\n /**\n * Close adapter connections (optional)\n */\n async close(): Promise<void> {\n this.initialized = false;\n }\n\n /**\n * Normalize email address\n */\n protected normalizeAddress(address: string | { name?: string; email: string }): {\n name?: string;\n email: string;\n } {\n if (typeof address === 'string') {\n return { email: address };\n }\n return address;\n }\n\n /**\n * Normalize email addresses array\n */\n protected normalizeAddresses(\n addresses:\n | string\n | string[]\n | { name?: string; email: string }\n | { name?: string; email: string }[]\n ): { name?: string; email: string }[] {\n if (!addresses) {\n return [];\n }\n\n if (Array.isArray(addresses)) {\n return addresses.map(addr => this.normalizeAddress(addr));\n }\n\n return [this.normalizeAddress(addresses)];\n }\n\n /**\n * Check if adapter is initialized\n */\n protected ensureInitialized(): void {\n if (!this.initialized) {\n throw new Error(`${this.getName()} adapter not initialized. Call initialize() first.`);\n }\n }\n}\n"]}
@@ -24,6 +24,16 @@ export declare class MailManager {
24
24
  * Send an email
25
25
  */
26
26
  send(options: MailOptions): Promise<MailResult>;
27
+ /**
28
+ * Deliver an email immediately through the adapter, bypassing the queue.
29
+ *
30
+ * The mail queue processor MUST call this instead of send(): send() re-checks
31
+ * queue.enabled and re-enqueues, so routing a dequeued job back through it
32
+ * loops forever and no mail is ever delivered. Options pulled off the queue
33
+ * are already from-defaulted and template-rendered, so no re-processing is
34
+ * needed here.
35
+ */
36
+ deliver(options: MailOptions): Promise<MailResult>;
27
37
  /**
28
38
  * Send email directly (synchronous)
29
39
  */
@@ -94,9 +94,10 @@ export class MailManager {
94
94
  if (!options.from && !this.defaultFrom) {
95
95
  throw new Error('Email "from" address not specified');
96
96
  }
97
+ const resolvedFrom = options.from || this.defaultFrom;
97
98
  const mailOptions = {
98
99
  ...options,
99
- from: options.from || this.defaultFrom,
100
+ ...(resolvedFrom ? { from: resolvedFrom } : {}),
100
101
  };
101
102
  if (!mailOptions.from) {
102
103
  throw new Error('Email "from" address could not be determined');
@@ -124,6 +125,18 @@ export class MailManager {
124
125
  }
125
126
  return this.sendDirect(mailOptions);
126
127
  }
128
+ /**
129
+ * Deliver an email immediately through the adapter, bypassing the queue.
130
+ *
131
+ * The mail queue processor MUST call this instead of send(): send() re-checks
132
+ * queue.enabled and re-enqueues, so routing a dequeued job back through it
133
+ * loops forever and no mail is ever delivered. Options pulled off the queue
134
+ * are already from-defaulted and template-rendered, so no re-processing is
135
+ * needed here.
136
+ */
137
+ async deliver(options) {
138
+ return this.sendDirect(options);
139
+ }
127
140
  /**
128
141
  * Send email directly (synchronous)
129
142
  */
@@ -204,10 +217,13 @@ export class MailManager {
204
217
  if (!this.adapter) {
205
218
  throw new Error('Mail adapter not initialized');
206
219
  }
207
- const mailOptions = options.map(opts => ({
208
- ...opts,
209
- from: opts.from || this.defaultFrom,
210
- }));
220
+ const mailOptions = options.map(opts => {
221
+ const resolvedFrom = opts.from || this.defaultFrom;
222
+ return {
223
+ ...opts,
224
+ ...(resolvedFrom ? { from: resolvedFrom } : {}),
225
+ };
226
+ });
211
227
  if (mailOptions.some(opts => !opts.from)) {
212
228
  throw new Error('Email "from" address not specified for one or more emails');
213
229
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mail-manager.js","sourceRoot":"","sources":["../../../src/core/mail/mail-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail-manager.js","sourceRoot":"","sources":["../../../src/core/mail/mail-manager.ts"],"names":[],"mappings":"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","sourcesContent":["// Mail Manager - Main Email System Controller\n// ESM-first module\n\nimport type {\n MailConfig,\n MailOptions,\n MailResult,\n MailAdapter,\n MailAdapterType,\n EmailAddress,\n} from './types.js';\nimport { TemplateEngineManager } from './template-engine.js';\nimport { createFrameworkLogger } from '../logger/index.js';\nimport type { Logger } from '../../types/logger.js';\n\n/**\n * Main mail manager class\n * Coordinates adapters, templates, and queue integration\n */\nexport class MailManager {\n private config: MailConfig;\n private adapter?: MailAdapter;\n private templateEngine?: TemplateEngineManager;\n private logger: Logger;\n private defaultFrom?: string | EmailAddress | undefined;\n private queueManager?: any;\n\n constructor(config: MailConfig = {}) {\n this.config = config;\n this.logger = createFrameworkLogger('Mail');\n this.defaultFrom = config.from;\n }\n\n /**\n * Initialize mail manager\n */\n async initialize(): Promise<void> {\n this.logger.info('Initializing mail system', 'Mail', {\n adapter: this.config.adapter || 'console',\n templates: !!this.config.templates?.path,\n queue: this.config.queue?.enabled || false,\n });\n\n // Load adapter\n await this.loadAdapter();\n\n // Initialize template engine if configured\n if (this.config.templates) {\n this.templateEngine = new TemplateEngineManager(this.config.templates);\n\n if (this.config.templates.engine && this.config.templates.engine !== 'moro') {\n await this.templateEngine.loadExternalEngine(this.config.templates.engine);\n }\n\n if (this.config.templates.partials) {\n await this.templateEngine.loadPartials();\n }\n\n if (this.config.templates.helpers) {\n for (const [name, fn] of Object.entries(this.config.templates.helpers)) {\n this.templateEngine.registerHelper(name, fn);\n }\n }\n }\n\n this.logger.info('Mail system initialized successfully', 'Mail');\n }\n\n /**\n * Load email adapter based on configuration\n */\n private async loadAdapter(): Promise<void> {\n const adapterType = (this.config.adapter || 'console') as MailAdapterType;\n\n this.logger.debug(`Loading ${adapterType} adapter`, 'Mail');\n\n try {\n if (adapterType === 'console') {\n const { ConsoleAdapter } = await import('./adapters/console-adapter.js');\n this.adapter = new ConsoleAdapter();\n } else if (adapterType === 'nodemailer') {\n const { NodemailerAdapter } = await import('./adapters/nodemailer-adapter.js');\n this.adapter = new NodemailerAdapter();\n } else if (adapterType === 'sendgrid') {\n const { SendGridAdapter } = await import('./adapters/sendgrid-adapter.js');\n this.adapter = new SendGridAdapter();\n } else if (adapterType === 'ses') {\n const { SESAdapter } = await import('./adapters/ses-adapter.js');\n this.adapter = new SESAdapter();\n } else if (adapterType === 'resend') {\n const { ResendAdapter } = await import('./adapters/resend-adapter.js');\n this.adapter = new ResendAdapter();\n } else {\n throw new Error(`Unknown mail adapter: ${adapterType}`);\n }\n\n await this.adapter.initialize(this.config.connection || {});\n this.logger.info(`${this.adapter.getName()} adapter loaded successfully`, 'Mail');\n } catch (error) {\n this.logger.error(`Failed to load ${adapterType} adapter`, 'Mail', { error });\n throw error;\n }\n }\n\n /**\n * Send an email\n */\n async send(options: MailOptions): Promise<MailResult> {\n if (!this.adapter) {\n throw new Error('Mail adapter not initialized');\n }\n\n if (!options.from && !this.defaultFrom) {\n throw new Error('Email \"from\" address not specified');\n }\n\n const resolvedFrom = options.from || this.defaultFrom;\n const mailOptions: MailOptions = {\n ...options,\n ...(resolvedFrom ? { from: resolvedFrom } : {}),\n };\n\n if (!mailOptions.from) {\n throw new Error('Email \"from\" address could not be determined');\n }\n\n if (options.template && this.templateEngine) {\n try {\n const rendered = await this.templateEngine.renderFile(options.template, options.data || {});\n\n if (rendered.html) {\n mailOptions.html = rendered.html;\n }\n if (rendered.text) {\n mailOptions.text = rendered.text;\n }\n } catch (error) {\n this.logger.error('Template rendering failed', 'Mail', {\n error,\n template: options.template,\n });\n throw error;\n }\n }\n\n if (this.config.queue?.enabled && this.queueManager) {\n return this.sendViaQueue(mailOptions);\n }\n\n return this.sendDirect(mailOptions);\n }\n\n /**\n * Deliver an email immediately through the adapter, bypassing the queue.\n *\n * The mail queue processor MUST call this instead of send(): send() re-checks\n * queue.enabled and re-enqueues, so routing a dequeued job back through it\n * loops forever and no mail is ever delivered. Options pulled off the queue\n * are already from-defaulted and template-rendered, so no re-processing is\n * needed here.\n */\n async deliver(options: MailOptions): Promise<MailResult> {\n return this.sendDirect(options);\n }\n\n /**\n * Send email directly (synchronous)\n */\n private async sendDirect(options: MailOptions): Promise<MailResult> {\n if (!this.adapter) {\n throw new Error('Mail adapter not initialized');\n }\n\n try {\n this.logger.debug('Sending email', 'Mail', {\n to: options.to,\n subject: options.subject,\n });\n\n const result = await this.adapter.send(options);\n\n if (result.success) {\n this.logger.info('Email sent successfully', 'Mail', {\n to: options.to,\n subject: options.subject,\n messageId: result.messageId,\n });\n } else {\n this.logger.warn('Email send failed', 'Mail', {\n to: options.to,\n subject: options.subject,\n error: result.error,\n });\n }\n\n return result;\n } catch (error) {\n this.logger.error('Email send error', 'Mail', {\n error,\n to: options.to,\n subject: options.subject,\n });\n\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Send email via queue (asynchronous)\n */\n private async sendViaQueue(options: MailOptions): Promise<MailResult> {\n if (!this.queueManager) {\n throw new Error('Queue manager not set. Call setQueueManager() first.');\n }\n\n const queueName = this.config.queue?.name || 'emails';\n\n try {\n const job = await this.queueManager.addToQueue(queueName, options, {\n priority: this.config.queue?.priority || 0,\n delay: this.config.queue?.delay || 0,\n attempts: this.config.queue?.attempts || 3,\n });\n\n this.logger.info('Email queued for sending', 'Mail', {\n jobId: job.id,\n to: options.to,\n subject: options.subject,\n });\n\n return {\n success: true,\n messageId: job.id,\n };\n } catch (error) {\n this.logger.error('Failed to queue email', 'Mail', { error });\n\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Send multiple emails in bulk\n */\n async sendBulk(options: MailOptions[]): Promise<MailResult[]> {\n if (!this.adapter) {\n throw new Error('Mail adapter not initialized');\n }\n\n const mailOptions: MailOptions[] = options.map(opts => {\n const resolvedFrom = opts.from || this.defaultFrom;\n return {\n ...opts,\n ...(resolvedFrom ? { from: resolvedFrom } : {}),\n };\n });\n\n if (mailOptions.some(opts => !opts.from)) {\n throw new Error('Email \"from\" address not specified for one or more emails');\n }\n\n if (this.config.queue?.enabled && this.queueManager) {\n return this.sendBulkViaQueue(mailOptions);\n }\n\n if (this.adapter.sendBulk) {\n return this.adapter.sendBulk(mailOptions);\n }\n\n const results: MailResult[] = [];\n for (const opts of mailOptions) {\n results.push(await this.send(opts));\n }\n\n return results;\n }\n\n /**\n * Send bulk emails via queue\n */\n private async sendBulkViaQueue(options: MailOptions[]): Promise<MailResult[]> {\n if (!this.queueManager) {\n throw new Error('Queue manager not set');\n }\n\n const queueName = this.config.queue?.name || 'emails';\n const jobs = options.map(opts => ({\n data: opts,\n options: {\n priority: this.config.queue?.priority || 0,\n delay: this.config.queue?.delay || 0,\n attempts: this.config.queue?.attempts || 3,\n },\n }));\n\n try {\n const queuedJobs = await this.queueManager.addBulkToQueue(queueName, jobs);\n\n return queuedJobs.map((job: any) => ({\n success: true,\n messageId: job.id,\n }));\n } catch (error) {\n this.logger.error('Failed to queue bulk emails', 'Mail', { error });\n\n return options.map(() => ({\n success: false,\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n }\n\n /**\n * Set queue manager for async email sending\n */\n setQueueManager(queueManager: any): void {\n this.queueManager = queueManager;\n }\n\n /**\n * Verify adapter connection\n */\n async verify(): Promise<boolean> {\n if (!this.adapter || !this.adapter.verify) {\n return false;\n }\n\n try {\n return await this.adapter.verify();\n } catch (error) {\n this.logger.error('Adapter verification failed', 'Mail', { error });\n return false;\n }\n }\n\n /**\n * Close connections and clean up\n */\n async close(): Promise<void> {\n if (this.adapter?.close) {\n await this.adapter.close();\n }\n\n if (this.templateEngine) {\n this.templateEngine.clearCache();\n }\n }\n\n /**\n * Get template engine\n */\n getTemplateEngine(): TemplateEngineManager | undefined {\n return this.templateEngine;\n }\n\n /**\n * Get adapter\n */\n getAdapter(): MailAdapter | undefined {\n return this.adapter;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/core/mail/template-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-engine.js","sourceRoot":"","sources":["../../../src/core/mail/template-engine.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,8DAA8D;AAE9D,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEvF;;;GAGG;AACH,MAAM,kBAAkB;IACd,QAAQ,GAAG,IAAI,GAAG,EAAiD,CAAC;IACpE,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7C,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,IAAyB;QACtD,yBAAyB;QACzB,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE/C,uBAAuB;QACvB,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEtD,gBAAgB;QAChB,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE/C,oBAAoB;QACpB,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,QAAgB;QACtB,OAAO,CAAC,IAAyB,EAAE,EAAE;YACnC,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC/C,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACtD,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/C,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,IAAY,EAAE,QAAgB;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAEO,eAAe,CAAC,QAAgB;QACtC,OAAO,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YAC3D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CAAC,QAAgB,EAAE,IAAyB;QACrE,OAAO,QAAQ,CAAC,OAAO,CACrB,uEAAuE,EACvE,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QAChC,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,QAAgB,EAAE,IAAyB;QAC9D,OAAO,QAAQ,CAAC,OAAO,CACrB,gDAAgD,EAChD,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,KAAK;iBACT,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;gBACjB,IAAI,QAAQ,GAAG,IAAI,CAAC;gBAEpB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAChD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;wBACpD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC;iBACD,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,QAAgB,EAAE,IAAyB;QAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACvC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,QAAQ,CAAC,IAAyB,EAAE,IAAY;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,GAAQ,IAAI,CAAC;QAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IACxB,MAAM,CAAiB;IACvB,MAAM,CAA0B;IAChC,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;IAC/B,UAAU,CAAiB;IAEnC,YAAY,SAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,IAAI;YACX,GAAG,MAAM;SACV,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,IAAoB;QACvC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,kBAAkB,EAAE,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,mCAAmC,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,YAAoB,EAAE,IAAyB;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,YAAY,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QAEtD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;YAEzE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAE1D,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;QACzE,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEtD,OAAO,EAAE,IAAI,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,IAAyB;QAC5D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAAoB;QAC3C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,gCAAgC,GAAG,yCAAyC,CAC7E,CAAC;YACJ,CAAC;YAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACxD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;YAEhD,IAAI,CAAC,MAAM,GAAG;gBACZ,MAAM,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAyB,EAAE,EAAE;oBAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC9D,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBACD,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;oBAC5B,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC9C,CAAC;gBACD,cAAc,EAAE,CAAC,IAAY,EAAE,EAA2B,EAAE,EAAE;oBAC5D,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC9C,CAAC;gBACD,eAAe,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,EAAE;oBAClD,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACrD,CAAC;aACF,CAAC;QACJ,CAAC;aAAM,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,kCAAkC,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YAElC,IAAI,CAAC,MAAM,GAAG;gBACZ,MAAM,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAyB,EAAE,EAAE;oBAC5D,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC5C,CAAC;gBACD,OAAO,EAAE,CAAC,QAAgB,EAAE,EAAE;oBAC5B,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACvC,CAAC;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY,EAAE,EAA2B;QACtD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY,EAAE,QAAgB;QAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAErD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;oBAClF,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oDAAoD;QACtD,CAAC;IACH,CAAC;CACF","sourcesContent":["// Email Template Engine\n// ESM-first module with support for Moro, Handlebars, and EJS\n\nimport fs from 'fs/promises';\nimport path from 'path';\nimport type {\n TemplateConfig,\n TemplateEngineInterface,\n TemplateEngine,\n TemplateResult,\n} from './types.js';\nimport { isPackageAvailable, resolveUserPackage } from '../utilities/package-utils.js';\n\n/**\n * Moro built-in template engine\n * Supports: {{variable}}, {{#if}}, {{#each}}, partials\n */\nclass MoroTemplateEngine implements TemplateEngineInterface {\n private compiled = new Map<string, (data: Record<string, any>) => string>();\n private partials = new Map<string, string>();\n\n async render(template: string, data: Record<string, any>): Promise<string> {\n // Replace partials first\n let processed = this.processPartials(template);\n\n // Process conditionals\n processed = this.processConditionals(processed, data);\n\n // Process loops\n processed = this.processLoops(processed, data);\n\n // Process variables\n processed = this.processVariables(processed, data);\n\n return processed;\n }\n\n compile(template: string): (data: Record<string, any>) => string {\n return (data: Record<string, any>) => {\n let processed = this.processPartials(template);\n processed = this.processConditionals(processed, data);\n processed = this.processLoops(processed, data);\n processed = this.processVariables(processed, data);\n return processed;\n };\n }\n\n registerPartial(name: string, template: string): void {\n this.partials.set(name, template);\n }\n\n private processPartials(template: string): string {\n return template.replace(/\\{\\{>\\s*(\\w+)\\s*\\}\\}/g, (_, name) => {\n return this.partials.get(name) || '';\n });\n }\n\n private processConditionals(template: string, data: Record<string, any>): string {\n return template.replace(\n /\\{\\{#if\\s+(\\w+)\\}\\}([\\s\\S]*?)(?:\\{\\{else\\}\\}([\\s\\S]*?))?\\{\\{\\/if\\}\\}/g,\n (_, condition, truthy, falsy = '') => {\n const value = this.getValue(data, condition);\n return value ? truthy : falsy;\n }\n );\n }\n\n private processLoops(template: string, data: Record<string, any>): string {\n return template.replace(\n /\\{\\{#each\\s+(\\w+)\\}\\}([\\s\\S]*?)\\{\\{\\/each\\}\\}/g,\n (_, arrayName, body) => {\n const array = this.getValue(data, arrayName);\n\n if (!Array.isArray(array)) {\n return '';\n }\n\n return array\n .map((item: any) => {\n let itemBody = body;\n\n if (typeof item === 'object') {\n for (const [key, value] of Object.entries(item)) {\n const regex = new RegExp(`\\\\{\\\\{${key}\\\\}\\\\}`, 'g');\n itemBody = itemBody.replace(regex, String(value));\n }\n } else {\n itemBody = itemBody.replace(/\\{\\{this\\}\\}/g, String(item));\n }\n\n return itemBody;\n })\n .join('');\n }\n );\n }\n\n private processVariables(template: string, data: Record<string, any>): string {\n return template.replace(/\\{\\{(\\w+(?:\\.\\w+)*)\\}\\}/g, (_, key) => {\n const value = this.getValue(data, key);\n return value !== undefined && value !== null ? String(value) : '';\n });\n }\n\n private getValue(data: Record<string, any>, path: string): any {\n const keys = path.split('.');\n let value: any = data;\n\n for (const key of keys) {\n if (!value || typeof value !== 'object') {\n return undefined;\n }\n value = value[key];\n }\n\n return value;\n }\n}\n\n/**\n * Main template engine manager\n */\nexport class TemplateEngineManager {\n private config: TemplateConfig;\n private engine: TemplateEngineInterface;\n private cache = new Map<string, any>();\n private engineType: TemplateEngine;\n\n constructor(config: TemplateConfig = {}) {\n this.config = {\n engine: 'moro',\n cache: true,\n ...config,\n };\n this.engineType = this.config.engine || 'moro';\n this.engine = this.createEngine(this.engineType);\n }\n\n /**\n * Create template engine instance\n */\n private createEngine(type: TemplateEngine): TemplateEngineInterface {\n if (type === 'moro') {\n return new MoroTemplateEngine();\n }\n\n throw new Error(`Template engine \"${type}\" will be lazy loaded when needed`);\n }\n\n /**\n * Render a template file with data\n */\n async renderFile(templateName: string, data: Record<string, any>): Promise<TemplateResult> {\n if (!this.config.path) {\n throw new Error('Template path not configured');\n }\n\n const cacheKey = `${templateName}:${this.engineType}`;\n\n if (!this.config.cache || !this.cache.has(cacheKey)) {\n const templatePath = path.join(this.config.path, `${templateName}.html`);\n\n try {\n const template = await fs.readFile(templatePath, 'utf-8');\n\n if (this.config.cache && this.engine.compile) {\n this.cache.set(cacheKey, this.engine.compile(template));\n }\n } catch {\n throw new Error(`Template file not found: ${templatePath}`);\n }\n }\n\n if (this.config.cache && this.cache.has(cacheKey)) {\n const compiled = this.cache.get(cacheKey);\n const html = compiled(data);\n return { html };\n }\n\n const templatePath = path.join(this.config.path, `${templateName}.html`);\n const template = await fs.readFile(templatePath, 'utf-8');\n const html = await this.engine.render(template, data);\n\n return { html };\n }\n\n /**\n * Render a template string with data\n */\n async renderString(template: string, data: Record<string, any>): Promise<string> {\n return await this.engine.render(template, data);\n }\n\n /**\n * Load external template engine (Handlebars, EJS)\n */\n async loadExternalEngine(type: TemplateEngine): Promise<void> {\n if (type === 'moro') {\n return;\n }\n\n if (type === 'handlebars') {\n if (!isPackageAvailable('handlebars')) {\n throw new Error(\n 'Handlebars is not installed.\\n' + 'Install it with: npm install handlebars'\n );\n }\n\n const handlebarsPath = resolveUserPackage('handlebars');\n const Handlebars = await import(handlebarsPath);\n\n this.engine = {\n render: async (template: string, data: Record<string, any>) => {\n const compiledTemplate = Handlebars.default.compile(template);\n return compiledTemplate(data);\n },\n compile: (template: string) => {\n return Handlebars.default.compile(template);\n },\n registerHelper: (name: string, fn: (...args: any[]) => any) => {\n Handlebars.default.registerHelper(name, fn);\n },\n registerPartial: (name: string, template: string) => {\n Handlebars.default.registerPartial(name, template);\n },\n };\n } else if (type === 'ejs') {\n if (!isPackageAvailable('ejs')) {\n throw new Error('EJS is not installed.\\n' + 'Install it with: npm install ejs');\n }\n\n const ejsPath = resolveUserPackage('ejs');\n const ejs = await import(ejsPath);\n\n this.engine = {\n render: async (template: string, data: Record<string, any>) => {\n return ejs.default.render(template, data);\n },\n compile: (template: string) => {\n return ejs.default.compile(template);\n },\n };\n }\n }\n\n /**\n * Register a helper function\n */\n registerHelper(name: string, fn: (...args: any[]) => any): void {\n if (this.engine.registerHelper) {\n this.engine.registerHelper(name, fn);\n }\n }\n\n /**\n * Register a partial template\n */\n registerPartial(name: string, template: string): void {\n if (this.engine.registerPartial) {\n this.engine.registerPartial(name, template);\n }\n }\n\n /**\n * Clear template cache\n */\n clearCache(): void {\n this.cache.clear();\n }\n\n /**\n * Load partials from directory\n */\n async loadPartials(): Promise<void> {\n if (!this.config.partials) {\n return;\n }\n\n try {\n const files = await fs.readdir(this.config.partials);\n\n for (const file of files) {\n if (file.endsWith('.html')) {\n const name = file.replace('.html', '');\n const content = await fs.readFile(path.join(this.config.partials, file), 'utf-8');\n this.registerPartial(name, content);\n }\n }\n } catch {\n // Partials directory doesn't exist or can't be read\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/mail/types.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,gDAAgD"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/mail/types.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,gDAAgD","sourcesContent":["// Email System Types\n// ESM-first module with full TypeScript support\n\n/**\n * Email address representation\n */\nexport interface EmailAddress {\n name?: string;\n email: string;\n}\n\n/**\n * Email attachment\n */\nexport interface EmailAttachment {\n filename: string;\n content: Buffer | string;\n encoding?: string;\n contentType?: string;\n cid?: string;\n}\n\n/**\n * Core email options\n */\nexport interface MailOptions {\n to: string | string[] | EmailAddress | EmailAddress[];\n from?: string | EmailAddress;\n subject: string;\n text?: string;\n html?: string;\n template?: string;\n data?: Record<string, any>;\n cc?: string | string[] | EmailAddress | EmailAddress[];\n bcc?: string | string[] | EmailAddress | EmailAddress[];\n replyTo?: string | EmailAddress;\n attachments?: EmailAttachment[];\n\n // Custom headers - add ANY headers you need\n // Common examples: X-Mailer, X-Priority, X-Request-ID, X-Campaign-ID, etc.\n headers?: Record<string, string>;\n\n priority?: 'high' | 'normal' | 'low';\n\n // Compliance and threading headers\n messageId?: string;\n references?: string | string[];\n inReplyTo?: string;\n\n // Sender identification (RFC 5322)\n sender?: string | EmailAddress;\n returnPath?: string;\n\n // List management (RFC 2369 - Required for bulk email compliance)\n listUnsubscribe?: string | string[];\n listUnsubscribePost?: string;\n listId?: string;\n listHelp?: string;\n listSubscribe?: string;\n listOwner?: string;\n listArchive?: string;\n\n // Delivery and tracking\n dsn?: {\n notify?: 'never' | 'success' | 'failure' | 'delay';\n returnFull?: boolean;\n returnHeaders?: boolean;\n };\n\n // Encoding and content\n encoding?: string;\n textEncoding?: string;\n\n // Additional metadata\n date?: Date;\n messageIdDomain?: string;\n\n // Tags for tracking/categorization (provider-specific)\n tags?: string[];\n metadata?: Record<string, string>;\n\n // Scheduling (if supported by adapter)\n scheduledAt?: Date;\n}\n\n/**\n * Email send result\n */\nexport interface MailResult {\n success: boolean;\n messageId?: string;\n error?: string;\n accepted?: string[];\n rejected?: string[];\n response?: string;\n}\n\n/**\n * Adapter types\n */\nexport type MailAdapterType = 'nodemailer' | 'sendgrid' | 'ses' | 'resend' | 'console';\n\n/**\n * Template engine types\n */\nexport type TemplateEngine = 'moro' | 'handlebars' | 'ejs';\n\n/**\n * Template configuration\n */\nexport interface TemplateConfig {\n path?: string;\n engine?: TemplateEngine;\n cache?: boolean;\n partials?: string;\n layouts?: string;\n helpers?: Record<string, (...args: any[]) => any>;\n}\n\n/**\n * Queue configuration for async email sending\n */\nexport interface MailQueueConfig {\n enabled?: boolean;\n name?: string;\n priority?: number;\n delay?: number;\n attempts?: number;\n}\n\n/**\n * Mail manager configuration\n */\nexport interface MailConfig {\n adapter?: MailAdapterType | string;\n from?: string | EmailAddress;\n connection?: any;\n templates?: TemplateConfig;\n queue?: MailQueueConfig;\n debug?: boolean;\n}\n\n/**\n * Nodemailer-specific connection options\n */\nexport interface NodemailerConnection {\n host?: string;\n port?: number;\n secure?: boolean;\n auth?: {\n user: string;\n pass: string;\n };\n service?: string;\n pool?: boolean;\n maxConnections?: number;\n maxMessages?: number;\n}\n\n/**\n * SendGrid-specific connection options\n */\nexport interface SendGridConnection {\n apiKey: string;\n sandboxMode?: boolean;\n}\n\n/**\n * AWS SES-specific connection options\n */\nexport interface SESConnection {\n region: string;\n accessKeyId?: string;\n secretAccessKey?: string;\n credentials?: any;\n configurationSet?: string;\n}\n\n/**\n * Resend-specific connection options\n */\nexport interface ResendConnection {\n apiKey: string;\n}\n\n/**\n * Template render result\n */\nexport interface TemplateResult {\n html?: string;\n text?: string;\n}\n\n/**\n * Base mail adapter interface\n */\nexport interface MailAdapter {\n /**\n * Initialize the adapter with configuration\n */\n initialize(config: any): Promise<void>;\n\n /**\n * Send an email\n */\n send(options: MailOptions): Promise<MailResult>;\n\n /**\n * Send multiple emails in bulk\n */\n sendBulk?(options: MailOptions[]): Promise<MailResult[]>;\n\n /**\n * Verify adapter connection\n */\n verify?(): Promise<boolean>;\n\n /**\n * Close adapter connections\n */\n close?(): Promise<void>;\n\n /**\n * Get adapter name\n */\n getName(): string;\n}\n\n/**\n * Template engine interface\n */\nexport interface TemplateEngineInterface {\n /**\n * Render a template with data\n */\n render(template: string, data: Record<string, any>): Promise<string>;\n\n /**\n * Compile a template for caching\n */\n compile?(template: string): any;\n\n /**\n * Register a helper function\n */\n registerHelper?(name: string, fn: (...args: any[]) => any): void;\n\n /**\n * Register a partial template\n */\n registerPartial?(name: string, template: string): void;\n}\n\n/**\n * Mail events\n */\nexport interface MailEvents {\n 'mail:configured': { config: MailConfig };\n 'mail:sending': { options: MailOptions };\n 'mail:sent': { result: MailResult; options: MailOptions };\n 'mail:failed': { error: Error; options: MailOptions };\n 'mail:queued': { jobId: string; options: MailOptions };\n 'template:rendered': { template: string; data: Record<string, any> };\n 'template:error': { error: Error; template: string };\n}\n"]}
@@ -381,9 +381,9 @@ export class AuthCore {
381
381
  */
382
382
  createAuthRequest(session, token) {
383
383
  const authRequest = {
384
- user: session?.user || undefined,
385
- session: session || undefined,
386
- token: token || undefined,
384
+ ...(session?.user ? { user: session.user } : {}),
385
+ ...(session ? { session } : {}),
386
+ ...(token ? { token } : {}),
387
387
  isAuthenticated: !!session?.user,
388
388
  signIn: async (provider, options) => {
389
389
  if (!this.authInstance) {
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/core.ts"],"names":[],"mappings":"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","sourcesContent":["// Auth Core - Reusable authentication logic with Better Auth\nimport crypto from 'crypto';\nimport { HttpRequest, HttpResponse } from '../../../../types/http.js';\nimport { AuthOptions, AuthProvider, AuthSession, AuthRequest } from '../../../../types/auth.js';\nimport { safeVerifyJWT, createAuthErrorResponse } from './jwt-helpers.js';\nimport { createFrameworkLogger } from '../../../logger/index.js';\n\nconst logger = createFrameworkLogger('AuthCore');\n\n// ===== Better Auth Provider Factory Functions =====\n\nexport const providers = {\n // OAuth Providers - Better Auth native support\n google: (options: { clientId: string; clientSecret: string; scope?: string }): AuthProvider => ({\n id: 'google',\n name: 'Google',\n type: 'oauth' as const,\n authorization: 'https://accounts.google.com/oauth/authorize',\n token: 'https://oauth2.googleapis.com/token',\n userinfo: 'https://www.googleapis.com/oauth2/v2/userinfo',\n ...options,\n }),\n\n github: (options: { clientId: string; clientSecret: string; scope?: string }): AuthProvider => ({\n id: 'github',\n name: 'GitHub',\n type: 'oauth' as const,\n authorization: 'https://github.com/login/oauth/authorize',\n token: 'https://github.com/login/oauth/access_token',\n userinfo: 'https://api.github.com/user',\n ...options,\n }),\n\n discord: (options: { clientId: string; clientSecret: string; scope?: string }): AuthProvider => ({\n id: 'discord',\n name: 'Discord',\n type: 'oauth' as const,\n authorization: 'https://discord.com/api/oauth2/authorize',\n token: 'https://discord.com/api/oauth2/token',\n userinfo: 'https://discord.com/api/users/@me',\n ...options,\n }),\n\n twitter: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'twitter',\n name: 'Twitter',\n type: 'oauth' as const,\n authorization: 'https://twitter.com/i/oauth2/authorize',\n token: 'https://api.twitter.com/2/oauth2/token',\n userinfo: 'https://api.twitter.com/2/users/me',\n ...options,\n }),\n\n microsoft: (options: {\n clientId: string;\n clientSecret: string;\n tenant?: string;\n }): AuthProvider => ({\n id: 'microsoft',\n name: 'Microsoft',\n type: 'oauth' as const,\n authorization: `https://login.microsoftonline.com/${options.tenant || 'common'}/oauth2/v2.0/authorize`,\n token: `https://login.microsoftonline.com/${options.tenant || 'common'}/oauth2/v2.0/token`,\n userinfo: 'https://graph.microsoft.com/oidc/userinfo',\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n }),\n\n apple: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'apple',\n name: 'Apple',\n type: 'oauth' as const,\n authorization: 'https://appleid.apple.com/auth/authorize',\n token: 'https://appleid.apple.com/auth/token',\n ...options,\n }),\n\n facebook: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'facebook',\n name: 'Facebook',\n type: 'oauth' as const,\n authorization: 'https://www.facebook.com/v18.0/dialog/oauth',\n token: 'https://graph.facebook.com/v18.0/oauth/access_token',\n userinfo: 'https://graph.facebook.com/me?fields=id,name,email,picture',\n ...options,\n }),\n\n linkedin: (options: { clientId: string; clientSecret: string }): AuthProvider => ({\n id: 'linkedin',\n name: 'LinkedIn',\n type: 'oauth' as const,\n authorization: 'https://www.linkedin.com/oauth/v2/authorization',\n token: 'https://www.linkedin.com/oauth/v2/accessToken',\n userinfo: 'https://api.linkedin.com/v2/me',\n ...options,\n }),\n\n // Traditional Providers\n credentials: (options: {\n name?: string;\n credentials: Record<string, any>;\n authorize: (credentials: any) => Promise<any>;\n }): AuthProvider => ({\n id: 'credentials',\n name: options.name || 'Credentials',\n type: 'credentials' as const,\n ...options,\n }),\n\n email: (options: {\n server: string | { host: string; port: number; auth: any };\n from: string;\n }): AuthProvider => ({\n id: 'email',\n name: 'Email',\n type: 'email' as const,\n ...options,\n }),\n\n // Modern Passwordless Authentication\n magicLink: (options: {\n from: string;\n sendMagicLink?: (email: string, url: string) => Promise<void>;\n expiresIn?: number; // in seconds, default 300 (5 minutes)\n }): AuthProvider => ({\n id: 'magic-link',\n name: 'Magic Link',\n type: 'email' as const,\n from: options.from,\n sendMagicLink: options.sendMagicLink,\n expiresIn: options.expiresIn || 300,\n }),\n\n otp: (options: {\n from?: string;\n sendOTP?: (contact: string, code: string) => Promise<void>;\n expiresIn?: number; // in seconds, default 300 (5 minutes)\n length?: number; // OTP code length, default 6\n }): AuthProvider => ({\n id: 'otp',\n name: 'One-Time Password',\n type: 'email' as const,\n from: options.from || '',\n sendOTP: options.sendOTP,\n expiresIn: options.expiresIn || 300,\n length: options.length || 6,\n }),\n\n passkey: (options: {\n rpName?: string; // Relying Party name\n rpId?: string; // Relying Party ID (usually your domain)\n origin?: string; // Origin URL\n }): AuthProvider => ({\n id: 'passkey',\n name: 'Passkey (WebAuthn)',\n type: 'credentials' as const,\n rpName: options.rpName || 'MoroJS App',\n rpId: options.rpId,\n origin: options.origin,\n }),\n};\n\n// ===== Two-Factor Authentication (2FA) Options =====\n// 2FA in Better Auth is configured as a plugin, not a provider\n// These helper types define 2FA configuration options\n\nexport interface TwoFactorAuthOptions {\n /**\n * Enable TOTP (Time-based One-Time Password) via authenticator apps\n * @default true\n */\n totp?: boolean;\n\n /**\n * Enable backup codes for account recovery\n * @default true\n */\n backupCodes?: boolean;\n\n /**\n * Number of backup codes to generate\n * @default 10\n */\n backupCodesCount?: number;\n\n /**\n * Trust device after successful 2FA verification\n * @default true\n */\n trustDevice?: boolean;\n\n /**\n * Duration to trust a device (in seconds)\n * @default 2592000 (30 days)\n */\n trustDeviceDuration?: number;\n\n /**\n * Issuer name for TOTP (shown in authenticator apps)\n */\n issuer?: string;\n}\n\n/**\n * Helper to create 2FA configuration\n * Usage in auth config:\n * ```ts\n * auth({\n * plugins: [twoFactor({ issuer: 'MyApp' })],\n * ...\n * })\n * ```\n */\nexport function twoFactor(options: TwoFactorAuthOptions = {}) {\n return {\n type: '2fa' as const,\n totp: options.totp !== false,\n backupCodes: options.backupCodes !== false,\n backupCodesCount: options.backupCodesCount || 10,\n trustDevice: options.trustDevice !== false,\n trustDeviceDuration: options.trustDeviceDuration || 2592000,\n issuer: options.issuer || 'MoroJS App',\n };\n}\n\n// ===== Additional Plugin Helpers =====\n\n/**\n * Organization/Multi-tenant plugin configuration\n * Enables support for organizations, teams, and multi-tenant applications\n */\nexport interface OrganizationOptions {\n /**\n * Allow users to create organizations\n * @default true\n */\n allowUserCreate?: boolean;\n\n /**\n * Maximum number of organizations per user\n * @default 10\n */\n maxOrganizationsPerUser?: number;\n\n /**\n * Enable role-based access within organizations\n * @default true\n */\n organizationRoles?: boolean;\n}\n\nexport function organization(options: OrganizationOptions = {}) {\n return {\n type: 'organization' as const,\n allowUserCreate: options.allowUserCreate !== false,\n maxOrganizationsPerUser: options.maxOrganizationsPerUser || 10,\n organizationRoles: options.organizationRoles !== false,\n };\n}\n\n/**\n * Anonymous user support\n * Allows users to interact with your app before signing up\n */\nexport interface AnonymousOptions {\n /**\n * Automatically link anonymous accounts when user signs up\n * @default true\n */\n linkOnSignUp?: boolean;\n\n /**\n * Anonymous session duration (in seconds)\n * @default 2592000 (30 days)\n */\n sessionDuration?: number;\n}\n\nexport function anonymous(options: AnonymousOptions = {}) {\n return {\n type: 'anonymous' as const,\n linkOnSignUp: options.linkOnSignUp !== false,\n sessionDuration: options.sessionDuration || 2592000,\n };\n}\n\n/**\n * Account linking - allows users to link multiple auth providers to one account\n */\nexport interface AccountLinkingOptions {\n /**\n * Automatically link accounts with same email\n * @default false (requires user confirmation for security)\n */\n autoLinkSameEmail?: boolean;\n\n /**\n * Allow users to manually link additional providers\n * @default true\n */\n allowManualLink?: boolean;\n}\n\nexport function accountLinking(options: AccountLinkingOptions = {}) {\n return {\n type: 'account-linking' as const,\n autoLinkSameEmail: options.autoLinkSameEmail || false,\n allowManualLink: options.allowManualLink !== false,\n };\n}\n\n/**\n * Rate limiting configuration for authentication endpoints\n */\nexport interface RateLimitOptions {\n /**\n * Maximum failed login attempts before lockout\n * @default 5\n */\n maxAttempts?: number;\n\n /**\n * Lockout duration in seconds\n * @default 900 (15 minutes)\n */\n lockoutDuration?: number;\n\n /**\n * Window to track attempts (in seconds)\n * @default 300 (5 minutes)\n */\n window?: number;\n}\n\nexport function rateLimit(options: RateLimitOptions = {}) {\n return {\n type: 'rate-limit' as const,\n maxAttempts: options.maxAttempts || 5,\n lockoutDuration: options.lockoutDuration || 900,\n window: options.window || 300,\n };\n}\n\n/**\n * Bearer token support for API authentication\n */\nexport interface BearerTokenOptions {\n /**\n * Token expiration time (in seconds)\n * @default 3600 (1 hour)\n */\n expiresIn?: number;\n\n /**\n * Allow refresh tokens\n * @default true\n */\n refreshTokens?: boolean;\n\n /**\n * Refresh token expiration (in seconds)\n * @default 2592000 (30 days)\n */\n refreshTokenExpiresIn?: number;\n}\n\nexport function bearerToken(options: BearerTokenOptions = {}) {\n return {\n type: 'bearer-token' as const,\n expiresIn: options.expiresIn || 3600,\n refreshTokens: options.refreshTokens !== false,\n refreshTokenExpiresIn: options.refreshTokenExpiresIn || 2592000,\n };\n}\n\n// ===== Auth Implementation =====\n\ninterface AuthInstance {\n handler: (req: any, res: any) => Promise<any>;\n getSession: ({ req }: { req: any }) => Promise<AuthSession | null>;\n verifyJWT: (token: string) => Promise<any>;\n signIn: (provider?: string, options?: any) => Promise<{ url: string }>;\n signOut: (options?: any) => Promise<{ url: string }>;\n updateSession: (session: any) => Promise<any>;\n getCsrfToken: () => Promise<string>;\n}\n\nasync function handleSignIn(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling sign in request', 'SignIn');\n return null;\n}\n\nasync function handleSignOut(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling sign out request', 'SignOut');\n return null;\n}\n\nasync function handleCallback(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling OAuth callback', 'Callback');\n return null;\n}\n\nasync function handleSession(_req: any, _res: any, _config: AuthOptions) {\n logger.debug('Handling session request', 'Session');\n return null;\n}\n\nasync function initializeAuthJS(config: AuthOptions): Promise<AuthInstance> {\n return {\n handler: async (req: any, res: any) => {\n const basePath = config.basePath || '/api/auth';\n const path = req.url.replace(basePath, '');\n\n if (path.startsWith('/signin')) {\n return handleSignIn(req, res, config);\n } else if (path.startsWith('/signout')) {\n return handleSignOut(req, res, config);\n } else if (path.startsWith('/callback')) {\n return handleCallback(req, res, config);\n } else if (path.startsWith('/session')) {\n return handleSession(req, res, config);\n }\n\n return null;\n },\n\n getSession: async ({ req }: { req: any }) => {\n const sessionId =\n req.cookies?.['next-auth.session-token'] ||\n req.cookies?.['__Secure-next-auth.session-token'];\n\n if (sessionId && req.session) {\n const sessionMaxAge = config.session?.maxAge || 30 * 24 * 60 * 60;\n return {\n user: req.session.user || null,\n expires: new Date(Date.now() + sessionMaxAge * 1000),\n sessionToken: sessionId,\n userId: req.session.user?.id || '',\n };\n }\n\n return null;\n },\n\n verifyJWT: async (token: string) => {\n const secret =\n process.env.JWT_SECRET ||\n config.jwt?.secret ||\n config.secret ||\n (() => {\n const generated = crypto.randomBytes(32).toString('hex');\n logger.warn(\n '[MoroJS Security] No JWT secret configured. A random secret was generated — JWTs will NOT survive restarts. Set JWT_SECRET for production use.',\n 'AuthCore'\n );\n return generated;\n })();\n const result = await safeVerifyJWT(token, secret);\n\n if (!result.success) {\n const customError = new Error(result.error?.message || 'JWT verification failed');\n (customError as any).jwtErrorType = result.error?.type;\n (customError as any).jwtErrorDetails = result.error;\n\n if (result.error?.type === 'expired') {\n customError.name = 'TokenExpiredError';\n (customError as any).expiredAt = result.error.expiredAt;\n } else if (result.error?.type === 'invalid') {\n customError.name = 'JsonWebTokenError';\n } else if (result.error?.type === 'malformed') {\n customError.name = 'NotBeforeError';\n (customError as any).date = result.error.date;\n }\n\n throw customError;\n }\n\n return result.payload;\n },\n\n signIn: async (provider?: string, _options?: any) => {\n return { url: `${config.basePath}/signin${provider ? `/${provider}` : ''}` };\n },\n\n signOut: async (_options?: any) => {\n return { url: `${config.basePath}/signout` };\n },\n\n updateSession: async (session: any) => {\n return session;\n },\n\n getCsrfToken: async () => {\n return crypto.randomBytes(32).toString('hex');\n },\n };\n}\n\n// ===== Core Logic =====\n\n/**\n * AuthCore - Core authentication logic with Better Auth\n * Used directly by the router for route-based authentication\n * Now delegates to the main morojs-adapter for Better Auth integration\n */\nexport class AuthCore {\n private config: AuthOptions;\n private authInstance: AuthInstance | null = null;\n private cachedProviderMap: Record<string, AuthProvider> | null = null;\n\n constructor(options: AuthOptions) {\n this.config = {\n secret:\n process.env.NEXTAUTH_SECRET ||\n process.env.AUTH_SECRET ||\n (() => {\n const generated = crypto.randomBytes(32).toString('hex');\n logger.warn(\n '[MoroJS Security] No secret configured for auth. A random secret was generated — sessions will NOT survive restarts. Set an explicit secret for production use.',\n 'AuthCore'\n );\n return generated;\n })(),\n session: {\n strategy: 'jwt',\n maxAge: 30 * 24 * 60 * 60, // 30 days\n updateAge: 24 * 60 * 60, // 24 hours\n },\n basePath: '/api/auth',\n trustHost: true,\n debug: process.env.NODE_ENV === 'development',\n ...options,\n };\n }\n\n /**\n * Initialize Better Auth instance\n */\n async initialize(): Promise<void> {\n if (!this.config.providers || this.config.providers.length === 0) {\n throw new Error('At least one authentication provider must be configured');\n }\n\n try {\n this.authInstance = await initializeAuthJS(this.config);\n logger.info('Better Auth initialized successfully', 'Initialization');\n } catch (error) {\n logger.error('Failed to initialize Better Auth', 'InitializationError', { error });\n throw error;\n }\n }\n\n /**\n * Check if request is for Better Auth API routes\n */\n isAuthRoute(url?: string): boolean {\n if (!url) {\n return false;\n }\n const basePath = this.config.basePath || '/api/auth';\n return url.startsWith(basePath);\n }\n\n /**\n * Handle Better Auth API routes\n */\n async handleAuthRoute(req: HttpRequest, res: HttpResponse): Promise<any> {\n if (!this.authInstance) {\n throw new Error('Auth instance not initialized');\n }\n\n try {\n const response = await this.authInstance.handler(req, res);\n return response;\n } catch (error) {\n logger.error('Better Auth handler error', 'HandlerError', { error });\n throw error;\n }\n }\n\n /**\n * Extract and verify JWT token from request\n */\n async verifyToken(\n authHeader?: string\n ): Promise<{ token: string | null; session: AuthSession | null; error?: any }> {\n if (!authHeader?.startsWith('Bearer ') || !this.authInstance) {\n return { token: null, session: null };\n }\n\n const token = authHeader.substring(7);\n\n try {\n const decoded = await this.authInstance.verifyJWT(token);\n if (decoded) {\n const session = await this.authInstance.getSession({ req: { token } });\n return { token, session };\n }\n } catch (error: any) {\n return { token, session: null, error };\n }\n\n return { token: null, session: null };\n }\n\n /**\n * Get session from request\n */\n async getSession(req: HttpRequest): Promise<AuthSession | null> {\n if (!this.authInstance) {\n return null;\n }\n\n try {\n return await this.authInstance.getSession({ req });\n } catch (error) {\n logger.debug('No valid session found', 'SessionValidation', { error });\n return null;\n }\n }\n\n /**\n * Create auth request object with methods\n */\n createAuthRequest(session: AuthSession | null, token?: string): AuthRequest {\n const authRequest: AuthRequest = {\n ...(session?.user ? { user: session.user } : {}),\n ...(session ? { session } : {}),\n ...(token ? { token } : {}),\n isAuthenticated: !!session?.user,\n signIn: async (provider?: string, options?: any) => {\n if (!this.authInstance) {\n throw new Error('Auth instance not initialized');\n }\n return this.authInstance.signIn(provider, options);\n },\n signOut: async (options?: any) => {\n if (!this.authInstance) {\n throw new Error('Auth instance not initialized');\n }\n return this.authInstance.signOut(options);\n },\n getSession: async () => {\n if (!this.authInstance) {\n return null;\n }\n return this.authInstance.getSession({ req: {} });\n },\n getToken: async () => {\n if (!this.authInstance || !token) {\n return null;\n }\n try {\n return this.authInstance.verifyJWT(token);\n } catch (error: any) {\n logger.debug('Failed to verify token in getToken', 'TokenValidation', {\n error: error.message,\n });\n return null;\n }\n },\n getCsrfToken: async () => {\n if (!this.authInstance) {\n return '';\n }\n return this.authInstance.getCsrfToken();\n },\n getProviders: async () => {\n if (!this.cachedProviderMap) {\n this.cachedProviderMap = {};\n for (const provider of this.config.providers) {\n this.cachedProviderMap[provider.id] = provider;\n }\n }\n return this.cachedProviderMap;\n },\n };\n\n return authRequest;\n }\n\n /**\n * Handle JWT verification errors\n */\n handleJWTError(error: any, req: HttpRequest, res: HttpResponse): any | null {\n const acceptsJson = req.headers.accept?.includes('application/json');\n\n if (error.name === 'TokenExpiredError') {\n logger.debug('JWT token expired', 'TokenValidation', {\n message: error.message,\n expiredAt: error.expiredAt,\n });\n\n if (acceptsJson) {\n return res.status(401).json(\n createAuthErrorResponse({\n type: 'expired',\n message: error.message,\n expiredAt: error.expiredAt,\n })\n );\n }\n } else if (error.name === 'JsonWebTokenError') {\n logger.debug('Invalid JWT token format', 'TokenValidation', {\n message: error.message,\n });\n\n if (acceptsJson) {\n return res.status(401).json(\n createAuthErrorResponse({\n type: 'invalid',\n message: error.message,\n })\n );\n }\n } else if (error.name === 'NotBeforeError') {\n logger.debug('JWT token not active yet', 'TokenValidation', {\n message: error.message,\n date: error.date,\n });\n\n if (acceptsJson) {\n return res.status(401).json(\n createAuthErrorResponse({\n type: 'malformed',\n message: error.message,\n date: error.date,\n })\n );\n }\n } else {\n logger.debug('JWT token validation failed', 'TokenValidation', {\n error: error.message || error,\n });\n }\n\n return null;\n }\n\n /**\n * Update session activity\n */\n async updateSession(session: AuthSession): Promise<void> {\n if (!this.authInstance) {\n return;\n }\n\n try {\n await this.authInstance.updateSession(session);\n } catch (error) {\n logger.warn('Failed to update session', 'SessionUpdate', { error });\n }\n }\n\n /**\n * Get provider count\n */\n getProviderCount(): number {\n return this.config.providers.length;\n }\n}\n"]}
@@ -131,11 +131,11 @@ export function withAuth(options = {}) {
131
131
  descriptor.value = async function (req, res, next) {
132
132
  if (options.requireAuth !== false) {
133
133
  const authMiddleware = requireAuth({
134
- roles: options.roles,
135
- redirectTo: options.redirectTo,
134
+ ...(options.roles !== undefined ? { roles: options.roles } : {}),
135
+ ...(options.redirectTo !== undefined ? { redirectTo: options.redirectTo } : {}),
136
136
  });
137
137
  await new Promise((resolve, reject) => {
138
- authMiddleware(req, res, (error) => {
138
+ void authMiddleware(req, res, (error) => {
139
139
  if (error)
140
140
  reject(error);
141
141
  else
@@ -266,7 +266,7 @@ export function protectedRoute(handler, options = {}) {
266
266
  return async (req, res, next) => {
267
267
  const authMiddleware = requireAuth(options);
268
268
  return new Promise((resolve, reject) => {
269
- authMiddleware(req, res, (error) => {
269
+ void authMiddleware(req, res, (error) => {
270
270
  if (error) {
271
271
  reject(error);
272
272
  }
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/helpers.ts"],"names":[],"mappings":"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","sourcesContent":["// Auth Helper Middleware and Utilities\nimport { AuthRequest } from '../../../../types/auth.js';\n\nexport interface AuthGuardOptions {\n redirectTo?: string;\n redirectOnAuth?: string; // Redirect if already authenticated\n authorize?: (user: any) => boolean | Promise<boolean>;\n roles?: string[];\n permissions?: string[];\n allowUnauthenticated?: boolean;\n onUnauthorized?: (req: any, res: any) => void;\n onForbidden?: (req: any, res: any) => void;\n}\n\nexport interface AuthRouteOptions {\n requireAuth?: boolean;\n roles?: string[];\n permissions?: string[];\n redirectTo?: string;\n}\n\n/**\n * Auth Guard Middleware - Protects routes with authentication and authorization\n */\nexport function requireAuth(options: AuthGuardOptions = {}) {\n return async (req: any, res: any, next: any) => {\n const auth: AuthRequest = req.auth;\n\n if (!auth) {\n throw new Error('Auth middleware must be installed before using requireAuth');\n }\n\n // Check if already authenticated and should redirect\n if (auth.isAuthenticated && options.redirectOnAuth) {\n return res.redirect(options.redirectOnAuth);\n }\n\n // Check authentication requirement\n if (!options.allowUnauthenticated && !auth.isAuthenticated) {\n if (options.onUnauthorized) {\n return options.onUnauthorized(req, res);\n }\n\n if (options.redirectTo) {\n return res.redirect(`${options.redirectTo}?callbackUrl=${encodeURIComponent(req.url)}`);\n }\n\n return res.status(401).json({\n error: 'Authentication required',\n message: 'You must be logged in to access this resource',\n signInUrl: '/api/auth/signin',\n });\n }\n\n // Skip further checks if not authenticated but allowed\n if (!auth.isAuthenticated && options.allowUnauthenticated) {\n return next();\n }\n\n const user = auth.user;\n\n // Check roles if specified\n if (options.roles && options.roles.length > 0) {\n const userRoles = user?.roles || [];\n const hasRole = options.roles.some(role => userRoles.includes(role));\n\n if (!hasRole) {\n if (options.onForbidden) {\n return options.onForbidden(req, res);\n }\n\n return res.status(403).json({\n error: 'Insufficient permissions',\n message: `Required roles: ${options.roles.join(', ')}`,\n userRoles,\n });\n }\n }\n\n // Check permissions if specified\n if (options.permissions && options.permissions.length > 0) {\n const userPermissions = user?.permissions || [];\n const hasPermission = options.permissions.every(permission =>\n userPermissions.includes(permission)\n );\n\n if (!hasPermission) {\n if (options.onForbidden) {\n return options.onForbidden(req, res);\n }\n\n return res.status(403).json({\n error: 'Insufficient permissions',\n message: `Required permissions: ${options.permissions.join(', ')}`,\n userPermissions,\n });\n }\n }\n\n // Custom authorization function\n if (options.authorize) {\n try {\n const authorized = await options.authorize(user);\n\n if (!authorized) {\n if (options.onForbidden) {\n return options.onForbidden(req, res);\n }\n\n return res.status(403).json({\n error: 'Access denied',\n message: 'Custom authorization check failed',\n });\n }\n } catch {\n return res.status(500).json({\n error: 'Authorization error',\n message: 'Failed to verify authorization',\n });\n }\n }\n\n // All checks passed\n next();\n };\n}\n\n/**\n * Role-based access control middleware\n */\nexport function requireRole(\n role: string | string[],\n options: Omit<AuthGuardOptions, 'roles'> = {}\n) {\n const roles = Array.isArray(role) ? role : [role];\n return requireAuth({ ...options, roles });\n}\n\n/**\n * Permission-based access control middleware\n */\nexport function requirePermission(\n permission: string | string[],\n options: Omit<AuthGuardOptions, 'permissions'> = {}\n) {\n const permissions = Array.isArray(permission) ? permission : [permission];\n return requireAuth({ ...options, permissions });\n}\n\n/**\n * Admin-only access middleware\n */\nexport function requireAdmin(options: Omit<AuthGuardOptions, 'roles'> = {}) {\n return requireRole('admin', options);\n}\n\n/**\n * Guest-only middleware (redirect if authenticated)\n */\nexport function guestOnly(redirectTo = '/dashboard') {\n return requireAuth({\n allowUnauthenticated: true,\n redirectOnAuth: redirectTo,\n });\n}\n\n/**\n * Optional auth middleware (allows both authenticated and unauthenticated)\n */\nexport function optionalAuth() {\n return requireAuth({\n allowUnauthenticated: true,\n });\n}\n\n/**\n * Route-level auth decorator\n */\nexport function withAuth(options: AuthRouteOptions = {}) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (req: any, res: any, next: any) {\n if (options.requireAuth !== false) {\n const authMiddleware = requireAuth({\n ...(options.roles !== undefined ? { roles: options.roles } : {}),\n ...(options.redirectTo !== undefined ? { redirectTo: options.redirectTo } : {}),\n });\n\n await new Promise<void>((resolve, reject) => {\n void authMiddleware(req, res, (error: any) => {\n if (error) reject(error);\n else resolve();\n });\n });\n }\n\n return originalMethod.call(this, req, res, next);\n };\n\n return descriptor;\n };\n}\n\n/**\n * Auth utilities for manual checks in route handlers\n */\nexport const authUtils = {\n /**\n * Check if user is authenticated\n */\n isAuthenticated(req: any): boolean {\n return req.auth?.isAuthenticated || false;\n },\n\n /**\n * Get current user\n */\n getUser(req: any) {\n return req.auth?.user || null;\n },\n\n /**\n * Check if user has role\n */\n hasRole(req: any, role: string | string[]): boolean {\n const user = this.getUser(req);\n if (!user?.roles) return false;\n\n const roles = Array.isArray(role) ? role : [role];\n return roles.some(r => user.roles.includes(r));\n },\n\n /**\n * Check if user has permission\n */\n hasPermission(req: any, permission: string | string[]): boolean {\n const user = this.getUser(req);\n if (!user?.permissions) return false;\n\n const permissions = Array.isArray(permission) ? permission : [permission];\n return permissions.every(p => user.permissions.includes(p));\n },\n\n /**\n * Check if user is admin\n */\n isAdmin(req: any): boolean {\n return this.hasRole(req, 'admin');\n },\n\n /**\n * Get user ID\n */\n getUserId(req: any): string | null {\n return this.getUser(req)?.id || null;\n },\n\n /**\n * Force authentication check and redirect if needed\n */\n ensureAuth(req: any, res: any, redirectTo = '/api/auth/signin'): boolean {\n if (!this.isAuthenticated(req)) {\n res.redirect(`${redirectTo}?callbackUrl=${encodeURIComponent(req.url)}`);\n return false;\n }\n return true;\n },\n\n /**\n * Create auth response for API endpoints\n */\n createAuthResponse(req: any) {\n const auth = req.auth;\n\n return {\n isAuthenticated: auth?.isAuthenticated || false,\n user: auth?.user || null,\n session: auth?.session || null,\n timestamp: new Date().toISOString(),\n };\n },\n};\n\n/**\n * API Response helpers for auth endpoints\n */\nexport const authResponses = {\n unauthorized: (res: any, message = 'Authentication required') => {\n return res.status(401).json({\n error: 'Unauthorized',\n message,\n code: 'AUTH_REQUIRED',\n signInUrl: '/api/auth/signin',\n });\n },\n\n forbidden: (res: any, message = 'Insufficient permissions') => {\n return res.status(403).json({\n error: 'Forbidden',\n message,\n code: 'INSUFFICIENT_PERMISSIONS',\n });\n },\n\n authSuccess: (res: any, user: any, message = 'Authentication successful') => {\n return res.json({\n success: true,\n message,\n user: {\n id: user.id,\n name: user.name,\n email: user.email,\n roles: user.roles || [],\n permissions: user.permissions || [],\n },\n });\n },\n\n authError: (res: any, error: string, message = 'Authentication failed') => {\n return res.status(400).json({\n error,\n message,\n code: 'AUTH_ERROR',\n });\n },\n};\n\n/**\n * Higher-order function to create protected route handlers\n */\nexport function protectedRoute(\n handler: (req: any, res: any, next?: any) => any,\n options: AuthGuardOptions = {}\n) {\n return async (req: any, res: any, next: any) => {\n const authMiddleware = requireAuth(options);\n\n return new Promise<void>((resolve, reject) => {\n void authMiddleware(req, res, (error: any) => {\n if (error) {\n reject(error);\n } else {\n Promise.resolve(handler(req, res, next))\n .then(() => resolve())\n .catch(reject);\n }\n });\n });\n };\n}\n\n/**\n * Session management helpers\n */\nexport const sessionHelpers = {\n /**\n * Store data in session\n */\n async setSessionData(req: any, key: string, value: any) {\n if (req.session) {\n req.session[key] = value;\n await req.session.save();\n }\n },\n\n /**\n * Get data from session\n */\n getSessionData(req: any, key: string) {\n return req.session?.[key] || null;\n },\n\n /**\n * Remove data from session\n */\n async removeSessionData(req: any, key: string) {\n if (req.session && key in req.session.data) {\n delete req.session.data[key];\n await req.session.save();\n }\n },\n\n /**\n * Clear entire session\n */\n async clearSession(req: any) {\n if (req.session) {\n await req.session.destroy();\n }\n },\n\n /**\n * Regenerate session ID\n */\n async regenerateSession(req: any) {\n if (req.session) {\n return await req.session.regenerate();\n }\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../../../src/core/middleware/built-in/auth/hook.ts"],"names":[],"mappings":"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","sourcesContent":["// Auth Hook - MiddlewareInterface for global registration\nimport { MiddlewareInterface, HookContext } from '../../../../types/hooks.js';\nimport { createFrameworkLogger } from '../../../logger/index.js';\nimport { AuthCore } from './core.js';\nimport { AuthOptions } from '../../../../types/auth.js';\n\nconst logger = createFrameworkLogger('AuthMiddleware');\n\n/**\n * Auth hook for global usage\n * Registers with the hooks system for application-wide Better Auth authentication\n *\n * @example\n * ```ts\n * import { auth, providers } from '@/middleware/built-in/auth';\n *\n * app.use(auth({\n * secret: process.env.AUTH_SECRET,\n * providers: [\n * providers.google({\n * clientId: process.env.GOOGLE_CLIENT_ID,\n * clientSecret: process.env.GOOGLE_CLIENT_SECRET\n * }),\n * providers.github({\n * clientId: process.env.GITHUB_CLIENT_ID,\n * clientSecret: process.env.GITHUB_CLIENT_SECRET\n * })\n * ],\n * session: {\n * strategy: 'jwt',\n * maxAge: 30 * 24 * 60 * 60\n * }\n * }));\n * ```\n */\nexport const auth = (options: AuthOptions): MiddlewareInterface => ({\n name: 'auth',\n version: '2.0.0',\n metadata: {\n name: 'auth',\n version: '2.0.0',\n description: 'Better Auth authentication middleware with OAuth, JWT, and session support',\n author: 'MoroJS Team',\n dependencies: [],\n tags: ['authentication', 'oauth', 'jwt', 'security', 'better-auth'],\n },\n\n install: async (hooks: any, middlewareOptions: Partial<AuthOptions> = {}) => {\n logger.debug('Installing Better Auth middleware', 'Installation', {\n options: middlewareOptions,\n });\n\n const config = { ...options, ...middlewareOptions };\n const authCore = new AuthCore(config);\n\n // Initialize Better Auth\n await authCore.initialize();\n\n // Register hooks for request processing\n hooks.before('request', async (context: HookContext) => {\n const req = context.request as any;\n const res = context.response as any;\n\n // Handle Better Auth API routes first\n if (authCore.isAuthRoute(req.url)) {\n try {\n const response = await authCore.handleAuthRoute(req, res);\n if (response) {\n return response;\n }\n } catch (error) {\n logger.error('Better Auth handler error', 'HandlerError', { error });\n throw error;\n }\n }\n\n // Extract and verify JWT token\n const {\n token,\n session: tokenSession,\n error,\n } = await authCore.verifyToken(req.headers?.authorization);\n\n // Handle JWT errors for API requests\n if (error) {\n const errorResponse = authCore.handleJWTError(error, req, res);\n if (errorResponse) {\n return errorResponse;\n }\n }\n\n // Get session from cookie if no token session\n let session = tokenSession;\n if (!session) {\n session = await authCore.getSession(req);\n }\n\n // Create and attach auth request object\n const authRequest = authCore.createAuthRequest(session, token || undefined);\n req.auth = authRequest;\n\n if (authRequest.isAuthenticated) {\n logger.debug('User authenticated', 'Authentication', {\n userId: authRequest.user?.id,\n provider: authRequest.user?.provider || 'unknown',\n });\n }\n });\n\n // Response processing hook\n hooks.after('response', async (context: HookContext) => {\n const req = context.request as any;\n\n if (req.auth?.session) {\n await authCore.updateSession(req.auth.session);\n }\n });\n\n logger.info(\n `Better Auth middleware installed with ${authCore.getProviderCount()} providers`,\n 'Installation'\n );\n },\n});\n"]}