@dbx-tools/shared-email 0.6.72 → 0.6.73
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/lib/src/email.d.ts +2 -4
- package/lib/src/email.js +6 -8
- package/package.json +2 -2
- package/src/email.ts +21 -27
package/lib/src/email.d.ts
CHANGED
|
@@ -17,9 +17,8 @@ export declare const emailAttachmentSchema: z.ZodObject<{
|
|
|
17
17
|
filename: z.ZodString;
|
|
18
18
|
content: z.ZodOptional<z.ZodString>;
|
|
19
19
|
encoding: z.ZodOptional<z.ZodString>;
|
|
20
|
-
path: z.ZodOptional<z.ZodString>;
|
|
21
20
|
contentType: z.ZodOptional<z.ZodString>;
|
|
22
|
-
}, z.core.$
|
|
21
|
+
}, z.core.$strict>;
|
|
23
22
|
/** A single file attached to an {@link EmailMessage}. */
|
|
24
23
|
export type EmailAttachment = z.infer<typeof emailAttachmentSchema>;
|
|
25
24
|
/** Schema for the email a model asks to send (the tool input). */
|
|
@@ -33,9 +32,8 @@ export declare const emailMessageSchema: z.ZodObject<{
|
|
|
33
32
|
filename: z.ZodString;
|
|
34
33
|
content: z.ZodOptional<z.ZodString>;
|
|
35
34
|
encoding: z.ZodOptional<z.ZodString>;
|
|
36
|
-
path: z.ZodOptional<z.ZodString>;
|
|
37
35
|
contentType: z.ZodOptional<z.ZodString>;
|
|
38
|
-
}, z.core.$
|
|
36
|
+
}, z.core.$strict>>>;
|
|
39
37
|
}, z.core.$strip>;
|
|
40
38
|
/** A validated outbound email message. */
|
|
41
39
|
export type EmailMessage = z.infer<typeof emailMessageSchema>;
|
package/lib/src/email.js
CHANGED
|
@@ -13,25 +13,23 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { z } from "zod";
|
|
15
15
|
/** Schema for a single file attached to an outbound email. */
|
|
16
|
-
export const emailAttachmentSchema = z
|
|
16
|
+
export const emailAttachmentSchema = z
|
|
17
|
+
.object({
|
|
17
18
|
filename: z.string().describe('File name shown to the recipient (e.g. "report.pdf").'),
|
|
18
19
|
content: z
|
|
19
20
|
.string()
|
|
20
21
|
.optional()
|
|
21
|
-
.describe('Inline file content as a string. For binary data set `encoding` (e.g. "base64").
|
|
22
|
+
.describe('Inline file content as a string. For binary data set `encoding` (e.g. "base64").'),
|
|
22
23
|
encoding: z
|
|
23
24
|
.string()
|
|
24
25
|
.optional()
|
|
25
26
|
.describe('Encoding of `content` (e.g. "base64", "utf-8", "hex"). Defaults to utf-8 when omitted.'),
|
|
26
|
-
path: z
|
|
27
|
-
.string()
|
|
28
|
-
.optional()
|
|
29
|
-
.describe("Read the content from here instead of inlining it: a local file path, a data: URI, or an https URL. Provide this or `content`, not both."),
|
|
30
27
|
contentType: z
|
|
31
28
|
.string()
|
|
32
29
|
.optional()
|
|
33
30
|
.describe('MIME type override (e.g. "application/pdf"). Inferred from the filename when omitted.'),
|
|
34
|
-
})
|
|
31
|
+
})
|
|
32
|
+
.strict();
|
|
35
33
|
/** Schema for the email a model asks to send (the tool input). */
|
|
36
34
|
export const emailMessageSchema = z.object({
|
|
37
35
|
to: z
|
|
@@ -75,4 +73,4 @@ export const emailSendersSchema = z.object({
|
|
|
75
73
|
.boolean()
|
|
76
74
|
.describe("True when `senders` is an enforced allow-list rather than a hint."),
|
|
77
75
|
});
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1haWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBRUgsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qiw4REFBOEQ7QUFDOUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQztLQUNuQyxNQUFNLENBQUM7SUFDTixRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyx1REFBdUQsQ0FBQztJQUN0RixPQUFPLEVBQUUsQ0FBQztTQUNQLE1BQU0sRUFBRTtTQUNSLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FBQyxrRkFBa0YsQ0FBQztJQUMvRixRQUFRLEVBQUUsQ0FBQztTQUNSLE1BQU0sRUFBRTtTQUNSLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FDUCx3RkFBd0YsQ0FDekY7SUFDSCxXQUFXLEVBQUUsQ0FBQztTQUNYLE1BQU0sRUFBRTtTQUNSLFFBQVEsRUFBRTtTQUNWLFFBQVEsQ0FDUCx1RkFBdUYsQ0FDeEY7Q0FDSixDQUFDO0tBQ0QsTUFBTSxFQUFFLENBQUM7QUFLWixrRUFBa0U7QUFDbEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxFQUFFLEVBQUUsQ0FBQztTQUNGLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDakIsUUFBUSxDQUNQLDhHQUE4RyxDQUMvRztJQUNILE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDO0lBQ25ELElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLHFFQUFxRSxDQUFDO0lBQ2hHLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxnREFBZ0QsQ0FBQztJQUM3RixHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsaURBQWlELENBQUM7SUFDL0YsV0FBVyxFQUFFLENBQUM7U0FDWCxLQUFLLENBQUMscUJBQXFCLENBQUM7U0FDNUIsUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUFDLHdEQUF3RCxDQUFDO0NBQ3RFLENBQUMsQ0FBQztBQUtILHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLHNEQUFzRCxDQUFDO0lBQ2xGLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLDhEQUE4RCxDQUFDO0lBQzlGLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDLGlFQUFpRSxDQUFDO0lBQzVGLFNBQVMsRUFBRSxDQUFDO1NBQ1QsTUFBTSxFQUFFO1NBQ1IsUUFBUSxFQUFFO1NBQ1YsUUFBUSxDQUFDLGdFQUFnRSxDQUFDO0NBQzlFLENBQUMsQ0FBQztBQUtIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN6QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsd0RBQXdELENBQUM7SUFDL0YsYUFBYSxFQUFFLENBQUM7U0FDYixNQUFNLEVBQUU7U0FDUixRQUFRLEVBQUU7U0FDVixRQUFRLENBQUMscUVBQXFFLENBQUM7SUFDbEYsVUFBVSxFQUFFLENBQUM7U0FDVixPQUFPLEVBQUU7U0FDVCxRQUFRLENBQUMsbUVBQW1FLENBQUM7Q0FDakYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBXaXJlLWZvcm1hdCBjb250cmFjdCBmb3IgdGhlIGVtYWlsIGFkZC1vbjogdGhlIGVtYWlsIGEgbW9kZWwgZHJhZnRzIGFuZCB0aGVcbiAqIHJlc3VsdCBvZiBkaXNwYXRjaGluZyBpdC4gUHVyZSAoem9kICsgaW5mZXJyZWQgdHlwZXMsIG5vIE5vZGUtb25seSBpbXBvcnRzKVxuICogc28gdGhlIHNlcnZlci1zaWRlIHNlbmRlciwgdGhlIE1hc3RyYSB0b29sLCBhbmQgdGhlIFJlYWN0IGFwcHJvdmFsIFVJIGFsbFxuICogdmFsaWRhdGUgLyB0eXBlIGFnYWluc3Qgb25lIGRlZmluaXRpb24uXG4gKlxuICogQXJyYXkgZmllbGRzIGludGVudGlvbmFsbHkgYXZvaWQgYC5taW4oKWAgLyBgLm5vbmVtcHR5KClgOiB0aG9zZSBlbWl0XG4gKiBgbWluSXRlbXNgIGluIHRoZSBKU09OIHNjaGVtYSwgd2hpY2ggc29tZSBNb2RlbCBTZXJ2aW5nIGVuZHBvaW50cyByZWplY3RcbiAqIChcImFycmF5IHR5cGVzIGRvIG5vdCBzdXBwb3J0IG1pbkl0ZW1zXCIpIHdoZW4gdGhlIHNjaGVtYSBpcyBmb3J3YXJkZWQgYXMgYVxuICogdG9vbCBkZWZpbml0aW9uLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuXG4vKiogU2NoZW1hIGZvciBhIHNpbmdsZSBmaWxlIGF0dGFjaGVkIHRvIGFuIG91dGJvdW5kIGVtYWlsLiAqL1xuZXhwb3J0IGNvbnN0IGVtYWlsQXR0YWNobWVudFNjaGVtYSA9IHpcbiAgLm9iamVjdCh7XG4gICAgZmlsZW5hbWU6IHouc3RyaW5nKCkuZGVzY3JpYmUoJ0ZpbGUgbmFtZSBzaG93biB0byB0aGUgcmVjaXBpZW50IChlLmcuIFwicmVwb3J0LnBkZlwiKS4nKSxcbiAgICBjb250ZW50OiB6XG4gICAgICAuc3RyaW5nKClcbiAgICAgIC5vcHRpb25hbCgpXG4gICAgICAuZGVzY3JpYmUoJ0lubGluZSBmaWxlIGNvbnRlbnQgYXMgYSBzdHJpbmcuIEZvciBiaW5hcnkgZGF0YSBzZXQgYGVuY29kaW5nYCAoZS5nLiBcImJhc2U2NFwiKS4nKSxcbiAgICBlbmNvZGluZzogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICAnRW5jb2Rpbmcgb2YgYGNvbnRlbnRgIChlLmcuIFwiYmFzZTY0XCIsIFwidXRmLThcIiwgXCJoZXhcIikuIERlZmF1bHRzIHRvIHV0Zi04IHdoZW4gb21pdHRlZC4nLFxuICAgICAgKSxcbiAgICBjb250ZW50VHlwZTogelxuICAgICAgLnN0cmluZygpXG4gICAgICAub3B0aW9uYWwoKVxuICAgICAgLmRlc2NyaWJlKFxuICAgICAgICAnTUlNRSB0eXBlIG92ZXJyaWRlIChlLmcuIFwiYXBwbGljYXRpb24vcGRmXCIpLiBJbmZlcnJlZCBmcm9tIHRoZSBmaWxlbmFtZSB3aGVuIG9taXR0ZWQuJyxcbiAgICAgICksXG4gIH0pXG4gIC5zdHJpY3QoKTtcblxuLyoqIEEgc2luZ2xlIGZpbGUgYXR0YWNoZWQgdG8gYW4ge0BsaW5rIEVtYWlsTWVzc2FnZX0uICovXG5leHBvcnQgdHlwZSBFbWFpbEF0dGFjaG1lbnQgPSB6LmluZmVyPHR5cGVvZiBlbWFpbEF0dGFjaG1lbnRTY2hlbWE+O1xuXG4vKiogU2NoZW1hIGZvciB0aGUgZW1haWwgYSBtb2RlbCBhc2tzIHRvIHNlbmQgKHRoZSB0b29sIGlucHV0KS4gKi9cbmV4cG9ydCBjb25zdCBlbWFpbE1lc3NhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHRvOiB6XG4gICAgLmFycmF5KHouc3RyaW5nKCkpXG4gICAgLmRlc2NyaWJlKFxuICAgICAgJ09uZSBvciBtb3JlIHJlY2lwaWVudCBlbWFpbCBhZGRyZXNzZXMgKGUuZy4gW1wiYWxpY2VAZXhhbXBsZS5jb21cIiwgXCJib2JAZXhhbXBsZS5jb21cIl0pLiBQcm92aWRlIGF0IGxlYXN0IG9uZS4nLFxuICAgICksXG4gIHN1YmplY3Q6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJFbWFpbCBzdWJqZWN0IGxpbmUuXCIpLFxuICBib2R5OiB6LnN0cmluZygpLmRlc2NyaWJlKFwiRW1haWwgY29udGVudCByZW5kZXJlZCB0aHJvdWdoIHRoZSBjb25maWd1cmVkIFJlYWN0IEVtYWlsIHRlbXBsYXRlLlwiKSxcbiAgY2M6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKS5kZXNjcmliZShcIk9wdGlvbmFsIENDIHJlY2lwaWVudCBhZGRyZXNzZXMgKG9uZSBvciBtb3JlKS5cIiksXG4gIGJjYzogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLmRlc2NyaWJlKFwiT3B0aW9uYWwgQkNDIHJlY2lwaWVudCBhZGRyZXNzZXMgKG9uZSBvciBtb3JlKS5cIiksXG4gIGF0dGFjaG1lbnRzOiB6XG4gICAgLmFycmF5KGVtYWlsQXR0YWNobWVudFNjaGVtYSlcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcIk9wdGlvbmFsIGZpbGUgYXR0YWNobWVudHMgdG8gaW5jbHVkZSB3aXRoIHRoZSBtZXNzYWdlLlwiKSxcbn0pO1xuXG4vKiogQSB2YWxpZGF0ZWQgb3V0Ym91bmQgZW1haWwgbWVzc2FnZS4gKi9cbmV4cG9ydCB0eXBlIEVtYWlsTWVzc2FnZSA9IHouaW5mZXI8dHlwZW9mIGVtYWlsTWVzc2FnZVNjaGVtYT47XG5cbi8qKiBTY2hlbWEgZm9yIHRoZSBkaXNwYXRjaCByZXN1bHQgcmV0dXJuZWQgdG8gdGhlIG1vZGVsIGFmdGVyIGEgc2VuZC4gKi9cbmV4cG9ydCBjb25zdCBlbWFpbFJlc3VsdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc2VudDogei5ib29sZWFuKCkuZGVzY3JpYmUoXCJUcnVlIG9uY2UgdGhlIG1lc3NhZ2Ugd2FzIGhhbmRlZCB0byB0aGUgU01UUCBzZXJ2ZXIuXCIpLFxuICByZWNpcGllbnQ6IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJFY2hvIG9mIHRoZSBgdG9gIHJlY2lwaWVudHMgKGNvbW1hLWpvaW5lZCkgZm9yIGNvbmZpcm1hdGlvbi5cIiksXG4gIGZyb206IHouc3RyaW5nKCkuZGVzY3JpYmUoXCJUaGUgcmVzb2x2ZWQgc2VuZGVyIGFkZHJlc3MgdGhlIG1lc3NhZ2Ugd2FzIGFjdHVhbGx5IHNlbnQgZnJvbS5cIiksXG4gIG1lc3NhZ2VJZDogelxuICAgIC5zdHJpbmcoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlc2NyaWJlKFwiU01UUCBtZXNzYWdlIGlkIGFzc2lnbmVkIGJ5IHRoZSBzZXJ2ZXIsIHdoZW4gb25lIHdhcyByZXR1cm5lZC5cIiksXG59KTtcblxuLyoqIFRoZSBvdXRjb21lIG9mIGRpc3BhdGNoaW5nIGFuIHtAbGluayBFbWFpbE1lc3NhZ2V9LiAqL1xuZXhwb3J0IHR5cGUgRW1haWxSZXN1bHQgPSB6LmluZmVyPHR5cGVvZiBlbWFpbFJlc3VsdFNjaGVtYT47XG5cbi8qKlxuICogU2NoZW1hIGZvciB0aGUgc2VuZGVyIG9wdGlvbnMgYSBVSSBjYW4gb2ZmZXIgZm9yIHRoZSBgRnJvbWAgYWRkcmVzcyAtIHRoZVxuICogcGF5bG9hZCBvZiB0aGUgcGx1Z2luJ3MgYEdFVCAvc2VuZGVyc2Agcm91dGUuIFdoZW4gdGhlIHBsdWdpbiBjb25maWd1cmVzIGFcbiAqIHNlbmRlciBhbGxvdy1saXN0LCBgc2VuZGVyc2AgaG9sZHMgdGhlIGNvbmNyZXRlIGFkZHJlc3NlcyB0aGUgY3VycmVudCB1c2VyXG4gKiBtYXkgc2VuZCBhcyAoZG9tYWluIHdpbGRjYXJkcyBleHBhbmRlZCBhZ2FpbnN0IHRoZSB1c2VyJ3MgbG9jYWwgcGFydCkgYW5kXG4gKiBgcmVzdHJpY3RlZGAgaXMgdHJ1ZTsgYSBwaWNrZXIgc2hvdWxkIHJlcXVpcmUgYSBjaG9pY2UgZnJvbSB0aGUgbGlzdC4gV2hlblxuICogdW5yZXN0cmljdGVkLCBgc2VuZGVyc2AgaG9sZHMgYXQgbW9zdCB0aGUgc2luZ2xlIGRlZmF1bHQgYWRkcmVzcyAoaWYgb25lIGNhblxuICogYmUgcmVzb2x2ZWQpIGFuZCBgcmVzdHJpY3RlZGAgaXMgZmFsc2UsIHNvIGEgVUkgbWF5IGFsbG93IGZyZWUgZW50cnkuXG4gKi9cbmV4cG9ydCBjb25zdCBlbWFpbFNlbmRlcnNTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHNlbmRlcnM6IHouYXJyYXkoei5zdHJpbmcoKSkuZGVzY3JpYmUoXCJQZXJtaXR0ZWQgc2VuZGVyIGFkZHJlc3NlcyB0byBvZmZlciBhcyBgRnJvbWAgY2hvaWNlcy5cIiksXG4gIGRlZmF1bHRTZW5kZXI6IHpcbiAgICAuc3RyaW5nKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZXNjcmliZShcIlRoZSBhZGRyZXNzIGEgc2VuZCB1c2VzIGJ5IGRlZmF1bHQgKGZpcnN0IGBzZW5kZXJzYCBlbnRyeSwgaWYgYW55KS5cIiksXG4gIHJlc3RyaWN0ZWQ6IHpcbiAgICAuYm9vbGVhbigpXG4gICAgLmRlc2NyaWJlKFwiVHJ1ZSB3aGVuIGBzZW5kZXJzYCBpcyBhbiBlbmZvcmNlZCBhbGxvdy1saXN0IHJhdGhlciB0aGFuIGEgaGludC5cIiksXG59KTtcblxuLyoqIFNlbmRlciBvcHRpb25zIGZvciBhIGBGcm9tYCBwaWNrZXIgKHNlZSB7QGxpbmsgZW1haWxTZW5kZXJzU2NoZW1hfSkuICovXG5leHBvcnQgdHlwZSBFbWFpbFNlbmRlcnMgPSB6LmluZmVyPHR5cGVvZiBlbWFpbFNlbmRlcnNTY2hlbWE+O1xuIl19
|
package/package.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"typescript": "^5.9.3"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@dbx-tools/shared-core": "0.6.
|
|
26
|
+
"@dbx-tools/shared-core": "0.6.73",
|
|
27
27
|
"zod": "4.3.6"
|
|
28
28
|
},
|
|
29
29
|
"main": "./lib/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"./package.json": "./package.json"
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
|
-
"version": "0.6.
|
|
43
|
+
"version": "0.6.73",
|
|
44
44
|
"types": "./lib/index.d.ts",
|
|
45
45
|
"type": "module",
|
|
46
46
|
"exports": {
|
package/src/email.ts
CHANGED
|
@@ -15,33 +15,27 @@
|
|
|
15
15
|
import { z } from "zod";
|
|
16
16
|
|
|
17
17
|
/** Schema for a single file attached to an outbound email. */
|
|
18
|
-
export const emailAttachmentSchema = z
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'Inline file content as a string. For binary data set `encoding` (e.g. "base64").
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.string()
|
|
40
|
-
.optional()
|
|
41
|
-
.describe(
|
|
42
|
-
'MIME type override (e.g. "application/pdf"). Inferred from the filename when omitted.',
|
|
43
|
-
),
|
|
44
|
-
});
|
|
18
|
+
export const emailAttachmentSchema = z
|
|
19
|
+
.object({
|
|
20
|
+
filename: z.string().describe('File name shown to the recipient (e.g. "report.pdf").'),
|
|
21
|
+
content: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe('Inline file content as a string. For binary data set `encoding` (e.g. "base64").'),
|
|
25
|
+
encoding: z
|
|
26
|
+
.string()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe(
|
|
29
|
+
'Encoding of `content` (e.g. "base64", "utf-8", "hex"). Defaults to utf-8 when omitted.',
|
|
30
|
+
),
|
|
31
|
+
contentType: z
|
|
32
|
+
.string()
|
|
33
|
+
.optional()
|
|
34
|
+
.describe(
|
|
35
|
+
'MIME type override (e.g. "application/pdf"). Inferred from the filename when omitted.',
|
|
36
|
+
),
|
|
37
|
+
})
|
|
38
|
+
.strict();
|
|
45
39
|
|
|
46
40
|
/** A single file attached to an {@link EmailMessage}. */
|
|
47
41
|
export type EmailAttachment = z.infer<typeof emailAttachmentSchema>;
|