@trunkrs/common 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/models/errors/email/EmailAddressVerificationFailedError.d.ts +5 -0
  2. package/models/errors/email/EmailAddressVerificationFailedError.js +14 -0
  3. package/models/errors/email/EmailAddressVerificationFailedError.js.map +1 -0
  4. package/models/errors/email/EmailDomainNotAllowedOnEnvironmentError.d.ts +5 -0
  5. package/models/errors/email/EmailDomainNotAllowedOnEnvironmentError.js +14 -0
  6. package/models/errors/email/EmailDomainNotAllowedOnEnvironmentError.js.map +1 -0
  7. package/models/errors/email/EmailHasNoBodyEmailError.d.ts +5 -0
  8. package/models/errors/email/{EmailValidationError.js → EmailHasNoBodyEmailError.js} +4 -4
  9. package/models/errors/email/EmailHasNoBodyEmailError.js.map +1 -0
  10. package/models/errors/email/EmailHasNoSubjectError.d.ts +5 -0
  11. package/models/errors/email/EmailHasNoSubjectError.js +14 -0
  12. package/models/errors/email/EmailHasNoSubjectError.js.map +1 -0
  13. package/models/errors/email/index.d.ts +4 -1
  14. package/models/errors/email/index.js +9 -3
  15. package/models/errors/email/index.js.map +1 -1
  16. package/package.json +1 -1
  17. package/services/email/EmailClient/index.d.ts +0 -1
  18. package/services/email/EmailClient/index.js +6 -12
  19. package/services/email/EmailClient/index.js.map +1 -1
  20. package/services/email/NodemailerEmailClient.js +6 -3
  21. package/services/email/NodemailerEmailClient.js.map +1 -1
  22. package/services/email/__tests__/NodemailerEmailClient.spec.js +5 -4
  23. package/services/email/__tests__/NodemailerEmailClient.spec.js.map +1 -1
  24. package/models/errors/email/EmailValidationError.d.ts +0 -5
  25. package/models/errors/email/EmailValidationError.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import ErrorBase from '../ErrorBase';
