harn-cli 0.7.25

CLI for the Harn programming language — run, test, REPL, format, and lint
[package]
name = "harn-cli"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "CLI for the Harn programming language — run, test, REPL, format, and lint"
build = "build.rs"
# Two bins ship in this crate: `harn` (the main CLI) and
# `harn-container-probe` (a tiny tool used by the Dockerfile healthcheck,
# introduced in #186). `default-run` makes plain `cargo run -p harn-cli`
# invoke the main CLI so hooks and release scripts don't need to spell
# out `--bin harn` everywhere.
default-run = "harn"
# portal-dist/ is a gitignored build artifact produced by `npm run build` in
# crates/harn-cli/portal. It is embedded at compile time via include_dir! in
# src/commands/portal/assets.rs, so it must ship with the published crate.
# The release workflow (scripts/release_ship.sh) builds the portal before
# invoking cargo publish; this `include` field forces cargo to package the
# resulting portal-dist/ tree even though it is gitignored.
include = [
    "src/**/*",
    "build.rs",
    "Cargo.toml",
    "portal-dist/**/*",
]

[[bin]]
name = "harn"
path = "src/main.rs"

[dependencies]
harn-lexer = { path = "../harn-lexer", version = "0.7" }
harn-parser = { path = "../harn-parser", version = "0.7" }
harn-vm = { path = "../harn-vm", version = "0.7", features = ["otel"] }
harn-lint = { path = "../harn-lint", version = "0.7" }
harn-modules = { path = "../harn-modules", version = "0.7" }
harn-fmt = { path = "../harn-fmt", version = "0.7" }
async-trait = "0.1"
axum = "0.8"
axum-server = { version = "0.7", features = ["tls-rustls"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "io-util", "signal", "sync", "time"] }
tokio-stream = "0.1"
serde_json = "1"
reedline = "0.47"
nu-ansi-term = "0.50"
toml = "1.1"
serde = { version = "1", features = ["derive"] }
notify = "8"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "blocking"] }
futures = "0.3"
sha2 = "0.10"
subtle = "2.6"
base64 = "0.22"
ed25519-dalek = { version = "2", features = ["pem", "pkcs8"] }
url = "2"
webbrowser = "1"
rand = "0.10"
regex = "1"
clap = { version = "4", features = ["derive", "env"] }
tower = { version = "0.5", features = ["util"] }
time = { version = "0.3", features = ["formatting", "parsing"] }
tempfile = "3"
include_dir = "0.7"
uuid = { version = "1", features = ["v4", "v7"] }
chrono-tz = "0.10.4"
croner = "3.0.1"
jmespath = "0.5.0"
rustls-pemfile = "2"
rustls = { version = "0.23", features = ["aws-lc-rs"] }
tracing = "0.1"

[dev-dependencies]
hmac = "0.12"
rcgen = "0.13"