export const OAuthProcess = {
    LOGIN: 'login',
    CONNECT: 'connect'
}

export const AuthenticatorType = {
    TOTP: 'totp',
    RECOVERY_CODES: 'recovery_codes',
    WEBAUTHN: 'webauthn'
}

export const Flows = {
    LOGIN: 'login',
    LOGIN_BY_CODE: 'login_by_code',
    MFA_AUTHENTICATE: 'mfa_authenticate',
    MFA_REAUTHENTICATE: 'mfa_reauthenticate',
    MFA_TRUST: 'mfa_trust',
    MFA_WEBAUTHN_SIGNUP: 'mfa_signup_webauthn',
    PASSWORD_RESET_BY_CODE: 'password_reset_by_code',
    PROVIDER_REDIRECT: 'provider_redirect',
    PROVIDER_SIGNUP: 'provider_signup',
    REAUTHENTICATE: 'reauthenticate',
    SIGNUP: 'signup',
    VERIFY_EMAIL: 'verify_email',
}

export const apiURL = {
    // Meta
    CONFIG: '/config',

    // Account management
    CHANGE_PASSWORD: '/account/password/change',
    EMAIL: '/account/email',
    PROVIDERS: '/account/providers',

    // Account management: 2FA
    AUTHENTICATORS: '/account/authenticators',
    RECOVERY_CODES: '/account/authenticators/recovery-codes',
    TOTP_AUTHENTICATOR: '/account/authenticators/totp',

    // Auth: Basics
    LOGIN: '/auth/login',
    REQUEST_LOGIN_CODE: '/auth/code/request',
    CONFIRM_LOGIN_CODE: '/auth/code/confirm',
    SESSION: '/auth/session',
    REAUTHENTICATE: '/auth/reauthenticate',
    REQUEST_PASSWORD_RESET: '/auth/password/request',
    RESET_PASSWORD: '/auth/password/reset',
    SIGNUP: '/auth/signup',
    VERIFY_EMAIL: '/auth/email/verify',

    // Auth: 2FA
    MFA_AUTHENTICATE: '/auth/2fa/authenticate',
    MFA_REAUTHENTICATE: '/auth/2fa/reauthenticate',
    MFA_TRUST: '/auth/2fa/trust',

    // Auth: Social
    PROVIDER_SIGNUP: '/auth/provider/signup',
    REDIRECT_TO_PROVIDER: '/auth/provider/redirect',
    PROVIDER_TOKEN: '/auth/provider/token',

    // Auth: Sessions
    SESSIONS: '/auth/sessions',

    // Auth: WebAuthn
    REAUTHENTICATE_WEBAUTHN: '/auth/webauthn/reauthenticate',
    AUTHENTICATE_WEBAUTHN: '/auth/webauthn/authenticate',
    LOGIN_WEBAUTHN: '/auth/webauthn/login',
    SIGNUP_WEBAUTHN: '/auth/webauthn/signup',
    WEBAUTHN_AUTHENTICATOR: '/account/authenticators/webauthn'
}
