@c9up/rover 0.1.5 → 0.1.7

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 (70) hide show
  1. package/README.md +3 -1
  2. package/dist/BaseMail.d.ts +2 -1
  3. package/dist/BaseMail.d.ts.map +1 -1
  4. package/dist/BaseMail.js +9 -4
  5. package/dist/BaseMail.js.map +1 -1
  6. package/dist/Mail.d.ts +65 -11
  7. package/dist/Mail.d.ts.map +1 -1
  8. package/dist/Mail.js +142 -49
  9. package/dist/Mail.js.map +1 -1
  10. package/dist/MessageBuilder.d.ts +44 -7
  11. package/dist/MessageBuilder.d.ts.map +1 -1
  12. package/dist/MessageBuilder.js +57 -10
  13. package/dist/MessageBuilder.js.map +1 -1
  14. package/dist/format.d.ts +12 -0
  15. package/dist/format.d.ts.map +1 -0
  16. package/dist/format.js +14 -0
  17. package/dist/format.js.map +1 -0
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/queue/MailJob.d.ts.map +1 -1
  23. package/dist/queue/MailJob.js.map +1 -1
  24. package/dist/queue/MemoryMailMessenger.d.ts +15 -0
  25. package/dist/queue/MemoryMailMessenger.d.ts.map +1 -0
  26. package/dist/queue/MemoryMailMessenger.js +42 -0
  27. package/dist/queue/MemoryMailMessenger.js.map +1 -0
  28. package/dist/testing/FakeMail.d.ts +30 -3
  29. package/dist/testing/FakeMail.d.ts.map +1 -1
  30. package/dist/testing/FakeMail.js +106 -28
  31. package/dist/testing/FakeMail.js.map +1 -1
  32. package/dist/transports/BrevoTransport.d.ts +14 -0
  33. package/dist/transports/BrevoTransport.d.ts.map +1 -0
  34. package/dist/transports/BrevoTransport.js +134 -0
  35. package/dist/transports/BrevoTransport.js.map +1 -0
  36. package/dist/transports/MailgunTransport.d.ts.map +1 -1
  37. package/dist/transports/MailgunTransport.js +3 -1
  38. package/dist/transports/MailgunTransport.js.map +1 -1
  39. package/dist/transports/ResendTransport.d.ts.map +1 -1
  40. package/dist/transports/ResendTransport.js +4 -2
  41. package/dist/transports/ResendTransport.js.map +1 -1
  42. package/dist/transports/SendGridTransport.d.ts.map +1 -1
  43. package/dist/transports/SendGridTransport.js +2 -2
  44. package/dist/transports/SendGridTransport.js.map +1 -1
  45. package/dist/transports/SesTransport.js +1 -1
  46. package/dist/transports/SesTransport.js.map +1 -1
  47. package/dist/transports/SparkPostTransport.d.ts +14 -0
  48. package/dist/transports/SparkPostTransport.d.ts.map +1 -0
  49. package/dist/transports/SparkPostTransport.js +144 -0
  50. package/dist/transports/SparkPostTransport.js.map +1 -0
  51. package/index.darwin-arm64.node +0 -0
  52. package/index.darwin-x64.node +0 -0
  53. package/index.linux-arm64-gnu.node +0 -0
  54. package/index.linux-x64-gnu.node +0 -0
  55. package/index.win32-x64-msvc.node +0 -0
  56. package/package.json +10 -1
  57. package/src/BaseMail.ts +17 -5
  58. package/src/Mail.ts +205 -62
  59. package/src/MessageBuilder.ts +103 -12
  60. package/src/format.ts +14 -0
  61. package/src/index.ts +5 -1
  62. package/src/queue/MailJob.ts +1 -1
  63. package/src/queue/MemoryMailMessenger.ts +45 -0
  64. package/src/testing/FakeMail.ts +232 -31
  65. package/src/transports/BrevoTransport.ts +174 -0
  66. package/src/transports/MailgunTransport.ts +3 -1
  67. package/src/transports/ResendTransport.ts +4 -2
  68. package/src/transports/SendGridTransport.ts +2 -2
  69. package/src/transports/SesTransport.ts +3 -1
  70. package/src/transports/SparkPostTransport.ts +182 -0
