@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.
- package/README.md +4 -1
- package/dist/Mail.d.ts +14 -6
- package/dist/Mail.d.ts.map +1 -1
- package/dist/Mail.js +42 -25
- package/dist/Mail.js.map +1 -1
- package/dist/MessageBuilder.js +4 -4
- package/dist/MessageBuilder.js.map +1 -1
- package/dist/RoverProvider.js +1 -1
- package/dist/RoverProvider.js.map +1 -1
- package/dist/config.d.ts +8 -7
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -7
- package/dist/config.js.map +1 -1
- package/dist/configure.d.ts +18 -0
- package/dist/configure.d.ts.map +1 -0
- package/dist/configure.js +39 -0
- package/dist/configure.js.map +1 -0
- package/dist/format.js +1 -1
- package/dist/format.js.map +1 -1
- package/dist/queue/MailJob.js +4 -4
- package/dist/queue/MailJob.js.map +1 -1
- package/dist/retry.d.ts +2 -2
- package/dist/retry.js +7 -7
- package/dist/retry.js.map +1 -1
- package/dist/templating/SimpleTemplate.js +8 -8
- package/dist/templating/SimpleTemplate.js.map +1 -1
- package/dist/templating/loadNapi.js +8 -8
- package/dist/templating/loadNapi.js.map +1 -1
- package/dist/transports/BrevoTransport.js +3 -3
- package/dist/transports/BrevoTransport.js.map +1 -1
- package/dist/transports/MailgunTransport.js +6 -6
- package/dist/transports/MailgunTransport.js.map +1 -1
- package/dist/transports/ResendTransport.js +3 -3
- package/dist/transports/ResendTransport.js.map +1 -1
- package/dist/transports/SendGridTransport.js +4 -4
- package/dist/transports/SendGridTransport.js.map +1 -1
- package/dist/transports/SesTransport.js +4 -4
- package/dist/transports/SesTransport.js.map +1 -1
- package/dist/transports/SparkPostTransport.js +3 -3
- package/dist/transports/SparkPostTransport.js.map +1 -1
- package/dist/transports/fetchError.d.ts +2 -2
- package/dist/transports/fetchError.js +4 -4
- package/dist/transports/fetchError.js.map +1 -1
- package/dist/webhooks/resend.d.ts.map +1 -1
- package/dist/webhooks/resend.js +21 -1
- package/dist/webhooks/resend.js.map +1 -1
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +5 -1
- package/src/Mail.ts +66 -30
- package/src/MessageBuilder.ts +4 -4
- package/src/RoverProvider.ts +1 -1
- package/src/config.ts +8 -7
- package/src/configure.ts +53 -0
- package/src/format.ts +1 -1
- package/src/queue/MailJob.ts +4 -4
- package/src/retry.ts +7 -7
- package/src/templating/SimpleTemplate.ts +8 -8
- package/src/templating/loadNapi.ts +8 -8
- package/src/transports/BrevoTransport.ts +3 -3
- package/src/transports/MailgunTransport.ts +6 -6
- package/src/transports/ResendTransport.ts +3 -3
- package/src/transports/SendGridTransport.ts +4 -4
- package/src/transports/SesTransport.ts +4 -4
- package/src/transports/SparkPostTransport.ts +3 -3
- package/src/transports/fetchError.ts +4 -4
- package/src/webhooks/resend.ts +26 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendGridTransport.js","sourceRoot":"","sources":["../../src/transports/SendGridTransport.ts"],"names":[],"mappings":"AAAA,OAAO,MAGN,MAAM,gBAAgB,CAAC;AACxB,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;AAE9C,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;AAExD,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;AAoB3D,MAAM,OAAO,iBAAiB;IAC7B,OAAO,CAAqB;IAE5B,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,
|
|
1
|
+
{"version":3,"file":"SendGridTransport.js","sourceRoot":"","sources":["../../src/transports/SendGridTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,10 +47,10 @@ export class SesTransport {
|
|
|
47
47
|
? normalizeConfig(config.region).toLowerCase()
|
|
48
48
|
: "";
|
|
49
49
|
if (!accessKeyId || !secretAccessKey || !rawRegion) {
|
|
50
|
-
throw new RoverError("
|
|
50
|
+
throw new RoverError("E_MAIL_PROVIDER_CONFIG", "SES transport requires accessKeyId, secretAccessKey, and region", { hint: "Set all three in your mail config." });
|
|
51
51
|
}
|
|
52
52
|
if (!REGION_RE.test(rawRegion)) {
|
|
53
|
-
throw new RoverError("
|
|
53
|
+
throw new RoverError("E_MAIL_PROVIDER_CONFIG", `SES region "${rawRegion}" is not a valid AWS region identifier`, {
|
|
54
54
|
hint: "Use the lowercase canonical form, e.g. 'us-east-1'. Uppercase breaks the SigV4 signing scope.",
|
|
55
55
|
});
|
|
56
56
|
}
|
|
@@ -63,7 +63,7 @@ export class SesTransport {
|
|
|
63
63
|
if (message.to.length === 0 &&
|
|
64
64
|
message.cc.length === 0 &&
|
|
65
65
|
message.bcc.length === 0) {
|
|
66
|
-
throw new RoverError("
|
|
66
|
+
throw new RoverError("E_MAIL_PROVIDER_CONFIG", "Mail message has no recipients", { hint: "Set at least one `to`, `cc`, or `bcc` before sending." });
|
|
67
67
|
}
|
|
68
68
|
// Custom headers are only honoured on the SendRawEmail path (where we
|
|
69
69
|
// compose the MIME ourselves), so flip to raw whenever the message
|
|
@@ -98,7 +98,7 @@ export class SesTransport {
|
|
|
98
98
|
};
|
|
99
99
|
if (retryAfter)
|
|
100
100
|
ctx.retryAfter = retryAfter;
|
|
101
|
-
throw new RoverError("
|
|
101
|
+
throw new RoverError("E_MAIL_PROVIDER_ERROR", `SES returned ${res.status}`, {
|
|
102
102
|
hint: "Inspect `context.upstreamStatus` to decide retry eligibility. `context.retryAfter` (when set) carries the provider's backoff hint in seconds.",
|
|
103
103
|
context: ctx,
|
|
104
104
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SesTransport.js","sourceRoot":"","sources":["../../src/transports/SesTransport.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SesTransport.js","sourceRoot":"","sources":["../../src/transports/SesTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ export class SparkPostTransport {
|
|
|
30
30
|
? normalizeConfig(config.key)
|
|
31
31
|
: "";
|
|
32
32
|
if (!apiKey) {
|
|
33
|
-
throw new RoverError("
|
|
33
|
+
throw new RoverError("E_MAIL_PROVIDER_CONFIG", "SparkPost 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 SparkPostTransport {
|
|
|
42
42
|
if (message.to.length === 0 &&
|
|
43
43
|
message.cc.length === 0 &&
|
|
44
44
|
message.bcc.length === 0) {
|
|
45
|
-
throw new RoverError("
|
|
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
|
// SparkPost delivers to every address in `recipients`; cc/bcc are folded in
|
|
48
48
|
// so they receive the message, and cc is surfaced via a `CC` header for
|
|
@@ -109,7 +109,7 @@ export class SparkPostTransport {
|
|
|
109
109
|
};
|
|
110
110
|
if (retryAfter)
|
|
111
111
|
ctx.retryAfter = retryAfter;
|
|
112
|
-
throw new RoverError("
|
|
112
|
+
throw new RoverError("E_MAIL_PROVIDER_ERROR", `SparkPost returned ${res.status}`, {
|
|
113
113
|
hint: "Inspect `context.upstreamStatus` to decide retry eligibility. `context.retryAfter` (when set) carries the provider's backoff hint in seconds.",
|
|
114
114
|
context: ctx,
|
|
115
115
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SparkPostTransport.js","sourceRoot":"","sources":["../../src/transports/SparkPostTransport.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;;;;;;GAMG;AACH,MAAM,OAAO,kBAAkB;IAC9B,OAAO,CAAS;IAChB,QAAQ,CAAS;IAEjB,YAAY,MAA+B;QAC1C,MAAM,MAAM,GACX,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;YAChC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC;YAChC,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;gBAC/B,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC;gBAC7B,CAAC,CAAC,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,MAAM,IAAI,UAAU,CACnB,
|
|
1
|
+
{"version":3,"file":"SparkPostTransport.js","sourceRoot":"","sources":["../../src/transports/SparkPostTransport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RoverError } from "../RoverError.js";
|
|
2
2
|
/**
|
|
3
|
-
* Wrap a `fetch()` rejection into the uniform `
|
|
3
|
+
* Wrap a `fetch()` rejection into the uniform `E_MAIL_PROVIDER_ERROR` shape
|
|
4
4
|
* so the retry classifier can recognise transient network failures
|
|
5
5
|
* (ECONNRESET / ENOTFOUND / EAI_AGAIN / ...).
|
|
6
6
|
*
|
|
@@ -16,7 +16,7 @@ export declare function wrapFetchNetworkError(provider: string, err: unknown): R
|
|
|
16
16
|
* Without one, a stalled provider connection never settles: the send hangs,
|
|
17
17
|
* the queue worker holding it hangs with it, and enough of them stop mail going
|
|
18
18
|
* out at all — with no error to explain the silence. A timeout surfaces as the
|
|
19
|
-
* same `
|
|
19
|
+
* same `E_MAIL_PROVIDER_ERROR` shape the retry classifier already understands, so
|
|
20
20
|
* it is retried like any other transient network failure.
|
|
21
21
|
*/
|
|
22
22
|
export declare function fetchWithTimeout(provider: string, url: string, init?: RequestInit, timeoutMs?: number): Promise<Response>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RoverError } from "../RoverError.js";
|
|
2
2
|
/**
|
|
3
|
-
* Wrap a `fetch()` rejection into the uniform `
|
|
3
|
+
* Wrap a `fetch()` rejection into the uniform `E_MAIL_PROVIDER_ERROR` shape
|
|
4
4
|
* so the retry classifier can recognise transient network failures
|
|
5
5
|
* (ECONNRESET / ENOTFOUND / EAI_AGAIN / ...).
|
|
6
6
|
*
|
|
@@ -27,7 +27,7 @@ export function wrapFetchNetworkError(provider, err) {
|
|
|
27
27
|
};
|
|
28
28
|
if (networkCode)
|
|
29
29
|
ctx.networkCode = networkCode;
|
|
30
|
-
return new RoverError("
|
|
30
|
+
return new RoverError("E_MAIL_PROVIDER_ERROR", `${provider} fetch failed${networkCode ? ` (${networkCode})` : ""}`, {
|
|
31
31
|
hint: "Inspect `context.networkCode` (ECONNRESET / ENOTFOUND / ...) — the retry classifier treats known transient errnos as retryable.",
|
|
32
32
|
context: ctx,
|
|
33
33
|
});
|
|
@@ -40,7 +40,7 @@ const DEFAULT_TIMEOUT_MS = 30_000;
|
|
|
40
40
|
* Without one, a stalled provider connection never settles: the send hangs,
|
|
41
41
|
* the queue worker holding it hangs with it, and enough of them stop mail going
|
|
42
42
|
* out at all — with no error to explain the silence. A timeout surfaces as the
|
|
43
|
-
* same `
|
|
43
|
+
* same `E_MAIL_PROVIDER_ERROR` shape the retry classifier already understands, so
|
|
44
44
|
* it is retried like any other transient network failure.
|
|
45
45
|
*/
|
|
46
46
|
export async function fetchWithTimeout(provider, url, init = {}, timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
@@ -54,7 +54,7 @@ export async function fetchWithTimeout(provider, url, init = {}, timeoutMs = DEF
|
|
|
54
54
|
}
|
|
55
55
|
catch (err) {
|
|
56
56
|
if (err instanceof Error && err.name === "TimeoutError") {
|
|
57
|
-
throw new RoverError("
|
|
57
|
+
throw new RoverError("E_MAIL_PROVIDER_ERROR", `${provider} did not answer within ${timeoutMs}ms.`, {
|
|
58
58
|
context: { provider, upstreamStatus: "0", networkCode: "ETIMEDOUT" },
|
|
59
59
|
hint: "Raise `requestTimeoutMs` for large attachments, or check connectivity to the provider.",
|
|
60
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchError.js","sourceRoot":"","sources":["../../src/transports/fetchError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACpC,QAAgB,EAChB,GAAY;IAEZ,IAAI,GAAG,YAAY,UAAU;QAAE,OAAO,GAAG,CAAC;IAC1C,MAAM,GAAG,GAAG,GAA6D,CAAC;IAC1E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAuC,CAAC;IAC1D,MAAM,WAAW,GAChB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC3B,CAAC,CAAC,GAAG,CAAC,IAAI;QACV,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ;YAChC,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,SAAS,CAAC;IACf,MAAM,OAAO,GACZ,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;IAChE,MAAM,GAAG,GAA2B;QACnC,QAAQ;QACR,cAAc,EAAE,GAAG;QACnB,eAAe,EAAE,OAAO;KACxB,CAAC;IACF,IAAI,WAAW;QAAE,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/C,OAAO,IAAI,UAAU,CACpB,
|
|
1
|
+
{"version":3,"file":"fetchError.js","sourceRoot":"","sources":["../../src/transports/fetchError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACpC,QAAgB,EAChB,GAAY;IAEZ,IAAI,GAAG,YAAY,UAAU;QAAE,OAAO,GAAG,CAAC;IAC1C,MAAM,GAAG,GAAG,GAA6D,CAAC;IAC1E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAuC,CAAC;IAC1D,MAAM,WAAW,GAChB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC3B,CAAC,CAAC,GAAG,CAAC,IAAI;QACV,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,KAAK,QAAQ;YAChC,CAAC,CAAC,KAAK,CAAC,IAAI;YACZ,CAAC,CAAC,SAAS,CAAC;IACf,MAAM,OAAO,GACZ,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC;IAChE,MAAM,GAAG,GAA2B;QACnC,QAAQ;QACR,cAAc,EAAE,GAAG;QACnB,eAAe,EAAE,OAAO;KACxB,CAAC;IACF,IAAI,WAAW;QAAE,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC;IAC/C,OAAO,IAAI,UAAU,CACpB,uBAAuB,EACvB,GAAG,QAAQ,gBAAgB,WAAW,CAAC,CAAC,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EACnE;QACC,IAAI,EAAE,iIAAiI;QACvI,OAAO,EAAE,GAAG;KACZ,CACD,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,QAAgB,EAChB,GAAW,EACX,OAAoB,EAAE,EACtB,YAAoB,kBAAkB;IAEtC,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC;QACJ,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE;YACvB,GAAG,IAAI;YACP,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;SACtC,CAAC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzD,MAAM,IAAI,UAAU,CACnB,uBAAuB,EACvB,GAAG,QAAQ,0BAA0B,SAAS,KAAK,EACnD;gBACC,OAAO,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE;gBACpE,IAAI,EAAE,wFAAwF;aAC9F,CACD,CAAC;QACH,CAAC;QACD,MAAM,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resend.d.ts","sourceRoot":"","sources":["../../src/webhooks/resend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,cAAc,EAEd,iBAAiB,EACjB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"resend.d.ts","sourceRoot":"","sources":["../../src/webhooks/resend.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,cAAc,EAEd,iBAAiB,EACjB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACpC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,cAAc,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB;AAgED,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,oBAAoB,GAC3B,iBAAiB,CAgDnB"}
|
package/dist/webhooks/resend.js
CHANGED
|
@@ -26,6 +26,26 @@ const EVENT_MAP = {
|
|
|
26
26
|
"email.delivered": "mail.delivered",
|
|
27
27
|
"email.bounced": "mail.bounced",
|
|
28
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Turn the configured signing secret into key bytes, or refuse.
|
|
31
|
+
*
|
|
32
|
+
* `Buffer.from(value, "base64")` never fails: it skips whatever it cannot read
|
|
33
|
+
* and hands back whatever is left, so a mistyped secret quietly becomes a
|
|
34
|
+
* short, deterministic key. Nothing then reports a configuration problem —
|
|
35
|
+
* every delivery just fails verification and looks like an attack, which is
|
|
36
|
+
* the one signal this endpoint exists to give.
|
|
37
|
+
*/
|
|
38
|
+
function decodeSigningSecret(value) {
|
|
39
|
+
const bytes = Buffer.from(value, "base64");
|
|
40
|
+
const normalize = (v) => v.replace(/=+$/, "").replace(/\s/g, "");
|
|
41
|
+
if (normalize(bytes.toString("base64")) !== normalize(value)) {
|
|
42
|
+
throw new Error("createResendWebhookHandler: secret is not valid base64. Copy it from the Resend dashboard — it looks like `whsec_<base64>`.");
|
|
43
|
+
}
|
|
44
|
+
if (bytes.length < 16) {
|
|
45
|
+
throw new Error(`createResendWebhookHandler: secret decodes to ${bytes.length} bytes, which is too short to sign with. Expected at least 16.`);
|
|
46
|
+
}
|
|
47
|
+
return bytes;
|
|
48
|
+
}
|
|
29
49
|
export function createResendWebhookHandler(options) {
|
|
30
50
|
if (!options.secret) {
|
|
31
51
|
throw new Error("createResendWebhookHandler: secret is required for HMAC verification.");
|
|
@@ -33,7 +53,7 @@ export function createResendWebhookHandler(options) {
|
|
|
33
53
|
const secretRaw = options.secret.startsWith("whsec_")
|
|
34
54
|
? options.secret.slice(6)
|
|
35
55
|
: options.secret;
|
|
36
|
-
const keyBytes =
|
|
56
|
+
const keyBytes = decodeSigningSecret(secretRaw);
|
|
37
57
|
const emitter = options.emitter;
|
|
38
58
|
const maxAgeSeconds = options.maxAgeSeconds ?? 300;
|
|
39
59
|
return async (ctx, _next) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resend.js","sourceRoot":"","sources":["../../src/webhooks/resend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAqB1D;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,GAAuB;IAC9C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,CAAC;AAYD;;;;;GAKG;AACH,MAAM,SAAS,GAA2B;IACzC,iBAAiB,EAAE,gBAAgB;IACnC,eAAe,EAAE,cAAc;CAC/B,CAAC;AAEF,MAAM,UAAU,0BAA0B,CACzC,OAA6B;IAE7B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACd,uEAAuE,CACvE,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC;QACpD,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAClB,MAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"resend.js","sourceRoot":"","sources":["../../src/webhooks/resend.ts"],"names":[],"mappings":"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"}
|
package/index.darwin-arm64.node
CHANGED
|
Binary file
|
package/index.darwin-x64.node
CHANGED
|
Binary file
|
|
Binary file
|
package/index.linux-x64-gnu.node
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@c9up/rover",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.14",
|
|
4
4
|
"description": "Mail transport for Ream — SMTP, log, and pluggable transports",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"types": "./dist/RoverProvider.d.ts",
|
|
15
15
|
"import": "./dist/RoverProvider.js"
|
|
16
16
|
},
|
|
17
|
+
"./configure": {
|
|
18
|
+
"types": "./dist/configure.d.ts",
|
|
19
|
+
"import": "./dist/configure.js"
|
|
20
|
+
},
|
|
17
21
|
"./services/main": {
|
|
18
22
|
"types": "./dist/services/main.d.ts",
|
|
19
23
|
"import": "./dist/services/main.js"
|
package/src/Mail.ts
CHANGED
|
@@ -134,18 +134,26 @@ export interface MailFailedEvent extends MailEventBase {
|
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
export interface MailConfig {
|
|
137
|
+
/**
|
|
138
|
+
* Mailer used when `send()` is called without naming one. It has to be a
|
|
139
|
+
* key of {@link MailConfig.mailers}, or the constructor throws.
|
|
140
|
+
*/
|
|
137
141
|
default: string;
|
|
138
142
|
from: string;
|
|
139
|
-
|
|
143
|
+
/**
|
|
144
|
+
* The declared mailers, name → the transport it sends through plus that
|
|
145
|
+
* transport's own settings. Build the entries with the `transports.*`
|
|
146
|
+
* helpers.
|
|
147
|
+
*/
|
|
148
|
+
mailers?: Record<
|
|
140
149
|
string,
|
|
141
150
|
{ transport: string; retry?: RetryConfig; [key: string]: unknown }
|
|
142
151
|
>;
|
|
143
152
|
/**
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
* nothing else.
|
|
153
|
+
* Rover's older spelling of `mailers`. Still accepted and identical in
|
|
154
|
+
* effect; new configs declare `mailers`.
|
|
147
155
|
*/
|
|
148
|
-
|
|
156
|
+
transports?: Record<
|
|
149
157
|
string,
|
|
150
158
|
{ transport: string; retry?: RetryConfig; [key: string]: unknown }
|
|
151
159
|
>;
|
|
@@ -153,7 +161,7 @@ export interface MailConfig {
|
|
|
153
161
|
viewsRoot?: string;
|
|
154
162
|
/** Optional Bay queue tuning for `sendLater()`. */
|
|
155
163
|
queue?: { name?: string; maxAttempts?: number };
|
|
156
|
-
/** Process-wide retry defaults. Overridden per-
|
|
164
|
+
/** Process-wide retry defaults. Overridden per-mailer via `mailers[name].retry`. */
|
|
157
165
|
retry?: RetryConfig;
|
|
158
166
|
}
|
|
159
167
|
|
|
@@ -191,13 +199,13 @@ export class SmtpTransport implements MailTransport {
|
|
|
191
199
|
// construction with an actionable message instead.
|
|
192
200
|
if (config.host !== undefined && typeof config.host !== "string") {
|
|
193
201
|
throw new RoverError(
|
|
194
|
-
"
|
|
202
|
+
"E_MAIL_PROVIDER_CONFIG",
|
|
195
203
|
`SMTP host must be a string, got ${typeof config.host}`,
|
|
196
204
|
{ hint: "Set config.host to your SMTP server hostname." },
|
|
197
205
|
);
|
|
198
206
|
}
|
|
199
207
|
if (typeof config.host !== "string" || config.host.length === 0) {
|
|
200
|
-
throw new RoverError("
|
|
208
|
+
throw new RoverError("E_MAIL_PROVIDER_CONFIG", "SMTP host is required", {
|
|
201
209
|
hint: "Set config.host (e.g. process.env.SMTP_HOST). Use the fake / log transports for local development.",
|
|
202
210
|
});
|
|
203
211
|
}
|
|
@@ -212,7 +220,7 @@ export class SmtpTransport implements MailTransport {
|
|
|
212
220
|
// fail fast rather than connect anonymously and let the server reject.
|
|
213
221
|
if ((user && !pass) || (!user && pass)) {
|
|
214
222
|
throw new RoverError(
|
|
215
|
-
"
|
|
223
|
+
"E_MAIL_PROVIDER_CONFIG",
|
|
216
224
|
"SMTP auth requires both `user` and `pass` or neither",
|
|
217
225
|
{
|
|
218
226
|
hint: "Check your env vars — one half of the credential pair is missing.",
|
|
@@ -242,7 +250,7 @@ export class SmtpTransport implements MailTransport {
|
|
|
242
250
|
message.bcc.length === 0
|
|
243
251
|
) {
|
|
244
252
|
throw new RoverError(
|
|
245
|
-
"
|
|
253
|
+
"E_MAIL_PROVIDER_CONFIG",
|
|
246
254
|
"Mail message has no recipients",
|
|
247
255
|
{ hint: "Set at least one `to`, `cc`, or `bcc` before sending." },
|
|
248
256
|
);
|
|
@@ -302,7 +310,7 @@ export class SmtpTransport implements MailTransport {
|
|
|
302
310
|
}
|
|
303
311
|
|
|
304
312
|
/**
|
|
305
|
-
* Normalise nodemailer / socket errors into the uniform `
|
|
313
|
+
* Normalise nodemailer / socket errors into the uniform `E_MAIL_PROVIDER_ERROR`
|
|
306
314
|
* shape used by the rest of the library. Preserves the `code` field (errno)
|
|
307
315
|
* in `context.networkCode` so `isRetryableError` can classify transient
|
|
308
316
|
* network failures without losing the root cause.
|
|
@@ -325,7 +333,7 @@ function wrapSmtpError(err: unknown): RoverError {
|
|
|
325
333
|
ctx.networkCode = anyErr.code;
|
|
326
334
|
}
|
|
327
335
|
return new RoverError(
|
|
328
|
-
"
|
|
336
|
+
"E_MAIL_PROVIDER_ERROR",
|
|
329
337
|
`SMTP failed: ${anyErr.message ?? "unknown"}`,
|
|
330
338
|
{
|
|
331
339
|
hint: "Inspect `context.networkCode` (ECONNRESET/ETIMEDOUT/...) or `context.upstreamStatus` (SMTP response code) to decide retry eligibility.",
|
|
@@ -418,14 +426,14 @@ export class Mail {
|
|
|
418
426
|
setViewsRoot(config.viewsRoot);
|
|
419
427
|
}
|
|
420
428
|
|
|
421
|
-
// `mailers`
|
|
422
|
-
//
|
|
429
|
+
// `mailers` and `transports` name the same map; a config that sets both
|
|
430
|
+
// gets both, and `mailers` wins on a key the two share.
|
|
423
431
|
const declared = { ...config.transports, ...config.mailers };
|
|
424
432
|
for (const [name, transportConfig] of Object.entries(declared)) {
|
|
425
433
|
const factory = transportFactories[transportConfig.transport];
|
|
426
434
|
if (!factory) {
|
|
427
435
|
throw new RoverError(
|
|
428
|
-
"
|
|
436
|
+
"E_MAIL_UNKNOWN_TRANSPORT",
|
|
429
437
|
`Unknown mail transport type '${transportConfig.transport}' (configured under name '${name}')`,
|
|
430
438
|
{
|
|
431
439
|
hint: "Register the transport with registerTransport() before constructing Mail, or fix the typo in config.mail.transports[*].transport.",
|
|
@@ -438,6 +446,20 @@ export class Mail {
|
|
|
438
446
|
}
|
|
439
447
|
}
|
|
440
448
|
|
|
449
|
+
// A `default` naming nothing is a configuration typo, and the cost of
|
|
450
|
+
// letting it through is that the app boots, looks healthy, and throws on
|
|
451
|
+
// the first email it tries to send — often a password reset, in
|
|
452
|
+
// production. Refuse at construction and name what was declared.
|
|
453
|
+
if (!this.#transports.has(this.#defaultTransport)) {
|
|
454
|
+
throw new RoverError(
|
|
455
|
+
"E_MAIL_UNKNOWN_MAILER",
|
|
456
|
+
`Mail default mailer '${this.#defaultTransport}' is not declared in config.mailers`,
|
|
457
|
+
{
|
|
458
|
+
hint: `${knownMailers(this.#transports)} Add it, or point \`default\` at one of them.`,
|
|
459
|
+
},
|
|
460
|
+
);
|
|
461
|
+
}
|
|
462
|
+
|
|
441
463
|
if (options?.queue) {
|
|
442
464
|
this.setMessenger(options.queue);
|
|
443
465
|
}
|
|
@@ -509,10 +531,9 @@ export class Mail {
|
|
|
509
531
|
this.#fireSent({ ...base, messageId: randomBytes(16).toString("hex") });
|
|
510
532
|
return;
|
|
511
533
|
}
|
|
512
|
-
// Validate
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
}
|
|
534
|
+
// Validate the mailer up-front, before running any callback / prepare()
|
|
535
|
+
// side effects.
|
|
536
|
+
this.#requireTransport(transportName);
|
|
516
537
|
|
|
517
538
|
const { message, views } = await this.#buildMessageWithViews(arg);
|
|
518
539
|
await this.dispatchMessage(message, transportName, undefined, views);
|
|
@@ -772,9 +793,7 @@ export class Mail {
|
|
|
772
793
|
* routes through that transport (Adonis parity). Mailers are cached per name.
|
|
773
794
|
*/
|
|
774
795
|
use(name: string): Mailer {
|
|
775
|
-
|
|
776
|
-
throw new Error(`Mail transport '${name}' not configured`);
|
|
777
|
-
}
|
|
796
|
+
this.#requireTransport(name);
|
|
778
797
|
let mailer = this.#mailers.get(name);
|
|
779
798
|
if (mailer === undefined) {
|
|
780
799
|
mailer = new Mailer(this, name);
|
|
@@ -785,9 +804,18 @@ export class Mail {
|
|
|
785
804
|
|
|
786
805
|
/** @internal Resolve the raw transport instance behind a mailer name. */
|
|
787
806
|
transportFor(name: string): MailTransport {
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
807
|
+
return this.#requireTransport(name);
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
/** The transport behind `name`, or a RoverError listing the declared ones. */
|
|
811
|
+
#requireTransport(name: string): MailTransport {
|
|
812
|
+
const transport = this.#transports.get(name);
|
|
813
|
+
if (transport) return transport;
|
|
814
|
+
throw new RoverError(
|
|
815
|
+
"E_MAIL_UNKNOWN_MAILER",
|
|
816
|
+
`Mail mailer '${name}' is not declared in config.mailers`,
|
|
817
|
+
{ hint: knownMailers(this.#transports) },
|
|
818
|
+
);
|
|
791
819
|
}
|
|
792
820
|
|
|
793
821
|
/**
|
|
@@ -883,7 +911,7 @@ function validateMailMessage(message: MailMessage): void {
|
|
|
883
911
|
// invalid per RFC 5321 reverse-path semantics.
|
|
884
912
|
if (typeof message.from !== "string" || message.from.trim() === "") {
|
|
885
913
|
throw new RoverError(
|
|
886
|
-
"
|
|
914
|
+
"E_MAIL_INVALID_MESSAGE",
|
|
887
915
|
"Mail message has no `from` address",
|
|
888
916
|
{
|
|
889
917
|
hint: "Set `config.from`, an instance `from`, or call `message.from(...)` in the builder.",
|
|
@@ -894,14 +922,14 @@ function validateMailMessage(message: MailMessage): void {
|
|
|
894
922
|
// `to` to be an array (cc/bcc are optional at the queue boundary), so a
|
|
895
923
|
// deserialised job payload may reach here with `cc`/`bcc` as `undefined`.
|
|
896
924
|
// `.some(...)` on `undefined` throws `TypeError` instead of the
|
|
897
|
-
// structured `
|
|
925
|
+
// structured `E_MAIL_INVALID_MESSAGE` this validator is supposed to surface.
|
|
898
926
|
const hasRecipient =
|
|
899
927
|
(Array.isArray(message.to) && message.to.some(isNonEmptyAddress)) ||
|
|
900
928
|
(Array.isArray(message.cc) && message.cc.some(isNonEmptyAddress)) ||
|
|
901
929
|
(Array.isArray(message.bcc) && message.bcc.some(isNonEmptyAddress));
|
|
902
930
|
if (!hasRecipient) {
|
|
903
931
|
throw new RoverError(
|
|
904
|
-
"
|
|
932
|
+
"E_MAIL_INVALID_MESSAGE",
|
|
905
933
|
"Mail message has no recipients",
|
|
906
934
|
{
|
|
907
935
|
hint: "Call `message.to(...)`, `cc(...)`, or `bcc(...)` with a non-empty address before sending.",
|
|
@@ -932,10 +960,18 @@ function errorDescriptor(
|
|
|
932
960
|
if (err instanceof Error) {
|
|
933
961
|
const errnoCode = (err as { code?: unknown }).code;
|
|
934
962
|
return {
|
|
935
|
-
code: typeof errnoCode === "string" ? errnoCode : "
|
|
963
|
+
code: typeof errnoCode === "string" ? errnoCode : "E_ROVER_UNKNOWN",
|
|
936
964
|
message: err.message,
|
|
937
965
|
attempts,
|
|
938
966
|
};
|
|
939
967
|
}
|
|
940
|
-
return { code: "
|
|
968
|
+
return { code: "E_ROVER_UNKNOWN", message: String(err), attempts };
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
/** "Declared mailers: a, b." — the half of an unknown-mailer error that helps. */
|
|
972
|
+
function knownMailers(transports: Map<string, MailTransport>): string {
|
|
973
|
+
const names = [...transports.keys()];
|
|
974
|
+
return names.length > 0
|
|
975
|
+
? `Declared mailers: ${names.join(", ")}.`
|
|
976
|
+
: "No mailers are declared — add at least one to config.mailers.";
|
|
941
977
|
}
|
package/src/MessageBuilder.ts
CHANGED
|
@@ -183,7 +183,7 @@ export function attachmentsFor(message: MailMessage): MailAttachment[] {
|
|
|
183
183
|
// SMTP. An HTTP provider takes the bytes, and silently dropping the
|
|
184
184
|
// invitation would be worse than saying so.
|
|
185
185
|
throw new RoverError(
|
|
186
|
-
"
|
|
186
|
+
"E_ICAL_HREF_UNSUPPORTED",
|
|
187
187
|
"icalEventFromUrl() is only supported by the SMTP transport, which fetches the URL itself.",
|
|
188
188
|
{
|
|
189
189
|
hint: "Fetch the ICS yourself and pass it to icalEvent(contents), or use icalEventFromFile().",
|
|
@@ -208,7 +208,7 @@ async function readAttachment(path: string, label: string): Promise<Buffer> {
|
|
|
208
208
|
return await readFile(path);
|
|
209
209
|
} catch (err) {
|
|
210
210
|
throw new RoverError(
|
|
211
|
-
"
|
|
211
|
+
"E_ATTACHMENT_UNREADABLE",
|
|
212
212
|
`Could not read ${label} from "${path}": ${err instanceof Error ? err.message : String(err)}`,
|
|
213
213
|
{
|
|
214
214
|
hint: "Give an absolute path, or attach the bytes with attachData() / embedData().",
|
|
@@ -246,7 +246,7 @@ function renderListHeader(
|
|
|
246
246
|
function expect(passed: boolean, expectation: string, actual: unknown): void {
|
|
247
247
|
if (passed) return;
|
|
248
248
|
throw new RoverError(
|
|
249
|
-
"
|
|
249
|
+
"E_ASSERTION_FAILED",
|
|
250
250
|
`Expected the message ${expectation}, got ${JSON.stringify(actual)}`,
|
|
251
251
|
);
|
|
252
252
|
}
|
|
@@ -760,7 +760,7 @@ export class MessageBuilder {
|
|
|
760
760
|
for (const url of listUrls(value)) {
|
|
761
761
|
if (!url.toLowerCase().startsWith("http")) {
|
|
762
762
|
throw new RoverError(
|
|
763
|
-
"
|
|
763
|
+
"E_INVALID_LIST_HEADER",
|
|
764
764
|
`listUnsubscribe({ oneClick: true }) needs an https URL that can answer a POST, got "${url}".`,
|
|
765
765
|
{
|
|
766
766
|
hint: "Keep the mailto: form without oneClick, or add an https endpoint alongside it.",
|
package/src/RoverProvider.ts
CHANGED
|
@@ -29,7 +29,7 @@ export default class RoverProvider {
|
|
|
29
29
|
config ?? {
|
|
30
30
|
default: "log",
|
|
31
31
|
from: "noreply@localhost",
|
|
32
|
-
|
|
32
|
+
mailers: { log: { transport: "log" } },
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
// Optional-peer wiring: if `@c9up/bay` is installed and its
|