[workspace]

[package]
name = "termi-api"
version = "0.1.0"
edition = "2024"
rust-version = "1.85"
publish = false
default-run = "termi_api-cli"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[workspace.dependencies]
loco-rs = { version = "0.16" }

[dependencies]
loco-rs = { workspace = true  }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1" }
serde_yaml = { version = "0.9" }
tokio = { version = "1.45", default-features = false, features = [
  "rt-multi-thread",
] }
async-trait = { version = "0.1" }
axum = { version = "0.8", features = ["multipart"] }
tracing = { version = "0.1" }
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
regex = { version = "1.11" }
migration = { path = "migration" }
sea-orm = { version = "1.1", features = [
  "sqlx-sqlite",
  "sqlx-postgres",
  "runtime-tokio-rustls",
  "macros",
] }
chrono = { version = "0.4" }
validator = { version = "0.20" }
uuid = { version = "1.6", features = ["v4"] }
include_dir = { version = "0.7" }
axum-extra = { version = "0.10", features = ["form"] }
tower-http = { version = "0.6", features = ["cors"] }
reqwest = { version = "0.12", default-features = false, features = ["blocking", "json", "multipart", "rustls-tls"] }
fastembed = "5.1"
async-stream = "0.3"
base64 = "0.22"
image = { version = "0.25.10", default-features = false, features = ["avif", "gif", "jpeg", "png", "webp"] }
aws-config = "1"
aws-sdk-s3 = "1"
web-push = { version = "0.11.0", default-features = false, features = ["hyper-client"] }
sha2 = "0.10"

[[bin]]
name = "termi_api-cli"
path = "src/bin/main.rs"
required-features = []
[[bin]]
name = "tool"
path = "src/bin/tool.rs"
required-features = []

[profile.release]
strip = "symbols"
lto = "thin"

[dev-dependencies]
loco-rs = { workspace = true, features = ["testing"] }
serial_test = { version = "3.1.1" }
rstest = { version = "0.25" }
insta = { version = "1.34", features = ["redactions", "yaml", "filters"] }
