@c9up/rover 0.1.12 → 0.1.14

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 +4 -1
  2. package/dist/Mail.d.ts +14 -6
  3. package/dist/Mail.d.ts.map +1 -1
  4. package/dist/Mail.js +42 -25
  5. package/dist/Mail.js.map +1 -1
  6. package/dist/MessageBuilder.js +4 -4
  7. package/dist/MessageBuilder.js.map +1 -1
  8. package/dist/RoverProvider.js +1 -1
  9. package/dist/RoverProvider.js.map +1 -1
  10. package/dist/config.d.ts +8 -7
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +8 -7
  13. package/dist/config.js.map +1 -1
  14. package/dist/configure.d.ts +18 -0
  15. package/dist/configure.d.ts.map +1 -0
  16. package/dist/configure.js +39 -0
  17. package/dist/configure.js.map +1 -0
  18. package/dist/format.js +1 -1
  19. package/dist/format.js.map +1 -1
  20. package/dist/queue/MailJob.js +4 -4
  21. package/dist/queue/MailJob.js.map +1 -1
  22. package/dist/retry.d.ts +2 -2
  23. package/dist/retry.js +7 -7
  24. package/dist/retry.js.map +1 -1
  25. package/dist/templating/SimpleTemplate.js +8 -8
  26. package/dist/templating/SimpleTemplate.js.map +1 -1
  27. package/dist/templating/loadNapi.js +8 -8
  28. package/dist/templating/loadNapi.js.map +1 -1
  29. package/dist/transports/BrevoTransport.js +3 -3
  30. package/dist/transports/BrevoTransport.js.map +1 -1
  31. package/dist/transports/MailgunTransport.js +6 -6
  32. package/dist/transports/MailgunTransport.js.map +1 -1
  33. package/dist/transports/ResendTransport.js +3 -3
  34. package/dist/transports/ResendTransport.js.map +1 -1
  35. package/dist/transports/SendGridTransport.js +4 -4
  36. package/dist/transports/SendGridTransport.js.map +1 -1
  37. package/dist/transports/SesTransport.js +4 -4
  38. package/dist/transports/SesTransport.js.map +1 -1
  39. package/dist/transports/SparkPostTransport.js +3 -3
  40. package/dist/transports/SparkPostTransport.js.map +1 -1
  41. package/dist/transports/fetchError.d.ts +2 -2
  42. package/dist/transports/fetchError.js +4 -4
  43. package/dist/transports/fetchError.js.map +1 -1
  44. package/dist/webhooks/resend.d.ts.map +1 -1
  45. package/dist/webhooks/resend.js +21 -1
  46. package/dist/webhooks/resend.js.map +1 -1
  47. package/index.darwin-arm64.node +0 -0
  48. package/index.darwin-x64.node +0 -0
  49. package/index.linux-arm64-gnu.node +0 -0
  50. package/index.linux-x64-gnu.node +0 -0
  51. package/index.win32-x64-msvc.node +0 -0
  52. package/package.json +5 -1
  53. package/src/Mail.ts +66 -30
  54. package/src/MessageBuilder.ts +4 -4
  55. package/src/RoverProvider.ts +1 -1
  56. package/src/config.ts +8 -7
  57. package/src/configure.ts +53 -0
  58. package/src/format.ts +1 -1
  59. package/src/queue/MailJob.ts +4 -4
  60. package/src/retry.ts +7 -7
  61. package/src/templating/SimpleTemplate.ts +8 -8
  62. package/src/templating/loadNapi.ts +8 -8
  63. package/src/transports/BrevoTransport.ts +3 -3
  64. package/src/transports/MailgunTransport.ts +6 -6
  65. package/src/transports/ResendTransport.ts +3 -3
  66. package/src/transports/SendGridTransport.ts +4 -4
  67. package/src/transports/SesTransport.ts +4 -4
  68. package/src/transports/SparkPostTransport.ts +3 -3
  69. package/src/transports/fetchError.ts +4 -4
  70. package/src/webhooks/resend.ts +26 -1