2
+ declare class EmailAddressVerificationFailedError extends ErrorBase {
3
+ constructor(foundAddress: string);
4
+ }
5
+ export default EmailAddressVerificationFailedError;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ErrorBase_1 = __importDefault(require("../ErrorBase"));
7
+ class EmailAddressVerificationFailedError extends ErrorBase_1.default {
8
+ constructor(foundAddress) {
9
+ super();
10
+ this.message = `The email ${foundAddress} is not a valid email.`;
11
+ }
12
+ }
13
+ exports.default = EmailAddressVerificationFailedError;
14
+ //# sourceMappingURL=EmailAddressVerificationFailedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailAddressVerificationFailedError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailAddressVerificationFailedError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,mCAAoC,SAAQ,mBAAS;IACzD,YAAmB,YAAoB;QACrC,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,aAAa,YAAY,wBAAwB,CAAA;IAClE,CAAC;CACF;AAED,kBAAe,mCAAmC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import ErrorBase from '../ErrorBase';
2
+ declare class EmailDomainNotAllowedOnEnvironmentError extends ErrorBase {
3
+ constructor(stage: string, allowedDomains: string[], foundAddresses: string[]);
4
+ }
5
+ export default EmailDomainNotAllowedOnEnvironmentError;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ErrorBase_1 = __importDefault(require("../ErrorBase"));
7
+ class EmailDomainNotAllowedOnEnvironmentError extends ErrorBase_1.default {
8
+ constructor(stage, allowedDomains, foundAddresses) {
9
+ super();
10
+ this.message = `The email addresses ${foundAddresses}, are not allowed on Environment: "${stage}". Only addresses ending in ${allowedDomains} are considered as valid.`;
11
+ }
12
+ }
13
+ exports.default = EmailDomainNotAllowedOnEnvironmentError;
14
+ //# sourceMappingURL=EmailDomainNotAllowedOnEnvironmentError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailDomainNotAllowedOnEnvironmentError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailDomainNotAllowedOnEnvironmentError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,uCAAwC,SAAQ,mBAAS;IAC7D,YACE,KAAa,EACb,cAAwB,EACxB,cAAwB;QAExB,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,uBAAuB,cAAc,sCAAsC,KAAK,+BAA+B,cAAc,2BAA2B,CAAA;IACzK,CAAC;CACF;AAED,kBAAe,uCAAuC,CAAA"}
@@ -0,0 +1,5 @@
1
+ import ErrorBase from '../ErrorBase';
2
+ declare class EmailHasNoBodyError extends ErrorBase {
3
+ constructor();
4
+ }
5
+ export default EmailHasNoBodyError;
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const ErrorBase_1 = __importDefault(require("../ErrorBase"));
7
- class EmailValidationError extends ErrorBase_1.default {
7
+ class EmailHasNoBodyError extends ErrorBase_1.default {
8
8
  constructor() {
9
9
  super();
10
- this.message = `Email is either missing a subject and/or a body, or recipient/s are from an invalid domain.`;
10
+ this.message = `The email you are about to send has no HTML or TEXT body.`;
11
11
  }
12
12
  }
13
- exports.default = EmailValidationError;
14
- //# sourceMappingURL=EmailValidationError.js.map
13
+ exports.default = EmailHasNoBodyError;
14
+ //# sourceMappingURL=EmailHasNoBodyEmailError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailHasNoBodyEmailError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailHasNoBodyEmailError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,mBAAoB,SAAQ,mBAAS;IACzC;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,2DAA2D,CAAA;IAC5E,CAAC;CACF;AAED,kBAAe,mBAAmB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import ErrorBase from '../ErrorBase';
2
+ declare class EmailHasNoSubjectError extends ErrorBase {
3
+ constructor();
4
+ }
5
+ export default EmailHasNoSubjectError;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ErrorBase_1 = __importDefault(require("../ErrorBase"));
7
+ class EmailHasNoSubjectError extends ErrorBase_1.default {
8
+ constructor() {
9
+ super();
10
+ this.message = `The email you are about to send has no subject configured.`;
11
+ }
12
+ }
13
+ exports.default = EmailHasNoSubjectError;
14
+ //# sourceMappingURL=EmailHasNoSubjectError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailHasNoSubjectError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailHasNoSubjectError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,sBAAuB,SAAQ,mBAAS;IAC5C;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,4DAA4D,CAAA;IAC7E,CAAC;CACF;AAED,kBAAe,sBAAsB,CAAA"}
@@ -1,2 +1,5 @@
1
- export { default as NoEmailBodyError } from './EmailValidationError';
2
1
  export { default as TemplateNotFoundError } from './TemplateNotFoundError';
2
+ export { default as EmailAddressVerificationFailedError } from './EmailAddressVerificationFailedError';
3
+ export { default as EmailDomainNotAllowedOnEnvironmentError } from './EmailDomainNotAllowedOnEnvironmentError';
4
+ export { default as EmailHasNoSubjectError } from './EmailHasNoSubjectError';
5
+ export { default as EmailHasNoBodyEmailError } from './EmailHasNoBodyEmailError';
@@ -3,9 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.TemplateNotFoundError = exports.NoEmailBodyError = void 0;
7
- var EmailValidationError_1 = require("./EmailValidationError");
8
- Object.defineProperty(exports, "NoEmailBodyError", { enumerable: true, get: function () { return __importDefault(EmailValidationError_1).default; } });
6
+ exports.EmailHasNoBodyEmailError = exports.EmailHasNoSubjectError = exports.EmailDomainNotAllowedOnEnvironmentError = exports.EmailAddressVerificationFailedError = exports.TemplateNotFoundError = void 0;
9
7
  var TemplateNotFoundError_1 = require("./TemplateNotFoundError");
10
8
  Object.defineProperty(exports, "TemplateNotFoundError", { enumerable: true, get: function () { return __importDefault(TemplateNotFoundError_1).default; } });
9
+ var EmailAddressVerificationFailedError_1 = require("./EmailAddressVerificationFailedError");
10
+ Object.defineProperty(exports, "EmailAddressVerificationFailedError", { enumerable: true, get: function () { return __importDefault(EmailAddressVerificationFailedError_1).default; } });
11
+ var EmailDomainNotAllowedOnEnvironmentError_1 = require("./EmailDomainNotAllowedOnEnvironmentError");
12
+ Object.defineProperty(exports, "EmailDomainNotAllowedOnEnvironmentError", { enumerable: true, get: function () { return __importDefault(EmailDomainNotAllowedOnEnvironmentError_1).default; } });
13
+ var EmailHasNoSubjectError_1 = require("./EmailHasNoSubjectError");
14
+ Object.defineProperty(exports, "EmailHasNoSubjectError", { enumerable: true, get: function () { return __importDefault(EmailHasNoSubjectError_1).default; } });
15
+ var EmailHasNoBodyEmailError_1 = require("./EmailHasNoBodyEmailError");
16
+ Object.defineProperty(exports, "EmailHasNoBodyEmailError", { enumerable: true, get: function () { return __importDefault(EmailHasNoBodyEmailError_1).default; } });
11
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../models/errors/email/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAoE;AAA3D,yIAAA,OAAO,OAAoB;AACpC,iEAA0E;AAAjE,+IAAA,OAAO,OAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../models/errors/email/index.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA0E;AAAjE,+IAAA,OAAO,OAAyB;AACzC,6FAAsG;AAA7F,2KAAA,OAAO,OAAuC;AACvD,qGAA8G;AAArG,mLAAA,OAAO,OAA2C;AAC3D,mEAA4E;AAAnE,iJAAA,OAAO,OAA0B;AAC1C,uEAAgF;AAAvE,qJAAA,OAAO,OAA4B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trunkrs/common",
3
- "version": "4.2.0",
3
+ "version": "4.3.0",
4
4
  "description": "Common standards library for development in Trunkrs",
5
5
  "types": "./index.d.ts",
6
6
  "repository": "https://github.com/Trunkrs/common.git",
@@ -5,6 +5,5 @@ declare abstract class EmailClient<TConfig extends EmailClientConfig = EmailClie
5
5
  sendTemplatedEmail<TValues>(params: SendTemplatedEmailRequest<TValues>): Promise<void>;
6
6
  protected abstract sendEmail<TValues>(params: SendTemplatedEmailRequest<TValues>): Promise<void>;
7
7
  private validateRecipientDomains;
8
- private areRecipientDomainsInvalid;
9
8
  }
