@activepieces/piece-zoho-mail 0.0.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/README.md +7 -0
- package/package.json +38 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +46 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/get-email-details.d.ts +5 -0
- package/src/lib/actions/get-email-details.js +37 -0
- package/src/lib/actions/get-email-details.js.map +1 -0
- package/src/lib/actions/mark-email-as-read.d.ts +5 -0
- package/src/lib/actions/mark-email-as-read.js +40 -0
- package/src/lib/actions/mark-email-as-read.js.map +1 -0
- package/src/lib/actions/mark-email-as-unread.d.ts +5 -0
- package/src/lib/actions/mark-email-as-unread.js +40 -0
- package/src/lib/actions/mark-email-as-unread.js.map +1 -0
- package/src/lib/actions/move-email.d.ts +6 -0
- package/src/lib/actions/move-email.js +48 -0
- package/src/lib/actions/move-email.js.map +1 -0
- package/src/lib/actions/send-email.d.ts +13 -0
- package/src/lib/actions/send-email.js +114 -0
- package/src/lib/actions/send-email.js.map +1 -0
- package/src/lib/common/auth.d.ts +1 -0
- package/src/lib/common/auth.js +52 -0
- package/src/lib/common/auth.js.map +1 -0
- package/src/lib/common/index.d.ts +19 -0
- package/src/lib/common/index.js +74 -0
- package/src/lib/common/index.js.map +1 -0
- package/src/lib/common/props.d.ts +10 -0
- package/src/lib/common/props.js +164 -0
- package/src/lib/common/props.js.map +1 -0
- package/src/lib/triggers/new-email-received-trigger.d.ts +11 -0
- package/src/lib/triggers/new-email-received-trigger.js +124 -0
- package/src/lib/triggers/new-email-received-trigger.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@activepieces/piece-zoho-mail",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"@anthropic-ai/sdk": "0.39.0",
|
|
6
|
+
"@sinclair/typebox": "0.34.11",
|
|
7
|
+
"axios": "1.8.3",
|
|
8
|
+
"axios-retry": "4.4.1",
|
|
9
|
+
"deepmerge-ts": "7.1.0",
|
|
10
|
+
"fast-glob": "3.3.3",
|
|
11
|
+
"form-data": "4.0.0",
|
|
12
|
+
"mailparser": "3.6.7",
|
|
13
|
+
"mime-types": "2.1.35",
|
|
14
|
+
"nanoid": "3.3.8",
|
|
15
|
+
"openai": "4.67.1",
|
|
16
|
+
"replicate": "0.34.1",
|
|
17
|
+
"semver": "7.6.0",
|
|
18
|
+
"zod": "3.25.48",
|
|
19
|
+
"@activepieces/pieces-common": "0.4.8",
|
|
20
|
+
"@activepieces/pieces-framework": "0.14.0",
|
|
21
|
+
"@activepieces/shared": "0.12.0",
|
|
22
|
+
"tslib": "1.14.1"
|
|
23
|
+
},
|
|
24
|
+
"overrides": {
|
|
25
|
+
"@tryfabric/martian": {
|
|
26
|
+
"@notionhq/client": "$@notionhq/client"
|
|
27
|
+
},
|
|
28
|
+
"vite": {
|
|
29
|
+
"rollup": "npm:@rollup/wasm-node"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"resolutions": {
|
|
33
|
+
"rollup": "npm:@rollup/wasm-node"
|
|
34
|
+
},
|
|
35
|
+
"main": "./src/index.js",
|
|
36
|
+
"type": "commonjs",
|
|
37
|
+
"types": "./src/index.d.ts"
|
|
38
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const zohoMail: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
|
package/src/index.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zohoMail = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const shared_1 = require("@activepieces/shared");
|
|
8
|
+
const get_email_details_1 = require("./lib/actions/get-email-details");
|
|
9
|
+
const mark_email_as_read_1 = require("./lib/actions/mark-email-as-read");
|
|
10
|
+
const mark_email_as_unread_1 = require("./lib/actions/mark-email-as-unread");
|
|
11
|
+
const move_email_1 = require("./lib/actions/move-email");
|
|
12
|
+
const send_email_1 = require("./lib/actions/send-email");
|
|
13
|
+
const auth_1 = require("./lib/common/auth");
|
|
14
|
+
const new_email_received_trigger_1 = require("./lib/triggers/new-email-received-trigger");
|
|
15
|
+
exports.zohoMail = (0, pieces_framework_1.createPiece)({
|
|
16
|
+
displayName: 'Zoho Mail',
|
|
17
|
+
logoUrl: 'https://cdn.activepieces.com/pieces/zoho-mail.png',
|
|
18
|
+
auth: auth_1.zohoMailAuth,
|
|
19
|
+
authors: ['onyedikachi-david', 'kishanprmr'],
|
|
20
|
+
description: 'Zoho Mail is a powerful email service that allows you to manage your email, contacts, and calendars efficiently.',
|
|
21
|
+
minimumSupportedRelease: '0.36.1',
|
|
22
|
+
categories: [shared_1.PieceCategory.COMMUNICATION],
|
|
23
|
+
actions: [
|
|
24
|
+
get_email_details_1.getEmailDetailsAction,
|
|
25
|
+
mark_email_as_read_1.markEmailAsReadAction,
|
|
26
|
+
mark_email_as_unread_1.markEmailAsUnreadAction,
|
|
27
|
+
move_email_1.moveEmailAction,
|
|
28
|
+
send_email_1.sendEmailAction,
|
|
29
|
+
(0, pieces_common_1.createCustomApiCallAction)({
|
|
30
|
+
auth: auth_1.zohoMailAuth,
|
|
31
|
+
baseUrl: (auth) => {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
const authValue = auth;
|
|
34
|
+
const location = (_b = (_a = authValue.props) === null || _a === void 0 ? void 0 : _a['location']) !== null && _b !== void 0 ? _b : 'zoho.com';
|
|
35
|
+
return `https://mail.${location}/api`;
|
|
36
|
+
},
|
|
37
|
+
authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
38
|
+
return {
|
|
39
|
+
Authorization: `Zoho-oauthtoken ${auth.access_token}`,
|
|
40
|
+
};
|
|
41
|
+
}),
|
|
42
|
+
}),
|
|
43
|
+
],
|
|
44
|
+
triggers: [new_email_received_trigger_1.newEmailReceivedTrigger],
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/zoho-mail/src/index.ts"],"names":[],"mappings":";;;;AAAA,+DAAwE;AACxE,qEAIwC;AACxC,iDAAqD;AACrD,uEAAwE;AACxE,yEAAyE;AACzE,6EAA6E;AAC7E,yDAA2D;AAC3D,yDAA2D;AAC3D,4CAAiD;AACjD,0FAAoF;AAEvE,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IACnC,WAAW,EAAE,WAAW;IACxB,OAAO,EAAE,mDAAmD;IAC5D,IAAI,EAAE,mBAAY;IAClB,OAAO,EAAE,CAAC,mBAAmB,EAAE,YAAY,CAAC;IAC5C,WAAW,EACV,kHAAkH;IACnH,uBAAuB,EAAE,QAAQ;IACjC,UAAU,EAAE,CAAC,sBAAa,CAAC,aAAa,CAAC;IACzC,OAAO,EAAE;QACR,yCAAqB;QACrB,0CAAqB;QACrB,8CAAuB;QACvB,4BAAe;QACf,4BAAe;QACf,IAAA,yCAAyB,EAAC;YACzB,IAAI,EAAE,mBAAY;YAClB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;;gBACjB,MAAM,SAAS,GAAG,IAAiD,CAAC;gBACpE,MAAM,QAAQ,GAAG,MAAA,MAAA,SAAS,CAAC,KAAK,0CAAG,UAAU,CAAC,mCAAI,UAAU,CAAC;gBAC7D,OAAO,gBAAgB,QAAQ,MAAM,CAAC;YACvC,CAAC;YACD,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAC3B,OAAO;oBACN,aAAa,EAAE,mBAAoB,IAA4B,CAAC,YAAY,EAAE;iBAC9E,CAAC;YACH,CAAC,CAAA;SACD,CAAC;KACF;IACD,QAAQ,EAAE,CAAC,oDAAuB,CAAC;CACnC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const getEmailDetailsAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
3
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
messageId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
}>;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getEmailDetailsAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const auth_1 = require("../common/auth");
|
|
9
|
+
const props_1 = require("../common/props");
|
|
10
|
+
exports.getEmailDetailsAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.zohoMailAuth,
|
|
12
|
+
name: 'get_email_details',
|
|
13
|
+
displayName: 'Get Email Details',
|
|
14
|
+
description: 'Retrieves full content and metadata of a specific email.',
|
|
15
|
+
props: {
|
|
16
|
+
accountId: (0, props_1.accountId)({ displayName: 'Account', required: true }),
|
|
17
|
+
folderId: (0, props_1.folderId)({ displayName: 'Folder', required: true }),
|
|
18
|
+
messageId: (0, props_1.messageId)({
|
|
19
|
+
displayName: 'Message ID',
|
|
20
|
+
description: 'The ID of the email message to retrieve.',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
run(context) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const { accountId, messageId } = context.propsValue;
|
|
27
|
+
const response = yield (0, common_1.zohoMailApiCall)({
|
|
28
|
+
auth: context.auth,
|
|
29
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
30
|
+
resourceUri: `/accounts/${accountId}/messages/${messageId}/originalmessage`,
|
|
31
|
+
});
|
|
32
|
+
const parsedMailResponse = yield (0, common_1.parseStream)(response.data.content);
|
|
33
|
+
return Object.assign(Object.assign({}, parsedMailResponse), { attachments: yield (0, common_1.convertAttachment)(parsedMailResponse.attachments, context.files), id: response.data.messageId });
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=get-email-details.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-email-details.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/actions/get-email-details.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAA8D;AAC9D,sCAA4E;AAC5E,yCAA8C;AAC9C,2CAAiE;AAEpD,QAAA,qBAAqB,GAAG,IAAA,+BAAY,EAAC;IACjD,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,0DAA0D;IACvE,KAAK,EAAE;QACN,SAAS,EAAE,IAAA,iBAAS,EAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChE,QAAQ,EAAE,IAAA,gBAAQ,EAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7D,SAAS,EAAE,IAAA,iBAAS,EAAC;YACpB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,0CAA0C;YACvD,QAAQ,EAAE,IAAI;SACd,CAAC;KACF;IACK,GAAG,CAAC,OAAO;;YAChB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAe,EAAmD;gBACxF,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,WAAW,EAAE,aAAa,SAAS,aAAa,SAAS,kBAAkB;aAC3E,CAAC,CAAC;YAEH,MAAM,kBAAkB,GAAG,MAAM,IAAA,oBAAW,EAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEpE,uCACI,kBAAkB,KACrB,WAAW,EAAE,MAAM,IAAA,0BAAiB,EAAC,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,EACnF,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,IAC1B;QACH,CAAC;KAAA;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const markEmailAsReadAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
3
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
messageId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
}>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markEmailAsReadAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const auth_1 = require("../common/auth");
|
|
9
|
+
const props_1 = require("../common/props");
|
|
10
|
+
exports.markEmailAsReadAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.zohoMailAuth,
|
|
12
|
+
name: 'mark_email_as_read',
|
|
13
|
+
displayName: 'Mark Email as Read',
|
|
14
|
+
description: 'Marks an email as read.',
|
|
15
|
+
props: {
|
|
16
|
+
accountId: (0, props_1.accountId)({ displayName: 'Account', required: true }),
|
|
17
|
+
folderId: (0, props_1.folderId)({ displayName: 'Folder', required: true }),
|
|
18
|
+
messageId: (0, props_1.messageId)({
|
|
19
|
+
displayName: 'Message ID',
|
|
20
|
+
description: 'The ID of the email message to mark as read.',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
run(context) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const { accountId, messageId } = context.propsValue;
|
|
27
|
+
const response = yield (0, common_1.zohoMailApiCall)({
|
|
28
|
+
auth: context.auth,
|
|
29
|
+
method: pieces_common_1.HttpMethod.PUT,
|
|
30
|
+
resourceUri: `/accounts/${accountId}/updatemessage`,
|
|
31
|
+
body: {
|
|
32
|
+
mode: 'markAsRead',
|
|
33
|
+
messageId: [messageId],
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
return response;
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=mark-email-as-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mark-email-as-read.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/actions/mark-email-as-read.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAA8D;AAC9D,sCAA4C;AAC5C,yCAA8C;AAC9C,2CAAiE;AAEpD,QAAA,qBAAqB,GAAG,IAAA,+BAAY,EAAC;IACjD,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,oBAAoB;IACjC,WAAW,EAAE,yBAAyB;IACtC,KAAK,EAAE;QACN,SAAS,EAAE,IAAA,iBAAS,EAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChE,QAAQ,EAAE,IAAA,gBAAQ,EAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7D,SAAS,EAAE,IAAA,iBAAS,EAAC;YACpB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,8CAA8C;YAC3D,QAAQ,EAAE,IAAI;SACd,CAAC;KACF;IACK,GAAG,CAAC,OAAO;;YAChB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAe,EAAC;gBACtC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,WAAW,EAAE,aAAa,SAAS,gBAAgB;gBACnD,IAAI,EAAE;oBACL,IAAI,EAAE,YAAY;oBAClB,SAAS,EAAE,CAAC,SAAS,CAAC;iBACtB;aACD,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QACjB,CAAC;KAAA;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const markEmailAsUnreadAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
3
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
messageId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
}>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markEmailAsUnreadAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const auth_1 = require("../common/auth");
|
|
9
|
+
const props_1 = require("../common/props");
|
|
10
|
+
exports.markEmailAsUnreadAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.zohoMailAuth,
|
|
12
|
+
name: 'mark_email_as_unread',
|
|
13
|
+
displayName: 'Mark Emai as Unread',
|
|
14
|
+
description: 'Marks an email as unread.',
|
|
15
|
+
props: {
|
|
16
|
+
accountId: (0, props_1.accountId)({ displayName: 'Account', required: true }),
|
|
17
|
+
folderId: (0, props_1.folderId)({ displayName: 'Folder', required: true }),
|
|
18
|
+
messageId: (0, props_1.messageId)({
|
|
19
|
+
displayName: 'Message ID',
|
|
20
|
+
description: 'The ID of the email message to mark as unread.',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
run(context) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const { accountId, messageId } = context.propsValue;
|
|
27
|
+
const response = yield (0, common_1.zohoMailApiCall)({
|
|
28
|
+
auth: context.auth,
|
|
29
|
+
method: pieces_common_1.HttpMethod.PUT,
|
|
30
|
+
resourceUri: `/accounts/${accountId}/updatemessage`,
|
|
31
|
+
body: {
|
|
32
|
+
mode: 'markAsUnread',
|
|
33
|
+
messageId: [messageId],
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
return response;
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=mark-email-as-unread.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mark-email-as-unread.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/actions/mark-email-as-unread.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAA8D;AAC9D,sCAA4C;AAC5C,yCAA8C;AAC9C,2CAAiE;AAEpD,QAAA,uBAAuB,GAAG,IAAA,+BAAY,EAAC;IACnD,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,sBAAsB;IAC5B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,2BAA2B;IACxC,KAAK,EAAE;QACN,SAAS,EAAE,IAAA,iBAAS,EAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChE,QAAQ,EAAE,IAAA,gBAAQ,EAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC7D,SAAS,EAAE,IAAA,iBAAS,EAAC;YACpB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,gDAAgD;YAC7D,QAAQ,EAAE,IAAI;SACd,CAAC;KACF;IACK,GAAG,CAAC,OAAO;;YAChB,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAe,EAAC;gBACtC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,WAAW,EAAE,aAAa,SAAS,gBAAgB;gBACnD,IAAI,EAAE;oBACL,IAAI,EAAE,cAAc;oBACpB,SAAS,EAAE,CAAC,SAAS,CAAC;iBACtB;aACD,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QACjB,CAAC;KAAA;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const moveEmailAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
3
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
messageId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
destfolderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.moveEmailAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const auth_1 = require("../common/auth");
|
|
9
|
+
const props_1 = require("../common/props");
|
|
10
|
+
exports.moveEmailAction = (0, pieces_framework_1.createAction)({
|
|
11
|
+
auth: auth_1.zohoMailAuth,
|
|
12
|
+
name: 'move_email',
|
|
13
|
+
displayName: 'Move Email to Folder',
|
|
14
|
+
description: 'Moves an email to a different folder.',
|
|
15
|
+
props: {
|
|
16
|
+
accountId: (0, props_1.accountId)({ displayName: 'Account', required: true }),
|
|
17
|
+
folderId: (0, props_1.folderId)({ displayName: 'Current Folder', required: true }),
|
|
18
|
+
messageId: (0, props_1.messageId)({
|
|
19
|
+
displayName: 'Message ID',
|
|
20
|
+
description: 'The ID of the email message to move.',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
destfolderId: (0, props_1.folderId)({
|
|
24
|
+
displayName: 'Destination Folder',
|
|
25
|
+
description: 'Select the folder to move the email to.',
|
|
26
|
+
required: true,
|
|
27
|
+
}),
|
|
28
|
+
},
|
|
29
|
+
run(context) {
|
|
30
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
const { accountId, destfolderId, messageId, folderId } = context.propsValue;
|
|
32
|
+
const response = yield (0, common_1.zohoMailApiCall)({
|
|
33
|
+
auth: context.auth,
|
|
34
|
+
method: pieces_common_1.HttpMethod.PUT,
|
|
35
|
+
resourceUri: `/accounts/${accountId}/updatemessage`,
|
|
36
|
+
body: {
|
|
37
|
+
mode: 'moveMessage',
|
|
38
|
+
destfolderId: destfolderId,
|
|
39
|
+
messageId: [messageId],
|
|
40
|
+
isFolderSpecific: true,
|
|
41
|
+
folderId: folderId,
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
return response;
|
|
45
|
+
});
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=move-email.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"move-email.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/actions/move-email.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAA8D;AAC9D,sCAA4C;AAC5C,yCAA8C;AAC9C,2CAAiE;AAEpD,QAAA,eAAe,GAAG,IAAA,+BAAY,EAAC;IAC3C,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,sBAAsB;IACnC,WAAW,EAAE,uCAAuC;IACpD,KAAK,EAAE;QACN,SAAS,EAAE,IAAA,iBAAS,EAAC,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChE,QAAQ,EAAE,IAAA,gBAAQ,EAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrE,SAAS,EAAE,IAAA,iBAAS,EAAC;YACpB,WAAW,EAAE,YAAY;YACzB,WAAW,EAAE,sCAAsC;YACnD,QAAQ,EAAE,IAAI;SACd,CAAC;QACF,YAAY,EAAE,IAAA,gBAAQ,EAAC;YACtB,WAAW,EAAE,oBAAoB;YACjC,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;SACd,CAAC;KACF;IACK,GAAG,CAAC,OAAO;;YAChB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAE5E,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAe,EAAC;gBACtC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,WAAW,EAAE,aAAa,SAAS,gBAAgB;gBAEnD,IAAI,EAAE;oBACL,IAAI,EAAE,aAAa;oBACnB,YAAY,EAAE,YAAY;oBAC1B,SAAS,EAAE,CAAC,SAAS,CAAC;oBACtB,gBAAgB,EAAE,IAAI;oBACtB,QAAQ,EAAE,QAAQ;iBAClB;aACD,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QACjB,CAAC;KAAA;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const sendEmailAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
3
|
+
fromAddress: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
toAddress: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
5
|
+
subject: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
6
|
+
mailFormat: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
|
|
7
|
+
content: import("@activepieces/pieces-framework").LongTextProperty<true>;
|
|
8
|
+
ccAddress: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
9
|
+
bccAddress: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
10
|
+
askReceipt: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
|
|
11
|
+
attachment: import("@activepieces/pieces-framework").FileProperty<false>;
|
|
12
|
+
attachmentName: import("@activepieces/pieces-framework").ShortTextProperty<false>;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendEmailAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const auth_1 = require("../common/auth");
|
|
10
|
+
const props_1 = require("../common/props");
|
|
11
|
+
exports.sendEmailAction = (0, pieces_framework_1.createAction)({
|
|
12
|
+
auth: auth_1.zohoMailAuth,
|
|
13
|
+
name: 'send_email',
|
|
14
|
+
displayName: 'Send Email',
|
|
15
|
+
description: 'Sends an email.',
|
|
16
|
+
props: {
|
|
17
|
+
accountId: (0, props_1.accountId)({ displayName: 'Account', required: true }),
|
|
18
|
+
fromAddress: (0, props_1.fromAddress)({ displayName: 'From Email Address', required: true }),
|
|
19
|
+
toAddress: pieces_framework_1.Property.ShortText({
|
|
20
|
+
displayName: 'To Email Address',
|
|
21
|
+
description: "Recipient's email address.",
|
|
22
|
+
required: true,
|
|
23
|
+
}),
|
|
24
|
+
subject: pieces_framework_1.Property.LongText({
|
|
25
|
+
displayName: 'Subject',
|
|
26
|
+
required: true,
|
|
27
|
+
}),
|
|
28
|
+
mailFormat: pieces_framework_1.Property.StaticDropdown({
|
|
29
|
+
displayName: 'Mail Format',
|
|
30
|
+
required: true,
|
|
31
|
+
options: {
|
|
32
|
+
options: [
|
|
33
|
+
{ label: 'HTML', value: 'html' },
|
|
34
|
+
{ label: 'Plain Text', value: 'plaintext' },
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
defaultValue: 'html',
|
|
38
|
+
}),
|
|
39
|
+
content: pieces_framework_1.Property.LongText({
|
|
40
|
+
displayName: 'Content',
|
|
41
|
+
description: 'HTML or plain text content of the email.',
|
|
42
|
+
required: true,
|
|
43
|
+
}),
|
|
44
|
+
ccAddress: pieces_framework_1.Property.ShortText({
|
|
45
|
+
displayName: 'CC Email Address',
|
|
46
|
+
description: "CC recipient's email address.",
|
|
47
|
+
required: false,
|
|
48
|
+
}),
|
|
49
|
+
bccAddress: pieces_framework_1.Property.ShortText({
|
|
50
|
+
displayName: 'BCC Email Address',
|
|
51
|
+
description: "BCC recipient's email address.",
|
|
52
|
+
required: false,
|
|
53
|
+
}),
|
|
54
|
+
askReceipt: pieces_framework_1.Property.StaticDropdown({
|
|
55
|
+
displayName: 'Ask for Read Receipt',
|
|
56
|
+
required: false,
|
|
57
|
+
options: {
|
|
58
|
+
options: [
|
|
59
|
+
{ label: 'Yes', value: 'yes' },
|
|
60
|
+
{ label: 'No', value: 'no' },
|
|
61
|
+
],
|
|
62
|
+
},
|
|
63
|
+
}),
|
|
64
|
+
attachment: pieces_framework_1.Property.File({
|
|
65
|
+
displayName: 'Attachment',
|
|
66
|
+
required: false,
|
|
67
|
+
}),
|
|
68
|
+
attachmentName: pieces_framework_1.Property.ShortText({
|
|
69
|
+
displayName: 'Attachment Name',
|
|
70
|
+
description: 'In case you want to change the name of the attachment.',
|
|
71
|
+
required: false,
|
|
72
|
+
}),
|
|
73
|
+
},
|
|
74
|
+
run(context) {
|
|
75
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
76
|
+
var _a, _b;
|
|
77
|
+
const { accountId, fromAddress, toAddress, ccAddress, bccAddress, subject, content, mailFormat, askReceipt, attachment, attachmentName, } = context.propsValue;
|
|
78
|
+
const requestBody = {
|
|
79
|
+
fromAddress,
|
|
80
|
+
toAddress,
|
|
81
|
+
subject,
|
|
82
|
+
content,
|
|
83
|
+
mailFormat: mailFormat !== null && mailFormat !== void 0 ? mailFormat : 'html',
|
|
84
|
+
};
|
|
85
|
+
if (ccAddress)
|
|
86
|
+
requestBody['ccAddress'] = ccAddress;
|
|
87
|
+
if (bccAddress)
|
|
88
|
+
requestBody['bccAddress'] = bccAddress;
|
|
89
|
+
if (askReceipt)
|
|
90
|
+
requestBody['askReceipt'] = askReceipt;
|
|
91
|
+
if (attachment) {
|
|
92
|
+
const formData = new form_data_1.default();
|
|
93
|
+
formData.append('attach', Buffer.from(attachment.base64, 'base64'), attachmentName || attachment.filename);
|
|
94
|
+
const location = (_b = (_a = context.auth.props) === null || _a === void 0 ? void 0 : _a['location']) !== null && _b !== void 0 ? _b : 'zoho.com';
|
|
95
|
+
const baseUrl = `https://mail.${location}/api`;
|
|
96
|
+
const uploadResponse = yield pieces_common_1.httpClient.sendRequest({
|
|
97
|
+
url: baseUrl + `/accounts/${accountId}/messages/attachments?uploadType=multipart`,
|
|
98
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
99
|
+
body: formData,
|
|
100
|
+
headers: Object.assign(Object.assign({}, formData.getHeaders()), { Authorization: `Zoho-oauthtoken ${context.auth.access_token}` }),
|
|
101
|
+
});
|
|
102
|
+
requestBody['attachments'] = uploadResponse.body.data;
|
|
103
|
+
}
|
|
104
|
+
const response = yield (0, common_1.zohoMailApiCall)({
|
|
105
|
+
auth: context.auth,
|
|
106
|
+
method: pieces_common_1.HttpMethod.POST,
|
|
107
|
+
resourceUri: `/accounts/${accountId}/messages`,
|
|
108
|
+
body: requestBody,
|
|
109
|
+
});
|
|
110
|
+
return response;
|
|
111
|
+
});
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
//# sourceMappingURL=send-email.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send-email.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/actions/send-email.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const zohoMailAuth: import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zohoMailAuth = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
exports.zohoMailAuth = pieces_framework_1.PieceAuth.OAuth2({
|
|
6
|
+
props: {
|
|
7
|
+
location: pieces_framework_1.Property.StaticDropdown({
|
|
8
|
+
displayName: 'Location',
|
|
9
|
+
description: 'The location of your Zoho Mail account.',
|
|
10
|
+
required: true,
|
|
11
|
+
options: {
|
|
12
|
+
options: [
|
|
13
|
+
{
|
|
14
|
+
label: 'zoho.eu (Europe)',
|
|
15
|
+
value: 'zoho.eu',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
label: 'zoho.com (United States)',
|
|
19
|
+
value: 'zoho.com',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
label: 'zoho.com.au (Australia)',
|
|
23
|
+
value: 'zoho.com.au',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
label: 'zoho.jp (Japan)',
|
|
27
|
+
value: 'zoho.jp',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: 'zoho.in (India)',
|
|
31
|
+
value: 'zoho.in',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
label: 'zohocloud.ca (Canada)',
|
|
35
|
+
value: 'zohocloud.ca',
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
}),
|
|
40
|
+
},
|
|
41
|
+
description: 'Authentication for Zoho Desk',
|
|
42
|
+
scope: [
|
|
43
|
+
'ZohoMail.accounts.READ',
|
|
44
|
+
'ZohoMail.messages.ALL',
|
|
45
|
+
'ZohoMail.folders.ALL',
|
|
46
|
+
'ZohoMail.organization.accounts.READ',
|
|
47
|
+
],
|
|
48
|
+
authUrl: 'https://accounts.{location}/oauth/v2/auth',
|
|
49
|
+
tokenUrl: 'https://accounts.{location}/oauth/v2/token',
|
|
50
|
+
required: true,
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/common/auth.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AAExD,QAAA,YAAY,GAAG,4BAAS,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE;QACN,QAAQ,EAAE,2BAAQ,CAAC,cAAc,CAAC;YACjC,WAAW,EAAE,UAAU;YACvB,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE;gBACR,OAAO,EAAE;oBACR;wBACC,KAAK,EAAE,kBAAkB;wBACzB,KAAK,EAAE,SAAS;qBAChB;oBACD;wBACC,KAAK,EAAE,0BAA0B;wBACjC,KAAK,EAAE,UAAU;qBACjB;oBACD;wBACC,KAAK,EAAE,yBAAyB;wBAChC,KAAK,EAAE,aAAa;qBACpB;oBACD;wBACC,KAAK,EAAE,iBAAiB;wBACxB,KAAK,EAAE,SAAS;qBAChB;oBACD;wBACC,KAAK,EAAE,iBAAiB;wBACxB,KAAK,EAAE,SAAS;qBAChB;oBACD;wBACC,KAAK,EAAE,uBAAuB;wBAC9B,KAAK,EAAE,cAAc;qBACrB;iBACD;aACD;SACD,CAAC;KACF;IACD,WAAW,EAAE,8BAA8B;IAC3C,KAAK,EAAE;QACN,wBAAwB;QACxB,uBAAuB;QACvB,sBAAsB;QACtB,qCAAqC;KACrC;IACD,OAAO,EAAE,2CAA2C;IACpD,QAAQ,EAAE,4CAA4C;IACtD,QAAQ,EAAE,IAAI;CACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { HttpMessageBody, HttpMethod } from '@activepieces/pieces-common';
|
|
2
|
+
import { FilesService, PiecePropValueSchema } from '@activepieces/pieces-framework';
|
|
3
|
+
import { Attachment, ParsedMail } from 'mailparser';
|
|
4
|
+
import { zohoMailAuth } from './auth';
|
|
5
|
+
export type ZohoMailApiCallParams = {
|
|
6
|
+
auth: PiecePropValueSchema<typeof zohoMailAuth>;
|
|
7
|
+
method: HttpMethod;
|
|
8
|
+
resourceUri: string;
|
|
9
|
+
query?: Record<string, string | number | string[] | undefined>;
|
|
10
|
+
body?: any;
|
|
11
|
+
};
|
|
12
|
+
export declare function zohoMailApiCall<T extends HttpMessageBody>({ auth, method, resourceUri, query, body, }: ZohoMailApiCallParams): Promise<T>;
|
|
13
|
+
export declare function parseStream(stream: string | Buffer): Promise<ParsedMail>;
|
|
14
|
+
export declare function convertAttachment(attachments: Attachment[], files: FilesService): Promise<{
|
|
15
|
+
fileName: string;
|
|
16
|
+
mimeType: string;
|
|
17
|
+
size: number;
|
|
18
|
+
data: string;
|
|
19
|
+
}[]>;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zohoMailApiCall = zohoMailApiCall;
|
|
4
|
+
exports.parseStream = parseStream;
|
|
5
|
+
exports.convertAttachment = convertAttachment;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
8
|
+
const mailparser_1 = require("mailparser");
|
|
9
|
+
function zohoMailApiCall(_a) {
|
|
10
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, method, resourceUri, query, body, }) {
|
|
11
|
+
var _b, _c;
|
|
12
|
+
const location = (_c = (_b = auth.props) === null || _b === void 0 ? void 0 : _b['location']) !== null && _c !== void 0 ? _c : 'zoho.com';
|
|
13
|
+
const baseUrl = `https://mail.${location}/api`;
|
|
14
|
+
const qs = {};
|
|
15
|
+
if (query) {
|
|
16
|
+
for (const [key, value] of Object.entries(query)) {
|
|
17
|
+
if (value !== null && value !== undefined) {
|
|
18
|
+
qs[key] = String(value);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const request = {
|
|
23
|
+
method,
|
|
24
|
+
url: baseUrl + resourceUri,
|
|
25
|
+
headers: {
|
|
26
|
+
Authorization: `Zoho-oauthtoken ${auth.access_token}`,
|
|
27
|
+
},
|
|
28
|
+
queryParams: qs,
|
|
29
|
+
body,
|
|
30
|
+
};
|
|
31
|
+
const response = yield pieces_common_1.httpClient.sendRequest(request);
|
|
32
|
+
return response.body;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function parseStream(stream) {
|
|
36
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
(0, mailparser_1.simpleParser)(stream, (err, parsed) => {
|
|
39
|
+
if (err) {
|
|
40
|
+
reject(err);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
resolve(parsed);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function convertAttachment(attachments, files) {
|
|
50
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const promises = attachments.map((attachment) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
var _a;
|
|
53
|
+
try {
|
|
54
|
+
const fileName = (_a = attachment.filename) !== null && _a !== void 0 ? _a : `attachment-${Date.now()}`;
|
|
55
|
+
return {
|
|
56
|
+
fileName,
|
|
57
|
+
mimeType: attachment.contentType,
|
|
58
|
+
size: attachment.size,
|
|
59
|
+
data: yield files.write({
|
|
60
|
+
fileName: fileName,
|
|
61
|
+
data: attachment.content,
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error(`Failed to process attachment: ${attachment.filename}`, error);
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
}));
|
|
70
|
+
const results = yield Promise.all(promises);
|
|
71
|
+
return results.filter((result) => result !== null);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/common/index.ts"],"names":[],"mappings":";;AAmBA,0CA+BC;AAED,kCAUC;AAED,8CAoBC;;AApFD,+DAMqC;AAErC,2CAAkE;AAWlE,SAAsB,eAAe;iEAA4B,EAChE,IAAI,EACJ,MAAM,EACN,WAAW,EACX,KAAK,EACL,IAAI,GACmB;;QACvB,MAAM,QAAQ,GAAG,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAG,UAAU,CAAC,mCAAI,UAAU,CAAC;QACxD,MAAM,OAAO,GAAG,gBAAgB,QAAQ,MAAM,CAAC;QAC/C,MAAM,EAAE,GAAgB,EAAE,CAAC;QAE3B,IAAI,KAAK,EAAE,CAAC;YACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC3C,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,OAAO,GAAgB;YAC5B,MAAM;YACN,GAAG,EAAE,OAAO,GAAG,WAAW;YAC1B,OAAO,EAAE;gBACR,aAAa,EAAE,mBAAmB,IAAI,CAAC,YAAY,EAAE;aACrD;YACD,WAAW,EAAE,EAAE;YACf,IAAI;SACJ,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAI,OAAO,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC;IACtB,CAAC;CAAA;AAED,SAAsB,WAAW,CAAC,MAAuB;;QACxD,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAClD,IAAA,yBAAY,EAAC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;gBACpC,IAAI,GAAG,EAAE,CAAC;oBACT,MAAM,CAAC,GAAG,CAAC,CAAC;gBACb,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjB,CAAC;YACF,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;CAAA;AAED,SAAsB,iBAAiB,CAAC,WAAyB,EAAE,KAAmB;;QACrF,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAO,UAAU,EAAE,EAAE;;YACrD,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAA,UAAU,CAAC,QAAQ,mCAAI,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACnE,OAAO;oBACN,QAAQ;oBACR,QAAQ,EAAE,UAAU,CAAC,WAAW;oBAChC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,IAAI,EAAE,MAAM,KAAK,CAAC,KAAK,CAAC;wBACvB,QAAQ,EAAE,QAAQ;wBAClB,IAAI,EAAE,UAAU,CAAC,OAAO;qBACxB,CAAC;iBACF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,iCAAiC,UAAU,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC7E,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC,CAAA,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;IACpD,CAAC;CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface DropdownParams {
|
|
2
|
+
displayName: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
required: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const accountId: (params: DropdownParams) => import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
7
|
+
export declare const folderId: (params: DropdownParams) => import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
8
|
+
export declare const messageId: (params: DropdownParams) => import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
9
|
+
export declare const fromAddress: (params: DropdownParams) => import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fromAddress = exports.messageId = exports.folderId = exports.accountId = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const _1 = require(".");
|
|
8
|
+
const accountId = (params) => pieces_framework_1.Property.Dropdown({
|
|
9
|
+
displayName: params.displayName,
|
|
10
|
+
description: params.description,
|
|
11
|
+
refreshers: [],
|
|
12
|
+
required: params.required,
|
|
13
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
|
|
14
|
+
if (!auth) {
|
|
15
|
+
return {
|
|
16
|
+
placeholder: 'Please connect your account first.',
|
|
17
|
+
options: [],
|
|
18
|
+
disabled: true,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const authValue = auth;
|
|
22
|
+
const response = yield (0, _1.zohoMailApiCall)({
|
|
23
|
+
auth: authValue,
|
|
24
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
25
|
+
resourceUri: '/accounts',
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
disabled: false,
|
|
29
|
+
options: response.data.map((account) => {
|
|
30
|
+
return {
|
|
31
|
+
label: account.displayName || account.accountId,
|
|
32
|
+
value: account.accountId,
|
|
33
|
+
};
|
|
34
|
+
}),
|
|
35
|
+
};
|
|
36
|
+
}),
|
|
37
|
+
});
|
|
38
|
+
exports.accountId = accountId;
|
|
39
|
+
const folderId = (params) => pieces_framework_1.Property.Dropdown({
|
|
40
|
+
displayName: params.displayName,
|
|
41
|
+
description: params.description,
|
|
42
|
+
refreshers: ['accountId'],
|
|
43
|
+
required: params.required,
|
|
44
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, accountId }) {
|
|
45
|
+
if (!auth) {
|
|
46
|
+
return {
|
|
47
|
+
placeholder: 'Please connect your account first.',
|
|
48
|
+
options: [],
|
|
49
|
+
disabled: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
if (!accountId) {
|
|
53
|
+
return {
|
|
54
|
+
placeholder: 'Please select Account first.',
|
|
55
|
+
options: [],
|
|
56
|
+
disabled: true,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const authValue = auth;
|
|
60
|
+
const response = yield (0, _1.zohoMailApiCall)({
|
|
61
|
+
auth: authValue,
|
|
62
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
63
|
+
resourceUri: `/accounts/${accountId}/folders`,
|
|
64
|
+
});
|
|
65
|
+
return {
|
|
66
|
+
disabled: false,
|
|
67
|
+
options: response.data.map((folder) => {
|
|
68
|
+
return {
|
|
69
|
+
label: folder.path || folder.folderId,
|
|
70
|
+
value: folder.folderId,
|
|
71
|
+
};
|
|
72
|
+
}),
|
|
73
|
+
};
|
|
74
|
+
}),
|
|
75
|
+
});
|
|
76
|
+
exports.folderId = folderId;
|
|
77
|
+
const messageId = (params) => pieces_framework_1.Property.Dropdown({
|
|
78
|
+
displayName: params.displayName,
|
|
79
|
+
description: params.description,
|
|
80
|
+
refreshers: ['accountId', 'folderId'],
|
|
81
|
+
required: params.required,
|
|
82
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, accountId, folderId }) {
|
|
83
|
+
if (!auth) {
|
|
84
|
+
return {
|
|
85
|
+
placeholder: 'Please connect your account first.',
|
|
86
|
+
options: [],
|
|
87
|
+
disabled: true,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
if (!accountId) {
|
|
91
|
+
return {
|
|
92
|
+
placeholder: 'Please select Account first.',
|
|
93
|
+
options: [],
|
|
94
|
+
disabled: true,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (!folderId) {
|
|
98
|
+
return {
|
|
99
|
+
placeholder: 'Please select Folder first.',
|
|
100
|
+
options: [],
|
|
101
|
+
disabled: true,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const authValue = auth;
|
|
105
|
+
const response = yield (0, _1.zohoMailApiCall)({
|
|
106
|
+
auth: authValue,
|
|
107
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
108
|
+
resourceUri: `/accounts/${accountId}/messages/view`,
|
|
109
|
+
query: {
|
|
110
|
+
folderId: folderId,
|
|
111
|
+
limit: 50,
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
disabled: false,
|
|
116
|
+
options: response.data.map((message) => {
|
|
117
|
+
return {
|
|
118
|
+
label: message.subject,
|
|
119
|
+
value: message.messageId,
|
|
120
|
+
};
|
|
121
|
+
}),
|
|
122
|
+
};
|
|
123
|
+
}),
|
|
124
|
+
});
|
|
125
|
+
exports.messageId = messageId;
|
|
126
|
+
const fromAddress = (params) => pieces_framework_1.Property.Dropdown({
|
|
127
|
+
displayName: params.displayName,
|
|
128
|
+
description: params.description,
|
|
129
|
+
refreshers: ['accountId'],
|
|
130
|
+
required: params.required,
|
|
131
|
+
options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, accountId }) {
|
|
132
|
+
if (!auth) {
|
|
133
|
+
return {
|
|
134
|
+
placeholder: 'Please connect your account first.',
|
|
135
|
+
options: [],
|
|
136
|
+
disabled: true,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
if (!accountId) {
|
|
140
|
+
return {
|
|
141
|
+
placeholder: 'Please select Account first.',
|
|
142
|
+
options: [],
|
|
143
|
+
disabled: true,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
const authValue = auth;
|
|
147
|
+
const response = yield (0, _1.zohoMailApiCall)({
|
|
148
|
+
auth: authValue,
|
|
149
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
150
|
+
resourceUri: `/accounts/${accountId}`,
|
|
151
|
+
});
|
|
152
|
+
return {
|
|
153
|
+
disabled: false,
|
|
154
|
+
options: response.data.sendMailDetails.map((account) => {
|
|
155
|
+
return {
|
|
156
|
+
label: account.fromAddress,
|
|
157
|
+
value: account.fromAddress,
|
|
158
|
+
};
|
|
159
|
+
}),
|
|
160
|
+
};
|
|
161
|
+
}),
|
|
162
|
+
});
|
|
163
|
+
exports.fromAddress = fromAddress;
|
|
164
|
+
//# sourceMappingURL=props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/common/props.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,qEAAgF;AAChF,wBAAoC;AAS7B,MAAM,SAAS,GAAG,CAAC,MAAsB,EAAE,EAAE,CACnD,2BAAQ,CAAC,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;gBACN,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAiD,CAAC;QAEpE,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAe,EAEnC;YACF,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,WAAW,EAAE,WAAW;SACxB,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,OAAO;oBACN,KAAK,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS;oBAC/C,KAAK,EAAE,OAAO,CAAC,SAAS;iBACxB,CAAC;YACH,CAAC,CAAC;SACF,CAAC;IACH,CAAC,CAAA;CACD,CAAC,CAAC;AAlCS,QAAA,SAAS,aAkClB;AAEG,MAAM,QAAQ,GAAG,CAAC,MAAsB,EAAE,EAAE,CAClD,2BAAQ,CAAC,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;gBACN,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO;gBACN,WAAW,EAAE,8BAA8B;gBAC3C,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAiD,CAAC;QAEpE,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAe,EAEnC;YACF,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,WAAW,EAAE,aAAa,SAAS,UAAU;SAC7C,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACrC,OAAO;oBACN,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ;oBACrC,KAAK,EAAE,MAAM,CAAC,QAAQ;iBACtB,CAAC;YACH,CAAC,CAAC;SACF,CAAC;IACH,CAAC,CAAA;CACD,CAAC,CAAC;AA1CS,QAAA,QAAQ,YA0CjB;AAEG,MAAM,SAAS,GAAG,CAAC,MAAsB,EAAE,EAAE,CACnD,2BAAQ,CAAC,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,UAAU,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,OAAO,EAAE,KAAsC,EAAE,oDAAjC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;gBACN,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO;gBACN,WAAW,EAAE,8BAA8B;gBAC3C,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,OAAO;gBACN,WAAW,EAAE,6BAA6B;gBAC1C,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QAED,MAAM,SAAS,GAAG,IAAiD,CAAC;QAEpE,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAe,EAEnC;YACF,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,WAAW,EAAE,aAAa,SAAS,gBAAgB;YACnD,KAAK,EAAE;gBACN,QAAQ,EAAE,QAAkB;gBAC5B,KAAK,EAAE,EAAE;aACT;SACD,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtC,OAAO;oBACN,KAAK,EAAE,OAAO,CAAC,OAAO;oBACtB,KAAK,EAAE,OAAO,CAAC,SAAS;iBACxB,CAAC;YACH,CAAC,CAAC;SACF,CAAC;IACH,CAAC,CAAA;CACD,CAAC,CAAC;AArDS,QAAA,SAAS,aAqDlB;AAEG,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAE,EAAE,CACrD,2BAAQ,CAAC,QAAQ,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;IAC/B,UAAU,EAAE,CAAC,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;IACzB,OAAO,EAAE,KAA4B,EAAE,oDAAvB,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO;gBACN,WAAW,EAAE,oCAAoC;gBACjD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;YAChB,OAAO;gBACN,WAAW,EAAE,8BAA8B;gBAC3C,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACd,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,IAAiD,CAAC;QAEpE,MAAM,QAAQ,GAAG,MAAM,IAAA,kBAAe,EAEnC;YACF,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,0BAAU,CAAC,GAAG;YACtB,WAAW,EAAE,aAAa,SAAS,EAAE;SACrC,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBACtD,OAAO;oBACN,KAAK,EAAE,OAAO,CAAC,WAAW;oBAC1B,KAAK,EAAE,OAAO,CAAC,WAAW;iBAC1B,CAAC;YACH,CAAC,CAAC;SACF,CAAC;IACH,CAAC,CAAA;CACD,CAAC,CAAC;AAzCS,QAAA,WAAW,eAyCpB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TriggerStrategy } from '@activepieces/pieces-framework';
|
|
2
|
+
export declare const newEmailReceivedTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
3
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
6
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
7
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
8
|
+
}> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
9
|
+
accountId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
10
|
+
folderId: import("@activepieces/pieces-framework").DropdownProperty<string, false> | import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.newEmailReceivedTrigger = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
6
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const auth_1 = require("../common/auth");
|
|
9
|
+
const props_1 = require("../common/props");
|
|
10
|
+
const polling = {
|
|
11
|
+
strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
|
|
12
|
+
items(_a) {
|
|
13
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* ({ auth, propsValue, lastFetchEpochMS }) {
|
|
14
|
+
const { accountId, folderId } = propsValue;
|
|
15
|
+
let page = 1;
|
|
16
|
+
let hasMore = true;
|
|
17
|
+
const allMessages = [];
|
|
18
|
+
do {
|
|
19
|
+
const queryParams = {
|
|
20
|
+
start: page.toString(),
|
|
21
|
+
limit: lastFetchEpochMS === 0 ? '10' : '200',
|
|
22
|
+
};
|
|
23
|
+
if (folderId) {
|
|
24
|
+
queryParams['folderId'] = folderId;
|
|
25
|
+
}
|
|
26
|
+
const response = yield (0, common_1.zohoMailApiCall)({
|
|
27
|
+
auth,
|
|
28
|
+
resourceUri: `/accounts/${accountId}/messages/view`,
|
|
29
|
+
method: pieces_common_1.HttpMethod.GET,
|
|
30
|
+
query: queryParams,
|
|
31
|
+
});
|
|
32
|
+
const messages = response.data || [];
|
|
33
|
+
if (messages.length === 0) {
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
for (const msg of messages) {
|
|
37
|
+
const receivedTime = Number(msg.receivedTime);
|
|
38
|
+
if (lastFetchEpochMS > 0 && receivedTime <= lastFetchEpochMS) {
|
|
39
|
+
hasMore = false;
|
|
40
|
+
break; // Stop processing this page
|
|
41
|
+
}
|
|
42
|
+
allMessages.push(msg); // Only add if it's newer
|
|
43
|
+
}
|
|
44
|
+
// if it's test mode, only fetch first page
|
|
45
|
+
if (lastFetchEpochMS === 0)
|
|
46
|
+
break;
|
|
47
|
+
if (!hasMore) {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
page++;
|
|
51
|
+
} while (hasMore);
|
|
52
|
+
return allMessages.map((msg) => {
|
|
53
|
+
return {
|
|
54
|
+
epochMilliSeconds: Number(msg.receivedTime),
|
|
55
|
+
data: msg,
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
exports.newEmailReceivedTrigger = (0, pieces_framework_1.createTrigger)({
|
|
62
|
+
auth: auth_1.zohoMailAuth,
|
|
63
|
+
name: 'new_email_received',
|
|
64
|
+
displayName: 'New Email Received',
|
|
65
|
+
description: 'Triggers when a new email is received in a specified folder (or inbox).',
|
|
66
|
+
props: {
|
|
67
|
+
accountId: (0, props_1.accountId)({ displayName: 'Account', required: true }),
|
|
68
|
+
folderId: (0, props_1.folderId)({
|
|
69
|
+
displayName: 'Folder',
|
|
70
|
+
description: 'Select the folder to watch. If empty, watches the inbox/all messages based on API default.',
|
|
71
|
+
required: false,
|
|
72
|
+
}),
|
|
73
|
+
},
|
|
74
|
+
type: pieces_framework_1.TriggerStrategy.POLLING,
|
|
75
|
+
onEnable(context) {
|
|
76
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
yield pieces_common_1.pollingHelper.onEnable(polling, {
|
|
78
|
+
auth: context.auth,
|
|
79
|
+
store: context.store,
|
|
80
|
+
propsValue: context.propsValue,
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
onDisable(context) {
|
|
85
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
yield pieces_common_1.pollingHelper.onDisable(polling, {
|
|
87
|
+
auth: context.auth,
|
|
88
|
+
store: context.store,
|
|
89
|
+
propsValue: context.propsValue,
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
test(context) {
|
|
94
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
95
|
+
return yield pieces_common_1.pollingHelper.test(polling, context);
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
run(context) {
|
|
99
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
return yield pieces_common_1.pollingHelper.poll(polling, context);
|
|
101
|
+
});
|
|
102
|
+
},
|
|
103
|
+
sampleData: {
|
|
104
|
+
summary: 'test mail',
|
|
105
|
+
sentDateInGMT: '1749273996000',
|
|
106
|
+
calendarType: 0,
|
|
107
|
+
subject: 'test mail',
|
|
108
|
+
messageId: '1749293811021114900',
|
|
109
|
+
flagid: 'flag_not_set',
|
|
110
|
+
status2: '0',
|
|
111
|
+
priority: '3',
|
|
112
|
+
hasInline: 'false',
|
|
113
|
+
toAddress: '',
|
|
114
|
+
folderId: '7723149000000002014',
|
|
115
|
+
ccAddress: 'Not Provided',
|
|
116
|
+
hasAttachment: '0',
|
|
117
|
+
size: '238',
|
|
118
|
+
sender: 'john.doe@gmail.com',
|
|
119
|
+
receivedTime: '1749293811018',
|
|
120
|
+
fromAddress: 'john.doe@gmail.com',
|
|
121
|
+
status: '0',
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=new-email-received-trigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"new-email-received-trigger.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/zoho-mail/src/lib/triggers/new-email-received-trigger.ts"],"names":[],"mappings":"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"}
|