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.

146 lines 5.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEmailSearchParametersFromNode = getEmailSearchParametersFromNode; exports.validateEmailSearchParameters = validateEmailSearchParameters; function enhanceSearchTermForAI(searchTerm, fieldType) { if (!searchTerm || searchTerm.trim() === '') { return searchTerm; } const trimmed = searchTerm.trim(); if (trimmed.includes('*') || trimmed.includes('@') || trimmed.startsWith('"')) { return trimmed; } if (fieldType === 'email') { if (!trimmed.includes(' ') && !trimmed.includes('.') && !trimmed.includes('@')) { return `*${trimmed}*`; } if (trimmed.includes(' ')) { return `*${trimmed}*`; } } return trimmed; } function getEmailSearchParametersFromNode(context, itemIndex) { const searchObject = {}; const interfaceMode = context.getNodeParameter('interfaceMode', itemIndex, 'ai_simple'); const fromEmailDirect = context.getNodeParameter('From_Email_Address', itemIndex, '', { extractValue: true, }); const subjectDirect = context.getNodeParameter('Subject_Contains', itemIndex, '', { extractValue: true, }); const contentDirect = context.getNodeParameter('Email_Content_Contains', itemIndex, '', { extractValue: true, }); const toEmailDirect = context.getNodeParameter('To_Email_Address', itemIndex, '', { extractValue: true, }); const sinceDateDirect = context.getNodeParameter('Since_Date', itemIndex, '', { extractValue: true, }); const beforeDateDirect = context.getNodeParameter('Before_Date', itemIndex, '', { extractValue: true, }); const showUnreadOnly = context.getNodeParameter('Show_Unread_Only', itemIndex, false, { extractValue: true, }); if (fromEmailDirect && fromEmailDirect.trim() !== '') { const enhanced = interfaceMode === 'ai_simple' ? enhanceSearchTermForAI(fromEmailDirect, 'email') : fromEmailDirect; searchObject.from = enhanced; } if (subjectDirect && subjectDirect.trim() !== '') { const enhanced = interfaceMode === 'ai_simple' ? enhanceSearchTermForAI(subjectDirect, 'subject') : subjectDirect; searchObject.subject = enhanced; } if (contentDirect && contentDirect.trim() !== '') { const enhanced = interfaceMode === 'ai_simple' ? enhanceSearchTermForAI(contentDirect, 'content') : contentDirect; searchObject.body = enhanced; } if (toEmailDirect && toEmailDirect.trim() !== '') { const enhanced = interfaceMode === 'ai_simple' ? enhanceSearchTermForAI(toEmailDirect, 'email') : toEmailDirect; searchObject.to = enhanced; } if (sinceDateDirect && sinceDateDirect.trim() !== '') { searchObject.since = new Date(sinceDateDirect); } if (beforeDateDirect && beforeDateDirect.trim() !== '') { searchObject.before = new Date(beforeDateDirect); } if (interfaceMode === 'ai_simple' && showUnreadOnly) { searchObject.seen = false; } if (interfaceMode === 'ai_advanced' || interfaceMode === 'human_full') { const emailDateRangeObj = context.getNodeParameter('emailDateRange', itemIndex, {}); const since = emailDateRangeObj.since; const before = emailDateRangeObj.before; if (since && !searchObject.since) { searchObject.since = new Date(since); } if (before && !searchObject.before) { searchObject.before = new Date(before); } const emailFlagsObj = context.getNodeParameter('emailFlags', itemIndex, {}); if ('answered' in emailFlagsObj) { searchObject.answered = emailFlagsObj.answered; } if ('deleted' in emailFlagsObj) { searchObject.deleted = emailFlagsObj.deleted; } if ('draft' in emailFlagsObj) { searchObject.draft = emailFlagsObj.draft; } if ('flagged' in emailFlagsObj) { searchObject.flagged = emailFlagsObj.flagged; } if ('recent' in emailFlagsObj) { const recent = emailFlagsObj.recent; if (recent) { searchObject.recent = true; } else { searchObject.old = true; } } if ('seen' in emailFlagsObj && !showUnreadOnly) { searchObject.seen = emailFlagsObj.seen; } const emailSearchFiltersObj = context.getNodeParameter('emailSearchFilters', itemIndex, {}); if ('bcc' in emailSearchFiltersObj) { searchObject.bcc = emailSearchFiltersObj.bcc; } if ('cc' in emailSearchFiltersObj) { searchObject.cc = emailSearchFiltersObj.cc; } if ('from' in emailSearchFiltersObj && !searchObject.from) { searchObject.from = emailSearchFiltersObj.from; } if ('subject' in emailSearchFiltersObj && !searchObject.subject) { searchObject.subject = emailSearchFiltersObj.subject; } if ('text' in emailSearchFiltersObj && !searchObject.body) { searchObject.body = emailSearchFiltersObj.text; } if ('to' in emailSearchFiltersObj && !searchObject.to) { searchObject.to = emailSearchFiltersObj.to; } if ('uid' in emailSearchFiltersObj) { searchObject.uid = emailSearchFiltersObj.uid; } } return searchObject; } function validateEmailSearchParameters(searchObject) { if (searchObject.since && searchObject.before && searchObject.since > searchObject.before) { return false; } return true; } //# sourceMappingURL=ParameterHelpers.js.map