@schemavaults/send-email 0.2.1 → 0.3.0
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 +40 -0
- package/dist/cli.js +28 -5
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/send-email-request-body-schema.d.ts +6 -0
- package/dist/send-email-request-body-schema.js +8 -0
- package/dist/send-email-request-body-schema.js.map +1 -1
- package/dist/send-email.d.ts +5 -0
- package/dist/send-email.js +5 -1
- package/dist/send-email.js.map +1 -1
- package/dist/validators/transport-id-schema.d.ts +11 -0
- package/dist/validators/transport-id-schema.js +16 -0
- package/dist/validators/transport-id-schema.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -51,6 +51,36 @@ await sendEmail({
|
|
|
51
51
|
});
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
### Choose a transport
|
|
55
|
+
|
|
56
|
+
When the target `@schemavaults/mail-server` instance has more than one transport configured, the optional `transport` field selects which one delivers the email. Omit it to let the mail-server use its default transport.
|
|
57
|
+
|
|
58
|
+
```ts
|
|
59
|
+
await sendEmail({
|
|
60
|
+
body: {
|
|
61
|
+
to: "user@example.com",
|
|
62
|
+
subject: "Hello",
|
|
63
|
+
message: { text: "Hello.", html: "<p>Hello.</p>" },
|
|
64
|
+
transport: "smtp-primary",
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// Equivalently, as a call-level override (sets `body.transport`):
|
|
69
|
+
await sendEmail({
|
|
70
|
+
transport: "smtp-primary",
|
|
71
|
+
body: { to: "user@example.com", subject: "Hello", message: { /* ... */ } },
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The same applies to `sendEmailToMailingList()`, and to the CLI via the global `--transport <name>` flag:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
bunx schemavaults-send-email --transport smtp-primary send \
|
|
79
|
+
--to user@example.com --subject "Hello" --text "Hello." --html "<p>Hello.</p>"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Transport names are defined by whoever configures the mail-server; this package only validates that the value looks like an identifier. An unknown transport name is rejected by the mail-server, not by the client.
|
|
83
|
+
|
|
54
84
|
### Send to a mailing list
|
|
55
85
|
|
|
56
86
|
```ts
|
|
@@ -109,6 +139,8 @@ interface ISendEmailOpts {
|
|
|
109
139
|
bearerToken?: string; // overrides SCHEMAVAULTS_MAIL_API_KEY
|
|
110
140
|
mailServerUrl?: string; // overrides resolved server URL
|
|
111
141
|
environment?: "production" | "development" | "staging";
|
|
142
|
+
dryRun?: boolean; // convenience; sets body.dryRun
|
|
143
|
+
transport?: string; // convenience; sets body.transport
|
|
112
144
|
}
|
|
113
145
|
```
|
|
114
146
|
|
|
@@ -123,6 +155,8 @@ interface ISendEmailToMailingListOpts {
|
|
|
123
155
|
bearerToken?: string;
|
|
124
156
|
mailServerUrl?: string;
|
|
125
157
|
environment?: "production" | "development" | "staging";
|
|
158
|
+
dryRun?: boolean; // convenience; sets body.dryRun
|
|
159
|
+
transport?: string; // convenience; sets body.transport
|
|
126
160
|
}
|
|
127
161
|
```
|
|
128
162
|
|
|
@@ -159,6 +193,10 @@ Returns a Zod schema for validating send-email request bodies. Pass `true` to al
|
|
|
159
193
|
|
|
160
194
|
Zod schema for validating template IDs: lowercase alphanumeric with hyphens/underscores, 1-64 characters, must start with a letter.
|
|
161
195
|
|
|
196
|
+
### `transportIdSchema`
|
|
197
|
+
|
|
198
|
+
Zod schema for validating transport names: lowercase alphanumeric with hyphens/underscores, 1-64 characters, must start with a lowercase letter and end with a lowercase alphanumeric character. Whether a well-formed name corresponds to a transport the mail-server actually has configured is decided server-side.
|
|
199
|
+
|
|
162
200
|
## Request body shape
|
|
163
201
|
|
|
164
202
|
The `message` field accepts either a template reference or raw content:
|
|
@@ -176,6 +214,8 @@ type SendEmailRequestBody = {
|
|
|
176
214
|
replyTo?: string;
|
|
177
215
|
cc?: string | string[];
|
|
178
216
|
bcc?: string | string[];
|
|
217
|
+
dryRun?: boolean; // server validates without dispatching
|
|
218
|
+
transport?: string; // which mail-server transport delivers this email
|
|
179
219
|
};
|
|
180
220
|
```
|
|
181
221
|
|
package/dist/cli.js
CHANGED
|
@@ -7547,6 +7547,12 @@ var emailTemplateIdSchema = external_exports.string().min(1, "Email template ID
|
|
|
7547
7547
|
"Template ID must start with a letter, and may only contain lowercase alphanumeric characters, hyphens and underscores."
|
|
7548
7548
|
);
|
|
7549
7549
|
|
|
7550
|
+
// src/validators/transport-id-schema.ts
|
|
7551
|
+
var transportIdSchema = external_exports.string().min(1, "Transport ID must be non-empty!").max(64).regex(
|
|
7552
|
+
/^[a-z]([a-z0-9_-]*[a-z0-9])?$/,
|
|
7553
|
+
"Transport ID must start with a lowercase letter and end with a lowercase alphanumeric character, and may only contain lowercase alphanumeric characters, hyphens and underscores."
|
|
7554
|
+
);
|
|
7555
|
+
|
|
7550
7556
|
// src/send-email-request-body-schema.ts
|
|
7551
7557
|
var sendEmailTemplateOptions = external_exports.object({
|
|
7552
7558
|
template_id: emailTemplateIdSchema,
|
|
@@ -7596,7 +7602,14 @@ function createSendEmailRequestBodySchema(allow_mailing_list_ids_as_recipients =
|
|
|
7596
7602
|
external_exports.string().email(),
|
|
7597
7603
|
external_exports.string().email().array().min(1).max(MAX_RECIPIENTS)
|
|
7598
7604
|
]).optional(),
|
|
7599
|
-
dryRun: external_exports.boolean().optional()
|
|
7605
|
+
dryRun: external_exports.boolean().optional(),
|
|
7606
|
+
/**
|
|
7607
|
+
* Which transport configured on the mail-server should deliver this
|
|
7608
|
+
* email? Only meaningful when the target `@schemavaults/mail-server`
|
|
7609
|
+
* instance has more than one transport configured; when omitted, the
|
|
7610
|
+
* mail-server picks its own default transport.
|
|
7611
|
+
*/
|
|
7612
|
+
transport: transportIdSchema.optional()
|
|
7600
7613
|
}).required({
|
|
7601
7614
|
to: true,
|
|
7602
7615
|
message: true,
|
|
@@ -7666,7 +7679,11 @@ async function sendEmail({
|
|
|
7666
7679
|
body,
|
|
7667
7680
|
...opts
|
|
7668
7681
|
}) {
|
|
7669
|
-
const effectiveBody =
|
|
7682
|
+
const effectiveBody = {
|
|
7683
|
+
...body,
|
|
7684
|
+
...typeof opts.dryRun === "boolean" ? { dryRun: opts.dryRun } : {},
|
|
7685
|
+
...typeof opts.transport === "string" ? { transport: opts.transport } : {}
|
|
7686
|
+
};
|
|
7670
7687
|
const parsed = await body_schema.safeParseAsync(effectiveBody);
|
|
7671
7688
|
if (!parsed.success) {
|
|
7672
7689
|
console.error("Bad request body: ", parsed.error);
|
|
@@ -7864,6 +7881,9 @@ program2.name("schemavaults-send-email").description("CLI for sending emails via
|
|
|
7864
7881
|
).option(
|
|
7865
7882
|
"--dry-run",
|
|
7866
7883
|
"Validate the request server-side without dispatching the email"
|
|
7884
|
+
).option(
|
|
7885
|
+
"--transport <name>",
|
|
7886
|
+
"Which mail-server transport should deliver the email (defaults to the mail-server's default transport)"
|
|
7867
7887
|
);
|
|
7868
7888
|
attachBodyOptions(
|
|
7869
7889
|
program2.command("send").description("Send an email to one or more recipients").option("--to <email...>", "Recipient email address (repeatable)").option("--cc <email...>", "CC recipient (repeatable)").option("--bcc <email...>", "BCC recipient (repeatable)")
|
|
@@ -7893,7 +7913,8 @@ attachBodyOptions(
|
|
|
7893
7913
|
await send_email_default({
|
|
7894
7914
|
body,
|
|
7895
7915
|
...global.apiKey ? { bearerToken: global.apiKey } : {},
|
|
7896
|
-
...global.dryRun ? { dryRun: true } : {}
|
|
7916
|
+
...global.dryRun ? { dryRun: true } : {},
|
|
7917
|
+
...global.transport ? { transport: global.transport } : {}
|
|
7897
7918
|
});
|
|
7898
7919
|
console.log(
|
|
7899
7920
|
global.dryRun ? "[dry-run] request validated; no email sent." : "Email sent."
|
|
@@ -7915,7 +7936,8 @@ attachBodyOptions(
|
|
|
7915
7936
|
subject: fullBody.subject,
|
|
7916
7937
|
message: fullBody.message,
|
|
7917
7938
|
...fullBody.from ? { from: fullBody.from } : {},
|
|
7918
|
-
...fullBody.replyTo ? { replyTo: fullBody.replyTo } : {}
|
|
7939
|
+
...fullBody.replyTo ? { replyTo: fullBody.replyTo } : {},
|
|
7940
|
+
...fullBody.transport ? { transport: fullBody.transport } : {}
|
|
7919
7941
|
};
|
|
7920
7942
|
} else {
|
|
7921
7943
|
if (!opts.subject) {
|
|
@@ -7932,7 +7954,8 @@ attachBodyOptions(
|
|
|
7932
7954
|
body,
|
|
7933
7955
|
...opts.mailingListId ? { mailingListId: opts.mailingListId } : {},
|
|
7934
7956
|
...global.apiKey ? { bearerToken: global.apiKey } : {},
|
|
7935
|
-
...global.dryRun ? { dryRun: true } : {}
|
|
7957
|
+
...global.dryRun ? { dryRun: true } : {},
|
|
7958
|
+
...global.transport ? { transport: global.transport } : {}
|
|
7936
7959
|
});
|
|
7937
7960
|
console.log(
|
|
7938
7961
|
global.dryRun ? "[dry-run] mailing-list request validated; no email sent." : "Email sent to mailing list."
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,SAAS;AAET,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,sBAAsB,MAAM,8BAA8B,CAAC;AAClE,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,SAAS;AAET,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,sBAAsB,MAAM,8BAA8B,CAAC;AAClE,OAAO,kBAAkB,MAAM,wBAAwB,CAAC;AAwCxD,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAuB;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB;IACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrD,OAAO,KAAK,KAAK,SAAS;YACxB,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE;YAClC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,IAAI,GACR,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,aAAa,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,EAAuB;IACtD,IAAI,CAAC;QACH,MAAM,EAAE,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAY;IACrC,OAAO,GAAG;SACP,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;SAChD,MAAM,CAAC,qBAAqB,EAAE,eAAe,CAAC;SAC9C,MAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;SACtD,MAAM,CACL,oBAAoB,EACpB,2DAA2D,CAC5D;SACA,MAAM,CACL,yBAAyB,EACzB,kDAAkD,CACnD;SACA,MAAM,CAAC,eAAe,EAAE,mCAAmC,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,6BAA6B,CAAC;SACtD,MAAM,CACL,oBAAoB,EACpB,+CAA+C,CAChD;SACA,MAAM,CAAC,oBAAoB,EAAE,yCAAyC,CAAC;SACvE,MAAM,CACL,oBAAoB,EACpB,mFAAmF,CACpF,CAAC;AACN,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,yBAAyB,CAAC;KAC/B,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CACL,iBAAiB,EACjB,8DAA8D,CAC/D;KACA,SAAS,CACR,IAAI,MAAM,CACR,qBAAqB,EACrB,iCAAiC,CAClC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC,CACpD;KACA,MAAM,CACL,WAAW,EACX,gEAAgE,CACjE;KACA,MAAM,CACL,oBAAoB,EACpB,wGAAwG,CACzG,CAAC;AAEJ,iBAAiB,CACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;KACtD,MAAM,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAC5D,CAAC,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,GAAY,EAAE,EAAE;IAC9C,MAAM,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAc,CAAC;QAEjD,IAAI,IAA0B,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,GAAG;gBACL,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;gBAC/C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;oBAC/B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE;oBACrD,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;oBACjC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;oBACzD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,CAAC;YACd,IAAI;YACJ,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,MAAM;YACX,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,aAAa,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,iBAAiB,CACf,OAAO;KACJ,OAAO,CAAC,sBAAsB,CAAC;KAC/B,WAAW,CAAC,8CAA8C,CAAC;KAC3D,MAAM,CACL,0BAA0B,EAC1B,sEAAsE,CACvE,CACJ,CAAC,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,GAAY,EAAE,EAAE;IACrD,MAAM,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAc,CAAC;QAEjD,IAAI,IAAqD,CAAC;QAC1D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,GAAG;gBACL,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACjE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,GAAG;gBACL,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC;gBAC3B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAC;QACJ,CAAC;QAED,MAAM,sBAAsB,CAAC;YAC3B,IAAI;YACJ,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CACT,MAAM,CAAC,MAAM;YACX,CAAC,CAAC,0DAA0D;YAC5D,CAAC,CAAC,6BAA6B,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,SAAS,CACR,IAAI,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC;KAC1C,OAAO,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1B,OAAO,CAAC,MAAM,CAAC,CACnB;KACA,MAAM,CAAC,KAAK,EAAE,IAAuB,EAAE,GAAY,EAAE,EAAE;IACtD,MAAM,iBAAiB,CAAC,KAAK,IAAI,EAAE;QACjC,MAAM,MAAM,GAAG,GAAG,CAAC,eAAe,EAAc,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzD,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtD,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { sendEmailRequestBodySchema, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
|
|
2
2
|
export type { SendEmailRequestBody } from "./send-email-request-body-schema.js";
|
|
3
3
|
export { emailTemplateIdSchema } from "./validators/email-template-id-schema.js";
|
|
4
|
+
export { transportIdSchema } from "./validators/transport-id-schema.js";
|
|
4
5
|
export { sendEmail, sendEmail as default, } from "./send-email.js";
|
|
5
6
|
export type { ISendEmailOpts } from './send-email.js';
|
|
6
7
|
export { getSchemaVaultsMailApiKey, } from "./env/get-api-key.js";
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { sendEmailRequestBodySchema, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
|
|
2
2
|
export { emailTemplateIdSchema } from "./validators/email-template-id-schema.js";
|
|
3
|
+
export { transportIdSchema } from "./validators/transport-id-schema.js";
|
|
3
4
|
export { sendEmail, sendEmail as default, } from "./send-email.js";
|
|
4
5
|
export { getSchemaVaultsMailApiKey, } from "./env/get-api-key.js";
|
|
5
6
|
export { getSchemaVaultsMailingListId, } from "./env/get-mailing-list-id.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EACL,SAAS,EACT,SAAS,IAAI,OAAO,GACrB,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EACL,SAAS,EACT,SAAS,IAAI,OAAO,GACrB,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,yBAAyB,GAC1B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -32,6 +32,7 @@ export declare function createSendEmailRequestBodySchema(allow_mailing_list_ids_
|
|
|
32
32
|
cc: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
33
33
|
bcc: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
34
34
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
transport: z.ZodOptional<z.ZodString>;
|
|
35
36
|
}, "strict", z.ZodTypeAny, {
|
|
36
37
|
message: {
|
|
37
38
|
template_id: string;
|
|
@@ -47,6 +48,7 @@ export declare function createSendEmailRequestBodySchema(allow_mailing_list_ids_
|
|
|
47
48
|
cc?: string | string[] | undefined;
|
|
48
49
|
bcc?: string | string[] | undefined;
|
|
49
50
|
dryRun?: boolean | undefined;
|
|
51
|
+
transport?: string | undefined;
|
|
50
52
|
}, {
|
|
51
53
|
message: {
|
|
52
54
|
template_id: string;
|
|
@@ -62,6 +64,7 @@ export declare function createSendEmailRequestBodySchema(allow_mailing_list_ids_
|
|
|
62
64
|
cc?: string | string[] | undefined;
|
|
63
65
|
bcc?: string | string[] | undefined;
|
|
64
66
|
dryRun?: boolean | undefined;
|
|
67
|
+
transport?: string | undefined;
|
|
65
68
|
}>;
|
|
66
69
|
/**
|
|
67
70
|
* Default send email request body schema
|
|
@@ -97,6 +100,7 @@ export declare const sendEmailRequestBodySchema: z.ZodObject<{
|
|
|
97
100
|
cc: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
98
101
|
bcc: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
|
|
99
102
|
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
103
|
+
transport: z.ZodOptional<z.ZodString>;
|
|
100
104
|
}, "strict", z.ZodTypeAny, {
|
|
101
105
|
message: {
|
|
102
106
|
template_id: string;
|
|
@@ -112,6 +116,7 @@ export declare const sendEmailRequestBodySchema: z.ZodObject<{
|
|
|
112
116
|
cc?: string | string[] | undefined;
|
|
113
117
|
bcc?: string | string[] | undefined;
|
|
114
118
|
dryRun?: boolean | undefined;
|
|
119
|
+
transport?: string | undefined;
|
|
115
120
|
}, {
|
|
116
121
|
message: {
|
|
117
122
|
template_id: string;
|
|
@@ -127,6 +132,7 @@ export declare const sendEmailRequestBodySchema: z.ZodObject<{
|
|
|
127
132
|
cc?: string | string[] | undefined;
|
|
128
133
|
bcc?: string | string[] | undefined;
|
|
129
134
|
dryRun?: boolean | undefined;
|
|
135
|
+
transport?: string | undefined;
|
|
130
136
|
}>;
|
|
131
137
|
export type SendEmailRequestBody = z.infer<typeof sendEmailRequestBodySchema>;
|
|
132
138
|
export default createSendEmailRequestBodySchema;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { emailTemplateIdSchema } from "./validators/email-template-id-schema.js";
|
|
3
|
+
import { transportIdSchema } from "./validators/transport-id-schema.js";
|
|
3
4
|
const sendEmailTemplateOptions = z
|
|
4
5
|
.object({
|
|
5
6
|
template_id: emailTemplateIdSchema,
|
|
@@ -61,6 +62,13 @@ export function createSendEmailRequestBodySchema(allow_mailing_list_ids_as_recip
|
|
|
61
62
|
])
|
|
62
63
|
.optional(),
|
|
63
64
|
dryRun: z.boolean().optional(),
|
|
65
|
+
/**
|
|
66
|
+
* Which transport configured on the mail-server should deliver this
|
|
67
|
+
* email? Only meaningful when the target `@schemavaults/mail-server`
|
|
68
|
+
* instance has more than one transport configured; when omitted, the
|
|
69
|
+
* mail-server picks its own default transport.
|
|
70
|
+
*/
|
|
71
|
+
transport: transportIdSchema.optional(),
|
|
64
72
|
})
|
|
65
73
|
.required({
|
|
66
74
|
to: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-email-request-body-schema.js","sourceRoot":"","sources":["../src/send-email-request-body-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"send-email-request-body-schema.js","sourceRoot":"","sources":["../src/send-email-request-body-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/send-email.d.ts
CHANGED
|
@@ -5,6 +5,11 @@ export interface ISendEmailOpts {
|
|
|
5
5
|
bearerToken?: string;
|
|
6
6
|
mailServerUrl?: string;
|
|
7
7
|
dryRun?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Convenience override for `body.transport` -- names which of the
|
|
10
|
+
* mail-server's configured transports should deliver this email.
|
|
11
|
+
*/
|
|
12
|
+
transport?: string;
|
|
8
13
|
}
|
|
9
14
|
export { getSchemaVaultsMailApiKey };
|
|
10
15
|
export declare function sendEmail({ body, ...opts }: ISendEmailOpts): Promise<void>;
|
package/dist/send-email.js
CHANGED
|
@@ -5,7 +5,11 @@ import parseMailServerUrlWithEnvFallback from "./parse-mail-server-url-with-env-
|
|
|
5
5
|
const body_schema = createSendEmailRequestBodySchema(true);
|
|
6
6
|
export { getSchemaVaultsMailApiKey };
|
|
7
7
|
export async function sendEmail({ body, ...opts }) {
|
|
8
|
-
const effectiveBody =
|
|
8
|
+
const effectiveBody = {
|
|
9
|
+
...body,
|
|
10
|
+
...(typeof opts.dryRun === "boolean" ? { dryRun: opts.dryRun } : {}),
|
|
11
|
+
...(typeof opts.transport === "string" ? { transport: opts.transport } : {}),
|
|
12
|
+
};
|
|
9
13
|
const parsed = await body_schema.safeParseAsync(effectiveBody);
|
|
10
14
|
if (!parsed.success) {
|
|
11
15
|
console.error("Bad request body: ", parsed.error);
|
package/dist/send-email.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-email.js","sourceRoot":"","sources":["../src/send-email.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAEhB,OAAO,EAEL,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,yBAAyB,MAAM,mBAAmB,CAAC;AAC1D,OAAO,iCAAiC,MAAM,2CAA2C,CAAC;AAE1F,MAAM,WAAW,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"send-email.js","sourceRoot":"","sources":["../src/send-email.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Identifier of a transport configured on the target `@schemavaults/mail-server`
|
|
4
|
+
* instance (e.g. "resend", "smtp-primary", "ses_us_east_1").
|
|
5
|
+
*
|
|
6
|
+
* Transport names are chosen by whoever configures the mail-server, so this
|
|
7
|
+
* schema only enforces that the value looks like an identifier -- the
|
|
8
|
+
* mail-server is the authority on whether the named transport actually exists.
|
|
9
|
+
*/
|
|
10
|
+
export declare const transportIdSchema: z.ZodString;
|
|
11
|
+
export default transportIdSchema;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Identifier of a transport configured on the target `@schemavaults/mail-server`
|
|
4
|
+
* instance (e.g. "resend", "smtp-primary", "ses_us_east_1").
|
|
5
|
+
*
|
|
6
|
+
* Transport names are chosen by whoever configures the mail-server, so this
|
|
7
|
+
* schema only enforces that the value looks like an identifier -- the
|
|
8
|
+
* mail-server is the authority on whether the named transport actually exists.
|
|
9
|
+
*/
|
|
10
|
+
export const transportIdSchema = z
|
|
11
|
+
.string()
|
|
12
|
+
.min(1, "Transport ID must be non-empty!")
|
|
13
|
+
.max(64)
|
|
14
|
+
.regex(/^[a-z]([a-z0-9_-]*[a-z0-9])?$/, "Transport ID must start with a lowercase letter and end with a lowercase alphanumeric character, and may only contain lowercase alphanumeric characters, hyphens and underscores.");
|
|
15
|
+
export default transportIdSchema;
|
|
16
|
+
//# sourceMappingURL=transport-id-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport-id-schema.js","sourceRoot":"","sources":["../../src/validators/transport-id-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,iCAAiC,CAAC;KACzC,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,+BAA+B,EAC/B,mLAAmL,CACpL,CAAC;AAEJ,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED