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
JavaScript
;
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