import NextAuth, { type DefaultSession } from "next-auth"; import Gitea, { GiteaProfile } from "@/lib/providers/gitea"; declare module "next-auth" { interface User extends GiteaProfile {} interface Session { user: { language: string; } & DefaultSession["user"]; } } export const { handlers, signIn, signOut, auth } = NextAuth({ providers: [ Gitea({ clientId: process.env.AUTH_GITEA_ID, clientSecret: process.env.AUTH_GITEA_SECRET, enterprise: { baseUrl: process.env.AUTH_GITEA_URL, }, }), ], secret: process.env.AUTH_SECRET, callbacks: { jwt({ token, user }) { if (user) { token.language = user.language; } return token; }, session({ session, token }) { session.user.language = token.language as string; return session; }, }, });