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.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.credentialNames = exports.CREDENTIALS_TYPE_OAUTH2 = exports.CREDENTIALS_TYPE_CORE_IMAP_ACCOUNT = exports.CREDENTIALS_TYPE_THIS_NODE = void 0;
exports.getImapCredentials = getImapCredentials;
const ImapCredentials_credentials_1 = require("../../../credentials/ImapCredentials.credentials");
exports.CREDENTIALS_TYPE_THIS_NODE = 'imapThisNode';
exports.CREDENTIALS_TYPE_CORE_IMAP_ACCOUNT = 'coreImapAccount';
exports.CREDENTIALS_TYPE_OAUTH2 = 'oauth2';
exports.credentialNames = {
[exports.CREDENTIALS_TYPE_THIS_NODE]: ImapCredentials_credentials_1.IMAP_CREDENTIALS_NAME,
[exports.CREDENTIALS_TYPE_CORE_IMAP_ACCOUNT]: 'imap',
[exports.CREDENTIALS_TYPE_OAUTH2]: 'oAuth2Api',
};
const credentialsProviders = [
{
credentialsType: exports.CREDENTIALS_TYPE_THIS_NODE,
credentialsName: exports.credentialNames[exports.CREDENTIALS_TYPE_THIS_NODE],
getImapCredentials: async function (context) {
const credentials = (await context.getCredentials(this.credentialsName));
return credentials;
},
},
{
credentialsType: exports.CREDENTIALS_TYPE_CORE_IMAP_ACCOUNT,
credentialsName: exports.credentialNames[exports.CREDENTIALS_TYPE_CORE_IMAP_ACCOUNT],
getImapCredentials: async function (context) {
const credentials = await context.getCredentials(this.credentialsName);
const returnCredentials = {
host: credentials.host,
port: credentials.port,
user: credentials.user,
password: credentials.password,
tls: credentials.secure,
allowUnauthorizedCerts: credentials.allowUnauthorizedCerts,
};
return returnCredentials;
},
},
];
async function getImapCredentials(context) {
const FIRST_NODE_INDEX = 0;
const credentialsType = context.getNodeParameter('authentication', FIRST_NODE_INDEX);
const provider = credentialsProviders.find((provider) => provider.credentialsType === credentialsType);
if (!provider) {
throw new Error(`Unsupported credentials type: ${credentialsType}`);
}
const credentials = await provider.getImapCredentials(context);
context.logger.info(`Using credentials from ${provider.credentialsName}`);
context.logger.info(`Host: ${credentials.host}:${credentials.port}`);
context.logger.info(`User: ${credentials.user}`);
return credentials;
}
//# sourceMappingURL=CredentialsSelector.js.map