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.

53 lines 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMailboxQuotaOperation = void 0; const SearchFieldParameters_1 = require("../../../utils/SearchFieldParameters"); exports.getMailboxQuotaOperation = { operation: { name: 'Get Quota', value: 'getMailboxQuota', description: 'Get storage quota and space usage information for email accounts. Perfect for AI agents to monitor storage limits, plan cleanup operations, or warn about quota issues.', }, parameters: [ { ...SearchFieldParameters_1.parameterSelectMailbox, description: 'Select the mailbox to check quota for. AI agents typically use INBOX unless provider supports per-folder quotas.', hint: 'Leave as INBOX unless your email provider supports per-folder quotas', }, ], async executeImapAction(context, itemIndex, client) { var _a; const returnData = []; const mailboxPath = (0, SearchFieldParameters_1.getMailboxPathFromNodeParameter)(context, itemIndex); const info = await client.getQuota(mailboxPath); if (info === false || info === undefined) { returnData.push({ json: { operation: 'getMailboxQuota', mailbox: mailboxPath, quotaSupported: false, message: 'Quota information not available for this mailbox', retrievedAt: new Date().toISOString(), }, }); } else { const item_json = JSON.parse(JSON.stringify(info)); item_json.operation = 'getMailboxQuota'; item_json.mailbox = mailboxPath; item_json.quotaSupported = true; item_json.retrievedAt = new Date().toISOString(); if (((_a = item_json.storage) === null || _a === void 0 ? void 0 : _a.used) && item_json.storage.limit) { item_json.storageUsagePercent = Math.round((item_json.storage.used / item_json.storage.limit) * 100); item_json.storageAvailable = item_json.storage.limit - item_json.storage.used; item_json.storageWarning = item_json.storageUsagePercent > 80; item_json.storageCritical = item_json.storageUsagePercent > 95; } returnData.push({ json: item_json, }); } return returnData; }, }; //# sourceMappingURL=MailboxGetQuota.js.map