@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.
Files changed (188) hide show
  1. package/LICENSE.MIT-AP +24 -0
  2. package/README.md +8 -2
  3. package/dist/index.d.ts +6 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +111 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/actions/ai-get-message-action.d.ts +7 -0
  8. package/dist/lib/actions/ai-get-message-action.d.ts.map +1 -0
  9. package/dist/lib/actions/ai-get-message-action.js +24 -0
  10. package/dist/lib/actions/ai-get-message-action.js.map +1 -0
  11. package/dist/lib/actions/ai-reply-to-thread-action.d.ts +16 -0
  12. package/dist/lib/actions/ai-reply-to-thread-action.d.ts.map +1 -0
  13. package/dist/lib/actions/ai-reply-to-thread-action.js +24 -0
  14. package/dist/lib/actions/ai-reply-to-thread-action.js.map +1 -0
  15. package/dist/lib/actions/ai-search-email-action.d.ts +21 -0
  16. package/dist/lib/actions/ai-search-email-action.d.ts.map +1 -0
  17. package/dist/lib/actions/ai-search-email-action.js +24 -0
  18. package/dist/lib/actions/ai-search-email-action.js.map +1 -0
  19. package/dist/lib/actions/ai-send-email-action.d.ts +18 -0
  20. package/dist/lib/actions/ai-send-email-action.d.ts.map +1 -0
  21. package/dist/lib/actions/ai-send-email-action.js +24 -0
  22. package/dist/lib/actions/ai-send-email-action.js.map +1 -0
  23. package/dist/lib/actions/create-draft-action.d.ts +16 -0
  24. package/dist/lib/actions/create-draft-action.d.ts.map +1 -0
  25. package/dist/lib/actions/create-draft-action.js +137 -0
  26. package/dist/lib/actions/create-draft-action.js.map +1 -0
  27. package/dist/lib/actions/create-draft-reply-action.d.ts +17 -0
  28. package/dist/lib/actions/create-draft-reply-action.d.ts.map +1 -0
  29. package/dist/lib/actions/create-draft-reply-action.js +269 -0
  30. package/dist/lib/actions/create-draft-reply-action.js.map +1 -0
  31. package/dist/lib/actions/delete-draft-action.d.ts +7 -0
  32. package/dist/lib/actions/delete-draft-action.d.ts.map +1 -0
  33. package/dist/lib/actions/delete-draft-action.js +62 -0
  34. package/dist/lib/actions/delete-draft-action.js.map +1 -0
  35. package/dist/lib/actions/forward-message-action.d.ts +12 -0
  36. package/dist/lib/actions/forward-message-action.d.ts.map +1 -0
  37. package/dist/lib/actions/forward-message-action.js +139 -0
  38. package/dist/lib/actions/forward-message-action.js.map +1 -0
  39. package/dist/lib/actions/get-attachment-action.d.ts +9 -0
  40. package/dist/lib/actions/get-attachment-action.d.ts.map +1 -0
  41. package/dist/lib/actions/get-attachment-action.js +80 -0
  42. package/dist/lib/actions/get-attachment-action.js.map +1 -0
  43. package/dist/lib/actions/get-draft-action.d.ts +7 -0
  44. package/dist/lib/actions/get-draft-action.d.ts.map +1 -0
  45. package/dist/lib/actions/get-draft-action.js +56 -0
  46. package/dist/lib/actions/get-draft-action.js.map +1 -0
  47. package/dist/lib/actions/get-label-action.d.ts +7 -0
  48. package/dist/lib/actions/get-label-action.d.ts.map +1 -0
  49. package/dist/lib/actions/get-label-action.js +55 -0
  50. package/dist/lib/actions/get-label-action.js.map +1 -0
  51. package/dist/lib/actions/get-mail-action.d.ts +7 -0
  52. package/dist/lib/actions/get-mail-action.d.ts.map +1 -0
  53. package/dist/lib/actions/get-mail-action.js +44 -0
  54. package/dist/lib/actions/get-mail-action.js.map +1 -0
  55. package/dist/lib/actions/get-profile-action.d.ts +5 -0
  56. package/dist/lib/actions/get-profile-action.d.ts.map +1 -0
  57. package/dist/lib/actions/get-profile-action.js +43 -0
  58. package/dist/lib/actions/get-profile-action.js.map +1 -0
  59. package/dist/lib/actions/get-thread-action.d.ts +9 -0
  60. package/dist/lib/actions/get-thread-action.d.ts.map +1 -0
  61. package/dist/lib/actions/get-thread-action.js +53 -0
  62. package/dist/lib/actions/get-thread-action.js.map +1 -0
  63. package/dist/lib/actions/list-drafts-action.d.ts +8 -0
  64. package/dist/lib/actions/list-drafts-action.d.ts.map +1 -0
  65. package/dist/lib/actions/list-drafts-action.js +62 -0
  66. package/dist/lib/actions/list-drafts-action.js.map +1 -0
  67. package/dist/lib/actions/list-history-action.d.ts +9 -0
  68. package/dist/lib/actions/list-history-action.d.ts.map +1 -0
  69. package/dist/lib/actions/list-history-action.js +74 -0
  70. package/dist/lib/actions/list-history-action.js.map +1 -0
  71. package/dist/lib/actions/list-labels-action.d.ts +5 -0
  72. package/dist/lib/actions/list-labels-action.d.ts.map +1 -0
  73. package/dist/lib/actions/list-labels-action.js +47 -0
  74. package/dist/lib/actions/list-labels-action.js.map +1 -0
  75. package/dist/lib/actions/list-threads-action.d.ts +10 -0
  76. package/dist/lib/actions/list-threads-action.d.ts.map +1 -0
  77. package/dist/lib/actions/list-threads-action.js +74 -0
  78. package/dist/lib/actions/list-threads-action.js.map +1 -0
  79. package/dist/lib/actions/reply-to-email-action.d.ts +16 -0
  80. package/dist/lib/actions/reply-to-email-action.d.ts.map +1 -0
  81. package/dist/lib/actions/reply-to-email-action.js +202 -0
  82. package/dist/lib/actions/reply-to-email-action.js.map +1 -0
  83. package/dist/lib/actions/request-approval-in-email.d.ts +15 -0
  84. package/dist/lib/actions/request-approval-in-email.d.ts.map +1 -0
  85. package/dist/lib/actions/request-approval-in-email.js +174 -0
  86. package/dist/lib/actions/request-approval-in-email.js.map +1 -0
  87. package/dist/lib/actions/search-email-action.d.ts +22 -0
  88. package/dist/lib/actions/search-email-action.d.ts.map +1 -0
  89. package/dist/lib/actions/search-email-action.js +179 -0
  90. package/dist/lib/actions/search-email-action.js.map +1 -0
  91. package/dist/lib/actions/send-draft-action.d.ts +7 -0
  92. package/dist/lib/actions/send-draft-action.d.ts.map +1 -0
  93. package/dist/lib/actions/send-draft-action.js +57 -0
  94. package/dist/lib/actions/send-draft-action.js.map +1 -0
  95. package/dist/lib/actions/send-email-action.d.ts +18 -0
  96. package/dist/lib/actions/send-email-action.d.ts.map +1 -0
  97. package/dist/lib/actions/send-email-action.js +196 -0
  98. package/dist/lib/actions/send-email-action.js.map +1 -0
  99. package/dist/lib/actions/stop-watch-action.d.ts +5 -0
  100. package/dist/lib/actions/stop-watch-action.d.ts.map +1 -0
  101. package/dist/lib/actions/stop-watch-action.js +41 -0
  102. package/dist/lib/actions/stop-watch-action.js.map +1 -0
  103. package/dist/lib/actions/update-draft-action.d.ts +17 -0
  104. package/dist/lib/actions/update-draft-action.d.ts.map +1 -0
  105. package/dist/lib/actions/update-draft-action.js +193 -0
  106. package/dist/lib/actions/update-draft-action.js.map +1 -0
  107. package/dist/lib/auth.d.ts +12 -0
  108. package/dist/lib/auth.d.ts.map +1 -0
  109. package/dist/lib/auth.js +108 -0
  110. package/dist/lib/auth.js.map +1 -0
  111. package/dist/lib/common/data.d.ts +132 -0
  112. package/dist/lib/common/data.d.ts.map +1 -0
  113. package/dist/lib/common/data.js +209 -0
  114. package/dist/lib/common/data.js.map +1 -0
  115. package/dist/lib/common/mime.d.ts +29 -0
  116. package/dist/lib/common/mime.d.ts.map +1 -0
  117. package/dist/lib/common/mime.js +59 -0
  118. package/dist/lib/common/mime.js.map +1 -0
  119. package/dist/lib/common/models.d.ts +86 -0
  120. package/dist/lib/common/models.d.ts.map +1 -0
  121. package/dist/lib/common/models.js +26 -0
  122. package/dist/lib/common/models.js.map +1 -0
  123. package/dist/lib/common/props.d.ts +28 -0
  124. package/dist/lib/common/props.d.ts.map +1 -0
  125. package/dist/lib/common/props.js +231 -0
  126. package/dist/lib/common/props.js.map +1 -0
  127. package/dist/lib/output-schemas.d.ts +29 -0
  128. package/dist/lib/output-schemas.d.ts.map +1 -0
  129. package/dist/lib/output-schemas.js +1029 -0
  130. package/dist/lib/output-schemas.js.map +1 -0
  131. package/dist/lib/triggers/new-attachment.d.ts +144 -0
  132. package/dist/lib/triggers/new-attachment.d.ts.map +1 -0
  133. package/dist/lib/triggers/new-attachment.js +150 -0
  134. package/dist/lib/triggers/new-attachment.js.map +1 -0
  135. package/dist/lib/triggers/new-conversation.d.ts +59 -0
  136. package/dist/lib/triggers/new-conversation.d.ts.map +1 -0
  137. package/dist/lib/triggers/new-conversation.js +308 -0
  138. package/dist/lib/triggers/new-conversation.js.map +1 -0
  139. package/dist/lib/triggers/new-email.d.ts +52 -0
  140. package/dist/lib/triggers/new-email.d.ts.map +1 -0
  141. package/dist/lib/triggers/new-email.js +135 -0
  142. package/dist/lib/triggers/new-email.js.map +1 -0
  143. package/dist/lib/triggers/new-label.d.ts +15 -0
  144. package/dist/lib/triggers/new-label.d.ts.map +1 -0
  145. package/dist/lib/triggers/new-label.js +82 -0
  146. package/dist/lib/triggers/new-label.js.map +1 -0
  147. package/dist/lib/triggers/new-labeled-email.d.ts +35 -0
  148. package/dist/lib/triggers/new-labeled-email.d.ts.map +1 -0
  149. package/dist/lib/triggers/new-labeled-email.js +147 -0
  150. package/dist/lib/triggers/new-labeled-email.js.map +1 -0
  151. package/package.json +54 -4
  152. package/src/index.ts +107 -0
  153. package/src/lib/actions/ai-get-message-action.ts +20 -0
  154. package/src/lib/actions/ai-reply-to-thread-action.ts +20 -0
  155. package/src/lib/actions/ai-search-email-action.ts +21 -0
  156. package/src/lib/actions/ai-send-email-action.ts +20 -0
  157. package/src/lib/actions/create-draft-action.ts +148 -0
  158. package/src/lib/actions/create-draft-reply-action.ts +314 -0
  159. package/src/lib/actions/delete-draft-action.ts +57 -0
  160. package/src/lib/actions/forward-message-action.ts +159 -0
  161. package/src/lib/actions/get-attachment-action.ts +83 -0
  162. package/src/lib/actions/get-draft-action.ts +53 -0
  163. package/src/lib/actions/get-label-action.ts +53 -0
  164. package/src/lib/actions/get-mail-action.ts +52 -0
  165. package/src/lib/actions/get-profile-action.ts +39 -0
  166. package/src/lib/actions/get-thread-action.ts +47 -0
  167. package/src/lib/actions/list-drafts-action.ts +72 -0
  168. package/src/lib/actions/list-history-action.ts +83 -0
  169. package/src/lib/actions/list-labels-action.ts +43 -0
  170. package/src/lib/actions/list-threads-action.ts +89 -0
  171. package/src/lib/actions/reply-to-email-action.ts +228 -0
  172. package/src/lib/actions/request-approval-in-email.ts +197 -0
  173. package/src/lib/actions/search-email-action.ts +219 -0
  174. package/src/lib/actions/send-draft-action.ts +54 -0
  175. package/src/lib/actions/send-email-action.ts +213 -0
  176. package/src/lib/actions/stop-watch-action.ts +37 -0
  177. package/src/lib/actions/update-draft-action.ts +211 -0
  178. package/src/lib/auth.ts +116 -0
  179. package/src/lib/common/data.ts +268 -0
  180. package/src/lib/common/mime.ts +82 -0
  181. package/src/lib/common/models.ts +91 -0
  182. package/src/lib/common/props.ts +262 -0
  183. package/src/lib/output-schemas.ts +1061 -0
  184. package/src/lib/triggers/new-attachment.ts +203 -0
  185. package/src/lib/triggers/new-conversation.ts +413 -0
  186. package/src/lib/triggers/new-email.ts +173 -0
  187. package/src/lib/triggers/new-label.ts +83 -0
  188. 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"}
@@ -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"}