66 lines
1.3 KiB
TypeScript
66 lines
1.3 KiB
TypeScript
/**
|
|
* Authentication types for PodTUI
|
|
* Authentication is optional and disabled by default
|
|
*/
|
|
|
|
/** User profile information */
|
|
export interface User {
|
|
id: string
|
|
email: string
|
|
name: string
|
|
createdAt: Date
|
|
lastLoginAt?: Date
|
|
syncEnabled: boolean
|
|
}
|
|
|
|
/** Authentication state */
|
|
export interface AuthState {
|
|
user: User | null
|
|
isAuthenticated: boolean
|
|
isLoading: boolean
|
|
error: AuthError | null
|
|
}
|
|
|
|
/** Authentication error */
|
|
export interface AuthError {
|
|
code: AuthErrorCode
|
|
message: string
|
|
}
|
|
|
|
/** Error codes for authentication */
|
|
export enum AuthErrorCode {
|
|
INVALID_CREDENTIALS = "INVALID_CREDENTIALS",
|
|
INVALID_CODE = "INVALID_CODE",
|
|
CODE_EXPIRED = "CODE_EXPIRED",
|
|
NETWORK_ERROR = "NETWORK_ERROR",
|
|
UNKNOWN_ERROR = "UNKNOWN_ERROR",
|
|
}
|
|
|
|
/** Login credentials */
|
|
export interface LoginCredentials {
|
|
email: string
|
|
password: string
|
|
}
|
|
|
|
/** Code validation request */
|
|
export interface CodeValidationRequest {
|
|
code: string
|
|
}
|
|
|
|
/** OAuth provider types */
|
|
export enum OAuthProvider {
|
|
GOOGLE = "google",
|
|
APPLE = "apple",
|
|
}
|
|
|
|
/** OAuth provider configuration */
|
|
export interface OAuthProviderConfig {
|
|
id: OAuthProvider
|
|
name: string
|
|
enabled: boolean
|
|
description: string
|
|
}
|
|
|
|
/** Auth screen types for navigation */
|
|
export type AuthScreen = "login" | "code" | "oauth" | "profile"
|