@schemavaults/send-email 0.1.0 → 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.
Files changed (46) hide show
  1. package/README.md +45 -0
  2. package/dist/cli.js +44 -16
  3. package/dist/cli.js.map +1 -1
  4. package/dist/env/get-api-key.js.map +1 -0
  5. package/dist/env/get-mail-server-url.d.ts +6 -0
  6. package/dist/{resolve-mail-server-url-from-env-vars.js → env/get-mail-server-url.js} +7 -2
  7. package/dist/env/get-mail-server-url.js.map +1 -0
  8. package/dist/env/get-mailing-list-id.d.ts +2 -0
  9. package/dist/env/get-mailing-list-id.js +9 -0
  10. package/dist/env/get-mailing-list-id.js.map +1 -0
  11. package/dist/index.d.ts +10 -4
  12. package/dist/index.js +8 -4
  13. package/dist/index.js.map +1 -1
  14. package/dist/list-email-templates.js +1 -1
  15. package/dist/list-email-templates.js.map +1 -1
  16. package/dist/parse-mail-server-url-with-env-fallback.js +3 -3
  17. package/dist/parse-mail-server-url-with-env-fallback.js.map +1 -1
  18. package/dist/send-email-request-body-schema.d.ts +6 -0
  19. package/dist/send-email-request-body-schema.js +9 -1
  20. package/dist/send-email-request-body-schema.js.map +1 -1
  21. package/dist/send-email-to-mailing-list.d.ts +1 -1
  22. package/dist/send-email-to-mailing-list.js +4 -12
  23. package/dist/send-email-to-mailing-list.js.map +1 -1
  24. package/dist/send-email.d.ts +6 -1
  25. package/dist/send-email.js +6 -2
  26. package/dist/send-email.js.map +1 -1
  27. package/dist/validators/email-template-id-schema.js.map +1 -0
  28. package/dist/validators/is-valid-url.js.map +1 -0
  29. package/dist/validators/is-valid-uuid.d.ts +1 -0
  30. package/dist/validators/is-valid-uuid.js +5 -0
  31. package/dist/validators/is-valid-uuid.js.map +1 -0
  32. package/dist/validators/transport-id-schema.d.ts +11 -0
  33. package/dist/validators/transport-id-schema.js +16 -0
  34. package/dist/validators/transport-id-schema.js.map +1 -0
  35. package/package.json +1 -1
  36. package/dist/email-template-id-schema.js.map +0 -1
  37. package/dist/get-api-key.js.map +0 -1
  38. package/dist/is-valid-url.js.map +0 -1
  39. package/dist/resolve-mail-server-url-from-env-vars.d.ts +0 -1
  40. package/dist/resolve-mail-server-url-from-env-vars.js.map +0 -1
  41. /package/dist/{get-api-key.d.ts → env/get-api-key.d.ts} +0 -0
  42. /package/dist/{get-api-key.js → env/get-api-key.js} +0 -0
  43. /package/dist/{email-template-id-schema.d.ts → validators/email-template-id-schema.d.ts} +0 -0
  44. /package/dist/{email-template-id-schema.js → validators/email-template-id-schema.js} +0 -0
  45. /package/dist/{is-valid-url.d.ts → validators/is-valid-url.d.ts} +0 -0
  46. /package/dist/{is-valid-url.js → validators/is-valid-url.js} +0 -0
package/README.md CHANGED
@@ -17,6 +17,7 @@ npm install @schemavaults/send-email
17
17
  | `SCHEMAVAULTS_MAIL_API_KEY` | Yes | Bearer token for the mail-server API. Starts with `svlts_mail_pk_`. |
18
18
  | `SCHEMAVAULTS_MAILING_LIST_ID` | For mailing list sends | UUID of the target mailing list. |
19
19
  | `SCHEMAVAULTS_APP_ENVIRONMENT` | No | `"production"` (default), `"development"`, or `"staging"`. Controls which mail-server instance is targeted. |
