@tomei/mailer 0.4.0 → 0.5.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.
Files changed (67) hide show
  1. package/Jenkinsfile +6 -1
  2. package/__tests__/unit/mailer/mailer.spec.ts +182 -43
  3. package/dist/__tests__/unit/mailer/mailer.spec.js +162 -45
  4. package/dist/__tests__/unit/mailer/mailer.spec.js.map +1 -1
  5. package/dist/index.d.ts +0 -2
  6. package/dist/index.js +0 -3
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/enum/email-status.enum.d.ts +4 -0
  9. package/dist/src/enum/email-status.enum.js +9 -0
  10. package/dist/src/enum/email-status.enum.js.map +1 -0
  11. package/dist/src/enum/index.d.ts +1 -0
  12. package/dist/src/enum/index.js +6 -0
  13. package/dist/src/enum/index.js.map +1 -0
  14. package/dist/src/index.d.ts +3 -3
  15. package/dist/src/index.js +17 -4
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/interfaces/index.d.ts +3 -2
  18. package/dist/src/{mailer/dto/logOptions.d.ts → interfaces/log-transaction-options.interface.d.ts} +2 -2
  19. package/dist/src/interfaces/{mail-configuration.interface.js → log-transaction-options.interface.js} +1 -1
  20. package/dist/src/interfaces/log-transaction-options.interface.js.map +1 -0
  21. package/dist/src/interfaces/mail-config.interface.d.ts +8 -0
  22. package/dist/{interfaces/mail-configuration.interface.js → src/interfaces/mail-config.interface.js} +1 -1
  23. package/dist/src/interfaces/mail-config.interface.js.map +1 -0
  24. package/dist/src/interfaces/mail-log.interface.d.ts +11 -0
  25. package/dist/src/{mailer/dto/logOptions.js → interfaces/mail-log.interface.js} +1 -1
  26. package/dist/src/interfaces/mail-log.interface.js.map +1 -0
  27. package/dist/src/mailer/index.d.ts +2 -1
  28. package/dist/src/mailer/index.js +5 -15
  29. package/dist/src/mailer/index.js.map +1 -1
  30. package/dist/src/mailer/mailer.base.d.ts +9 -0
  31. package/dist/src/mailer/mailer.base.js +113 -0
  32. package/dist/src/mailer/mailer.base.js.map +1 -0
  33. package/dist/src/mailer/smtp-mailer.d.ts +7 -0
  34. package/dist/src/mailer/smtp-mailer.js +53 -0
  35. package/dist/src/mailer/smtp-mailer.js.map +1 -0
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/index.ts +1 -0
  38. package/package.json +9 -7
  39. package/src/enum/email-status.enum.ts +4 -0
  40. package/src/enum/index.ts +1 -0
  41. package/src/index.ts +3 -4
  42. package/src/interfaces/index.ts +3 -3
  43. package/src/{mailer/dto/logOptions.ts → interfaces/log-transaction-options.interface.ts} +18 -18
  44. package/src/interfaces/mail-config.interface.ts +8 -0
  45. package/src/interfaces/mail-log.interface.ts +12 -0
  46. package/src/mailer/index.ts +2 -1
  47. package/src/mailer/mailer.base.ts +110 -0
  48. package/src/mailer/smtp-mailer.ts +57 -0
  49. package/dist/interfaces/index.d.ts +0 -1
  50. package/dist/interfaces/index.js +0 -18
  51. package/dist/interfaces/index.js.map +0 -1
  52. package/dist/interfaces/mail-configuration.interface.d.ts +0 -9
  53. package/dist/interfaces/mail-configuration.interface.js.map +0 -1
  54. package/dist/mailer/index.d.ts +0 -1
  55. package/dist/mailer/index.js +0 -18
  56. package/dist/mailer/index.js.map +0 -1
  57. package/dist/mailer/mailer.d.ts +0 -8
  58. package/dist/mailer/mailer.js +0 -55
  59. package/dist/mailer/mailer.js.map +0 -1
  60. package/dist/src/interfaces/mail-configuration.interface.d.ts +0 -9
  61. package/dist/src/interfaces/mail-configuration.interface.js.map +0 -1
  62. package/dist/src/mailer/dto/logOptions.js.map +0 -1
  63. package/dist/src/mailer/mailer.d.ts +0 -11
  64. package/dist/src/mailer/mailer.js +0 -99
  65. package/dist/src/mailer/mailer.js.map +0 -1
  66. package/src/interfaces/mail-configuration.interface.ts +0 -9
  67. package/src/mailer/mailer.ts +0 -105
