@arikajs/mail 0.0.1

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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +290 -0
  3. package/dist/Contracts/Transport.d.ts +4 -0
  4. package/dist/Contracts/Transport.d.ts.map +1 -0
  5. package/dist/Contracts/Transport.js +3 -0
  6. package/dist/Contracts/Transport.js.map +1 -0
  7. package/dist/MailManager.d.ts +13 -0
  8. package/dist/MailManager.d.ts.map +1 -0
  9. package/dist/MailManager.js +69 -0
  10. package/dist/MailManager.js.map +1 -0
  11. package/dist/Mailable.d.ts +21 -0
  12. package/dist/Mailable.d.ts.map +1 -0
  13. package/dist/Mailable.js +32 -0
  14. package/dist/Mailable.js.map +1 -0
  15. package/dist/Mailer.d.ts +31 -0
  16. package/dist/Mailer.d.ts.map +1 -0
  17. package/dist/Mailer.js +89 -0
  18. package/dist/Mailer.js.map +1 -0
  19. package/dist/Message.d.ts +45 -0
  20. package/dist/Message.d.ts.map +1 -0
  21. package/dist/Message.js +77 -0
  22. package/dist/Message.js.map +1 -0
  23. package/dist/Transport/ArrayTransport.d.ts +14 -0
  24. package/dist/Transport/ArrayTransport.d.ts.map +1 -0
  25. package/dist/Transport/ArrayTransport.js +25 -0
  26. package/dist/Transport/ArrayTransport.js.map +1 -0
  27. package/dist/Transport/LogTransport.d.ts +5 -0
  28. package/dist/Transport/LogTransport.d.ts.map +1 -0
  29. package/dist/Transport/LogTransport.js +12 -0
  30. package/dist/Transport/LogTransport.js.map +1 -0
  31. package/dist/Transport/MailgunTransport.d.ts +8 -0
  32. package/dist/Transport/MailgunTransport.d.ts.map +1 -0
  33. package/dist/Transport/MailgunTransport.js +24 -0
  34. package/dist/Transport/MailgunTransport.js.map +1 -0
  35. package/dist/Transport/SendGridTransport.d.ts +8 -0
  36. package/dist/Transport/SendGridTransport.d.ts.map +1 -0
  37. package/dist/Transport/SendGridTransport.js +22 -0
  38. package/dist/Transport/SendGridTransport.js.map +1 -0
  39. package/dist/Transport/SesTransport.d.ts +8 -0
  40. package/dist/Transport/SesTransport.d.ts.map +1 -0
  41. package/dist/Transport/SesTransport.js +28 -0
  42. package/dist/Transport/SesTransport.js.map +1 -0
  43. package/dist/Transport/SmtpTransport.d.ts +8 -0
  44. package/dist/Transport/SmtpTransport.d.ts.map +1 -0
  45. package/dist/Transport/SmtpTransport.js +30 -0
  46. package/dist/Transport/SmtpTransport.js.map +1 -0
  47. package/dist/index.d.ts +17 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +46 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/src/Contracts/Transport.d.ts +4 -0
  52. package/dist/src/Contracts/Transport.d.ts.map +1 -0
  53. package/dist/src/Contracts/Transport.js +3 -0
  54. package/dist/src/Contracts/Transport.js.map +1 -0
  55. package/dist/src/MailManager.d.ts +13 -0
  56. package/dist/src/MailManager.d.ts.map +1 -0
  57. package/dist/src/MailManager.js +69 -0
  58. package/dist/src/MailManager.js.map +1 -0
  59. package/dist/src/Mailable.d.ts +21 -0
  60. package/dist/src/Mailable.d.ts.map +1 -0
  61. package/dist/src/Mailable.js +32 -0
  62. package/dist/src/Mailable.js.map +1 -0
  63. package/dist/src/Mailer.d.ts +31 -0
  64. package/dist/src/Mailer.d.ts.map +1 -0
  65. package/dist/src/Mailer.js +89 -0
  66. package/dist/src/Mailer.js.map +1 -0
  67. package/dist/src/Message.d.ts +45 -0
  68. package/dist/src/Message.d.ts.map +1 -0
  69. package/dist/src/Message.js +77 -0
  70. package/dist/src/Message.js.map +1 -0
  71. package/dist/src/Transport/ArrayTransport.d.ts +14 -0
  72. package/dist/src/Transport/ArrayTransport.d.ts.map +1 -0
  73. package/dist/src/Transport/ArrayTransport.js +25 -0
  74. package/dist/src/Transport/ArrayTransport.js.map +1 -0
  75. package/dist/src/Transport/LogTransport.d.ts +5 -0
  76. package/dist/src/Transport/LogTransport.d.ts.map +1 -0
  77. package/dist/src/Transport/LogTransport.js +12 -0
  78. package/dist/src/Transport/LogTransport.js.map +1 -0
  79. package/dist/src/Transport/MailgunTransport.d.ts +8 -0
  80. package/dist/src/Transport/MailgunTransport.d.ts.map +1 -0
  81. package/dist/src/Transport/MailgunTransport.js +24 -0
  82. package/dist/src/Transport/MailgunTransport.js.map +1 -0
  83. package/dist/src/Transport/SendGridTransport.d.ts +8 -0
  84. package/dist/src/Transport/SendGridTransport.d.ts.map +1 -0
  85. package/dist/src/Transport/SendGridTransport.js +22 -0
  86. package/dist/src/Transport/SendGridTransport.js.map +1 -0
  87. package/dist/src/Transport/SesTransport.d.ts +8 -0
  88. package/dist/src/Transport/SesTransport.d.ts.map +1 -0
  89. package/dist/src/Transport/SesTransport.js +28 -0
  90. package/dist/src/Transport/SesTransport.js.map +1 -0
  91. package/dist/src/Transport/SmtpTransport.d.ts +8 -0
  92. package/dist/src/Transport/SmtpTransport.d.ts.map +1 -0
  93. package/dist/src/Transport/SmtpTransport.js +30 -0
  94. package/dist/src/Transport/SmtpTransport.js.map +1 -0
  95. package/dist/src/index.d.ts +17 -0
  96. package/dist/src/index.d.ts.map +1 -0
  97. package/dist/src/index.js +46 -0
  98. package/dist/src/index.js.map +1 -0
  99. package/dist/tests/Mail.test.d.ts +2 -0
  100. package/dist/tests/Mail.test.d.ts.map +1 -0
  101. package/dist/tests/Mail.test.js +43 -0
  102. package/dist/tests/Mail.test.js.map +1 -0
  103. package/dist/tests/TransportResolution.test.d.ts +2 -0
  104. package/dist/tests/TransportResolution.test.d.ts.map +1 -0
  105. package/dist/tests/TransportResolution.test.js +52 -0
  106. package/dist/tests/TransportResolution.test.js.map +1 -0
  107. package/package.json +52 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PendingMail = exports.Mailer = void 0;