package/README.md CHANGED
@@ -77,7 +77,9 @@ await mail.sendLater((m) => m.to('user@acme.com').subject('Welcome').html('<p>Hi
77
77
  // returns a job id string; the actual send runs on the Bay worker.
78
78
  ```
79
79
 
80
- Without a `QueueManager` wired, `sendLater` throws `MAIL_QUEUE_REQUIRED`.
80
+ Without a `QueueManager` wired, `sendLater` falls back to an in-memory
81
+ messenger (immediate microtask dispatch) — matching `@adonisjs/mail`'s
82
+ `MemoryQueueMessenger`. It never throws for a missing queue.
81
83
 
82
84
  ## Testing
83
85
 
@@ -1,7 +1,7 @@
1
1
  import { type MailMessage, MessageBuilder } from "./MessageBuilder.js";
2
2
  export type MailAddress = string | {
3
3
  address: string;
4
- name: string;
4
+ name?: string;
5
5
  };
6
6
  /**
7
7
  * Abstract base for class-based mail messages (Adonis parity).
@@ -20,6 +20,7 @@ export type MailAddress = string | {
20
20
  export declare abstract class BaseMail {
21
21
  protected readonly message: MessageBuilder;
22
22
  from?: MailAddress;
23
+ replyTo?: MailAddress;
23
24
  subject?: string;
24
25
  constructor();
25
26
  abstract prepare(): void | Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMail.d.ts","sourceRoot":"","sources":["../src/BaseMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;;;;;;;;;;;;GAaG;AACH,8BAAsB,QAAQ;IAC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAwB;IAElE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;;IAUjB,QAAQ,CAAC,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAElC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAYrD"}
1
+ {"version":3,"file":"BaseMail.d.ts","sourceRoot":"","sources":["../src/BaseMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE;;;;;;;;;;;;;GAaG;AACH,8BAAsB,QAAQ;IAC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAwB;IAElE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;;IAUjB,QAAQ,CAAC,OAAO,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAElC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAmBrD"}
package/dist/BaseMail.js CHANGED
@@ -16,6 +16,7 @@ import { MessageBuilder } from "./MessageBuilder.js";
16
16
  export class BaseMail {
17
17
  message = new MessageBuilder();
18
18
  from;
19
+ replyTo;
19
20
  subject;
20
21
  constructor() {
21
22
  if (new.target === BaseMail) {
@@ -24,7 +25,10 @@ export class BaseMail {
24
25
  }
25
26
  async build(viewsRoot) {
26
27
  if (this.from !== undefined) {
27
- this.message.from(formatAddress(this.from));
28
+ applyAddress(this.from, (address, name) => this.message.from(address, name));
29
+ }
30
+ if (this.replyTo !== undefined) {
31
+ applyAddress(this.replyTo, (address, name) => this.message.replyTo(address, name));
28
32
  }
29
33
  if (this.subject !== undefined) {
30
34
  this.message.subject(this.subject);
@@ -35,10 +39,11 @@ export class BaseMail {
35
39
  return this.message.build(viewsRoot);
36
40
  }
37
41
  }
38
- function formatAddress(addr) {
42
+ function applyAddress(addr, set) {
39
43
  if (typeof addr === "string") {
40
- return addr;
44
+ set(addr);
45
+ return;
41
46
  }
42
- return `"${addr.name}" <${addr.address}>`;
47
+ set(addr.address, addr.name);
43
48
  }
44
49
  //# sourceMappingURL=BaseMail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMail.js","sourceRoot":"","sources":["../src/BaseMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIvE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAgB,QAAQ;IACV,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;IAElE,IAAI,CAAe;IACnB,OAAO,CAAU;IAEjB;QACC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACd,0DAA0D,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;IAID,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,+DAA+D;QAC/D,gEAAgE;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACD;AAED,SAAS,aAAa,CAAC,IAAiB;IACvC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"BaseMail.js","sourceRoot":"","sources":["../src/BaseMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIvE;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAgB,QAAQ;IACV,OAAO,GAAmB,IAAI,cAAc,EAAE,CAAC;IAElE,IAAI,CAAe;IACnB,OAAO,CAAe;IACtB,OAAO,CAAU;IAEjB;QACC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACd,0DAA0D,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;IAID,KAAK,CAAC,KAAK,CAAC,SAAkB;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAChC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CACnC,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,+DAA+D;QAC/D,gEAAgE;QAChE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACD;AAED,SAAS,YAAY,CACpB,IAAiB,EACjB,GAA6C;IAE7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC,CAAC;QACV,OAAO;IACR,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
package/dist/Mail.d.ts CHANGED
@@ -40,6 +40,17 @@ export interface MailTransport {
40
40
  export interface EmitterLike {
41
41
  emit(event: string, data: unknown): void;
42
42
  }
43
+ /**
44
+ * Emitted (`mail:sending`) right before the transport `send` runs — no
45
+ * `messageId` yet, since the provider hasn't accepted the message.
46
+ */
47
+ export interface MailSendingEvent {
48
+ to: string[];
49
+ cc: string[];
50
+ bcc: string[];
51
+ transportName: string;
52
+ timestamp: number;
53
+ }
43
54
  export interface MailSentEvent {
44
55
  messageId: string;
45
56
  to: string[];
@@ -48,6 +59,20 @@ export interface MailSentEvent {
48
59
  transportName: string;
49
60
  timestamp: number;
50
61
  }
62
+ /**
63
+ * Emitted for the queue lifecycle (`mail:queueing` / `mail:queued`). `jobId` is
64
+ * only present on `mail:queued` (once the job has been accepted by the queue /
65
+ * in-memory messenger).
66
+ */
67
+ export interface MailQueueEvent {
68
+ to: string[];
69
+ cc: string[];
70
+ bcc: string[];
71
+ transportName: string;
72
+ queue: string;
73
+ jobId?: string;
74
+ timestamp: number;
75
+ }
51
76
  export interface MailFailedEvent {
52
77
  messageId: string;
53
78
  to: string[];
@@ -83,12 +108,16 @@ export interface MailConfig {
83
108
  }
84
109
  /**
85
110
  * Event hooks invoked by the internal dispatch loop. Default implementations
86
- * are no-ops; when an event-bus `EmitterLike` is wired, the hooks emit
87
- * `mail.sent` / `mail.failed`. Tests inject spies.
111
+ * are no-ops; when an event-bus `EmitterLike` is wired, the hooks emit the
112
+ * `mail:*` events (colon-namespaced, `@adonisjs/mail` parity). Tests inject
113
+ * spies.
88
114
  */
89
115
  export interface MailHooks {
116
+ onSending?(event: MailSendingEvent): void;
90
117
  onSent?(event: MailSentEvent): void;
91
118
  onFailed?(event: MailFailedEvent): void;
119
+ onQueueing?(event: MailQueueEvent): void;
120
+ onQueued?(event: MailQueueEvent): void;
92
121
  }
93
122
  /**
94
123
  * Message builder — fluent API for composing an email.
@@ -135,9 +164,10 @@ export declare class Mail {
135
164
  /** Send an email using a class-based `BaseMail` instance. */
136
165
  send(instance: BaseMail, transport?: string): Promise<void>;
137
166
  /**
138
- * Enqueue a send onto the Bay queue. Returns the job id. Throws
139
- * `MAIL_QUEUE_REQUIRED` if no `QueueManager` was wired through the
140
- * constructor options.
167
+ * Enqueue a send. Returns the job id. When a `@c9up/bay` `QueueManager` was
168
+ * wired it enqueues there; otherwise it falls back to the default in-memory
169
+ * messenger (immediate microtask dispatch), matching `@adonisjs/mail`'s
170
+ * `MemoryQueueMessenger` — `sendLater()` never throws for a missing queue.
141
171
  */
142
172
  sendLater(arg: ((message: MessageBuilder) => void) | BaseMail, options?: {
143
173
  transport?: string;
@@ -152,15 +182,39 @@ export declare class Mail {
152
182
  * `{ maxAttempts: 1 }` so queue-level and sync-level retries don't compound.
153
183
  */
154
184
  dispatchMessage(message: MailMessage, transportName?: string, overrideRetry?: RetryConfig): Promise<void>;
155
- /** Get a specific transport. */
156
- use(name: string): MailTransport;
157
185
  /**
158
- * Swap the default transport with a `FakeMail` that captures every send.
159
- * Call `restore()` to re-install the original. Throws if a fake is already
160
- * active — nested fakes always indicate a forgotten `restore()`.
186
+ * Get a `Mailer` bound to a named transport, so `mail.use('mailgun').send(cb)`
187
+ * routes through that transport (Adonis parity). Mailers are cached per name.
188
+ */
189
+ use(name: string): Mailer;
190
+ /** @internal Resolve the raw transport instance behind a mailer name. */
191
+ transportFor(name: string): MailTransport;
192
+ /**
193
+ * Enter fake mode. Every subsequent `send()` / `sendLater()` — including via
194
+ * `use(name)` — is captured by the returned `FakeMail` instead of hitting a
195
+ * transport or the queue. Call `restore()` to exit. Throws if already faking
196
+ * — nested fakes always indicate a forgotten `restore()`.
161
197
  */
162
198
  fake(): FakeMail;
163
- /** Undo the swap installed by `fake()`. No-op if no fake is active. */
199
+ /** Exit fake mode. No-op if not currently faking. */
164
200
  restore(): void;
165
201
  }
202
+ /**
203
+ * A `Mailer` binds a named transport to the `send` / `sendLater` API so
204
+ * `mail.use('mailgun').send(cb)` routes through that transport (Adonis parity).
205
+ * It delegates back to the owning `Mail`, so fake mode and lifecycle events are
206
+ * honoured uniformly.
207
+ */
208
+ export declare class Mailer {
209
+ #private;
210
+ constructor(mail: Mail, name: string);
211
+ /** The transport name this mailer is bound to. */
212
+ get name(): string;
213
+ /** The underlying transport instance. */
214
+ get transport(): MailTransport;
215
+ send(arg: ((message: MessageBuilder) => void) | BaseMail): Promise<void>;
216
+ sendLater(arg: ((message: MessageBuilder) => void) | BaseMail, options?: {
217
+ queue?: string;
218
+ }): Promise<string>;
219
+ }
166
220
  //# sourceMappingURL=Mail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mail.d.ts","sourceRoot":"","sources":["../src/Mail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mail.d.ts","sourceRoot":"","sources":["../src/Mail.ts"],"names":[],"mappings":"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"}
package/dist/Mail.js CHANGED
@@ -3,6 +3,7 @@ import nodemailer from "nodemailer";
3
3
  import { BaseMail } from "./BaseMail.js";
4
4
  import { MessageBuilder, } from "./MessageBuilder.js";
5
5
  import { MAIL_JOB_NAME, MailJobHandler, } from "./queue/MailJob.js";
6
+ import { MemoryMailMessenger } from "./queue/MemoryMailMessenger.js";
6
7
  import { RoverError } from "./RoverError.js";
7
8
  import { computeBackoffMs, isRetryableError, resolveRetryConfig, } from "./retry.js";
8
9
  import { setViewsRoot } from "./templating/SimpleTemplate.js";
@@ -78,6 +79,10 @@ export class SmtpTransport {
78
79
  subject: message.subject,
79
80
  html: message.html,
80
81
  text: message.text,
82
+ priority: message.priority,
83
+ messageId: message.messageId,
84
+ inReplyTo: message.inReplyTo,
85
+ references: message.references,
81
86
  headers: Object.keys(message.headers).length
82
87
  ? message.headers
83
88
  : undefined,
@@ -86,6 +91,7 @@ export class SmtpTransport {
86
91
  filename: att.filename,
87
92
  content: att.content,
88
93
  contentType: att.contentType,
94
+ cid: att.cid,
89
95
  }))
90
96
  : undefined,
91
97
  });
@@ -152,10 +158,14 @@ export function registerTransport(name, factory) {
152
158
  */
153
159
  export class Mail {
154
160
  #transports = new Map();
161
+ #mailers = new Map();
155
162
  #defaultTransport;
156
163
  #defaultFrom;
157
- #fakeSnapshot = null;
164
+ /** Active `FakeMail`, when `fake()` mode is on. Manager-level (captures both `send` and `sendLater`), not a transport swap. */
165
+ #fake = null;
158
166
  #queue = null;
167
+ /** Default in-memory messenger for `sendLater()` when no Bay queue is wired (Adonis MemoryQueueMessenger parity). */
168
+ #memoryMessenger;
159
169
  #queueName;
160
170
  #queueMaxAttempts;
161
171
  #globalRetry;
@@ -174,6 +184,7 @@ export class Mail {
174
184
  this.#globalRetry = config.retry;
175
185
  this.#hooks = options?.hooks ?? {};
176
186
  this.#emitter = options?.emitter ?? null;
187
+ this.#memoryMessenger = new MemoryMailMessenger(this, this.#emitter);
177
188
  this.#viewsRoot = config.viewsRoot;
178
189
  // Keep mutating the process-wide global too: standalone MessageBuilder
179
190
  // usage (not routed through this Mail) still reads it. The per-instance
@@ -200,6 +211,23 @@ export class Mail {
200
211
  }
201
212
  async send(arg, transport) {
202
213
  const transportName = transport ?? this.#defaultTransport;
214
+ // Fake mode is manager-level: capture the built message (and the source
215
+ // BaseMail, for constructor-based assertions) instead of touching a
216
+ // transport. Still fire the send lifecycle so event wiring stays testable.
217
+ if (this.#fake !== null) {
218
+ const message = await this.#buildMessage(arg);
219
+ this.#fake.trackSent(message, arg instanceof BaseMail ? arg : undefined);
220
+ const base = {
221
+ to: message.to.slice(),
222
+ cc: message.cc.slice(),
223
+ bcc: message.bcc.slice(),
224
+ transportName,
225
+ timestamp: Date.now(),
226
+ };
227
+ this.#fireSending(base);
228
+ this.#fireSent({ ...base, messageId: randomBytes(16).toString("hex") });
229
+ return;
230
+ }
203
231
  // Validate transport up-front before running any callback / prepare() side effects.
204
232
  if (!this.#transports.has(transportName)) {
205
233
  throw new Error(`Mail transport '${transportName}' not configured`);
@@ -208,19 +236,37 @@ export class Mail {
208
236
  await this.dispatchMessage(message, transportName);
209
237
  }
210
238
  /**
211
- * Enqueue a send onto the Bay queue. Returns the job id. Throws
212
- * `MAIL_QUEUE_REQUIRED` if no `QueueManager` was wired through the
213
- * constructor options.
239
+ * Enqueue a send. Returns the job id. When a `@c9up/bay` `QueueManager` was
240
+ * wired it enqueues there; otherwise it falls back to the default in-memory
241
+ * messenger (immediate microtask dispatch), matching `@adonisjs/mail`'s
242
+ * `MemoryQueueMessenger` — `sendLater()` never throws for a missing queue.
214
243
  */
215
244
  async sendLater(arg, options) {
216
- if (this.#queue === null) {
217
- throw new RoverError("MAIL_QUEUE_REQUIRED", "mail.sendLater() requires @c9up/bay QueueManager", {
218
- hint: "Register @c9up/bay and pass the QueueManager to Mail via RoverProvider, or use mail.send() for synchronous delivery.",
219
- });
220
- }
221
245
  const message = await this.#buildMessage(arg);
222
246
  const queueName = options?.queue ?? this.#queueName;
223
- return this.#queue.dispatch(queueName, { message, transport: options?.transport }, { maxAttempts: this.#queueMaxAttempts });
247
+ const transportName = options?.transport ?? this.#defaultTransport;
248
+ const base = {
249
+ to: message.to.slice(),
250
+ cc: message.cc.slice(),
251
+ bcc: message.bcc.slice(),
252
+ transportName,
253
+ queue: queueName,
254
+ timestamp: Date.now(),
255
+ };
256
+ // Fake mode: capture into the queued bucket, don't dispatch.
257
+ if (this.#fake !== null) {
258
+ this.#fake.trackQueued(message, arg instanceof BaseMail ? arg : undefined);
259
+ const jobId = `fake_${randomBytes(12).toString("hex")}`;
260
+ this.#fireQueueing(base);
261
+ this.#fireQueued({ ...base, jobId });
262
+ return jobId;
263
+ }
264
+ this.#fireQueueing(base);
265
+ const jobId = this.#queue !== null
266
+ ? await this.#queue.dispatch(queueName, { message, transport: options?.transport }, { maxAttempts: this.#queueMaxAttempts })
267
+ : this.#memoryMessenger.queue(message, options?.transport);
268
+ this.#fireQueued({ ...base, jobId });
269
+ return jobId;
224
270
  }
225
271
  /**
226
272
  * Shared transport-resolve-then-send helper used by `send()` and `MailJobHandler`.
@@ -246,6 +292,15 @@ export class Mail {
246
292
  : resolveRetryConfig(this.#globalRetry, this.#transportRetry.get(name));
247
293
  const generatedId = randomBytes(16).toString("hex");
248
294
  let lastError;
295
+ // Fire once before the first attempt — `mail:sending` signals intent, not
296
+ // per-retry, matching @adonisjs/mail.
297
+ this.#fireSending({
298
+ to: message.to.slice(),
299
+ cc: message.cc.slice(),
300
+ bcc: message.bcc.slice(),
301
+ transportName: name,
302
+ timestamp: Date.now(),
303
+ });
249
304
  for (let attempt = 1; attempt <= retry.maxAttempts; attempt += 1) {
250
305
  let sendResult;
251
306
  try {
@@ -315,34 +370,36 @@ export class Mail {
315
370
  clone.stack = err.stack;
316
371
  return clone;
317
372
  }
373
+ #fireSending(event) {
374
+ this.#fire("mail:sending", event, this.#hooks.onSending);
375
+ }
318
376
  #fireSent(event) {
319
- // Hooks are in user-land and may throw; their failure must not poison
320
- // delivery outcome. Emitter errors are already defensively swallowed.
321
- try {
322
- this.#hooks.onSent?.(event);
323
- }
324
- catch (err) {
325
- process.stderr.write(`[rover] onSent hook threw: ${err instanceof Error ? err.message : String(err)}\n`);
326
- }
327
- if (this.#emitter) {
328
- try {
329
- this.#emitter.emit("mail.sent", event);
330
- }
331
- catch {
332
- // Event bus failure ≠ mail delivery failure — swallow.
333
- }
334
- }
377
+ this.#fire("mail:sent", event, this.#hooks.onSent);
335
378
  }
336
379
  #fireFailed(event) {
380
+ this.#fire("mail:failed", event, this.#hooks.onFailed);
381
+ }
382
+ #fireQueueing(event) {
383
+ this.#fire("mail:queueing", event, this.#hooks.onQueueing);
384
+ }
385
+ #fireQueued(event) {
386
+ this.#fire("mail:queued", event, this.#hooks.onQueued);
387
+ }
388
+ /**
389
+ * Fan a lifecycle event out to the (optional, user-land, may-throw) hook and
390
+ * the (optional) event bus. Hook and bus failures are isolated: neither can
391
+ * poison the delivery outcome.
392
+ */
393
+ #fire(name, event, hook) {
337
394
  try {
338
- this.#hooks.onFailed?.(event);
395
+ hook?.(event);
339
396
  }
340
397
  catch (err) {
341
- process.stderr.write(`[rover] onFailed hook threw: ${err instanceof Error ? err.message : String(err)}\n`);
398
+ process.stderr.write(`[rover] ${name} hook threw: ${err instanceof Error ? err.message : String(err)}\n`);
342
399
  }
343
400
  if (this.#emitter) {
344
401
  try {
345
- this.#emitter.emit("mail.failed", event);
402
+ this.#emitter.emit(name, event);
346
403
  }
347
404
  catch {
348
405
  // Event bus failure ≠ mail delivery failure — swallow.
@@ -364,39 +421,75 @@ export class Mail {
364
421
  validateMailMessage(result);
365
422
  return result;
366
423
  }
367
- /** Get a specific transport. */
424
+ /**
425
+ * Get a `Mailer` bound to a named transport, so `mail.use('mailgun').send(cb)`
426
+ * routes through that transport (Adonis parity). Mailers are cached per name.
427
+ */
368
428
  use(name) {
429
+ if (!this.#transports.has(name)) {
430
+ throw new Error(`Mail transport '${name}' not configured`);
431
+ }
432
+ let mailer = this.#mailers.get(name);
433
+ if (mailer === undefined) {
434
+ mailer = new Mailer(this, name);
435
+ this.#mailers.set(name, mailer);
436
+ }
437
+ return mailer;
438
+ }
439
+ /** @internal Resolve the raw transport instance behind a mailer name. */
440
+ transportFor(name) {
369
441
  const t = this.#transports.get(name);
370
442
  if (!t)
371
443
  throw new Error(`Mail transport '${name}' not configured`);
372
444
  return t;
373
445
  }
374
446
  /**
375
- * Swap the default transport with a `FakeMail` that captures every send.
376
- * Call `restore()` to re-install the original. Throws if a fake is already
377
- * active — nested fakes always indicate a forgotten `restore()`.
447
+ * Enter fake mode. Every subsequent `send()` / `sendLater()` — including via
448
+ * `use(name)` — is captured by the returned `FakeMail` instead of hitting a
449
+ * transport or the queue. Call `restore()` to exit. Throws if already faking
450
+ * — nested fakes always indicate a forgotten `restore()`.
378
451
  */
379
452
  fake() {
380
- if (this.#fakeSnapshot !== null) {
453
+ if (this.#fake !== null) {
381
454
  throw new Error("Mail.fake() already active — call restore() first");
382
455
  }
383
- const transportName = this.#defaultTransport;
384
- const original = this.#transports.get(transportName);
385
- if (!original) {
386
- throw new Error(`Cannot fake default transport '${transportName}' — not configured`);
387
- }
388
- const fake = new FakeMail();
389
- this.#fakeSnapshot = { transportName, original };
390
- this.#transports.set(transportName, fake);
391
- return fake;
456
+ this.#fake = new FakeMail();
457
+ return this.#fake;
392
458
  }
393
- /** Undo the swap installed by `fake()`. No-op if no fake is active. */
459
+ /** Exit fake mode. No-op if not currently faking. */
394
460
  restore() {
395
- if (this.#fakeSnapshot === null)
396
- return;
397
- const { transportName, original } = this.#fakeSnapshot;
398
- this.#transports.set(transportName, original);
399
- this.#fakeSnapshot = null;
461
+ this.#fake = null;
462
+ }
463
+ }
464
+ /**
465
+ * A `Mailer` binds a named transport to the `send` / `sendLater` API so
466
+ * `mail.use('mailgun').send(cb)` routes through that transport (Adonis parity).
467
+ * It delegates back to the owning `Mail`, so fake mode and lifecycle events are
468
+ * honoured uniformly.
469
+ */
470
+ export class Mailer {
471
+ #mail;
472
+ #name;
473
+ constructor(mail, name) {
474
+ this.#mail = mail;
475
+ this.#name = name;
476
+ }
477
+ /** The transport name this mailer is bound to. */
478
+ get name() {
479
+ return this.#name;
480
+ }
481
+ /** The underlying transport instance. */
482
+ get transport() {
483
+ return this.#mail.transportFor(this.#name);
484
+ }
485
+ send(arg) {
486
+ // Narrow so the overloaded `Mail.send` resolves without a union cast.
487
+ return arg instanceof BaseMail
488
+ ? this.#mail.send(arg, this.#name)
489
+ : this.#mail.send(arg, this.#name);
490
+ }
491
+ sendLater(arg, options) {
492
+ return this.#mail.sendLater(arg, { ...options, transport: this.#name });
400
493
  }
401
494
  }
402
495
  /**
package/dist/Mail.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Mail.js","sourceRoot":"","sources":["../src/Mail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Mail.js","sourceRoot":"","sources":["../src/Mail.ts"],"names":[],"mappings":"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"}
@@ -8,25 +8,62 @@ export interface MailMessage {
8
8
  html?: string;
9
9
  text?: string;
10
10
  attachments: MailAttachment[];
11
- headers: Record<string, string>;
11
+ headers: Record<string, string | string[]>;
12
+ /** Email priority hint (nodemailer `priority`). */
13
+ priority?: "low" | "normal" | "high";
14
+ /** Custom `Message-ID` header (threading / idempotency). */
15
+ messageId?: string;
16
+ /** `In-Reply-To` header — the message id this email replies to. */
17
+ inReplyTo?: string;
18
+ /** `References` header — the thread's message ids. */
19
+ references?: string[];
12
20
  }
13
21
  export interface MailAttachment {
14
22
  filename: string;
15
23
  content: Buffer | string;
16
24
  contentType?: string;
25
+ /** Content-ID for inline (CID) embedding — set via `embedData()`. */
26
+ cid?: string;
17
27
  }
28
+ /**
29
+ * A recipient in object form (Adonis parity). `name` is optional and, when
30
+ * present, produces the `"Name" <address>` display form.
31
+ */
32
+ export interface RecipientObject {
33
+ address: string;
34
+ name?: string;
35
+ }
36
+ export type Recipient = string | RecipientObject;
18
37
  export declare class MessageBuilder {
19
38
  #private;
20
- from(address: string): this;
21
- to(address: string): this;
22
- cc(address: string): this;
23
- bcc(address: string): this;
24
- replyTo(address: string): this;
39
+ from(address: string, name?: string): this;
40
+ to(address: string, name?: string): this;
41
+ to(addresses: Recipient[]): this;
42
+ cc(address: string, name?: string): this;
43
+ cc(addresses: Recipient[]): this;
44
+ bcc(address: string, name?: string): this;
45
+ bcc(addresses: Recipient[]): this;
46
+ replyTo(address: string, name?: string): this;
25
47
  subject(text: string): this;
26
48
  html(content: string): this;
27
49
  text(content: string): this;
50
+ /** Email priority (`low` | `normal` | `high`). */
51
+ priority(priority: "low" | "normal" | "high"): this;
52
+ /** Set a custom `Message-ID` header. */
53
+ messageId(messageId: string): this;
54
+ /** Set the `In-Reply-To` header for threading replies. */
55
+ inReplyTo(messageId: string): this;
56
+ /** Set the `References` header (thread message ids). */
57
+ references(messageIds: string[]): this;
28
58
  attach(filename: string, content: Buffer | string, contentType?: string): this;
29
- header(key: string, value: string): this;
59
+ /**
60
+ * Embed inline content referenced by a Content-ID. Use `cid:<cid>` inside the
61
+ * HTML body to reference it. Content-based (rover is agnostic / no-fs): the
62
+ * path-based `embed(file, cid)` form from `@adonisjs/mail` is a deliberate
63
+ * divergence — pass the bytes directly instead.
64
+ */
65
+ embedData(content: Buffer | string, cid: string, contentType?: string): this;
66
+ header(key: string, value: string | string[]): this;
30
67
  /**
31
68
  * Queue an HTML template render. The render happens lazily at `build()` time
32
69
  * so the fluent chain stays synchronous; `build()` is async and awaits the