UNPKG

n8n-nodes-imap-ai

Version:

Simplified IMAP node for n8n with AI-agent support. Clean and modular email and mailbox management for automation workflows.

223 lines 7.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.emailSearchParameters = void 0; exports.getEmailSearchParametersFromNode = getEmailSearchParametersFromNode; var EmailFlags; (function (EmailFlags) { EmailFlags["Answered"] = "answered"; EmailFlags["Deleted"] = "deleted"; EmailFlags["Draft"] = "draft"; EmailFlags["Flagged"] = "flagged"; EmailFlags["Recent"] = "recent"; EmailFlags["Seen"] = "seen"; })(EmailFlags || (EmailFlags = {})); var EmailSearchFilters; (function (EmailSearchFilters) { EmailSearchFilters["BCC"] = "bcc"; EmailSearchFilters["CC"] = "cc"; EmailSearchFilters["From"] = "from"; EmailSearchFilters["Subject"] = "subject"; EmailSearchFilters["Text"] = "text"; EmailSearchFilters["To"] = "to"; EmailSearchFilters["UID"] = "uid"; })(EmailSearchFilters || (EmailSearchFilters = {})); exports.emailSearchParameters = [ { displayName: 'Date Range', name: 'emailDateRange', type: 'collection', placeholder: 'Add Date Range', default: { since: '', }, options: [ { displayName: 'Since', name: 'since', type: 'dateTime', default: '', description: 'Start date of search', }, { displayName: 'Before', name: 'before', type: 'dateTime', default: '', description: 'End date of search', }, ], }, { displayName: 'Flags', name: 'emailFlags', type: 'collection', placeholder: 'Add Flag', default: {}, options: [ { displayName: 'Is Answered', name: EmailFlags.Answered, type: 'boolean', default: false, description: 'Whether email is answered', }, { displayName: 'Is Deleted', name: EmailFlags.Deleted, type: 'boolean', default: false, description: 'Whether email is deleted', }, { displayName: 'Is Draft', name: EmailFlags.Draft, type: 'boolean', default: false, description: 'Whether email is draft', }, { displayName: 'Is Flagged', name: EmailFlags.Flagged, type: 'boolean', default: true, description: 'Whether email is flagged', }, { displayName: 'Is Recent', name: EmailFlags.Recent, type: 'boolean', default: true, description: 'Whether email is recent', }, { displayName: 'Is Seen (Read)', name: EmailFlags.Seen, type: 'boolean', default: false, description: 'Whether email is seen', hint: 'If true, only seen emails will be returned. If false, only unseen emails will be returned.', }, ], }, { displayName: 'Search Filters', name: 'emailSearchFilters', type: 'collection', placeholder: 'Add Filter', hint: 'Search filters are case-insensitive and combined with AND (must match all).', default: {}, options: [ { displayName: 'BCC Contains', name: EmailSearchFilters.BCC, type: 'string', default: '', description: 'Email address of BCC recipient', }, { displayName: 'CC Contains', name: EmailSearchFilters.CC, type: 'string', default: '', description: 'Email address of CC recipient', }, { displayName: 'From Contains', name: EmailSearchFilters.From, type: 'string', default: '', description: 'Email address of sender', }, { displayName: 'Subject Contains', name: EmailSearchFilters.Subject, type: 'string', default: '', description: 'Email subject', }, { displayName: 'Text Contains', name: EmailSearchFilters.Text, type: 'string', default: '', description: 'Search text', }, { displayName: 'To Contains', name: EmailSearchFilters.To, type: 'string', default: '', description: 'Email address of recipient', }, { displayName: 'UID', name: EmailSearchFilters.UID, type: 'string', default: '', description: 'Comma-separated list of UIDs', placeholder: '1,2,3', }, ], }, ]; function getEmailSearchParametersFromNode(context, itemIndex) { const searchObject = {}; const emailDateRangeObj = context.getNodeParameter('emailDateRange', itemIndex); const since = emailDateRangeObj.since; const before = emailDateRangeObj.before; if (since) { searchObject.since = new Date(since); } if (before) { searchObject.before = new Date(before); } const emailFlagsObj = context.getNodeParameter('emailFlags', itemIndex); if (EmailFlags.Answered in emailFlagsObj) { searchObject.answered = emailFlagsObj[EmailFlags.Answered]; } if (EmailFlags.Deleted in emailFlagsObj) { searchObject.deleted = emailFlagsObj[EmailFlags.Deleted]; } if (EmailFlags.Draft in emailFlagsObj) { searchObject.draft = emailFlagsObj[EmailFlags.Draft]; } if (EmailFlags.Flagged in emailFlagsObj) { searchObject.flagged = emailFlagsObj[EmailFlags.Flagged]; } if (EmailFlags.Recent in emailFlagsObj) { const recent = emailFlagsObj[EmailFlags.Recent]; if (recent) { searchObject.recent = true; } else { searchObject.old = true; } } if (EmailFlags.Seen in emailFlagsObj) { searchObject.seen = emailFlagsObj[EmailFlags.Seen]; } const emailSearchFiltersObj = context.getNodeParameter('emailSearchFilters', itemIndex); if (EmailSearchFilters.BCC in emailSearchFiltersObj) { searchObject.bcc = emailSearchFiltersObj[EmailSearchFilters.BCC]; } if (EmailSearchFilters.CC in emailSearchFiltersObj) { searchObject.cc = emailSearchFiltersObj[EmailSearchFilters.CC]; } if (EmailSearchFilters.From in emailSearchFiltersObj) { searchObject.from = emailSearchFiltersObj[EmailSearchFilters.From]; } if (EmailSearchFilters.Subject in emailSearchFiltersObj) { searchObject.subject = emailSearchFiltersObj[EmailSearchFilters.Subject]; } if (EmailSearchFilters.Text in emailSearchFiltersObj) { searchObject.body = emailSearchFiltersObj[EmailSearchFilters.Text]; } if (EmailSearchFilters.To in emailSearchFiltersObj) { searchObject.to = emailSearchFiltersObj[EmailSearchFilters.To]; } if (EmailSearchFilters.UID in emailSearchFiltersObj) { searchObject.uid = emailSearchFiltersObj[EmailSearchFilters.UID]; } return searchObject; } //# sourceMappingURL=EmailSearchParameters.js.map