@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.
- package/dist/src/interfaces/EmailLog.d.ts +39 -0
- package/dist/src/interfaces/EmailLog.js +51 -0
- package/dist/src/interfaces/EmailLog.js.map +1 -0
- package/dist/src/interfaces/IEmailRepository.d.ts +6 -0
- package/dist/src/interfaces/IEmailRepository.js +3 -0
- package/dist/src/interfaces/IEmailRepository.js.map +1 -0
- package/dist/src/interfaces/index.d.ts +2 -0
- package/dist/src/interfaces/index.js +3 -0
- package/dist/src/interfaces/index.js.map +1 -1
- package/dist/src/mailer/smtp-mailer.js +13 -0
- package/dist/src/mailer/smtp-mailer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/interfaces/EmailLog.ts +93 -0
- package/src/interfaces/IEmailRepository.ts +7 -0
- package/src/interfaces/index.ts +2 -0
- package/src/mailer/smtp-mailer.ts +27 -0
|
@@ -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 @@
|
|
|
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;
|
|
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"}
|