@schemavaults/send-email-api-options 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bun.lock CHANGED
@@ -5,6 +5,7 @@
5
5
  "": {
6
6
  "name": "@schemavaults/send-email-api-options",
7
7
  "dependencies": {
8
+ "@schemavaults/app-definitions": "0.6.23",
8
9
  "zod": "3.25.8",
9
10
  },
10
11
  "devDependencies": {
@@ -52,6 +53,8 @@
52
53
 
53
54
  "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
54
55
 
56
+ "@schemavaults/app-definitions": ["@schemavaults/app-definitions@0.6.23", "", { "dependencies": { "zod": "3.25.8" } }, "sha512-gdI1PVujXrcHObcjiqO0/aeiKCKSzsGzWu8fWwOwCp9BQeDu2iovAJRp3Gme9iWBnWz1Yv+Mg4A5Y/G3HXp1jA=="],
57
+
55
58
  "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
56
59
 
57
60
  "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { sendEmailRequestBodySchema, sendEmailRequestBodySchema as default, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema";
2
2
  export type { SendEmailRequestBody } from "./send-email-request-body-schema";
3
3
  export { emailTemplateIdSchema } from "./email-template-id-schema";
4
+ export { getSchemaVaultsMailApiKey, sendEmail } from "./send-email";
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { sendEmailRequestBodySchema, sendEmailRequestBodySchema as default, createSendEmailRequestBodySchema, } from "./send-email-request-body-schema";
2
2
  export { emailTemplateIdSchema } from "./email-template-id-schema";
3
+ export { getSchemaVaultsMailApiKey, sendEmail } from "./send-email";
3
4
  //# 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"}
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"}
@@ -0,0 +1,11 @@
1
+ import { SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
2
+ import { type SendEmailRequestBody } from "./send-email-request-body-schema";
3
+ export interface ISendEmailOpts {
4
+ body: SendEmailRequestBody;
5
+ bearerToken?: string;
6
+ mailServerUrl?: string;
7
+ environment?: SchemaVaultsAppEnvironment;
8
+ }
9
+ export declare function getSchemaVaultsMailApiKey(): string;
10
+ export declare function sendEmail({ body, ...opts }: ISendEmailOpts): Promise<void>;
11
+ export default sendEmail;
@@ -0,0 +1,73 @@
1
+ // send-email.ts
2
+ import { getAppEnvironment, getHardcodedApiServerDomain, SCHEMAVAULTS_MAIL_APP_DEFINITION, } from "@schemavaults/app-definitions";
3
+ import { createSendEmailRequestBodySchema, } from "./send-email-request-body-schema";
4
+ const body_schema = createSendEmailRequestBodySchema(true);
5
+ export function getSchemaVaultsMailApiKey() {
6
+ if (!process.env.SCHEMAVAULTS_MAIL_API_KEY ||
7
+ typeof process.env.SCHEMAVAULTS_MAIL_API_KEY !== "string") {
8
+ throw new Error("Failed to load API key from environment variable 'SCHEMAVAULTS_MAIL_API_KEY'");
9
+ }
10
+ return process.env.SCHEMAVAULTS_MAIL_API_KEY;
11
+ }
12
+ export async function sendEmail({ body, ...opts }) {
13
+ let environment;
14
+ if (opts.environment) {
15
+ environment = opts.environment;
16
+ }
17
+ else {
18
+ try {
19
+ environment = getAppEnvironment();
20
+ }
21
+ catch {
22
+ environment = "production";
23
+ }
24
+ }
25
+ const parsed = await body_schema.safeParseAsync(body);
26
+ if (!parsed.success) {
27
+ console.error("Bad request body: ", parsed.error);
28
+ throw new TypeError("Bad request body to send email with!");
29
+ }
30
+ let bearerToken;
31
+ if (opts.bearerToken && typeof opts.bearerToken === "string") {
32
+ bearerToken = opts.bearerToken;
33
+ }
34
+ else {
35
+ bearerToken = getSchemaVaultsMailApiKey();
36
+ }
37
+ const mail_server_url = getHardcodedApiServerDomain(SCHEMAVAULTS_MAIL_APP_DEFINITION.app_id, environment).domain;
38
+ const endpoint = `${mail_server_url}/api/send`;
39
+ const response = await fetch(endpoint, {
40
+ method: "POST",
41
+ body: JSON.stringify(parsed.data),
42
+ headers: {
43
+ "Content-Type": "application/json",
44
+ Authorization: `Bearer ${bearerToken}`,
45
+ },
46
+ });
47
+ if (!response.ok || response.status !== 200) {
48
+ let errorMessage = "Error response while trying to send email!";
49
+ try {
50
+ const errBody = await response.json();
51
+ if (typeof errBody === "object" &&
52
+ !!errBody &&
53
+ "message" in errBody &&
54
+ typeof errBody.message === "string") {
55
+ errorMessage = errBody.message;
56
+ }
57
+ }
58
+ catch {
59
+ // ignore JSON parse failure, fall back to default
60
+ }
61
+ throw new Error(errorMessage);
62
+ }
63
+ const responseBody = await response.json();
64
+ if (typeof responseBody !== "object" || !responseBody) {
65
+ throw new Error("Failed to parse JSON object from response object!");
66
+ }
67
+ if (!("success" in responseBody) || !responseBody.success) {
68
+ throw new Error("Failure indicated in response body!");
69
+ }
70
+ return;
71
+ }
72
+ export default sendEmail;
73
+ //# sourceMappingURL=send-email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-email.js","sourceRoot":"","sources":["../src/send-email.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@schemavaults/send-email-api-options",
3
3
  "description": "Schema defining the shape of the request body to send an email via @schemavaults/mail-server",
4
- "version": "0.0.5",
4
+ "version": "0.0.7",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
7
7
  "repository": {
@@ -13,7 +13,8 @@
13
13
  "module": "dist/index.js",
14
14
  "types": "dist/index.d.ts",
15
15
  "dependencies": {
16
- "zod": "3.25.8"
16
+ "zod": "3.25.8",
17
+ "@schemavaults/app-definitions": "0.6.23"
17
18
  },
18
19
  "scripts": {
19
20
  "build": "tsc --project tsconfig.json && tsc-alias --project tsconfig.json",
package/.npmrc.github DELETED
@@ -1,3 +0,0 @@
1
- @schemavaults:registry=https://npm.pkg.github.com
2
- //https://npm.pkg.github.com/:username=${SCHEMAVAULTS_GITHUB_PACKAGE_REGISTRY_USER}
3
- //https://npm.pkg.github.com/:_authToken=${SCHEMAVAULTS_GITHUB_PACKAGE_REGISTRY_TOKEN}