import { URL } from 'url';
export async function sendVerificationEmail(args) {
    // Verify token from e-mail
    const { collection: { config: collectionConfig }, config, disableEmail, email, req, token, user } = args;
    if (!disableEmail) {
        const protocol = new URL(req.url).protocol // includes the final :
        ;
        const serverURL = config.serverURL !== null && config.serverURL !== '' ? config.serverURL : `${protocol}//${req.headers.get('host')}`;
        const verificationURL = `${serverURL}${config.routes.admin}/${collectionConfig.slug}/verify/${token}`;
        let html = `${req.t('authentication:newAccountCreated', {
            serverURL: config.serverURL,
            verificationURL
        })}`;
        const verify = collectionConfig.auth.verify;
        // Allow config to override email content
        if (typeof verify.generateEmailHTML === 'function') {
            html = await verify.generateEmailHTML({
                req,
                token,
                user
            });
        }
        let subject = req.t('authentication:verifyYourEmail');
        // Allow config to override email subject
        if (typeof verify.generateEmailSubject === 'function') {
            subject = await verify.generateEmailSubject({
                req,
                token,
                user
            });
        }
        // eslint-disable-next-line @typescript-eslint/no-floating-promises
        email.sendEmail({
            from: `"${email.defaultFromName}" <${email.defaultFromAddress}>`,
            html,
            subject,
            to: user.email
        });
    }
}

//# sourceMappingURL=sendVerificationEmail.js.map