@visulima/email 1.0.0-alpha.12 → 1.0.0-alpha.14

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 (126) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +1 -5
  3. package/dist/crypto/index.js +1 -1
  4. package/dist/index.js +1 -1
  5. package/dist/packem_shared/{DkimSigner-CNpDVu4V.js → DkimSigner-C8HEBBSb.js} +5 -5
  6. package/dist/packem_shared/EmailError-C4nx6TgJ.js +1 -0
  7. package/dist/packem_shared/Mail-CKWWPQ3P.js +1 -0
  8. package/dist/packem_shared/MailMessage-DCfFM4wk.js +1 -0
  9. package/dist/packem_shared/{RequiredOptionError-CevW3u2K.js → RequiredOptionError-BeTzeno6.js} +1 -1
  10. package/dist/packem_shared/{SmimeEncrypter-Bv5m28oh.js → SmimeEncrypter-CM_gM2Cd.js} +2 -2
  11. package/dist/packem_shared/{SmimeSigner-DnBwjJRR.js → SmimeSigner-vQF8_2ZJ.js} +2 -2
  12. package/dist/packem_shared/{ahaSendProvider-DlFKEQ6D.js → ahaSendProvider-CsjoaREy.js} +1 -1
  13. package/dist/packem_shared/{attachment-processor-2rHmfa7j.js → attachment-processor-BREe8fDh.js} +1 -1
  14. package/dist/packem_shared/{awsSesProvider-Ba-eVJxZ.js → awsSesProvider-E4SEMNvy.js} +7 -7
  15. package/dist/packem_shared/azureProvider-Cg5Gd9_y.js +1 -0
  16. package/dist/packem_shared/{brevoProvider-5p6jjiK9.js → brevoProvider-B4SXxP2v.js} +1 -1
  17. package/dist/packem_shared/build-mime-message-Bv456sHf.js +2 -0
  18. package/dist/packem_shared/defineProvider-CtLH0VBE.js +1 -0
  19. package/dist/packem_shared/detectMimeType-Dv28wXZ-.js +1 -0
  20. package/dist/packem_shared/failoverProvider-B7U843uf.js +1 -0
  21. package/dist/packem_shared/httpProvider-DWSay7yF.js +1 -0
  22. package/dist/packem_shared/{infobipProvider-CtLwrUaP.js → infobipProvider-D0PP2gJ-.js} +1 -1
  23. package/dist/packem_shared/{mailCrabProvider-CM_CFDca.js → mailCrabProvider-P7zKlhLH.js} +1 -1
  24. package/dist/packem_shared/{mailPaceProvider-BFn8L0vA.js → mailPaceProvider-Cy21ZI6Y.js} +1 -1
  25. package/dist/packem_shared/{mailerSendProvider-CeeIXFnW.js → mailerSendProvider-DbrHbsEa.js} +1 -1
  26. package/dist/packem_shared/mailgunProvider-CFgoweOi.js +1 -0
  27. package/dist/packem_shared/{mailjetProvider-DwN6i0VA.js → mailjetProvider-DlgNw-e8.js} +1 -1
  28. package/dist/packem_shared/{mailomatProvider-DMQmjKHT.js → mailomatProvider-BHMXyltf.js} +1 -1
  29. package/dist/packem_shared/{mailtrapProvider-BN3UBEQw.js → mailtrapProvider-Ks3cdXZM.js} +1 -1
  30. package/dist/packem_shared/{make-request-BDzF9W9D.js → make-request-C7fcsalD.js} +1 -1
  31. package/dist/packem_shared/{mandrillProvider-370y7CLu.js → mandrillProvider-o7hdsxCF.js} +1 -1
  32. package/dist/packem_shared/mockProvider-Yf0VAcNU.js +1 -0
  33. package/dist/packem_shared/{nodemailerProvider-_w8QXMU-.js → nodemailerProvider-DUo4vHDF.js} +1 -1
  34. package/dist/packem_shared/{opentelemetryProvider-C_ZXOLSd.js → opentelemetryProvider-PYtcqHES.js} +1 -1
  35. package/dist/packem_shared/{plunkProvider-D48sw9M1.js → plunkProvider-QEN0FObd.js} +1 -1
  36. package/dist/packem_shared/{postalProvider-Bavx2FcH.js → postalProvider-C-423Isy.js} +1 -1
  37. package/dist/packem_shared/{postmarkProvider-DFC0uvjO.js → postmarkProvider-D6Kj-kpI.js} +1 -1
  38. package/dist/packem_shared/{provider-base-Cmzx6BTO.js → provider-base-8LBAorjm.js} +1 -1
  39. package/dist/packem_shared/readFile-Iz7kvCCk-CVf9zS6c.js +1 -0
  40. package/dist/packem_shared/{resendProvider-CfqU7UdE.js → resendProvider-Brz2S5fS.js} +1 -1
  41. package/dist/packem_shared/roundRobinProvider-DBGbQHjJ.js +1 -0
  42. package/dist/packem_shared/{scalewayProvider-be1HPimL.js → scalewayProvider-gR0hyLK7.js} +1 -1
  43. package/dist/packem_shared/{sendGridProvider-BVI1sq3n.js → sendGridProvider-Daf7dZ35.js} +1 -1
  44. package/dist/packem_shared/{smtpProvider-BV-ufR53.js → smtpProvider-BPNpC2T2.js} +8 -8
  45. package/dist/packem_shared/sweegoProvider-C8hI47F6.js +1 -0
  46. package/dist/packem_shared/validate-email-options-DPo3SgC0.js +1 -0
  47. package/dist/packem_shared/zeptomailProvider-ClKCD8EJ.js +1 -0
  48. package/dist/providers/ahasend/index.js +1 -1
  49. package/dist/providers/ahasend/provider.d.ts +2 -2
  50. package/dist/providers/aws-ses/index.js +1 -1
  51. package/dist/providers/aws-ses/provider.d.ts +2 -2
  52. package/dist/providers/azure/index.js +1 -1
  53. package/dist/providers/brevo/index.js +1 -1
  54. package/dist/providers/failover/index.js +1 -1
  55. package/dist/providers/failover/provider.d.ts +2 -2
  56. package/dist/providers/http/index.js +1 -1
  57. package/dist/providers/http/provider.d.ts +2 -2
  58. package/dist/providers/infobip/index.js +1 -1
  59. package/dist/providers/infobip/provider.d.ts +2 -2
  60. package/dist/providers/mailcrab/index.js +1 -1
  61. package/dist/providers/mailcrab/provider.d.ts +2 -2
  62. package/dist/providers/mailersend/index.js +1 -1
  63. package/dist/providers/mailersend/provider.d.ts +2 -2
  64. package/dist/providers/mailgun/index.js +1 -1
  65. package/dist/providers/mailgun/provider.d.ts +2 -2
  66. package/dist/providers/mailjet/index.js +1 -1
  67. package/dist/providers/mailomat/index.js +1 -1
  68. package/dist/providers/mailomat/provider.d.ts +2 -2
  69. package/dist/providers/mailpace/index.js +1 -1
  70. package/dist/providers/mailtrap/index.js +1 -1
  71. package/dist/providers/mailtrap/provider.d.ts +2 -2
  72. package/dist/providers/mandrill/index.js +1 -1
  73. package/dist/providers/mandrill/provider.d.ts +2 -2
  74. package/dist/providers/mock/index.js +1 -1
  75. package/dist/providers/mock/provider.d.ts +2 -2
  76. package/dist/providers/nodemailer/index.js +1 -1
  77. package/dist/providers/nodemailer/provider.d.ts +2 -2
  78. package/dist/providers/opentelemetry/index.js +1 -1
  79. package/dist/providers/opentelemetry/provider.d.ts +1 -2
  80. package/dist/providers/plunk/index.js +1 -1
  81. package/dist/providers/plunk/provider.d.ts +2 -2
  82. package/dist/providers/postal/index.js +1 -1
  83. package/dist/providers/postal/provider.d.ts +2 -2
  84. package/dist/providers/postmark/index.js +1 -1
  85. package/dist/providers/postmark/provider.d.ts +2 -2
  86. package/dist/providers/provider.d.ts +1 -1
  87. package/dist/providers/resend/index.js +1 -1
  88. package/dist/providers/roundrobin/index.js +1 -1
  89. package/dist/providers/roundrobin/provider.d.ts +2 -2
  90. package/dist/providers/scaleway/index.js +1 -1
  91. package/dist/providers/scaleway/provider.d.ts +2 -2
  92. package/dist/providers/sendgrid/index.js +1 -1
  93. package/dist/providers/sendgrid/provider.d.ts +2 -2
  94. package/dist/providers/smtp/index.js +1 -1
  95. package/dist/providers/smtp/provider.d.ts +2 -2
  96. package/dist/providers/sweego/index.js +1 -1
  97. package/dist/providers/sweego/provider.d.ts +2 -2
  98. package/dist/providers/zeptomail/index.js +1 -1
  99. package/dist/providers/zeptomail/provider.d.ts +2 -2
  100. package/dist/template-engines/handlebars.js +1 -1
  101. package/dist/template-engines/html-to-text.js +1 -1
  102. package/dist/template-engines/mjml.js +1 -1
  103. package/dist/template-engines/react-email.js +1 -1
  104. package/dist/template-engines/vue-email.js +1 -1
  105. package/dist/utils/format-email-address.js +1 -1
  106. package/dist/utils/make-request.d.ts +1 -1
  107. package/dist/utils/parse-address.js +1 -1
  108. package/dist/utils/validation/verify-email.js +1 -1
  109. package/dist/utils/validation/verify-smtp.js +1 -1
  110. package/package.json +9 -10
  111. package/dist/packem_shared/EmailError-zm2ffVav.js +0 -1
  112. package/dist/packem_shared/Mail-DxAdbjDr.js +0 -1
  113. package/dist/packem_shared/MailMessage-7FA892bF.js +0 -1
  114. package/dist/packem_shared/azureProvider-CQYAkgVF.js +0 -1
  115. package/dist/packem_shared/build-mime-message-IYaUqqPJ.js +0 -2
  116. package/dist/packem_shared/defineProvider-B9rSklAJ.js +0 -1
  117. package/dist/packem_shared/detectMimeType-CPYmHk7Y.js +0 -1
  118. package/dist/packem_shared/failoverProvider-CAHQQueo.js +0 -1
  119. package/dist/packem_shared/httpProvider-CZD6LZX3.js +0 -1
  120. package/dist/packem_shared/mailgunProvider-mmjKzouh.js +0 -1
  121. package/dist/packem_shared/mockProvider-DN5ZwutD.js +0 -1
  122. package/dist/packem_shared/readFile-BlZxbhCU-C76YbAVD.js +0 -1
  123. package/dist/packem_shared/roundRobinProvider-1WQnuKR8.js +0 -1
  124. package/dist/packem_shared/sweegoProvider-7419CSAq.js +0 -1
  125. package/dist/packem_shared/validate-email-options-DfJ7llf8.js +0 -1
  126. package/dist/packem_shared/zeptomailProvider-DTUWVINJ.js +0 -1
