@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 CHANGED
@@ -1,4 +1,5 @@
1
- //#region rolldown:runtime
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 __aws_sdk_client_sesv2 = require("@aws-sdk/client-sesv2");
29
- let __h3ravel_core = require("@h3ravel/core");
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 __aws_sdk_client_sesv2.SESv2Client({
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: __aws_sdk_client_sesv2.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) options.html = await this.edgeRenderer(options.viewPath, options.viewData || {});
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 __h3ravel_core.ServiceProvider {
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 * as nodemailer_lib_ses_transport0 from "nodemailer/lib/ses-transport";
4
- import SESConnection from "nodemailer/lib/ses-transport";
5
- import SMTPConnection from "nodemailer/lib/smtp-connection";
6
- import * as nodemailer_lib_sendmail_transport0 from "nodemailer/lib/sendmail-transport";
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<nodemailer_lib_sendmail_transport0.SentMessageInfo>;
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<nodemailer_lib_ses_transport0.SentMessageInfo>;
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<nodemailer_lib_smtp_transport0.SentMessageInfo>;
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) options.html = await this.edgeRenderer(options.viewPath, options.viewData || {});
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.21",
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": "~1.21.12"
34
+ "@h3ravel/core": "^1.29.0-alpha.11"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/nodemailer": "^6.4.17",
38
- "typescript": "^5.4.0"
38
+ "typescript": "^6.0.0"
39
39
  },
40
40
  "dependencies": {
41
- "@aws-sdk/client-sesv2": "^3.864.0",
41
+ "@aws-sdk/client-sesv2": "^3.1066.0",
42
42
  "nodemailer": "^7.0.5"
43
43
  },
44
44
  "scripts": {
45
- "barrel": "barrelsby --directory src --delete --singleQuotes",
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",