@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,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.gmailUpdateDraftAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/actions/update-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 mime_1 = require("../common/mime");
|
|
11
|
+
const output_schemas_1 = require("../output-schemas");
|
|
12
|
+
const data_1 = require("../common/data");
|
|
13
|
+
exports.gmailUpdateDraftAction = (0, pieces_framework_1.createAction)({
|
|
14
|
+
auth: auth_1.gmailAuth,
|
|
15
|
+
name: 'gmail_update_draft',
|
|
16
|
+
displayName: 'Update Draft',
|
|
17
|
+
description: 'Replace the content of an existing draft email.',
|
|
18
|
+
audience: 'ai',
|
|
19
|
+
aiMetadata: {
|
|
20
|
+
description: 'Updates an existing draft (subject, body, recipients, attachments) by its draft ID. Subject and body are required and replace the previous values; omitted recipients (To/CC/BCC), attachments, and the thread association are preserved from the existing draft rather than cleared. Obtain the draft ID from List Drafts. Not idempotent in effect: each call rewrites the draft with the supplied content.',
|
|
21
|
+
idempotent: false,
|
|
22
|
+
},
|
|
23
|
+
props: {
|
|
24
|
+
draft_id: pieces_framework_1.Property.ShortText({
|
|
25
|
+
displayName: 'Draft ID',
|
|
26
|
+
description: 'The ID of the draft to update (obtain from List Drafts).',
|
|
27
|
+
required: true,
|
|
28
|
+
}),
|
|
29
|
+
receiver: pieces_framework_1.Property.Array({
|
|
30
|
+
displayName: 'Receiver Email (To)',
|
|
31
|
+
required: false,
|
|
32
|
+
}),
|
|
33
|
+
cc: pieces_framework_1.Property.Array({
|
|
34
|
+
displayName: 'CC Email',
|
|
35
|
+
required: false,
|
|
36
|
+
}),
|
|
37
|
+
bcc: pieces_framework_1.Property.Array({
|
|
38
|
+
displayName: 'BCC Email',
|
|
39
|
+
required: false,
|
|
40
|
+
}),
|
|
41
|
+
subject: pieces_framework_1.Property.ShortText({
|
|
42
|
+
displayName: 'Subject',
|
|
43
|
+
required: true,
|
|
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
|
+
{ label: 'plain text', value: 'plain_text' },
|
|
53
|
+
{ label: 'html', value: 'html' },
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
}),
|
|
57
|
+
body: pieces_framework_1.Property.LongText({
|
|
58
|
+
displayName: 'Body',
|
|
59
|
+
description: 'New body for the draft email.',
|
|
60
|
+
required: true,
|
|
61
|
+
}),
|
|
62
|
+
sender_name: pieces_framework_1.Property.ShortText({
|
|
63
|
+
displayName: 'Sender Name',
|
|
64
|
+
required: false,
|
|
65
|
+
}),
|
|
66
|
+
from: pieces_framework_1.Property.ShortText({
|
|
67
|
+
displayName: 'Sender Email',
|
|
68
|
+
description: "The address must be listed in your Gmail account's settings.",
|
|
69
|
+
required: false,
|
|
70
|
+
}),
|
|
71
|
+
thread_id: pieces_framework_1.Property.ShortText({
|
|
72
|
+
displayName: 'Thread ID',
|
|
73
|
+
description: 'Optional thread ID to keep this draft attached to a conversation (obtain from Search Email or Get Thread).',
|
|
74
|
+
required: false,
|
|
75
|
+
}),
|
|
76
|
+
attachments: pieces_framework_1.Property.Array({
|
|
77
|
+
displayName: 'Attachments',
|
|
78
|
+
required: false,
|
|
79
|
+
properties: {
|
|
80
|
+
file: pieces_framework_1.Property.File({
|
|
81
|
+
displayName: 'File',
|
|
82
|
+
description: 'File to attach to the draft.',
|
|
83
|
+
required: true,
|
|
84
|
+
}),
|
|
85
|
+
name: pieces_framework_1.Property.ShortText({
|
|
86
|
+
displayName: 'Attachment Name',
|
|
87
|
+
description: 'Optional name to override the attachment filename.',
|
|
88
|
+
required: false,
|
|
89
|
+
}),
|
|
90
|
+
},
|
|
91
|
+
}),
|
|
92
|
+
},
|
|
93
|
+
outputSchema: output_schemas_1.gmailUpdateDraftActionOutputSchema,
|
|
94
|
+
run(context) {
|
|
95
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
96
|
+
var _a, _b, _c, _d;
|
|
97
|
+
const authClient = yield (0, auth_1.createGoogleClient)(context.auth);
|
|
98
|
+
const gmail = (0, gmail_1.gmail)({ version: 'v1', auth: authClient });
|
|
99
|
+
try {
|
|
100
|
+
let receiver = (_a = context.propsValue.receiver) === null || _a === void 0 ? void 0 : _a.filter((email) => email !== '');
|
|
101
|
+
let cc = (_b = context.propsValue.cc) === null || _b === void 0 ? void 0 : _b.filter((email) => email !== '');
|
|
102
|
+
let bcc = (_c = context.propsValue.bcc) === null || _c === void 0 ? void 0 : _c.filter((email) => email !== '');
|
|
103
|
+
let threadId = context.propsValue.thread_id || undefined;
|
|
104
|
+
const newAttachments = context.propsValue.attachments;
|
|
105
|
+
let preservedAttachments = [];
|
|
106
|
+
// A draft update replaces the whole message, so recover the recipients,
|
|
107
|
+
// attachments, and thread link from the existing draft when the caller
|
|
108
|
+
// omits them — otherwise editing only the body would silently strip the
|
|
109
|
+
// BCC list or attachments and detach the draft from its conversation.
|
|
110
|
+
// BCC is stripped from `metadata`/`full` responses, so recovering it
|
|
111
|
+
// (and the attachment content) requires the raw MIME of the draft.
|
|
112
|
+
if (!(receiver === null || receiver === void 0 ? void 0 : receiver.length) ||
|
|
113
|
+
!(cc === null || cc === void 0 ? void 0 : cc.length) ||
|
|
114
|
+
!(bcc === null || bcc === void 0 ? void 0 : bcc.length) ||
|
|
115
|
+
!threadId ||
|
|
116
|
+
!(newAttachments === null || newAttachments === void 0 ? void 0 : newAttachments.length)) {
|
|
117
|
+
const existing = yield gmail.users.drafts.get({
|
|
118
|
+
userId: 'me',
|
|
119
|
+
id: context.propsValue.draft_id,
|
|
120
|
+
format: 'raw',
|
|
121
|
+
});
|
|
122
|
+
const message = existing.data.message;
|
|
123
|
+
threadId = (_d = threadId !== null && threadId !== void 0 ? threadId : message === null || message === void 0 ? void 0 : message.threadId) !== null && _d !== void 0 ? _d : undefined;
|
|
124
|
+
if (message === null || message === void 0 ? void 0 : message.raw) {
|
|
125
|
+
const parsed = yield (0, data_1.parseStream)(Buffer.from(message.raw, 'base64').toString('utf-8'));
|
|
126
|
+
if (!(receiver === null || receiver === void 0 ? void 0 : receiver.length))
|
|
127
|
+
receiver = addressesOf(parsed.to);
|
|
128
|
+
if (!(cc === null || cc === void 0 ? void 0 : cc.length))
|
|
129
|
+
cc = addressesOf(parsed.cc);
|
|
130
|
+
if (!(bcc === null || bcc === void 0 ? void 0 : bcc.length))
|
|
131
|
+
bcc = addressesOf(parsed.bcc);
|
|
132
|
+
if (!(newAttachments === null || newAttachments === void 0 ? void 0 : newAttachments.length)) {
|
|
133
|
+
preservedAttachments = parsed.attachments.map((attachment) => ({
|
|
134
|
+
filename: attachment.filename,
|
|
135
|
+
content: attachment.content,
|
|
136
|
+
contentType: attachment.contentType,
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const senderEmail = context.propsValue.from ||
|
|
142
|
+
(yield (0, auth_1.getUserEmail)(context.auth, authClient));
|
|
143
|
+
const from = senderEmail
|
|
144
|
+
? context.propsValue.sender_name
|
|
145
|
+
? `${context.propsValue.sender_name} <${senderEmail}>`
|
|
146
|
+
: senderEmail
|
|
147
|
+
: undefined;
|
|
148
|
+
const raw = yield mime_1.GmailMime.buildRawMessage({
|
|
149
|
+
to: receiver,
|
|
150
|
+
cc,
|
|
151
|
+
bcc,
|
|
152
|
+
from,
|
|
153
|
+
subject: context.propsValue.subject,
|
|
154
|
+
bodyType: context.propsValue.body_type,
|
|
155
|
+
body: context.propsValue.body,
|
|
156
|
+
attachments: (newAttachments === null || newAttachments === void 0 ? void 0 : newAttachments.length)
|
|
157
|
+
? newAttachments
|
|
158
|
+
: preservedAttachments,
|
|
159
|
+
});
|
|
160
|
+
const response = yield gmail.users.drafts.update({
|
|
161
|
+
userId: 'me',
|
|
162
|
+
id: context.propsValue.draft_id,
|
|
163
|
+
requestBody: {
|
|
164
|
+
message: {
|
|
165
|
+
raw,
|
|
166
|
+
threadId,
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
return response.data;
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
if (error.code === 403) {
|
|
174
|
+
throw new Error('Insufficient permissions to update a draft. Ensure the gmail.compose scope is granted.');
|
|
175
|
+
}
|
|
176
|
+
else if (error.code === 404) {
|
|
177
|
+
throw new Error(`Draft not found: "${context.propsValue.draft_id}". Use List Drafts to find a valid draft ID.`);
|
|
178
|
+
}
|
|
179
|
+
else if (error.code === 429) {
|
|
180
|
+
throw new Error('Gmail API rate limit exceeded. Please try again later.');
|
|
181
|
+
}
|
|
182
|
+
throw new Error(`Failed to update draft: ${error.message}`);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
function addressesOf(address) {
|
|
188
|
+
return (Array.isArray(address) ? address : address ? [address] : [])
|
|
189
|
+
.flatMap((addressObject) => addressObject.value)
|
|
190
|
+
.map((emailAddress) => emailAddress.address)
|
|
191
|
+
.filter((emailAddress) => !!emailAddress);
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=update-draft-action.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-draft-action.js","sourceRoot":"","sources":["../../../src/lib/actions/update-draft-action.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AppConnectionValueForAuthProperty } from '@agnocon/pieces-framework';
|
|
2
|
+
import { OAuth2Client } from 'google-auth-library';
|
|
3
|
+
export declare const gmailScopes: string[];
|
|
4
|
+
export declare const gmailAuth: (import("@agnocon/pieces-framework").OAuth2Property<import("@agnocon/pieces-framework").OAuth2Props> | import("@agnocon/pieces-framework").CustomAuthProperty<{
|
|
5
|
+
serviceAccount: import("@agnocon/pieces-framework").LongTextProperty<true>;
|
|
6
|
+
userEmail: import("@agnocon/pieces-framework").ShortTextProperty<true>;
|
|
7
|
+
}>)[];
|
|
8
|
+
export type GmailAuthValue = AppConnectionValueForAuthProperty<typeof gmailAuth>;
|
|
9
|
+
export declare function createGoogleClient(auth: GmailAuthValue): Promise<OAuth2Client>;
|
|
10
|
+
export declare const getAccessToken: (auth: GmailAuthValue) => Promise<string>;
|
|
11
|
+
export declare function getUserEmail(auth: GmailAuthValue, authClient: OAuth2Client): Promise<string | undefined>;
|
|
12
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,iCAAiC,EAGlC,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAO,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAQxD,eAAO,MAAM,WAAW,UAA0C,CAAC;AAEnE,eAAO,MAAM,SAAS;;;KA0CrB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,iCAAiC,CAC5D,OAAO,SAAS,CACjB,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,YAAY,CAAC,CAoBvB;AAED,eAAO,MAAM,cAAc,SAAgB,cAAc,KAAG,OAAO,CAAC,MAAM,CAazE,CAAC;AAEF,wBAAsB,YAAY,CAChC,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,YAAY,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7B"}
|
package/dist/lib/auth.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAccessToken = exports.gmailAuth = exports.gmailScopes = void 0;
|
|
4
|
+
exports.createGoogleClient = createGoogleClient;
|
|
5
|
+
exports.getUserEmail = getUserEmail;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
// Vendored from Activepieces packages/pieces/community/gmail/src/lib/auth.ts (MIT).
|
|
8
|
+
// Generated by packages/scripts/vendor-ap.mjs - do not edit by hand.
|
|
9
|
+
const pieces_framework_1 = require("@agnocon/pieces-framework");
|
|
10
|
+
const pieces_framework_2 = require("@agnocon/pieces-framework");
|
|
11
|
+
const oauth2_1 = require("@googleapis/oauth2");
|
|
12
|
+
const google_auth_library_1 = require("google-auth-library");
|
|
13
|
+
const gmailServiceAccountScopes = [
|
|
14
|
+
'https://www.googleapis.com/auth/gmail.send',
|
|
15
|
+
'https://www.googleapis.com/auth/gmail.readonly',
|
|
16
|
+
'https://www.googleapis.com/auth/gmail.compose',
|
|
17
|
+
];
|
|
18
|
+
exports.gmailScopes = [...gmailServiceAccountScopes, 'email'];
|
|
19
|
+
exports.gmailAuth = [
|
|
20
|
+
pieces_framework_1.PieceAuth.OAuth2({
|
|
21
|
+
description: '',
|
|
22
|
+
authUrl: 'https://accounts.google.com/o/oauth2/auth',
|
|
23
|
+
tokenUrl: 'https://oauth2.googleapis.com/token',
|
|
24
|
+
required: true,
|
|
25
|
+
scope: exports.gmailScopes,
|
|
26
|
+
}),
|
|
27
|
+
pieces_framework_1.PieceAuth.CustomAuth({
|
|
28
|
+
displayName: 'Service Account (Advanced)',
|
|
29
|
+
description: 'Authenticate via service account from https://console.cloud.google.com/ > IAM & Admin > Service Accounts > Create Service Account > Keys > Add key. <br> <br> You can optionally use domain-wide delegation (https://support.google.com/a/answer/162106?hl=en#zippy=%2Cset-up-domain-wide-delegation-for-a-client) to access Gmail without adding the service account to each mailbox. <br> <br> **Note:** A user email with domain-wide delegation is required for Gmail service account access.',
|
|
30
|
+
required: true,
|
|
31
|
+
props: {
|
|
32
|
+
serviceAccount: pieces_framework_1.Property.LongText({
|
|
33
|
+
displayName: 'Service Account JSON Key',
|
|
34
|
+
required: true,
|
|
35
|
+
}),
|
|
36
|
+
userEmail: pieces_framework_1.Property.ShortText({
|
|
37
|
+
displayName: 'User Email',
|
|
38
|
+
required: true,
|
|
39
|
+
description: 'Email address of the user to impersonate. Required for Gmail service account access via domain-wide delegation.',
|
|
40
|
+
}),
|
|
41
|
+
},
|
|
42
|
+
validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
43
|
+
try {
|
|
44
|
+
yield (0, exports.getAccessToken)({
|
|
45
|
+
type: pieces_framework_2.AppConnectionType.CUSTOM_AUTH,
|
|
46
|
+
props: Object.assign({}, auth),
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (e) {
|
|
50
|
+
return {
|
|
51
|
+
valid: false,
|
|
52
|
+
error: e.message,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
valid: true,
|
|
57
|
+
};
|
|
58
|
+
}),
|
|
59
|
+
}),
|
|
60
|
+
];
|
|
61
|
+
function createGoogleClient(auth) {
|
|
62
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
var _a;
|
|
64
|
+
if (auth.type === pieces_framework_2.AppConnectionType.CUSTOM_AUTH) {
|
|
65
|
+
let serviceAccount;
|
|
66
|
+
try {
|
|
67
|
+
serviceAccount = JSON.parse(auth.props.serviceAccount);
|
|
68
|
+
}
|
|
69
|
+
catch (_b) {
|
|
70
|
+
throw new Error('Invalid Service Account JSON Key. Please provide a valid JSON string.');
|
|
71
|
+
}
|
|
72
|
+
return new google_auth_library_1.JWT({
|
|
73
|
+
email: serviceAccount.client_email,
|
|
74
|
+
key: serviceAccount.private_key,
|
|
75
|
+
scopes: gmailServiceAccountScopes,
|
|
76
|
+
subject: ((_a = auth.props.userEmail) === null || _a === void 0 ? void 0 : _a.trim()) || undefined,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
const authClient = new google_auth_library_1.OAuth2Client();
|
|
80
|
+
authClient.setCredentials(auth);
|
|
81
|
+
return authClient;
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const getAccessToken = (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
85
|
+
if (auth.type === pieces_framework_2.AppConnectionType.CUSTOM_AUTH) {
|
|
86
|
+
const googleClient = yield createGoogleClient(auth);
|
|
87
|
+
const response = yield googleClient.getAccessToken();
|
|
88
|
+
if (response.token) {
|
|
89
|
+
return response.token;
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw new Error('Could not retrieve access token from service account json');
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return auth.access_token;
|
|
96
|
+
});
|
|
97
|
+
exports.getAccessToken = getAccessToken;
|
|
98
|
+
function getUserEmail(auth, authClient) {
|
|
99
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
if (auth.type === pieces_framework_2.AppConnectionType.CUSTOM_AUTH) {
|
|
102
|
+
return (_a = auth.props.userEmail) === null || _a === void 0 ? void 0 : _a.trim();
|
|
103
|
+
}
|
|
104
|
+
return ((_b = (yield (0, oauth2_1.oauth2)({ version: 'v2', auth: authClient }).userinfo.get())
|
|
105
|
+
.data.email) !== null && _b !== void 0 ? _b : undefined);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { FilesService } from '@agnocon/pieces-framework';
|
|
2
|
+
import { GmailLabel, GmailThread, GmailMessageFormat, GmailMessageResponse as GmailMessageList } from './models';
|
|
3
|
+
import { Attachment, ParsedMail } from 'mailparser';
|
|
4
|
+
import { GmailAuthValue } from '../auth';
|
|
5
|
+
interface SearchMailProps {
|
|
6
|
+
access_token: string;
|
|
7
|
+
from: string;
|
|
8
|
+
to: string;
|
|
9
|
+
subject?: string;
|
|
10
|
+
label: GmailLabel;
|
|
11
|
+
category: string;
|
|
12
|
+
after?: number;
|
|
13
|
+
before?: number;
|
|
14
|
+
max_results?: number;
|
|
15
|
+
page_token?: string;
|
|
16
|
+
}
|
|
17
|
+
interface GetMailProps {
|
|
18
|
+
access_token: string;
|
|
19
|
+
message_id?: string;
|
|
20
|
+
thread_id?: string;
|
|
21
|
+
format: GmailMessageFormat;
|
|
22
|
+
}
|
|
23
|
+
export declare const GmailRequests: {
|
|
24
|
+
getMail: ({ access_token, format, message_id }: GetMailProps) => Promise<{
|
|
25
|
+
id: string;
|
|
26
|
+
threadId: string;
|
|
27
|
+
labelIds: [string];
|
|
28
|
+
snippet: string;
|
|
29
|
+
historyId: string;
|
|
30
|
+
internalDate: number;
|
|
31
|
+
payload: {
|
|
32
|
+
partId: string;
|
|
33
|
+
mimeType: string;
|
|
34
|
+
filename: string;
|
|
35
|
+
headers: {
|
|
36
|
+
name: string;
|
|
37
|
+
value: string;
|
|
38
|
+
}[];
|
|
39
|
+
body: {
|
|
40
|
+
data: any;
|
|
41
|
+
size: number;
|
|
42
|
+
};
|
|
43
|
+
parts: {
|
|
44
|
+
parts: any[];
|
|
45
|
+
partId: string;
|
|
46
|
+
mimeType: string;
|
|
47
|
+
filename: string;
|
|
48
|
+
headers: {
|
|
49
|
+
name: string;
|
|
50
|
+
value: string;
|
|
51
|
+
}[];
|
|
52
|
+
body: {
|
|
53
|
+
size: number;
|
|
54
|
+
data: string;
|
|
55
|
+
};
|
|
56
|
+
}[];
|
|
57
|
+
};
|
|
58
|
+
sizeEstimate: number;
|
|
59
|
+
raw: string;
|
|
60
|
+
subject: string;
|
|
61
|
+
body_html: string;
|
|
62
|
+
body_plain: string;
|
|
63
|
+
}>;
|
|
64
|
+
getThread: ({ access_token, format, thread_id }: GetMailProps) => Promise<GmailThread>;
|
|
65
|
+
getLabels: (authentication: GmailAuthValue) => Promise<import("@agnocon/pieces-common").HttpResponse<{
|
|
66
|
+
labels: GmailLabel[];
|
|
67
|
+
}>>;
|
|
68
|
+
searchMail: ({ access_token, max_results, page_token: pageToken, ...mail }: SearchMailProps) => Promise<GmailMessageList | {
|
|
69
|
+
nextPageToken?: string | undefined;
|
|
70
|
+
messages: {
|
|
71
|
+
message: {
|
|
72
|
+
id: string;
|
|
73
|
+
threadId: string;
|
|
74
|
+
labelIds: [string];
|
|
75
|
+
snippet: string;
|
|
76
|
+
historyId: string;
|
|
77
|
+
internalDate: number;
|
|
78
|
+
payload: {
|
|
79
|
+
partId: string;
|
|
80
|
+
mimeType: string;
|
|
81
|
+
filename: string;
|
|
82
|
+
headers: {
|
|
83
|
+
name: string;
|
|
84
|
+
value: string;
|
|
85
|
+
}[];
|
|
86
|
+
body: {
|
|
87
|
+
data: any;
|
|
88
|
+
size: number;
|
|
89
|
+
};
|
|
90
|
+
parts: {
|
|
91
|
+
parts: any[];
|
|
92
|
+
partId: string;
|
|
93
|
+
mimeType: string;
|
|
94
|
+
filename: string;
|
|
95
|
+
headers: {
|
|
96
|
+
name: string;
|
|
97
|
+
value: string;
|
|
98
|
+
}[];
|
|
99
|
+
body: {
|
|
100
|
+
size: number;
|
|
101
|
+
data: string;
|
|
102
|
+
};
|
|
103
|
+
}[];
|
|
104
|
+
};
|
|
105
|
+
sizeEstimate: number;
|
|
106
|
+
raw: string;
|
|
107
|
+
subject: string;
|
|
108
|
+
body_html: string;
|
|
109
|
+
body_plain: string;
|
|
110
|
+
};
|
|
111
|
+
thread: GmailThread;
|
|
112
|
+
}[];
|
|
113
|
+
resultSizeEstimate: number;
|
|
114
|
+
}>;
|
|
115
|
+
getRecentMessages: (authentication: GmailAuthValue, maxResults?: number) => Promise<import("@agnocon/pieces-common").HttpResponse<GmailMessageList>>;
|
|
116
|
+
getRecentThreads: (authentication: GmailAuthValue, maxResults?: number) => Promise<import("@agnocon/pieces-common").HttpResponse<{
|
|
117
|
+
threads: {
|
|
118
|
+
id: string;
|
|
119
|
+
snippet?: string;
|
|
120
|
+
}[];
|
|
121
|
+
}>>;
|
|
122
|
+
};
|
|
123
|
+
export declare function parseStream(stream: any): Promise<ParsedMail>;
|
|
124
|
+
export declare function convertAttachment(attachments: Attachment[], files: FilesService): Promise<{
|
|
125
|
+
fileName: string;
|
|
126
|
+
mimeType: string;
|
|
127
|
+
size: number;
|
|
128
|
+
data: string;
|
|
129
|
+
}[]>;
|
|
130
|
+
export declare function getFirstFiveOrAll(array: unknown[]): unknown[];
|
|
131
|
+
export {};
|
|
132
|
+
//# sourceMappingURL=data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/lib/common/data.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,UAAU,EAEV,WAAW,EACX,kBAAkB,EAClB,oBAAoB,IAAI,gBAAgB,EACzC,MAAM,UAAU,CAAC;AAMlB,OAAO,EAAE,UAAU,EAAE,UAAU,EAAgB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,cAAc,EAAkB,MAAM,SAAS,CAAC;AAEzD,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED,eAAO,MAAM,aAAa;oDAC8B,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qDAwDX,YAAY;gCAejC,cAAc;gBACA,UAAU,EAAE;;gFAczD,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA4DA,cAAc;uCAgBS,cAAc;iBAE1C;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE;;CAchD,CAAC;AAMF,wBAAsB,WAAW,CAAC,MAAM,EAAE,GAAG,uBAU5C;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,UAAU,EAAE,EACzB,KAAK,EAAE,YAAY;;;;;KAwBpB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,aAMjD"}
|