10
9
  export default EmailClient;
@@ -1,9 +1,6 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const EmailValidationError_1 = __importDefault(require("../../../models/errors/email/EmailValidationError"));
3
+ const email_1 = require("../../../models/errors/email");
7
4
  class EmailClient {
8
5
  constructor(config) {
9
6
  this.config = config;
@@ -23,16 +20,13 @@ class EmailClient {
23
20
  return;
24
21
  }
25
22
  const { allowedDomains } = validateRecipientDomains;
26
- const hasInvalidRecipientDomains = allowedDomains && this.areRecipientDomainsInvalid(to, allowedDomains);
27
- if (hasInvalidRecipientDomains) {
28
- throw new EmailValidationError_1.default();
29
- }
30
- }
31
- areRecipientDomainsInvalid(addresses, allowedDomains) {
32
- return addresses.some((address) => {
23
+ const invalidDomains = to.filter((address) => {
33
24
  const [, domain] = address.split('@');
34
- return !allowedDomains.includes(domain);
25
+ return !allowedDomains.some((allowedDomain) => allowedDomain === domain);
35
26
  });
27
+ if (invalidDomains) {
28
+ throw new email_1.EmailDomainNotAllowedOnEnvironmentError(stage, allowedDomains, to);
29
+ }
36
30
  }
37
31
  }
38
32
  exports.default = EmailClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/email/EmailClient/index.ts"],"names":[],"mappings":";;;;;AACA,6GAAoF;AAEpF,MAAe,WAAW;IAGxB,YAAyC,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IASrD,KAAK,CAAC,kBAAkB,CAC7B,MAA0C;QAE1C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAExC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAMO,wBAAwB,CAAC,EAAY;QAC3C,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEvD,IAAI,CAAC,wBAAwB,EAAE;YAC7B,OAAM;SACP;QAED,MAAM,oBAAoB,GACxB,wBAAwB,CAAC,oBAAoB;YAC7C,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/D,IAAI,oBAAoB,EAAE;YACxB,OAAM;SACP;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,wBAAwB,CAAA;QAEnD,MAAM,0BAA0B,GAC9B,cAAc,IAAI,IAAI,CAAC,0BAA0B,CAAC,EAAE,EAAE,cAAc,CAAC,CAAA;QAEvE,IAAI,0BAA0B,EAAE;YAC9B,MAAM,IAAI,8BAAoB,EAAE,CAAA;SACjC;IACH,CAAC;IAEO,0BAA0B,CAChC,SAAmB,EACnB,cAAwB;QAExB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAErC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAED,kBAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../services/email/EmailClient/index.ts"],"names":[],"mappings":";;AAAA,wDAAsF;AAGtF,MAAe,WAAW;IAGxB,YAAyC,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IASrD,KAAK,CAAC,kBAAkB,CAC7B,MAA0C;QAE1C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAExC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAMO,wBAAwB,CAAC,EAAY;QAC3C,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEvD,IAAI,CAAC,wBAAwB,EAAE;YAC7B,OAAM;SACP;QAED,MAAM,oBAAoB,GACxB,wBAAwB,CAAC,oBAAoB;YAC7C,wBAAwB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAE/D,IAAI,oBAAoB,EAAE;YACxB,OAAM;SACP;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,wBAAwB,CAAA;QAEnD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAErC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,KAAK,MAAM,CAAC,CAAA;QAC1E,CAAC,CAAC,CAAA;QAEF,IAAI,cAAc,EAAE;YAClB,MAAM,IAAI,+CAAuC,CAC/C,KAAK,EACL,cAAc,EACd,EAAE,CACH,CAAA;SACF;IACH,CAAC;CACF;AAED,kBAAe,WAAW,CAAA"}
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const EmailClient_1 = __importDefault(require("./EmailClient"));
7
- const EmailValidationError_1 = __importDefault(require("../../models/errors/email/EmailValidationError"));
7
+ const email_1 = require("../../models/errors/email");
8
8
  class NodemailerEmailClient extends EmailClient_1.default {
9
9
  constructor(config) {
10
10
  super(config);
@@ -46,8 +46,11 @@ class NodemailerEmailClient extends EmailClient_1.default {
46
46
  const hasEmailBody = html || text;
47
47
  const noEmailBodyErrorCondition = !hasEmailBody && requireBody;
48
48
  const noSubjectErrorCondition = !subject && requireSubject;
49
- if (noEmailBodyErrorCondition || noSubjectErrorCondition) {
50
- throw new EmailValidationError_1.default();
49
+ if (noEmailBodyErrorCondition) {
50
+ throw new email_1.EmailHasNoBodyEmailError();
51
+ }
52
+ if (noSubjectErrorCondition) {
53
+ throw new email_1.EmailHasNoSubjectError();
51
54
  }
52
55
  }
53
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NodemailerEmailClient.js","sourceRoot":"","sources":["../../../services/email/NodemailerEmailClient.ts"],"names":[],"mappings":";;;;;AAGA,gEAAuC;AAOvC,0GAAiF;AAWjF,MAAM,qBAAsB,SAAQ,qBAA6B;IAC/D,YAAmB,MAAwB;QACzC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAUS,KAAK,CAAC,SAAS,CACvB,MAA0C;QAE1C,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;QAChE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,uBAAuB,CACxD,YAAY,EACZ,cAAc,CACf,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;QAErE,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAEO,oBAAoB,CAC1B,EAAY,EACZ,KAAmB,EACnB,WAA0B;QAE1B,MAAM,iBAAiB,GACrB,WAAW;YACX,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,WAAW,EAAE,UAAU,CAAC,QAAQ;gBAChC,OAAO,EAAE,UAAU,CAAC,IAAI;aACzB,CAAC,CAAC,CAAA;QAEL,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC5B,MAAM,WAAW,GAAgB;YAC/B,IAAI;YACJ,EAAE;YACF,WAAW,EAAE,iBAAiB;YAC9B,GAAG,KAAK;SACT,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEjC,IAAI,SAAS,EAAE;YACb,WAAW,CAAC,GAAG,GAAG;gBAChB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;aACnB,CAAA;SACF;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,oBAAoB,CAAC,OAAqB;QAChD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QACvC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEnD,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAA;QACjC,MAAM,yBAAyB,GAAG,CAAC,YAAY,IAAI,WAAW,CAAA;QAC9D,MAAM,uBAAuB,GAAG,CAAC,OAAO,IAAI,cAAc,CAAA;QAE1D,IAAI,yBAAyB,IAAI,uBAAuB,EAAE;YACxD,MAAM,IAAI,8BAAoB,EAAE,CAAA;SACjC;IACH,CAAC;CACF;AAED,kBAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"NodemailerEmailClient.js","sourceRoot":"","sources":["../../../services/email/NodemailerEmailClient.ts"],"names":[],"mappings":";;;;;AAGA,gEAAuC;AAOvC,qDAGkC;AAWlC,MAAM,qBAAsB,SAAQ,qBAA6B;IAC/D,YAAmB,MAAwB;QACzC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAUS,KAAK,CAAC,SAAS,CACvB,MAA0C;QAE1C,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAA;QAChE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,uBAAuB,CACxD,YAAY,EACZ,cAAc,CACf,CAAA;QACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;QAErE,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAEO,oBAAoB,CAC1B,EAAY,EACZ,KAAmB,EACnB,WAA0B;QAE1B,MAAM,iBAAiB,GACrB,WAAW;YACX,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,WAAW,EAAE,UAAU,CAAC,QAAQ;gBAChC,OAAO,EAAE,UAAU,CAAC,IAAI;aACzB,CAAC,CAAC,CAAA;QAEL,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC5B,MAAM,WAAW,GAAgB;YAC/B,IAAI;YACJ,EAAE;YACF,WAAW,EAAE,iBAAiB;YAC9B,GAAG,KAAK;SACT,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEjC,IAAI,SAAS,EAAE;YACb,WAAW,CAAC,GAAG,GAAG;gBAChB,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS;aACnB,CAAA;SACF;QAED,OAAO,WAAW,CAAA;IACpB,CAAC;IAEO,oBAAoB,CAAC,OAAqB;QAChD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QACvC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAEnD,MAAM,YAAY,GAAG,IAAI,IAAI,IAAI,CAAA;QACjC,MAAM,yBAAyB,GAAG,CAAC,YAAY,IAAI,WAAW,CAAA;QAC9D,MAAM,uBAAuB,GAAG,CAAC,OAAO,IAAI,cAAc,CAAA;QAE1D,IAAI,yBAAyB,EAAE;YAC7B,MAAM,IAAI,gCAAwB,EAAE,CAAA;SACrC;QAED,IAAI,uBAAuB,EAAE;YAC3B,MAAM,IAAI,8BAAsB,EAAE,CAAA;SACnC;IACH,CAAC;CACF;AAED,kBAAe,qBAAqB,CAAA"}
@@ -6,7 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const faker_1 = require("faker");
7
7
  const NodemailerEmailClient_1 = __importDefault(require("../NodemailerEmailClient"));
8
8
  const Environment_1 = __importDefault(require("../../../models/enum/Environment"));
9
- const EmailValidationError_1 = __importDefault(require("../../../models/errors/email/EmailValidationError"));
9
+ const EmailHasNoBodyEmailError_1 = __importDefault(require("../../../models/errors/email/EmailHasNoBodyEmailError"));
10
+ const email_1 = require("../../../models/errors/email");
10
11
  const createMockMailer = () => ({
11
12
  sendMail: jest.fn(),
12
13
  });
@@ -60,11 +61,11 @@ describe('NodemailerEmailClient', () => {
60
61
  templateValues: { name: 'sender' },
61
62
  };
62
63
  mockSESTemplateClient.createEmailFromTemplate.mockResolvedValueOnce({});
63
- await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(EmailValidationError_1.default);
64
+ await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(EmailHasNoBodyEmailError_1.default);
64
65
  mockSESTemplateClient.createEmailFromTemplate.mockResolvedValueOnce({
65
66
  text: 'A body',
66
67
  });
67
- await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(EmailValidationError_1.default);
68
+ await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(email_1.EmailHasNoSubjectError);
68
69
  });
69
70
  it('Should throw an error if attempting to send an email from a non-whitelisted domain.', async () => {
70
71
  config = createConfig('foo@bar.baz', Environment_1.default.Dev, {
@@ -76,7 +77,7 @@ describe('NodemailerEmailClient', () => {
76
77
  templateName: 'a template',
77
78
  templateValues: { name: 'sender' },
78
79
  };
79
- await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(EmailValidationError_1.default);
80
+ await expect(async () => sut.sendTemplatedEmail(params)).rejects.toThrow(email_1.EmailDomainNotAllowedOnEnvironmentError);
80
81
  });
81
82
  });
82
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NodemailerEmailClient.spec.js","sourceRoot":"","sources":["../../../../services/email/__tests__/NodemailerEmailClient.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodemailerEmailClient.spec.js","sourceRoot":"","sources":["../../../../services/email/__tests__/NodemailerEmailClient.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import ErrorBase from '../ErrorBase';
2
- declare class EmailValidationError extends ErrorBase {
3
- constructor();
4
- }
5
- export default EmailValidationError;
@@ -1 +0,0 @@
1
- {"version":3,"file":"EmailValidationError.js","sourceRoot":"","sources":["../../../../models/errors/email/EmailValidationError.ts"],"names":[],"mappings":";;;;;AAAA,6DAAoC;AAEpC,MAAM,oBAAqB,SAAQ,mBAAS;IAC1C;QACE,KAAK,EAAE,CAAA;QAEP,IAAI,CAAC,OAAO,GAAG,6FAA6F,CAAA;IAC9G,CAAC;CACF;AAED,kBAAe,oBAAoB,CAAA"}