// Email wiring: the provider `app/lib/runtime.ts` registers, plus auth senders // that render through the templates in `emails/` (preview: `pnpm email:dev`). // Kept out of runtime.ts so `app/lib/auth.ts` can import the senders without an // import cycle once runtime.ts wires Better Auth. import { createConsoleEmailProvider } from "@raredays/email/testing"; import { renderResetPasswordEmail } from "../../emails/reset-password"; import { renderVerifyEmail } from "../../emails/verify-email"; // Console adapter for dev: prints each message's plain text. Swap to the Resend // provider (`--vendors email:resend`) for production delivery. export const emailProvider = createConsoleEmailProvider(); interface AuthEmail { user: { email: string }; url: string; } // Shaped for Better Auth's callbacks: // emailAndPassword: { enabled: true, sendResetPassword: sendResetPasswordEmail }, // emailVerification: { sendVerificationEmail }, export async function sendResetPasswordEmail({ user, url }: AuthEmail): Promise { await emailProvider.send({ to: user.email, ...(await renderResetPasswordEmail({ url })) }); } export async function sendVerificationEmail({ user, url }: AuthEmail): Promise { await emailProvider.send({ to: user.email, ...(await renderVerifyEmail({ url })) }); }