[package]
name = "syntaxis-api"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
description = "REST API for syntaxis management"

[[bin]]
name = "syntaxis-api"
path = "src/main.rs"

[package.metadata.syntaxis]
use_wrapper = true
install_mode = "cargo|bin"
config_src = "configs/api"

[dependencies]
syntaxis-core = { path = "../syntaxis" }
shared-api-lib = { path = "../../../shared/rust-api/shared-api-lib", features = ["metrics", "auth", "rate-limit", "websocket", "tls"] }

# Web framework (core dependencies maintained for project-specific needs)
axum = { workspace = true }
tokio = { workspace = true }
tower = { workspace = true }
tower-http = { workspace = true }
async-trait = { workspace = true }

# TLS support
tokio-rustls = { workspace = true }
rustls = { workspace = true }
rustls-pemfile = { workspace = true }

# Serialization
serde = { workspace = true }
serde_json = { workspace = true }
toml = { workspace = true }
uuid = { workspace = true }

# Authentication
jsonwebtoken = { workspace = true }

# CLI argument parsing
clap = { workspace = true }

# Futures
futures = { workspace = true }

# Error handling
thiserror = { workspace = true }
anyhow = { workspace = true }

# Logging/Tracing (kept for project-specific configuration)
tracing = { workspace = true }
tracing-subscriber = { workspace = true }

# Date/time
chrono = { workspace = true }

# Caching
moka = { workspace = true }

# Database (with rustls feature for this crate)
sqlx = { workspace = true }
sqlx-sqlite = { workspace = true }

# Password hashing
argon2 = "0.5"
rand = { workspace = true }
rand_core = { workspace = true }

[dev-dependencies]
tokio-test = { workspace = true }
