[workspace]

[package]
name = "kompress_eshop"
version = "0.1.0"
edition = "2024"
publish = false
default-run = "kompress-eshop-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" }
tokio = { version = "1.52", 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.12" }
migration = { path = "migration" }
sea-orm = { version = "1.1", features = [
  "sqlx-sqlite",
  "sqlx-postgres",
  "runtime-tokio-rustls",
  "macros",
] }
chrono = { version = "0.4" }
time = { version = "0.3" }
dotenvy = { version = "0.15" }
validator = { version = "0.20" }
uuid = { version = "1.23", features = ["v4"] }
include_dir = { version = "0.7" }
# outbound HTTP for carrier shipment APIs (Packeta / DPD / DHL)
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
# view engine i18n
fluent-templates = { version = "0.13", features = ["tera"] }
unic-langid = { version = "0.9" }
# /view engine
axum-extra = { version = "0.10", features = ["form"] }
bytes = { version = "1" }
axum-casbin = "1.3.0"
loco-oauth2 = "0.5.0"
passwords = "3.1.16"
tower-sessions = "0.14"
# TOTP (Google Authenticator) for optional two-factor auth
totp-rs = { version = "5", features = ["qr", "gen_secret"] }
# CSRF: HMAC-signed double-submit token + body inspection for the `_csrf` field
hmac = { version = "0.12" }
sha2 = { version = "0.10" }
subtle = { version = "2.6" }
form_urlencoded = { version = "1" }
multer = { version = "3" }
futures-util = { version = "0.3" }

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

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