agsamantha/node_modules/@langchain/community/dist/tools/gmail/send_message.cjs
2024-10-02 15:15:21 -05:00

74 lines
2.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GmailSendMessage = void 0;
const zod_1 = require("zod");
const base_js_1 = require("./base.cjs");
const descriptions_js_1 = require("./descriptions.cjs");
class GmailSendMessage extends base_js_1.GmailBaseTool {
constructor(fields) {
super(fields);
Object.defineProperty(this, "name", {
enumerable: true,
configurable: true,
writable: true,
value: "gmail_send_message"
});
Object.defineProperty(this, "schema", {
enumerable: true,
configurable: true,
writable: true,
value: zod_1.z.object({
message: zod_1.z.string(),
to: zod_1.z.array(zod_1.z.string()),
subject: zod_1.z.string(),
cc: zod_1.z.array(zod_1.z.string()).optional(),
bcc: zod_1.z.array(zod_1.z.string()).optional(),
})
});
Object.defineProperty(this, "description", {
enumerable: true,
configurable: true,
writable: true,
value: descriptions_js_1.GET_MESSAGE_DESCRIPTION
});
}
createEmailMessage({ message, to, subject, cc, bcc, }) {
const emailLines = [];
// Format the recipient(s)
const formatEmailList = (emails) => Array.isArray(emails) ? emails.join(",") : emails;
emailLines.push(`To: ${formatEmailList(to)}`);
if (cc)
emailLines.push(`Cc: ${formatEmailList(cc)}`);
if (bcc)
emailLines.push(`Bcc: ${formatEmailList(bcc)}`);
emailLines.push(`Subject: ${subject}`);
emailLines.push("");
emailLines.push(message);
// Convert the email message to base64url string
const email = emailLines.join("\r\n").trim();
// this encode may be an issue
return Buffer.from(email).toString("base64url");
}
async _call({ message, to, subject, cc, bcc, }) {
const rawMessage = this.createEmailMessage({
message,
to,
subject,
cc,
bcc,
});
try {
const response = await this.gmail.users.messages.send({
userId: "me",
requestBody: {
raw: rawMessage,
},
});
return `Message sent. Message Id: ${response.data.id}`;
}
catch (error) {
throw new Error(`An error occurred while sending the message: ${error}`);
}
}
}
exports.GmailSendMessage = GmailSendMessage;