[package]
name = "swarmd"
version = "0.1.21"
edition = "2021"
description = "Swarmd CLI"
authors = ["Swarmd Team"]
homepage = "https://swarmd.io"
repository = "https://github.com/swarmd_io/swarmd"
documentation = "https://docs.swarmd.io"
license = "MIT"
keywords = ["worker", "cli", "typescript", "javascript"]
categories = ["command-line-utilities"]

[[bin]]
name = "swarmd"
path = "./src/main.rs"
doc = false

[features]
default = []

[build-dependencies]
chrono = "0.4"

[dependencies]
anyhow.workspace = true
async-trait.workspace = true
async-stream.workspace = true
base64.workspace = true
clap = { workspace = true, features = ["derive"] }
chrono = "0.4"
config.workspace = true
derivative.workspace = true
derive_builder.workspace = true
dotenv.workspace = true
indicatif = { workspace = true, features = ["tokio"] }
thiserror.workspace = true
serde.workspace = true
serde_json.workspace = true
toml.workspace = true
tower-http = { version = "0.4", features = ["trace"] }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "signal"] }
tokio-util = { workspace = true, features = ["io"] }

directories = "5"
git2 = { version = "0.18", features = ["vendored-libgit2"] }
cfg-if = "1"
serde_with = "3"
notify = "6"
notify-debouncer-full = "0.3"

swarmd_slug-rs.workspace = true
swarmd_generated.workspace = true

swarmd_local_runtime.workspace = true
deno_core.workspace = true

self_update = { version = "0.39", features = ["archive-tar", "compression-flate2"] }

# Log stack
swarmd_instruments.workspace = true
tracing = { version = "0.1", features = ["max_level_trace", "release_max_level_debug"] }
tracing-core = "0.1"
tracing-futures = { version = "0.2", features = ["tokio"] }
tracing-log = "0.2"
tracing-subscriber = { version = "0.3", features = ["registry", "env-filter"] }

# Internal
reqwest = { version = "0.11", features = ["json", "multipart", "tokio-rustls", "gzip", "stream"] }
console = "0.15"
futures = { version = "0.3" }
once_cell = "1.16.0"
url = { version = "2", features = ["serde"] }
urlencoding = "2.1.2"
axum = "0.6.12"
webbrowser = "0.8.8"

[target.'cfg(not(any(target_os = "macos", target_os = "windows")))'.dependencies]
openssl = { version = "0.10", features = ["vendored"] } 

[dev-dependencies]
insta.workspace = true