@visulima/email 1.0.0-alpha.9 → 1.0.0

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 (396) hide show
  1. package/CHANGELOG.md +775 -0
  2. package/LICENSE.md +541 -847
  3. package/README.md +212 -191
  4. package/dist/crypto/index.d.ts +304 -4
  5. package/dist/crypto/index.js +1 -1
  6. package/dist/deliverability/dmarc-report.d.ts +95 -0
  7. package/dist/deliverability/dmarc-report.js +1 -0
  8. package/dist/deliverability/index.d.ts +360 -0
  9. package/dist/deliverability/index.js +1 -0
  10. package/dist/events/index.d.ts +31 -0
  11. package/dist/events/index.js +1 -0
  12. package/dist/inbound/index.d.ts +375 -0
  13. package/dist/inbound/index.js +1 -0
  14. package/dist/index.d.ts +94 -9
  15. package/dist/index.js +1 -1
  16. package/dist/middleware/index.d.ts +346 -0
  17. package/dist/middleware/index.js +1 -0
  18. package/dist/packem_shared/ALL_EVENTS-3kwh5CBE.js +1 -0
  19. package/dist/packem_shared/DkimSigner-BuSbnos1.js +18 -0
  20. package/dist/packem_shared/DraftMailMessage-BxqGSLMN.js +1 -0
  21. package/dist/packem_shared/EmailError-B-sEf3bp.js +1 -0
  22. package/dist/packem_shared/Mail-BEuzrB00.js +1 -0
  23. package/dist/packem_shared/MailMessage-D9k5gYrd.js +1 -0
  24. package/dist/packem_shared/MemoryEventStore-CuhfO9aj.js +1 -0
  25. package/dist/packem_shared/MemoryQueue-Dl1Fa6OJ.js +1 -0
  26. package/dist/packem_shared/MemorySuppressionStore-DZnbz-_B.js +1 -0
  27. package/dist/packem_shared/RATE_LIMIT_PRESETS-BPADLgcA.js +1 -0
  28. package/dist/packem_shared/RequiredOptionError-DuNNY_a5.js +1 -0
  29. package/dist/packem_shared/SmimeEncrypter-C7usORKF.js +6 -0
  30. package/dist/packem_shared/SmimeSigner-DgAApLPS.js +8 -0
  31. package/dist/packem_shared/addDarkModeSupport-DZYxULjl.js +1 -0
  32. package/dist/packem_shared/address-formatter-BWR2Dddx.js +1 -0
  33. package/dist/packem_shared/aggregate-features-BqEjPd42.js +1 -0
  34. package/dist/packem_shared/ahaSendProvider-D81_wUA1.js +1 -0
  35. package/dist/packem_shared/arcMessageSignatureBase-BY4j0TxM.js +17 -0
  36. package/dist/packem_shared/attachment-processor-CMp7qqMI.js +1 -0
  37. package/dist/packem_shared/awsSesProvider-BGZJUIep.js +32 -0
  38. package/dist/packem_shared/azureProvider-CmcK4bsf.js +1 -0
  39. package/dist/packem_shared/brevoProvider-C1BDXr41.js +1 -0
  40. package/dist/packem_shared/build-mime-message-B6927SQy.js +3 -0
  41. package/dist/packem_shared/buildListUnsubscribe-Cdr8MvR_.js +1 -0
  42. package/dist/packem_shared/buildMtaStsPolicy-oEQg8y_C.js +6 -0
  43. package/dist/packem_shared/circuitBreakerMiddleware-D2SA_07f.js +1 -0
  44. package/dist/packem_shared/cloudflareEmailProvider-Bv-ty-74.js +1 -0
  45. package/dist/packem_shared/composeMiddleware-BHwLLEzK.js +1 -0
  46. package/dist/packem_shared/create-logger-BQTS3f-I.js +1 -0
  47. package/dist/packem_shared/createSuppressionStore-CeAZKCbY.js +1 -0
  48. package/dist/packem_shared/createTestEmail-CF_RUjqo.js +1 -0
  49. package/dist/packem_shared/createWorker-_-yMWcNQ.js +1 -0
  50. package/dist/packem_shared/dedupeMiddleware-B6ajWOTi.js +1 -0
  51. package/dist/packem_shared/defineInboundHandler-CnL2BzlL.js +1 -0
  52. package/dist/packem_shared/defineProvider-C9q-7iwt.js +1 -0
  53. package/dist/packem_shared/detectMimeType-Dxv4MjZ7.js +1 -0
  54. package/dist/packem_shared/emailMatchers-DZDkrZ_3.js +1 -0
  55. package/dist/packem_shared/event-bus.d-DEl3w_EW.d.ts +104 -0
  56. package/dist/packem_shared/extractCidReferences-BuoTREMp.js +1 -0
  57. package/dist/packem_shared/extractReply-BUjIBt9A.js +5 -0
  58. package/dist/packem_shared/failoverProvider-BgX6zfnY.js +1 -0
  59. package/dist/packem_shared/format-address-DTl-9O70.js +1 -0
  60. package/dist/packem_shared/generate-boundary-DQbzDiOI.js +1 -0
  61. package/dist/packem_shared/generate-message-id-gXAuMz4g.js +1 -0
  62. package/dist/packem_shared/headers-to-record-De1Eg951.js +1 -0
  63. package/dist/packem_shared/httpProvider-DJAsYSun.js +1 -0
  64. package/dist/packem_shared/index-yDU-1zOZ.js +11 -0
  65. package/dist/packem_shared/infobipProvider-lHyGrXgZ.js +1 -0
  66. package/dist/packem_shared/injectPreheader-CF9WHZ7J.js +1 -0
  67. package/dist/packem_shared/inlineCss-BQ7d2Cyz.js +1 -0
  68. package/dist/packem_shared/isValidSigningCertUrl-Bii1AMGC.js +3 -0
  69. package/dist/packem_shared/loggingMiddleware-CZIiVMVp.js +1 -0
  70. package/dist/packem_shared/loopsProvider-DyloxzNC.js +1 -0
  71. package/dist/packem_shared/mail.d-B9SSqyy0.d.ts +909 -0
  72. package/dist/packem_shared/{mailCrabProvider-CM_CFDca.js → mailCrabProvider-CPtBT6Th.js} +1 -1
  73. package/dist/packem_shared/mailPaceProvider-CJEvOFBh.js +1 -0
  74. package/dist/packem_shared/mailchannelsProvider-osRkW_tz.js +1 -0
  75. package/dist/packem_shared/mailerSendProvider-C_6LzARK.js +1 -0
  76. package/dist/packem_shared/mailgunProvider-DkISvMPe.js +1 -0
  77. package/dist/packem_shared/mailjetProvider-CV0i4Xzh.js +1 -0
  78. package/dist/packem_shared/mailomatProvider-B5YFonEO.js +1 -0
  79. package/dist/packem_shared/mailtrapProvider-C4ZquIPz.js +1 -0
  80. package/dist/packem_shared/make-request-BlK_B72c.js +1 -0
  81. package/dist/packem_shared/mandrillProvider-DWPFh_Sj.js +1 -0
  82. package/dist/packem_shared/mockProvider-Behywbl1.js +1 -0
  83. package/dist/packem_shared/netcoreProvider-C5TEciaN.js +1 -0
  84. package/dist/packem_shared/nodemailerProvider-BFHobXxt.js +1 -0
  85. package/dist/packem_shared/normalizeMessageId-DAx2pGe2.js +1 -0
  86. package/dist/packem_shared/oauth2Middleware-CodqXkyj.js +1 -0
  87. package/dist/packem_shared/opentelemetryProvider-ByHC01ub.js +1 -0
  88. package/dist/packem_shared/outlook365Provider-63ggDpqV.js +1 -0
  89. package/dist/packem_shared/parseAddress-DdbViBAJ.js +1 -0
  90. package/dist/packem_shared/parseArfReport-Ds6S3c4J.js +6 -0
  91. package/dist/packem_shared/parseCloudflareInbound-C__j-oNa.js +1 -0
  92. package/dist/packem_shared/parseDmarcRecord-DXZ-_rF0.js +1 -0
  93. package/dist/packem_shared/parseMailgunInbound-BpC6uPNe.js +1 -0
  94. package/dist/packem_shared/parsePostmarkInbound-Co3_c6-9.js +1 -0
  95. package/dist/packem_shared/parseSendGridInbound-DsALoijO.js +4 -0
  96. package/dist/packem_shared/parseSesInbound-CH5tHIjp.js +1 -0
  97. package/dist/packem_shared/parseTlsReport-wPe1lIDs.js +1 -0
  98. package/dist/packem_shared/plunkProvider-yTlrJVEp.js +1 -0
  99. package/dist/packem_shared/postProcessHtml-DqKi2Ucg.js +1 -0
  100. package/dist/packem_shared/postalProvider-CRX_bMYD.js +1 -0
  101. package/dist/packem_shared/postmarkProvider-CDx85Yge.js +1 -0
  102. package/dist/packem_shared/provider-base-C7PuopYK.js +1 -0
  103. package/dist/packem_shared/provider.d-J-y6iogK.d.ts +28 -0
  104. package/dist/packem_shared/quoted-printable-nSGDA1tA.js +7 -0
  105. package/dist/packem_shared/resendProvider-CiclWxzr.js +1 -0
  106. package/dist/packem_shared/retry-3pnxTuNs.js +1 -0
  107. package/dist/packem_shared/retryMiddleware-DbViDX4r.js +1 -0
  108. package/dist/packem_shared/roundRobinProvider-D1by5KGW.js +1 -0
  109. package/dist/packem_shared/sanitize-header-DJhgZl3y.js +1 -0
  110. package/dist/packem_shared/scalewayProvider-BcND48qO.js +1 -0
  111. package/dist/packem_shared/sendGridProvider-D8ZLgY62.js +1 -0
  112. package/dist/packem_shared/smtpProvider-Bm0yP97W.js +25 -0
  113. package/dist/packem_shared/sparkpostProvider-CTYfSRaV.js +1 -0
  114. package/dist/packem_shared/sweegoProvider-DOoin_vi.js +1 -0
  115. package/dist/packem_shared/toEmailSnapshot-DeRqM5SJ.js +1 -0
  116. package/dist/packem_shared/tracer.d-MU42G1jG.d.ts +494 -0
  117. package/dist/packem_shared/types.d-BId55FW2.d.ts +107 -0
  118. package/dist/packem_shared/types.d-CmoWvdZi.d.ts +61 -0
  119. package/dist/packem_shared/types.d-DCkecJse.d.ts +51 -0
  120. package/dist/packem_shared/types.d-Mpu0HZoG.d.ts +24 -0
  121. package/dist/packem_shared/types.d-ejzh-xBP.d.ts +209 -0
  122. package/dist/packem_shared/types.d-lcJZmwRK.d.ts +69 -0
  123. package/dist/packem_shared/types.d-nyR1ty1Q.d.ts +9 -0
  124. package/dist/packem_shared/utils-BfYfPB_I.js +1 -0
  125. package/dist/packem_shared/validate-email-options-mCM9dVug.js +1 -0
  126. package/dist/packem_shared/verifyMailgunWebhook-Cwl0OD3P.js +1 -0
  127. package/dist/packem_shared/verifyPostmarkWebhook-C72ZvbrG.js +1 -0
  128. package/dist/packem_shared/verifyResendWebhook-YK2zNDXR.js +1 -0
  129. package/dist/packem_shared/verifySendGridWebhook-Dbwc1tfG.js +1 -0
  130. package/dist/packem_shared/withEvents-CCVblSqj.js +1 -0
  131. package/dist/packem_shared/withMetrics-DWywX_6M.js +1 -0
  132. package/dist/packem_shared/withRender-VP9wE5Yr.js +1 -0
  133. package/dist/packem_shared/withSuppression-DBaZDMAr.js +1 -0
  134. package/dist/packem_shared/withTelemetry-DL2qo0Hp.js +1 -0
  135. package/dist/packem_shared/zeptomailProvider-DKBPSHPj.js +1 -0
  136. package/dist/providers/ahasend/index.d.ts +36 -3
  137. package/dist/providers/ahasend/index.js +1 -1
  138. package/dist/providers/aws-ses/index.d.ts +47 -3
  139. package/dist/providers/aws-ses/index.js +1 -1
  140. package/dist/providers/azure/index.d.ts +52 -3
  141. package/dist/providers/azure/index.js +1 -1
  142. package/dist/providers/brevo/index.d.ts +65 -3
  143. package/dist/providers/brevo/index.js +1 -1
  144. package/dist/providers/cloudflare-email/index.d.ts +36 -0
  145. package/dist/providers/cloudflare-email/index.js +1 -0
  146. package/dist/providers/failover/index.d.ts +27 -3
  147. package/dist/providers/failover/index.js +1 -1
  148. package/dist/providers/http/index.d.ts +35 -3
  149. package/dist/providers/http/index.js +1 -1
  150. package/dist/providers/infobip/index.d.ts +56 -3
  151. package/dist/providers/infobip/index.js +1 -1
  152. package/dist/providers/loops/index.d.ts +47 -0
  153. package/dist/providers/loops/index.js +1 -0
  154. package/dist/providers/mailchannels/index.d.ts +26 -0
  155. package/dist/providers/mailchannels/index.js +1 -0
  156. package/dist/providers/mailcrab/index.d.ts +32 -3
  157. package/dist/providers/mailcrab/index.js +1 -1
  158. package/dist/providers/mailersend/index.d.ts +51 -3
  159. package/dist/providers/mailersend/index.js +1 -1
  160. package/dist/providers/mailgun/index.d.ts +73 -3
  161. package/dist/providers/mailgun/index.js +1 -1
  162. package/dist/providers/mailjet/index.d.ts +72 -3
  163. package/dist/providers/mailjet/index.js +1 -1
  164. package/dist/providers/mailomat/index.d.ts +40 -3
  165. package/dist/providers/mailomat/index.js +1 -1
  166. package/dist/providers/mailpace/index.d.ts +52 -3
  167. package/dist/providers/mailpace/index.js +1 -1
  168. package/dist/providers/mailtrap/index.d.ts +44 -3
  169. package/dist/providers/mailtrap/index.js +1 -1
  170. package/dist/providers/mandrill/index.d.ts +87 -3
  171. package/dist/providers/mandrill/index.js +1 -1
  172. package/dist/providers/mock/index.d.ts +12 -3
  173. package/dist/providers/mock/index.js +1 -1
  174. package/dist/providers/netcore/index.d.ts +35 -0
  175. package/dist/providers/netcore/index.js +1 -0
  176. package/dist/providers/nodemailer/index.d.ts +38 -3
  177. package/dist/providers/nodemailer/index.js +1 -1
  178. package/dist/providers/opentelemetry/index.d.ts +37 -3
  179. package/dist/providers/opentelemetry/index.js +1 -1
  180. package/dist/providers/outlook365/index.d.ts +48 -0
  181. package/dist/providers/outlook365/index.js +1 -0
  182. package/dist/providers/plunk/index.d.ts +38 -3
  183. package/dist/providers/plunk/index.js +1 -1
  184. package/dist/providers/postal/index.d.ts +48 -3
  185. package/dist/providers/postal/index.js +1 -1
  186. package/dist/providers/postmark/index.d.ts +60 -3
  187. package/dist/providers/postmark/index.js +1 -1
  188. package/dist/providers/resend/index.d.ts +51 -3
  189. package/dist/providers/resend/index.js +1 -1
  190. package/dist/providers/roundrobin/index.d.ts +27 -3
  191. package/dist/providers/roundrobin/index.js +1 -1
  192. package/dist/providers/scaleway/index.d.ts +44 -3
  193. package/dist/providers/scaleway/index.js +1 -1
  194. package/dist/providers/sendgrid/index.d.ts +84 -3
  195. package/dist/providers/sendgrid/index.js +1 -1
  196. package/dist/providers/smtp/index.d.ts +71 -3
  197. package/dist/providers/smtp/index.js +1 -1
  198. package/dist/providers/sparkpost/index.d.ts +43 -0
  199. package/dist/providers/sparkpost/index.js +1 -0
  200. package/dist/providers/sweego/index.d.ts +40 -3
  201. package/dist/providers/sweego/index.js +1 -1
  202. package/dist/providers/zeptomail/index.d.ts +37 -3
  203. package/dist/providers/zeptomail/index.js +1 -1
  204. package/dist/queue/bullmq-queue.d.ts +46 -0
  205. package/dist/queue/bullmq-queue.js +1 -0
  206. package/dist/queue/index.d.ts +147 -0
  207. package/dist/queue/index.js +1 -0
  208. package/dist/queue/pg-boss-queue.d.ts +41 -0
  209. package/dist/queue/pg-boss-queue.js +1 -0
  210. package/dist/queue/sqs-queue.d.ts +72 -0
  211. package/dist/queue/sqs-queue.js +1 -0
  212. package/dist/queue/unstorage-queue.d.ts +199 -0
  213. package/dist/queue/unstorage-queue.js +1 -0
  214. package/dist/render/index.d.ts +107 -0
  215. package/dist/render/index.js +1 -0
  216. package/dist/template-engines/handlebars.d.ts +23 -22
  217. package/dist/template-engines/handlebars.js +1 -1
  218. package/dist/template-engines/html-to-text.d.ts +24 -24
  219. package/dist/template-engines/html-to-text.js +1 -1
  220. package/dist/template-engines/i18n.d.ts +61 -0
  221. package/dist/template-engines/i18n.js +1 -0
  222. package/dist/template-engines/jsx-email.d.ts +11 -0
  223. package/dist/template-engines/jsx-email.js +1 -0
  224. package/dist/template-engines/liquid.d.ts +12 -0
  225. package/dist/template-engines/liquid.js +1 -0
  226. package/dist/template-engines/mjml.d.ts +10 -10
  227. package/dist/template-engines/mjml.js +1 -1
  228. package/dist/template-engines/react-email.d.ts +9 -9
  229. package/dist/template-engines/react-email.js +1 -1
  230. package/dist/template-engines/vue-email.d.ts +9 -9
  231. package/dist/template-engines/vue-email.js +1 -1
  232. package/dist/test/index.d.ts +155 -0
  233. package/dist/test/index.js +1 -0
  234. package/dist/utils/cache.d.ts +49 -48
  235. package/dist/utils/cache.js +1 -1
  236. package/dist/utils/format-email-address.d.ts +8 -7
  237. package/dist/utils/format-email-address.js +1 -1
  238. package/dist/utils/normalize-email-aliases.d.ts +20 -20
  239. package/dist/utils/normalize-email-aliases.js +1 -1
  240. package/dist/utils/parse-address.d.ts +18 -17
  241. package/dist/utils/parse-address.js +1 -1
  242. package/dist/utils/parse-eml.d.ts +22 -0
  243. package/dist/utils/parse-eml.js +6 -0
  244. package/dist/utils/result.d.ts +49 -0
  245. package/dist/utils/result.js +1 -0
  246. package/dist/utils/validation/check-feature-support.d.ts +53 -0
  247. package/dist/utils/validation/check-feature-support.js +1 -0
  248. package/dist/utils/validation/validate-email.d.ts +5 -5
  249. package/dist/utils/validation/validate-email.js +1 -1
  250. package/dist/webhooks/index.d.ts +231 -0
  251. package/dist/webhooks/index.js +1 -0
  252. package/package.json +177 -67
  253. package/dist/attachment-helpers.d.ts +0 -64
  254. package/dist/crypto/dkim-signer.d.ts +0 -48
  255. package/dist/crypto/smime-encrypter.d.ts +0 -53
  256. package/dist/crypto/smime-signer.d.ts +0 -48
  257. package/dist/crypto/types.d.ts +0 -101
  258. package/dist/draft-mail-message.d.ts +0 -13
  259. package/dist/errors/email-error.d.ts +0 -17
  260. package/dist/errors/required-option-error.d.ts +0 -10
  261. package/dist/mail-message.d.ts +0 -425
  262. package/dist/mail.d.ts +0 -206
  263. package/dist/packem_shared/DkimSigner-pFd4c3fZ.js +0 -18
  264. package/dist/packem_shared/EmailError-zm2ffVav.js +0 -1
  265. package/dist/packem_shared/Mail-6Bltpy_p.js +0 -1
  266. package/dist/packem_shared/MailMessage-B76GPBBA.js +0 -1
  267. package/dist/packem_shared/RequiredOptionError-CevW3u2K.js +0 -1
  268. package/dist/packem_shared/SmimeEncrypter-CBevU534.js +0 -6
  269. package/dist/packem_shared/SmimeSigner-CObA4jzT.js +0 -8
  270. package/dist/packem_shared/address-formatter-Cm_E_ZMa.js +0 -1
  271. package/dist/packem_shared/ahaSendProvider-DlFKEQ6D.js +0 -1
  272. package/dist/packem_shared/attachment-processor-2rHmfa7j.js +0 -1
  273. package/dist/packem_shared/awsSesProvider-Ba-eVJxZ.js +0 -32
  274. package/dist/packem_shared/azureProvider-CQYAkgVF.js +0 -1
  275. package/dist/packem_shared/brevoProvider-5p6jjiK9.js +0 -1
  276. package/dist/packem_shared/build-mime-message-IYaUqqPJ.js +0 -2
  277. package/dist/packem_shared/create-logger-BiWdqFNg.js +0 -1
  278. package/dist/packem_shared/defineProvider-B9rSklAJ.js +0 -1
  279. package/dist/packem_shared/detectMimeType-S8WRsNtY.js +0 -1
  280. package/dist/packem_shared/failoverProvider-CAHQQueo.js +0 -1
  281. package/dist/packem_shared/generate-boundary-Cx8nXYS0.js +0 -1
  282. package/dist/packem_shared/generate-message-id-D4uA8gkj.js +0 -1
  283. package/dist/packem_shared/headers-to-record-Qo124ImV.js +0 -1
  284. package/dist/packem_shared/httpProvider-CZD6LZX3.js +0 -1
  285. package/dist/packem_shared/infobipProvider-CtLwrUaP.js +0 -1
  286. package/dist/packem_shared/mailPaceProvider-B6yKvh6z.js +0 -1
  287. package/dist/packem_shared/mailerSendProvider-CeeIXFnW.js +0 -1
  288. package/dist/packem_shared/mailgunProvider-mmjKzouh.js +0 -1
  289. package/dist/packem_shared/mailjetProvider-DwN6i0VA.js +0 -1
  290. package/dist/packem_shared/mailomatProvider-DMQmjKHT.js +0 -1
  291. package/dist/packem_shared/mailtrapProvider-BN3UBEQw.js +0 -1
  292. package/dist/packem_shared/make-request-BDzF9W9D.js +0 -1
  293. package/dist/packem_shared/mandrillProvider-370y7CLu.js +0 -1
  294. package/dist/packem_shared/mockProvider-DN5ZwutD.js +0 -1
  295. package/dist/packem_shared/nodemailerProvider-_w8QXMU-.js +0 -1
  296. package/dist/packem_shared/opentelemetryProvider-C_ZXOLSd.js +0 -1
  297. package/dist/packem_shared/plunkProvider-DfJumQ4U.js +0 -1
  298. package/dist/packem_shared/postalProvider-Bavx2FcH.js +0 -1
  299. package/dist/packem_shared/postmarkProvider-DFC0uvjO.js +0 -1
  300. package/dist/packem_shared/provider-base-Cmzx6BTO.js +0 -1
  301. package/dist/packem_shared/readFile-BlZxbhCU-C8bCdiA2.js +0 -1
  302. package/dist/packem_shared/resendProvider-CfqU7UdE.js +0 -1
  303. package/dist/packem_shared/roundRobinProvider-1WQnuKR8.js +0 -1
  304. package/dist/packem_shared/sanitize-header-wWav-Scu.js +0 -1
  305. package/dist/packem_shared/scalewayProvider-be1HPimL.js +0 -1
  306. package/dist/packem_shared/sendGridProvider-BVI1sq3n.js +0 -1
  307. package/dist/packem_shared/smtpProvider-BV-ufR53.js +0 -23
  308. package/dist/packem_shared/sweegoProvider-7419CSAq.js +0 -1
  309. package/dist/packem_shared/validate-email-options-DfJ7llf8.js +0 -1
  310. package/dist/packem_shared/zeptomailProvider-C2lh0Xmo.js +0 -1
  311. package/dist/providers/ahasend/provider.d.ts +0 -7
  312. package/dist/providers/ahasend/types.d.ts +0 -28
  313. package/dist/providers/aws-ses/provider.d.ts +0 -8
  314. package/dist/providers/aws-ses/types.d.ts +0 -38
  315. package/dist/providers/azure/provider.d.ts +0 -7
  316. package/dist/providers/azure/types.d.ts +0 -44
  317. package/dist/providers/brevo/provider.d.ts +0 -7
  318. package/dist/providers/brevo/types.d.ts +0 -57
  319. package/dist/providers/failover/provider.d.ts +0 -7
  320. package/dist/providers/failover/types.d.ts +0 -19
  321. package/dist/providers/http/provider.d.ts +0 -7
  322. package/dist/providers/http/types.d.ts +0 -27
  323. package/dist/providers/infobip/provider.d.ts +0 -7
  324. package/dist/providers/infobip/types.d.ts +0 -48
  325. package/dist/providers/mailcrab/provider.d.ts +0 -9
  326. package/dist/providers/mailcrab/types.d.ts +0 -22
  327. package/dist/providers/mailersend/provider.d.ts +0 -7
  328. package/dist/providers/mailersend/types.d.ts +0 -43
  329. package/dist/providers/mailgun/provider.d.ts +0 -7
  330. package/dist/providers/mailgun/types.d.ts +0 -65
  331. package/dist/providers/mailjet/provider.d.ts +0 -7
  332. package/dist/providers/mailjet/types.d.ts +0 -64
  333. package/dist/providers/mailomat/provider.d.ts +0 -7
  334. package/dist/providers/mailomat/types.d.ts +0 -32
  335. package/dist/providers/mailpace/provider.d.ts +0 -7
  336. package/dist/providers/mailpace/types.d.ts +0 -44
  337. package/dist/providers/mailtrap/provider.d.ts +0 -7
  338. package/dist/providers/mailtrap/types.d.ts +0 -36
  339. package/dist/providers/mandrill/provider.d.ts +0 -7
  340. package/dist/providers/mandrill/types.d.ts +0 -79
  341. package/dist/providers/mock/provider.d.ts +0 -8
  342. package/dist/providers/mock/types.d.ts +0 -50
  343. package/dist/providers/nodemailer/provider.d.ts +0 -7
  344. package/dist/providers/nodemailer/types.d.ts +0 -30
  345. package/dist/providers/opentelemetry/provider.d.ts +0 -8
  346. package/dist/providers/opentelemetry/types.d.ts +0 -31
  347. package/dist/providers/plunk/provider.d.ts +0 -7
  348. package/dist/providers/plunk/types.d.ts +0 -30
  349. package/dist/providers/postal/provider.d.ts +0 -7
  350. package/dist/providers/postal/types.d.ts +0 -40
  351. package/dist/providers/postmark/provider.d.ts +0 -7
  352. package/dist/providers/postmark/types.d.ts +0 -52
  353. package/dist/providers/provider.d.ts +0 -27
  354. package/dist/providers/resend/provider.d.ts +0 -7
  355. package/dist/providers/resend/types.d.ts +0 -43
  356. package/dist/providers/roundrobin/provider.d.ts +0 -7
  357. package/dist/providers/roundrobin/types.d.ts +0 -19
  358. package/dist/providers/scaleway/provider.d.ts +0 -7
  359. package/dist/providers/scaleway/types.d.ts +0 -36
  360. package/dist/providers/sendgrid/provider.d.ts +0 -7
  361. package/dist/providers/sendgrid/types.d.ts +0 -76
  362. package/dist/providers/smtp/provider.d.ts +0 -7
  363. package/dist/providers/smtp/types.d.ts +0 -63
  364. package/dist/providers/sweego/provider.d.ts +0 -7
  365. package/dist/providers/sweego/types.d.ts +0 -32
  366. package/dist/providers/utils/address-formatter.d.ts +0 -139
  367. package/dist/providers/utils/attachment-processor.d.ts +0 -58
  368. package/dist/providers/utils/index.d.ts +0 -4
  369. package/dist/providers/utils/payload-builder.d.ts +0 -78
  370. package/dist/providers/utils/provider-base.d.ts +0 -69
  371. package/dist/providers/zeptomail/provider.d.ts +0 -7
  372. package/dist/providers/zeptomail/types.d.ts +0 -29
  373. package/dist/template-engines/types.d.ts +0 -8
  374. package/dist/types.d.ts +0 -203
  375. package/dist/utils/build-mime-message.d.ts +0 -8
  376. package/dist/utils/create-logger.d.ts +0 -16
  377. package/dist/utils/format-email-addresses.d.ts +0 -8
  378. package/dist/utils/generate-boundary.d.ts +0 -7
  379. package/dist/utils/generate-message-id.d.ts +0 -6
  380. package/dist/utils/headers-to-record.d.ts +0 -9
  381. package/dist/utils/is-port-available.d.ts +0 -9
  382. package/dist/utils/make-request.d.ts +0 -18
  383. package/dist/utils/retry.d.ts +0 -10
  384. package/dist/utils/sanitize-header.d.ts +0 -14
  385. package/dist/utils/to-base64.d.ts +0 -8
  386. package/dist/utils/validation/check-mx-records.d.ts +0 -42
  387. package/dist/utils/validation/check-mx-records.js +0 -1
  388. package/dist/utils/validation/disposable-email-domains.d.ts +0 -13
  389. package/dist/utils/validation/disposable-email-domains.js +0 -1
  390. package/dist/utils/validation/role-accounts.d.ts +0 -21
  391. package/dist/utils/validation/role-accounts.js +0 -1
  392. package/dist/utils/validation/validate-email-options.d.ts +0 -8
  393. package/dist/utils/validation/verify-email.d.ts +0 -47
  394. package/dist/utils/validation/verify-email.js +0 -1
  395. package/dist/utils/validation/verify-smtp.d.ts +0 -39
  396. package/dist/utils/validation/verify-smtp.js +0 -4
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Result of verifying an inbound webhook signature.
3
+ */
4
+ interface WebhookVerificationResult {
5
+ /**
6
+ * Machine-readable reason when {@link WebhookVerificationResult.valid} is `false`.
7
+ */
8
+ reason?: string;
9
+ /**
10
+ * Whether the signature (and, when applicable, the timestamp) is valid.
11
+ */
12
+ valid: boolean;
13
+ }
14
+ /**
15
+ * Headers passed to a webhook verifier. Either a plain record or a `Headers` instance.
16
+ *
17
+ * Lookups are case-insensitive.
18
+ */
19
+ type WebhookHeaders = Headers | Record<string, string | string[] | undefined>;
20
+ /**
21
+ * Shared options for verifiers that enforce a timestamp tolerance to guard against replay attacks.
22
+ */
23
+ interface TimestampToleranceOptions {
24
+ /**
25
+ * Maximum allowed difference, in seconds, between the signed timestamp and the current time.
26
+ *
27
+ * Set to `0` to disable the replay-protection window.
28
+ * @default 300
29
+ */
30
+ tolerance?: number;
31
+ }
32
+ /**
33
+ * Options for {@link verifyMailgunWebhook}.
34
+ *
35
+ * Mailgun nests these three fields under a `signature` object in the webhook JSON body.
36
+ */
37
+ interface MailgunWebhookOptions extends TimestampToleranceOptions {
38
+ /**
39
+ * Override the current time (milliseconds) — primarily for testing.
40
+ */
41
+ now?: number;
42
+ /**
43
+ * The HMAC value from `signature.signature`.
44
+ */
45
+ signature: string;
46
+ /**
47
+ * Your Mailgun HTTP webhook signing key (Settings → Webhooks).
48
+ */
49
+ signingKey: string;
50
+ /**
51
+ * The timestamp from `signature.timestamp` (unix seconds, as a string or number).
52
+ */
53
+ timestamp: number | string;
54
+ /**
55
+ * The token from `signature.token`.
56
+ */
57
+ token: string;
58
+ }
59
+ /**
60
+ * Verifies a [Mailgun](https://documentation.mailgun.com/docs/mailgun/user-manual/tracking-messages/#webhooks) webhook.
61
+ *
62
+ * Mailgun computes `HMAC-SHA256(key = signingKey, message = timestamp + token)` and sends the hex
63
+ * digest as `signature.signature`.
64
+ * @param options Verification inputs. See {@link MailgunWebhookOptions}.
65
+ * @returns The verification result.
66
+ */
67
+ declare const verifyMailgunWebhook: (options: MailgunWebhookOptions) => WebhookVerificationResult;
68
+ /**
69
+ * Options for {@link verifyPostmarkWebhook}.
70
+ *
71
+ * Postmark does not sign webhook payloads; instead it supports HTTP Basic Auth credentials embedded
72
+ * in the webhook URL (and IP allow-listing). This verifier checks the Basic Auth credentials.
73
+ */
74
+ interface PostmarkWebhookOptions {
75
+ /**
76
+ * The value of the incoming `Authorization` header (e.g. `Basic dXNlcjpwYXNz`).
77
+ */
78
+ authorization: string | undefined;
79
+ /**
80
+ * The password configured on the Postmark webhook URL.
81
+ */
82
+ password: string;
83
+ /**
84
+ * The username configured on the Postmark webhook URL.
85
+ */
86
+ username: string;
87
+ }
88
+ /**
89
+ * Verifies a [Postmark](https://postmarkapp.com/support/article/1213-securing-inbound-and-open-webhooks)
90
+ * webhook by validating its HTTP Basic Auth credentials.
91
+ * @param options Verification inputs. See {@link PostmarkWebhookOptions}.
92
+ * @returns The verification result.
93
+ */
94
+ declare const verifyPostmarkWebhook: (options: PostmarkWebhookOptions) => WebhookVerificationResult;
95
+ /**
96
+ * Options for {@link verifySendGridWebhook}.
97
+ */
98
+ interface SendGridWebhookOptions extends TimestampToleranceOptions {
99
+ /**
100
+ * Override the current time (milliseconds) — primarily for testing.
101
+ */
102
+ now?: number;
103
+ /**
104
+ * The raw, unparsed request body exactly as received.
105
+ */
106
+ payload: string;
107
+ /**
108
+ * The verification key from the SendGrid Event Webhook settings.
109
+ *
110
+ * Either the base64-encoded DER (SPKI) string SendGrid displays, or a full PEM block.
111
+ */
112
+ publicKey: string;
113
+ /**
114
+ * The value of the `X-Twilio-Email-Event-Webhook-Signature` header (base64 DER ECDSA signature).
115
+ */
116
+ signature: string;
117
+ /**
118
+ * The value of the `X-Twilio-Email-Event-Webhook-Timestamp` header (unix epoch seconds).
119
+ */
120
+ timestamp: string;
121
+ }
122
+ /**
123
+ * Verifies a [SendGrid Event Webhook](https://www.twilio.com/docs/sendgrid/for-developers/tracking-events/getting-started-event-webhook-security-features)
124
+ * using its ECDSA (prime256v1) signature, and rejects stale requests to prevent replay.
125
+ *
126
+ * The signed message is `timestamp + payload`. The signature header is the base64-encoded DER
127
+ * ECDSA signature. The timestamp is unix epoch seconds and must fall within `tolerance` of now.
128
+ * @param options Verification inputs. See {@link SendGridWebhookOptions}.
129
+ * @returns The verification result.
130
+ * @throws {EmailError} When the supplied public key cannot be parsed.
131
+ */
132
+ declare const verifySendGridWebhook: (options: SendGridWebhookOptions) => WebhookVerificationResult;
133
+ /**
134
+ * The subset of an Amazon SNS message envelope relevant to signature verification.
135
+ *
136
+ * AWS SES delivers events (deliveries, bounces, complaints) wrapped in SNS notifications.
137
+ */
138
+ interface SnsMessage {
139
+ [key: string]: unknown;
140
+ Message?: string;
141
+ MessageId?: string;
142
+ Signature?: string;
143
+ SignatureVersion?: string;
144
+ SigningCertURL?: string;
145
+ Subject?: string;
146
+ SubscribeURL?: string;
147
+ Timestamp?: string;
148
+ Token?: string;
149
+ TopicArn?: string;
150
+ Type?: string;
151
+ }
152
+ /**
153
+ * Resolves a signing-certificate URL to its PEM contents. Injectable for testing and caching.
154
+ */
155
+ type CertificateResolver = (url: string) => Promise<string> | string;
156
+ /**
157
+ * Options for {@link verifySnsMessage}.
158
+ */
159
+ interface SnsVerifyOptions {
160
+ /**
161
+ * Override how the signing certificate is fetched. Defaults to a `fetch`-based resolver that
162
+ * only accepts `https://*.amazonaws.com` URLs.
163
+ */
164
+ certificateResolver?: CertificateResolver;
165
+ }
166
+ /**
167
+ * Validates that a signing-certificate URL points at an AWS SNS signing host over HTTPS.
168
+ * @param url The `SigningCertURL` from the SNS message.
169
+ * @returns `true` when the URL is an acceptable AWS SNS certificate endpoint.
170
+ */
171
+ declare const isValidSigningCertUrl: (url: string) => boolean;
172
+ /**
173
+ * Verifies the RSA signature on an Amazon SNS message (used to wrap AWS SES events).
174
+ *
175
+ * Signature version `1` uses SHA1, version `2` uses SHA256. The signing certificate is fetched from
176
+ * `SigningCertURL` (validated to be an `sns.&lt;region>.amazonaws.com` HTTPS endpoint with no userinfo
177
+ * or explicit port) unless a custom {@link CertificateResolver} is supplied.
178
+ * @param message The parsed SNS message envelope.
179
+ * @param options Optional overrides. See {@link SnsVerifyOptions}.
180
+ * @returns The verification result.
181
+ * @throws {EmailError} When the certificate cannot be resolved.
182
+ */
183
+ declare const verifySnsMessage: (message: SnsMessage, options?: SnsVerifyOptions) => Promise<WebhookVerificationResult>;
184
+ /**
185
+ * Options for {@link verifyStandardWebhook}.
186
+ */
187
+ interface StandardWebhookOptions extends TimestampToleranceOptions {
188
+ /**
189
+ * The request headers, or the three signature headers as a plain record.
190
+ *
191
+ * Recognized header names (case-insensitive): `webhook-id` / `svix-id`,
192
+ * `webhook-timestamp` / `svix-timestamp`, and `webhook-signature` / `svix-signature`.
193
+ */
194
+ headers: WebhookHeaders;
195
+ /**
196
+ * Override the current time (milliseconds) — primarily for testing.
197
+ */
198
+ now?: number;
199
+ /**
200
+ * The raw, unparsed request body exactly as received.
201
+ *
202
+ * Parsing and re-serializing the body changes the bytes and breaks verification.
203
+ */
204
+ payload: string;
205
+ /**
206
+ * The signing secret. Supports the `whsec_`-prefixed, base64-encoded form used by Svix/Resend,
207
+ * or a raw secret string.
208
+ */
209
+ secret: string;
210
+ }
211
+ /**
212
+ * Verifies a webhook signed according to the [Standard Webhooks](https://www.standardwebhooks.com/) spec.
213
+ *
214
+ * This is the scheme used by Svix and, by extension, Resend. The signed content is
215
+ * `${id}.${timestamp}.${payload}`, HMAC-SHA256'd with the (base64-decoded) secret and base64-encoded.
216
+ * The `webhook-signature` header may contain multiple space-separated `v1,&lt;sig>` entries; a match
217
+ * against any one of them passes.
218
+ * @param options Verification inputs. See {@link StandardWebhookOptions}.
219
+ * @returns The verification result.
220
+ */
221
+ declare const verifyStandardWebhook: (options: StandardWebhookOptions) => WebhookVerificationResult;
222
+ /**
223
+ * Verifies a [Resend](https://resend.com/docs/dashboard/webhooks/verify-webhooks-requests) webhook.
224
+ *
225
+ * Resend uses Svix, so this is an alias for {@link verifyStandardWebhook} that accepts the
226
+ * `svix-*` headers.
227
+ * @param options Verification inputs. See {@link StandardWebhookOptions}.
228
+ * @returns The verification result.
229
+ */
230
+ declare const verifyResendWebhook: (options: StandardWebhookOptions) => WebhookVerificationResult;
231
+ export { type CertificateResolver, type MailgunWebhookOptions, type PostmarkWebhookOptions, type SendGridWebhookOptions, type SnsMessage, type SnsVerifyOptions, type StandardWebhookOptions, type TimestampToleranceOptions, type WebhookHeaders, type WebhookVerificationResult, isValidSigningCertUrl, verifyMailgunWebhook, verifyPostmarkWebhook, verifyResendWebhook, verifySendGridWebhook, verifySnsMessage, verifyStandardWebhook };
@@ -0,0 +1 @@
1
+ import{verifyMailgunWebhook as r}from"../packem_shared/verifyMailgunWebhook-Cwl0OD3P.js";import{verifyPostmarkWebhook as f}from"../packem_shared/verifyPostmarkWebhook-C72ZvbrG.js";import{verifySendGridWebhook as n}from"../packem_shared/verifySendGridWebhook-Dbwc1tfG.js";import{isValidSigningCertUrl as d,verifySnsMessage as k}from"../packem_shared/isValidSigningCertUrl-Bii1AMGC.js";import{verifyResendWebhook as s,verifyStandardWebhook as v}from"../packem_shared/verifyResendWebhook-YK2zNDXR.js";export{d as isValidSigningCertUrl,r as verifyMailgunWebhook,f as verifyPostmarkWebhook,s as verifyResendWebhook,n as verifySendGridWebhook,k as verifySnsMessage,v as verifyStandardWebhook};
package/package.json CHANGED
@@ -1,57 +1,68 @@
1
1
  {
2
2
  "name": "@visulima/email",
3
- "version": "1.0.0-alpha.9",
3
+ "version": "1.0.0",
4
4
  "description": "A comprehensive email library with multi-provider support, crypto utilities, and template engines",
5
5
  "keywords": [
6
- "visulima",
7
- "email",
8
- "mail",
9
- "better-mail",
10
- "smtp",
11
- "resend",
6
+ "ahasend",
7
+ "arc",
12
8
  "aws-ses",
13
- "zeptomail",
14
- "http",
9
+ "azure",
10
+ "batch",
11
+ "better-mail",
12
+ "brevo",
13
+ "crypto",
14
+ "deliverability",
15
+ "dkim",
16
+ "dmarc",
17
+ "email",
18
+ "encryption",
19
+ "i18n",
20
+ "inbound-email",
21
+ "jsx-email",
22
+ "liquid",
23
+ "list-unsubscribe",
24
+ "middleware",
25
+ "queue",
26
+ "webhook",
15
27
  "failover",
16
- "roundrobin",
28
+ "handlebars",
29
+ "html-to-text",
30
+ "http",
31
+ "infobip",
32
+ "mail",
17
33
  "mailcrab",
18
- "nodemailer",
19
- "opentelemetry",
20
- "plunk",
21
- "mock",
22
- "sendgrid",
34
+ "mailersend",
23
35
  "mailgun",
24
- "postmark",
25
- "brevo",
26
36
  "mailjet",
27
- "mailersend",
37
+ "mailomat",
38
+ "mailpace",
39
+ "mailtrap",
28
40
  "mandrill",
41
+ "mjml",
42
+ "mock",
43
+ "netcore",
44
+ "nodemailer",
45
+ "opentelemetry",
46
+ "outlook365",
47
+ "plunk",
29
48
  "postal",
30
- "mailtrap",
31
- "mailpace",
32
- "azure",
33
- "infobip",
49
+ "postmark",
50
+ "sparkpost",
51
+ "react-email",
52
+ "resend",
53
+ "roundrobin",
34
54
  "scaleway",
35
- "ahasend",
36
- "mailomat",
37
- "sweego",
38
- "dkim",
39
- "smime",
40
- "encryption",
55
+ "sendgrid",
41
56
  "signing",
42
- "crypto",
43
- "disposable-email",
44
- "disposable-email-domains",
45
- "handlebars",
46
- "mjml",
47
- "react-email",
57
+ "smime",
58
+ "smtp",
59
+ "sweego",
60
+ "visulima",
48
61
  "vue-email",
49
- "html-to-text"
62
+ "zeptomail"
50
63
  ],
51
64
  "homepage": "https://visulima.com/packages/email",
52
- "bugs": {
53
- "url": "https://github.com/visulima/visulima/issues"
54
- },
65
+ "bugs": "https://github.com/visulima/visulima/issues",
55
66
  "repository": {
56
67
  "type": "git",
57
68
  "url": "git+https://github.com/visulima/visulima.git",
@@ -99,6 +110,18 @@
99
110
  "types": "./dist/template-engines/html-to-text.d.ts",
100
111
  "default": "./dist/template-engines/html-to-text.js"
101
112
  },
113
+ "./template/liquid": {
114
+ "types": "./dist/template-engines/liquid.d.ts",
115
+ "default": "./dist/template-engines/liquid.js"
116
+ },
117
+ "./template/jsx-email": {
118
+ "types": "./dist/template-engines/jsx-email.d.ts",
119
+ "default": "./dist/template-engines/jsx-email.js"
120
+ },
121
+ "./template/i18n": {
122
+ "types": "./dist/template-engines/i18n.d.ts",
123
+ "default": "./dist/template-engines/i18n.js"
124
+ },
102
125
  "./providers/aws-ses": {
103
126
  "types": "./dist/providers/aws-ses/index.d.ts",
104
127
  "default": "./dist/providers/aws-ses/index.js"
@@ -151,6 +174,58 @@
151
174
  "types": "./dist/crypto/index.d.ts",
152
175
  "default": "./dist/crypto/index.js"
153
176
  },
177
+ "./render": {
178
+ "types": "./dist/render/index.d.ts",
179
+ "default": "./dist/render/index.js"
180
+ },
181
+ "./webhooks": {
182
+ "types": "./dist/webhooks/index.d.ts",
183
+ "default": "./dist/webhooks/index.js"
184
+ },
185
+ "./deliverability": {
186
+ "types": "./dist/deliverability/index.d.ts",
187
+ "default": "./dist/deliverability/index.js"
188
+ },
189
+ "./deliverability/dmarc-report": {
190
+ "types": "./dist/deliverability/dmarc-report.d.ts",
191
+ "default": "./dist/deliverability/dmarc-report.js"
192
+ },
193
+ "./inbound": {
194
+ "types": "./dist/inbound/index.d.ts",
195
+ "default": "./dist/inbound/index.js"
196
+ },
197
+ "./events": {
198
+ "types": "./dist/events/index.d.ts",
199
+ "default": "./dist/events/index.js"
200
+ },
201
+ "./middleware": {
202
+ "types": "./dist/middleware/index.d.ts",
203
+ "default": "./dist/middleware/index.js"
204
+ },
205
+ "./queue": {
206
+ "types": "./dist/queue/index.d.ts",
207
+ "default": "./dist/queue/index.js"
208
+ },
209
+ "./queue/unstorage": {
210
+ "types": "./dist/queue/unstorage-queue.d.ts",
211
+ "default": "./dist/queue/unstorage-queue.js"
212
+ },
213
+ "./queue/sqs": {
214
+ "types": "./dist/queue/sqs-queue.d.ts",
215
+ "default": "./dist/queue/sqs-queue.js"
216
+ },
217
+ "./queue/pg-boss": {
218
+ "types": "./dist/queue/pg-boss-queue.d.ts",
219
+ "default": "./dist/queue/pg-boss-queue.js"
220
+ },
221
+ "./queue/bullmq": {
222
+ "types": "./dist/queue/bullmq-queue.d.ts",
223
+ "default": "./dist/queue/bullmq-queue.js"
224
+ },
225
+ "./test": {
226
+ "types": "./dist/test/index.d.ts",
227
+ "default": "./dist/test/index.js"
228
+ },
154
229
  "./providers/sendgrid": {
155
230
  "types": "./dist/providers/sendgrid/index.d.ts",
156
231
  "default": "./dist/providers/sendgrid/index.js"
@@ -215,10 +290,42 @@
215
290
  "types": "./dist/providers/sweego/index.d.ts",
216
291
  "default": "./dist/providers/sweego/index.js"
217
292
  },
293
+ "./providers/mailchannels": {
294
+ "types": "./dist/providers/mailchannels/index.d.ts",
295
+ "default": "./dist/providers/mailchannels/index.js"
296
+ },
297
+ "./providers/cloudflare-email": {
298
+ "types": "./dist/providers/cloudflare-email/index.d.ts",
299
+ "default": "./dist/providers/cloudflare-email/index.js"
300
+ },
301
+ "./providers/loops": {
302
+ "types": "./dist/providers/loops/index.d.ts",
303
+ "default": "./dist/providers/loops/index.js"
304
+ },
305
+ "./providers/sparkpost": {
306
+ "types": "./dist/providers/sparkpost/index.d.ts",
307
+ "default": "./dist/providers/sparkpost/index.js"
308
+ },
309
+ "./providers/netcore": {
310
+ "types": "./dist/providers/netcore/index.d.ts",
311
+ "default": "./dist/providers/netcore/index.js"
312
+ },
313
+ "./providers/outlook365": {
314
+ "types": "./dist/providers/outlook365/index.d.ts",
315
+ "default": "./dist/providers/outlook365/index.js"
316
+ },
218
317
  "./utils/parse-address": {
219
318
  "types": "./dist/utils/parse-address.d.ts",
220
319
  "default": "./dist/utils/parse-address.js"
221
320
  },
321
+ "./utils/parse-eml": {
322
+ "types": "./dist/utils/parse-eml.d.ts",
323
+ "default": "./dist/utils/parse-eml.js"
324
+ },
325
+ "./utils/result": {
326
+ "types": "./dist/utils/result.d.ts",
327
+ "default": "./dist/utils/result.js"
328
+ },
222
329
  "./utils/format-email-address": {
223
330
  "types": "./dist/utils/format-email-address.d.ts",
224
331
  "default": "./dist/utils/format-email-address.js"
@@ -227,29 +334,13 @@
227
334
  "types": "./dist/utils/cache.d.ts",
228
335
  "default": "./dist/utils/cache.js"
229
336
  },
230
- "./validation/disposable-email-domains": {
231
- "types": "./dist/utils/validation/disposable-email-domains.d.ts",
232
- "default": "./dist/utils/validation/disposable-email-domains.js"
233
- },
234
337
  "./validation/validate-email": {
235
338
  "types": "./dist/utils/validation/validate-email.d.ts",
236
339
  "default": "./dist/utils/validation/validate-email.js"
237
340
  },
238
- "./validation/check-mx-records": {
239
- "types": "./dist/utils/validation/check-mx-records.d.ts",
240
- "default": "./dist/utils/validation/check-mx-records.js"
241
- },
242
- "./validation/role-accounts": {
243
- "types": "./dist/utils/validation/role-accounts.d.ts",
244
- "default": "./dist/utils/validation/role-accounts.js"
245
- },
246
- "./validation/verify-smtp": {
247
- "types": "./dist/utils/validation/verify-smtp.d.ts",
248
- "default": "./dist/utils/validation/verify-smtp.js"
249
- },
250
- "./validation/verify-email": {
251
- "types": "./dist/utils/validation/verify-email.d.ts",
252
- "default": "./dist/utils/validation/verify-email.js"
341
+ "./validation/check-feature-support": {
342
+ "types": "./dist/utils/validation/check-feature-support.d.ts",
343
+ "default": "./dist/utils/validation/check-feature-support.js"
253
344
  },
254
345
  "./utils/normalize-email-aliases": {
255
346
  "types": "./dist/utils/normalize-email-aliases.d.ts",
@@ -263,21 +354,25 @@
263
354
  "CHANGELOG.md"
264
355
  ],
265
356
  "dependencies": {
266
- "@visulima/disposable-email-domains": "1.0.0-alpha.8",
267
- "html-to-text": "^9.0.5",
268
- "ical-generator": "^10.0.0",
269
- "lru-cache": "^11.2.4",
357
+ "html-to-text": "^10.0.0",
358
+ "ical-generator": "11.0.0",
359
+ "lru-cache": "11.5.1",
270
360
  "mime": "^4.1.0"
271
361
  },
272
362
  "peerDependencies": {
273
363
  "@opentelemetry/api": "^1.0.0 || ^2.0.0",
274
- "@react-email/render": "^2.0.0",
364
+ "@react-email/render": "^2.0.9",
275
365
  "@vue-email/render": "0.0.9",
276
- "asn1js": "^3.0.0",
277
- "handlebars": "^4.7.8",
278
- "mjml": "^4.15.3",
366
+ "asn1js": ">=3.0.10",
367
+ "fast-xml-parser": "^4.5.0",
368
+ "handlebars": ">=4.7.9",
369
+ "jsx-email": "^2.0.0",
370
+ "juice": "^11.0.0",
371
+ "liquidjs": "^10.0.0",
372
+ "mjml": ">=5.3.0",
279
373
  "nodemailer": ">=7",
280
- "pkijs": "^3.0.0"
374
+ "pkijs": ">=3.4.0",
375
+ "unstorage": "^1.13.0"
281
376
  },
282
377
  "peerDependenciesMeta": {
283
378
  "@opentelemetry/api": {
@@ -292,9 +387,21 @@
292
387
  "asn1js": {
293
388
  "optional": true
294
389
  },
390
+ "fast-xml-parser": {
391
+ "optional": true
392
+ },
295
393
  "handlebars": {
296
394
  "optional": true
297
395
  },
396
+ "jsx-email": {
397
+ "optional": true
398
+ },
399
+ "juice": {
400
+ "optional": true
401
+ },
402
+ "liquidjs": {
403
+ "optional": true
404
+ },
298
405
  "mjml": {
299
406
  "optional": true
300
407
  },
@@ -303,10 +410,13 @@
303
410
  },
304
411
  "pkijs": {
305
412
  "optional": true
413
+ },
414
+ "unstorage": {
415
+ "optional": true
306
416
  }
307
417
  },
308
418
  "engines": {
309
- "node": ">=22.13 <=25.x"
419
+ "node": "^22.14.0 || >=24.10.0"
310
420
  },
311
421
  "publishConfig": {
312
422
  "access": "public",
@@ -1,64 +0,0 @@
1
- import type { Buffer } from "node:buffer";
2
- /**
3
- * Detects MIME type from filename using mime package.
4
- * Falls back to application/octet-stream if not found.
5
- * @param filename The filename or path.
6
- * @returns MIME type or application/octet-stream as fallback.
7
- */
8
- export declare const detectMimeType: (filename: string) => string;
9
- /**
10
- * Generates a Content-ID for inline attachments.
11
- * @param filename The filename to generate CID from.
12
- * @returns A unique Content-ID string.
13
- */
14
- export declare const generateContentId: (filename: string) => string;
15
- /**
16
- * Reads file and returns its content as Buffer.
17
- * @param filePath Path to the file.
18
- * @returns Buffer containing file content.
19
- */
20
- export declare const readFileAsBuffer: (filePath: string) => Promise<Buffer>;
21
- /**
22
- * Attachment options for helper methods
23
- */
24
- export interface AttachmentOptions {
25
- /**
26
- * Content-ID for inline attachments (used in HTML with cid:).
27
- * If not provided and contentDisposition is 'inline', will be auto-generated.
28
- */
29
- cid?: string;
30
- /**
31
- * Content disposition type.
32
- * 'attachment' (default) or 'inline'.
33
- */
34
- contentDisposition?: "attachment" | "inline";
35
- /**
36
- * MIME type of the attachment.
37
- * If not provided, will be detected from filename.
38
- */
39
- contentType?: string;
40
- /**
41
- * Content transfer encoding.
42
- * Examples: 'base64', '7bit', 'quoted-printable'.
43
- */
44
- encoding?: string;
45
- /**
46
- * Custom filename.
47
- * Used when different from the file path.
48
- */
49
- filename?: string;
50
- /**
51
- * Custom headers for this attachment.
52
- */
53
- headers?: Record<string, string>;
54
- }
55
- /**
56
- * Attachment data options (for raw data attachments)
57
- */
58
- export interface AttachmentDataOptions extends AttachmentOptions {
59
- /**
60
- * Filename for the attachment.
61
- * Required for raw data attachments.
62
- */
63
- filename: string;
64
- }
@@ -1,48 +0,0 @@
1
- import type { EmailOptions } from "../types.d.ts";
2
- import type { DkimOptions, EmailSigner } from "./types.d.ts";
3
- /**
4
- * DKIM signer implementation
5
- */
6
- export declare class DkimSigner implements EmailSigner {
7
- /**
8
- * Sanitizes a display name for use in quoted email headers per RFC 5322.
9
- * Removes/replaces CR, LF, tabs with space, escapes backslashes and quotes,
10
- * and strips non-printable control characters.
11
- * @param name The display name to sanitize.
12
- * @returns The sanitized display name, or empty string if nothing remains.
13
- */
14
- private static sanitizeDisplayName;
15
- /**
16
- * Formats an email address for use in email headers.
17
- * @param address The email address object to format.
18
- * @param address.email The email address string.
19
- * @param address.name Optional display name for the email address.
20
- * @returns The formatted email address string in RFC 5322 format.
21
- */
22
- private static formatAddress;
23
- /**
24
- * Formats email addresses for headers.
25
- * @param addresses The email address(es) to format (single or array).
26
- * @returns The formatted email addresses string (comma-separated if multiple).
27
- */
28
- private static formatAddresses;
29
- private readonly options;
30
- /**
31
- * Creates a new DKIM signer.
32
- * @param options DKIM signing options.
33
- */
34
- constructor(options: DkimOptions);
35
- /**
36
- * Signs an email message with DKIM.
37
- * @param email The email options to sign.
38
- * @returns The email options with DKIM signature header added.
39
- * @throws {Error} When signing fails (e.g., invalid private key).
40
- */
41
- sign(email: EmailOptions): Promise<EmailOptions>;
42
- }
43
- /**
44
- * Creates a DKIM signer instance.
45
- * @param options DKIM signing options.
46
- * @returns A new DkimSigner instance.
47
- */
48
- export declare const createDkimSigner: (options: DkimOptions) => DkimSigner;