@@ -0,0 +1,39 @@
1
+ /**
2
+ * `ream configure @c9up/rover` — wire mail in one command.
3
+ *
4
+ * The provider alone is not enough: it reads `config/mail.ts`, and a package
5
+ * registered without one falls back to a default that is rarely the one an
6
+ * application wants. Writing both together is what makes `ream add` mean
7
+ * installed AND working.
8
+ */
9
+ export async function configure(codemods) {
10
+ // The config below reads these, so they are declared here. Writing the file
11
+ // without them leaves an application whose config asks the environment for
12
+ // something nothing ever put there.
13
+ await codemods.addEnvVars({
14
+ MAIL_MAILER: "log",
15
+ MAIL_FROM: "noreply@example.com",
16
+ SMTP_HOST: "",
17
+ SMTP_PORT: "587",
18
+ });
19
+ await codemods.addProvider("@c9up/rover/provider");
20
+ await codemods.writeFile("config/mail.ts", `import { defineConfig, transports } from '@c9up/rover'
21
+ import env from '#start/env'
22
+
23
+ export default defineConfig({
24
+ // Has to name one of the mailers below, or the application refuses to boot.
25
+ default: env.get('MAIL_MAILER', 'log'),
26
+ from: env.get('MAIL_FROM', 'noreply@example.com'),
27
+
28
+ mailers: {
29
+ // Writes to the logger instead of sending. The development mailer.
30
+ log: transports.log(),
31
+
32
+ smtp: transports.smtp({
33
+ host: env.get('SMTP_HOST', ''),
34
+ port: Number(env.get('SMTP_PORT', '587')),
35
+ }),
36
+ },
37
+ })`);
38
+ }
39
+ //# sourceMappingURL=configure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAkB;IACjD,4EAA4E;IAC5E,2EAA2E;IAC3E,oCAAoC;IACpC,MAAM,QAAQ,CAAC,UAAU,CAAC;QACzB,WAAW,EAAE,KAAK;QAClB,SAAS,EAAE,qBAAqB;QAChC,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,QAAQ,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACnD,MAAM,QAAQ,CAAC,SAAS,CACvB,gBAAgB,EAChB;;;;;;;;;;;;;;;;;GAiBC,CACD,CAAC;AACH,CAAC"}
package/dist/format.js CHANGED
@@ -34,7 +34,7 @@ export function formatAddress(address, name) {
34
34
  function assertHeaderSafe(value, what) {
35
35
  if (!HEADER_BREAKERS.test(value))
36
36
  return;
37
- throw new RoverError("MAIL_HEADER_INJECTION", `The ${what} contains a line break or NUL, which cannot appear in a mail header.`, {
37
+ throw new RoverError("E_MAIL_HEADER_INJECTION", `The ${what} contains a line break or NUL, which cannot appear in a mail header.`, {
38
38
  hint: "Strip CR/LF/NUL from user-supplied names and addresses before building the message.",
39
39
  });
40
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,eAAe,GAAG,UAAU,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAa;IAC3D,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IACtD,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,qBAAqB;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,IAAI,MAAM,MAAM,OAAO,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO;IACzC,MAAM,IAAI,UAAU,CACnB,uBAAuB,EACvB,OAAO,IAAI,sEAAsE,EACjF;QACC,IAAI,EAAE,qFAAqF;KAC3F,CACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,4EAA4E;AAC5E,MAAM,eAAe,GAAG,UAAU,CAAC;AAEnC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,IAAa;IAC3D,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACrC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IACtD,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,2EAA2E;IAC3E,qBAAqB;IACrB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,IAAI,MAAM,MAAM,OAAO,GAAG,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAE,IAAY;IACpD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO;IACzC,MAAM,IAAI,UAAU,CACnB,yBAAyB,EACzB,OAAO,IAAI,sEAAsE,EACjF;QACC,IAAI,EAAE,qFAAqF;KAC3F,CACD,CAAC;AACH,CAAC"}
@@ -26,18 +26,18 @@ export class MailJobHandler {
26
26
  }
27
27
  /**
28
28
  * Narrow an `unknown` payload from the queue driver into a `MailJobPayload`.
29
- * Throws `MAIL_JOB_MALFORMED` when the shape is unrecognisable so Bay records
29
+ * Throws `E_MAIL_JOB_MALFORMED` when the shape is unrecognisable so Bay records
30
30
  * a clean failure rather than crashing inside `dispatchMessage` with a raw
31
31
  * `TypeError`.
32
32
  */
33
33
  function validatePayload(payload) {
34
34
  if (!payload || typeof payload !== "object") {
35
- throw new RoverError("MAIL_JOB_MALFORMED", "Mail job payload is missing or not an object", { hint: "Queue driver returned a non-object — check serialisation." });
35
+ throw new RoverError("E_MAIL_JOB_MALFORMED", "Mail job payload is missing or not an object", { hint: "Queue driver returned a non-object — check serialisation." });
36
36
  }
37
37
  const asObj = payload;
38
38
  const message = asObj.message;
39
39
  if (!message || typeof message !== "object") {
40
- throw new RoverError("MAIL_JOB_MALFORMED", "Mail job payload.message is missing or not an object", {
40
+ throw new RoverError("E_MAIL_JOB_MALFORMED", "Mail job payload.message is missing or not an object", {
41
41
  hint: "Payload shape must be { message: MailMessage, transport?: string }.",
42
42
  });
43
43
  }
@@ -45,7 +45,7 @@ function validatePayload(payload) {
45
45
  if (typeof m.from !== "string" ||
46
46
  !Array.isArray(m.to) ||
47
47
  !Array.isArray(m.attachments)) {
48
- throw new RoverError("MAIL_JOB_MALFORMED", "Mail job payload.message does not match MailMessage shape", {
48
+ throw new RoverError("E_MAIL_JOB_MALFORMED", "Mail job payload.message does not match MailMessage shape", {
49
49
  hint: "Expected `{ from: string, to: string[], ..., attachments: [] }`.",
50
50
  });
51
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MailJob.js","sourceRoot":"","sources":["../../src/queue/MailJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MailJob.js","sourceRoot":"","sources":["../../src/queue/MailJob.ts"],"names":[],"mappings":"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"}
package/dist/retry.d.ts CHANGED
@@ -7,8 +7,8 @@ export interface RetryConfig {
7
7
  export declare const DEFAULT_RETRY_CONFIG: Required<RetryConfig>;
8
8
  /**
9
9
  * A failure is retryable when:
10
- * - it's a `MAIL_PROVIDER_ERROR` with `upstreamStatus` 429 or ≥ 500
11
- * - or it's a `MAIL_PROVIDER_ERROR` whose `context.networkCode` is a known
10
+ * - it's a `E_MAIL_PROVIDER_ERROR` with `upstreamStatus` 429 or ≥ 500
11
+ * - or it's a `E_MAIL_PROVIDER_ERROR` whose `context.networkCode` is a known
12
12
  * retryable Node errno (SDK wrappers surface the original errno this way
13
13
  * when the HTTP layer never produced a status)
14
14
  * - or it's a raw Error with a matching Node networking errno on `.code`
package/dist/retry.js CHANGED
@@ -14,15 +14,15 @@ const RETRYABLE_ERRNO = new Set([
14
14
  ]);
15
15
  /**
16
16
  * A failure is retryable when:
17
- * - it's a `MAIL_PROVIDER_ERROR` with `upstreamStatus` 429 or ≥ 500
18
- * - or it's a `MAIL_PROVIDER_ERROR` whose `context.networkCode` is a known
17
+ * - it's a `E_MAIL_PROVIDER_ERROR` with `upstreamStatus` 429 or ≥ 500
18
+ * - or it's a `E_MAIL_PROVIDER_ERROR` whose `context.networkCode` is a known
19
19
  * retryable Node errno (SDK wrappers surface the original errno this way
20
20
  * when the HTTP layer never produced a status)
21
21
  * - or it's a raw Error with a matching Node networking errno on `.code`
22
22
  * 4xx (non-429) is treated as permanent: retrying won't help.
23
23
  */
24
24
  export function isRetryableError(err) {
25
- if (err instanceof RoverError && err.code === "MAIL_PROVIDER_ERROR") {
25
+ if (err instanceof RoverError && err.code === "E_MAIL_PROVIDER_ERROR") {
26
26
  const statusStr = err.context.upstreamStatus;
27
27
  const status = Number(statusStr);
28
28
  if (Number.isFinite(status)) {
@@ -59,7 +59,7 @@ export function computeBackoffMs(attempt, config, err) {
59
59
  // SES/Resend transports capture it into `context.retryAfter`). Value is
60
60
  // seconds per HTTP RFC 7231 §7.1.3; we cap at `maxDelayMs` so a malicious
61
61
  // or mistaken provider can't force a very-long wait.
62
- if (err instanceof RoverError && err.code === "MAIL_PROVIDER_ERROR") {
62
+ if (err instanceof RoverError && err.code === "E_MAIL_PROVIDER_ERROR") {
63
63
  const hint = err.context.retryAfter;
64
64
  if (hint) {
65
65
  const seconds = Number(hint);
@@ -84,17 +84,17 @@ export function resolveRetryConfig(globalConfig, transportConfig) {
84
84
  ...strip(transportConfig),
85
85
  };
86
86
  if (!Number.isInteger(merged.maxAttempts) || merged.maxAttempts < 1) {
87
- throw new RoverError("MAIL_RETRY_CONFIG", `RetryConfig.maxAttempts must be an integer >= 1 (got ${merged.maxAttempts})`, { hint: "Set retry.maxAttempts to a positive integer." });
87
+ throw new RoverError("E_MAIL_RETRY_CONFIG", `RetryConfig.maxAttempts must be an integer >= 1 (got ${merged.maxAttempts})`, { hint: "Set retry.maxAttempts to a positive integer." });
88
88
  }
89
89
  if (typeof merged.baseDelayMs !== "number" ||
90
90
  !Number.isFinite(merged.baseDelayMs) ||
91
91
  merged.baseDelayMs < 0) {
92
- throw new RoverError("MAIL_RETRY_CONFIG", `RetryConfig.baseDelayMs must be a non-negative finite number (got ${merged.baseDelayMs})`, { hint: "Use 0 or a positive number; the 50 ms floor kicks in anyway." });
92
+ throw new RoverError("E_MAIL_RETRY_CONFIG", `RetryConfig.baseDelayMs must be a non-negative finite number (got ${merged.baseDelayMs})`, { hint: "Use 0 or a positive number; the 50 ms floor kicks in anyway." });
93
93
  }
94
94
  if (typeof merged.factor !== "number" ||
95
95
  !Number.isFinite(merged.factor) ||
96
96
  merged.factor <= 0) {
97
- throw new RoverError("MAIL_RETRY_CONFIG", `RetryConfig.factor must be a positive finite number (got ${merged.factor})`, { hint: "Use >= 1 for exponential growth; 1 means constant delay." });
97
+ throw new RoverError("E_MAIL_RETRY_CONFIG", `RetryConfig.factor must be a positive finite number (got ${merged.factor})`, { hint: "Use >= 1 for exponential growth; 1 means constant delay." });
98
98
  }
99
99
  return merged;
100
100
  }
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
@@ -67,10 +67,10 @@ function dataReplacer(_key, value) {
67
67
  if (value >= MIN_SAFE_BIGINT && value <= MAX_SAFE_BIGINT) {
68
68
  return Number(value);
69
69
  }
70
- throw new RoverError("MAIL_TEMPLATE_SYNTAX", `Cannot render bigint ${value} — it exceeds Number.MAX_SAFE_INTEGER and cannot cross the template engine boundary without precision loss; format it to a string before rendering`);
70
+ throw new RoverError("E_MAIL_TEMPLATE_SYNTAX", `Cannot render bigint ${value} — it exceeds Number.MAX_SAFE_INTEGER and cannot cross the template engine boundary without precision loss; format it to a string before rendering`);
71
71
  }
72
72
  if (typeof value === "number" && !Number.isFinite(value)) {
73
- throw new RoverError("MAIL_TEMPLATE_SYNTAX", `Cannot render non-finite number ${value} — NaN and Infinity have no representation across the template engine boundary; format it to a string before rendering`);
73
+ throw new RoverError("E_MAIL_TEMPLATE_SYNTAX", `Cannot render non-finite number ${value} — NaN and Infinity have no representation across the template engine boundary; format it to a string before rendering`);
74
74
  }
75
75
  return value;
76
76
  }
@@ -98,7 +98,7 @@ function errnoCode(err) {
98
98
  }
99
99
  /**
100
100
  * Resolve + read + compile one template path, caching the compiled IR by its
101
- * resolved absolute path. Owns the `MAIL_TEMPLATE_NOT_FOUND` / `_READ_ERROR`
101
+ * resolved absolute path. Owns the `E_MAIL_TEMPLATE_NOT_FOUND` / `_READ_ERROR`
102
102
  * raising (unchanged from the pre-migration engine).
103
103
  */
104
104
  async function loadIr(viewPath, root) {
@@ -114,12 +114,12 @@ async function loadIr(viewPath, root) {
114
114
  const code = errnoCode(err);
115
115
  // Only ENOENT maps to NOT_FOUND; permission/io errors surface distinctly.
116
116
  if (code !== "ENOENT") {
117
- throw new RoverError("MAIL_TEMPLATE_READ_ERROR", `Template read failed at ${resolved} (${code || "unknown"})`, {
117
+ throw new RoverError("E_MAIL_TEMPLATE_READ_ERROR", `Template read failed at ${resolved} (${code || "unknown"})`, {
118
118
  hint: "Check filesystem permissions and file descriptor limits.",
119
119
  context: { path: resolved, code, viewsRoot: root },
120
120
  });
121
121
  }
122
- throw new RoverError("MAIL_TEMPLATE_NOT_FOUND", `Template not found at ${resolved}`, {
122
+ throw new RoverError("E_MAIL_TEMPLATE_NOT_FOUND", `Template not found at ${resolved}`, {
123
123
  hint: "Create the file or update config.mail.viewsRoot.",
124
124
  context: {
125
125
  path: resolved,
@@ -158,9 +158,9 @@ async function buildPartialMap(rootIr, root) {
158
158
  // A partial referenced only inside a falsy `{{#if}}` is never
159
159
  // rendered. The pre-migration engine loaded partials lazily, so a
160
160
  // missing such partial did not error. Skip it here; if it IS reached
161
- // at render time the Rust renderer raises MAIL_TEMPLATE_NOT_FOUND.
161
+ // at render time the Rust renderer raises E_MAIL_TEMPLATE_NOT_FOUND.
162
162
  if (err instanceof RoverError &&
163
- err.code === "MAIL_TEMPLATE_NOT_FOUND") {
163
+ err.code === "E_MAIL_TEMPLATE_NOT_FOUND") {
164
164
  continue;
165
165
  }
166
166
  throw err;
@@ -188,7 +188,7 @@ function resolveTemplatePath(viewPath, root) {
188
188
  const candidate = path.resolve(withExt);
189
189
  const rel = path.relative(rootAbs, candidate);
190
190
  if (rel.startsWith("..") || path.isAbsolute(rel)) {
191
- throw new RoverError("MAIL_TEMPLATE_NOT_FOUND", `Template path "${viewPath}" resolves outside of viewsRoot`, {
191
+ throw new RoverError("E_MAIL_TEMPLATE_NOT_FOUND", `Template path "${viewPath}" resolves outside of viewsRoot`, {
192
192
  hint: "Template names must stay under viewsRoot. Absolute paths and `..` traversals are rejected.",
193
193
  context: { path: candidate, viewsRoot: rootAbs },
194
194
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTemplate.js","sourceRoot":"","sources":["../../src/templating/SimpleTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAsB,WAAW,EAAE,MAAM,eAAe,CAAC;AAE3E,gEAAgE;AAChE,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAE/E,IAAI,SAAS,GAAG,wBAAwB,CAAC;AACzC,gFAAgF;AAChF,iFAAiF;AACjF,gDAAgD;AAChD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;AAE/C,MAAM,UAAU,YAAY,CAAC,OAAe;IAC3C,SAAS,GAAG,OAAO,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,YAAY;IAC3B,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,UAAU;IACzB,KAAK,CAAC,KAAK,EAAE,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAC3B,MAAc,EACd,IAA6B;IAE7B,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,QAAgB,EAChB,IAA6B,EAC7B,WAAwB,IAAI,GAAG,EAAE;AACjC,2EAA2E;AAC3E,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,iBAA0B;IAE1B,MAAM,IAAI,GAAG,iBAAiB,IAAI,SAAS,CAAC;IAC5C,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,oFAAoF;AACpF,SAAS,aAAa,CAAC,MAAc;IACpC,IAAI,CAAC;QACJ,OAAO,SAAS,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACF,CAAC;AAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxD,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAExD;;;;;;;;;GASG;AACH,SAAS,YAAY,CAAC,IAAY,EAAE,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,IAAI,eAAe,IAAI,KAAK,IAAI,eAAe,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,IAAI,UAAU,CACnB,sBAAsB,EACtB,wBAAwB,KAAK,oJAAoJ,CACjL,CAAC;IACH,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,UAAU,CACnB,sBAAsB,EACtB,mCAAmC,KAAK,wHAAwH,CAChK,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,sFAAsF;AACtF,SAAS,YAAY,CACpB,EAAiB,EACjB,IAA6B,EAC7B,QAAuC;IAEvC,IAAI,CAAC;QACJ,4EAA4E;QAC5E,uEAAuE;QACvE,6EAA6E;QAC7E,iEAAiE;QACjE,OAAO,SAAS,EAAE,CAAC,QAAQ,CAC1B,EAAE,EACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,EAClC,QAAQ,CACR,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAAC,GAAY;IAC9B,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,IAAY;IACnD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC5B,0EAA0E;QAC1E,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,UAAU,CACnB,0BAA0B,EAC1B,2BAA2B,QAAQ,KAAK,IAAI,IAAI,SAAS,GAAG,EAC5D;gBACC,IAAI,EAAE,0DAA0D;gBAChE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;aAClD,CACD,CAAC;QACH,CAAC;QACD,MAAM,IAAI,UAAU,CACnB,yBAAyB,EACzB,yBAAyB,QAAQ,EAAE,EACnC;YACC,IAAI,EAAE,kDAAkD;YACxD,OAAO,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvB,SAAS,EAAE,IAAI;aACf;SACD,CACD,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxB,OAAO,EAAE,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,eAAe,CAC7B,MAAqB,EACrB,IAAY;IAEZ,MAAM,GAAG,GAAkC,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAoB,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,EAAE,KAAK,SAAS;YAAE,MAAM;QAC5B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;gBAAE,SAAS;YACvC,IAAI,SAAwB,CAAC;YAC7B,IAAI,CAAC;gBACJ,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,8DAA8D;gBAC9D,kEAAkE;gBAClE,qEAAqE;gBACrE,mEAAmE;gBACnE,IACC,GAAG,YAAY,UAAU;oBACzB,GAAG,CAAC,IAAI,KAAK,yBAAyB,EACrC,CAAC;oBACF,SAAS;gBACV,CAAC;gBACD,MAAM,GAAG,CAAC;YACX,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC3B,QAAgB,EAChB,IAAY;IAKZ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,aAAa,CAAC;IACjC,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC9C,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,GAAG,aAAa,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,UAAU,CACnB,yBAAyB,EACzB,kBAAkB,QAAQ,iCAAiC,EAC3D;YACC,IAAI,EAAE,4FAA4F;YAClG,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE;SAChD,CACD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"SimpleTemplate.js","sourceRoot":"","sources":["../../src/templating/SimpleTemplate.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // Loads the native `rover-template-engine-napi` binary built by
2
2
  // `scripts/copy-napi.mjs` and re-throws load failures as
3
- // `MAIL_TEMPLATE_NAPI_REQUIRED` (D55.2.4) — actionable hint points at
3
+ // `E_MAIL_TEMPLATE_NAPI_REQUIRED` (D55.2.4) — actionable hint points at
4
4
  // `pnpm --filter @c9up/rover build:napi`.
5
5
  //
6
6
  // Per cerebrum 2026-04-15 there is NO JS fallback. If the binary fails to load,
@@ -21,7 +21,7 @@ function platformSuffix() {
21
21
  const key = `${platform}-${arch}`;
22
22
  const suffix = SUFFIX_MAP[key];
23
23
  if (typeof suffix !== "string") {
24
- throw new RoverError("MAIL_TEMPLATE_NAPI_REQUIRED", `Unsupported platform/arch '${key}' for @c9up/rover native binary. Supported: ${Object.keys(SUFFIX_MAP).join(", ")}.`, {
24
+ throw new RoverError("E_MAIL_TEMPLATE_NAPI_REQUIRED", `Unsupported platform/arch '${key}' for @c9up/rover native binary. Supported: ${Object.keys(SUFFIX_MAP).join(", ")}.`, {
25
25
  hint: "Build the native binary on a supported platform with 'pnpm --filter @c9up/rover build:napi'.",
26
26
  });
27
27
  }
@@ -61,12 +61,12 @@ export function getNative() {
61
61
  const muslHint = suffix.endsWith("-gnu")
62
62
  ? " If you are on Alpine/musl, note the prebuilt binaries target glibc (musl is not a supported target)."
63
63
  : "";
64
- throw new RoverError("MAIL_TEMPLATE_NAPI_REQUIRED", `@c9up/rover native binary 'index.${suffix}.node' not found or failed to load near ${here} — run 'pnpm --filter @c9up/rover build:napi' to build it.${muslHint} Cause: ${causeMessage}`, {
64
+ throw new RoverError("E_MAIL_TEMPLATE_NAPI_REQUIRED", `@c9up/rover native binary 'index.${suffix}.node' not found or failed to load near ${here} — run 'pnpm --filter @c9up/rover build:napi' to build it.${muslHint} Cause: ${causeMessage}`, {
65
65
  hint: "Run 'pnpm --filter @c9up/rover build:napi' to compile the native template engine.",
66
66
  });
67
67
  }
68
68
  if (!isNativeExports(loaded)) {
69
- throw new RoverError("MAIL_TEMPLATE_NAPI_REQUIRED", "@c9up/rover native binary loaded but missing expected exports (engineVersion / compile / renderIr). Rebuild with 'pnpm --filter @c9up/rover build:napi'.", {
69
+ throw new RoverError("E_MAIL_TEMPLATE_NAPI_REQUIRED", "@c9up/rover native binary loaded but missing expected exports (engineVersion / compile / renderIr). Rebuild with 'pnpm --filter @c9up/rover build:napi'.", {
70
70
  hint: "The native binary is stale — rebuild with 'pnpm --filter @c9up/rover build:napi'.",
71
71
  });
72
72
  }
@@ -81,9 +81,9 @@ function isNapiErrorPayload(value) {
81
81
  }
82
82
  /** Codes the Rust engine legitimately emits, with their actionable hints. */
83
83
  const CODE_HINTS = {
84
- MAIL_TEMPLATE_SYNTAX: "Check the template grammar: {{ var }}, {{{ raw }}}, {{#if x}}...{{/if}}, {{> partial}}.",
84
+ E_MAIL_TEMPLATE_SYNTAX: "Check the template grammar: {{ var }}, {{{ raw }}}, {{#if x}}...{{/if}}, {{> partial}}.",
85
85
  MAIL_TEMPLATE_RECURSION: "Break the cycle — a template cannot include itself (directly or via partials).",
86
- MAIL_TEMPLATE_NOT_FOUND: "Create the referenced partial file or remove the {{> name}} reference.",
86
+ E_MAIL_TEMPLATE_NOT_FOUND: "Create the referenced partial file or remove the {{> name}} reference.",
87
87
  };
88
88
  /**
89
89
  * Translate a thrown value from a native call into a `RoverError`.
@@ -108,8 +108,8 @@ export function toReamError(err) {
108
108
  return new RoverError(parsed.code, parsed.message, { hint });
109
109
  }
110
110
  }
111
- return new RoverError("MAIL_TEMPLATE_SYNTAX", `Native template call failed: ${err.message}`);
111
+ return new RoverError("E_MAIL_TEMPLATE_SYNTAX", `Native template call failed: ${err.message}`);
112
112
  }
113
- return new RoverError("MAIL_TEMPLATE_SYNTAX", `Native template call failed with non-Error: ${String(err)}`);
113
+ return new RoverError("E_MAIL_TEMPLATE_SYNTAX", `Native template call failed with non-Error: ${String(err)}`);
114
114
  }
115
115
  //# sourceMappingURL=loadNapi.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loadNapi.js","sourceRoot":"","sources":["../../src/templating/loadNapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadNapi.js","sourceRoot":"","sources":["../../src/templating/loadNapi.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export class BrevoTransport {
30
30
  ? normalizeConfig(config.key)
31
31
  : "";
32
32
  if (!apiKey) {
33
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Brevo transport requires apiKey", { hint: "Set { apiKey } in your mail config." });
33
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Brevo transport requires apiKey", { hint: "Set { apiKey } in your mail config." });
34
34
  }
35
35
  this.#apiKey = apiKey;
36
36
  this.#baseUrl =
@@ -42,7 +42,7 @@ export class BrevoTransport {
42
42
  if (message.to.length === 0 &&
43
43
  message.cc.length === 0 &&
44
44
  message.bcc.length === 0) {
45
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
45
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
46
46
  }
47
47
  const body = {
48
48
  sender: parseContact(message.from),
@@ -100,7 +100,7 @@ export class BrevoTransport {
100
100
  };
101
101
  if (retryAfter)
102
102
  ctx.retryAfter = retryAfter;
103
- throw new RoverError("MAIL_PROVIDER_ERROR", `Brevo returned ${res.status}`, {
103
+ throw new RoverError("E_MAIL_PROVIDER_ERROR", `Brevo returned ${res.status}`, {
104
104
  hint: "Inspect `context.upstreamStatus` to decide retry eligibility. `context.retryAfter` (when set) carries the provider's backoff hint in seconds.",
105
105
  context: ctx,
106
106
  });
@@ -1 +1 @@
1
- {"version":3,"file":"BrevoTransport.js","sourceRoot":"","sources":["../../src/transports/BrevoTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrevoTransport.js","sourceRoot":"","sources":["../../src/transports/BrevoTransport.ts"],"names":[],"mappings":"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"}
@@ -20,19 +20,19 @@ export class MailgunTransport {
20
20
  const apiKey = typeof config.apiKey === "string" ? normalizeConfig(config.apiKey) : "";
21
21
  const domain = typeof config.domain === "string" ? normalizeConfig(config.domain) : "";
22
22
  if (!apiKey || !domain) {
23
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Mailgun transport requires apiKey and domain", { hint: "Set { apiKey, domain } in your mail config." });
23
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Mailgun transport requires apiKey and domain", { hint: "Set { apiKey, domain } in your mail config." });
24
24
  }
25
25
  this.#domain = domain;
26
26
  // Region: reject non-string when *defined* (wrong type signals a config
27
27
  // bug — defaulting to "us" under those conditions is a compliance risk).
28
28
  if (config.region !== undefined && typeof config.region !== "string") {
29
- throw new RoverError("MAIL_PROVIDER_CONFIG", `Mailgun region must be a string ("us" or "eu"), got ${typeof config.region}`, { hint: "Set config.region explicitly as 'us' or 'eu'." });
29
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", `Mailgun region must be a string ("us" or "eu"), got ${typeof config.region}`, { hint: "Set config.region explicitly as 'us' or 'eu'." });
30
30
  }
31
31
  const rawRegion = typeof config.region === "string"
32
32
  ? normalizeConfig(config.region).toLowerCase()
33
33
  : "us";
34
34
  if (rawRegion !== "us" && rawRegion !== "eu") {
35
- throw new RoverError("MAIL_PROVIDER_CONFIG", `Mailgun region must be "us" or "eu", got "${rawRegion}"`, {
35
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", `Mailgun region must be "us" or "eu", got "${rawRegion}"`, {
36
36
  hint: "Use { region: 'us' } or { region: 'eu' }. A typo silently routing EU traffic to US infrastructure is a compliance risk.",
37
37
  });
38
38
  }
@@ -61,7 +61,7 @@ export class MailgunTransport {
61
61
  if (message.to.length === 0 &&
62
62
  message.cc.length === 0 &&
63
63
  message.bcc.length === 0) {
64
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
64
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
65
65
  }
66
66
  // CRLF stripping is applied at the wire boundary regardless of SDK
67
67
  // promises — defence-in-depth. Anti-pattern from spec Dev Notes:
@@ -116,7 +116,7 @@ export class MailgunTransport {
116
116
  }
117
117
  /**
118
118
  * mailgun.js's own error shape is `{ status, details | message, ... }`.
119
- * Map it to our uniform `MAIL_PROVIDER_ERROR` so retry + observability
119
+ * Map it to our uniform `E_MAIL_PROVIDER_ERROR` so retry + observability
120
120
  * consumers don't need to branch on provider.
121
121
  *
122
122
  * Bare `Error` (no `status`) — typical for network/ECONNRESET failures from
@@ -148,7 +148,7 @@ function wrapMailgunError(err) {
148
148
  ? (retryAfterHeader[0] ?? "")
149
149
  : retryAfterHeader;
150
150
  }
151
- return new RoverError("MAIL_PROVIDER_ERROR", `Mailgun returned ${status || "unknown"}`, {
151
+ return new RoverError("E_MAIL_PROVIDER_ERROR", `Mailgun returned ${status || "unknown"}`, {
152
152
  hint: "Inspect `context.upstreamStatus` (HTTP) or `context.networkCode` (ECONNRESET/etc.) to decide retry eligibility.",
153
153
  context: ctx,
154
154
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MailgunTransport.js","sourceRoot":"","sources":["../../src/transports/MailgunTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MailgunTransport.js","sourceRoot":"","sources":["../../src/transports/MailgunTransport.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export class ResendTransport {
18
18
  constructor(config) {
19
19
  const apiKey = typeof config.apiKey === "string" ? normalizeConfig(config.apiKey) : "";
20
20
  if (!apiKey) {
21
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Resend transport requires apiKey", { hint: "Set { apiKey } in your mail config." });
21
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Resend transport requires apiKey", { hint: "Set { apiKey } in your mail config." });
22
22
  }
23
23
  this.#apiKey = apiKey;
24
24
  }
@@ -26,7 +26,7 @@ export class ResendTransport {
26
26
  if (message.to.length === 0 &&
27
27
  message.cc.length === 0 &&
28
28
  message.bcc.length === 0) {
29
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
29
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
30
30
  }
31
31
  const body = {
32
32
  from: stripCrlf(message.from),
@@ -93,7 +93,7 @@ export class ResendTransport {
93
93
  };
94
94
  if (retryAfter)
95
95
  ctx.retryAfter = retryAfter;
96
- throw new RoverError("MAIL_PROVIDER_ERROR", `Resend returned ${res.status}`, {
96
+ throw new RoverError("E_MAIL_PROVIDER_ERROR", `Resend returned ${res.status}`, {
97
97
  hint: "Inspect `context.upstreamStatus` to decide retry eligibility. `context.retryAfter` (when set) carries the provider's backoff hint in seconds.",
98
98
  context: ctx,
99
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ResendTransport.js","sourceRoot":"","sources":["../../src/transports/ResendTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResendTransport.js","sourceRoot":"","sources":["../../src/transports/ResendTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAIN,iBAAiB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,MAAM,SAAS,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAClE,MAAM,eAAe,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,CAAC;AACvC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CACxC,CAAC,CAAC,MAAM,IAAI,oBAAoB;IAC/B,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,gBAAgB,CAAC;AACxD,iFAAiF;AACjF,MAAM,aAAa,GAAG,CAAC,CAAS,EAAU,EAAE,CAC3C,CAAC;KACC,OAAO,CAAC,+BAA+B,EAAE,mBAAmB,CAAC;KAC7D,OAAO,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAC;AAmB3D,MAAM,OAAO,eAAe;IAC3B,OAAO,CAAS;IAEhB,YAAY,MAA+B;QAC1C,MAAM,MAAM,GACX,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,UAAU,CACnB,wBAAwB,EACxB,kCAAkC,EAClC,EAAE,IAAI,EAAE,qCAAqC,EAAE,CAC/C,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC9B,IACC,OAAO,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EACvB,CAAC;YACF,MAAM,IAAI,UAAU,CACnB,wBAAwB,EACxB,gCAAgC,EAChC,EAAE,IAAI,EAAE,uDAAuD,EAAE,CACjE,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAe;YACxB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7B,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC;YAC7B,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC;SACnC,CAAC;QACF,IAAI,OAAO,CAAC,EAAE,CAAC,MAAM;YAAE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChE,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,OAAO,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC3C,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAA0B,CAAC,CAAC;gBACxD,OAAO;oBACN,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACjC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC/B,YAAY,EAAE,GAAG,CAAC,WAAW;wBAC5B,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC;wBAC5B,CAAC,CAAC,SAAS;iBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;gBACtC,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC5C,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC7B,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC;QAED,iEAAiE;QACjE,iEAAiE;QACjE,6DAA6D;QAC7D,oDAAoD;QACpD,IAAI,GAAa,CAAC;QAClB,IAAI,CAAC;YACJ,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,+BAA+B,EAAE;gBACvE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACR,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE;oBACvC,cAAc,EAAE,kBAAkB;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC1B,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,eAAe,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,SAAS,CAAC;YAC/D,MAAM,GAAG,GAA2B;gBACnC,QAAQ,EAAE,QAAQ;gBAClB,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;gBAClC,eAAe;aACf,CAAC;YACF,IAAI,UAAU;gBAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;YAC5C,MAAM,IAAI,UAAU,CACnB,uBAAuB,EACvB,mBAAmB,GAAG,CAAC,MAAM,EAAE,EAC/B;gBACC,IAAI,EAAE,+IAA+I;gBACrJ,OAAO,EAAE,GAAG;aACZ,CACD,CAAC;QACH,CAAC;QACD,2DAA2D;QAC3D,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;YACnD,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;YAChC,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,sDAAsD;QACvD,CAAC;QACD,OAAO;IACR,CAAC;CACD;AAED,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -16,7 +16,7 @@ export class SendGridTransport {
16
16
  constructor(config) {
17
17
  const apiKey = typeof config.apiKey === "string" ? normalizeConfig(config.apiKey) : "";
18
18
  if (!apiKey) {
19
- throw new RoverError("MAIL_PROVIDER_CONFIG", "SendGrid transport requires apiKey", { hint: "Set { apiKey } in your mail config." });
19
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "SendGrid transport requires apiKey", { hint: "Set { apiKey } in your mail config." });
20
20
  }
21
21
  // Dependency injection for tests — stronger guard than the old version
22
22
  // (require both `send` AND `setApiKey` to pass through).
@@ -93,7 +93,7 @@ function assertHasRecipients(message) {
93
93
  if (message.to.length === 0 &&
94
94
  message.cc.length === 0 &&
95
95
  message.bcc.length === 0) {
96
- throw new RoverError("MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
96
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
97
97
  }
98
98
  }
99
99
  /**
@@ -142,7 +142,7 @@ function wrapSendGridError(err) {
142
142
  const retryAfter = anyErr.response?.headers?.["retry-after"];
143
143
  if (retryAfter)
144
144
  ctx.retryAfter = retryAfter;
145
- return new RoverError("MAIL_PROVIDER_ERROR", `SendGrid returned ${status || "unknown"}`, {
145
+ return new RoverError("E_MAIL_PROVIDER_ERROR", `SendGrid returned ${status || "unknown"}`, {
146
146
  hint: "Inspect `context.upstreamStatus` (HTTP) or `context.networkCode` (ECONNRESET/etc.) to decide retry eligibility. `context.retryAfter` (when set) carries the provider's backoff hint in seconds.",
147
147
  context: ctx,
148
148
  });
@@ -161,7 +161,7 @@ function resolveMailServiceCtor(mod) {
161
161
  return candidate;
162
162
  }
163
163
  }
164
- throw new RoverError("MAIL_PROVIDER_CONFIG", "@sendgrid/mail runtime does not expose `.MailService` — upgrade to v8+", {
164
+ throw new RoverError("E_MAIL_PROVIDER_CONFIG", "@sendgrid/mail runtime does not expose `.MailService` — upgrade to v8+", {
165
165
  hint: "Expected `module.exports.MailService` to be the MailService class (index.js attaches it).",
166
166
  });
167
167
  }