@tomei/mailer 0.6.2 → 0.7.1-dev.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,39 @@
1
+ export type EmailStatus = 'success' | 'failed' | 'pending';
2
+ export declare class EmailLog {
3
+ id: string;
4
+ recipient: string;
5
+ subject: string;
6
+ emailType: string;
7
+ bodyHtml: string;
8
+ bodyText: string;
9
+ payload: string;
10
+ private _status;
11
+ error?: string;
12
+ sentAt: Date;
13
+ createdAt: Date;
14
+ updatedAt?: Date;
15
+ resentFromId?: string;
16
+ resendMethod?: string;
17
+ resentById?: string;
18
+ constructor(params: {
19
+ id: string;
20
+ recipient: string;
21
+ subject: string;
22
+ emailType: string;
23
+ bodyHtml: string;
24
+ bodyText: string;
25
+ payload: string;
26
+ status?: EmailStatus;
27
+ error?: string;
28
+ sentAt?: Date;
29
+ createdAt?: Date;
30
+ updatedAt?: Date;
31
+ resentFromId?: string;
32
+ resendMethod?: string;
33
+ resentById?: string;
34
+ });
35
+ get status(): EmailStatus;
36
+ set status(value: EmailStatus);
37
+ private static normalizeStatus;
38
+ updateStatus(newStatus: EmailStatus): void;
39
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailLog = void 0;
4
+ class EmailLog {
5
+ constructor(params) {
6
+ var _a, _b, _c;
7
+ this.id = params.id;
8
+ this.recipient = params.recipient;
9
+ this.subject = params.subject;
10
+ this.emailType = params.emailType;
11
+ this.bodyHtml = params.bodyHtml;
12
+ this.bodyText = params.bodyText;
13
+ this.payload = params.payload;
14
+ this.error = params.error;
15
+ this.sentAt = (_a = params.sentAt) !== null && _a !== void 0 ? _a : new Date();
16
+ this.createdAt = (_b = params.createdAt) !== null && _b !== void 0 ? _b : new Date();
17
+ this.updatedAt = params.updatedAt;
18
+ this.resentFromId = params.resentFromId;
19
+ this.resendMethod = params.resendMethod;
20
+ this.resentById = params.resentById;
21
+ const initialStatus = ((_c = params.status) !== null && _c !== void 0 ? _c : 'pending');
22
+ this._status = EmailLog.normalizeStatus(initialStatus);
23
+ }
24
+ get status() {
25
+ return this._status;
26
+ }
27
+ set status(value) {
28
+ this._status = EmailLog.normalizeStatus(value);
29
+ this.updatedAt = new Date();
30
+ }
31
+ static normalizeStatus(s) {
32
+ const lower = (s !== null && s !== void 0 ? s : '').toLowerCase();
33
+ if (lower === 'success' || lower === 'failed' || lower === 'pending') {
34
+ return lower;
35
+ }
36
+ throw new Error(`Invalid EmailStatus value: ${s}`);
37
+ }
38
+ updateStatus(newStatus) {
39
+ const normalized = EmailLog.normalizeStatus(newStatus);
40
+ if (this._status !== 'pending') {
41
+ throw new Error(`Invalid status transition: only 'pending' -> 'success'|'failed' allowed (current: ${this._status})`);
42
+ }
43
+ if (normalized !== 'success' && normalized !== 'failed') {
44
+ throw new Error(`Invalid target status: ${normalized}. Must be 'success' or 'failed'`);
45
+ }
46
+ this._status = normalized;
47
+ this.updatedAt = new Date();
48
+ }
49
+ }
50
+ exports.EmailLog = EmailLog;
51
+ //# sourceMappingURL=EmailLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailLog.js","sourceRoot":"","sources":["../../../src/interfaces/EmailLog.ts"],"names":[],"mappings":";;;AAEA,MAAa,QAAQ;IAiBnB,YAAY,MAgBX;;QACC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,IAAI,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAGpC,MAAM,aAAa,GAAG,CAAC,MAAA,MAAM,CAAC,MAAM,mCAAI,SAAS,CAAW,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAGD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAGD,IAAI,MAAM,CAAC,KAAkB;QAC3B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAe,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAGO,MAAM,CAAC,eAAe,CAAC,CAAS;QACtC,MAAM,KAAK,GAAG,CAAC,CAAC,aAAD,CAAC,cAAD,CAAC,GAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACrE,OAAO,KAAoB,CAAC;QAC9B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACrD,CAAC;IAGD,YAAY,CAAC,SAAsB;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAmB,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,qFAAqF,IAAI,CAAC,OAAO,GAAG,CACrG,CAAC;QACJ,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,iCAAiC,CACtE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;CACF;AA1FD,4BA0FC"}
@@ -0,0 +1,6 @@
1
+ import { EmailLog, EmailStatus } from './EmailLog';
2
+ export interface IEmailRepository {
3
+ listAll(): Promise<EmailLog[]>;
4
+ filterByStatus(status: EmailStatus): Promise<EmailLog[]>;
5
+ findByRecipient(recipient: string): Promise<EmailLog[]>;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IEmailRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IEmailRepository.js","sourceRoot":"","sources":["../../../src/interfaces/IEmailRepository.ts"],"names":[],"mappings":""}
@@ -1,3 +1,5 @@
1
1
  export { ILogTransactionOption } from './log-transaction-options.interface';
2
2
  export { IMailLog } from './mail-log.interface';
3
3
  export { ISendMailConfig } from './mail-config.interface';
4
+ export { EmailLog } from './EmailLog';
5
+ export { IEmailRepository } from './IEmailRepository';
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailLog = void 0;
4
+ var EmailLog_1 = require("./EmailLog");
5
+ Object.defineProperty(exports, "EmailLog", { enumerable: true, get: function () { return EmailLog_1.EmailLog; } });
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;AAGA,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA"}
@@ -26,6 +26,19 @@ class SMTPMailer extends mailer_base_1.MailerBase {
26
26
  const tlsOptions = config_1.ComponentConfig.getComponentConfigValue('@tomei/mailer', 'tlsOptions');
27
27
  const isMailerDebugEnabled = config_1.ComponentConfig.getComponentConfigValue('@tomei/mailer', 'isMailerDebugEnabled');
28
28
  const isMailerLogEnabled = config_1.ComponentConfig.getComponentConfigValue('@tomei/mailer', 'isMailerLogEnabled');
29
+ const testReceipientEmail = config_1.ComponentConfig.getComponentConfigValue('@tomei/mailer', 'testReceipientEmail');
30
+ const environment = config_1.ComponentConfig.getComponentConfigValue('@tomei/mailer', 'environment');
31
+ if (!host ||
32
+ !port ||
33
+ !user ||
34
+ !pass ||
35
+ !environment ||
36
+ !testReceipientEmail) {
37
+ throw new Error('Host, port, user, pass, environment, or test receipient email is not defined in the configuration.');
38
+ }
39
+ if (environment !== 'production') {
40
+ options.to = testReceipientEmail;
41
+ }
29
42
  const transportConfig = {
30
43
  host,
31
44
  port,
@@ -1 +1 @@
1
- {"version":3,"file":"smtp-mailer.js","sourceRoot":"","sources":["../../../src/mailer/smtp-mailer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAgD;AAChD,+CAA2C;AAC3C,yCAAyC;AA2FhC,gCAAU;AA3EnB,MAAa,UAAW,SAAQ,wBAAU;IAClC,QAAQ,CAAC,OAAwB;;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,MAAM,GAAG,wBAAe,CAAC,uBAAuB,CACpD,eAAe,EACf,QAAQ,CACT,CAAC;gBACF,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,UAAU,GAAG,wBAAe,CAAC,uBAAuB,CACxD,eAAe,EACf,YAAY,CACb,CAAC;gBACF,MAAM,oBAAoB,GAAG,wBAAe,CAAC,uBAAuB,CAClE,eAAe,EACf,sBAAsB,CACvB,CAAC;gBACF,MAAM,kBAAkB,GAAG,wBAAe,CAAC,uBAAuB,CAChE,eAAe,EACf,oBAAoB,CACrB,CAAC;gBAEF,MAAM,eAAe,GAAoB;oBACvC,IAAI;oBACJ,IAAI;oBACJ,MAAM;oBACN,IAAI,EAAE;wBACJ,IAAI;wBACJ,IAAI;qBACL;iBACF,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,eAAe,CAAC,GAAG,GAAG,UAAU,CAAC;gBACnC,CAAC;gBAED,IAAI,oBAAoB,EAAE,CAAC;oBACzB,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC/B,CAAC;gBAED,IAAI,kBAAkB,EAAE,CAAC;oBACvB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;gBAChC,CAAC;gBAED,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEhE,MAAM,WAAW,CAAC,QAAQ,CAAC;oBACzB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,oDAAoD,CAAC,CAAC;gBACzE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;CACF;AAzED,gCAyEC"}
1
+ {"version":3,"file":"smtp-mailer.js","sourceRoot":"","sources":["../../../src/mailer/smtp-mailer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAgD;AAChD,+CAA2C;AAC3C,yCAAyC;AAsHhC,gCAAU;AAtGnB,MAAa,UAAW,SAAQ,wBAAU;IAClC,QAAQ,CAAC,OAAwB;;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,MAAM,GAAG,wBAAe,CAAC,uBAAuB,CACpD,eAAe,EACf,QAAQ,CACT,CAAC;gBACF,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,IAAI,GAAG,wBAAe,CAAC,uBAAuB,CAClD,eAAe,EACf,MAAM,CACP,CAAC;gBACF,MAAM,UAAU,GAAG,wBAAe,CAAC,uBAAuB,CACxD,eAAe,EACf,YAAY,CACb,CAAC;gBACF,MAAM,oBAAoB,GAAG,wBAAe,CAAC,uBAAuB,CAClE,eAAe,EACf,sBAAsB,CACvB,CAAC;gBACF,MAAM,kBAAkB,GAAG,wBAAe,CAAC,uBAAuB,CAChE,eAAe,EACf,oBAAoB,CACrB,CAAC;gBAEF,MAAM,mBAAmB,GAAG,wBAAe,CAAC,uBAAuB,CACjE,eAAe,EACf,qBAAqB,CACtB,CAAC;gBAEF,MAAM,WAAW,GAAG,wBAAe,CAAC,uBAAuB,CACzD,eAAe,EACf,aAAa,CACd,CAAC;gBAEF,IACE,CAAC,IAAI;oBACL,CAAC,IAAI;oBACL,CAAC,IAAI;oBACL,CAAC,IAAI;oBACL,CAAC,WAAW;oBACZ,CAAC,mBAAmB,EACpB,CAAC;oBACD,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG,CAAC;gBACJ,CAAC;gBAED,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;oBACjC,OAAO,CAAC,EAAE,GAAG,mBAAmB,CAAC;gBACnC,CAAC;gBAED,MAAM,eAAe,GAAoB;oBACvC,IAAI;oBACJ,IAAI;oBACJ,MAAM;oBACN,IAAI,EAAE;wBACJ,IAAI;wBACJ,IAAI;qBACL;iBACF,CAAC;gBAEF,IAAI,UAAU,EAAE,CAAC;oBACf,eAAe,CAAC,GAAG,GAAG,UAAU,CAAC;gBACnC,CAAC;gBAED,IAAI,oBAAoB,EAAE,CAAC;oBACzB,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;gBAC/B,CAAC;gBAED,IAAI,kBAAkB,EAAE,CAAC;oBACvB,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC;gBAChC,CAAC;gBAED,MAAM,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEhE,MAAM,WAAW,CAAC,QAAQ,CAAC;oBACzB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,oDAAoD,CAAC,CAAC;gBACzE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;KAAA;CACF;AApGD,gCAoGC"}