@bernierllc/email-sender 5.1.1 → 5.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"email-sender.d.ts","sourceRoot":"","sources":["../../src/core/email-sender.ts"],"names":[],"mappings":"AAQA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAOvE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,aAAa,CAAC,CAAqB;gBAE/B,MAAM,EAAE,iBAAiB;IASrC;;OAEG;IACH,OAAO,CAAC,cAAc;IAiBtB;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB/F;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI9D;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAI1E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI9E;;OAEG;IACH,qBAAqB,IAAI,qBAAqB;IAI9C;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,IAAI,yBAAyB;IAI5C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB;IAIhE;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnB;;OAEG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;IAOtB;;OAEG;IACH,WAAW,IAAI,aAAa;IAI5B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAa7C;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAO7D;;OAEG;IACH,eAAe,IAAI,mBAAmB,GAAG,IAAI;IAO7C;;OAEG;IACH,eAAe,IAAI,OAAO;CAG3B"}
1
+ {"version":3,"file":"email-sender.d.ts","sourceRoot":"","sources":["../../src/core/email-sender.ts"],"names":[],"mappings":"AAQA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AASvE,OAAO,EACL,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,yBAAyB,EACzB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,aAAa,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,aAAa,CAAC,CAAqB;gBAE/B,MAAM,EAAE,iBAAiB;IASrC;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACG,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAsB/F;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAI9D;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAI1E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAI9E;;OAEG;IACH,qBAAqB,IAAI,qBAAqB;IAI9C;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,IAAI,yBAAyB;IAI5C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,qBAAqB;IAIhE;;OAEG;IACG,cAAc,CAAC,YAAY,EAAE;QACjC,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOnB;;OAEG;IACG,iBAAiB,CACrB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;IAOtB;;OAEG;IACH,WAAW,IAAI,aAAa;IAI5B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAa7C;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAO7D;;OAEG;IACH,eAAe,IAAI,mBAAmB,GAAG,IAAI;IAO7C;;OAEG;IACH,eAAe,IAAI,OAAO;CAG3B"}
@@ -13,6 +13,8 @@ const sendgrid_1 = require("../providers/sendgrid");
13
13
  const ses_1 = require("../providers/ses");
14
14
  const mailgun_1 = require("../providers/mailgun");
15
15
  const postmark_1 = require("../providers/postmark");
16
+ const mandrill_1 = require("../providers/mandrill");
17
+ const smtp2go_1 = require("../providers/smtp2go");
16
18
  const email_safety_manager_1 = require("./email-safety-manager");