@@ -1 +0,0 @@
1
- var k=Object.defineProperty;var w=(n,l)=>k(n,"name",{value:l,configurable:!0});import{createRequire as z}from"node:module";import u from"./EmailError-zm2ffVav.js";import v from"./RequiredOptionError-CevW3u2K.js";import{s as P}from"./generate-message-id-D4uA8gkj.js";import{i as j}from"./headers-to-record-Qo124ImV.js";import{m as h}from"./make-request-BDzF9W9D.js";import{c as _,P as B,u as T,h as S}from"./provider-base-Cmzx6BTO.js";import{d as C}from"./validate-email-options-DfJ7llf8.js";import{defineProvider as E}from"./defineProvider-B9rSklAJ.js";import{j as y,k as q}from"./address-formatter-Cm_E_ZMa.js";const $=z(import.meta.url),f=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,I=w(n=>{if(typeof f<"u"&&f.versions&&f.versions.node){const[l,t]=f.versions.node.split(".").map(Number);if(l>22||l===22&&t>=3||l===20&&t>=16)return f.getBuiltinModule(n)}return $(n)},"__cjs_getBuiltinModule"),{Buffer:p}=I("node:buffer"),s="azure",x=3e4,O=3,Q=E((n={})=>{if(!n.region)throw new v(s,"region");if(!n.connectionString&&!n.accessToken)throw new v(s,"connectionString or accessToken");const l=n.endpoint||`https://${n.region}.communication.azure.com`,t={debug:n.debug||!1,endpoint:l,region:n.region,retries:n.retries||O,timeout:n.timeout||x,...n.connectionString&&{connectionString:n.connectionString},...n.accessToken&&{accessToken:n.accessToken},...n.logger&&{logger:n.logger}},g=new B,o=_(s,n.logger);return{features:{attachments:!0,batchSending:!1,customHeaders:!0,html:!0,replyTo:!0,scheduling:!1,tagging:!1,templates:!0,tracking:!1},async getEmail(e){try{if(!e)return{error:new u(s,"Email ID is required to retrieve email details"),success:!1};await g.ensureInitialized(()=>this.initialize(),s);const a={"Content-Type":"application/json"};if(t.accessToken)a.Authorization=`Bearer ${t.accessToken}`;else if(t.connectionString){const c=t.connectionString.match(/endpoint=([^;]+);accesskey=([^;]+)/);c&&(a.Authorization=`Bearer ${c[2]}`)}o.debug("Retrieving email details",{id:e});const r=await T(async()=>h(`${t.endpoint}/emails/${e}`,{headers:a,method:"GET",timeout:t.timeout}),t.retries);return r.success?(o.debug("Email details retrieved successfully"),{data:r.data?.body,success:!0}):(o.debug("API request failed when retrieving email",r.error),{error:new u(s,`Failed to retrieve email: ${r.error instanceof Error?r.error.message:"Unknown error"}`,{cause:r.error}),success:!1})}catch(a){return{error:S(s,"retrieve email",a,o),success:!1}}},async initialize(){await g.ensureInitialized(async()=>{if(!await this.isAvailable())throw new u(s,"Azure Communication Services API not available or invalid credentials");o.debug("Provider initialized successfully")},s)},async isAvailable(){try{const e={"Content-Type":"application/json"};if(t.accessToken)e.Authorization=`Bearer ${t.accessToken}`;else if(t.connectionString){const c=t.connectionString.match(/endpoint=([^;]+);accesskey=([^;]+)/);if(c)e.Authorization=`Bearer ${c[2]}`;else return!1}else return!1;o.debug("Checking Azure Communication Services API availability");const a=await h(`${t.endpoint}/emails:send`,{headers:e,method:"POST",timeout:t.timeout},JSON.stringify({}));if(a.success)return!0;const r=a.data?.statusCode;return r===401||r===403?!1:r===400}catch(e){if(o.debug("Error checking availability:",e),e instanceof Error){const a=e.message;if(a.includes("401")||a.includes("403"))return!1}return!1}},name:s,options:t,async sendEmail(e){try{const a=C(e);if(a.length>0)return{error:new u(s,`Invalid email options: ${a.join(", ")}`),success:!1};await g.ensureInitialized(()=>this.initialize(),s);const r={content:{subject:e.subject},recipients:{to:y(e.to)},senderAddress:e.from.email};if(e.html&&(r.content.html=e.html),e.text&&(r.content.plainText=e.text),e.cc&&(r.recipients.cc=y(e.cc)),e.bcc&&(r.recipients.bcc=y(e.bcc)),e.replyTo&&(r.replyTo=q(e.replyTo).email),e.importance&&(r.importance=e.importance),e.headers){const i=j(e.headers);r.headers=i}e.attachments&&e.attachments.length>0&&(r.attachments=await Promise.all(e.attachments.map(async i=>{let d;if(i.content)if(typeof i.content=="string")d=p.from(i.content,"utf8").toString("base64");else if(i.content&&typeof i.content.then=="function"){const A=await i.content;d=p.from(A).toString("base64")}else d=i.content.toString("base64");else if(i.raw)d=typeof i.raw=="string"?p.from(i.raw,"utf8").toString("base64"):i.raw.toString("base64");else throw new u(s,`Attachment ${i.filename} has no content`);return{contentInBase64:d,contentType:i.contentType||"application/octet-stream",name:i.filename}}))),o.debug("Sending email via Azure Communication Services API",{subject:r.content.subject,to:r.recipients.to});const c={"Content-Type":"application/json"};if(t.accessToken)c.Authorization=`Bearer ${t.accessToken}`;else if(t.connectionString){const i=t.connectionString.match(/endpoint=([^;]+);accesskey=([^;]+)/);if(i)c.Authorization=`Bearer ${i[2]}`;else return{error:new u(s,"Invalid connection string format"),success:!1}}const m=await T(async()=>h(`${t.endpoint}/emails:send`,{headers:c,method:"POST",timeout:t.timeout},JSON.stringify(r)),t.retries);if(!m.success)return o.debug("API request failed when sending email",m.error),{error:m.error||new u(s,"Failed to send email"),success:!1};const b=m.data?.body?.messageId||P();return o.debug("Email sent successfully",{messageId:b}),{data:{messageId:b,provider:s,response:m.data,sent:!0,timestamp:new Date},success:!0}}catch(a){return{error:S(s,"send email",a,o),success:!1}}},async validateCredentials(){return this.isAvailable()}}});export{Q as default};
@@ -1,2 +0,0 @@
1
- var T=Object.defineProperty;var u=(e,o)=>T(e,"name",{value:o,configurable:!0});import C from"./EmailError-zm2ffVav.js";import p from"../utils/format-email-address.js";import{a as w}from"./generate-boundary-Cx8nXYS0.js";import{i as j}from"./headers-to-record-Qo124ImV.js";import{s as h,a as b}from"./sanitize-header-wWav-Scu.js";var x=Object.defineProperty,E=u((e,o)=>x(e,"name",{value:o,configurable:!0}),"m");const l=E(e=>Array.isArray(e)?e.map(o=>p(o)).join(", "):p(e),"formatEmailAddresses");var B=Object.defineProperty,M=u((e,o)=>B(e,"name",{value:o,configurable:!0}),"b");const d=globalThis.Buffer!==void 0,g=M(e=>{if(typeof e=="string"){if(d)return Buffer.from(e,"utf8").toString("base64");const t=new TextEncoder().encode(e);let r="";const s=8192;for(let a=0;a<t.length;a+=s){const f=t.subarray(a,Math.min(a+s,t.length));r+=String.fromCharCode.apply(void 0,f)}return btoa(r)}if(d&&e instanceof Buffer)return e.toString("base64");const o=e instanceof Uint8Array?e:new Uint8Array(e);if(d)return Buffer.from(o).toString("base64");let n="";const c=8192;for(let t=0;t<o.length;t+=c){const r=o.subarray(t,Math.min(t+c,o.length));n+=String.fromCharCode.apply(void 0,r)}return btoa(n)},"toBase64");var S=Object.defineProperty,A=u((e,o)=>S(e,"name",{value:o,configurable:!0}),"h");const O=globalThis.Buffer!==void 0,H=A(async e=>{const o=w(),n=[`From: ${p(e.from)}`,`To: ${l(e.to)}`];if(e.cc&&n.push(`Cc: ${l(e.cc)}`),e.bcc&&n.push(`Bcc: ${l(e.bcc)}`),e.replyTo&&n.push(`Reply-To: ${p(e.replyTo)}`),n.push(`Subject: ${h(e.subject)}`,"MIME-Version: 1.0"),e.headers){const c=j(e.headers);Object.entries(c).forEach(([t,r])=>{const s=b(t),a=h(r);n.push(`${s}: ${a}`)})}if(n.push(`Content-Type: multipart/mixed; boundary="${o}"`,""),e.text&&n.push(`--${o}`,"Content-Type: text/plain; charset=UTF-8","Content-Transfer-Encoding: 7bit","",e.text,""),e.html&&n.push(`--${o}`,"Content-Type: text/html; charset=UTF-8","Content-Transfer-Encoding: 7bit","",e.html,""),e.attachments&&e.attachments.length>0){const c=await Promise.all(e.attachments.map(async t=>{let r;if(t.raw!==void 0)r=t.raw;else{if(t.content===void 0)throw new C("attachment",`Attachment '${t.filename}' must have content, raw, or be resolved from path/href before building MIME message`);r=t.content instanceof Promise?await t.content:t.content}return{...t,resolvedContent:r}}));for(const t of c){n.push(`--${o}`);const r=t.contentType||"application/octet-stream",s=h(t.filename);n.push(`Content-Type: ${r}; name="${s}"`);const a=t.contentDisposition||"attachment";n.push(`Content-Disposition: ${a}; filename="${s}"`),t.cid&&n.push(`Content-ID: <${t.cid}>`),t.headers&&Object.entries(t.headers).forEach(([m,y])=>{const $=b(m),v=h(y);n.push(`${$}: ${v}`)});const f=t.encoding||"base64";n.push(`Content-Transfer-Encoding: ${f}`,"");const i=t.resolvedContent;if(f==="base64")n.push(g(i));else if(f==="7bit"||f==="8bit")if(typeof i=="string")n.push(i);else if(O&&i instanceof Buffer)n.push(i.toString("utf8"));else{const m=new TextDecoder;n.push(m.decode(i))}else n.push(g(i));n.push("")}}return n.push(`--${o}--`),n.join(`\r
2
- `)},"buildMimeMessage");export{H as z};
@@ -1 +0,0 @@
1
- var n=Object.defineProperty;var i=(e,r)=>n(e,"name",{value:r,configurable:!0});var o=Object.defineProperty,a=i((e,r)=>o(e,"name",{value:r,configurable:!0}),"i");const t=a(e=>e,"defineProvider");export{t as defineProvider};
@@ -1 +0,0 @@
1
- var o=Object.defineProperty;var a=(e,r)=>o(e,"name",{value:r,configurable:!0});import{B as l}from"./readFile-BlZxbhCU-C76YbAVD.js";import i from"mime";var c=Object.defineProperty,t=a((e,r)=>c(e,"name",{value:r,configurable:!0}),"e");const s=t(e=>i.getType(e)||"application/octet-stream","detectMimeType"),d=t(e=>{const r=e.replaceAll(/[^a-z0-9]/gi,"-").replaceAll(/-+/g,"-").replaceAll(/^-|-$/g,"").toLowerCase(),n=Math.random().toString(36).slice(2,9);return`${r}-${n}@email`},"generateContentId"),g=t(async e=>l(e,{buffer:!0}),"readFileAsBuffer");export{s as detectMimeType,d as generateContentId,g as readFileAsBuffer};
@@ -1 +0,0 @@
1
- var w=Object.defineProperty;var b=(e,l)=>w(e,"name",{value:l,configurable:!0});import u from"./EmailError-zm2ffVav.js";import $ from"./RequiredOptionError-CevW3u2K.js";import{c as A}from"./create-logger-BiWdqFNg.js";import{s as E}from"./generate-message-id-D4uA8gkj.js";import{defineProvider as z}from"./defineProvider-B9rSklAJ.js";var P=Object.defineProperty,p=b((e,l)=>P(e,"name",{value:l,configurable:!0}),"v");const k=p(e=>typeof e=="function","isProviderFactory"),F=p(e=>e!==null&&typeof e=="object"&&"sendEmail"in e&&"initialize"in e&&"isAvailable"in e,"isProvider"),o="failover",C=z((e={})=>{if(!e.mailers||e.mailers.length===0)throw new $(o,"mailers");const l={debug:e.debug||!1,mailers:e.mailers,retryAfter:e.retryAfter??60};let h=!1;const t=[],s=A(o,e.logger);let g;const m=p(async()=>g||(g=(async()=>{t.length=0;for(const a of l.mailers)try{let r;if(k(a))r=a({});else if(F(a))r=a;else{s.debug(`Skipping invalid mailer: ${a}`);continue}try{await r.initialize(),t.push(r),s.debug(`Initialized provider: ${r.name||"unknown"}`)}catch(c){s.debug(`Failed to initialize provider ${r.name||"unknown"}:`,c)}}catch(r){s.debug("Error processing mailer:",r)}if(t.length===0)throw new u(o,"No providers could be initialized")})(),g),"initializeProviders");return{features:{attachments:!0,batchSending:!1,customHeaders:!0,html:!0,replyTo:!0,scheduling:!1,tagging:!1,templates:!1,tracking:!1},async initialize(){if(!h)try{await m(),h=!0,s.debug(`Failover provider initialized with ${t.length} provider(s)`)}catch(a){throw new u(o,`Failed to initialize: ${a.message}`,{cause:a})}},async isAvailable(){try{t.length===0&&await m();for(const a of t)try{if(await a.isAvailable())return!0}catch{}return!1}catch{return!1}},name:o,options:l,async sendEmail(a){try{if(t.length===0&&await m(),t.length===0)return{error:new u(o,"No providers available"),success:!1};const r=[];let c;for(let n=0;n<t.length;n+=1){const f=t[n];if(!f)continue;const d=f.name||`provider-${n+1}`;s.debug(`Attempting to send email via ${d} (${n+1}/${t.length})`);try{if(!await f.isAvailable()){s.debug(`Provider ${d} is not available, skipping`),r.push(new u(o,`Provider ${d} is not available`));continue}const i=await f.sendEmail(a);if(i.success&&i.data)return s.debug(`Email sent successfully via ${d}`),{data:{...i.data,messageId:i.data.messageId||E(),provider:`${o}(${d})`},success:!0};if(i.error){c=i.error,r.push(i.error);const v=i.error instanceof Error?i.error.message:String(i.error);s.debug(`Failed to send via ${d}:`,v)}}catch(i){c=i instanceof Error?i:new Error(String(i)),r.push(c);const v=c instanceof Error?c.message:String(c);s.debug(`Exception sending via ${d}:`,v)}n<t.length-1&&l.retryAfter>0&&(s.debug(`Waiting ${l.retryAfter}ms before trying next provider`),await new Promise(i=>{setTimeout(()=>{i()},l.retryAfter)}))}const y=r.map(n=>n instanceof Error?n.message:String(n)).join("; ");return{error:new u(o,`All providers failed. Errors: ${y}`,{cause:c}),success:!1}}catch(r){return{error:new u(o,`Failed to send email: ${r.message}`,{cause:r}),success:!1}}},async validateCredentials(){return this.isAvailable()}}});export{C as default};
@@ -1 +0,0 @@
1
- var v=Object.defineProperty;var p=(r,a)=>v(r,"name",{value:a,configurable:!0});import d from"./EmailError-zm2ffVav.js";import A from"./RequiredOptionError-CevW3u2K.js";import{s as j}from"./generate-message-id-D4uA8gkj.js";import{m as u}from"./make-request-BDzF9W9D.js";import{d as O}from"./validate-email-options-DfJ7llf8.js";import{defineProvider as P}from"./defineProvider-B9rSklAJ.js";var C=Object.defineProperty,h=p((r,a)=>C(r,"name",{value:a,configurable:!0}),"f");const n="http",I="POST",f=3e4,z=P((r={})=>{if(!r.endpoint)throw new A(n,"endpoint");const a={apiKey:r.apiKey||"",endpoint:r.endpoint,headers:r.headers||{},method:r.method||I},m=h(()=>{const e={"Content-Type":"application/json",...a.headers};return a.apiKey&&(e.Authorization=`Bearer ${a.apiKey}`),e},"getStandardHeaders"),y=h(e=>{const t={from:e.from.email,from_name:e.from.name,html:e.html,subject:e.subject,text:e.text,to:Array.isArray(e.to)?e.to.map(s=>s.email):e.to.email};return e.cc&&(t.cc=Array.isArray(e.cc)?e.cc.map(s=>s.email):e.cc.email),e.bcc&&(t.bcc=Array.isArray(e.bcc)?e.bcc.map(s=>s.email):e.bcc.email),e.customParams&&Object.assign(t,e.customParams),t},"formatRequest");let l=!1;return{features:{attachments:!1,batchSending:!1,customHeaders:!0,html:!0,replyTo:!1,scheduling:!1,tagging:!1,templates:!1,tracking:!1},async initialize(){if(!l){if(!await this.isAvailable())throw new d(n,"API endpoint not available");l=!0}},async isAvailable(){try{return!!(await u(a.endpoint,{headers:m(),method:"OPTIONS",timeout:f})).success}catch(e){if(e instanceof Error){const t=e.message;if(t.includes("401")||t.includes("403"))return!1}return!1}},name:n,options:a,async sendEmail(e){try{const t=O(e);if(t.length>0)return{error:new d(n,`Invalid email options: ${t.join(", ")}`),success:!1};l||await this.initialize();const s=m();e.headers&&Object.assign(s,e.headers);const b=y(e),g=e.endpointOverride||a.endpoint,w=e.methodOverride||a.method,o=await u(g,{headers:s,method:w,timeout:f},JSON.stringify(b));if(!o.success)return{error:new d(n,`Failed to send email: ${o.error?.message||"Unknown error"}`,{cause:o.error}),success:!1};let c;const i=o.data?.body;return i&&typeof i=="object"&&(c=i.id||i.messageId||i.data&&typeof i.data=="object"&&(i.data.id||i.data.messageId)),c||(c=j()),{data:{messageId:c,provider:n,response:o.data?.body,sent:!0,timestamp:new Date},success:!0}}catch(t){return{error:new d(n,`Failed to send email: ${t.message}`,{cause:t}),success:!1}}},async validateCredentials(){try{const e=await u(a.endpoint,{headers:m(),method:"GET",timeout:f});return!!(e.data&&typeof e.data=="object"&&"statusCode"in e.data&&typeof e.data.statusCode=="number"&&e.data.statusCode>=200&&e.data.statusCode<300)}catch{return!1}}}});export{z as default};
@@ -1 +0,0 @@
1
- var I=Object.defineProperty;var y=(r,i)=>I(r,"name",{value:i,configurable:!0});import{createRequire as A}from"node:module";import m from"./EmailError-zm2ffVav.js";import T from"./RequiredOptionError-CevW3u2K.js";import{s as R}from"./generate-message-id-D4uA8gkj.js";import{i as S}from"./headers-to-record-Qo124ImV.js";import{m as h}from"./make-request-BDzF9W9D.js";import{c as _,P as z,u as $,h as j}from"./provider-base-Cmzx6BTO.js";import{d as E}from"./validate-email-options-DfJ7llf8.js";import{defineProvider as q}from"./defineProvider-B9rSklAJ.js";import{a as U}from"./attachment-processor-2rHmfa7j.js";import{b as v,c as k}from"./address-formatter-Cm_E_ZMa.js";const P=A(import.meta.url),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,C=y(r=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[i,n]=u.versions.node.split(".").map(Number);if(i>22||i===22&&n>=3||i===20&&n>=16)return u.getBuiltinModule(r)}return P(r)},"__cjs_getBuiltinModule"),{Buffer:b}=C("node:buffer");var M=Object.defineProperty,K=y((r,i)=>M(r,"name",{value:i,configurable:!0}),"k");const o="mailgun",B="https://api.mailgun.net",O=3e4,x=3,D=K(r=>{const i=[];for(const[n,a]of Object.entries(r))if(a!=null)if(Array.isArray(a))for(const e of a)i.push(`${encodeURIComponent(n)}=${encodeURIComponent(String(e))}`);else typeof a=="object"?i.push(`${encodeURIComponent(n)}=${encodeURIComponent(JSON.stringify(a))}`):i.push(`${encodeURIComponent(n)}=${encodeURIComponent(String(a))}`);return i.join("&")},"objectToFormData"),ee=q((r={})=>{if(!r.apiKey)throw new T(o,"apiKey");if(!r.domain)throw new T(o,"domain");const i={apiKey:r.apiKey,debug:r.debug||!1,domain:r.domain,endpoint:r.endpoint||B,retries:r.retries||x,timeout:r.timeout||O,...r.logger&&{logger:r.logger}},n=new z,a=_(o,r.logger);return{endpoint:i.endpoint,features:{attachments:!0,batchSending:!0,customHeaders:!0,html:!0,replyTo:!0,scheduling:!0,tagging:!0,templates:!0,tracking:!0},async getEmail(e){try{if(!e)return{error:new m(o,"Email ID is required to retrieve email details"),success:!1};await n.ensureInitialized(()=>this.initialize(),o);const s={Authorization:`Basic ${b.from(`api:${i.apiKey}`).toString("base64")}`,"Content-Type":"application/json"};a.debug("Retrieving email details",{id:e});const t=await $(async()=>h(`${i.endpoint}/v3/${i.domain}/events?message-id=${encodeURIComponent(e)}&limit=1`,{headers:s,method:"GET",timeout:i.timeout}),i.retries);if(!t.success)return a.debug("API request failed when retrieving email",t.error),{error:new m(o,`Failed to retrieve email: ${t.error instanceof Error?t.error.message:"Unknown error"}`,{cause:t.error}),success:!1};a.debug("Email details retrieved successfully");const p=t.data?.items||[],g=p.length>0?p[0]:void 0;return{data:g?.message?.headers||g?.storage||void 0,success:!0}}catch(s){return{error:j(o,"retrieve email",s,a),success:!1}}},async initialize(){await n.ensureInitialized(async()=>{if(!await this.isAvailable())throw new m(o,"Mailgun API not available or invalid API key/domain");a.debug("Provider initialized successfully")},o)},async isAvailable(){try{const e={Authorization:`Basic ${b.from(`api:${i.apiKey}`).toString("base64")}`,"Content-Type":"application/json"};a.debug("Checking Mailgun API availability");const s=await h(`${i.endpoint}/v3/domains/${i.domain}`,{headers:e,method:"GET",timeout:i.timeout});if(a.debug("Mailgun API availability check response:",{error:s.error instanceof Error?s.error.message:void 0,statusCode:s.data?.statusCode,success:s.success}),!s.success||!s.data||typeof s.data!="object")return!1;const{statusCode:t}=s.data;return typeof t=="number"&&t>=200&&t<300}catch(e){return a.debug("Error checking availability:",e),!1}},name:o,options:i,async sendEmail(e){try{const s=E(e);if(s.length>0)return{error:new m(o,`Invalid email options: ${s.join(", ")}`),success:!1};await n.ensureInitialized(()=>this.initialize(),o);const t={from:k(e.from),to:v(e.to).join(",")};if(e.subject&&(t.subject=e.subject),e.cc&&(t.cc=v(e.cc).join(",")),e.bcc&&(t.bcc=v(e.bcc).join(",")),e.replyTo&&(t["h:Reply-To"]=k(e.replyTo)),e.html&&(t.html=e.html),e.text&&(t.text=e.text),e.template&&(t.template=e.template,e.templateVariables))for(const[d,c]of Object.entries(e.templateVariables))t[`v:${d}`]=c;if(e.tags&&e.tags.length>0&&(t["o:tag"]=e.tags),e.campaignId&&(t["o:campaign"]=e.campaignId),e.deliveryTime&&(t["o:deliverytime"]=typeof e.deliveryTime=="number"?new Date(e.deliveryTime*1e3).toUTCString():e.deliveryTime),e.clickTracking!==void 0&&(t["o:clicktracking"]=e.clickTracking?"yes":"no"),e.openTracking!==void 0&&(t["o:tracking"]=e.openTracking?"yes":"no"),e.unsubscribeTracking!==void 0&&(t["o:tracking-clicks"]=e.unsubscribeTracking?"yes":"no"),e.testMode&&(t["o:testmode"]="yes"),e.requireTls&&(t["o:require-tls"]="yes"),e.skipVerification&&(t["o:skip-verification"]="yes"),e.headers){const d=S(e.headers);for(const[c,f]of Object.entries(d))t[`h:${c}`]=f}if(e.attachments&&e.attachments.length>0){const d=await Promise.all(e.attachments.map((c,f)=>U(c,o,f)));for(const c of d)t[c.key]=c.content}a.debug("Sending email via Mailgun API",{subject:t.subject,to:t.to});const p={Authorization:`Basic ${b.from(`api:${i.apiKey}`).toString("base64")}`,"Content-Type":"application/x-www-form-urlencoded"},g=D(t),l=await $(async()=>h(`${i.endpoint}/v3/${i.domain}/messages`,{headers:p,method:"POST",timeout:i.timeout},g),i.retries);if(!l.success)return a.debug("API request failed when sending email",l.error),{error:l.error||new m(o,"Failed to send email"),success:!1};const w=l.data?.body?.id||R();return a.debug("Email sent successfully",{messageId:w}),{data:{messageId:w,provider:o,response:l.data,sent:!0,timestamp:new Date},success:!0}}catch(s){return{error:j(o,"send email",s,a),success:!1}}},async validateCredentials(){return this.isAvailable()}}});export{ee as default};
@@ -1 +0,0 @@
1
- var S=Object.defineProperty;var v=(m,l)=>S(m,"name",{value:l,configurable:!0});import c from"./EmailError-zm2ffVav.js";import{c as I}from"./create-logger-BiWdqFNg.js";import{s as D}from"./generate-message-id-D4uA8gkj.js";import{d as $}from"./validate-email-options-DfJ7llf8.js";import{defineProvider as A}from"./defineProvider-B9rSklAJ.js";var F=Object.defineProperty,k=v((m,l)=>F(m,"name",{value:l,configurable:!0}),"k");const u="mock",p=new Map,M=k(()=>({debug:!1,delay:0,failureRate:0,randomDelayRange:{max:0,min:0},retries:0,simulateFailure:!1,timeout:0}),"createDefaultConfig"),L=A((m={})=>{const l=`mock-${Date.now()}-${Math.random().toString(36).slice(2,9)}`;p.has(l)||p.set(l,[]);const a=p.get(l);if(!a)throw new Error(`Storage not found for instance: ${l}`);let y=!1,f;const s={...M(),defaultResponse:m.defaultResponse,logger:m.logger,randomDelayRange:m.randomDelayRange||{max:0,min:0},...m},r=I(u,s.logger);return{clearSentMessages(){a.length=0,r.debug("Cleared all sent messages")},features:{attachments:!0,batchSending:!0,customHeaders:!0,html:!0,replyTo:!0,scheduling:!1,tagging:!0,templates:!1,tracking:!1},findMessageBy(e){return a.find(t=>e(t))},findMessagesBy(e){return a.filter(t=>e(t))},async getEmail(e){try{if(!e)return{error:new c(u,"Email ID is required to retrieve email details"),success:!1};const t=a.find(o=>o.id===e);return t?(r.debug("Retrieved email",{id:e}),{data:t,success:!0}):{error:new c(u,`Email with ID ${e} not found`),success:!1}}catch(t){return r.debug("Exception retrieving email",t),{error:new c(u,`Failed to retrieve email: ${t.message}`,{cause:t}),success:!1}}},getInstance(){return a},getLastSentMessage(){return a[a.length-1]},getMessagesBySubject(e){return a.filter(t=>t.options.subject===e)},getMessagesTo(e){return a.filter(t=>{const o=Array.isArray(t.options.to)?t.options.to:[t.options.to];let i=[];t.options.cc&&(i=Array.isArray(t.options.cc)?t.options.cc:[t.options.cc]);let d=[];return t.options.bcc&&(d=Array.isArray(t.options.bcc)?t.options.bcc:[t.options.bcc]),[...o,...i,...d].some(w=>w.email===e)})},getSentEmails(){return[...a]},getSentMessages(){return[...a]},getSentMessagesCount(){return a.length},async initialize(){y||(s.delay>0&&await new Promise(e=>{setTimeout(e,s.delay)}),y=!0,r.debug("Mock provider initialized"))},async isAvailable(){return!0},name:u,options:s,reset(){a.length=0,f=void 0;const e=M();s.debug=e.debug,s.delay=e.delay,s.failureRate=e.failureRate,s.retries=e.retries,s.simulateFailure=e.simulateFailure,s.timeout=e.timeout,s.randomDelayRange={max:0,min:0},s.defaultResponse=void 0,r.debug("Mock provider reset to initial state")},async sendEmail(e){try{const t=$(e);if(t.length>0)return{error:new c(u,`Invalid email options: ${t.join(", ")}`),success:!1};y||await this.initialize();let o=s.delay;if(s.randomDelayRange&&s.randomDelayRange.max>0){const{max:n,min:g}=s.randomDelayRange;o=Math.floor(Math.random()*(n-g+1))+g}if(o>0&&await new Promise(n=>{setTimeout(n,o)}),f!==void 0){const n=f;if(f=void 0,!n.successful)return r.debug("Using next response (failure)",n),{error:new c(u,n.errorMessages.join(", ")),success:!1};const g=n.messageId||D(),b=n.timestamp||new Date,h={messageId:g,provider:n.provider||u,response:n.response,sent:!0,timestamp:b},E={id:g,options:e,result:h,timestamp:b};return a.push(E),r.debug("Email stored using next response",{messageId:g}),{data:h,success:!0}}if(s.simulateFailure||s.failureRate>0&&Math.random()<s.failureRate)return r.debug("Simulating email send failure"),{error:new c(u,"Simulated failure"),success:!1};const i=s.defaultResponse?.successful?s.defaultResponse.messageId:D(),d=s.defaultResponse?.successful&&s.defaultResponse.timestamp?s.defaultResponse.timestamp:new Date,w=s.defaultResponse&&"response"in s.defaultResponse?s.defaultResponse.response:void 0,R={messageId:i,provider:u,response:w??{mock:!0,stored:!0},sent:!0,timestamp:d},x={id:i,options:e,result:R,timestamp:d};return a.push(x),r.debug("Email stored in mock provider",{messageId:i,subject:e.subject,to:Array.isArray(e.to)?e.to.map(n=>n.email):e.to.email}),{data:R,success:!0}}catch(t){return r.debug("Exception sending email",t),{error:new c(u,`Failed to send email: ${t.message}`,{cause:t}),success:!1}}},setDefaultResponse(e){s.defaultResponse=e,r.debug("Set default response",{receipt:e})},setDelay(e){if(e<0)throw new RangeError("Delay must be non-negative");s.delay=e,s.randomDelayRange={max:0,min:0},r.debug("Set fixed delay",{milliseconds:e})},setFailureRate(e){if(e<0||e>1)throw new RangeError("Failure rate must be between 0.0 and 1.0");s.failureRate=e,r.debug("Set failure rate",{rate:e})},setNextResponse(e){f=e,r.debug("Set next response",{receipt:e})},setRandomDelay(e,t){if(e<0||t<0||e>t)throw new RangeError("Invalid delay range");s.delay=0,s.randomDelayRange={max:t,min:e},r.debug("Set random delay range",{max:t,min:e})},async shutdown(){a.length=0,p.delete(l),r.debug("Mock provider shutdown")},async validateCredentials(){return!0},async waitForMessage(e,t=5e3){const o=Date.now();for(;;){const i=a.find(d=>e(d));if(i)return i;if(Date.now()-o>t)throw new Error("Timeout waiting for message");await new Promise(d=>{setTimeout(d,10)})}},async waitForMessageCount(e,t=5e3){const o=Date.now();for(;a.length<e;){if(Date.now()-o>t)throw new Error(`Timeout waiting for ${e} messages (got ${a.length})`);await new Promise(i=>{setTimeout(i,10)})}}}});export{L as default};
@@ -1 +0,0 @@
1
- var jr=Object.defineProperty;var b=(e,r)=>jr(e,"name",{value:r,configurable:!0});import{createRequire as Or}from"node:module";const Pr=Or(import.meta.url),D=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,zr=b(e=>{if(typeof D<"u"&&D.versions&&D.versions.node){const[r,i]=D.versions.node.split(".").map(Number);if(r>22||r===22&&i>=3||r===20&&i>=16)return D.getBuiltinModule(e)}return Pr(e)},"__cjs_getBuiltinModule"),{createRequire:ae}=zr("node:module"),_r=0,Er=4;var Mr=Object.defineProperty,kr=b((e,r)=>Mr(e,"name",{value:r,configurable:!0}),"t$2"),Ar=Object.defineProperty,Rr=kr((e,r)=>Ar(e,"name",{value:r,configurable:!0}),"t"),Br=Object.defineProperty,Tr=Rr((e,r)=>Br(e,"name",{value:r,configurable:!0}),"n");const Ie=Tr(e=>{if(!e||!(e instanceof URL)&&typeof e!="string")throw new TypeError("Path must be a non-empty string or URL.")},"assertValidFileOrDirectoryPath");var Nr=Object.defineProperty,Sr=b((e,r)=>Nr(e,"name",{value:r,configurable:!0}),"$e"),Ir=Object.defineProperty,ie=Sr((e,r)=>Ir(e,"name",{value:r,configurable:!0}),"W"),Wr=Object.defineProperty,c=ie((e,r)=>Wr(e,"name",{value:r,configurable:!0}),"u$1");let Re=c(()=>{var e=(()=>{var r=Object.defineProperty,i=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,g=Object.prototype.hasOwnProperty,x=c((t,n)=>{for(var o in n)r(t,o,{get:n[o],enumerable:!0})},"ne"),y=c((t,n,o,a)=>{if(n&&typeof n=="object"||typeof n=="function")for(let s of u(n))!g.call(t,s)&&s!==o&&r(t,s,{get:c(()=>n[s],"get"),enumerable:!(a=i(n,s))||a.enumerable});return t},"ae"),v=c(t=>y(r({},"__esModule",{value:!0}),t),"oe"),k={};x(k,{zeptomatch:c(()=>Ae,"zeptomatch")});var I=c(t=>{const n=new Set,o=[t];for(let a=0;a<o.length;a++){const s=o[a];if(n.has(s))continue;n.add(s);const{children:l}=s;if(l?.length)for(let f=0,d=l.length;f<d;f++)o.push(l[f])}return Array.from(n)},"M"),Y=c(t=>{let n="";const o=I(t);for(let a=0,s=o.length;a<s;a++){const l=o[a];if(!l.regex)continue;const f=l.regex.flags;if(n||(n=f),n!==f)throw new Error(`Inconsistent RegExp flags used: "${n}" and "${f}"`)}return n},"se"),ge=c((t,n,o)=>{const a=o.get(t);if(a!==void 0)return a;const s=t.partial??n;let l="";if(t.regex&&(l+=s?"(?:$|":"",l+=t.regex.source),t.children?.length){const f=Qe(t.children.map(d=>ge(d,n,o)).filter(Boolean));if(f?.length){const d=t.children.some(q=>!q.regex||!(q.partial??n)),h=f.length>1||s&&(!l.length||d);l+=h?s?"(?:$|":"(?:":"",l+=f.join("|"),l+=h?")":""}}return t.regex&&(l+=s?")":""),o.set(t,l),l},"O"),Ke=c((t,n)=>{const o=new Map,a=I(t);for(let s=a.length-1;s>=0;s--){const l=ge(a[s],n,o);if(!(s>0))return l}return""},"ie"),Qe=c(t=>Array.from(new Set(t)),"ue"),Q=c((t,n,o)=>Q.compile(t,o).test(n),"R");Q.compile=(t,n)=>{const o=n?.partial??!1,a=Ke(t,o),s=Y(t);return new RegExp(`^(?:${a})$`,s)};var Xe=Q,et=c((t,n)=>{const o=Xe.compile(t,n),a=`${o.source.slice(0,-1)}[\\\\/]?$`,s=o.flags;return new RegExp(a,s)},"le"),tt=et,rt=c(t=>{const n=t.map(a=>a.source).join("|")||"$^",o=t[0]?.flags;return new RegExp(n,o)},"ve"),nt=rt,de=c(t=>Array.isArray(t),"j"),W=c(t=>typeof t=="function","_"),ot=c(t=>t.length===0,"he"),st=(()=>{const{toString:t}=Function.prototype,n=/(?:^\(\s*(?:[^,.()]|\.(?!\.\.))*\s*\)\s*=>|^\s*[a-zA-Z$_][a-zA-Z0-9$_]*\s*=>)/;return o=>(o.length===0||o.length===1)&&n.test(t.call(o))})(),at=c(t=>typeof t=="number","de"),it=c(t=>typeof t=="object"&&t!==null,"xe"),lt=c(t=>t instanceof RegExp,"me"),ut=(()=>{const t=/\\\(|\((?!\?(?::|=|!|<=|<!))/;return n=>t.test(n.source)})(),ct=(()=>{const t=/^[a-zA-Z0-9_-]+$/;return n=>t.test(n.source)&&!n.flags.includes("i")})(),me=c(t=>typeof t=="string","A"),_=c(t=>t===void 0,"f"),ft=c(t=>{const n=new Map;return o=>{const a=n.get(o);if(a!==void 0)return a;const s=t(o);return n.set(o,s),s}},"ye"),he=c((t,n,o={})=>{const a={cache:{},input:t,index:0,indexBacktrackMax:0,options:o,output:[]},s=E(n)(a),l=Math.max(a.index,a.indexBacktrackMax);if(s&&a.index===t.length)return a.output;throw new Error(`Failed to parse at index ${l}`)},"I"),p=c((t,n)=>de(t)?pt(t,n):me(t)?be(t,n):gt(t,n),"i"),pt=c((t,n)=>{const o={};for(const a of t){if(a.length!==1)throw new Error(`Invalid character: "${a}"`);const s=a.charCodeAt(0);o[s]=!0}return a=>{const s=a.input;let l=a.index,f=l;for(;f<s.length&&s.charCodeAt(f)in o;)f+=1;if(f>l){if(!_(n)&&!a.options.silent){const d=s.slice(l,f),h=W(n)?n(d,s,`${l}`):n;_(h)||a.output.push(h)}a.index=f}return!0}},"we"),gt=c((t,n)=>{if(ct(t))return be(t.source,n);{const o=t.source,a=t.flags.replace(/y|$/,"y"),s=new RegExp(o,a);return ut(t)&&W(n)&&!st(n)?dt(s,n):mt(s,n)}},"$e"),dt=c((t,n)=>o=>{const a=o.index,s=o.input;t.lastIndex=a;const l=t.exec(s);if(l){const f=t.lastIndex;if(!o.options.silent){const d=n(...l,s,`${a}`);_(d)||o.output.push(d)}return o.index=f,!0}else return!1},"Ee"),mt=c((t,n)=>o=>{const a=o.index,s=o.input;if(t.lastIndex=a,t.test(s)){const l=t.lastIndex;if(!_(n)&&!o.options.silent){const f=W(n)?n(s.slice(a,l),s,`${a}`):n;_(f)||o.output.push(f)}return o.index=l,!0}else return!1},"Ce"),be=c((t,n)=>o=>{const a=o.index,s=o.input;if(s.startsWith(t,a)){if(!_(n)&&!o.options.silent){const l=W(n)?n(t,s,`${a}`):n;_(l)||o.output.push(l)}return o.index+=t.length,!0}else return!1},"F"),X=c((t,n,o,a)=>{const s=E(t),l=n>1;return te(ee(ve(f=>{let d=0;for(;d<o;){const h=f.index;if(!s(f)||(d+=1,f.index===h))break}return d>=n},l),a))},"k"),xe=c((t,n)=>X(t,0,1,n),"L"),H=c((t,n)=>X(t,0,1/0,n),"$"),ht=c((t,n)=>X(t,1,1/0,n),"Re"),B=c((t,n)=>{const o=t.map(E);return te(ee(ve(a=>{for(let s=0,l=o.length;s<l;s++)if(!o[s](a))return!1;return!0}),n))},"x"),w=c((t,n)=>{const o=t.map(E);return te(ee(a=>{for(let s=0,l=o.length;s<l;s++)if(o[s](a))return!0;return!1},n))},"p"),ve=c((t,n=!0,o=!1)=>{const a=E(t);return n?s=>{const l=s.index,f=s.output.length,d=a(s);return!d&&!o&&(s.indexBacktrackMax=Math.max(s.indexBacktrackMax,s.index)),(!d||o)&&(s.index=l,s.output.length!==f&&(s.output.length=f)),d}:a},"q"),ee=c((t,n)=>{const o=E(t);return n?a=>{if(a.options.silent)return o(a);const s=a.output.length;if(o(a)){const l=a.output.splice(s,1/0),f=n(l);return _(f)||a.output.push(f),!0}else return!1}:o},"B"),te=(()=>{let t=0;return n=>{const o=E(n),a=t+=1;return s=>{var l;if(s.options.memoization===!1)return o(s);const f=s.index,d=(l=s.cache)[a]||(l[a]={indexMax:-1,queue:[]}),h=d.queue;if(f<=d.indexMax){const C=d.store||(d.store=new Map);if(h.length){for(let N=0,$r=h.length;N<$r;N+=2){const yr=h[N*2],wr=h[N*2+1];C.set(yr,wr)}h.length=0}const j=C.get(f);if(j===!1)return!1;if(at(j))return s.index=j,!0;if(j)return s.index=j.index,j.output?.length&&s.output.push(...j.output),!0}const q=s.output.length,vr=o(s);if(d.indexMax=Math.max(d.indexMax,f),vr){const C=s.index,j=s.output.length;if(j>q){const N=s.output.slice(q,j);h.push(f,{index:C,output:N})}else h.push(f,C);return!0}else return h.push(f,!1),!1}}})(),$e=c(t=>{let n;return o=>(n||(n=E(t())),n(o))},"G"),E=ft(t=>{if(W(t))return ot(t)?$e(t):t;if(me(t)||lt(t))return p(t);if(de(t))return B(t);if(it(t))return w(Object.values(t));throw new Error("Invalid rule")}),A=c(t=>t,"d"),bt=c(t=>typeof t=="string","ke"),xt=c(t=>{const n=new WeakMap,o=new WeakMap;return(a,s)=>{const l=s?.partial?o:n,f=l.get(a);if(f!==void 0)return f;const d=t(a,s);return l.set(a,d),d}},"Be"),vt=c(t=>{const n={},o={};return(a,s)=>{const l=s?.partial?o:n;return l[a]??(l[a]=t(a,s))}},"Pe"),$t=p(/\\./,A),yt=p(/./,A),wt=p(/\*\*\*+/,"*"),jt=p(/([^/{[(!])\*\*/,(t,n)=>`${n}*`),Ot=p(/(^|.)\*\*(?=[^*/)\]}])/,(t,n)=>`${n}*`),Pt=H(w([$t,wt,jt,Ot,yt])),zt=Pt,_t=c(t=>he(t,zt,{memoization:!1}).join(""),"Ie"),Et=_t,ye="abcdefghijklmnopqrstuvwxyz",Mt=c(t=>{let n="";for(;t>0;){const o=(t-1)%26;n=ye[o]+n,t=Math.floor((t-1)/26)}return n},"Le"),we=c(t=>{let n=0;for(let o=0,a=t.length;o<a;o++)n=n*26+ye.indexOf(t[o])+1;return n},"V"),re=c((t,n)=>{if(n<t)return re(n,t);const o=[];for(;t<=n;)o.push(t++);return o},"b"),kt=c((t,n,o)=>re(t,n).map(a=>String(a).padStart(o,"0")),"qe"),je=c((t,n)=>re(we(t),we(n)).map(Mt),"W"),m=c(t=>({partial:!1,regex:new RegExp(t,"s"),children:[]}),"c"),F=c(t=>({children:t}),"y"),T=(()=>{const t=c((n,o,a)=>{if(a.has(n))return;a.add(n);const{children:s}=n;if(!s.length)s.push(o);else for(let l=0,f=s.length;l<f;l++)t(s[l],o,a)},"e");return n=>{if(!n.length)return F([]);for(let o=n.length-1;o>=1;o--){const a=new Set,s=n[o-1],l=n[o];t(s,l,a)}return n[0]}})(),M=c(()=>({regex:new RegExp("[\\\\/]","s"),children:[]}),"g"),At=p(/\\./,m),Rt=p(/[$.*+?^(){}[\]\|]/,t=>m(`\\${t}`)),Bt=p(/[\\\/]/,M),Tt=p(/[^$.*+?^(){}[\]\|\\\/]+/,m),Nt=p(/^(?:!!)*!(.*)$/,(t,n)=>m(`(?!^${Ae.compile(n).source}$).*?`)),St=p(/^(!!)+/),It=w([Nt,St]),Wt=p(/\/(\*\*\/)+/,()=>F([T([M(),m(".+?"),M()]),M()])),Ft=p(/^(\*\*\/)+/,()=>F([m("^"),T([m(".*?"),M()])])),qt=p(/\/(\*\*)$/,()=>F([T([M(),m(".*?")]),m("$")])),Ct=p(/\*\*/,()=>m(".*?")),Oe=w([Wt,Ft,qt,Ct]),Dt=p(/\*\/(?!\*\*\/|\*$)/,()=>T([m("[^\\\\/]*?"),M()])),Lt=p(/\*/,()=>m("[^\\\\/]*")),Pe=w([Dt,Lt]),ze=p("?",()=>m("[^\\\\/]")),Zt=p("[",A),Ut=p("]",A),Gt=p(/[!^]/,"^\\\\/"),Vt=p(/[a-z]-[a-z]|[0-9]-[0-9]/i,A),Yt=p(/\\./,A),Ht=p(/[$.*+?^(){}[\|]/,t=>`\\${t}`),Jt=p(/[\\\/]/,"\\\\/"),Kt=p(/[^$.*+?^(){}[\]\|\\\/]+/,A),Qt=w([Yt,Ht,Jt,Vt,Kt]),_e=B([Zt,xe(Gt),H(Qt),Ut],t=>m(t.join(""))),Xt=p("{","(?:"),er=p("}",")"),tr=p(/(\d+)\.\.(\d+)/,(t,n,o)=>kt(+n,+o,Math.min(n.length,o.length)).join("|")),rr=p(/([a-z]+)\.\.([a-z]+)/,(t,n,o)=>je(n,o).join("|")),nr=p(/([A-Z]+)\.\.([A-Z]+)/,(t,n,o)=>je(n.toLowerCase(),o.toLowerCase()).join("|").toUpperCase()),or=w([tr,rr,nr]),Ee=B([Xt,or,er],t=>m(t.join(""))),sr=p("{"),ar=p("}"),ir=p(","),lr=p(/\\./,m),ur=p(/[$.*+?^(){[\]\|]/,t=>m(`\\${t}`)),cr=p(/[\\\/]/,M),fr=p(/[^$.*+?^(){}[\]\|\\\/,]+/,m),pr=$e(()=>ke),gr=p("",()=>m("(?:)")),dr=ht(w([Oe,Pe,ze,_e,Ee,pr,lr,ur,cr,fr]),T),Me=w([dr,gr]),ke=B([sr,xe(B([Me,H(B([ir,Me]))])),ar],F),mr=H(w([It,Oe,Pe,ze,_e,Ee,ke,At,Rt,Bt,Tt]),T),hr=mr,br=c(t=>he(t,hr,{memoization:!1})[0],"kr"),xr=br,ne=c((t,n,o)=>ne.compile(t,o).test(n),"N");ne.compile=(()=>{const t=vt((o,a)=>tt(xr(Et(o)),a)),n=xt((o,a)=>nt(o.map(s=>t(s,a))));return(o,a)=>bt(o)?t(o,a):n(o,a)})();var Ae=ne;return v(k)})();return e.default||e},"_lazyMatch"),oe;const Fr=c((e,r)=>(oe||(oe=Re(),Re=null),oe(e,r)),"default");var qr=Object.defineProperty,Cr=ie((e,r)=>qr(e,"name",{value:r,configurable:!0}),"t$1");const Dr=/^[A-Z]:\//i,O=Cr((e="")=>e&&e.replaceAll("\\","/").replace(Dr,r=>r.toUpperCase()),"normalizeWindowsPath");var Lr=Object.defineProperty,$=ie((e,r)=>Lr(e,"name",{value:r,configurable:!0}),"r");const Zr=/^[/\\]{2}/,Ur=/^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Z]:[/\\]/i,We=/^[A-Z]:$/i,Be=/^\/([A-Z]:)?$/i,Gr=/.(\.[^./]+)$/,Vr=/^[/\\]|^[a-z]:[/\\]/i,Yr=$(()=>typeof process.cwd=="function"?process.cwd().replaceAll("\\","/"):"/","cwd"),Fe=$((e,r)=>{let i="",u=0,g=-1,x=0,y;for(let v=0;v<=e.length;++v){if(v<e.length)y=e[v];else{if(y==="/")break;y="/"}if(y==="/"){if(!(g===v-1||x===1))if(x===2){if(i.length<2||u!==2||!i.endsWith(".")||i.at(-2)!=="."){if(i.length>2){const k=i.lastIndexOf("/");k===-1?(i="",u=0):(i=i.slice(0,k),u=i.length-1-i.lastIndexOf("/")),g=v,x=0;continue}else if(i.length>0){i="",u=0,g=v,x=0;continue}}r&&(i+=i.length>0?"/..":"..",u=2)}else i.length>0?i+=`/${e.slice(g+1,v)}`:i=e.slice(g+1,v),u=v-g-1;g=v,x=0}else y==="."&&x!==-1?++x:x=-1}return i},"normalizeString"),G=$(e=>Ur.test(e),"isAbsolute"),qe=$(function(e){if(e.length===0)return".";e=O(e);const r=Zr.exec(e),i=G(e),u=e.at(-1)==="/";return e=Fe(e,!i),e.length===0?i?"/":u?"./":".":(u&&(e+="/"),We.test(e)&&(e+="/"),r?i?`//${e}`:`//./${e}`:i&&!G(e)?`/${e}`:e)},"normalize"),Ce=$((...e)=>{let r="";for(const i of e)if(i)if(r.length>0){const u=r[r.length-1]==="/",g=i[0]==="/";u&&g?r+=i.slice(1):r+=u||g?i:`/${i}`}else r+=i;return qe(r)},"join"),se=$(function(...e){e=e.map(u=>O(u));let r="",i=!1;for(let u=e.length-1;u>=-1&&!i;u--){const g=u>=0?e[u]:Yr();!g||g.length===0||(r=`${g}/${r}`,i=G(g))}return r=Fe(r,!i),i&&!G(r)?`/${r}`:r.length>0?r:"."},"resolve");$(function(e){return O(e)},"toNamespacedPath");const De=$(function(e){return Gr.exec(O(e))?.[1]??""},"extname");$(function(e,r){const i=se(e).replace(Be,"$1").split("/"),u=se(r).replace(Be,"$1").split("/");if(u[0][1]===":"&&i[0][1]===":"&&i[0]!==u[0])return u.join("/");const g=[...i];for(const x of g){if(u[0]!==x)break;i.shift(),u.shift()}return[...i.map(()=>".."),...u].join("/")},"relative");const Hr=$(e=>{const r=O(e).replace(/\/$/,"").split("/").slice(0,-1);return r.length===1&&We.test(r[0])&&(r[0]+="/"),r.join("/")||(G(e)?"/":".")},"dirname");$(function(e){const r=[e.root,e.dir,e.base??e.name+e.ext].filter(Boolean);return O(e.root?se(...r):r.join("/"))},"format");const Jr=$((e,r)=>{const i=O(e).split("/").pop();return r&&i.endsWith(r)?i.slice(0,-r.length):i},"basename");$(function(e){const r=Vr.exec(e)?.[0]?.replaceAll("\\","/")??"",i=Jr(e),u=De(i);return{base:i,dir:Hr(e),ext:u,name:i.slice(0,i.length-u.length),root:r}},"parse");$((e,r)=>Fr(r,qe(e)),"matchesGlob");var Kr=Object.defineProperty,R=b((e,r)=>Kr(e,"name",{value:r,configurable:!0}),"n$2"),Qr=Object.defineProperty,z=R((e,r)=>Qr(e,"name",{value:r,configurable:!0}),"a");const Xr=ae(import.meta.url),L=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,en=z(e=>{if(typeof L<"u"&&L.versions&&L.versions.node){const[r,i]=L.versions.node.split(".").map(Number);if(r>22||r===22&&i>=3||r===20&&i>=16)return L.getBuiltinModule(e)}return Xr(e)},"__cjs_getBuiltinModule"),{fileURLToPath:tn}=en("node:url");var rn=Object.defineProperty,S=z((e,r)=>rn(e,"name",{value:r,configurable:!0}),"t$1");function K(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}b(K,"m$2");R(K,"d");z(K,"getDefaultExportFromCjs");S(K,"getDefaultExportFromCjs");function le(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}b(le,"h$1");R(le,"O");z(le,"getDefaultExportFromNamespaceIfPresent");S(le,"getDefaultExportFromNamespaceIfPresent");function ue(e){return e&&Object.prototype.hasOwnProperty.call(e,"default")&&Object.keys(e).length===1?e.default:e}b(ue,"x");R(ue,"P");z(ue,"getDefaultExportFromNamespaceIfNotNamed");S(ue,"getDefaultExportFromNamespaceIfNotNamed");function ce(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var r=e.default;if(typeof r=="function"){var i=S(z(R(b(function u(){var g=!1;try{g=this instanceof u}catch{}return g?Reflect.construct(r,arguments,this.constructor):r.apply(this,arguments)},"a"),"s"),"a"),"a");i.prototype=r.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach(function(u){var g=Object.getOwnPropertyDescriptor(e,u);Object.defineProperty(i,u,g.get?g:{enumerable:!0,get:S(function(){return e[u]},"get")})}),i}b(ce,"y");R(ce,"_");z(ce,"getAugmentedNamespace");S(ce,"getAugmentedNamespace");var Te,Ne;function fe(){return Ne||(Ne=1,Te=["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cr3","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Te}b(fe,"w$1");R(fe,"k");z(fe,"requireBinaryExtensions");var nn=fe();const on=K(nn);var sn=Object.defineProperty,P=z((e,r)=>sn(e,"name",{value:r,configurable:!0}),"r");const an=new Set(on),ln=new Set(["/","\\",void 0]),Se=Symbol.for("pathe:normalizedAlias"),un=/(^|[/\\])([^/\\]+?)(?=(?:\.[^.]+)?$)/,cn=P((e,r)=>r.split("/").length-e.split("/").length,"compareAliases"),J=P((e="/")=>{const r=e.at(-1);return r==="/"||r==="\\"},"hasTrailingSlash"),Le=P(e=>{if(e[Se])return e;const r=Object.fromEntries(Object.entries(e).toSorted(([i],[u])=>cn(i,u)));for(const i in r)for(const u in r)u===i||i.startsWith(u)||r[i].startsWith(u)&&ln.has(r[i][u.length])&&(r[i]=r[u]+r[i].slice(u.length));return Object.defineProperty(r,Se,{enumerable:!1,value:!0}),r},"normalizeAliases");P((e,r)=>{e=O(e),r=Le(r);for(const[i,u]of Object.entries(r)){if(!e.startsWith(i))continue;const g=J(i)?i.slice(0,-1):i;if(J(e[g.length]))return Ce(u,e.slice(i.length))}return e},"resolveAlias");P(e=>un.exec(e)?.[2],"filename");P((e,r)=>{e=O(e),r=Le(r);for(const[i,u]of Object.entries(r).toReversed()){if(!e.startsWith(u))continue;const g=J(u)?u.slice(0,-1):u;if(J(e[g.length]))return Ce(i,e.slice(u.length))}return e},"reverseResolveAlias");P(e=>/^(?:\.?\.[/\\]|\.\.\B)/.test(e)||e==="..","isRelative");P(e=>an.has(De(e).slice(1).toLowerCase()),"isBinaryPath");const Ze=P(e=>O(e instanceof URL?tn(e):e),"toPath");P(()=>{if(!globalThis?.process)return!1;if(globalThis?.process?.platform==="win32"||globalThis?.process?.platform==="cygwin")return!0;const e=globalThis?.process?.env.OSTYPE;return typeof e!="string"?!1:/^(?:msys|cygwin)$/.test(e)},"isWindows");var fn=Object.defineProperty,Ue=b((e,r)=>fn(e,"name",{value:r,configurable:!0}),"t$1"),pn=Object.defineProperty,pe=Ue((e,r)=>pn(e,"name",{value:r,configurable:!0}),"s");const gn=ae(import.meta.url),Z=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,dn=pe(e=>{if(typeof Z<"u"&&Z.versions&&Z.versions.node){const[r,i]=Z.versions.node.split(".").map(Number);if(r>22||r===22&&i>=3||r===20&&i>=16)return Z.getBuiltinModule(e)}return gn(e)},"__cjs_getBuiltinModule"),{access:mn}=dn("node:fs/promises");var hn=Object.defineProperty,bn=pe((e,r)=>hn(e,"name",{value:r,configurable:!0}),"o");async function V(e,r=_r){Ie(e),e=Ze(e);try{return await mn(e,r),!0}catch{return!1}}b(V,"i$1");Ue(V,"d");pe(V,"m");bn(V,"isAccessible");var xn=Object.defineProperty,Ge=b((e,r)=>xn(e,"name",{value:r,configurable:!0}),"t"),vn=Object.defineProperty,Ve=Ge((e,r)=>vn(e,"name",{value:r,configurable:!0}),"t"),$n=Object.defineProperty,yn=Ve((e,r)=>$n(e,"name",{value:r,configurable:!0}),"o");let wn=class extends Error{static{b(this,"c")}static{Ge(this,"i")}static{Ve(this,"n")}static{yn(this,"PermissionError")}constructor(r){super(`EPERM: Operation not permitted, ${r}`)}get code(){return"EPERM"}set code(r){throw new Error("Cannot overwrite code EPERM")}get name(){return"PermissionError"}set name(r){throw new Error("Cannot overwrite name of PermissionError")}};var jn=Object.defineProperty,On=b((e,r)=>jn(e,"name",{value:r,configurable:!0}),"f"),Pn=Object.defineProperty,Ye=On((e,r)=>Pn(e,"name",{value:r,configurable:!0}),"i");const zn=ae(import.meta.url),U=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,He=Ye(e=>{if(typeof U<"u"&&U.versions&&U.versions.node){const[r,i]=U.versions.node.split(".").map(Number);if(r>22||r===22&&i>=3||r===20&&i>=16)return U.getBuiltinModule(e)}return zn(e)},"__cjs_getBuiltinModule"),{readFile:_n}=He("node:fs/promises"),{unzip:En,brotliDecompress:Mn}=He("node:zlib");var kn=Object.defineProperty,Je=Ye((e,r)=>kn(e,"name",{value:r,configurable:!0}),"n");const An={brotli:Mn,gzip:En,none:Je((e,r)=>{r(null,e)},"none")},Nn=Je(async(e,r)=>{if(Ie(e),e=Ze(e),!await V(e))throw new wn(`unable to read the non-accessible file: ${e}`);if(!await V(e,Er))throw new Error(`Unable to read the non-readable file: ${e}`);const{buffer:i,compression:u,encoding:g,flag:x}=r??{};return await _n(e,x?{encoding:g,flag:x}:{encoding:g}).then(async y=>await new Promise((v,k)=>{An[u??"none"](y,(I,Y)=>{I?k(I):v(i?Y:Y.toString())})})).catch(y=>{throw y})},"readFile");export{Nn as B};
@@ -1 +0,0 @@
1
- var E=Object.defineProperty;var y=(e,u)=>E(e,"name",{value:u,configurable:!0});import f from"./EmailError-zm2ffVav.js";import A from"./RequiredOptionError-CevW3u2K.js";import{c as k}from"./create-logger-BiWdqFNg.js";import{defineProvider as z}from"./defineProvider-B9rSklAJ.js";var P=Object.defineProperty,m=y((e,u)=>P(e,"name",{value:u,configurable:!0}),"f");const S=m(e=>typeof e=="function","isProviderFactory"),x=m(e=>e!=null&&typeof e=="object"&&"sendEmail"in e&&"initialize"in e&&"isAvailable"in e,"isProvider"),o="roundrobin",T=z((e={})=>{if(!e.mailers||e.mailers.length===0)throw new A(o,"mailers");const u={debug:e.debug||!1,logger:e.logger,mailers:e.mailers,retries:e.retries||3,retryAfter:e.retryAfter??60,timeout:e.timeout||3e4};let p=!1;const t=[];let a=0;const n=k(o,e.logger),v=m(async()=>{t.length=0;for(const i of u.mailers)try{let r;if(S(i))r=i({});else if(x(i))r=i;else{n.debug(`Skipping invalid mailer: ${i}`);continue}try{await r.initialize(),t.push(r),n.debug(`Initialized provider: ${r.name||"unknown"}`)}catch(s){n.debug(`Failed to initialize provider ${r.name||"unknown"}:`,s)}}catch(r){n.debug("Error processing mailer:",r)}if(t.length===0)throw new f(o,"No providers could be initialized");a=Math.floor(Math.random()*t.length),n.debug(`Round robin starting at index ${a} (${t[a]?.name||"unknown"})`)},"initializeProviders"),b=m(async()=>{if(t.length===0)return;const i=a;let r=0;for(;r<t.length;){const s=t[a];if(!s){a=(a+1)%t.length,r+=1;continue}const g=s.name||`provider-${a+1}`;try{if(await s.isAvailable())return a=(a+1)%t.length,n.debug(`Selected provider: ${g} (index ${a===0?t.length-1:a-1})`),s}catch{}a=(a+1)%t.length,r+=1,r<t.length&&u.retryAfter>0&&await new Promise(l=>{setTimeout(()=>{l(void 0)},u.retryAfter)})}return n.debug(`No available providers found, using provider at index ${i}`),t[i]||void 0},"getNextProvider");return{features:{attachments:!0,batchSending:!1,customHeaders:!0,html:!0,replyTo:!0,scheduling:!1,tagging:!1,templates:!1,tracking:!1},async initialize(){if(!p)try{await v(),p=!0,n.debug(`Round robin provider initialized with ${t.length} provider(s)`)}catch(i){throw new f(o,`Failed to initialize: ${i.message}`,{cause:i})}},async isAvailable(){try{return t.length===0&&await v(),(await Promise.allSettled(t.map(i=>i.isAvailable()))).some(i=>i.status==="fulfilled"&&i.value===!0)}catch{return!1}},name:o,options:u,async sendEmail(i){try{if(t.length===0&&await v(),t.length===0)return{error:new f(o,"No providers available"),success:!1};const r=await b();if(!r)return{error:new f(o,"No available providers found"),success:!1};const s=r.name||"unknown";n.debug(`Sending email via ${s}`);const g=await r.sendEmail(i);if(g.success)return n.debug(`Email sent successfully via ${s}`),{data:{...g.data,provider:`${o}(${s})`},success:!0};n.debug(`Failed to send via ${s}, trying next provider`);const l=[];g.error&&l.push(g.error);let w=0;for(;w<t.length-1;){const c=await b();if(!c||c===r)break;const h=c.name||"unknown";n.debug(`Retrying with ${h}`);try{const d=await c.sendEmail(i);if(d.success)return n.debug(`Email sent successfully via ${h} (after retry)`),{data:{...d.data,provider:`${o}(${h})`},success:!0};d.error&&l.push(d.error)}catch(d){l.push(d instanceof Error?d:new Error(String(d)))}w+=1}const $=l.map(c=>c instanceof Error?c.message:String(c)).join("; ");return{error:new f(o,`Failed to send email via all providers. Errors: ${$}`,{cause:l[0]instanceof Error?l[0]:new Error(String(l[0]))}),success:!1}}catch(r){return{error:new f(o,`Failed to send email: ${r.message}`,{cause:r}),success:!1}}},async validateCredentials(){return this.isAvailable()}}});export{T as default};
@@ -1 +0,0 @@
1
- var P=Object.defineProperty;var h=(i,a)=>P(i,"name",{value:a,configurable:!0});import{createRequire as A}from"node:module";import l from"./EmailError-zm2ffVav.js";import _ from"./RequiredOptionError-CevW3u2K.js";import{s as z}from"./generate-message-id-D4uA8gkj.js";import{i as E}from"./headers-to-record-Qo124ImV.js";import{m as y}from"./make-request-BDzF9W9D.js";import{c as q,P as k,u as b,h as w}from"./provider-base-Cmzx6BTO.js";import{d as K}from"./validate-email-options-DfJ7llf8.js";import{defineProvider as B}from"./defineProvider-B9rSklAJ.js";import{f,a as C}from"./address-formatter-Cm_E_ZMa.js";const j=A(import.meta.url),u=typeof globalThis<"u"&&typeof globalThis.process<"u"?globalThis.process:process,S=h(i=>{if(typeof u<"u"&&u.versions&&u.versions.node){const[a,c]=u.versions.node.split(".").map(Number);if(a>22||a===22&&c>=3||a===20&&c>=16)return u.getBuiltinModule(i)}return j(i)},"__cjs_getBuiltinModule"),{Buffer:T}=S("node:buffer"),s="sweego",$="https://api.sweego.com",x=3e4,R=3,Q=B((i={})=>{if(!i.apiKey)throw new _(s,"apiKey");const a={apiKey:i.apiKey,debug:i.debug||!1,endpoint:i.endpoint||$,retries:i.retries||R,timeout:i.timeout||x,...i.logger&&{logger:i.logger}},c=new k,n=q(s,i.logger);return{features:{attachments:!0,batchSending:!0,customHeaders:!0,html:!0,replyTo:!0,scheduling:!1,tagging:!0,templates:!0,tracking:!0},async getEmail(e){try{if(!e)return{error:new l(s,"Email ID is required to retrieve email details"),success:!1};await c.ensureInitialized(()=>this.initialize(),s);const o={Authorization:`Bearer ${a.apiKey}`,"Content-Type":"application/json"};n.debug("Retrieving email details",{id:e});const t=await b(async()=>y(`${a.endpoint}/emails/${e}`,{headers:o,method:"GET",timeout:a.timeout}),a.retries);return t.success?(n.debug("Email details retrieved successfully"),{data:t.data?.body,success:!0}):(n.debug("API request failed when retrieving email",t.error),{error:new l(s,`Failed to retrieve email: ${t.error instanceof Error?t.error.message:"Unknown error"}`,{cause:t.error}),success:!1})}catch(o){return{error:w(s,"retrieve email",o,n),success:!1}}},async initialize(){await c.ensureInitialized(async()=>{if(!await this.isAvailable())throw new l(s,"Sweego API not available or invalid API key");n.debug("Provider initialized successfully")},s)},async isAvailable(){try{return n.debug("Checking Sweego API availability"),!0}catch(e){return n.debug("Error checking availability:",e),!1}},name:s,options:a,async sendEmail(e){try{const o=K(e);if(o.length>0)return{error:new l(s,`Invalid email options: ${o.join(", ")}`),success:!1};await c.ensureInitialized(()=>this.initialize(),s);const t={from:{email:e.from.email,name:e.from.name},subject:e.subject,to:f(e.to)};if(e.html&&(t.html=e.html),e.text&&(t.text=e.text),e.cc&&(t.cc=f(e.cc)),e.bcc&&(t.bcc=f(e.bcc)),e.replyTo&&(t.replyTo=C(e.replyTo)),e.templateId&&(t.templateId=e.templateId,e.templateVariables&&(t.templateVariables=e.templateVariables)),e.tags&&e.tags.length>0&&(t.tags=e.tags),e.headers){const r=E(e.headers);t.headers=r}e.attachments&&e.attachments.length>0&&(t.attachments=await Promise.all(e.attachments.map(async r=>{let m;if(r.content)if(typeof r.content=="string")m=r.content;else if(r.content instanceof Promise){const I=await r.content;m=T.from(I).toString("base64")}else m=r.content.toString("base64");else if(r.raw)m=typeof r.raw=="string"?r.raw:r.raw.toString("base64");else throw new l(s,`Attachment ${r.filename} has no content`);return{content:m,contentType:r.contentType||"application/octet-stream",filename:r.filename,...r.cid&&{cid:r.cid}}}))),n.debug("Sending email via Sweego API",{subject:t.subject,to:t.to});const v={Authorization:`Bearer ${a.apiKey}`,"Content-Type":"application/json"},d=await b(async()=>y(`${a.endpoint}/send`,{headers:v,method:"POST",timeout:a.timeout},JSON.stringify(t)),a.retries);if(!d.success)return n.debug("API request failed when sending email",d.error),{error:d.error||new l(s,"Failed to send email"),success:!1};const g=d.data?.body,p=g?.messageId||g?.id||z();return n.debug("Email sent successfully",{messageId:p}),{data:{messageId:p,provider:s,response:d.data,sent:!0,timestamp:new Date},success:!0}}catch(o){return{error:w(s,"send email",o,n),success:!1}}},async validateCredentials(){return this.isAvailable()}}});export{Q as default};
@@ -1 +0,0 @@
1
- var d=Object.defineProperty;var l=(r,e)=>d(r,"name",{value:e,configurable:!0});import o from"../utils/validation/validate-email.js";var c=Object.defineProperty,t=l((r,e)=>c(r,"name",{value:e,configurable:!0}),"m");const f=t(r=>{const e=[];(!r.from||!r.from.email)&&e.push("Missing required field: from"),r.to||e.push("Missing required field: to"),r.subject||e.push("Missing required field: subject"),!r.text&&!r.html&&e.push("Either text or html content is required"),r.from&&r.from.email&&!o(r.from.email)&&e.push(`Invalid from email address: ${r.from.email}`);const s=t((i,m)=>{i&&(Array.isArray(i)?i:[i]).forEach(a=>{o(a.email)||e.push(`Invalid ${m} email address: ${a.email}`)})},"checkAddresses");return s(r.to,"to"),s(r.cc,"cc"),s(r.bcc,"bcc"),r.replyTo&&!o(r.replyTo.email)&&e.push(`Invalid replyTo email address: ${r.replyTo.email}`),e},"validateEmailOptions");export{f as d};
@@ -1 +0,0 @@
1
- import l from"./EmailError-zm2ffVav.js";import y from"./RequiredOptionError-CevW3u2K.js";import{s as b}from"./generate-message-id-D4uA8gkj.js";import{i as k}from"./headers-to-record-Qo124ImV.js";import{m as v}from"./make-request-BDzF9W9D.js";import{c as w,P as A,u as _,h as z}from"./provider-base-Cmzx6BTO.js";import{a as j,s as P}from"./sanitize-header-wWav-Scu.js";import{d as I}from"./validate-email-options-DfJ7llf8.js";import{defineProvider as T}from"./defineProvider-B9rSklAJ.js";import{m as f}from"./address-formatter-Cm_E_ZMa.js";const i="zeptomail",$="https://api.zeptomail.com/v1.1",O=3e4,Z=3,F=T((s={})=>{if(!s.token)throw new y(i,"token");if(!s.token.startsWith("Zoho-enczapikey "))throw new l(i,'Token should be in the format "Zoho-enczapikey <your_api_key>"');const n={debug:s.debug||!1,endpoint:s.endpoint||$,logger:s.logger,retries:s.retries||Z,timeout:s.timeout||O,token:s.token},u=new A,o=w(i,s.logger);return{features:{attachments:!0,batchSending:!1,customHeaders:!0,html:!0,replyTo:!0,scheduling:!1,tagging:!1,templates:!1,tracking:!0},async initialize(){await u.ensureInitialized(async()=>{if(!await this.isAvailable())throw new l(i,"Zeptomail API not available or invalid token");o.debug("Provider initialized successfully")},i)},async isAvailable(){try{return n.token&&n.token.startsWith("Zoho-enczapikey ")?(o.debug("Token format is valid, assuming Zeptomail is available"),!0):!1}catch(e){return o.debug("Error checking availability:",e),!1}},name:i,options:n,async sendEmail(e){try{const m=I(e);if(m.length>0)return{error:new l(i,`Invalid email options: ${m.join(", ")}`),success:!1};await u.ensureInitialized(()=>this.initialize(),i);const a={from:f(e.from).address,subject:e.subject};if(Array.isArray(e.to)?a.to=e.to.length===1?e.to[0].email:e.to.map(t=>t.email):a.to=e.to.email,e.text&&(a.textbody=e.text),e.html&&(a.htmlbody=e.html),e.cc&&(Array.isArray(e.cc)?a.cc=e.cc.length===1?e.cc[0].email:e.cc.map(t=>t.email):a.cc=e.cc.email),e.bcc&&(Array.isArray(e.bcc)?a.bcc=e.bcc.length===1?e.bcc[0].email:e.bcc.map(t=>t.email):a.bcc=e.bcc.email),e.replyTo&&(a.reply_to=[f(e.replyTo).address]),e.trackClicks!==void 0&&(a.track_clicks=e.trackClicks),e.trackOpens!==void 0&&(a.track_opens=e.trackOpens),e.clientReference&&(a.client_reference=e.clientReference),e.mimeHeaders&&Object.keys(e.mimeHeaders).length>0){const t={};for(const[r,d]of Object.entries(e.mimeHeaders))t[r]=d;a.mime_headers=t}if(e.headers){const t=k(e.headers);Object.keys(t).length>0&&(a.mime_headers||(a.mime_headers={}),Object.entries(t).forEach(([r,d])=>{a.mime_headers&&(a.mime_headers[j(r)]=P(d))}))}e.attachments&&e.attachments.length>0&&(a.attachments=e.attachments.map(t=>{const r={name:t.filename};return t.content?(r.content=typeof t.content=="string"?t.content:t.content.toString("base64"),t.contentType&&(r.mime_type=t.contentType)):t.path&&(r.file_cache_key=t.path),r})),o.debug("Sending email via Zeptomail API",{subject:a.subject,to:a.to});const g={Accept:"application/json",Authorization:n.token,"Content-Type":"application/json"},c=await _(async()=>v(`${n.endpoint}/email`,{headers:g,method:"POST",timeout:n.timeout},JSON.stringify(a)),n.retries);if(!c.success){o.debug("API request failed",c.error);let t=c.error instanceof Error?c.error.message:"Unknown error";const r=c.data;return r?.body?.message?t+=` Details: ${r.body.message}`:r?.body?.error?.message&&(t+=` Details: ${r.body.error.message}`),{error:new l(i,`Failed to send email: ${t}`,{cause:c.error}),success:!1}}const p=c.data?.body,h=p?.request_id||b();return o.debug("Email sent successfully",{messageId:h}),{data:{messageId:h,provider:i,response:p,sent:!0,timestamp:new Date},success:!0}}catch(m){return{error:z(i,"send email",m,o),success:!1}}},async validateCredentials(){return this.isAvailable()}}});export{F as default};