@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,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailSearchMailAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/search-email-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 data_1 = require("../common/data");
|
|
11
|
+
const props_1 = require("../common/props");
|
|
12
|
+
const output_schemas_1 = require("../output-schemas");
|
|
13
|
+
exports.gmailSearchMailAction = (0, pieces_framework_1.createAction)({
|
|
14
|
+
auth: auth_1.gmailAuth,
|
|
15
|
+
name: 'gmail_search_mail',
|
|
16
|
+
displayName: 'Find Email',
|
|
17
|
+
description: 'Find emails using advanced search criteria. If no filters are provided, the latest emails are returned.',
|
|
18
|
+
audience: 'human',
|
|
19
|
+
aiMetadata: {
|
|
20
|
+
description: 'Searches the mailbox for emails matching combinable filters (sender, recipient, subject, body text, label, category, date range, attachment presence/name) and returns the matched messages with parsed contents. Use this to locate messages or discover their IDs before reading or replying; with no filters it returns the most recent emails. Bound results with Max Results (1-500, default 10). Idempotent: a read-only search that does not modify the mailbox.',
|
|
21
|
+
idempotent: true,
|
|
22
|
+
},
|
|
23
|
+
props: {
|
|
24
|
+
from: props_1.GmailProps.from,
|
|
25
|
+
to: props_1.GmailProps.to,
|
|
26
|
+
subject: props_1.GmailProps.subject,
|
|
27
|
+
content: pieces_framework_1.Property.ShortText({
|
|
28
|
+
displayName: 'Email Content',
|
|
29
|
+
description: 'Search for specific text within email body',
|
|
30
|
+
required: false,
|
|
31
|
+
}),
|
|
32
|
+
has_attachment: pieces_framework_1.Property.Checkbox({
|
|
33
|
+
displayName: 'Has Attachment',
|
|
34
|
+
description: 'Only find emails with attachments',
|
|
35
|
+
required: false,
|
|
36
|
+
defaultValue: false,
|
|
37
|
+
}),
|
|
38
|
+
attachment_name: pieces_framework_1.Property.ShortText({
|
|
39
|
+
displayName: 'Attachment Name',
|
|
40
|
+
description: 'Search for emails with specific attachment filename',
|
|
41
|
+
required: false,
|
|
42
|
+
}),
|
|
43
|
+
label: props_1.GmailProps.label({ required: false }),
|
|
44
|
+
category: props_1.GmailProps.category,
|
|
45
|
+
after_date: pieces_framework_1.Property.DateTime({
|
|
46
|
+
displayName: 'After Date',
|
|
47
|
+
description: 'Find emails sent after this date',
|
|
48
|
+
required: false,
|
|
49
|
+
}),
|
|
50
|
+
before_date: pieces_framework_1.Property.DateTime({
|
|
51
|
+
displayName: 'Before Date',
|
|
52
|
+
description: 'Find emails sent before this date',
|
|
53
|
+
required: false,
|
|
54
|
+
}),
|
|
55
|
+
include_spam_trash: pieces_framework_1.Property.Checkbox({
|
|
56
|
+
displayName: 'Include Spam & Trash',
|
|
57
|
+
description: 'Include emails from Spam and Trash folders in search results',
|
|
58
|
+
required: false,
|
|
59
|
+
defaultValue: false,
|
|
60
|
+
}),
|
|
61
|
+
max_results: pieces_framework_1.Property.Number({
|
|
62
|
+
displayName: 'Max Results',
|
|
63
|
+
description: 'Maximum number of emails to return (1-500)',
|
|
64
|
+
required: false,
|
|
65
|
+
defaultValue: 10,
|
|
66
|
+
}),
|
|
67
|
+
},
|
|
68
|
+
outputSchema: output_schemas_1.gmailSearchMailActionOutputSchema,
|
|
69
|
+
run(context) {
|
|
70
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
71
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
72
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
73
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
74
|
+
const queryParts = [];
|
|
75
|
+
if ((_a = context.propsValue.from) === null || _a === void 0 ? void 0 : _a.trim()) {
|
|
76
|
+
queryParts.push(`from:(${context.propsValue.from.trim()})`);
|
|
77
|
+
}
|
|
78
|
+
if ((_b = context.propsValue.to) === null || _b === void 0 ? void 0 : _b.trim()) {
|
|
79
|
+
queryParts.push(`to:(${context.propsValue.to.trim()})`);
|
|
80
|
+
}
|
|
81
|
+
if ((_c = context.propsValue.subject) === null || _c === void 0 ? void 0 : _c.trim()) {
|
|
82
|
+
queryParts.push(`subject:(${context.propsValue.subject.trim()})`);
|
|
83
|
+
}
|
|
84
|
+
if ((_d = context.propsValue.content) === null || _d === void 0 ? void 0 : _d.trim()) {
|
|
85
|
+
queryParts.push(`"${context.propsValue.content.trim()}"`);
|
|
86
|
+
}
|
|
87
|
+
if (context.propsValue.has_attachment) {
|
|
88
|
+
queryParts.push('has:attachment');
|
|
89
|
+
}
|
|
90
|
+
if ((_e = context.propsValue.attachment_name) === null || _e === void 0 ? void 0 : _e.trim()) {
|
|
91
|
+
queryParts.push(`filename:(${context.propsValue.attachment_name.trim()})`);
|
|
92
|
+
}
|
|
93
|
+
if (context.propsValue.label) {
|
|
94
|
+
const label = context.propsValue.label;
|
|
95
|
+
queryParts.push(`label:${label.name}`);
|
|
96
|
+
}
|
|
97
|
+
if ((_f = context.propsValue.category) === null || _f === void 0 ? void 0 : _f.trim()) {
|
|
98
|
+
queryParts.push(`category:${context.propsValue.category.trim()}`);
|
|
99
|
+
}
|
|
100
|
+
if (context.propsValue.after_date) {
|
|
101
|
+
const afterDate = new Date(context.propsValue.after_date);
|
|
102
|
+
const afterDateStr = afterDate
|
|
103
|
+
.toISOString()
|
|
104
|
+
.split('T')[0]
|
|
105
|
+
.replace(/-/g, '/');
|
|
106
|
+
queryParts.push(`after:${afterDateStr}`);
|
|
107
|
+
}
|
|
108
|
+
if (context.propsValue.before_date) {
|
|
109
|
+
const beforeDate = new Date(context.propsValue.before_date);
|
|
110
|
+
const beforeDateStr = beforeDate
|
|
111
|
+
.toISOString()
|
|
112
|
+
.split('T')[0]
|
|
113
|
+
.replace(/-/g, '/');
|
|
114
|
+
queryParts.push(`before:${beforeDateStr}`);
|
|
115
|
+
}
|
|
116
|
+
const searchQuery = queryParts.join(' ');
|
|
117
|
+
const maxResults = Math.min(Math.max(context.propsValue.max_results || 10, 1), 500);
|
|
118
|
+
try {
|
|
119
|
+
const searchResponse = yield gmail.users.messages.list(Object.assign(Object.assign({ userId: 'me' }, (searchQuery.trim() ? { q: searchQuery } : {})), { maxResults: maxResults, includeSpamTrash: context.propsValue.include_spam_trash }));
|
|
120
|
+
const messages = searchResponse.data.messages || [];
|
|
121
|
+
if (messages.length === 0) {
|
|
122
|
+
return {
|
|
123
|
+
found: false,
|
|
124
|
+
results: {
|
|
125
|
+
messages: [],
|
|
126
|
+
count: 0,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const detailedMessages = yield Promise.all(messages.map((message) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
131
|
+
try {
|
|
132
|
+
const rawMailResponse = yield gmail.users.messages.get({
|
|
133
|
+
userId: 'me',
|
|
134
|
+
id: message.id,
|
|
135
|
+
format: 'raw',
|
|
136
|
+
});
|
|
137
|
+
const parsedMailResponse = yield (0, data_1.parseStream)(Buffer.from(rawMailResponse.data.raw, 'base64').toString('utf-8'));
|
|
138
|
+
return Object.assign(Object.assign({ id: message.id }, parsedMailResponse), { attachments: yield (0, data_1.convertAttachment)(parsedMailResponse.attachments, context.files) });
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
console.error(`Failed to get details for message ${message.id}:`, error);
|
|
142
|
+
return {
|
|
143
|
+
id: message.id,
|
|
144
|
+
threadId: message.threadId,
|
|
145
|
+
error: 'Failed to retrieve message details',
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
})));
|
|
149
|
+
return {
|
|
150
|
+
found: true,
|
|
151
|
+
results: {
|
|
152
|
+
messages: detailedMessages,
|
|
153
|
+
count: detailedMessages.length,
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
// Enhanced error handling
|
|
159
|
+
if (error.code === 400) {
|
|
160
|
+
if ((_g = error.message) === null || _g === void 0 ? void 0 : _g.includes('Invalid query')) {
|
|
161
|
+
throw new Error(`Invalid search query: "${searchQuery}". Please check your search syntax.`);
|
|
162
|
+
}
|
|
163
|
+
throw new Error(`Invalid search request: ${error.message}`);
|
|
164
|
+
}
|
|
165
|
+
else if (error.code === 403) {
|
|
166
|
+
throw new Error('Insufficient permissions to search emails. Ensure the gmail.readonly scope is granted.');
|
|
167
|
+
}
|
|
168
|
+
else if (error.code === 429) {
|
|
169
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
170
|
+
}
|
|
171
|
+
else if (error.code === 500) {
|
|
172
|
+
throw new Error('Gmail API server error. Please try again later.');
|
|
173
|
+
}
|
|
174
|
+
throw new Error(`Failed to search emails: ${error.message}`);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
//# sourceMappingURL=search-email-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-email-action.js","sourceRoot":"","sources":["../../../src/lib/actions/search-email-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const gmailSendDraftAction: 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=send-draft-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-draft-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/send-draft-action.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB;;;;;EAgD/B,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailSendDraftAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/send-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
|
+
const output_schemas_1 = require("../output-schemas");
|
|
11
|
+
exports.gmailSendDraftAction = (0, pieces_framework_1.createAction)({
|
|
12
|
+
auth: auth_1.gmailAuth,
|
|
13
|
+
name: 'gmail_send_draft',
|
|
14
|
+
displayName: 'Send Draft',
|
|
15
|
+
description: 'Send an existing draft email by its ID.',
|
|
16
|
+
audience: 'ai',
|
|
17
|
+
aiMetadata: {
|
|
18
|
+
description: 'Sends an existing draft email identified by its draft ID, delivering it to its recipients. Use this after creating or editing a draft with Create Draft / Update Draft; obtain the draft ID from List Drafts. Not idempotent: each call sends the draft as a message.',
|
|
19
|
+
idempotent: false,
|
|
20
|
+
},
|
|
21
|
+
props: {
|
|
22
|
+
draft_id: pieces_framework_1.Property.ShortText({
|
|
23
|
+
displayName: 'Draft ID',
|
|
24
|
+
description: 'The ID of the draft to send (obtain from List Drafts).',
|
|
25
|
+
required: true,
|
|
26
|
+
}),
|
|
27
|
+
},
|
|
28
|
+
outputSchema: output_schemas_1.gmailSendDraftActionOutputSchema,
|
|
29
|
+
run(context) {
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
32
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
33
|
+
try {
|
|
34
|
+
const response = yield gmail.users.drafts.send({
|
|
35
|
+
userId: 'me',
|
|
36
|
+
requestBody: {
|
|
37
|
+
id: context.propsValue.draft_id,
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
return response.data;
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error.code === 403) {
|
|
44
|
+
throw new Error('Insufficient permissions to send a draft. Ensure the gmail.send scope is granted.');
|
|
45
|
+
}
|
|
46
|
+
else if (error.code === 404) {
|
|
47
|
+
throw new Error(`Draft not found: "${context.propsValue.draft_id}". Use List Drafts to find a valid draft ID.`);
|
|
48
|
+
}
|
|
49
|
+
else if (error.code === 429) {
|
|
50
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Failed to send draft: ${error.message}`);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=send-draft-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-draft-action.js","sourceRoot":"","sources":["../../../src/lib/actions/send-draft-action.ts"],"names":[],"mappings":";;;;AAAA,yGAAyG;AACzG,qEAAqE;AACrE,gEAAmE;AACnE,kCAAwD;AACxD,6CAAyD;AACzD,sDAAqE;AAExD,QAAA,oBAAoB,GAAG,IAAA,+BAAY,EAAC;IAC/C,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,yCAAyC;IACtD,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,WAAW,EACT,uQAAuQ;QACzQ,UAAU,EAAE,KAAK;KAClB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,wDAAwD;YACrE,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,YAAY,EAAE,iDAAgC;IACxC,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,MAAM,CAAC,IAAI,CAAC;oBAC7C,MAAM,EAAE,IAAI;oBACZ,WAAW,EAAE;wBACX,EAAE,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ;qBAChC;iBACF,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,mFAAmF,CACpF,CAAC;gBACJ,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBAC9B,MAAM,IAAI,KAAK,CACb,qBAAqB,OAAO,CAAC,UAAU,CAAC,QAAQ,8CAA8C,CAC/F,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,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const gmailSendEmailAction: 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
|
+
receiver: import("@agnocon/pieces-framework").ArrayProperty<true>;
|
|
6
|
+
cc: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
7
|
+
bcc: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
8
|
+
subject: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
9
|
+
body_type: import("@agnocon/pieces-framework").StaticDropdownProperty<string, true>;
|
|
10
|
+
body: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
11
|
+
reply_to: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
12
|
+
sender_name: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
13
|
+
from: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
14
|
+
attachments: import("@agnocon/pieces-framework").ArrayProperty<true> | import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
15
|
+
in_reply_to: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
16
|
+
draft: import("@agnocon/pieces-framework").CheckboxProperty<true>;
|
|
17
|
+
}>;
|
|
18
|
+
//# sourceMappingURL=send-email-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-email-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/send-email-action.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;EA4M/B,CAAC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailSendEmailAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/send-email-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 output_schemas_1 = require("../output-schemas");
|
|
13
|
+
exports.gmailSendEmailAction = (0, pieces_framework_1.createAction)({
|
|
14
|
+
auth: auth_1.gmailAuth,
|
|
15
|
+
name: 'send_email',
|
|
16
|
+
description: 'Send an email through a Gmail account',
|
|
17
|
+
audience: 'human',
|
|
18
|
+
aiMetadata: {
|
|
19
|
+
description: 'Composes and sends a new email from the connected Gmail account to one or more recipients, with optional CC/BCC, attachments, and plain-text or HTML body. Use this to originate a fresh message; to answer an existing thread prefer Reply to Email instead, or pass an original Message-ID to send this message into that existing thread. Set the draft flag to save it as a draft instead of sending. Not idempotent: each call sends (or drafts) a separate message.',
|
|
20
|
+
idempotent: false,
|
|
21
|
+
},
|
|
22
|
+
displayName: 'Send Email',
|
|
23
|
+
props: {
|
|
24
|
+
receiver: pieces_framework_1.Property.Array({
|
|
25
|
+
displayName: 'Receiver Email (To)',
|
|
26
|
+
description: undefined,
|
|
27
|
+
required: true,
|
|
28
|
+
}),
|
|
29
|
+
cc: pieces_framework_1.Property.Array({
|
|
30
|
+
displayName: 'CC Email',
|
|
31
|
+
description: undefined,
|
|
32
|
+
required: false,
|
|
33
|
+
}),
|
|
34
|
+
bcc: pieces_framework_1.Property.Array({
|
|
35
|
+
displayName: 'BCC Email',
|
|
36
|
+
description: undefined,
|
|
37
|
+
required: false,
|
|
38
|
+
}),
|
|
39
|
+
subject: pieces_framework_1.Property.ShortText({
|
|
40
|
+
displayName: 'Subject',
|
|
41
|
+
description: undefined,
|
|
42
|
+
required: true,
|
|
43
|
+
}),
|
|
44
|
+
body_type: pieces_framework_1.Property.StaticDropdown({
|
|
45
|
+
displayName: 'Body Type',
|
|
46
|
+
required: true,
|
|
47
|
+
defaultValue: 'plain_text',
|
|
48
|
+
options: {
|
|
49
|
+
disabled: false,
|
|
50
|
+
options: [
|
|
51
|
+
{
|
|
52
|
+
label: 'plain text',
|
|
53
|
+
value: 'plain_text',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
label: 'html',
|
|
57
|
+
value: 'html',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
}),
|
|
62
|
+
body: pieces_framework_1.Property.ShortText({
|
|
63
|
+
displayName: 'Body',
|
|
64
|
+
description: 'Body for the email you want to send',
|
|
65
|
+
required: true,
|
|
66
|
+
}),
|
|
67
|
+
reply_to: pieces_framework_1.Property.Array({
|
|
68
|
+
displayName: 'Reply-To Email',
|
|
69
|
+
description: 'Email address to set as the "Reply-To" header',
|
|
70
|
+
required: false,
|
|
71
|
+
}),
|
|
72
|
+
sender_name: pieces_framework_1.Property.ShortText({
|
|
73
|
+
displayName: 'Sender Name',
|
|
74
|
+
required: false,
|
|
75
|
+
}),
|
|
76
|
+
from: pieces_framework_1.Property.ShortText({
|
|
77
|
+
displayName: 'Sender Email',
|
|
78
|
+
description: "The address must be listed in your GMail account's settings",
|
|
79
|
+
required: false,
|
|
80
|
+
}),
|
|
81
|
+
attachments: pieces_framework_1.Property.Array({
|
|
82
|
+
displayName: 'Attachments',
|
|
83
|
+
required: false,
|
|
84
|
+
properties: {
|
|
85
|
+
file: pieces_framework_1.Property.File({
|
|
86
|
+
displayName: 'File',
|
|
87
|
+
description: 'File to attach to the email you want to send.',
|
|
88
|
+
required: true,
|
|
89
|
+
}),
|
|
90
|
+
name: pieces_framework_1.Property.ShortText({
|
|
91
|
+
displayName: 'Attachment Name',
|
|
92
|
+
description: 'In case you want to change the name of the attachment.',
|
|
93
|
+
required: false,
|
|
94
|
+
}),
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
in_reply_to: pieces_framework_1.Property.ShortText({
|
|
98
|
+
displayName: 'In reply to',
|
|
99
|
+
description: 'Reply to this Message-ID',
|
|
100
|
+
required: false,
|
|
101
|
+
}),
|
|
102
|
+
draft: pieces_framework_1.Property.Checkbox({
|
|
103
|
+
displayName: 'Create draft',
|
|
104
|
+
description: 'Create draft without sending the actual email',
|
|
105
|
+
required: true,
|
|
106
|
+
defaultValue: false,
|
|
107
|
+
}),
|
|
108
|
+
},
|
|
109
|
+
outputSchema: output_schemas_1.sendEmailActionOutputSchema,
|
|
110
|
+
run(context) {
|
|
111
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
112
|
+
var _a, _b, _c, _d, _e;
|
|
113
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
114
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
115
|
+
const subjectBase64 = Buffer.from(context.propsValue['subject']).toString('base64');
|
|
116
|
+
const attachments = context.propsValue.attachments;
|
|
117
|
+
const replyTo = (_a = context.propsValue['reply_to']) === null || _a === void 0 ? void 0 : _a.filter((email) => email !== '');
|
|
118
|
+
const receiver = (_b = context.propsValue['receiver']) === null || _b === void 0 ? void 0 : _b.filter((email) => email !== '');
|
|
119
|
+
const cc = (_c = context.propsValue['cc']) === null || _c === void 0 ? void 0 : _c.filter((email) => email !== '');
|
|
120
|
+
const bcc = (_d = context.propsValue['bcc']) === null || _d === void 0 ? void 0 : _d.filter((email) => email !== '');
|
|
121
|
+
const mailOptions = {
|
|
122
|
+
to: receiver.join(', '), // Join all email addresses with a comma
|
|
123
|
+
cc: cc ? cc.join(', ') : undefined,
|
|
124
|
+
bcc: bcc ? bcc.join(', ') : undefined,
|
|
125
|
+
subject: `=?UTF-8?B?${subjectBase64}?=`,
|
|
126
|
+
replyTo: replyTo ? replyTo.join(', ') : '',
|
|
127
|
+
text: context.propsValue.body_type === 'plain_text'
|
|
128
|
+
? context.propsValue['body']
|
|
129
|
+
: undefined,
|
|
130
|
+
html: context.propsValue.body_type === 'html'
|
|
131
|
+
? context.propsValue['body']
|
|
132
|
+
: undefined,
|
|
133
|
+
attachments: [],
|
|
134
|
+
};
|
|
135
|
+
let threadId = undefined;
|
|
136
|
+
if (context.propsValue.in_reply_to) {
|
|
137
|
+
mailOptions.headers = [
|
|
138
|
+
{
|
|
139
|
+
key: 'References',
|
|
140
|
+
value: context.propsValue.in_reply_to,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
key: 'In-Reply-To',
|
|
144
|
+
value: context.propsValue.in_reply_to,
|
|
145
|
+
},
|
|
146
|
+
];
|
|
147
|
+
const messages = yield gmail.users.messages.list({
|
|
148
|
+
userId: 'me',
|
|
149
|
+
q: `Rfc822msgid:${context.propsValue.in_reply_to}`,
|
|
150
|
+
});
|
|
151
|
+
threadId = (_e = messages.data.messages) === null || _e === void 0 ? void 0 : _e[0].threadId;
|
|
152
|
+
}
|
|
153
|
+
const senderEmail = context.propsValue.from || (yield (0, auth_1.getUserEmail)(context.auth, authClient));
|
|
154
|
+
if (senderEmail) {
|
|
155
|
+
mailOptions.from = context.propsValue.sender_name
|
|
156
|
+
? `${context.propsValue['sender_name']} <${senderEmail}>`
|
|
157
|
+
: senderEmail;
|
|
158
|
+
}
|
|
159
|
+
if (attachments && attachments.length > 0) {
|
|
160
|
+
const attachmentOption = attachments.map(({ file, name }) => {
|
|
161
|
+
const lookupResult = mime_types_1.default.lookup(file.extension ? file.extension : '');
|
|
162
|
+
return {
|
|
163
|
+
filename: name !== null && name !== void 0 ? name : file.filename,
|
|
164
|
+
content: file === null || file === void 0 ? void 0 : file.base64,
|
|
165
|
+
contentType: lookupResult ? lookupResult : undefined,
|
|
166
|
+
encoding: 'base64',
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
mailOptions.attachments = attachmentOption;
|
|
170
|
+
}
|
|
171
|
+
const mail = new mail_composer_1.default(mailOptions).compile();
|
|
172
|
+
mail.keepBcc = true;
|
|
173
|
+
const mailBody = yield mail.build();
|
|
174
|
+
const encodedPayload = Buffer.from(mailBody)
|
|
175
|
+
.toString('base64')
|
|
176
|
+
.replace(/\+/g, '-')
|
|
177
|
+
.replace(/\//g, '_');
|
|
178
|
+
if (context.propsValue.draft) {
|
|
179
|
+
return yield gmail.users.drafts.create({
|
|
180
|
+
userId: 'me',
|
|
181
|
+
requestBody: { message: { threadId, raw: encodedPayload } },
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
return yield gmail.users.messages.send({
|
|
186
|
+
userId: 'me',
|
|
187
|
+
requestBody: {
|
|
188
|
+
threadId,
|
|
189
|
+
raw: encodedPayload,
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
//# sourceMappingURL=send-email-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-email-action.js","sourceRoot":"","sources":["../../../src/lib/actions/send-email-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const gmailStopWatchAction: 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
|
+
//# sourceMappingURL=stop-watch-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-watch-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/stop-watch-action.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,oBAAoB;;;UAgC/B,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailStopWatchAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/stop-watch-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.gmailStopWatchAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.gmailAuth,
|
|
12
|
+
name: 'gmail_stop_watch',
|
|
13
|
+
displayName: 'Stop Watch',
|
|
14
|
+
description: 'Stop push notifications on the mailbox.',
|
|
15
|
+
audience: 'ai',
|
|
16
|
+
aiMetadata: {
|
|
17
|
+
description: 'Stops any active push (Cloud Pub/Sub) notifications for the connected mailbox. Use this to cancel a previously started watch. Takes no parameters. Idempotent: stopping when no watch is active is a no-op.',
|
|
18
|
+
idempotent: true,
|
|
19
|
+
},
|
|
20
|
+
props: {},
|
|
21
|
+
run(context) {
|
|
22
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
24
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
25
|
+
try {
|
|
26
|
+
yield gmail.users.stop({ userId: 'me' });
|
|
27
|
+
return { success: true };
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (error.code === 403) {
|
|
31
|
+
throw new Error('Insufficient permissions to stop the watch. Ensure a read scope (e.g. gmail.readonly) is granted.');
|
|
32
|
+
}
|
|
33
|
+
else if (error.code === 429) {
|
|
34
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
35
|
+
}
|
|
36
|
+
throw new Error(`Failed to stop watch: ${error.message}`);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=stop-watch-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop-watch-action.js","sourceRoot":"","sources":["../../../src/lib/actions/stop-watch-action.ts"],"names":[],"mappings":";;;;AAAA,yGAAyG;AACzG,qEAAqE;AACrE,gEAAyD;AACzD,kCAAwD;AACxD,6CAAyD;AAE5C,QAAA,oBAAoB,GAAG,IAAA,+BAAY,EAAC;IAC/C,IAAI,EAAE,gBAAS;IACf,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,yCAAyC;IACtD,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,WAAW,EACT,6MAA6M;QAC/M,UAAU,EAAE,IAAI;KACjB;IACD,KAAK,EAAE,EAAE;IACH,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,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,IAAI,KAAK,CACb,mGAAmG,CACpG,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,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const gmailUpdateDraftAction: 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
|
+
receiver: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
7
|
+
cc: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
8
|
+
bcc: import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
9
|
+
subject: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
10
|
+
body_type: import("@agnocon/pieces-framework").StaticDropdownProperty<string, true>;
|
|
11
|
+
body: import("@agnocon/pieces-framework").LongTextProperty<true>;
|
|
12
|
+
sender_name: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
13
|
+
from: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
14
|
+
thread_id: import("@agnocon/pieces-framework").ShortTextProperty<false>;
|
|
15
|
+
attachments: import("@agnocon/pieces-framework").ArrayProperty<true> | import("@agnocon/pieces-framework").ArrayProperty<false>;
|
|
16
|
+
}>;
|
|
17
|
+
//# sourceMappingURL=update-draft-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-draft-action.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/update-draft-action.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;EAiMjC,CAAC"}
|