4
+ const Message_1 = require("./Message");
5
+ class Mailer {
6
+ constructor(name, transport, viewRenderer) {
7
+ this.name = name;
8
+ this.transport = transport;
9
+ this.viewRenderer = viewRenderer;
10
+ }
11
+ to(users) {
12
+ return new PendingMail(this).to(users);
13
+ }
14
+ async send(viewPath, data, callback) {
15
+ const message = new Message_1.Message();
16
+ callback(message);
17
+ if (viewPath && this.viewRenderer) {
18
+ const html = await this.viewRenderer.render(viewPath, data);
19
+ message.htmlContent(html);
20
+ }
21
+ return this.transport.send(message.getPayload());
22
+ }
23
+ async sendMailable(mailable) {
24
+ return this.sendRaw(mailable);
25
+ }
26
+ async sendRaw(message) {
27
+ return this.transport.send(message);
28
+ }
29
+ getRenderer() {
30
+ return this.viewRenderer;
31
+ }
32
+ }
33
+ exports.Mailer = Mailer;
34
+ class PendingMail {
35
+ constructor(mailer) {
36
+ this.mailer = mailer;
37
+ this.viewData = {};
38
+ this.message = new Message_1.Message();
39
+ }
40
+ to(users) {
41
+ this.message.to(users);
42
+ return this;
43
+ }
44
+ subject(subject) {
45
+ this.message.subject(subject);
46
+ return this;
47
+ }
48
+ text(content) {
49
+ this.message.textContent(content);
50
+ return this;
51
+ }
52
+ view(path, data = {}) {
53
+ this.viewPath = path;
54
+ this.viewData = data;
55
+ return this;
56
+ }
57
+ attach(path) {
58
+ this.message.attach({ path });
59
+ return this;
60
+ }
61
+ async send(mailable) {
62
+ if (mailable) {
63
+ mailable.build();
64
+ if (mailable.subjectLine)
65
+ this.message.subject(mailable.subjectLine);
66
+ if (mailable.fromAddress)
67
+ this.message.from(mailable.fromAddress);
68
+ if (mailable.textContent)
69
+ this.message.textContent(mailable.textContent);
70
+ if (mailable.viewPath) {
71
+ this.viewPath = mailable.viewPath;
72
+ this.viewData = mailable.viewData;
73
+ }
74
+ if (mailable.attachments) {
75
+ mailable.attachments.forEach(att => this.message.attach(att));
76
+ }
77
+ }
78
+ if (this.viewPath) {
79
+ const renderer = this.mailer.getRenderer();
80
+ if (renderer) {
81
+ const html = await renderer.render(this.viewPath, this.viewData);
82
+ this.message.htmlContent(html);
83
+ }
84
+ }
85
+ return this.mailer.sendRaw(this.message.getPayload());
86
+ }
87
+ }
88
+ exports.PendingMail = PendingMail;
89
+ //# sourceMappingURL=Mailer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mailer.js","sourceRoot":"","sources":["../../src/Mailer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ export interface Attachment {
2
+ filename?: string;
3
+ path?: string;
4
+ content?: string | Buffer;
5
+ contentType?: string;
6
+ cid?: string;
7
+ encoding?: string;
8
+ }
9
+ export interface Address {
10
+ name: string;
11
+ address: string;
12
+ }
13
+ export declare class Message {
14
+ protected _to: (string | Address)[];
15
+ protected _cc: (string | Address)[];
16
+ protected _bcc: (string | Address)[];
17
+ protected _from?: string | Address;
18
+ protected _replyTo?: string | Address;
19
+ protected _subject?: string;
20
+ protected _text?: string;
21
+ protected _html?: string;
22
+ protected _attachments: Attachment[];
23
+ constructor();
24
+ to(address: string | Address | (string | Address)[]): this;
25
+ cc(address: string | Address | (string | Address)[]): this;
26
+ bcc(address: string | Address | (string | Address)[]): this;
27
+ from(address: string | Address): this;
28
+ replyTo(address: string | Address): this;
29
+ subject(subject: string): this;
30
+ textContent(content: string): this;
31
+ htmlContent(content: string): this;
32
+ attach(attachment: Attachment): this;
33
+ getPayload(): {
34
+ to: (string | Address)[];
35
+ cc: (string | Address)[];
36
+ bcc: (string | Address)[];
37
+ from: string | Address | undefined;
38
+ replyTo: string | Address | undefined;
39
+ subject: string | undefined;
40
+ text: string | undefined;
41
+ html: string | undefined;
42
+ attachments: Attachment[];
43
+ };
44
+ }
45
+ //# sourceMappingURL=Message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../src/Message.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,UAAU;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,OAAO;IAChB,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAM;IACzC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAM;IACzC,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE,CAAM;IAC1C,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACtC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,YAAY,EAAE,UAAU,EAAE,CAAM;;IAI1C,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;IASnD,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;IASnD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,CAAC,MAAM,GAAG,OAAO,CAAC,EAAE;IASpD,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAK9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKjC,OAAO,CAAC,OAAO,EAAE,MAAM;IAKvB,WAAW,CAAC,OAAO,EAAE,MAAM;IAK3B,WAAW,CAAC,OAAO,EAAE,MAAM;IAK3B,MAAM,CAAC,UAAU,EAAE,UAAU;IAK7B,UAAU;;;;;;;;;;;CAab"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Message = void 0;
4
+ class Message {
5
+ constructor() {
6
+ this._to = [];
7
+ this._cc = [];
8
+ this._bcc = [];
9
+ this._attachments = [];
10
+ }
11
+ to(address) {
12
+ if (Array.isArray(address)) {
13
+ this._to = this._to.concat(address);
14
+ }
15
+ else {
16
+ this._to.push(address);
17
+ }
18
+ return this;
19
+ }
20
+ cc(address) {
21
+ if (Array.isArray(address)) {
22
+ this._cc = this._cc.concat(address);
23
+ }
24
+ else {
25
+ this._cc.push(address);
26
+ }
27
+ return this;
28
+ }
29
+ bcc(address) {
30
+ if (Array.isArray(address)) {
31
+ this._bcc = this._bcc.concat(address);
32
+ }
33
+ else {
34
+ this._bcc.push(address);
35
+ }
36
+ return this;
37
+ }
38
+ from(address) {
39
+ this._from = address;
40
+ return this;
41
+ }
42
+ replyTo(address) {
43
+ this._replyTo = address;
44
+ return this;
45
+ }
46
+ subject(subject) {
47
+ this._subject = subject;
48
+ return this;
49
+ }
50
+ textContent(content) {
51
+ this._text = content;
52
+ return this;
53
+ }
54
+ htmlContent(content) {
55
+ this._html = content;
56
+ return this;
57
+ }
58
+ attach(attachment) {
59
+ this._attachments.push(attachment);
60
+ return this;
61
+ }
62
+ getPayload() {
63
+ return {
64
+ to: this._to,
65
+ cc: this._cc,
66
+ bcc: this._bcc,
67
+ from: this._from,
68
+ replyTo: this._replyTo,
69
+ subject: this._subject,
70
+ text: this._text,
71
+ html: this._html,
72
+ attachments: this._attachments,
73
+ };
74
+ }
75
+ }
76
+ exports.Message = Message;
77
+ //# sourceMappingURL=Message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Message.js","sourceRoot":"","sources":["../../src/Message.ts"],"names":[],"mappings":";;;AAeA,MAAa,OAAO;IAWhB;QAVU,QAAG,GAAyB,EAAE,CAAC;QAC/B,QAAG,GAAyB,EAAE,CAAC;QAC/B,SAAI,GAAyB,EAAE,CAAC;QAMhC,iBAAY,GAAiB,EAAE,CAAC;IAE1B,CAAC;IAEjB,EAAE,CAAC,OAAgD;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,EAAE,CAAC,OAAgD;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,GAAG,CAAC,OAAgD;QAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,OAAyB;QAC1B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,OAAyB;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,OAAe;QACvB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,UAAsB;QACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;QACN,OAAO;YACH,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,IAAI;YACd,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,YAAY;SACjC,CAAC;IACN,CAAC;CACJ;AAnFD,0BAmFC"}
@@ -0,0 +1,14 @@
1
+ import { Transport } from '../Contracts/Transport';
2
+ export declare class ArrayTransport implements Transport {
3
+ messages: any[];
4
+ send(message: any): Promise<void>;
5
+ /**
6
+ * Clear all stored messages.
7
+ */
8
+ clear(): void;
9
+ /**
10
+ * Get all stored messages.
11
+ */
12
+ getMessages(): any[];
13
+ }
14
+ //# sourceMappingURL=ArrayTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayTransport.d.ts","sourceRoot":"","sources":["../../../src/Transport/ArrayTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBAAa,cAAe,YAAW,SAAS;IACrC,QAAQ,EAAE,GAAG,EAAE,CAAM;IAEtB,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACI,WAAW,IAAI,GAAG,EAAE;CAG9B"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArrayTransport = void 0;
4
+ class ArrayTransport {
5
+ constructor() {
6
+ this.messages = [];
7
+ }
8
+ async send(message) {
9
+ this.messages.push(message);
10
+ }
11
+ /**
12
+ * Clear all stored messages.
13
+ */
14
+ clear() {
15
+ this.messages = [];
16
+ }
17
+ /**
18
+ * Get all stored messages.
19
+ */
20
+ getMessages() {
21
+ return this.messages;
22
+ }
23
+ }
24
+ exports.ArrayTransport = ArrayTransport;
25
+ //# sourceMappingURL=ArrayTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayTransport.js","sourceRoot":"","sources":["../../../src/Transport/ArrayTransport.ts"],"names":[],"mappings":";;;AAEA,MAAa,cAAc;IAA3B;QACW,aAAQ,GAAU,EAAE,CAAC;IAmBhC,CAAC;IAjBG,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK;QACR,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AApBD,wCAoBC"}
@@ -0,0 +1,5 @@
1
+ import { Transport } from '../Contracts/Transport';
2
+ export declare class LogTransport implements Transport {
3
+ send(message: any): Promise<void>;
4
+ }
5
+ //# sourceMappingURL=LogTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogTransport.d.ts","sourceRoot":"","sources":["../../../src/Transport/LogTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,qBAAa,YAAa,YAAW,SAAS;IACpC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAK1C"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LogTransport = void 0;
4
+ class LogTransport {
5
+ async send(message) {
6
+ console.log('--- Email Sent ---');
7
+ console.log(JSON.stringify(message, null, 2));
8
+ console.log('------------------');
9
+ }
10
+ }
11
+ exports.LogTransport = LogTransport;
12
+ //# sourceMappingURL=LogTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogTransport.js","sourceRoot":"","sources":["../../../src/Transport/LogTransport.ts"],"names":[],"mappings":";;;AAEA,MAAa,YAAY;IACrB,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;CACJ;AAND,oCAMC"}
@@ -0,0 +1,8 @@
1
+ import { Transport } from '../Contracts/Transport';
2
+ import { Transporter } from 'nodemailer';
3
+ export declare class MailgunTransport implements Transport {
4
+ protected transporter: Transporter;
5
+ constructor(config: any);
6
+ send(message: any): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=MailgunTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MailgunTransport.d.ts","sourceRoot":"","sources":["../../../src/Transport/MailgunTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrD,qBAAa,gBAAiB,YAAW,SAAS;IAC9C,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,MAAM,EAAE,GAAG;IAUjB,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -0,0 +1,24 @@
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
+ exports.MailgunTransport = void 0;
7
+ const nodemailer_1 = __importDefault(require("nodemailer"));
8
+ const mg = require('nodemailer-mailgun-transport');
9
+ class MailgunTransport {
10
+ constructor(config) {
11
+ this.transporter = nodemailer_1.default.createTransport(mg({
12
+ auth: {
13
+ api_key: config.key,
14
+ domain: config.domain,
15
+ },
16
+ host: config.host || 'api.mailgun.net',
17
+ }));
18
+ }
19
+ async send(message) {
20
+ return await this.transporter.sendMail(message);
21
+ }
22
+ }
23
+ exports.MailgunTransport = MailgunTransport;
24
+ //# sourceMappingURL=MailgunTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MailgunTransport.js","sourceRoot":"","sources":["../../../src/Transport/MailgunTransport.ts"],"names":[],"mappings":";;;;;;AAEA,4DAAqD;AACrD,MAAM,EAAE,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAEnD,MAAa,gBAAgB;IAGzB,YAAY,MAAW;QACnB,IAAI,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAC7C,IAAI,EAAE;gBACF,OAAO,EAAE,MAAM,CAAC,GAAG;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACxB;YACD,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,iBAAiB;SACzC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AAhBD,4CAgBC"}
@@ -0,0 +1,8 @@
1
+ import { Transport } from '../Contracts/Transport';
2
+ import { Transporter } from 'nodemailer';
3
+ export declare class SendGridTransport implements Transport {
4
+ protected transporter: Transporter;
5
+ constructor(config: any);
6
+ send(message: any): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=SendGridTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendGridTransport.d.ts","sourceRoot":"","sources":["../../../src/Transport/SendGridTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrD,qBAAa,iBAAkB,YAAW,SAAS;IAC/C,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,MAAM,EAAE,GAAG;IAQjB,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -0,0 +1,22 @@
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
+ exports.SendGridTransport = void 0;
7
+ const nodemailer_1 = __importDefault(require("nodemailer"));
8
+ const sgTransport = require('nodemailer-sendgrid-transport');
9
+ class SendGridTransport {
10
+ constructor(config) {
11
+ this.transporter = nodemailer_1.default.createTransport(sgTransport({
12
+ auth: {
13
+ api_key: config.key,
14
+ },
15
+ }));
16
+ }
17
+ async send(message) {
18
+ return await this.transporter.sendMail(message);
19
+ }
20
+ }
21
+ exports.SendGridTransport = SendGridTransport;
22
+ //# sourceMappingURL=SendGridTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendGridTransport.js","sourceRoot":"","sources":["../../../src/Transport/SendGridTransport.ts"],"names":[],"mappings":";;;;;;AAEA,4DAAqD;AACrD,MAAM,WAAW,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE7D,MAAa,iBAAiB;IAG1B,YAAY,MAAW;QACnB,IAAI,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC,WAAW,CAAC;YACtD,IAAI,EAAE;gBACF,OAAO,EAAE,MAAM,CAAC,GAAG;aACtB;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AAdD,8CAcC"}
@@ -0,0 +1,8 @@
1
+ import { Transport } from '../Contracts/Transport';
2
+ import { Transporter } from 'nodemailer';
3
+ export declare class SesTransport implements Transport {
4
+ protected transporter: Transporter;
5
+ constructor(config: any);
6
+ send(message: any): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=SesTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SesTransport.d.ts","sourceRoot":"","sources":["../../../src/Transport/SesTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGrD,qBAAa,YAAa,YAAW,SAAS;IAC1C,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAEvB,MAAM,EAAE,GAAG;IAejB,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -0,0 +1,28 @@
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
+ exports.SesTransport = void 0;
7
+ const nodemailer_1 = __importDefault(require("nodemailer"));
8
+ const client_ses_1 = require("@aws-sdk/client-ses");
9
+ class SesTransport {
10
+ constructor(config) {
11
+ const ses = new client_ses_1.SES({
12
+ apiVersion: '2010-12-01',
13
+ region: config.region,
14
+ credentials: {
15
+ accessKeyId: config.key,
16
+ secretAccessKey: config.secret,
17
+ },
18
+ });
19
+ this.transporter = nodemailer_1.default.createTransport({
20
+ SES: { ses, aws: { SendRawEmailCommand: client_ses_1.SendRawEmailCommand } },
21
+ });
22
+ }
23
+ async send(message) {
24
+ return await this.transporter.sendMail(message);
25
+ }
26
+ }
27
+ exports.SesTransport = SesTransport;
28
+ //# sourceMappingURL=SesTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SesTransport.js","sourceRoot":"","sources":["../../../src/Transport/SesTransport.ts"],"names":[],"mappings":";;;;;;AAEA,4DAAqD;AACrD,oDAA+D;AAE/D,MAAa,YAAY;IAGrB,YAAY,MAAW;QACnB,MAAM,GAAG,GAAG,IAAI,gBAAG,CAAC;YAChB,UAAU,EAAE,YAAY;YACxB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE;gBACT,WAAW,EAAE,MAAM,CAAC,GAAG;gBACvB,eAAe,EAAE,MAAM,CAAC,MAAM;aACjC;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC;YAC1C,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,mBAAmB,EAAnB,gCAAmB,EAAE,EAAE;SAC7C,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AArBD,oCAqBC"}
@@ -0,0 +1,8 @@
1
+ import { Transport } from '../Contracts/Transport';
2
+ import { Transporter } from 'nodemailer';
3
+ export declare class SmtpTransport implements Transport {
4
+ protected transporter: Transporter;
5
+ constructor(config: any);
6
+ send(message: any): Promise<void>;
7
+ }
8
+ //# sourceMappingURL=SmtpTransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmtpTransport.d.ts","sourceRoot":"","sources":["../../../src/Transport/SmtpTransport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAmB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,aAAc,YAAW,SAAS;IAC3C,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC;gBAIvB,MAAM,EAAE,GAAG;IAoBjB,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
@@ -0,0 +1,30 @@
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
+ exports.SmtpTransport = void 0;
7
+ const nodemailer_1 = __importDefault(require("nodemailer"));
8
+ class SmtpTransport {
9
+ constructor(config) {
10
+ const options = {
11
+ host: config.host,
12
+ port: config.port,
13
+ secure: config.encryption === 'ssl',
14
+ auth: {
15
+ user: config.username,
16
+ pass: config.password,
17
+ },
18
+ };
19
+ const defaults = {};
20
+ if (config.from) {
21
+ defaults.from = config.from;
22
+ }
23
+ this.transporter = nodemailer_1.default.createTransport(options, defaults);
24
+ }
25
+ async send(message) {
26
+ return await this.transporter.sendMail(message);
27
+ }
28
+ }
29
+ exports.SmtpTransport = SmtpTransport;
30
+ //# sourceMappingURL=SmtpTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmtpTransport.js","sourceRoot":"","sources":["../../../src/Transport/SmtpTransport.ts"],"names":[],"mappings":";;;;;;AAEA,4DAAqD;AAErD,MAAa,aAAa;IAKtB,YAAY,MAAW;QACnB,MAAM,OAAO,GAAQ;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,KAAK;YACnC,IAAI,EAAE;gBACF,IAAI,EAAE,MAAM,CAAC,QAAQ;gBACrB,IAAI,EAAE,MAAM,CAAC,QAAQ;aACxB;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAQ,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAGD,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;CACJ;AA5BD,sCA4BC"}
@@ -0,0 +1,17 @@
1
+ import { MailManager } from './MailManager';
2
+ export { MailManager } from './MailManager';
3
+ export { Mailer, PendingMail, ViewRenderer } from './Mailer';
4
+ export { Mailable } from './Mailable';
5
+ export { Message, Attachment, Address } from './Message';
6
+ export { Transport } from './Contracts/Transport';
7
+ export { SmtpTransport } from './Transport/SmtpTransport';
8
+ export { SesTransport } from './Transport/SesTransport';
9
+ export { MailgunTransport } from './Transport/MailgunTransport';
10
+ export { SendGridTransport } from './Transport/SendGridTransport';
11
+ export declare class Mail {
12
+ static setManager(manager: MailManager): void;
13
+ static extend(driver: string, callback: (config: any) => any): MailManager;
14
+ static to(users: any): import("./Mailer").PendingMail;
15
+ static mailer(name?: string): import("./Mailer").Mailer;
16
+ }
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAIlE,qBAAa,IAAI;IACb,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW;IAItC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG;IAO5D,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG;IAOpB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM;CAM9B"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Mail = exports.SendGridTransport = exports.MailgunTransport = exports.SesTransport = exports.SmtpTransport = exports.Message = exports.Mailable = exports.PendingMail = exports.Mailer = exports.MailManager = void 0;
4
+ var MailManager_1 = require("./MailManager");
5
+ Object.defineProperty(exports, "MailManager", { enumerable: true, get: function () { return MailManager_1.MailManager; } });
6
+ var Mailer_1 = require("./Mailer");
7
+ Object.defineProperty(exports, "Mailer", { enumerable: true, get: function () { return Mailer_1.Mailer; } });
8
+ Object.defineProperty(exports, "PendingMail", { enumerable: true, get: function () { return Mailer_1.PendingMail; } });
9
+ var Mailable_1 = require("./Mailable");
10
+ Object.defineProperty(exports, "Mailable", { enumerable: true, get: function () { return Mailable_1.Mailable; } });
11
+ var Message_1 = require("./Message");
12
+ Object.defineProperty(exports, "Message", { enumerable: true, get: function () { return Message_1.Message; } });
13
+ var SmtpTransport_1 = require("./Transport/SmtpTransport");
14
+ Object.defineProperty(exports, "SmtpTransport", { enumerable: true, get: function () { return SmtpTransport_1.SmtpTransport; } });
15
+ var SesTransport_1 = require("./Transport/SesTransport");
16
+ Object.defineProperty(exports, "SesTransport", { enumerable: true, get: function () { return SesTransport_1.SesTransport; } });
17
+ var MailgunTransport_1 = require("./Transport/MailgunTransport");
18
+ Object.defineProperty(exports, "MailgunTransport", { enumerable: true, get: function () { return MailgunTransport_1.MailgunTransport; } });
19
+ var SendGridTransport_1 = require("./Transport/SendGridTransport");
20
+ Object.defineProperty(exports, "SendGridTransport", { enumerable: true, get: function () { return SendGridTransport_1.SendGridTransport; } });
21
+ let mailManager;
22
+ class Mail {
23
+ static setManager(manager) {
24
+ mailManager = manager;
25
+ }
26
+ static extend(driver, callback) {
27
+ if (!mailManager) {
28
+ throw new Error('Mail system not configured. Please use Mail.setManager() to configure.');
29
+ }
30
+ return mailManager.extend(driver, callback);
31
+ }
32
+ static to(users) {
33
+ if (!mailManager) {
34
+ throw new Error('Mail system not configured. Please use Mail.setManager() to configure.');
35
+ }
36
+ return mailManager.to(users);
37
+ }
38
+ static mailer(name) {
39
+ if (!mailManager) {
40
+ throw new Error('Mail system not configured. Please use Mail.setManager() to configure.');
41
+ }
42
+ return mailManager.mailer(name);
43
+ }
44
+ }
45
+ exports.Mail = Mail;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAGA,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mCAA6D;AAApD,gGAAA,MAAM,OAAA;AAAE,qGAAA,WAAW,OAAA;AAC5B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,qCAAyD;AAAhD,kGAAA,OAAO,OAAA;AAEhB,2DAA0D;AAAjD,8GAAA,aAAa,OAAA;AACtB,yDAAwD;AAA/C,4GAAA,YAAY,OAAA;AACrB,iEAAgE;AAAvD,oHAAA,gBAAgB,OAAA;AACzB,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAE1B,IAAI,WAAwB,CAAC;AAE7B,MAAa,IAAI;IACb,MAAM,CAAC,UAAU,CAAC,OAAoB;QAClC,WAAW,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAc,EAAE,QAA8B;QACxD,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,KAAU;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,IAAa;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACJ;AAzBD,oBAyBC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Mail.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mail.test.d.ts","sourceRoot":"","sources":["../../tests/Mail.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,43 @@
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 node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const src_1 = require("../src");
9
+ class MockTransport {
10
+ constructor() {
11
+ this.sent = [];
12
+ }
13
+ async send(message) {
14
+ this.sent.push(message);
15
+ }
16
+ }
17
+ (0, node_test_1.describe)('Mail', () => {
18
+ let mockTransport;
19
+ (0, node_test_1.before)(() => {
20
+ mockTransport = new MockTransport();
21
+ const config = {
22
+ default: 'smtp',
23
+ mailers: {
24
+ smtp: {
25
+ transport: 'smtp', // we will override this logic or use mocked manager
26
+ }
27
+ }
28
+ };
29
+ const manager = new src_1.MailManager(config);
30
+ manager.extend('smtp', () => mockTransport);
31
+ src_1.Mail.setManager(manager);
32
+ });
33
+ (0, node_test_1.it)('sends email via facade', async () => {
34
+ await src_1.Mail.to('user@example.com')
35
+ .subject('Hello')
36
+ .text('World')
37
+ .send();
38
+ node_assert_1.default.strictEqual(mockTransport.sent.length, 1);
39
+ node_assert_1.default.strictEqual(mockTransport.sent[0].subject, 'Hello');
40
+ node_assert_1.default.deepStrictEqual(mockTransport.sent[0].to, ['user@example.com']);
41
+ });
42
+ });
43
+ //# sourceMappingURL=Mail.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mail.test.js","sourceRoot":"","sources":["../../tests/Mail.test.ts"],"names":[],"mappings":";;;;;AACA,yCAAuD;AACvD,8DAAiC;AACjC,gCAA2C;AAG3C,MAAM,aAAa;IAAnB;QACW,SAAI,GAAU,EAAE,CAAC;IAI5B,CAAC;IAHG,KAAK,CAAC,IAAI,CAAC,OAAY;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACJ;AAED,IAAA,oBAAQ,EAAC,MAAM,EAAE,GAAG,EAAE;IAClB,IAAI,aAA4B,CAAC;IAEjC,IAAA,kBAAM,EAAC,GAAG,EAAE;QACR,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG;YACX,OAAO,EAAE,MAAM;YACf,OAAO,EAAE;gBACL,IAAI,EAAE;oBACF,SAAS,EAAE,MAAM,EAAE,oDAAoD;iBAC1E;aACJ;SACJ,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,iBAAW,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC;QAE5C,UAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,wBAAwB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,UAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC;aAC5B,OAAO,CAAC,OAAO,CAAC;aAChB,IAAI,CAAC,OAAO,CAAC;aACb,IAAI,EAAE,CAAC;QAEZ,qBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjD,qBAAM,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,qBAAM,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=TransportResolution.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransportResolution.test.d.ts","sourceRoot":"","sources":["../../tests/TransportResolution.test.ts"],"names":[],"mappings":""}