17
19
  class EmailSender {
18
20
  constructor(config) {
@@ -37,6 +39,10 @@ class EmailSender {
37
39
  return new mailgun_1.MailgunProvider(config);
38
40
  case 'postmark':
39
41
  return new postmark_1.PostmarkProvider(config);
42
+ case 'mandrill':
43
+ return new mandrill_1.MandrillProvider(config);
44
+ case 'smtp2go':
45
+ return new smtp2go_1.Smtp2goProvider(config);
40
46
  default:
41
47
  throw new Error(`Unsupported provider: ${config.provider}`);
42
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"email-sender.js","sourceRoot":"","sources":["../../src/core/email-sender.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;AAOF,4CAAiD;AACjD,oDAAyD;AACzD,0CAA+C;AAC/C,kDAAuD;AACvD,oDAAyD;AACzD,iEAA4D;AAgB5D,MAAa,WAAW;IAItB,YAAY,MAAyB;QACnC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5C,0CAA0C;QAC1C,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAA2B;QAChD,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,MAAM;gBACT,OAAO,IAAI,mBAAY,CAAC,MAAM,CAAC,CAAC;YAClC,KAAK,UAAU;gBACb,OAAO,IAAI,2BAAgB,CAAC,MAAM,CAAC,CAAC;YACtC,KAAK,KAAK;gBACR,OAAO,IAAI,iBAAW,CAAC,MAAa,CAAC,CAAC;YACxC,KAAK,SAAS;gBACZ,OAAO,IAAI,yBAAe,CAAC,MAAa,CAAC,CAAC;YAC5C,KAAK,UAAU;gBACb,OAAO,IAAI,2BAAgB,CAAC,MAAa,CAAC,CAAC;YAC7C;gBACE,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAmB,EAAE,OAAoC;QACvE,kCAAkC;QAClC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;YACjD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,oCAAoC,YAAY,CAAC,MAAM,EAAE;oBACvE,QAAQ,EAAE,EAAE,YAAY,EAAE;iBAC3B,CAAC;YACJ,CAAC;YAED,8BAA8B;YAC9B,IAAI,YAAY,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACxC,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,cAAc,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAsB;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAAY,EAAE,SAAiB;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAmB;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,YAKpB;QACC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CACrB,UAAkB,EAClB,OAAe,EACf,YAAiC,EACjC,MAAe;QAEf,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,MAAyB;QACpC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE5C,sCAAsC;QACtC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAkB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,KAAa;QAChC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC;IAC1C,CAAC;CACF;AAjMD,kCAiMC"}
1
+ {"version":3,"file":"email-sender.js","sourceRoot":"","sources":["../../src/core/email-sender.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,8 @@ export { SendGridProvider } from './providers/sendgrid';
12
12
  export { SesProvider } from './providers/ses';
13
13
  export { MailgunProvider } from './providers/mailgun';
14
14
  export { PostmarkProvider } from './providers/postmark';
15
+ export { MandrillProvider } from './providers/mandrill';
16
+ export { Smtp2goProvider } from './providers/smtp2go';
15
17
  export { EmailSenderError, EmailSenderErrorCode, EmailValidationError, ProviderError, RateLimitError, NetworkError, TimeoutError, } from './errors';
16
18
  export type { EmailSenderErrorOptions, EmailSenderErrorCodeType, } from './errors';
17
19
  export type { VerifiedSender, SenderValidationResult, Template, ProviderTemplate, TemplateVersion, SyncResult, TemplateAnalytics, SendGridAdvancedConfig } from './providers/sendgrid/types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAMxB,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMxD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAMxB,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGvE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMtD,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,cAAc,EACd,sBAAsB,EACtB,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,+BAA+B,EAC/B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
21
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.SendGridErrorCode = exports.SendGridRateLimitError = exports.TemplateConflictError = exports.UnauthorizedTemplateAccessError = exports.TemplateNotFoundError = exports.SendGridApiError = exports.TimeoutError = exports.NetworkError = exports.RateLimitError = exports.ProviderError = exports.EmailValidationError = exports.EmailSenderErrorCode = exports.EmailSenderError = exports.PostmarkProvider = exports.MailgunProvider = exports.SesProvider = exports.SendGridProvider = exports.SmtpProvider = exports.EmailProvider = exports.EmailSafetyManager = exports.EmailSender = exports.degradationInfoSchema = exports.capabilityEntrySchema = void 0;
24
+ exports.SendGridErrorCode = exports.SendGridRateLimitError = exports.TemplateConflictError = exports.UnauthorizedTemplateAccessError = exports.TemplateNotFoundError = exports.SendGridApiError = exports.TimeoutError = exports.NetworkError = exports.RateLimitError = exports.ProviderError = exports.EmailValidationError = exports.EmailSenderErrorCode = exports.EmailSenderError = exports.Smtp2goProvider = exports.MandrillProvider = exports.PostmarkProvider = exports.MailgunProvider = exports.SesProvider = exports.SendGridProvider = exports.SmtpProvider = exports.EmailProvider = exports.EmailSafetyManager = exports.EmailSender = exports.degradationInfoSchema = exports.capabilityEntrySchema = void 0;
25
25
  /**
26
26
  * Email Sender - Core Library
27
27
  * Main entry point for the email sending system
@@ -53,6 +53,10 @@ var mailgun_1 = require("./providers/mailgun");
53
53
  Object.defineProperty(exports, "MailgunProvider", { enumerable: true, get: function () { return mailgun_1.MailgunProvider; } });
54
54
  var postmark_1 = require("./providers/postmark");
55
55
  Object.defineProperty(exports, "PostmarkProvider", { enumerable: true, get: function () { return postmark_1.PostmarkProvider; } });
56
+ var mandrill_1 = require("./providers/mandrill");
57
+ Object.defineProperty(exports, "MandrillProvider", { enumerable: true, get: function () { return mandrill_1.MandrillProvider; } });
58
+ var smtp2go_1 = require("./providers/smtp2go");
59
+ Object.defineProperty(exports, "Smtp2goProvider", { enumerable: true, get: function () { return smtp2go_1.Smtp2goProvider; } });
56
60
  // Note: All types and Zod schemas are exported via `export * from './types'` above.
57
61
  // Zod runtime values (capabilityEntrySchema, degradationInfoSchema) are included in the wildcard export.
58
62
  // Error classes and types (v3.1.0 - Error propagation standard)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;;;;;;;;;;;;;;;AAEF;;;GAGG;AAEH,aAAa;AACb,0CAAwB;AAExB,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,8DAA8D;AAC9D,iCAAuE;AAA9D,8GAAA,qBAAqB,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAErD,eAAe;AACf,oDAAqE;AAA5D,2GAAA,WAAW,OAAA;AACpB,oEAAiE;AAAxD,0HAAA,kBAAkB,OAAA;AAE3B,mBAAmB;AACnB,yCAAiD;AAAxC,qGAAA,aAAa,OAAA;AACtB,yCAAgD;AAAvC,oGAAA,YAAY,OAAA;AACrB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AACzB,uCAA8C;AAArC,kGAAA,WAAW,OAAA;AACpB,+CAAsD;AAA7C,0GAAA,eAAe,OAAA;AACxB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AAEzB,oFAAoF;AACpF,yGAAyG;AAEzG,gEAAgE;AAChE,mCAQkB;AAPhB,0GAAA,gBAAgB,OAAA;AAChB,8GAAA,oBAAoB,OAAA;AACpB,8GAAA,oBAAoB,OAAA;AACpB,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AAmBd,2BAA2B;AAC3B,sDAOqC;AANnC,0GAAA,gBAAgB,OAAA;AAChB,+GAAA,qBAAqB,OAAA;AACrB,yHAAA,+BAA+B,OAAA;AAC/B,+GAAA,qBAAqB,OAAA;AACrB,gHAAA,sBAAsB,OAAA;AACtB,2GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;EAME;;;;;;;;;;;;;;;;;AAEF;;;GAGG;AAEH,aAAa;AACb,0CAAwB;AAExB,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,8DAA8D;AAC9D,iCAAuE;AAA9D,8GAAA,qBAAqB,OAAA;AAAE,8GAAA,qBAAqB,OAAA;AAErD,eAAe;AACf,oDAAqE;AAA5D,2GAAA,WAAW,OAAA;AACpB,oEAAiE;AAAxD,0HAAA,kBAAkB,OAAA;AAE3B,mBAAmB;AACnB,yCAAiD;AAAxC,qGAAA,aAAa,OAAA;AACtB,yCAAgD;AAAvC,oGAAA,YAAY,OAAA;AACrB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AACzB,uCAA8C;AAArC,kGAAA,WAAW,OAAA;AACpB,+CAAsD;AAA7C,0GAAA,eAAe,OAAA;AACxB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AACzB,iDAAwD;AAA/C,4GAAA,gBAAgB,OAAA;AACzB,+CAAsD;AAA7C,0GAAA,eAAe,OAAA;AAExB,oFAAoF;AACpF,yGAAyG;AAEzG,gEAAgE;AAChE,mCAQkB;AAPhB,0GAAA,gBAAgB,OAAA;AAChB,8GAAA,oBAAoB,OAAA;AACpB,8GAAA,oBAAoB,OAAA;AACpB,uGAAA,aAAa,OAAA;AACb,wGAAA,cAAc,OAAA;AACd,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AAmBd,2BAA2B;AAC3B,sDAOqC;AANnC,0GAAA,gBAAgB,OAAA;AAChB,+GAAA,qBAAqB,OAAA;AACrB,yHAAA,+BAA+B,OAAA;AAC/B,+GAAA,qBAAqB,OAAA;AACrB,gHAAA,sBAAsB,OAAA;AACtB,2GAAA,iBAAiB,OAAA"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Mandrill (Mailchimp Transactional) Email Provider
3
+ * Handles email sending through Mandrill API
4
+ */
5
+ import { EmailProvider } from './base';
6
+ import type { EmailMessage, SendResult, EmailProviderConfig, EmailProviderCapabilities, EmailValidationResult, DeliveryStatus, WebhookEvent } from '../types';
7
+ export interface MandrillConfig extends Omit<EmailProviderConfig, 'provider'> {
8
+ provider: 'mandrill';
9
+ apiKey: string;
10
+ subaccount?: string;
11
+ }
12
+ export declare class MandrillProvider extends EmailProvider {
13
+ private readonly baseUrl;
14
+ constructor(config: MandrillConfig);
15
+ private get mandrillConfig();
16
+ sendEmail(message: EmailMessage): Promise<SendResult>;
17
+ sendBatch(emails: EmailMessage[]): Promise<SendResult[]>;
18
+ getDeliveryStatus(messageId: string): Promise<DeliveryStatus | null>;
19
+ processWebhook(payload: unknown, _signature: string): Promise<WebhookEvent[]>;
20
+ validateConfiguration(): EmailValidationResult;
21
+ getCapabilities(): EmailProviderCapabilities;
22
+ private convertToMandrillMessage;
23
+ private mapMandrillStateToStatus;
24
+ private formatMandrillError;
25
+ }
26
+ //# sourceMappingURL=mandrill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mandrill.d.ts","sourceRoot":"","sources":["../../src/providers/mandrill.ts"],"names":[],"mappings":"AAQA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,YAAY,EAEb,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,mBAAmB,EAAE,UAAU,CAAC;IAC3E,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAmED,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqC;gBAEjD,MAAM,EAAE,cAAc;IAIlC,OAAO,KAAK,cAAc,GAEzB;IAEK,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAgErD,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IASxD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAyCpE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAqC1E,qBAAqB,IAAI,qBAAqB;IAmB9C,eAAe,IAAI,yBAAyB;IAgDrD,OAAO,CAAC,wBAAwB;IAsChC,OAAO,CAAC,wBAAwB;IA4BhC,OAAO,CAAC,mBAAmB;CAoB5B"}
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (c) 2025 Bernier LLC
4
+
5
+ This file is licensed to the client under a limited-use license.
6
+ The client may use and modify this code *only within the scope of the project it was delivered for*.
7
+ Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.MandrillProvider = void 0;
11
+ /**
12
+ * Mandrill (Mailchimp Transactional) Email Provider
13
+ * Handles email sending through Mandrill API
14
+ */
15
+ const base_1 = require("./base");
16
+ class MandrillProvider extends base_1.EmailProvider {
17
+ constructor(config) {
18
+ super(config);
19
+ this.baseUrl = 'https://mandrillapp.com/api/1.0';
20
+ }
21
+ get mandrillConfig() {
22
+ return this.config;
23
+ }
24
+ async sendEmail(message) {
25
+ try {
26
+ const mandrillMessage = this.convertToMandrillMessage(message);
27
+ const body = {
28
+ key: this.mandrillConfig.apiKey,
29
+ message: mandrillMessage,
30
+ };
31
+ const response = await fetch(`${this.baseUrl}/messages/send`, {
32
+ method: 'POST',
33
+ headers: {
34
+ 'Content-Type': 'application/json',
35
+ },
36
+ body: JSON.stringify(body),
37
+ });
38
+ if (!response.ok) {
39
+ const errorData = await response.text();
40
+ throw new Error(`Mandrill API error: ${response.status} - ${errorData}`);
41
+ }
42
+ const results = await response.json();
43
+ const result = results[0];
44
+ if (!result) {
45
+ throw new Error('Mandrill API returned empty response');
46
+ }
47
+ if (result.status === 'rejected' || result.status === 'invalid') {
48
+ return {
49
+ success: false,
50
+ errorMessage: `Message ${result.status}: ${result.reject_reason ?? 'unknown reason'}`,
51
+ providerResponse: results,
52
+ metadata: {
53
+ provider: 'mandrill',
54
+ timestamp: new Date().toISOString(),
55
+ },
56
+ };
57
+ }
58
+ return {
59
+ success: true,
60
+ messageId: result._id,
61
+ providerResponse: results,
62
+ metadata: {
63
+ provider: 'mandrill',
64
+ status: result.status,
65
+ timestamp: new Date().toISOString(),
66
+ },
67
+ };
68
+ }
69
+ catch (error) {
70
+ return {
71
+ success: false,
72
+ errorMessage: this.formatMandrillError(error),
73
+ providerResponse: error,
74
+ metadata: {
75
+ provider: 'mandrill',
76
+ timestamp: new Date().toISOString(),
77
+ },
78
+ };
79
+ }
80
+ }
81
+ async sendBatch(emails) {
82
+ const results = [];
83
+ for (const email of emails) {
84
+ const result = await this.sendEmail(email);
85
+ results.push(result);
86
+ }
87
+ return results;
88
+ }
89
+ async getDeliveryStatus(messageId) {
90
+ try {
91
+ const body = {
92
+ key: this.mandrillConfig.apiKey,
93
+ id: messageId,
94
+ };
95
+ const response = await fetch(`${this.baseUrl}/messages/info`, {
96
+ method: 'POST',
97
+ headers: {
98
+ 'Content-Type': 'application/json',
99
+ },
100
+ body: JSON.stringify(body),
101
+ });
102
+ if (!response.ok) {
103
+ return null;
104
+ }
105
+ const info = await response.json();
106
+ const status = this.mapMandrillStateToStatus(info.state);
107
+ return {
108
+ messageId: info._id,
109
+ status,
110
+ ...(status === 'delivered' && info.ts && {
111
+ deliveredAt: new Date(info.ts * 1000),
112
+ }),
113
+ metadata: {
114
+ provider: 'mandrill',
115
+ state: info.state,
116
+ opens: info.opens,
117
+ clicks: info.clicks,
118
+ },
119
+ };
120
+ }
121
+ catch (_error) {
122
+ return null;
123
+ }
124
+ }
125
+ async processWebhook(payload, _signature) {
126
+ try {
127
+ // Mandrill webhooks come as form field 'mandrill_events' with JSON array
128
+ let events;
129
+ if (typeof payload === 'string') {
130
+ events = JSON.parse(payload);
131
+ }
132
+ else if (payload !== null &&
133
+ typeof payload === 'object' &&
134
+ 'mandrill_events' in payload) {
135
+ const raw = payload['mandrill_events'];
136
+ events = typeof raw === 'string'
137
+ ? JSON.parse(raw)
138
+ : raw;
139
+ }
140
+ else if (Array.isArray(payload)) {
141
+ events = payload;
142
+ }
143
+ else {
144
+ return [];
145
+ }
146
+ return events.map((event) => ({
147
+ messageId: event.msg._id,
148
+ eventType: event.event,
149
+ timestamp: new Date(event.ts * 1000),
150
+ email: event.msg.email,
151
+ metadata: {
152
+ provider: 'mandrill',
153
+ rawEvent: event,
154
+ },
155
+ }));
156
+ }
157
+ catch (_error) {
158
+ return [];
159
+ }
160
+ }
161
+ validateConfiguration() {
162
+ const errors = [];
163
+ const warnings = [];
164
+ if (!this.mandrillConfig.apiKey) {
165
+ errors.push('Mandrill API key is required');
166
+ }
167
+ if (!this.config.fromEmail) {
168
+ errors.push('From email is required');
169
+ }
170
+ return {
171
+ isValid: errors.length === 0,
172
+ errors,
173
+ warnings,
174
+ };
175
+ }
176
+ getCapabilities() {
177
+ const features = {
178
+ sendEmail: {
179
+ source: 'provider',
180
+ description: 'Send email via Mandrill REST API',
181
+ overridable: false,
182
+ },
183
+ batchSend: {
184
+ source: 'provider',
185
+ description: 'Send multiple messages sequentially via Mandrill REST API',
186
+ limitations: '1000 max per batch',
187
+ overridable: false,
188
+ },
189
+ providerTemplates: {
190
+ source: 'provider',
191
+ description: 'Mandrill stored templates with variable substitution',
192
+ overridable: false,
193
+ },
194
+ webhooksReceive: {
195
+ source: 'provider',
196
+ description: 'Event webhooks via mandrill_events form field',
197
+ overridable: false,
198
+ },
199
+ deliveryTracking: {
200
+ source: 'provider',
201
+ description: 'Delivery status via messages/info API',
202
+ overridable: false,
203
+ },
204
+ attachments: {
205
+ source: 'provider',
206
+ description: 'File attachments up to 25MB',
207
+ overridable: false,
208
+ },
209
+ };
210
+ return {
211
+ supportsBatch: true,
212
+ supportsTemplates: true,
213
+ supportsWebhooks: true,
214
+ supportsAttachments: true,
215
+ supportsCustomHeaders: true,
216
+ supportsDeliveryTracking: true,
217
+ maxBatchSize: 1000,
218
+ maxAttachmentSize: 25 * 1024 * 1024, // 25MB
219
+ features,
220
+ };
221
+ }
222
+ convertToMandrillMessage(message) {
223
+ const mandrillMessage = {
224
+ subject: message.subject,
225
+ from_email: message.fromEmail ?? this.config.fromEmail,
226
+ from_name: message.fromName ?? this.config.fromName,
227
+ to: [{ email: message.toEmail, name: message.toName, type: 'to' }],
228
+ };
229
+ if (message.htmlContent) {
230
+ mandrillMessage.html = message.htmlContent;
231
+ }
232
+ if (message.textContent) {
233
+ mandrillMessage.text = message.textContent;
234
+ }
235
+ if (message.replyTo ?? message.headers) {
236
+ mandrillMessage.headers = {
237
+ ...(message.replyTo ? { 'Reply-To': message.replyTo } : {}),
238
+ ...message.headers,
239
+ };
240
+ }
241
+ if (message.attachments && message.attachments.length > 0) {
242
+ mandrillMessage.attachments = message.attachments.map((attachment) => ({
243
+ type: attachment.contentType ?? 'application/octet-stream',
244
+ name: attachment.filename,
245
+ content: attachment.content,
246
+ }));
247
+ }
248
+ if (this.mandrillConfig.subaccount) {
249
+ mandrillMessage.subaccount = this.mandrillConfig.subaccount;
250
+ }
251
+ return mandrillMessage;
252
+ }
253
+ mapMandrillStateToStatus(state) {
254
+ switch (state) {
255
+ case 'sent':
256
+ return 'sent';
257
+ case 'queued':
258
+ case 'scheduled':
259
+ return 'pending';
260
+ case 'rejected':
261
+ case 'invalid':
262
+ return 'failed';
263
+ case 'delivered':
264
+ return 'delivered';
265
+ case 'soft-bounced':
266
+ case 'hard-bounced':
267
+ return 'bounced';
268
+ case 'opened':
269
+ return 'opened';
270
+ case 'clicked':
271
+ return 'clicked';
272
+ case 'spam':
273
+ return 'spam';
274
+ case 'unsub':
275
+ return 'unsubscribed';
276
+ default:
277
+ return 'sent';
278
+ }
279
+ }
280
+ formatMandrillError(error) {
281
+ if (error && typeof error === 'object' && 'message' in error) {
282
+ const message = error.message;
283
+ if (message.includes('401')) {
284
+ return 'Invalid Mandrill API key';
285
+ }
286
+ if (message.includes('403')) {
287
+ return 'Access denied - check API key permissions';
288
+ }
289
+ if (message.includes('404')) {
290
+ return 'Mandrill resource not found';
291
+ }
292
+ if (message.includes('422')) {
293
+ return 'Invalid email parameters';
294
+ }
295
+ return message;
296
+ }
297
+ return 'Unknown Mandrill error';
298
+ }
299
+ }
300
+ exports.MandrillProvider = MandrillProvider;
301
+ //# sourceMappingURL=mandrill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mandrill.js","sourceRoot":"","sources":["../../src/providers/mandrill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * SMTP2GO Email Provider
3
+ * Handles email sending through SMTP2GO REST API
4
+ */
5
+ import { EmailProvider } from './base';
6
+ import type { EmailMessage, SendResult, EmailProviderCapabilities, EmailValidationResult, DeliveryStatus, WebhookEvent } from '../types';
7
+ interface Smtp2goConfig {
8
+ provider: 'smtp2go';
9
+ apiKey: string;
10
+ fromEmail: string;
11
+ fromName?: string;
12
+ }
13
+ export declare class Smtp2goProvider extends EmailProvider {
14
+ private readonly baseUrl;
15
+ constructor(config: Smtp2goConfig);
16
+ sendEmail(message: EmailMessage): Promise<SendResult>;
17
+ sendBatch(emails: EmailMessage[]): Promise<SendResult[]>;
18
+ getDeliveryStatus(messageId: string): Promise<DeliveryStatus | null>;
19
+ processWebhook(payload: unknown, _signature: string): Promise<WebhookEvent[]>;
20
+ validateConfiguration(): EmailValidationResult;
21
+ getCapabilities(): EmailProviderCapabilities;
22
+ private buildSendPayload;
23
+ private mapStatus;
24
+ private formatError;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=smtp2go.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp2go.d.ts","sourceRoot":"","sources":["../../src/providers/smtp2go.ts"],"names":[],"mappings":"AAQA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAEV,yBAAyB,EACzB,qBAAqB,EACrB,cAAc,EACd,YAAY,EAEb,MAAM,UAAU,CAAC;AAElB,UAAU,aAAa;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA4DD,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;gBAE5C,MAAM,EAAE,aAAa;IAI3B,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IA6CrD,SAAS,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAS/C,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAiDpE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAiCnF,qBAAqB,IAAI,qBAAqB;IAqB9C,eAAe,IAAI,yBAAyB;IAsBrD,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,SAAS;IAgCjB,OAAO,CAAC,WAAW;CAWpB"}
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ /*
3
+ Copyright (c) 2025 Bernier LLC
4
+
5
+ This file is licensed to the client under a limited-use license.
6
+ The client may use and modify this code *only within the scope of the project it was delivered for*.
7
+ Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.Smtp2goProvider = void 0;
11
+ /**
12
+ * SMTP2GO Email Provider
13
+ * Handles email sending through SMTP2GO REST API
14
+ */
15
+ const base_1 = require("./base");
16
+ class Smtp2goProvider extends base_1.EmailProvider {
17
+ constructor(config) {
18
+ super(config);
19
+ this.baseUrl = 'https://api.smtp2go.com/v3';
20
+ }
21
+ async sendEmail(message) {
22
+ try {
23
+ const payload = this.buildSendPayload(message);
24
+ const response = await fetch(`${this.baseUrl}/email/send`, {
25
+ method: 'POST',
26
+ headers: {
27
+ 'Content-Type': 'application/json',
28
+ },
29
+ body: JSON.stringify(payload),
30
+ });
31
+ if (!response.ok) {
32
+ const errorText = await response.text();
33
+ throw new Error(`SMTP2GO API error: ${response.status} - ${errorText}`);
34
+ }
35
+ const result = await response.json();
36
+ if (result.data.failed > 0) {
37
+ throw new Error(`SMTP2GO send failed: ${result.data.failures.join(', ')}`);
38
+ }
39
+ return {
40
+ success: true,
41
+ messageId: result.request_id,
42
+ providerResponse: result,
43
+ metadata: {
44
+ provider: 'smtp2go',
45
+ timestamp: new Date().toISOString(),
46
+ },
47
+ };
48
+ }
49
+ catch (error) {
50
+ return {
51
+ success: false,
52
+ errorMessage: this.formatError(error),
53
+ providerResponse: error,
54
+ metadata: {
55
+ provider: 'smtp2go',
56
+ timestamp: new Date().toISOString(),
57
+ },
58
+ };
59
+ }
60
+ }
61
+ async sendBatch(emails) {
62
+ const results = [];
63
+ for (const email of emails) {
64
+ const result = await this.sendEmail(email);
65
+ results.push(result);
66
+ }
67
+ return results;
68
+ }
69
+ async getDeliveryStatus(messageId) {
70
+ try {
71
+ const payload = {
72
+ api_key: this.config.apiKey,
73
+ search: { message_id: messageId },
74
+ };
75
+ const response = await fetch(`${this.baseUrl}/activity/search`, {
76
+ method: 'POST',
77
+ headers: {
78
+ 'Content-Type': 'application/json',
79
+ },
80
+ body: JSON.stringify(payload),
81
+ });
82
+ if (!response.ok) {
83
+ return null;
84
+ }
85
+ const result = await response.json();
86
+ const emails = result.data?.emails ?? [];
87
+ if (emails.length === 0) {
88
+ return {
89
+ messageId,
90
+ status: 'pending',
91
+ metadata: {
92
+ provider: 'smtp2go',
93
+ },
94
+ };
95
+ }
96
+ const latest = emails[0];
97
+ const status = this.mapStatus(latest.status);
98
+ return {
99
+ messageId,
100
+ status,
101
+ ...(status === 'delivered' && { deliveredAt: new Date(latest.date) }),
102
+ metadata: {
103
+ provider: 'smtp2go',
104
+ event: latest.status,
105
+ },
106
+ };
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ }
112
+ async processWebhook(payload, _signature) {
113
+ const events = [];
114
+ const normalize = (item) => {
115
+ const event = {
116
+ messageId: item.message_id ?? '',
117
+ eventType: item.event ?? 'unknown',
118
+ timestamp: item.timestamp
119
+ ? new Date(typeof item.timestamp === 'number'
120
+ ? item.timestamp * 1000
121
+ : item.timestamp)
122
+ : new Date(),
123
+ email: item.email ?? '',
124
+ metadata: { provider: 'smtp2go' },
125
+ };
126
+ if (item.reason !== undefined)
127
+ event.reason = item.reason;
128
+ if (item.response !== undefined)
129
+ event.response = item.response;
130
+ return event;
131
+ };
132
+ if (Array.isArray(payload)) {
133
+ for (const item of payload) {
134
+ events.push(normalize(item));
135
+ }
136
+ }
137
+ else if (payload && typeof payload === 'object') {
138
+ events.push(normalize(payload));
139
+ }
140
+ return events;
141
+ }
142
+ validateConfiguration() {
143
+ const errors = [];
144
+ const warnings = [];
145
+ const cfg = this.config;
146
+ if (!cfg.apiKey) {
147
+ errors.push('SMTP2GO API key is required');
148
+ }
149
+ if (!cfg.fromEmail) {
150
+ errors.push('From email is required');
151
+ }
152
+ return {
153
+ isValid: errors.length === 0,
154
+ errors,
155
+ warnings,
156
+ };
157
+ }
158
+ getCapabilities() {
159
+ const features = {
160
+ sendEmail: { source: 'provider', description: 'Send email via SMTP2GO REST API', overridable: false },
161
+ batchSend: { source: 'provider', description: 'Sequential batch sending', limitations: '1000 recipients per call', overridable: false },
162
+ webhooksReceive: { source: 'provider', description: 'Event webhooks for delivery tracking', overridable: false },
163
+ deliveryTracking: { source: 'provider', description: 'Delivery event tracking via activity search API', overridable: false },
164
+ attachments: { source: 'provider', description: 'File attachments up to 50MB', overridable: false },
165
+ };
166
+ return {
167
+ supportsBatch: true,
168
+ supportsTemplates: false,
169
+ supportsWebhooks: true,
170
+ supportsAttachments: true,
171
+ supportsCustomHeaders: true,
172
+ supportsDeliveryTracking: true,
173
+ maxBatchSize: 1000,
174
+ maxAttachmentSize: 50 * 1024 * 1024, // 50MB
175
+ features,
176
+ };
177
+ }
178
+ buildSendPayload(message) {
179
+ const cfg = this.config;
180
+ const payload = {
181
+ api_key: cfg.apiKey,
182
+ to: [message.toEmail],
183
+ sender: message.fromEmail ?? cfg.fromEmail,
184
+ subject: message.subject,
185
+ };
186
+ if (message.htmlContent) {
187
+ payload.html_body = message.htmlContent;
188
+ }
189
+ if (message.textContent) {
190
+ payload.text_body = message.textContent;
191
+ }
192
+ if (message.replyTo) {
193
+ payload.custom_headers = [
194
+ ...(payload.custom_headers ?? []),
195
+ { header: 'Reply-To', value: message.replyTo },
196
+ ];
197
+ }
198
+ if (message.headers && Object.keys(message.headers).length > 0) {
199
+ const headerEntries = Object.entries(message.headers).map(([header, value]) => ({
200
+ header,
201
+ value,
202
+ }));
203
+ payload.custom_headers = [...(payload.custom_headers ?? []), ...headerEntries];
204
+ }
205
+ if (message.attachments && message.attachments.length > 0) {
206
+ payload.attachments = message.attachments.map((a) => ({
207
+ filename: a.filename,
208
+ fileblob: a.content,
209
+ mimetype: a.contentType ?? 'application/octet-stream',
210
+ }));
211
+ }
212
+ return payload;
213
+ }
214
+ mapStatus(status) {
215
+ switch (status) {
216
+ case 'delivered':
217
+ return 'delivered';
218
+ case 'bounced':
219
+ case 'bounce':
220
+ return 'bounced';
221
+ case 'failed':
222
+ case 'rejected':
223
+ return 'failed';
224
+ case 'queued':
225
+ case 'processing':
226
+ return 'pending';
227
+ case 'sent':
228
+ return 'sent';
229
+ case 'opened':
230
+ case 'open':
231
+ return 'opened';
232
+ case 'clicked':
233
+ case 'click':
234
+ return 'clicked';
235
+ case 'spam':
236
+ case 'spam_complaint':
237
+ return 'spam';
238
+ case 'unsubscribed':
239
+ case 'unsub':
240
+ return 'unsubscribed';
241
+ default:
242
+ return 'sent';
243
+ }
244
+ }
245
+ formatError(error) {
246
+ if (error && typeof error === 'object' && 'message' in error) {
247
+ const msg = error.message;
248
+ if (msg.includes('401'))
249
+ return 'Invalid SMTP2GO API key';
250
+ if (msg.includes('403'))
251
+ return 'Access denied - check API key permissions';
252
+ if (msg.includes('404'))
253
+ return 'SMTP2GO resource not found';
254
+ if (msg.includes('422'))
255
+ return 'Invalid email parameters';
256
+ return msg;
257
+ }
258
+ return 'Unknown SMTP2GO error';
259
+ }
260
+ }
261
+ exports.Smtp2goProvider = Smtp2goProvider;
262
+ //# sourceMappingURL=smtp2go.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp2go.js","sourceRoot":"","sources":["../../src/providers/smtp2go.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export interface WebhookEvent {
56
56
  metadata?: Record<string, any>;
57
57
  }
58
58
  export interface EmailProviderConfig {
59
- provider: 'sendgrid' | 'ses' | 'mailgun' | 'postmark' | 'smtp';
59
+ provider: 'sendgrid' | 'ses' | 'mailgun' | 'postmark' | 'smtp' | 'mandrill' | 'smtp2go';
60
60
  apiKey?: string;
61
61
  secretKey?: string;
62
62
  domain?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bernierllc/email-sender",
3
- "version": "5.1.1",
3
+ "version": "5.2.0",
4
4
  "description": "Email sending with provider-agnostic interface and SendGrid advanced features (templates, verified senders, rate limiting)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",