import Handlebars from 'handlebars'; import { existsSync } from 'fs'; import { readFile } from 'fs/promises'; import { join as pathJoin } from 'path'; // eslint-disable-next-line import/no-cycle import { GenericHelpers } from '../..'; import * as config from '../../../config'; import { InviteEmailData, PasswordResetData, SendEmailResult, UserManagementMailerImplementation, } from './Interfaces'; import { NodeMailer } from './NodeMailer'; type Template = HandlebarsTemplateDelegate; type TemplateName = 'invite' | 'passwordReset'; const templates: Partial> = {}; async function getTemplate( templateName: TemplateName, defaultFilename = `${templateName}.html`, ): Promise