[package]
name = "rustelo_auth"
version = "0.1.0"
edition = "2021"
description = "Rustelo Framework - Authentication and authorization system"
license = "MIT"
repository = "https://github.com/your-org/rustelo"

[dependencies]
# Framework dependencies
rustelo_core = { workspace = true }

# Authentication dependencies (core - always available)
jsonwebtoken = { workspace = true }
argon2 = { workspace = true }
tower-sessions = { workspace = true }
tower-cookies = { workspace = true }
time = { workspace = true }

# Optional authentication features
oauth2 = { workspace = true, optional = true }
sqlx = { workspace = true, optional = true }

# 2FA support (optional)
totp-rs = { workspace = true, optional = true }
qrcode = { workspace = true, optional = true }
base32 = { workspace = true, optional = true }
sha2 = { workspace = true }
base64 = { workspace = true }

# Core utilities
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { workspace = true }
chrono = { workspace = true }
thiserror = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }

# Cryptography (optional)
aes-gcm = { workspace = true, optional = true }

[features]
default = ["database"]
database = ["dep:sqlx"]
oauth = ["dep:oauth2"]
two-factor = ["dep:totp-rs", "dep:qrcode", "dep:base32"]
encryption = ["dep:aes-gcm"]
