import { User, UserManager } from 'oidc-client-ts'; import { oidcConfig } from './config'; import { parseOidcError, type AuthError } from './errors'; const userManager = new UserManager(oidcConfig); export const login = async (): Promise => { try { await userManager.signinRedirect(); } catch (error) { console.error('Login redirect failed:', error); throw parseOidcError(error); } }; export const logout = async (): Promise => { try { await userManager.signoutRedirect(); } catch (error) { console.error('Logout redirect failed:', error); throw parseOidcError(error); } }; export const handleCallback = async (): Promise => { try { const user = await userManager.signinRedirectCallback(); return user; } catch (error) { console.error('Callback handling failed:', error); throw parseOidcError(error); } }; export const getUser = async (): Promise => { try { const user = await userManager.getUser(); return user; } catch (error) { console.error('Error fetching user:', error); return null; } }; export type { AuthError };