[package]
name = "mecomp-tui"
version.workspace = true
edition.workspace = true
authors.workspace = true
description.workspace = true
repository.workspace = true
keywords.workspace = true
categories.workspace = true
readme.workspace = true
license.workspace = true

[package.metadata.wix]
upgrade-guid = "57677435-1364-47BB-AA9A-4F7276A78F51"
path-guid = "92DCCFD8-4F49-4CF5-A6ED-AFED2F5ABFFF"
license = false
eula = false

[[bin]]
name = "mecomp-tui"
test = false
bench = false

[lib]
bench = false

[features]
default = []
autostart-daemon = []

[dependencies]
anyhow.workspace = true
clap.workspace = true
clap_complete.workspace = true
crossterm = { version = "0.29.0", features = [
    "bracketed-paste",
    "event-stream",
], default-features = false }
ratatui = { version = "0.30.0", features = [
    "crossterm",
    "layout-cache",
], default-features = false }
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
tonic.workspace = true
tokio-stream.workspace = true
unicode-width = "0.2.2"

# MECOMP dependencies
mecomp-core = { workspace = true, features = ["notifications"] }
mecomp-storage = { workspace = true }
mecomp-prost.workspace = true

# on windows, we need to use the `windows` crate of `crossterm`
[target.'cfg(target_os = "windows")'.dependencies]
crossterm = { version = "0.29.0", features = [
    "bracketed-paste",
    "windows",
    "event-stream",
], default-features = false }

[dev-dependencies]
pretty_assertions.workspace = true
mecomp-storage = { workspace = true, features = ["serde", "test_utils"] }
mecomp-daemon = { workspace = true }
tempfile = { workspace = true }
surrealdb = { workspace = true }
rstest.workspace = true

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(tarpaulin_include)'] }