20
+ | `SCHEMAVAULTS_MAIL_SERVER_URL` | No | What is the URL of the [`@schemavaults/mail-server` instance](https://github.com/schemavaults/mail-server) to attempt sending mail through? You may also pass the `mailServerUrl` option instead of setting an environment variable. |
20
21
 
21
22
  ## Usage
22
23
 
@@ -50,6 +51,36 @@ await sendEmail({
50
51
  });
51
52
  ```
52
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
+
53
84
  ### Send to a mailing list
54
85
 
55
86
  ```ts
@@ -108,6 +139,8 @@ interface ISendEmailOpts {
108
139
  bearerToken?: string; // overrides SCHEMAVAULTS_MAIL_API_KEY
109
140
  mailServerUrl?: string; // overrides resolved server URL
110
141
  environment?: "production" | "development" | "staging";
142
+ dryRun?: boolean; // convenience; sets body.dryRun
143
+ transport?: string; // convenience; sets body.transport
111
144
  }
112
145
  ```
113
146
 
@@ -122,6 +155,8 @@ interface ISendEmailToMailingListOpts {
122
155
  bearerToken?: string;
123
156
  mailServerUrl?: string;
124
157
  environment?: "production" | "development" | "staging";
158
+ dryRun?: boolean; // convenience; sets body.dryRun
159
+ transport?: string; // convenience; sets body.transport
125
160
  }
126
161
  ```
127
162
 
@@ -142,6 +177,10 @@ interface EmailTemplate {
142
177
  }
143
178
  ```
144
179
 
180
+ ### `getMailServerUrl()`
181
+
182
+ Reads and returns `SCHEMAVAULTS_MAIL_SERVER_URL` from the environment. Throws if not set.
183
+
145
184
  ### `getSchemaVaultsMailApiKey()`
146
185
 
147
186
  Reads and returns `SCHEMAVAULTS_MAIL_API_KEY` from the environment. Throws if not set.
@@ -154,6 +193,10 @@ Returns a Zod schema for validating send-email request bodies. Pass `true` to al
154
193
 
155
194
  Zod schema for validating template IDs: lowercase alphanumeric with hyphens/underscores, 1-64 characters, must start with a letter.
156
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
+
157
200
  ## Request body shape
158
201
 
159
202
  The `message` field accepts either a template reference or raw content:
@@ -171,6 +214,8 @@ type SendEmailRequestBody = {
171
214
  replyTo?: string;
172
215
  cc?: string | string[];
173
216
  bcc?: string | string[];
217
+ dryRun?: boolean; // server validates without dispatching
218
+ transport?: string; // which mail-server transport delivers this email
174
219
  };
175
220
  ```
176
221
 
package/dist/cli.js CHANGED
@@ -7541,12 +7541,18 @@ var coerce = {
7541
7541
  };
7542
7542
  var NEVER = INVALID;
7543
7543
 
7544
- // src/email-template-id-schema.ts
7544
+ // src/validators/email-template-id-schema.ts
7545
7545
  var emailTemplateIdSchema = external_exports.string().min(1, "Email template ID must be non-empty!").max(64).regex(
7546
7546
  /^[a-z][a-z0-9_-]+$/,
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,
@@ -7605,7 +7618,7 @@ function createSendEmailRequestBodySchema(allow_mailing_list_ids_as_recipients =
7605
7618
  }
7606
7619
  var sendEmailRequestBodySchema = createSendEmailRequestBodySchema();
7607
7620
 
7608
- // src/get-api-key.ts
7621
+ // src/env/get-api-key.ts
7609
7622
  function getSchemaVaultsMailApiKey() {
7610
7623
  if (!process.env.SCHEMAVAULTS_MAIL_API_KEY || typeof process.env.SCHEMAVAULTS_MAIL_API_KEY !== "string") {
7611
7624
  throw new Error(
@@ -7616,13 +7629,13 @@ function getSchemaVaultsMailApiKey() {
7616
7629
  }
7617
7630
  var get_api_key_default = getSchemaVaultsMailApiKey;
7618
7631
 
7619
- // src/is-valid-url.ts
7632
+ // src/validators/is-valid-url.ts
7620
7633
  function isValidUrl(val) {
7621
7634
  return typeof val === "string" && stringType().url().safeParse(val).success;
7622
7635
  }
7623
7636
 
7624
- // src/resolve-mail-server-url-from-env-vars.ts
7625
- function resolveMailServerUrlFromEnvVars() {
7637
+ // src/env/get-mail-server-url.ts
7638
+ function getMailServerUrl() {
7626
7639
  const SCHEMAVAULTS_MAIL_SERVER_URL = process.env.SCHEMAVAULTS_MAIL_SERVER_URL;
7627
7640
  if (typeof SCHEMAVAULTS_MAIL_SERVER_URL === "string" && SCHEMAVAULTS_MAIL_SERVER_URL.length > 0) {
7628
7641
  return SCHEMAVAULTS_MAIL_SERVER_URL;
@@ -7631,6 +7644,7 @@ function resolveMailServerUrlFromEnvVars() {
7631
7644
  `Failed to parse mail server URL from environment variable 'SCHEMAVAULTS_MAIL_SERVER_URL'`
7632
7645
  );
7633
7646
  }
7647
+ var get_mail_server_url_default = getMailServerUrl;
7634
7648
 
7635
7649
  // src/parse-mail-server-url-with-env-fallback.ts
7636
7650
  function parseMailServerUrlWithEnvFallback(maybe_mail_server_url_input) {
@@ -7647,7 +7661,7 @@ function parseMailServerUrlWithEnvFallback(maybe_mail_server_url_input) {
7647
7661
  mail_server_url = maybe_mail_server_url_input;
7648
7662
  } else if (typeof maybe_mail_server_url_input === "undefined") {
7649
7663
  try {
7650
- mail_server_url = resolveMailServerUrlFromEnvVars();
7664
+ mail_server_url = get_mail_server_url_default();
7651
7665
  } catch {
7652
7666
  }
7653
7667
  }
@@ -7665,7 +7679,11 @@ async function sendEmail({
7665
7679
  body,
7666
7680
  ...opts
7667
7681
  }) {
7668
- const effectiveBody = typeof opts.dryRun === "boolean" ? { ...body, dryRun: opts.dryRun } : body;
7682
+ const effectiveBody = {
7683
+ ...body,
7684
+ ...typeof opts.dryRun === "boolean" ? { dryRun: opts.dryRun } : {},
7685
+ ...typeof opts.transport === "string" ? { transport: opts.transport } : {}
7686
+ };
7669
7687
  const parsed = await body_schema.safeParseAsync(effectiveBody);
7670
7688
  if (!parsed.success) {
7671
7689
  console.error("Bad request body: ", parsed.error);
@@ -7711,7 +7729,12 @@ async function sendEmail({
7711
7729
  }
7712
7730
  var send_email_default = sendEmail;
7713
7731
 
7714
- // src/send-email-to-mailing-list.ts
7732
+ // src/validators/is-valid-uuid.ts
7733
+ function isValidUuid(val) {
7734
+ return typeof val === "string" && external_exports.string().safeParse(val).success;
7735
+ }
7736
+
7737
+ // src/env/get-mailing-list-id.ts
7715
7738
  function getSchemaVaultsMailingListId() {
7716
7739
  if (!process.env.SCHEMAVAULTS_MAILING_LIST_ID || typeof process.env.SCHEMAVAULTS_MAILING_LIST_ID !== "string") {
7717
7740
  throw new Error(
@@ -7720,9 +7743,8 @@ function getSchemaVaultsMailingListId() {
7720
7743
  }
7721
7744
  return process.env.SCHEMAVAULTS_MAILING_LIST_ID;
7722
7745
  }
7723
- function isUuid(val) {
7724
- return typeof val === "string" && external_exports.string().safeParse(val).success;
7725
- }
7746
+
7747
+ // src/send-email-to-mailing-list.ts
7726
7748
  async function sendEmailToMailingList(opts) {
7727
7749
  let to;
7728
7750
  if (typeof opts.mailingListId === "string") {
@@ -7730,7 +7752,7 @@ async function sendEmailToMailingList(opts) {
7730
7752
  } else {
7731
7753
  to = getSchemaVaultsMailingListId();
7732
7754
  }
7733
- if (!isUuid(to)) {
7755
+ if (!isValidUuid(to)) {
7734
7756
  throw new TypeError(
7735
7757
  "Failed to parse 'to' field as a mailing list ID (UUID)!"
7736
7758
  );
@@ -7859,6 +7881,9 @@ program2.name("schemavaults-send-email").description("CLI for sending emails via
7859
7881
  ).option(
7860
7882
  "--dry-run",
7861
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)"
7862
7887
  );
7863
7888
  attachBodyOptions(
7864
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)")
@@ -7888,7 +7913,8 @@ attachBodyOptions(
7888
7913
  await send_email_default({
7889
7914
  body,
7890
7915
  ...global.apiKey ? { bearerToken: global.apiKey } : {},
7891
- ...global.dryRun ? { dryRun: true } : {}
7916
+ ...global.dryRun ? { dryRun: true } : {},
7917
+ ...global.transport ? { transport: global.transport } : {}
7892
7918
  });
7893
7919
  console.log(
7894
7920
  global.dryRun ? "[dry-run] request validated; no email sent." : "Email sent."
@@ -7910,7 +7936,8 @@ attachBodyOptions(
7910
7936
  subject: fullBody.subject,
7911
7937
  message: fullBody.message,
7912
7938
  ...fullBody.from ? { from: fullBody.from } : {},
7913
- ...fullBody.replyTo ? { replyTo: fullBody.replyTo } : {}
7939
+ ...fullBody.replyTo ? { replyTo: fullBody.replyTo } : {},
7940
+ ...fullBody.transport ? { transport: fullBody.transport } : {}
7914
7941
  };
7915
7942
  } else {
7916
7943
  if (!opts.subject) {
@@ -7927,7 +7954,8 @@ attachBodyOptions(
7927
7954
  body,
7928
7955
  ...opts.mailingListId ? { mailingListId: opts.mailingListId } : {},
7929
7956
  ...global.apiKey ? { bearerToken: global.apiKey } : {},
7930
- ...global.dryRun ? { dryRun: true } : {}
7957
+ ...global.dryRun ? { dryRun: true } : {},
7958
+ ...global.transport ? { transport: global.transport } : {}
7931
7959
  });
7932
7960
  console.log(
7933
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":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-api-key.js","sourceRoot":"","sources":["../../src/env/get-api-key.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB;IACvC,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,QAAQ,EACzD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;AAC/C,CAAC;AAED,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @throws TypeError if environment variable not set
3
+ * @returns The mail server URL parsed from environment variable `SCHEMAVAULTS_MAIL_SERVER_URL`
4
+ */
5
+ export declare function getMailServerUrl(): string;
6
+ export default getMailServerUrl;
@@ -1,4 +1,8 @@
1
- export default function resolveMailServerUrlFromEnvVars() {
1
+ /**
2
+ * @throws TypeError if environment variable not set
3
+ * @returns The mail server URL parsed from environment variable `SCHEMAVAULTS_MAIL_SERVER_URL`
4
+ */
5
+ export function getMailServerUrl() {
2
6
  const SCHEMAVAULTS_MAIL_SERVER_URL = process.env.SCHEMAVAULTS_MAIL_SERVER_URL;
3
7
  if (typeof SCHEMAVAULTS_MAIL_SERVER_URL === "string" &&
4
8
  SCHEMAVAULTS_MAIL_SERVER_URL.length > 0) {
@@ -6,4 +10,5 @@ export default function resolveMailServerUrlFromEnvVars() {
6
10
  }
7
11
  throw new TypeError(`Failed to parse mail server URL from environment variable 'SCHEMAVAULTS_MAIL_SERVER_URL'`);
8
12
  }
9
- //# sourceMappingURL=resolve-mail-server-url-from-env-vars.js.map
13
+ export default getMailServerUrl;
14
+ //# sourceMappingURL=get-mail-server-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-mail-server-url.js","sourceRoot":"","sources":["../../src/env/get-mail-server-url.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,4BAA4B,GAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC3C,IACE,OAAO,4BAA4B,KAAK,QAAQ;QAChD,4BAA4B,CAAC,MAAM,GAAG,CAAC,EACvC,CAAC;QACD,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,0FAA0F,CAC3F,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getSchemaVaultsMailingListId(): string;
2
+ export default getSchemaVaultsMailingListId;
@@ -0,0 +1,9 @@
1
+ export function getSchemaVaultsMailingListId() {
2
+ if (!process.env.SCHEMAVAULTS_MAILING_LIST_ID ||
3
+ typeof process.env.SCHEMAVAULTS_MAILING_LIST_ID !== "string") {
4
+ throw new Error("Failed to load mailing list ID from environment variable 'SCHEMAVAULTS_MAILING_LIST_ID'");
5
+ }
6
+ return process.env.SCHEMAVAULTS_MAILING_LIST_ID;
7
+ }
8
+ export default getSchemaVaultsMailingListId;
9
+ //# sourceMappingURL=get-mailing-list-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-mailing-list-id.js","sourceRoot":"","sources":["../../src/env/get-mailing-list-id.ts"],"names":[],"mappings":"AACA,MAAM,UAAU,4BAA4B;IAC1C,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,QAAQ,EAC5D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AAClD,CAAC;AAED,eAAe,4BAA4B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,13 @@
1
- export { sendEmailRequestBodySchema, sendEmailRequestBodySchema as default, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
1
+ export { sendEmailRequestBodySchema, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
2
2
  export type { SendEmailRequestBody } from "./send-email-request-body-schema.js";
3
- export { emailTemplateIdSchema } from "./email-template-id-schema.js";
4
- export { getSchemaVaultsMailApiKey, sendEmail } from "./send-email.js";
5
- export { getSchemaVaultsMailingListId, sendEmailToMailingList, } from "./send-email-to-mailing-list.js";
3
+ export { emailTemplateIdSchema } from "./validators/email-template-id-schema.js";
4
+ export { transportIdSchema } from "./validators/transport-id-schema.js";
5
+ export { sendEmail, sendEmail as default, } from "./send-email.js";
6
+ export type { ISendEmailOpts } from './send-email.js';
7
+ export { getSchemaVaultsMailApiKey, } from "./env/get-api-key.js";
8
+ export { getSchemaVaultsMailingListId, } from "./env/get-mailing-list-id.js";
9
+ export { getMailServerUrl } from "./env/get-mail-server-url.js";
10
+ export { sendEmailToMailingList, } from "./send-email-to-mailing-list.js";
11
+ export type { ISendEmailToMailingListOpts } from "./send-email-to-mailing-list.js";
6
12
  export { listEmailTemplates } from "./list-email-templates.js";
7
13
  export type { EmailTemplate, IListEmailTemplatesOpts, } from "./list-email-templates.js";
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
- export { sendEmailRequestBodySchema, sendEmailRequestBodySchema as default, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
2
- export { emailTemplateIdSchema } from "./email-template-id-schema.js";
3
- export { getSchemaVaultsMailApiKey, sendEmail } from "./send-email.js";
4
- export { getSchemaVaultsMailingListId, sendEmailToMailingList, } from "./send-email-to-mailing-list.js";
1
+ export { sendEmailRequestBodySchema, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
2
+ export { emailTemplateIdSchema } from "./validators/email-template-id-schema.js";
3
+ export { transportIdSchema } from "./validators/transport-id-schema.js";
4
+ export { sendEmail, sendEmail as default, } from "./send-email.js";
5
+ export { getSchemaVaultsMailApiKey, } from "./env/get-api-key.js";
6
+ export { getSchemaVaultsMailingListId, } from "./env/get-mailing-list-id.js";
7
+ export { getMailServerUrl } from "./env/get-mail-server-url.js";
8
+ export { sendEmailToMailingList, } from "./send-email-to-mailing-list.js";
5
9
  export { listEmailTemplates } from "./list-email-templates.js";
6
10
  //# sourceMappingURL=index.js.map
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,0BAA0B,IAAI,OAAO,EACrC,gCAAgC,GACjC,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,yBAAyB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,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"}
@@ -1,4 +1,4 @@
1
- import getSchemaVaultsMailApiKey from "./get-api-key.js";
1
+ import getSchemaVaultsMailApiKey from "./env/get-api-key.js";
2
2
  import parseMailServerUrlWithEnvFallback from "./parse-mail-server-url-with-env-fallback.js";
3
3
  export async function listEmailTemplates(opts = {}) {
4
4
  const mail_server_url = parseMailServerUrlWithEnvFallback(opts.mailServerUrl);
@@ -1 +1 @@
1
- {"version":3,"file":"list-email-templates.js","sourceRoot":"","sources":["../src/list-email-templates.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,eAAe,CAAC;AACtD,OAAO,iCAAiC,MAAM,2CAA2C,CAAC;AAY1F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAgC,EAAE;IAElC,MAAM,eAAe,GAAW,iCAAiC,CAC/D,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,IAAI,WAAmB,CAAC;IACxB,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7D,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAQ,IAAI,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,WAAW,EAAE;SACvC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5C,IAAI,YAAY,GAAG,sDAAsD,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,CAAC,CAAC,OAAO;gBACT,SAAS,IAAI,OAAO;gBACpB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EACnC,CAAC;gBACD,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,YAAY,CAAC,IAAuB,CAAC;AAC9C,CAAC;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"list-email-templates.js","sourceRoot":"","sources":["../src/list-email-templates.ts"],"names":[],"mappings":"AAAA,OAAO,yBAAyB,MAAM,mBAAmB,CAAC;AAC1D,OAAO,iCAAiC,MAAM,2CAA2C,CAAC;AAY1F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAgC,EAAE;IAElC,MAAM,eAAe,GAAW,iCAAiC,CAC/D,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,IAAI,WAAmB,CAAC;IACxB,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7D,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAQ,IAAI,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,WAAW,EAAE;SACvC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5C,IAAI,YAAY,GAAG,sDAAsD,CAAC;QAC1E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,CAAC,CAAC,OAAO;gBACT,SAAS,IAAI,OAAO;gBACpB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EACnC,CAAC;gBACD,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,YAAY,CAAC,IAAuB,CAAC;AAC9C,CAAC;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,5 +1,5 @@
1
- import isValidUrl from "./is-valid-url.js";
2
- import resolveMailServerUrlFromEnvVars from "./resolve-mail-server-url-from-env-vars.js";
1
+ import isValidUrl from "./validators/is-valid-url.js";
2
+ import getMailServerUrlFromEnvVars from "./env/get-mail-server-url.js";
3
3
  export default function parseMailServerUrlWithEnvFallback(maybe_mail_server_url_input) {
4
4
  if (typeof maybe_mail_server_url_input !== "string" &&
5
5
  typeof maybe_mail_server_url_input !== "undefined") {
@@ -13,7 +13,7 @@ export default function parseMailServerUrlWithEnvFallback(maybe_mail_server_url_
13
13
  }
14
14
  else if (typeof maybe_mail_server_url_input === "undefined") {
15
15
  try {
16
- mail_server_url = resolveMailServerUrlFromEnvVars();
16
+ mail_server_url = getMailServerUrlFromEnvVars();
17
17
  }
18
18
  catch {
19
19
  /** no-op */
@@ -1 +1 @@
1
- {"version":3,"file":"parse-mail-server-url-with-env-fallback.js","sourceRoot":"","sources":["../src/parse-mail-server-url-with-env-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,+BAA+B,MAAM,yCAAyC,CAAC;AAEtF,MAAM,CAAC,OAAO,UAAU,iCAAiC,CACvD,2BAA+C;IAE/C,IACE,OAAO,2BAA2B,KAAK,QAAQ;QAC/C,OAAO,2BAA2B,KAAK,WAAW,EAClD,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,8DAA8D,EAC9D;YACE,KAAK,EAAE,kBAAkB,OAAO,2BAA2B,GAAG;SAC/D,CACF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,GAAuB,SAAS,CAAC;IACpD,IAAI,OAAO,2BAA2B,KAAK,QAAQ,EAAE,CAAC;QACpD,eAAe,GAAG,2BAA2B,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,2BAA2B,KAAK,WAAW,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,eAAe,GAAG,+BAA+B,EAAE,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,8HAA8H,CAC/H,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"parse-mail-server-url-with-env-fallback.js","sourceRoot":"","sources":["../src/parse-mail-server-url-with-env-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,2BAA2B,MAAM,2BAA2B,CAAC;AAEpE,MAAM,CAAC,OAAO,UAAU,iCAAiC,CACvD,2BAA+C;IAE/C,IACE,OAAO,2BAA2B,KAAK,QAAQ;QAC/C,OAAO,2BAA2B,KAAK,WAAW,EAClD,CAAC;QACD,MAAM,IAAI,SAAS,CACjB,8DAA8D,EAC9D;YACE,KAAK,EAAE,kBAAkB,OAAO,2BAA2B,GAAG;SAC/D,CACF,CAAC;IACJ,CAAC;IAED,IAAI,eAAe,GAAuB,SAAS,CAAC;IACpD,IAAI,OAAO,2BAA2B,KAAK,QAAQ,EAAE,CAAC;QACpD,eAAe,GAAG,2BAA2B,CAAC;IAChD,CAAC;SAAM,IAAI,OAAO,2BAA2B,KAAK,WAAW,EAAE,CAAC;QAC9D,IAAI,CAAC;YACH,eAAe,GAAG,2BAA2B,EAAE,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CACjB,8HAA8H,CAC/H,CAAC;IACJ,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,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
- import { emailTemplateIdSchema } from "./email-template-id-schema.js";
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":"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"}
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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"}
@@ -1,6 +1,6 @@
1
1
  import type { SendEmailRequestBody } from "./send-email-request-body-schema.js";
2
2
  import { type ISendEmailOpts } from "./send-email.js";
3
- export declare function getSchemaVaultsMailingListId(): string;
3
+ export { getSchemaVaultsMailingListId } from './env/get-mailing-list-id.js';
4
4
  export interface ISendEmailToMailingListOpts extends Omit<ISendEmailOpts, "body"> {
5
5
  body: Omit<SendEmailRequestBody, "to" | "cc" | "bcc">;
6
6
  mailingListId?: string;
@@ -1,15 +1,7 @@
1
1
  import sendEmail from "./send-email.js";
2
- import { z } from "zod";
3
- export function getSchemaVaultsMailingListId() {
4
- if (!process.env.SCHEMAVAULTS_MAILING_LIST_ID ||
5
- typeof process.env.SCHEMAVAULTS_MAILING_LIST_ID !== "string") {
6
- throw new Error("Failed to load mailing list ID from environment variable 'SCHEMAVAULTS_MAILING_LIST_ID'");
7
- }
8
- return process.env.SCHEMAVAULTS_MAILING_LIST_ID;
9
- }
10
- function isUuid(val) {
11
- return typeof val === "string" && z.string().safeParse(val).success;
12
- }
2
+ import isValidUuid from "./validators/is-valid-uuid.js";
3
+ import { getSchemaVaultsMailingListId } from './env/get-mailing-list-id.js';
4
+ export { getSchemaVaultsMailingListId } from './env/get-mailing-list-id.js';
13
5
  export async function sendEmailToMailingList(opts) {
14
6
  let to;
15
7
  if (typeof opts.mailingListId === "string") {
@@ -18,7 +10,7 @@ export async function sendEmailToMailingList(opts) {
18
10
  else {
19
11
  to = getSchemaVaultsMailingListId();
20
12
  }
21
- if (!isUuid(to)) {
13
+ if (!isValidUuid(to)) {
22
14
  throw new TypeError("Failed to parse 'to' field as a mailing list ID (UUID)!");
23
15
  }
24
16
  return await sendEmail({
@@ -1 +1 @@
1
- {"version":3,"file":"send-email-to-mailing-list.js","sourceRoot":"","sources":["../src/send-email-to-mailing-list.ts"],"names":[],"mappings":"AACA,OAAO,SAAkC,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,4BAA4B;IAC1C,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,QAAQ,EAC5D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,yFAAyF,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;AAClD,CAAC;AAUD,SAAS,MAAM,CAAC,GAAY;IAC1B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAiC;IAEjC,IAAI,EAAU,CAAC;IACf,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC3C,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;QAChB,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,SAAS,CAAC;QACrB,GAAG,IAAI;QACP,IAAI,EAAE;YACJ,GAAG,IAAI,CAAC,IAAI;YACZ,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"send-email-to-mailing-list.js","sourceRoot":"","sources":["../src/send-email-to-mailing-list.ts"],"names":[],"mappings":"AACA,OAAO,SAAkC,MAAM,cAAc,CAAC;AAC9D,OAAO,WAAW,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAUzE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAiC;IAEjC,IAAI,EAAU,CAAC;IACf,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC3C,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,EAAE,GAAG,4BAA4B,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CACjB,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,SAAS,CAAC;QACrB,GAAG,IAAI;QACP,IAAI,EAAE;YACJ,GAAG,IAAI,CAAC,IAAI;YACZ,EAAE;SACH;KACF,CAAC,CAAC;AACL,CAAC;AAED,eAAe,sBAAsB,CAAC"}
@@ -1,10 +1,15 @@
1
1
  import { type SendEmailRequestBody } from "./send-email-request-body-schema.js";
2
- import getSchemaVaultsMailApiKey from "./get-api-key.js";
2
+ import getSchemaVaultsMailApiKey from "./env/get-api-key.js";
3
3
  export interface ISendEmailOpts {
4
4
  body: SendEmailRequestBody;
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>;
@@ -1,11 +1,15 @@
1
1
  // send-email.ts
2
2
  import { createSendEmailRequestBodySchema, } from "./send-email-request-body-schema.js";
3
- import getSchemaVaultsMailApiKey from "./get-api-key.js";
3
+ import getSchemaVaultsMailApiKey from "./env/get-api-key.js";
4
4
  import parseMailServerUrlWithEnvFallback from "./parse-mail-server-url-with-env-fallback.js";
5
5
  const body_schema = createSendEmailRequestBodySchema(true);
6
6
  export { getSchemaVaultsMailApiKey };
7
7
  export async function sendEmail({ body, ...opts }) {
8
- const effectiveBody = typeof opts.dryRun === "boolean" ? { ...body, dryRun: opts.dryRun } : body;
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);
@@ -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,eAAe,CAAC;AACtD,OAAO,iCAAiC,MAAM,2CAA2C,CAAC;AAE1F,MAAM,WAAW,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;AAS3D,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,EAC9B,IAAI,EACJ,GAAG,IAAI,EACQ;IACf,MAAM,aAAa,GACjB,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,WAAmB,CAAC;IACxB,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QAC7D,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,yBAAyB,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,eAAe,GAAW,iCAAiC,CAC/D,IAAI,CAAC,aAAa,CACnB,CAAC;IAEF,MAAM,QAAQ,GAAQ,IAAI,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAmC,CAAC;QAChE,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,WAAW,EAAE;SACvC;KACF,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5C,IAAI,YAAY,GAAG,4CAA4C,CAAC;QAChE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtC,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,CAAC,CAAC,OAAO;gBACT,SAAS,IAAI,OAAO;gBACpB,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EACnC,CAAC;gBACD,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;YACjC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,kDAAkD;QACpD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,CAAC,SAAS,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,OAAO;AACT,CAAC;AAED,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"send-email.js","sourceRoot":"","sources":["../src/send-email.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email-template-id-schema.js","sourceRoot":"","sources":["../../src/validators/email-template-id-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;KAC9C,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,oBAAoB,EACpB,wHAAwH,CACzH,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-url.js","sourceRoot":"","sources":["../../src/validators/is-valid-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,GAAY;IAC7C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC"}
@@ -0,0 +1 @@
1
+ export default function isValidUuid(val: unknown): val is string;
@@ -0,0 +1,5 @@
1
+ import { z } from "zod";
2
+ export default function isValidUuid(val) {
3
+ return typeof val === "string" && z.string().safeParse(val).success;
4
+ }
5
+ //# sourceMappingURL=is-valid-uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-uuid.js","sourceRoot":"","sources":["../../src/validators/is-valid-uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,GAAY;IAC9C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AACtE,CAAC"}
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@schemavaults/send-email",
3
3
  "description": "Schema defining the shape of the request body to send an email via @schemavaults/mail-server",
4
- "version": "0.1.0",
4
+ "version": "0.3.0",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
7
7
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"email-template-id-schema.js","sourceRoot":"","sources":["../src/email-template-id-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC;KACnC,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;KAC9C,GAAG,CAAC,EAAE,CAAC;KACP,KAAK,CACJ,oBAAoB,EACpB,wHAAwH,CACzH,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-api-key.js","sourceRoot":"","sources":["../src/get-api-key.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB;IACvC,IACE,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACtC,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,QAAQ,EACzD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;AAC/C,CAAC;AAED,eAAe,yBAAyB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"is-valid-url.js","sourceRoot":"","sources":["../src/is-valid-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,GAAY;IAC7C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;AAC1E,CAAC"}
@@ -1 +0,0 @@
1
- export default function resolveMailServerUrlFromEnvVars(): string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolve-mail-server-url-from-env-vars.js","sourceRoot":"","sources":["../src/resolve-mail-server-url-from-env-vars.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,+BAA+B;IACrD,MAAM,4BAA4B,GAChC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;IAC3C,IACE,OAAO,4BAA4B,KAAK,QAAQ;QAChD,4BAA4B,CAAC,MAAM,GAAG,CAAC,EACvC,CAAC;QACD,OAAO,4BAA4B,CAAC;IACtC,CAAC;IACD,MAAM,IAAI,SAAS,CACjB,0FAA0F,CAC3F,CAAC;AACJ,CAAC"}
File without changes
File without changes