package/Jenkinsfile CHANGED
@@ -1,5 +1,10 @@
1
1
  pipeline {
2
- agent any
2
+ agent {
3
+ kubernetes {
4
+ label 'jenkins-agent'
5
+ namespace 'devops-tools'
6
+ }
7
+ }
3
8
  tools {nodejs "node18"}
4
9
  stages {
5
10
  stage('Install') {
@@ -1,52 +1,167 @@
1
- import Mailer from '../../../src/mailer/mailer';
1
+ import { EmailStatus, MailerBase, SMTPMailer } from '../../../src';
2
+ import { ComponentConfig } from '@tomei/config';
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ import { nodemailer } from '../../../src/mailer/smtp-mailer'
2
6
 
3
7
  describe('Mailer', () => {
4
- let mockMailerInstance: any;
5
- let mockSendMail: jest.Mock;
6
- let mailer: Mailer;
8
+ const mailer = new SMTPMailer();
9
+ const from = 'test@test.com';
10
+ const to = 'recipients@mail.com';
11
+ const subject = 'Test Subject';
12
+ const html = 'Test Message';
13
+ const expectedResult = {
14
+ from,
15
+ cc: '',
16
+ to: 'recipients@mail.com',
17
+ subject: 'test email',
18
+ html: '<div>{"systemCode":"SSO","apiUrl":"user/hello","transactionName":"add user","dbName":"Prod","tableName":"sso_users","dataBefore":"{\\"users\\":[]}","dataAfter":"{\\"users\\":[\\"budi\\",\\"rudi\\",\\"dido\\"]}","performAt":"2023-07-04T00:00:00.000Z","note":"test"}</div>',
19
+ };
7
20
 
8
- const from = process.env.EMAIL_SENDER;
21
+ afterEach(() => {
22
+ jest.clearAllMocks();
23
+ });
9
24
 
10
- beforeEach(() => {
11
- mockSendMail = jest.fn();
12
- mockMailerInstance = {
13
- sendMail: mockSendMail,
14
- configure: jest.fn(),
25
+ describe('log', () => {
26
+ const logData = {
27
+ duration: 1000,
28
+ from: from,
29
+ to: 'to@to.com',
30
+ cc: '',
31
+ subject: 'test email',
32
+ rawContent: 'test',
33
+ date: new Date(),
34
+ status: EmailStatus.Sent,
15
35
  };
16
- mailer = new Mailer(mockMailerInstance, {
17
- host: process.env.SMTP_HOST,
18
- port: Number(process.env.SMTP_PORT),
19
- secure: Number(process.env.SMTP_PORT) === 465,
20
- auth: {
21
- user: process.env.EMAIL_SENDER,
22
- pass: process.env.EMAIL_PASSWORD,
23
- },
36
+
37
+ it('should create new log folder if none exist', async () => {
38
+ jest.spyOn(fs, 'existsSync').mockReturnValueOnce(false);
39
+ jest.spyOn(fs, 'mkdirSync').mockReturnValueOnce(null);
40
+ jest.spyOn(fs, 'appendFileSync').mockReturnValueOnce(null);
41
+
42
+ MailerBase.log(logData);
43
+
44
+ expect(fs.existsSync).toHaveBeenCalledTimes(1);
45
+ expect(fs.existsSync).toHaveBeenCalledWith(
46
+ path.join(process.cwd(), 'mail-log'),
47
+ );
48
+ expect(fs.mkdirSync).toHaveBeenCalledTimes(1);
49
+ expect(fs.mkdirSync).toHaveBeenCalledWith(
50
+ path.join(process.cwd(), 'mail-log'),
51
+ );
52
+ expect(fs.appendFileSync).toHaveBeenCalledTimes(1);
53
+ });
54
+
55
+ it('should create new log file in existing log folder', async () => {
56
+ const existSyncMock = jest
57
+ .spyOn(fs, 'existsSync')
58
+ .mockReturnValueOnce(true);
59
+ jest.spyOn(fs, 'mkdirSync').mockReturnValueOnce(null);
60
+ jest.spyOn(fs, 'appendFileSync').mockReturnValueOnce(null);
61
+
62
+ MailerBase.log(logData);
63
+
64
+ expect(existSyncMock).toHaveBeenCalledTimes(1);
65
+ expect(fs.mkdirSync).toHaveBeenCalledTimes(0);
24
66
  });
25
67
  });
26
68
 
27
- afterEach(() => {
28
- jest.clearAllMocks();
69
+ describe('send', () => {
70
+ it('should send email successfully and create log transaction', async () => {
71
+ jest
72
+ .spyOn(ComponentConfig, 'getComponentConfigValue')
73
+ .mockImplementationOnce(() => true);
74
+ const sendMailMock = jest
75
+ .spyOn(mailer, 'sendMail')
76
+ .mockResolvedValueOnce();
77
+ const log = jest
78
+ .spyOn(MailerBase, 'log')
79
+ .mockImplementationOnce(() => Promise.resolve());
80
+
81
+ const options = {
82
+ from,
83
+ to,
84
+ subject,
85
+ html,
86
+ };
87
+
88
+ await mailer.send({
89
+ from: from,
90
+ to: to,
91
+ subject: subject,
92
+ html: html,
93
+ });
94
+
95
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
96
+ expect(sendMailMock).toHaveBeenCalledWith(options);
97
+ expect(log).toHaveBeenCalledTimes(1);
98
+ });
99
+
100
+ it('should send email successfully and not create log transaction', async () => {
101
+ jest
102
+ .spyOn(ComponentConfig, 'getComponentConfigValue')
103
+ .mockImplementationOnce(() => false);
104
+ const sendMailMock = jest
105
+ .spyOn(mailer, 'sendMail')
106
+ .mockResolvedValueOnce();
107
+ const log = jest
108
+ .spyOn(MailerBase, 'log')
109
+ .mockImplementationOnce(() => Promise.resolve());
110
+
111
+ const options = {
112
+ from,
113
+ to,
114
+ subject,
115
+ html,
116
+ };
117
+
118
+ await mailer.send({
119
+ from: from,
120
+ to: to,
121
+ subject: subject,
122
+ html: html,
123
+ });
124
+
125
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
126
+ expect(sendMailMock).toHaveBeenCalledWith(options);
127
+ expect(log).toHaveBeenCalledTimes(0);
128
+ });
29
129
  });
30
130
 
31
- it('should send email successfully', async () => {
32
- const to = 'recipients@mail.com';
33
- const subject = 'Test Subject';
34
- const html = 'Test Message';
131
+ describe('sendMail', () => {
35
132
 
36
- const options = {
37
- from,
38
- to,
39
- subject,
40
- html,
41
- };
133
+ it('should send email successfully', async () => {
134
+ const sendMailMock = jest.fn()
135
+
136
+ jest.spyOn(nodemailer, 'createTransport').mockReturnValueOnce({
137
+ sendMail: sendMailMock
138
+ } as any)
139
+
140
+ jest
141
+ .spyOn(ComponentConfig, 'getComponentConfigValue')
142
+ .mockImplementation((componentName, configKey) => {
143
+ if (componentName !== '@tomei/mailer') {
144
+ throw new Error('Invalid component name');
145
+ }
146
+
147
+ if (configKey == 'port') {
148
+ return 587;
149
+ } else if (configKey == 'secure') {
150
+ return true;
151
+ } else {
152
+ return 'smtp.gmail.com';
153
+ }
154
+ });
42
155
 
43
- await mailer.sendMail(options);
156
+ await mailer.sendMail(expectedResult);
44
157
 
45
- expect(mockSendMail).toHaveBeenCalledTimes(1);
46
- expect(mockSendMail).toHaveBeenCalledWith(options);
158
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
159
+ expect(sendMailMock).toHaveBeenCalledWith(expectedResult);
160
+ });
47
161
  });
48
162
 
49
- it('should send transactionLog successfully', async () => {
163
+
164
+ describe('logTransaction', () => {
50
165
  const before = { users: [] };
51
166
  const after = { users: ['budi', 'rudi', 'dido'] };
52
167
 
@@ -69,16 +184,40 @@ describe('Mailer', () => {
69
184
  },
70
185
  };
71
186
 
72
- await mailer.logTransaction(options);
187
+ it('should send transactionLog successfully', async () => {
188
+ const sendMailMock = jest
189
+ .spyOn(mailer, 'sendMail')
190
+ .mockResolvedValueOnce();
191
+ const log = jest
192
+ .spyOn(MailerBase, 'log')
193
+ .mockImplementationOnce(() => Promise.resolve());
73
194
 
74
- const expectedResult = {
75
- from,
76
- to: 'recipients@mail.com',
77
- subject: 'test email',
78
- html: '<div>{"systemCode":"SSO","apiUrl":"user/hello","transactionName":"add user","dbName":"Prod","tableName":"sso_users","dataBefore":"{\\"users\\":[]}","dataAfter":"{\\"users\\":[\\"budi\\",\\"rudi\\",\\"dido\\"]}","performAt":"2023-07-04T00:00:00.000Z","note":"test"}</div>',
79
- };
195
+ await mailer.logTransaction(options);
196
+
197
+ const expectedResult = {
198
+ from,
199
+ cc: '',
200
+ to: 'recipients@mail.com',
201
+ subject: 'test email',
202
+ html: '<div>{"systemCode":"SSO","apiUrl":"user/hello","transactionName":"add user","dbName":"Prod","tableName":"sso_users","dataBefore":"{\\"users\\":[]}","dataAfter":"{\\"users\\":[\\"budi\\",\\"rudi\\",\\"dido\\"]}","performAt":"2023-07-04T00:00:00.000Z","note":"test"}</div>',
203
+ };
204
+
205
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
206
+ expect(sendMailMock).toHaveBeenCalledWith(expectedResult);
207
+ expect(log).toBeCalledTimes(1);
208
+ });
80
209
 
81
- expect(mockSendMail).toHaveBeenCalledTimes(1);
82
- expect(mockSendMail).toHaveBeenCalledWith(expectedResult);
210
+ it('should retry send when the first one failed', async () => {
211
+ const sendMailMock = jest
212
+ .spyOn(mailer, 'sendMail')
213
+ .mockRejectedValue(new Error('error'));
214
+ const log = jest
215
+ .spyOn(MailerBase, 'log')
216
+ .mockImplementationOnce(() => Promise.resolve());
217
+
218
+ await mailer.logTransaction(options);
219
+ expect(sendMailMock).toHaveBeenCalledTimes(2);
220
+ expect(log).toBeCalledTimes(1);
221
+ });
83
222
  });
84
223
  });
@@ -9,46 +9,142 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const mailer_1 = require("../../../src/mailer/mailer");
12
+ const src_1 = require("../../../src");
13
+ const config_1 = require("@tomei/config");
14
+ const fs = require("fs");
15
+ const path = require("path");
16
+ const smtp_mailer_1 = require("../../../src/mailer/smtp-mailer");
13
17
  describe('Mailer', () => {
14
- let mockMailerInstance;
15
- let mockSendMail;
16
- let mailer;
17
- const from = process.env.EMAIL_SENDER;
18
- beforeEach(() => {
19
- mockSendMail = jest.fn();
20
- mockMailerInstance = {
21
- sendMail: mockSendMail,
22
- configure: jest.fn(),
23
- };
24
- mailer = new mailer_1.default(mockMailerInstance, {
25
- host: process.env.SMTP_HOST,
26
- port: Number(process.env.SMTP_PORT),
27
- secure: Number(process.env.SMTP_PORT) === 465,
28
- auth: {
29
- user: process.env.EMAIL_SENDER,
30
- pass: process.env.EMAIL_PASSWORD,
31
- },
32
- });
33
- });
18
+ const mailer = new src_1.SMTPMailer();
19
+ const from = 'test@test.com';
20
+ const to = 'recipients@mail.com';
21
+ const subject = 'Test Subject';
22
+ const html = 'Test Message';
23
+ const expectedResult = {
24
+ from,
25
+ cc: '',
26
+ to: 'recipients@mail.com',
27
+ subject: 'test email',
28
+ html: '<div>{"systemCode":"SSO","apiUrl":"user/hello","transactionName":"add user","dbName":"Prod","tableName":"sso_users","dataBefore":"{\\"users\\":[]}","dataAfter":"{\\"users\\":[\\"budi\\",\\"rudi\\",\\"dido\\"]}","performAt":"2023-07-04T00:00:00.000Z","note":"test"}</div>',
29
+ };
34
30
  afterEach(() => {
35
31
  jest.clearAllMocks();
36
32
  });
37
- it('should send email successfully', () => __awaiter(void 0, void 0, void 0, function* () {
38
- const to = 'recipients@mail.com';
39
- const subject = 'Test Subject';
40
- const html = 'Test Message';
41
- const options = {
42
- from,
43
- to,
44
- subject,
45
- html,
33
+ describe('log', () => {
34
+ const logData = {
35
+ duration: 1000,
36
+ from: from,
37
+ to: 'to@to.com',
38
+ cc: '',
39
+ subject: 'test email',
40
+ rawContent: 'test',
41
+ date: new Date(),
42
+ status: src_1.EmailStatus.Sent,
46
43
  };
47
- yield mailer.sendMail(options);
48
- expect(mockSendMail).toHaveBeenCalledTimes(1);
49
- expect(mockSendMail).toHaveBeenCalledWith(options);
50
- }));
51
- it('should send transactionLog successfully', () => __awaiter(void 0, void 0, void 0, function* () {
44
+ it('should create new log folder if none exist', () => __awaiter(void 0, void 0, void 0, function* () {
45
+ jest.spyOn(fs, 'existsSync').mockReturnValueOnce(false);
46
+ jest.spyOn(fs, 'mkdirSync').mockReturnValueOnce(null);
47
+ jest.spyOn(fs, 'appendFileSync').mockReturnValueOnce(null);
48
+ src_1.MailerBase.log(logData);
49
+ expect(fs.existsSync).toHaveBeenCalledTimes(1);
50
+ expect(fs.existsSync).toHaveBeenCalledWith(path.join(process.cwd(), 'mail-log'));
51
+ expect(fs.mkdirSync).toHaveBeenCalledTimes(1);
52
+ expect(fs.mkdirSync).toHaveBeenCalledWith(path.join(process.cwd(), 'mail-log'));
53
+ expect(fs.appendFileSync).toHaveBeenCalledTimes(1);
54
+ }));
55
+ it('should create new log file in existing log folder', () => __awaiter(void 0, void 0, void 0, function* () {
56
+ const existSyncMock = jest
57
+ .spyOn(fs, 'existsSync')
58
+ .mockReturnValueOnce(true);
59
+ jest.spyOn(fs, 'mkdirSync').mockReturnValueOnce(null);
60
+ jest.spyOn(fs, 'appendFileSync').mockReturnValueOnce(null);
61
+ src_1.MailerBase.log(logData);
62
+ expect(existSyncMock).toHaveBeenCalledTimes(1);
63
+ expect(fs.mkdirSync).toHaveBeenCalledTimes(0);
64
+ }));
65
+ });
66
+ describe('send', () => {
67
+ it('should send email successfully and create log transaction', () => __awaiter(void 0, void 0, void 0, function* () {
68
+ jest
69
+ .spyOn(config_1.ComponentConfig, 'getComponentConfigValue')
70
+ .mockImplementationOnce(() => true);
71
+ const sendMailMock = jest
72
+ .spyOn(mailer, 'sendMail')
73
+ .mockResolvedValueOnce();
74
+ const log = jest
75
+ .spyOn(src_1.MailerBase, 'log')
76
+ .mockImplementationOnce(() => Promise.resolve());
77
+ const options = {
78
+ from,
79
+ to,
80
+ subject,
81
+ html,
82
+ };
83
+ yield mailer.send({
84
+ from: from,
85
+ to: to,
86
+ subject: subject,
87
+ html: html,
88
+ });
89
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
90
+ expect(sendMailMock).toHaveBeenCalledWith(options);
91
+ expect(log).toHaveBeenCalledTimes(1);
92
+ }));
93
+ it('should send email successfully and not create log transaction', () => __awaiter(void 0, void 0, void 0, function* () {
94
+ jest
95
+ .spyOn(config_1.ComponentConfig, 'getComponentConfigValue')
96
+ .mockImplementationOnce(() => false);
97
+ const sendMailMock = jest
98
+ .spyOn(mailer, 'sendMail')
99
+ .mockResolvedValueOnce();
100
+ const log = jest
101
+ .spyOn(src_1.MailerBase, 'log')
102
+ .mockImplementationOnce(() => Promise.resolve());
103
+ const options = {
104
+ from,
105
+ to,
106
+ subject,
107
+ html,
108
+ };
109
+ yield mailer.send({
110
+ from: from,
111
+ to: to,
112
+ subject: subject,
113
+ html: html,
114
+ });
115
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
116
+ expect(sendMailMock).toHaveBeenCalledWith(options);
117
+ expect(log).toHaveBeenCalledTimes(0);
118
+ }));
119
+ });
120
+ describe('sendMail', () => {
121
+ it('should send email successfully', () => __awaiter(void 0, void 0, void 0, function* () {
122
+ const sendMailMock = jest.fn();
123
+ jest.spyOn(smtp_mailer_1.nodemailer, 'createTransport').mockReturnValueOnce({
124
+ sendMail: sendMailMock
125
+ });
126
+ jest
127
+ .spyOn(config_1.ComponentConfig, 'getComponentConfigValue')
128
+ .mockImplementation((componentName, configKey) => {
129
+ if (componentName !== '@tomei/mailer') {
130
+ throw new Error('Invalid component name');
131
+ }
132
+ if (configKey == 'port') {
133
+ return 587;
134
+ }
135
+ else if (configKey == 'secure') {
136
+ return true;
137
+ }
138
+ else {
139
+ return 'smtp.gmail.com';
140
+ }
141
+ });
142
+ yield mailer.sendMail(expectedResult);
143
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
144
+ expect(sendMailMock).toHaveBeenCalledWith(expectedResult);
145
+ }));
146
+ });
147
+ describe('logTransaction', () => {
52
148
  const before = { users: [] };
53
149
  const after = { users: ['budi', 'rudi', 'dido'] };
54
150
  const options = {
@@ -69,15 +165,36 @@ describe('Mailer', () => {
69
165
  note: 'test',
70
166
  },
71
167
  };
72
- yield mailer.logTransaction(options);
73
- const expectedResult = {
74
- from,
75
- to: 'recipients@mail.com',
76
- subject: 'test email',
77
- html: '<div>{"systemCode":"SSO","apiUrl":"user/hello","transactionName":"add user","dbName":"Prod","tableName":"sso_users","dataBefore":"{\\"users\\":[]}","dataAfter":"{\\"users\\":[\\"budi\\",\\"rudi\\",\\"dido\\"]}","performAt":"2023-07-04T00:00:00.000Z","note":"test"}</div>',
78
- };
79
- expect(mockSendMail).toHaveBeenCalledTimes(1);
80
- expect(mockSendMail).toHaveBeenCalledWith(expectedResult);
81
- }));
168
+ it('should send transactionLog successfully', () => __awaiter(void 0, void 0, void 0, function* () {
169
+ const sendMailMock = jest
170
+ .spyOn(mailer, 'sendMail')
171
+ .mockResolvedValueOnce();
172
+ const log = jest
173
+ .spyOn(src_1.MailerBase, 'log')
174
+ .mockImplementationOnce(() => Promise.resolve());
175
+ yield mailer.logTransaction(options);
176
+ const expectedResult = {
177
+ from,
178
+ cc: '',
179
+ to: 'recipients@mail.com',
180
+ subject: 'test email',
181
+ html: '<div>{"systemCode":"SSO","apiUrl":"user/hello","transactionName":"add user","dbName":"Prod","tableName":"sso_users","dataBefore":"{\\"users\\":[]}","dataAfter":"{\\"users\\":[\\"budi\\",\\"rudi\\",\\"dido\\"]}","performAt":"2023-07-04T00:00:00.000Z","note":"test"}</div>',
182
+ };
183
+ expect(sendMailMock).toHaveBeenCalledTimes(1);
184
+ expect(sendMailMock).toHaveBeenCalledWith(expectedResult);
185
+ expect(log).toBeCalledTimes(1);
186
+ }));
187
+ it('should retry send when the first one failed', () => __awaiter(void 0, void 0, void 0, function* () {
188
+ const sendMailMock = jest
189
+ .spyOn(mailer, 'sendMail')
190
+ .mockRejectedValue(new Error('error'));
191
+ const log = jest
192
+ .spyOn(src_1.MailerBase, 'log')
193
+ .mockImplementationOnce(() => Promise.resolve());
194
+ yield mailer.logTransaction(options);
195
+ expect(sendMailMock).toHaveBeenCalledTimes(2);
196
+ expect(log).toBeCalledTimes(1);
197
+ }));
198
+ });
82
199
  });
83
200
  //# sourceMappingURL=mailer.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mailer.spec.js","sourceRoot":"","sources":["../../../../__tests__/unit/mailer/mailer.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAgD;AAEhD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,kBAAuB,CAAC;IAC5B,IAAI,YAAuB,CAAC;IAC5B,IAAI,MAAc,CAAC;IAEnB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IAEtC,UAAU,CAAC,GAAG,EAAE;QACd,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,kBAAkB,GAAG;YACnB,QAAQ,EAAE,YAAY;YACtB,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE;SACrB,CAAC;QACF,MAAM,GAAG,IAAI,gBAAM,CAAC,kBAAkB,EAAE;YACtC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;YAC3B,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG;YAC7C,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;gBAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;aACjC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAS,EAAE;QAC9C,MAAM,EAAE,GAAG,qBAAqB,CAAC;QACjC,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,IAAI,GAAG,cAAc,CAAC;QAE5B,MAAM,OAAO,GAAG;YACd,IAAI;YACJ,EAAE;YACF,OAAO;YACP,IAAI;SACL,CAAC;QAEF,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAS,EAAE;QACvD,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAElD,MAAM,OAAO,GAAG;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,qBAAqB;gBACzB,OAAO,EAAE,YAAY;aACtB;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,YAAY;gBACpB,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAClC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAChC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACjC,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAEF,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAErC,MAAM,cAAc,GAAG;YACrB,IAAI;YACJ,EAAE,EAAE,qBAAqB;YACzB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,gRAAgR;SACvR,CAAC;QAEF,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"mailer.spec.js","sourceRoot":"","sources":["../../../../__tests__/unit/mailer/mailer.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAmE;AACnE,0CAAgD;AAChD,yBAAyB;AACzB,6BAA6B;AAC7B,iEAA4D;AAE5D,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,MAAM,MAAM,GAAG,IAAI,gBAAU,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,eAAe,CAAC;IAC7B,MAAM,EAAE,GAAG,qBAAqB,CAAC;IACjC,MAAM,OAAO,GAAG,cAAc,CAAC;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC;IAC5B,MAAM,cAAc,GAAG;QACrB,IAAI;QACJ,EAAE,EAAE,EAAE;QACN,EAAE,EAAE,qBAAqB;QACzB,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,gRAAgR;KACvR,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,MAAM,OAAO,GAAG;YACd,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,IAAI;YACV,EAAE,EAAE,WAAW;YACf,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,MAAM;YAClB,IAAI,EAAE,IAAI,IAAI,EAAE;YAChB,MAAM,EAAE,iBAAW,CAAC,IAAI;SACzB,CAAC;QAEF,EAAE,CAAC,4CAA4C,EAAE,GAAS,EAAE;YAC1D,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE3D,gBAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExB,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CACrC,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CACrC,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrD,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAS,EAAE;YACjE,MAAM,aAAa,GAAG,IAAI;iBACvB,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC;iBACvB,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAE3D,gBAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExB,MAAM,CAAC,aAAa,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC/C,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,2DAA2D,EAAE,GAAS,EAAE;YACzE,IAAI;iBACD,KAAK,CAAC,wBAAe,EAAE,yBAAyB,CAAC;iBACjD,sBAAsB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,IAAI;iBACtB,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;iBACzB,qBAAqB,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI;iBACb,KAAK,CAAC,gBAAU,EAAE,KAAK,CAAC;iBACxB,sBAAsB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG;gBACd,IAAI;gBACJ,EAAE;gBACF,OAAO;gBACP,IAAI;aACL,CAAC;YAEF,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAS,EAAE;YAC7E,IAAI;iBACD,KAAK,CAAC,wBAAe,EAAE,yBAAyB,CAAC;iBACjD,sBAAsB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,IAAI;iBACtB,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;iBACzB,qBAAqB,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI;iBACb,KAAK,CAAC,gBAAU,EAAE,KAAK,CAAC;iBACxB,sBAAsB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnD,MAAM,OAAO,GAAG;gBACd,IAAI;gBACJ,EAAE;gBACF,OAAO;gBACP,IAAI;aACL,CAAC;YAEF,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,EAAE;gBACN,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,IAAI;aACX,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QAExB,EAAE,CAAC,gCAAgC,EAAE,GAAS,EAAE;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;YAE9B,IAAI,CAAC,KAAK,CAAC,wBAAU,EAAE,iBAAiB,CAAC,CAAC,mBAAmB,CAAC;gBAC5D,QAAQ,EAAE,YAAY;aAChB,CAAC,CAAA;YAET,IAAI;iBACD,KAAK,CAAC,wBAAe,EAAE,yBAAyB,CAAC;iBACjD,kBAAkB,CAAC,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE;gBAC/C,IAAI,aAAa,KAAK,eAAe,EAAE;oBACrC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;iBAC3C;gBAED,IAAI,SAAS,IAAI,MAAM,EAAE;oBACvB,OAAO,GAAG,CAAC;iBACZ;qBAAM,IAAI,SAAS,IAAI,QAAQ,EAAE;oBAChC,OAAO,IAAI,CAAC;iBACb;qBAAM;oBACL,OAAO,gBAAgB,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;YAEL,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YAEtC,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;QAC5D,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAGH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QAElD,MAAM,OAAO,GAAG;YACd,OAAO,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,EAAE,EAAE,qBAAqB;gBACzB,OAAO,EAAE,YAAY;aACtB;YACD,OAAO,EAAE;gBACP,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,YAAY;gBACpB,eAAe,EAAE,UAAU;gBAC3B,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;gBAClC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBAChC,SAAS,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACjC,IAAI,EAAE,MAAM;aACb;SACF,CAAC;QAEF,EAAE,CAAC,yCAAyC,EAAE,GAAS,EAAE;YACvD,MAAM,YAAY,GAAG,IAAI;iBACtB,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;iBACzB,qBAAqB,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,IAAI;iBACb,KAAK,CAAC,gBAAU,EAAE,KAAK,CAAC;iBACxB,sBAAsB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnD,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAErC,MAAM,cAAc,GAAG;gBACrB,IAAI;gBACJ,EAAE,EAAE,EAAE;gBACN,EAAE,EAAE,qBAAqB;gBACzB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,gRAAgR;aACvR,CAAC;YAEF,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC;YAC1D,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAA,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAS,EAAE;YAC3D,MAAM,YAAY,GAAG,IAAI;iBACtB,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC;iBACzB,iBAAiB,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI;iBACb,KAAK,CAAC,gBAAU,EAAE,KAAK,CAAC;iBACxB,sBAAsB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAEnD,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAA,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1 @@
1
- import Mailer from './src/mailer/mailer';
2
1
  export * from './src';
3
- export { Mailer };
package/dist/index.js CHANGED
@@ -14,8 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Mailer = void 0;
18
- const mailer_1 = require("./src/mailer/mailer");
19
- exports.Mailer = mailer_1.default;
20
17
  __exportStar(require("./src"), exports);
21
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAAyC;AAGhC,iBAHF,gBAAM,CAGE;AADf,wCAAsB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB"}
@@ -0,0 +1,4 @@
1
+ export declare enum EmailStatus {
2
+ Sent = "Sent",
3
+ Failed = "Failed"
4
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailStatus = void 0;
4
+ var EmailStatus;
5
+ (function (EmailStatus) {
6
+ EmailStatus["Sent"] = "Sent";
7
+ EmailStatus["Failed"] = "Failed";
8
+ })(EmailStatus || (exports.EmailStatus = EmailStatus = {}));
9
+ //# sourceMappingURL=email-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-status.enum.js","sourceRoot":"","sources":["../../../src/enum/email-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,gCAAiB,CAAA;AACnB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -0,0 +1 @@
1
+ export { EmailStatus } from './email-status.enum';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EmailStatus = void 0;
4
+ var email_status_enum_1 = require("./email-status.enum");
5
+ Object.defineProperty(exports, "EmailStatus", { enumerable: true, get: function () { return email_status_enum_1.EmailStatus; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enum/index.ts"],"names":[],"mappings":";;;AAAA,yDAAkD;AAAzC,gHAAA,WAAW,OAAA"}
@@ -1,3 +1,3 @@
1
- import Mailer from './mailer/mailer';
2
- export { Mailer };
3
- export * as MailerInterfaces from './interfaces';
1
+ export * from './enum';
2
+ export * from './mailer';
3
+ export * from './interfaces';
package/dist/src/index.js CHANGED
@@ -1,7 +1,20 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MailerInterfaces = exports.Mailer = void 0;
4
- const mailer_1 = require("./mailer/mailer");
5
- exports.Mailer = mailer_1.default;
6
- exports.MailerInterfaces = require("./interfaces");
17
+ __exportStar(require("./enum"), exports);
18
+ __exportStar(require("./mailer"), exports);
19
+ __exportStar(require("./interfaces"), exports);
7
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,4CAAqC;AAE5B,iBAFF,gBAAM,CAEE;AACf,mDAAiD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,+CAA6B"}
@@ -1,2 +1,3 @@
1
- import { MailConfig } from './mail-configuration.interface';
2
- export { MailConfig };
1
+ export { ILogTransactionOption } from './log-transaction-options.interface';
2
+ export { IMailLog } from './mail-log.interface';
3
+ export { ISendMailConfig } from './mail-config.interface';
@@ -1,4 +1,4 @@
1
- export type logOptions = {
1
+ export interface ILogTransactionOption {
2
2
  options: {
3
3
  from: string;
4
4
  to: string;
@@ -15,4 +15,4 @@ export type logOptions = {
15
15
  performAt: Date;
16
16
  note: string;
17
17
  };
18
- };
18
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=mail-configuration.interface.js.map
3
+ //# sourceMappingURL=log-transaction-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-transaction-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/log-transaction-options.interface.ts"],"names":[],"mappings":""}