@divyacon/piece-gmail 0.0.0-stage → 0.1.1
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/LICENSE.MIT-AP +24 -0
- package/README.md +8 -2
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +111 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/actions/ai-get-message-action.d.ts +7 -0
- package/dist/lib/actions/ai-get-message-action.d.ts.map +1 -0
- package/dist/lib/actions/ai-get-message-action.js +24 -0
- package/dist/lib/actions/ai-get-message-action.js.map +1 -0
- package/dist/lib/actions/ai-reply-to-thread-action.d.ts +16 -0
- package/dist/lib/actions/ai-reply-to-thread-action.d.ts.map +1 -0
- package/dist/lib/actions/ai-reply-to-thread-action.js +24 -0
- package/dist/lib/actions/ai-reply-to-thread-action.js.map +1 -0
- package/dist/lib/actions/ai-search-email-action.d.ts +21 -0
- package/dist/lib/actions/ai-search-email-action.d.ts.map +1 -0
- package/dist/lib/actions/ai-search-email-action.js +24 -0
- package/dist/lib/actions/ai-search-email-action.js.map +1 -0
- package/dist/lib/actions/ai-send-email-action.d.ts +18 -0
- package/dist/lib/actions/ai-send-email-action.d.ts.map +1 -0
- package/dist/lib/actions/ai-send-email-action.js +24 -0
- package/dist/lib/actions/ai-send-email-action.js.map +1 -0
- package/dist/lib/actions/create-draft-action.d.ts +16 -0
- package/dist/lib/actions/create-draft-action.d.ts.map +1 -0
- package/dist/lib/actions/create-draft-action.js +137 -0
- package/dist/lib/actions/create-draft-action.js.map +1 -0
- package/dist/lib/actions/create-draft-reply-action.d.ts +17 -0
- package/dist/lib/actions/create-draft-reply-action.d.ts.map +1 -0
- package/dist/lib/actions/create-draft-reply-action.js +269 -0
- package/dist/lib/actions/create-draft-reply-action.js.map +1 -0
- package/dist/lib/actions/delete-draft-action.d.ts +7 -0
- package/dist/lib/actions/delete-draft-action.d.ts.map +1 -0
- package/dist/lib/actions/delete-draft-action.js +62 -0
- package/dist/lib/actions/delete-draft-action.js.map +1 -0
- package/dist/lib/actions/forward-message-action.d.ts +12 -0
- package/dist/lib/actions/forward-message-action.d.ts.map +1 -0
- package/dist/lib/actions/forward-message-action.js +139 -0
- package/dist/lib/actions/forward-message-action.js.map +1 -0
- package/dist/lib/actions/get-attachment-action.d.ts +9 -0
- package/dist/lib/actions/get-attachment-action.d.ts.map +1 -0
- package/dist/lib/actions/get-attachment-action.js +80 -0
- package/dist/lib/actions/get-attachment-action.js.map +1 -0
- package/dist/lib/actions/get-draft-action.d.ts +7 -0
- package/dist/lib/actions/get-draft-action.d.ts.map +1 -0
- package/dist/lib/actions/get-draft-action.js +56 -0
- package/dist/lib/actions/get-draft-action.js.map +1 -0
- package/dist/lib/actions/get-label-action.d.ts +7 -0
- package/dist/lib/actions/get-label-action.d.ts.map +1 -0
- package/dist/lib/actions/get-label-action.js +55 -0
- package/dist/lib/actions/get-label-action.js.map +1 -0
- package/dist/lib/actions/get-mail-action.d.ts +7 -0
- package/dist/lib/actions/get-mail-action.d.ts.map +1 -0
- package/dist/lib/actions/get-mail-action.js +44 -0
- package/dist/lib/actions/get-mail-action.js.map +1 -0
- package/dist/lib/actions/get-profile-action.d.ts +5 -0
- package/dist/lib/actions/get-profile-action.d.ts.map +1 -0
- package/dist/lib/actions/get-profile-action.js +43 -0
- package/dist/lib/actions/get-profile-action.js.map +1 -0
- package/dist/lib/actions/get-thread-action.d.ts +9 -0
- package/dist/lib/actions/get-thread-action.d.ts.map +1 -0
- package/dist/lib/actions/get-thread-action.js +53 -0
- package/dist/lib/actions/get-thread-action.js.map +1 -0
- package/dist/lib/actions/list-drafts-action.d.ts +8 -0
- package/dist/lib/actions/list-drafts-action.d.ts.map +1 -0
- package/dist/lib/actions/list-drafts-action.js +62 -0
- package/dist/lib/actions/list-drafts-action.js.map +1 -0
- package/dist/lib/actions/list-history-action.d.ts +9 -0
- package/dist/lib/actions/list-history-action.d.ts.map +1 -0
- package/dist/lib/actions/list-history-action.js +74 -0
- package/dist/lib/actions/list-history-action.js.map +1 -0
- package/dist/lib/actions/list-labels-action.d.ts +5 -0
- package/dist/lib/actions/list-labels-action.d.ts.map +1 -0
- package/dist/lib/actions/list-labels-action.js +47 -0
- package/dist/lib/actions/list-labels-action.js.map +1 -0
- package/dist/lib/actions/list-threads-action.d.ts +10 -0
- package/dist/lib/actions/list-threads-action.d.ts.map +1 -0
- package/dist/lib/actions/list-threads-action.js +74 -0
- package/dist/lib/actions/list-threads-action.js.map +1 -0
- package/dist/lib/actions/reply-to-email-action.d.ts +16 -0
- package/dist/lib/actions/reply-to-email-action.d.ts.map +1 -0
- package/dist/lib/actions/reply-to-email-action.js +202 -0
- package/dist/lib/actions/reply-to-email-action.js.map +1 -0
- package/dist/lib/actions/request-approval-in-email.d.ts +15 -0
- package/dist/lib/actions/request-approval-in-email.d.ts.map +1 -0
- package/dist/lib/actions/request-approval-in-email.js +174 -0
- package/dist/lib/actions/request-approval-in-email.js.map +1 -0
- package/dist/lib/actions/search-email-action.d.ts +22 -0
- package/dist/lib/actions/search-email-action.d.ts.map +1 -0
- package/dist/lib/actions/search-email-action.js +179 -0
- package/dist/lib/actions/search-email-action.js.map +1 -0
- package/dist/lib/actions/send-draft-action.d.ts +7 -0
- package/dist/lib/actions/send-draft-action.d.ts.map +1 -0
- package/dist/lib/actions/send-draft-action.js +57 -0
- package/dist/lib/actions/send-draft-action.js.map +1 -0
- package/dist/lib/actions/send-email-action.d.ts +18 -0
- package/dist/lib/actions/send-email-action.d.ts.map +1 -0
- package/dist/lib/actions/send-email-action.js +196 -0
- package/dist/lib/actions/send-email-action.js.map +1 -0
- package/dist/lib/actions/stop-watch-action.d.ts +5 -0
- package/dist/lib/actions/stop-watch-action.d.ts.map +1 -0
- package/dist/lib/actions/stop-watch-action.js +41 -0
- package/dist/lib/actions/stop-watch-action.js.map +1 -0
- package/dist/lib/actions/update-draft-action.d.ts +17 -0
- package/dist/lib/actions/update-draft-action.d.ts.map +1 -0
- package/dist/lib/actions/update-draft-action.js +193 -0
- package/dist/lib/actions/update-draft-action.js.map +1 -0
- package/dist/lib/auth.d.ts +12 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +108 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/common/data.d.ts +132 -0
- package/dist/lib/common/data.d.ts.map +1 -0
- package/dist/lib/common/data.js +209 -0
- package/dist/lib/common/data.js.map +1 -0
- package/dist/lib/common/mime.d.ts +29 -0
- package/dist/lib/common/mime.d.ts.map +1 -0
- package/dist/lib/common/mime.js +59 -0
- package/dist/lib/common/mime.js.map +1 -0
- package/dist/lib/common/models.d.ts +86 -0
- package/dist/lib/common/models.d.ts.map +1 -0
- package/dist/lib/common/models.js +26 -0
- package/dist/lib/common/models.js.map +1 -0
- package/dist/lib/common/props.d.ts +28 -0
- package/dist/lib/common/props.d.ts.map +1 -0
- package/dist/lib/common/props.js +231 -0
- package/dist/lib/common/props.js.map +1 -0
- package/dist/lib/output-schemas.d.ts +29 -0
- package/dist/lib/output-schemas.d.ts.map +1 -0
- package/dist/lib/output-schemas.js +1029 -0
- package/dist/lib/output-schemas.js.map +1 -0
- package/dist/lib/triggers/new-attachment.d.ts +144 -0
- package/dist/lib/triggers/new-attachment.d.ts.map +1 -0
- package/dist/lib/triggers/new-attachment.js +150 -0
- package/dist/lib/triggers/new-attachment.js.map +1 -0
- package/dist/lib/triggers/new-conversation.d.ts +59 -0
- package/dist/lib/triggers/new-conversation.d.ts.map +1 -0
- package/dist/lib/triggers/new-conversation.js +308 -0
- package/dist/lib/triggers/new-conversation.js.map +1 -0
- package/dist/lib/triggers/new-email.d.ts +52 -0
- package/dist/lib/triggers/new-email.d.ts.map +1 -0
- package/dist/lib/triggers/new-email.js +135 -0
- package/dist/lib/triggers/new-email.js.map +1 -0
- package/dist/lib/triggers/new-label.d.ts +15 -0
- package/dist/lib/triggers/new-label.d.ts.map +1 -0
- package/dist/lib/triggers/new-label.js +82 -0
- package/dist/lib/triggers/new-label.js.map +1 -0
- package/dist/lib/triggers/new-labeled-email.d.ts +35 -0
- package/dist/lib/triggers/new-labeled-email.d.ts.map +1 -0
- package/dist/lib/triggers/new-labeled-email.js +147 -0
- package/dist/lib/triggers/new-labeled-email.js.map +1 -0
- package/package.json +54 -4
- package/src/index.ts +107 -0
- package/src/lib/actions/ai-get-message-action.ts +20 -0
- package/src/lib/actions/ai-reply-to-thread-action.ts +20 -0
- package/src/lib/actions/ai-search-email-action.ts +21 -0
- package/src/lib/actions/ai-send-email-action.ts +20 -0
- package/src/lib/actions/create-draft-action.ts +148 -0
- package/src/lib/actions/create-draft-reply-action.ts +314 -0
- package/src/lib/actions/delete-draft-action.ts +57 -0
- package/src/lib/actions/forward-message-action.ts +159 -0
- package/src/lib/actions/get-attachment-action.ts +83 -0
- package/src/lib/actions/get-draft-action.ts +53 -0
- package/src/lib/actions/get-label-action.ts +53 -0
- package/src/lib/actions/get-mail-action.ts +52 -0
- package/src/lib/actions/get-profile-action.ts +39 -0
- package/src/lib/actions/get-thread-action.ts +47 -0
- package/src/lib/actions/list-drafts-action.ts +72 -0
- package/src/lib/actions/list-history-action.ts +83 -0
- package/src/lib/actions/list-labels-action.ts +43 -0
- package/src/lib/actions/list-threads-action.ts +89 -0
- package/src/lib/actions/reply-to-email-action.ts +228 -0
- package/src/lib/actions/request-approval-in-email.ts +197 -0
- package/src/lib/actions/search-email-action.ts +219 -0
- package/src/lib/actions/send-draft-action.ts +54 -0
- package/src/lib/actions/send-email-action.ts +213 -0
- package/src/lib/actions/stop-watch-action.ts +37 -0
- package/src/lib/actions/update-draft-action.ts +211 -0
- package/src/lib/auth.ts +116 -0
- package/src/lib/common/data.ts +268 -0
- package/src/lib/common/mime.ts +82 -0
- package/src/lib/common/models.ts +91 -0
- package/src/lib/common/props.ts +262 -0
- package/src/lib/output-schemas.ts +1061 -0
- package/src/lib/triggers/new-attachment.ts +203 -0
- package/src/lib/triggers/new-conversation.ts +413 -0
- package/src/lib/triggers/new-email.ts +173 -0
- package/src/lib/triggers/new-label.ts +83 -0
- package/src/lib/triggers/new-labeled-email.ts +197 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailCreateDraftReplyAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/create-draft-reply-action.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const mime_types_1 = tslib_1.__importDefault(require("mime-types"));
|
|
9
|
+
const mail_composer_1 = tslib_1.__importDefault(require("nodemailer/lib/mail-composer"));
|
|
10
|
+
const auth_1 = require("../auth");
|
|
11
|
+
const gmail_1 = require("@googleapis/gmail");
|
|
12
|
+
const props_1 = require("../common/props");
|
|
13
|
+
const output_schemas_1 = require("../output-schemas");
|
|
14
|
+
exports.gmailCreateDraftReplyAction = (0, pieces_framework_1.createAction)({
|
|
15
|
+
auth: auth_1.gmailAuth,
|
|
16
|
+
name: 'create_draft_reply',
|
|
17
|
+
description: 'Creates a draft reply to an existing email.',
|
|
18
|
+
audience: 'human',
|
|
19
|
+
aiMetadata: {
|
|
20
|
+
description: 'Builds a draft reply to an existing email and saves it (unsent) in the thread, addressing the original sender (reply) or all participants (reply all) and optionally quoting the original message. Use this when a human should review and send the response rather than sending it automatically; requires the Gmail message ID of the email being replied to. Not idempotent: each call creates a new draft.',
|
|
21
|
+
idempotent: false,
|
|
22
|
+
},
|
|
23
|
+
displayName: 'Create Draft Reply',
|
|
24
|
+
props: {
|
|
25
|
+
message_id: props_1.GmailProps.message,
|
|
26
|
+
reply_type: pieces_framework_1.Property.StaticDropdown({
|
|
27
|
+
displayName: 'Reply Type',
|
|
28
|
+
description: 'Choose whether to reply to sender only or to all recipients',
|
|
29
|
+
required: true,
|
|
30
|
+
defaultValue: 'reply',
|
|
31
|
+
options: {
|
|
32
|
+
disabled: false,
|
|
33
|
+
options: [
|
|
34
|
+
{
|
|
35
|
+
label: 'Reply (to sender only)',
|
|
36
|
+
value: 'reply',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
label: 'Reply All (to all recipients)',
|
|
40
|
+
value: 'reply_all',
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
}),
|
|
45
|
+
body_type: pieces_framework_1.Property.StaticDropdown({
|
|
46
|
+
displayName: 'Body Type',
|
|
47
|
+
required: true,
|
|
48
|
+
defaultValue: 'plain_text',
|
|
49
|
+
options: {
|
|
50
|
+
disabled: false,
|
|
51
|
+
options: [
|
|
52
|
+
{
|
|
53
|
+
label: 'Plain text',
|
|
54
|
+
value: 'plain_text',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: 'HTML',
|
|
58
|
+
value: 'html',
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
}),
|
|
63
|
+
body: pieces_framework_1.Property.LongText({
|
|
64
|
+
displayName: 'Draft Reply Body',
|
|
65
|
+
description: 'Your draft reply message content',
|
|
66
|
+
required: false,
|
|
67
|
+
}),
|
|
68
|
+
include_original_message: pieces_framework_1.Property.Checkbox({
|
|
69
|
+
displayName: 'Include Original Message',
|
|
70
|
+
description: 'Include the original message content in the draft reply',
|
|
71
|
+
required: true,
|
|
72
|
+
defaultValue: true,
|
|
73
|
+
}),
|
|
74
|
+
sender_name: pieces_framework_1.Property.ShortText({
|
|
75
|
+
displayName: 'Sender Name',
|
|
76
|
+
description: 'Optional sender name to display',
|
|
77
|
+
required: false,
|
|
78
|
+
}),
|
|
79
|
+
attachment: pieces_framework_1.Property.File({
|
|
80
|
+
displayName: 'Attachment',
|
|
81
|
+
description: 'Optional file to attach to your draft reply',
|
|
82
|
+
required: false,
|
|
83
|
+
}),
|
|
84
|
+
attachment_name: pieces_framework_1.Property.ShortText({
|
|
85
|
+
displayName: 'Attachment Name',
|
|
86
|
+
description: 'Custom name for the attachment',
|
|
87
|
+
required: false,
|
|
88
|
+
}),
|
|
89
|
+
},
|
|
90
|
+
outputSchema: output_schemas_1.createDraftReplyActionOutputSchema,
|
|
91
|
+
run(context) {
|
|
92
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
93
|
+
var _a;
|
|
94
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
95
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
96
|
+
const originalMessage = yield gmail.users.messages.get({
|
|
97
|
+
userId: 'me',
|
|
98
|
+
id: context.propsValue.message_id,
|
|
99
|
+
format: 'full',
|
|
100
|
+
});
|
|
101
|
+
if (!originalMessage.data || !originalMessage.data.payload) {
|
|
102
|
+
throw new Error('Could not fetch original message details');
|
|
103
|
+
}
|
|
104
|
+
const headers = originalMessage.data.payload.headers || [];
|
|
105
|
+
const headerMap = headers.reduce((acc, header) => {
|
|
106
|
+
if (header.name && header.value) {
|
|
107
|
+
acc[header.name.toLowerCase()] = header.value;
|
|
108
|
+
}
|
|
109
|
+
return acc;
|
|
110
|
+
}, {});
|
|
111
|
+
const originalSubject = headerMap['subject'] || '';
|
|
112
|
+
const originalFrom = headerMap['from'] || '';
|
|
113
|
+
const originalTo = headerMap['to'] || '';
|
|
114
|
+
const originalCc = headerMap['cc'] || '';
|
|
115
|
+
const originalReplyTo = headerMap['reply-to'] || '';
|
|
116
|
+
const originalMessageId = headerMap['message-id'] || '';
|
|
117
|
+
const originalReferences = headerMap['references'] || '';
|
|
118
|
+
const originalDate = headerMap['date'] || '';
|
|
119
|
+
let originalMessageContent = '';
|
|
120
|
+
if (context.propsValue.include_original_message) {
|
|
121
|
+
try {
|
|
122
|
+
const { parseStream } = yield Promise.resolve().then(() => tslib_1.__importStar(require('../common/data')));
|
|
123
|
+
const originalMessageFull = yield gmail.users.messages.get({
|
|
124
|
+
userId: 'me',
|
|
125
|
+
id: context.propsValue.message_id,
|
|
126
|
+
format: 'raw',
|
|
127
|
+
});
|
|
128
|
+
if (originalMessageFull.data.raw) {
|
|
129
|
+
const rawMessage = Buffer.from(originalMessageFull.data.raw, 'base64').toString('utf-8');
|
|
130
|
+
const parsedMessage = yield parseStream(rawMessage);
|
|
131
|
+
let messageText = parsedMessage.text || '';
|
|
132
|
+
if (!messageText && parsedMessage.html) {
|
|
133
|
+
messageText = parsedMessage.html
|
|
134
|
+
.replace(/<[^>]*>/g, '')
|
|
135
|
+
.replace(/ /g, ' ')
|
|
136
|
+
.replace(/&/g, '&')
|
|
137
|
+
.replace(/</g, '<')
|
|
138
|
+
.replace(/>/g, '>');
|
|
139
|
+
}
|
|
140
|
+
if (messageText) {
|
|
141
|
+
const quotedLines = messageText
|
|
142
|
+
.split('\n')
|
|
143
|
+
.map((line) => `> ${line.trim()}`);
|
|
144
|
+
const senderInfo = `On ${originalDate}, ${originalFrom} wrote:`;
|
|
145
|
+
originalMessageContent = `${senderInfo}\n${quotedLines.join('\n')}`;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
console.warn('Could not extract original message content for quoting:', error);
|
|
151
|
+
originalMessageContent = `On ${originalDate}, ${originalFrom} wrote:\n> [Original message content could not be parsed]`;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
const toRecipients = [];
|
|
155
|
+
const ccRecipients = [];
|
|
156
|
+
if (context.propsValue.reply_type === 'reply_all') {
|
|
157
|
+
const senderEmail = originalReplyTo || originalFrom;
|
|
158
|
+
if (senderEmail) {
|
|
159
|
+
toRecipients.push(senderEmail);
|
|
160
|
+
}
|
|
161
|
+
const currentUserEmail = yield (0, auth_1.getUserEmail)(context.auth, authClient);
|
|
162
|
+
if (originalTo) {
|
|
163
|
+
const toEmails = originalTo.split(',').map((email) => email.trim());
|
|
164
|
+
toRecipients.push(...toEmails.filter((email) => !email.includes(currentUserEmail || '')));
|
|
165
|
+
}
|
|
166
|
+
if (originalCc) {
|
|
167
|
+
const ccEmails = originalCc.split(',').map((email) => email.trim());
|
|
168
|
+
ccRecipients.push(...ccEmails.filter((email) => !email.includes(currentUserEmail || '')));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
const senderEmail = originalReplyTo || originalFrom;
|
|
173
|
+
if (senderEmail) {
|
|
174
|
+
toRecipients.push(senderEmail);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
let replySubject = originalSubject;
|
|
178
|
+
if (!replySubject.toLowerCase().startsWith('re:')) {
|
|
179
|
+
replySubject = `Re: ${replySubject}`;
|
|
180
|
+
}
|
|
181
|
+
let referencesHeader = originalMessageId;
|
|
182
|
+
if (originalReferences) {
|
|
183
|
+
referencesHeader = `${originalReferences} ${originalMessageId}`;
|
|
184
|
+
}
|
|
185
|
+
const senderEmail = yield (0, auth_1.getUserEmail)(context.auth, authClient);
|
|
186
|
+
let draftBody = context.propsValue.body || '';
|
|
187
|
+
if (context.propsValue.include_original_message && originalMessageContent) {
|
|
188
|
+
const separator = context.propsValue.body_type === 'html'
|
|
189
|
+
? '<br><br>--- Original Message ---<br>'
|
|
190
|
+
: '\n\n--- Original Message ---\n';
|
|
191
|
+
const quotedContent = context.propsValue.body_type === 'html'
|
|
192
|
+
? originalMessageContent.replace(/\n/g, '<br>')
|
|
193
|
+
: originalMessageContent;
|
|
194
|
+
draftBody = draftBody
|
|
195
|
+
? `${draftBody}${separator}${quotedContent}`
|
|
196
|
+
: quotedContent;
|
|
197
|
+
}
|
|
198
|
+
const subjectBase64 = Buffer.from(replySubject).toString('base64');
|
|
199
|
+
const mailOptions = {
|
|
200
|
+
to: toRecipients.join(', '),
|
|
201
|
+
cc: ccRecipients.length > 0 ? ccRecipients.join(', ') : undefined,
|
|
202
|
+
subject: `=?UTF-8?B?${subjectBase64}?=`,
|
|
203
|
+
text: context.propsValue.body_type === 'plain_text' ? draftBody : undefined,
|
|
204
|
+
html: context.propsValue.body_type === 'html' ? draftBody : undefined,
|
|
205
|
+
attachments: [],
|
|
206
|
+
headers: [
|
|
207
|
+
{
|
|
208
|
+
key: 'In-Reply-To',
|
|
209
|
+
value: originalMessageId,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
key: 'References',
|
|
213
|
+
value: referencesHeader,
|
|
214
|
+
},
|
|
215
|
+
],
|
|
216
|
+
};
|
|
217
|
+
if (senderEmail) {
|
|
218
|
+
mailOptions.from = context.propsValue.sender_name
|
|
219
|
+
? `${context.propsValue.sender_name} <${senderEmail}>`
|
|
220
|
+
: senderEmail;
|
|
221
|
+
}
|
|
222
|
+
if (context.propsValue.attachment) {
|
|
223
|
+
const lookupResult = mime_types_1.default.lookup(context.propsValue.attachment.extension || '');
|
|
224
|
+
const attachmentOption = [
|
|
225
|
+
{
|
|
226
|
+
filename: (_a = context.propsValue.attachment_name) !== null && _a !== void 0 ? _a : context.propsValue.attachment.filename,
|
|
227
|
+
content: context.propsValue.attachment.base64,
|
|
228
|
+
contentType: lookupResult || undefined,
|
|
229
|
+
encoding: 'base64',
|
|
230
|
+
},
|
|
231
|
+
];
|
|
232
|
+
mailOptions.attachments = attachmentOption;
|
|
233
|
+
}
|
|
234
|
+
const mail = new mail_composer_1.default(mailOptions).compile();
|
|
235
|
+
mail.keepBcc = true;
|
|
236
|
+
const mailBody = yield mail.build();
|
|
237
|
+
const encodedPayload = Buffer.from(mailBody)
|
|
238
|
+
.toString('base64')
|
|
239
|
+
.replace(/\+/g, '-')
|
|
240
|
+
.replace(/\//g, '_');
|
|
241
|
+
const draft = yield gmail.users.drafts.create({
|
|
242
|
+
userId: 'me',
|
|
243
|
+
requestBody: {
|
|
244
|
+
message: {
|
|
245
|
+
threadId: originalMessage.data.threadId || undefined,
|
|
246
|
+
raw: encodedPayload,
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
return Object.assign(Object.assign({}, draft.data), { originalMessage: {
|
|
251
|
+
id: context.propsValue.message_id,
|
|
252
|
+
subject: originalSubject,
|
|
253
|
+
from: originalFrom,
|
|
254
|
+
to: originalTo,
|
|
255
|
+
date: originalDate,
|
|
256
|
+
threadId: originalMessage.data.threadId,
|
|
257
|
+
}, draftDetails: {
|
|
258
|
+
replyType: context.propsValue.reply_type,
|
|
259
|
+
recipients: {
|
|
260
|
+
to: toRecipients,
|
|
261
|
+
cc: ccRecipients,
|
|
262
|
+
},
|
|
263
|
+
subject: replySubject,
|
|
264
|
+
includeOriginal: context.propsValue.include_original_message,
|
|
265
|
+
} });
|
|
266
|
+
});
|
|
267
|
+
},
|
|
268
|
+
});
|
|
269
|
+
//# sourceMappingURL=create-draft-reply-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-draft-reply-action.js","sourceRoot":"","sources":["../../../src/lib/actions/create-draft-reply-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const gmailDeleteDraftAction: import("@agnocon/pieces-framework").IAction<(import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props> | import("@agnocon/pieces-framework").CustomAuthProperty<{
|
|
2
|
+
serviceAccount: import("@agnocon/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
userEmail: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
}>)[], {
|
|
5
|
+
draft_id: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
6
|
+
}>;
|
|
7
|
+
//# sourceMappingURL=delete-draft-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-draft-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/delete-draft-action.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,sBAAsB;;;;;EAoDjC,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailDeleteDraftAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/delete-draft-action.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const gmail_1 = require("@googleapis/gmail");
|
|
10
|
+
exports.gmailDeleteDraftAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.gmailAuth,
|
|
12
|
+
name: 'gmail_delete_draft',
|
|
13
|
+
displayName: 'Delete Draft',
|
|
14
|
+
description: 'Permanently delete a draft email by its ID.',
|
|
15
|
+
audience: 'ai',
|
|
16
|
+
aiMetadata: {
|
|
17
|
+
description: 'Permanently removes a draft email by its draft ID. This only deletes the unsent draft (not a sent message) but the draft itself is not recoverable. Obtain the draft ID from List Drafts. Idempotent: if no draft matches the ID (already removed, or an invalid ID) it returns deleted:false instead of failing — check that flag rather than assuming a delete happened.',
|
|
18
|
+
idempotent: true,
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
draft_id: pieces_framework_1.Property.ShortText({
|
|
22
|
+
displayName: 'Draft ID',
|
|
23
|
+
description: 'The ID of the draft to delete (obtain from List Drafts).',
|
|
24
|
+
required: true,
|
|
25
|
+
}),
|
|
26
|
+
},
|
|
27
|
+
run(context) {
|
|
28
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
30
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
31
|
+
try {
|
|
32
|
+
yield gmail.users.drafts.delete({
|
|
33
|
+
userId: 'me',
|
|
34
|
+
id: context.propsValue.draft_id,
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
success: true,
|
|
38
|
+
deleted: true,
|
|
39
|
+
draftId: context.propsValue.draft_id,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error.code === 403) {
|
|
44
|
+
throw new Error('Insufficient permissions to delete a draft. Ensure the gmail.compose scope is granted.');
|
|
45
|
+
}
|
|
46
|
+
else if (error.code === 404) {
|
|
47
|
+
return {
|
|
48
|
+
success: false,
|
|
49
|
+
deleted: false,
|
|
50
|
+
draftId: context.propsValue.draft_id,
|
|
51
|
+
message: `No draft with ID "${context.propsValue.draft_id}" was found — it may already be deleted, or the ID is invalid. Verify with List Drafts.`,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
else if (error.code === 429) {
|
|
55
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
56
|
+
}
|
|
57
|
+
throw new Error(`Failed to delete draft: ${error.message}`);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=delete-draft-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-draft-action.js","sourceRoot":"","sources":["../../../src/lib/actions/delete-draft-action.ts"],"names":[],"mappings":";;;;AAAA,2GAA2G;AAC3G,qEAAqE;AACrE,gEAAmE;AACnE,kCAAwD;AACxD,6CAAyD;AAE5C,QAAA,sBAAsB,GAAG,IAAA,+BAAY,EAAC;IACjD,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,6CAA6C;IAC1D,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,WAAW,EACT,4WAA4W;QAC9W,UAAU,EAAE,IAAI;KACjB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,0DAA0D;YACvE,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAkB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAA,aAAW,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;oBAC9B,MAAM,EAAE,IAAI;oBACZ,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;iBAChC,CAAC,CAAC;gBACH,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;iBACrC,CAAC;YACJ,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,wFAAwF,CACzF,CAAC;gBACJ,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBAC9B,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,KAAK;wBACd,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;wBACpC,OAAO,EAAE,qBAAqB,OAAO,CAAC,UAAU,CAAC,QAAQ,yFAAyF;qBACnJ,CAAC;gBACJ,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const gmailForwardMessageAction: import("@agnocon/pieces-framework").IAction<(import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props> | import("@agnocon/pieces-framework").CustomAuthProperty<{
|
|
2
|
+
serviceAccount: import("@agnocon/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
userEmail: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
}>)[], {
|
|
5
|
+
message_id: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
6
|
+
receiver: import("@agnocon/pieces-framework").ArrayProperty<true>;
|
|
7
|
+
cc: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
8
|
+
bcc: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
9
|
+
note: import("@agnocon/pieces-framework").LongTextProperty<false>;
|
|
10
|
+
sender_name: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
11
|
+
}>;
|
|
12
|
+
//# sourceMappingURL=forward-message-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forward-message-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/forward-message-action.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,yBAAyB;;;;;;;;;;EAuJpC,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailForwardMessageAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/forward-message-action.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const gmail_1 = require("@googleapis/gmail");
|
|
10
|
+
const mime_1 = require("../common/mime");
|
|
11
|
+
const data_1 = require("../common/data");
|
|
12
|
+
const output_schemas_1 = require("../output-schemas");
|
|
13
|
+
exports.gmailForwardMessageAction = (0, pieces_framework_1.createAction)({
|
|
14
|
+
auth: auth_1.gmailAuth,
|
|
15
|
+
name: 'gmail_forward_message',
|
|
16
|
+
displayName: 'Forward Message',
|
|
17
|
+
description: 'Forward an existing email to new recipients.',
|
|
18
|
+
audience: 'ai',
|
|
19
|
+
aiMetadata: {
|
|
20
|
+
description: 'Forwards an existing email to one or more new recipients, quoting the original sender, subject, and body beneath an optional added note. Requires the Gmail message ID of the email to forward (obtain from Search Email or Get Message). Performs two calls: it fetches the original message, then sends the forwarded copy. Not idempotent: each call sends a new forwarded message.',
|
|
21
|
+
idempotent: false,
|
|
22
|
+
},
|
|
23
|
+
props: {
|
|
24
|
+
message_id: pieces_framework_1.Property.ShortText({
|
|
25
|
+
displayName: 'Message ID',
|
|
26
|
+
description: 'The Gmail message ID to forward (obtain from Search Email or Get Message).',
|
|
27
|
+
required: true,
|
|
28
|
+
}),
|
|
29
|
+
receiver: pieces_framework_1.Property.Array({
|
|
30
|
+
displayName: 'Receiver Email (To)',
|
|
31
|
+
description: 'One or more recipients to forward the email to.',
|
|
32
|
+
required: true,
|
|
33
|
+
}),
|
|
34
|
+
cc: pieces_framework_1.Property.Array({
|
|
35
|
+
displayName: 'CC Email',
|
|
36
|
+
required: false,
|
|
37
|
+
}),
|
|
38
|
+
bcc: pieces_framework_1.Property.Array({
|
|
39
|
+
displayName: 'BCC Email',
|
|
40
|
+
required: false,
|
|
41
|
+
}),
|
|
42
|
+
note: pieces_framework_1.Property.LongText({
|
|
43
|
+
displayName: 'Note',
|
|
44
|
+
description: 'Optional message to add above the forwarded content.',
|
|
45
|
+
required: false,
|
|
46
|
+
}),
|
|
47
|
+
sender_name: pieces_framework_1.Property.ShortText({
|
|
48
|
+
displayName: 'Sender Name',
|
|
49
|
+
required: false,
|
|
50
|
+
}),
|
|
51
|
+
},
|
|
52
|
+
outputSchema: output_schemas_1.gmailForwardMessageActionOutputSchema,
|
|
53
|
+
run(context) {
|
|
54
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
var _a, _b, _c;
|
|
56
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
57
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
58
|
+
try {
|
|
59
|
+
const original = yield gmail.users.messages.get({
|
|
60
|
+
userId: 'me',
|
|
61
|
+
id: context.propsValue.message_id,
|
|
62
|
+
format: 'raw',
|
|
63
|
+
});
|
|
64
|
+
if (!original.data.raw) {
|
|
65
|
+
throw new Error('Could not fetch the original message to forward.');
|
|
66
|
+
}
|
|
67
|
+
const parsed = yield (0, data_1.parseStream)(Buffer.from(original.data.raw, 'base64').toString('utf-8'));
|
|
68
|
+
const originalSubject = parsed.subject || '';
|
|
69
|
+
const forwardSubject = originalSubject.toLowerCase().startsWith('fwd:')
|
|
70
|
+
? originalSubject
|
|
71
|
+
: `Fwd: ${originalSubject}`;
|
|
72
|
+
const originalFrom = typeof ((_a = parsed.from) === null || _a === void 0 ? void 0 : _a.text) === 'string' ? parsed.from.text : '';
|
|
73
|
+
const originalTo = parsed.to && !Array.isArray(parsed.to) ? parsed.to.text : '';
|
|
74
|
+
const originalDate = parsed.date ? parsed.date.toUTCString() : '';
|
|
75
|
+
const note = context.propsValue.note
|
|
76
|
+
? `${context.propsValue.note}\n\n`
|
|
77
|
+
: '';
|
|
78
|
+
const htmlAsText = parsed.html ? parsed.html.replace(/<[^>]*>/g, '') : '';
|
|
79
|
+
const originalBody = parsed.text || htmlAsText || '';
|
|
80
|
+
const quotedBody = originalBody
|
|
81
|
+
.split('\n')
|
|
82
|
+
.map((line) => `> ${line}`)
|
|
83
|
+
.join('\n');
|
|
84
|
+
const forwardedBody = `${note}---------- Forwarded message ----------\n` +
|
|
85
|
+
`From: ${originalFrom}\n` +
|
|
86
|
+
`Date: ${originalDate}\n` +
|
|
87
|
+
`Subject: ${originalSubject}\n` +
|
|
88
|
+
`To: ${originalTo}\n\n` +
|
|
89
|
+
`${quotedBody}`;
|
|
90
|
+
const receiver = context.propsValue.receiver.filter((email) => email !== '');
|
|
91
|
+
const cc = (_b = context.propsValue.cc) === null || _b === void 0 ? void 0 : _b.filter((email) => email !== '');
|
|
92
|
+
const bcc = (_c = context.propsValue.bcc) === null || _c === void 0 ? void 0 : _c.filter((email) => email !== '');
|
|
93
|
+
const senderEmail = yield (0, auth_1.getUserEmail)(context.auth, authClient);
|
|
94
|
+
const from = senderEmail
|
|
95
|
+
? context.propsValue.sender_name
|
|
96
|
+
? `${context.propsValue.sender_name} <${senderEmail}>`
|
|
97
|
+
: senderEmail
|
|
98
|
+
: undefined;
|
|
99
|
+
const forwardedAttachments = (parsed.attachments || [])
|
|
100
|
+
.filter((attachment) => attachment.content)
|
|
101
|
+
.map((attachment) => {
|
|
102
|
+
var _a, _b, _c;
|
|
103
|
+
return ({
|
|
104
|
+
file: new pieces_framework_1.ApFile((_a = attachment.filename) !== null && _a !== void 0 ? _a : `attachment-${Date.now()}`, Buffer.from(attachment.content), (_b = attachment.filename) === null || _b === void 0 ? void 0 : _b.split('.').pop()),
|
|
105
|
+
name: (_c = attachment.filename) !== null && _c !== void 0 ? _c : undefined,
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
const raw = yield mime_1.GmailMime.buildRawMessage({
|
|
109
|
+
to: receiver,
|
|
110
|
+
cc,
|
|
111
|
+
bcc,
|
|
112
|
+
from,
|
|
113
|
+
subject: forwardSubject,
|
|
114
|
+
bodyType: 'plain_text',
|
|
115
|
+
body: forwardedBody,
|
|
116
|
+
attachments: forwardedAttachments,
|
|
117
|
+
});
|
|
118
|
+
const response = yield gmail.users.messages.send({
|
|
119
|
+
userId: 'me',
|
|
120
|
+
requestBody: { raw },
|
|
121
|
+
});
|
|
122
|
+
return response.data;
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
if (error.code === 403) {
|
|
126
|
+
throw new Error('Insufficient permissions to forward the message. Ensure the gmail.send and gmail.readonly scopes are granted.');
|
|
127
|
+
}
|
|
128
|
+
else if (error.code === 404) {
|
|
129
|
+
throw new Error(`Original message not found: "${context.propsValue.message_id}". Use Search Email to find a valid message ID.`);
|
|
130
|
+
}
|
|
131
|
+
else if (error.code === 429) {
|
|
132
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
133
|
+
}
|
|
134
|
+
throw new Error(`Failed to forward message: ${error.message}`);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=forward-message-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forward-message-action.js","sourceRoot":"","sources":["../../../src/lib/actions/forward-message-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const gmailGetAttachmentAction: import("@agnocon/pieces-framework").IAction<(import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props> | import("@agnocon/pieces-framework").CustomAuthProperty<{
|
|
2
|
+
serviceAccount: import("@agnocon/pieces-framework").LongTextProperty<true>;
|
|
3
|
+
userEmail: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
4
|
+
}>)[], {
|
|
5
|
+
message_id: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
6
|
+
attachment_id: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
7
|
+
file_name: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
8
|
+
}>;
|
|
9
|
+
//# sourceMappingURL=get-attachment-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-attachment-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/get-attachment-action.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,wBAAwB;;;;;;;EA6EnC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailGetAttachmentAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/get-attachment-action.ts (MIT).
|
|
6
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
7
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
8
|
+
const auth_1 = require("../auth");
|
|
9
|
+
const gmail_1 = require("@googleapis/gmail");
|
|
10
|
+
const output_schemas_1 = require("../output-schemas");
|
|
11
|
+
exports.gmailGetAttachmentAction = (0, pieces_framework_1.createAction)({
|
|
12
|
+
auth: auth_1.gmailAuth,
|
|
13
|
+
name: 'gmail_get_attachment',
|
|
14
|
+
displayName: 'Get Attachment',
|
|
15
|
+
description: 'Download an email attachment by message ID and attachment ID.',
|
|
16
|
+
audience: 'ai',
|
|
17
|
+
aiMetadata: {
|
|
18
|
+
description: "Fetches one email attachment's raw bytes by message ID + attachment ID, returning a stored file plus size. Note: Get Message already returns each attachment's downloaded content directly, so prefer that; use this only when you separately hold a raw Gmail attachment ID (from the message payload parts) and need the bytes on their own. Get the message ID from Search Email. Idempotent: a read-only fetch that does not modify the mailbox.",
|
|
19
|
+
idempotent: true,
|
|
20
|
+
},
|
|
21
|
+
props: {
|
|
22
|
+
message_id: pieces_framework_1.Property.ShortText({
|
|
23
|
+
displayName: 'Message ID',
|
|
24
|
+
description: 'The Gmail message ID the attachment belongs to (obtain from Search Email or Get Message).',
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
attachment_id: pieces_framework_1.Property.ShortText({
|
|
28
|
+
displayName: 'Attachment ID',
|
|
29
|
+
description: 'The raw Gmail attachment ID, taken from the message payload parts (parts[].body.attachmentId of a full-format message). Note: Get Message returns attachment content directly, so this field is only needed for the raw-ID fetch path.',
|
|
30
|
+
required: true,
|
|
31
|
+
}),
|
|
32
|
+
file_name: pieces_framework_1.Property.ShortText({
|
|
33
|
+
displayName: 'File Name',
|
|
34
|
+
description: 'Optional name to give the downloaded file.',
|
|
35
|
+
required: false,
|
|
36
|
+
}),
|
|
37
|
+
},
|
|
38
|
+
outputSchema: output_schemas_1.gmailGetAttachmentActionOutputSchema,
|
|
39
|
+
run(context) {
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
42
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
43
|
+
try {
|
|
44
|
+
const response = yield gmail.users.messages.attachments.get({
|
|
45
|
+
userId: 'me',
|
|
46
|
+
messageId: context.propsValue.message_id,
|
|
47
|
+
id: context.propsValue.attachment_id,
|
|
48
|
+
});
|
|
49
|
+
const data = response.data.data;
|
|
50
|
+
if (!data) {
|
|
51
|
+
throw new Error('Attachment returned no data.');
|
|
52
|
+
}
|
|
53
|
+
const fileName = context.propsValue.file_name ||
|
|
54
|
+
`attachment-${context.propsValue.attachment_id}`;
|
|
55
|
+
const fileUrl = yield context.files.write({
|
|
56
|
+
fileName,
|
|
57
|
+
data: Buffer.from(data, 'base64'),
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
fileName,
|
|
61
|
+
size: response.data.size,
|
|
62
|
+
data: fileUrl,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
if (error.code === 403) {
|
|
67
|
+
throw new Error('Insufficient permissions to read the attachment. Ensure the gmail.readonly scope is granted.');
|
|
68
|
+
}
|
|
69
|
+
else if (error.code === 404) {
|
|
70
|
+
throw new Error('Attachment or message not found. Verify the message ID and attachment ID via Get Message.');
|
|
71
|
+
}
|
|
72
|
+
else if (error.code === 429) {
|
|
73
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
74
|
+
}
|
|
75
|
+
throw new Error(`Failed to get attachment: ${error.message}`);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=get-attachment-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-attachment-action.js","sourceRoot":"","sources":["../../../src/lib/actions/get-attachment-action.ts"],"names":[],"mappings":";;;;AAAA,6GAA6G;AAC7G,qEAAqE;AACrE,gEAAmE;AACnE,kCAAwD;AACxD,6CAAyD;AACzD,sDAAyE;AAE5D,QAAA,wBAAwB,GAAG,IAAA,+BAAY,EAAC;IACnD,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,gBAAgB;IAC7B,WAAW,EAAE,+DAA+D;IAC5E,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,WAAW,EACT,sbAAsb;QACxb,UAAU,EAAE,IAAI;KACjB;IACD,KAAK,EAAE;QACL,UAAU,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC7B,WAAW,EAAE,YAAY;YACzB,WAAW,EACT,2FAA2F;YAC7F,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,aAAa,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAChC,WAAW,EAAE,eAAe;YAC5B,WAAW,EACT,wOAAwO;YAC1O,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACD,YAAY,EAAE,qDAAoC;IAC5C,GAAG,CAAC,OAAO;;YACf,MAAM,UAAU,GAAG,MAAM,IAAA,yBAAkB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,KAAK,GAAG,IAAA,aAAW,EAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAE/D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC;oBAC1D,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU;oBACxC,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,aAAa;iBACrC,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAClD,CAAC;gBAED,MAAM,QAAQ,GACZ,OAAO,CAAC,UAAU,CAAC,SAAS;oBAC5B,cAAc,OAAO,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;oBACxC,QAAQ;oBACR,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC;iBAClC,CAAC,CAAC;gBAEH,OAAO;oBACL,QAAQ;oBACR,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;oBACxB,IAAI,EAAE,OAAO;iBACd,CAAC;YACJ,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;gBACJ,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;gBACJ,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,wDAAwD,CACzD,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
|