mod config;
mod jwt;
mod middleware;
pub mod setup;
mod users;
pub use config::{AuthConfig, AuthConfigBuilder};
pub use jwt::{Claims, JwtManager, TokenPair};
pub use middleware::{AuthLayer, AuthState, RequireAuth};
pub use setup::{BootstrapManager, SetupStatus};
pub use users::{User, UserRole, UserStore};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum AuthError {
#[error("Invalid credentials")]
InvalidCredentials,
#[error("User not found: {0}")]
UserNotFound(String),
#[error("User already exists: {0}")]
UserExists(String),
#[error("Token error: {0}")]
TokenError(String),
#[error("Permission denied: {0}")]
PermissionDenied(String),
#[error("Setup required: no admin user configured")]
SetupRequired,
#[error("Invalid or expired bootstrap token")]
InvalidBootstrapToken,
#[error("Storage error: {0}")]
Storage(String),
#[error("Config error: {0}")]
Config(String),
}