@h3ravel/mail 11.0.21 → 11.15.0-alpha.11
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/index.cjs +42 -20
- package/dist/index.d.ts +8 -10
- package/dist/index.js +33 -11
- package/package.json +5 -6
package/dist/index.cjs
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region \0rolldown/runtime.js
|
|
2
3
|
var __create = Object.create;
|
|
3
4
|
var __defProp = Object.defineProperty;
|
|
4
5
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -19,15 +20,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
19
20
|
value: mod,
|
|
20
21
|
enumerable: true
|
|
21
22
|
}) : target, mod));
|
|
22
|
-
|
|
23
23
|
//#endregion
|
|
24
24
|
let nodemailer = require("nodemailer");
|
|
25
|
-
nodemailer = __toESM(nodemailer);
|
|
25
|
+
nodemailer = __toESM(nodemailer, 1);
|
|
26
26
|
let stream = require("stream");
|
|
27
|
-
stream = __toESM(stream);
|
|
28
|
-
let
|
|
29
|
-
let
|
|
30
|
-
|
|
27
|
+
stream = __toESM(stream, 1);
|
|
28
|
+
let _aws_sdk_client_sesv2 = require("@aws-sdk/client-sesv2");
|
|
29
|
+
let _h3ravel_core = require("@h3ravel/core");
|
|
31
30
|
//#region src/Drivers/LOGDriver.ts
|
|
32
31
|
var LOGDriver = class {
|
|
33
32
|
transporter;
|
|
@@ -46,7 +45,6 @@ var LOGDriver = class {
|
|
|
46
45
|
});
|
|
47
46
|
}
|
|
48
47
|
};
|
|
49
|
-
|
|
50
48
|
//#endregion
|
|
51
49
|
//#region src/Drivers/SendMailDriver.ts
|
|
52
50
|
var SendMailDriver = class {
|
|
@@ -69,13 +67,12 @@ var SendMailDriver = class {
|
|
|
69
67
|
});
|
|
70
68
|
}
|
|
71
69
|
};
|
|
72
|
-
|
|
73
70
|
//#endregion
|
|
74
71
|
//#region src/Drivers/SESDriver.ts
|
|
75
72
|
var SESDriver = class {
|
|
76
73
|
transporter;
|
|
77
74
|
constructor(config) {
|
|
78
|
-
const sesClient = new
|
|
75
|
+
const sesClient = new _aws_sdk_client_sesv2.SESv2Client({
|
|
79
76
|
region: config.region,
|
|
80
77
|
credentials: {
|
|
81
78
|
accessKeyId: config.key,
|
|
@@ -86,7 +83,7 @@ var SESDriver = class {
|
|
|
86
83
|
this.transporter = nodemailer.default.createTransport({
|
|
87
84
|
SES: {
|
|
88
85
|
sesClient,
|
|
89
|
-
SendEmailCommand:
|
|
86
|
+
SendEmailCommand: _aws_sdk_client_sesv2.SendEmailCommand
|
|
90
87
|
},
|
|
91
88
|
maxConnections: config.maxConnections,
|
|
92
89
|
sendingRate: config.sendingRate
|
|
@@ -104,7 +101,6 @@ var SESDriver = class {
|
|
|
104
101
|
});
|
|
105
102
|
}
|
|
106
103
|
};
|
|
107
|
-
|
|
108
104
|
//#endregion
|
|
109
105
|
//#region src/Drivers/SMTPDriver.ts
|
|
110
106
|
var SMTPDriver = class {
|
|
@@ -132,7 +128,6 @@ var SMTPDriver = class {
|
|
|
132
128
|
});
|
|
133
129
|
}
|
|
134
130
|
};
|
|
135
|
-
|
|
136
131
|
//#endregion
|
|
137
132
|
//#region src/Mailable.ts
|
|
138
133
|
var Mailable = class {
|
|
@@ -199,10 +194,11 @@ var Mailable = class {
|
|
|
199
194
|
};
|
|
200
195
|
}
|
|
201
196
|
};
|
|
202
|
-
|
|
203
197
|
//#endregion
|
|
204
198
|
//#region src/Mailer.ts
|
|
205
199
|
var Mailer = class {
|
|
200
|
+
driver;
|
|
201
|
+
edgeRenderer;
|
|
206
202
|
constructor(driver, edgeRenderer) {
|
|
207
203
|
this.driver = driver;
|
|
208
204
|
this.edgeRenderer = edgeRenderer;
|
|
@@ -210,7 +206,11 @@ var Mailer = class {
|
|
|
210
206
|
async send(mailable) {
|
|
211
207
|
await mailable.build();
|
|
212
208
|
const options = mailable.getMessageOptions();
|
|
213
|
-
if (options.viewPath && !options.html)
|
|
209
|
+
if (options.viewPath && !options.html) {
|
|
210
|
+
let view = await this.edgeRenderer(options.viewPath, options.viewData || {});
|
|
211
|
+
if (typeof view !== "string") view = String(view.body);
|
|
212
|
+
options.html = view;
|
|
213
|
+
}
|
|
214
214
|
try {
|
|
215
215
|
return this.driver.send(options);
|
|
216
216
|
} catch {
|
|
@@ -218,7 +218,6 @@ var Mailer = class {
|
|
|
218
218
|
}
|
|
219
219
|
}
|
|
220
220
|
};
|
|
221
|
-
|
|
222
221
|
//#endregion
|
|
223
222
|
//#region src/Service.ts
|
|
224
223
|
/**
|
|
@@ -241,6 +240,9 @@ var Service = class {
|
|
|
241
240
|
* Configure mailer settings for different drivers
|
|
242
241
|
*/
|
|
243
242
|
const mailConfig = {
|
|
243
|
+
/**
|
|
244
|
+
* SMTP configuration with fallback defaults
|
|
245
|
+
*/
|
|
244
246
|
smtp: {
|
|
245
247
|
host: config.get("mail.mailers.smtp.host", "smtp.mailtrap.io"),
|
|
246
248
|
port: Number(config.get("mail.mailers.smtp.port", 2525)),
|
|
@@ -252,6 +254,9 @@ var Service = class {
|
|
|
252
254
|
connectionTimeout: config.get("mail.mailers.smtp.timeout"),
|
|
253
255
|
debug: false
|
|
254
256
|
},
|
|
257
|
+
/**
|
|
258
|
+
* SES configuration with fallback defaults
|
|
259
|
+
*/
|
|
255
260
|
ses: {
|
|
256
261
|
key: config.get("services.ses.key", ""),
|
|
257
262
|
token: config.get("services.ses.token", ""),
|
|
@@ -260,15 +265,34 @@ var Service = class {
|
|
|
260
265
|
maxConnections: config.get("mail.mailers.ses.connections", 10),
|
|
261
266
|
sendingRate: config.get("mail.mailers.ses.rate", 5)
|
|
262
267
|
},
|
|
268
|
+
/**
|
|
269
|
+
* Sendmail configuration with fallback default path
|
|
270
|
+
*/
|
|
263
271
|
sendmail: { path: config.get("mail.mailers.sendmail.path", "sendmail") }
|
|
264
272
|
};
|
|
265
273
|
/**
|
|
266
274
|
* Define available mail drivers
|
|
267
275
|
*/
|
|
268
276
|
const driver = {
|
|
277
|
+
/**
|
|
278
|
+
* SES driver factory
|
|
279
|
+
* @returns
|
|
280
|
+
*/
|
|
269
281
|
ses: () => new SESDriver(mailConfig.ses),
|
|
282
|
+
/**
|
|
283
|
+
* SMTP driver factory
|
|
284
|
+
* @returns
|
|
285
|
+
*/
|
|
270
286
|
smtp: () => new SMTPDriver(mailConfig.smtp),
|
|
287
|
+
/**
|
|
288
|
+
* LOG driver factory for debugging
|
|
289
|
+
* @returns
|
|
290
|
+
*/
|
|
271
291
|
log: () => new LOGDriver(mailConfig.smtp),
|
|
292
|
+
/**
|
|
293
|
+
* Sendmail driver factory
|
|
294
|
+
* @returns
|
|
295
|
+
*/
|
|
272
296
|
sendmail: () => new SendMailDriver(mailConfig.sendmail)
|
|
273
297
|
};
|
|
274
298
|
/**
|
|
@@ -278,7 +302,6 @@ var Service = class {
|
|
|
278
302
|
return new Mailer((driver[config.get("mail.default")] ?? driver.smtp)(), async (viewPath, data) => await view(viewPath, data));
|
|
279
303
|
}
|
|
280
304
|
};
|
|
281
|
-
|
|
282
305
|
//#endregion
|
|
283
306
|
//#region src/Providers/MailServiceProvider.ts
|
|
284
307
|
/**
|
|
@@ -289,7 +312,7 @@ var Service = class {
|
|
|
289
312
|
* Register Mail facade.
|
|
290
313
|
*
|
|
291
314
|
*/
|
|
292
|
-
var MailServiceProvider = class extends
|
|
315
|
+
var MailServiceProvider = class extends _h3ravel_core.ServiceProvider {
|
|
293
316
|
static priority = 990;
|
|
294
317
|
register() {
|
|
295
318
|
/**
|
|
@@ -305,7 +328,6 @@ var MailServiceProvider = class extends __h3ravel_core.ServiceProvider {
|
|
|
305
328
|
*/
|
|
306
329
|
}
|
|
307
330
|
};
|
|
308
|
-
|
|
309
331
|
//#endregion
|
|
310
332
|
exports.LOGDriver = LOGDriver;
|
|
311
333
|
exports.MailServiceProvider = MailServiceProvider;
|
|
@@ -314,4 +336,4 @@ exports.Mailer = Mailer;
|
|
|
314
336
|
exports.SESDriver = SESDriver;
|
|
315
337
|
exports.SMTPDriver = SMTPDriver;
|
|
316
338
|
exports.SendMailDriver = SendMailDriver;
|
|
317
|
-
exports.Service = Service;
|
|
339
|
+
exports.Service = Service;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/// <reference path="./app.globals.d.ts" />
|
|
2
2
|
import { SendMailOptions as SendMailOptions$1, SentMessageInfo } from "nodemailer";
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import SendmailTransport from "nodemailer/lib/sendmail-transport";
|
|
8
|
-
import * as nodemailer_lib_smtp_transport0 from "nodemailer/lib/smtp-transport";
|
|
3
|
+
import SESConnection from "nodemailer/lib/ses-transport/index.js";
|
|
4
|
+
import SMTPConnection from "nodemailer/lib/smtp-connection/index.js";
|
|
5
|
+
import SendmailTransport from "nodemailer/lib/sendmail-transport/index.js";
|
|
6
|
+
import { IResponsable } from "@h3ravel/contracts";
|
|
9
7
|
import { Application, ServiceProvider } from "@h3ravel/core";
|
|
10
8
|
|
|
11
9
|
//#region src/Contracts/Mailer.d.ts
|
|
@@ -68,21 +66,21 @@ declare class LOGDriver implements MailDriverContract {
|
|
|
68
66
|
declare class SendMailDriver implements MailDriverContract {
|
|
69
67
|
private transporter;
|
|
70
68
|
constructor(config: SendMailConfig);
|
|
71
|
-
send(options: SendMailOptions$1): Promise<
|
|
69
|
+
send(options: SendMailOptions$1): Promise<import("nodemailer/lib/sendmail-transport").SentMessageInfo>;
|
|
72
70
|
}
|
|
73
71
|
//#endregion
|
|
74
72
|
//#region src/Drivers/SESDriver.d.ts
|
|
75
73
|
declare class SESDriver implements MailDriverContract {
|
|
76
74
|
private transporter;
|
|
77
75
|
constructor(config: SESConfig);
|
|
78
|
-
send(options: SendMailOptions$1): Promise<
|
|
76
|
+
send(options: SendMailOptions$1): Promise<import("nodemailer/lib/ses-transport").SentMessageInfo>;
|
|
79
77
|
}
|
|
80
78
|
//#endregion
|
|
81
79
|
//#region src/Drivers/SMTPDriver.d.ts
|
|
82
80
|
declare class SMTPDriver implements MailDriverContract {
|
|
83
81
|
private transporter;
|
|
84
82
|
constructor(config: SMTPConfig);
|
|
85
|
-
send(options: SendMailOptions$1): Promise<
|
|
83
|
+
send(options: SendMailOptions$1): Promise<import("nodemailer/lib/smtp-transport").SentMessageInfo>;
|
|
86
84
|
}
|
|
87
85
|
//#endregion
|
|
88
86
|
//#region src/Mailable.d.ts
|
|
@@ -118,7 +116,7 @@ declare abstract class Mailable {
|
|
|
118
116
|
declare class Mailer {
|
|
119
117
|
private driver;
|
|
120
118
|
private edgeRenderer;
|
|
121
|
-
constructor(driver: MailDriverContract, edgeRenderer: (viewPath: string, data: Record<string, any>) => Promise<string>);
|
|
119
|
+
constructor(driver: MailDriverContract, edgeRenderer: (viewPath: string, data: Record<string, any>) => Promise<IResponsable | string>);
|
|
122
120
|
send(mailable: Mailable): Promise<DeliveryReport | undefined | void>;
|
|
123
121
|
}
|
|
124
122
|
//#endregion
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,6 @@ import nodemailer from "nodemailer";
|
|
|
2
2
|
import Stream from "stream";
|
|
3
3
|
import { SESv2Client, SendEmailCommand } from "@aws-sdk/client-sesv2";
|
|
4
4
|
import { ServiceProvider } from "@h3ravel/core";
|
|
5
|
-
|
|
6
5
|
//#region src/Drivers/LOGDriver.ts
|
|
7
6
|
var LOGDriver = class {
|
|
8
7
|
transporter;
|
|
@@ -21,7 +20,6 @@ var LOGDriver = class {
|
|
|
21
20
|
});
|
|
22
21
|
}
|
|
23
22
|
};
|
|
24
|
-
|
|
25
23
|
//#endregion
|
|
26
24
|
//#region src/Drivers/SendMailDriver.ts
|
|
27
25
|
var SendMailDriver = class {
|
|
@@ -44,7 +42,6 @@ var SendMailDriver = class {
|
|
|
44
42
|
});
|
|
45
43
|
}
|
|
46
44
|
};
|
|
47
|
-
|
|
48
45
|
//#endregion
|
|
49
46
|
//#region src/Drivers/SESDriver.ts
|
|
50
47
|
var SESDriver = class {
|
|
@@ -79,7 +76,6 @@ var SESDriver = class {
|
|
|
79
76
|
});
|
|
80
77
|
}
|
|
81
78
|
};
|
|
82
|
-
|
|
83
79
|
//#endregion
|
|
84
80
|
//#region src/Drivers/SMTPDriver.ts
|
|
85
81
|
var SMTPDriver = class {
|
|
@@ -107,7 +103,6 @@ var SMTPDriver = class {
|
|
|
107
103
|
});
|
|
108
104
|
}
|
|
109
105
|
};
|
|
110
|
-
|
|
111
106
|
//#endregion
|
|
112
107
|
//#region src/Mailable.ts
|
|
113
108
|
var Mailable = class {
|
|
@@ -174,10 +169,11 @@ var Mailable = class {
|
|
|
174
169
|
};
|
|
175
170
|
}
|
|
176
171
|
};
|
|
177
|
-
|
|
178
172
|
//#endregion
|
|
179
173
|
//#region src/Mailer.ts
|
|
180
174
|
var Mailer = class {
|
|
175
|
+
driver;
|
|
176
|
+
edgeRenderer;
|
|
181
177
|
constructor(driver, edgeRenderer) {
|
|
182
178
|
this.driver = driver;
|
|
183
179
|
this.edgeRenderer = edgeRenderer;
|
|
@@ -185,7 +181,11 @@ var Mailer = class {
|
|
|
185
181
|
async send(mailable) {
|
|
186
182
|
await mailable.build();
|
|
187
183
|
const options = mailable.getMessageOptions();
|
|
188
|
-
if (options.viewPath && !options.html)
|
|
184
|
+
if (options.viewPath && !options.html) {
|
|
185
|
+
let view = await this.edgeRenderer(options.viewPath, options.viewData || {});
|
|
186
|
+
if (typeof view !== "string") view = String(view.body);
|
|
187
|
+
options.html = view;
|
|
188
|
+
}
|
|
189
189
|
try {
|
|
190
190
|
return this.driver.send(options);
|
|
191
191
|
} catch {
|
|
@@ -193,7 +193,6 @@ var Mailer = class {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
};
|
|
196
|
-
|
|
197
196
|
//#endregion
|
|
198
197
|
//#region src/Service.ts
|
|
199
198
|
/**
|
|
@@ -216,6 +215,9 @@ var Service = class {
|
|
|
216
215
|
* Configure mailer settings for different drivers
|
|
217
216
|
*/
|
|
218
217
|
const mailConfig = {
|
|
218
|
+
/**
|
|
219
|
+
* SMTP configuration with fallback defaults
|
|
220
|
+
*/
|
|
219
221
|
smtp: {
|
|
220
222
|
host: config.get("mail.mailers.smtp.host", "smtp.mailtrap.io"),
|
|
221
223
|
port: Number(config.get("mail.mailers.smtp.port", 2525)),
|
|
@@ -227,6 +229,9 @@ var Service = class {
|
|
|
227
229
|
connectionTimeout: config.get("mail.mailers.smtp.timeout"),
|
|
228
230
|
debug: false
|
|
229
231
|
},
|
|
232
|
+
/**
|
|
233
|
+
* SES configuration with fallback defaults
|
|
234
|
+
*/
|
|
230
235
|
ses: {
|
|
231
236
|
key: config.get("services.ses.key", ""),
|
|
232
237
|
token: config.get("services.ses.token", ""),
|
|
@@ -235,15 +240,34 @@ var Service = class {
|
|
|
235
240
|
maxConnections: config.get("mail.mailers.ses.connections", 10),
|
|
236
241
|
sendingRate: config.get("mail.mailers.ses.rate", 5)
|
|
237
242
|
},
|
|
243
|
+
/**
|
|
244
|
+
* Sendmail configuration with fallback default path
|
|
245
|
+
*/
|
|
238
246
|
sendmail: { path: config.get("mail.mailers.sendmail.path", "sendmail") }
|
|
239
247
|
};
|
|
240
248
|
/**
|
|
241
249
|
* Define available mail drivers
|
|
242
250
|
*/
|
|
243
251
|
const driver = {
|
|
252
|
+
/**
|
|
253
|
+
* SES driver factory
|
|
254
|
+
* @returns
|
|
255
|
+
*/
|
|
244
256
|
ses: () => new SESDriver(mailConfig.ses),
|
|
257
|
+
/**
|
|
258
|
+
* SMTP driver factory
|
|
259
|
+
* @returns
|
|
260
|
+
*/
|
|
245
261
|
smtp: () => new SMTPDriver(mailConfig.smtp),
|
|
262
|
+
/**
|
|
263
|
+
* LOG driver factory for debugging
|
|
264
|
+
* @returns
|
|
265
|
+
*/
|
|
246
266
|
log: () => new LOGDriver(mailConfig.smtp),
|
|
267
|
+
/**
|
|
268
|
+
* Sendmail driver factory
|
|
269
|
+
* @returns
|
|
270
|
+
*/
|
|
247
271
|
sendmail: () => new SendMailDriver(mailConfig.sendmail)
|
|
248
272
|
};
|
|
249
273
|
/**
|
|
@@ -253,7 +277,6 @@ var Service = class {
|
|
|
253
277
|
return new Mailer((driver[config.get("mail.default")] ?? driver.smtp)(), async (viewPath, data) => await view(viewPath, data));
|
|
254
278
|
}
|
|
255
279
|
};
|
|
256
|
-
|
|
257
280
|
//#endregion
|
|
258
281
|
//#region src/Providers/MailServiceProvider.ts
|
|
259
282
|
/**
|
|
@@ -280,6 +303,5 @@ var MailServiceProvider = class extends ServiceProvider {
|
|
|
280
303
|
*/
|
|
281
304
|
}
|
|
282
305
|
};
|
|
283
|
-
|
|
284
306
|
//#endregion
|
|
285
|
-
export { LOGDriver, MailServiceProvider, Mailable, Mailer, SESDriver, SMTPDriver, SendMailDriver, Service };
|
|
307
|
+
export { LOGDriver, MailServiceProvider, Mailable, Mailer, SESDriver, SMTPDriver, SendMailDriver, Service };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@h3ravel/mail",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.15.0-alpha.11",
|
|
4
4
|
"description": "Mail drivers and templates system for H3ravel.",
|
|
5
5
|
"h3ravel": {
|
|
6
6
|
"providers": [
|
|
@@ -31,19 +31,18 @@
|
|
|
31
31
|
"directory": "packages/mail"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@h3ravel/core": "
|
|
34
|
+
"@h3ravel/core": "^1.29.0-alpha.11"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/nodemailer": "^6.4.17",
|
|
38
|
-
"typescript": "^
|
|
38
|
+
"typescript": "^6.0.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@aws-sdk/client-sesv2": "^3.
|
|
41
|
+
"@aws-sdk/client-sesv2": "^3.1066.0",
|
|
42
42
|
"nodemailer": "^7.0.5"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
|
-
"
|
|
46
|
-
"build": "tsdown --config-loader unconfig",
|
|
45
|
+
"build": "tsdown --config-loader unrun",
|
|
47
46
|
"dev": "tsx watch src/index.ts",
|
|
48
47
|
"start": "node dist/index.js",
|
|
49
48
|
"lint": "eslint . --ext .ts",
|