import { betterAuth } from "better-auth"; import { drizzleAdapter } from "better-auth/adapters/drizzle"; import { admin, jwt } from "better-auth/plugins"; import { sveltekitCookies } from "better-auth/svelte-kit"; import { getRequestEvent } from "$app/server"; import { ENV } from "varlock/env"; import { db } from "$lib/db"; import { sendEmail } from "$lib/server/email"; export const auth = betterAuth({ database: drizzleAdapter(db, { provider: "sqlite", }), emailAndPassword: { enabled: true, requireEmailVerification: true, sendResetPassword: async ({ user, url }, _request) => { void sendEmail({ name: user.name, email: user.email, subject: "Password Reset Request", url, template: "reset-password", }); }, }, plugins: [ admin({ defaultRole: "contributer", }), sveltekitCookies(getRequestEvent), jwt(), ], baseURL: ENV.PUBLIC_BASE_URL || "http://localhost:6300", trustedOrigins: ["http://localhost:6300"], emailVerification: { sendVerificationEmail: async ({ user, url }, _request) => { void sendEmail({ name: user.name, email: user.email, subject: "Weeekly Dashboard E-Mail Verification", url, template: "verify-email", }); }, }, });