[package]
name = "alien-core"
version.workspace = true
edition.workspace = true
authors.workspace = true
description.workspace = true
license-file.workspace = true

[features]
default = []
openapi = ["dep:utoipa"]
jsonschema = ["dep:schemars"]
test-utils = []
local = ["tokio/fs"]

[dependencies]
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
bon = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
indexmap = { workspace = true, features = ["serde"] }
clap = { workspace = true, features = ["derive"], optional = true }
utoipa = { workspace = true, features = ["indexmap", "chrono"], optional = true }
schemars = { workspace = true, features = ["indexmap", "chrono"], optional = true }
uuid = { workspace = true, features = ["v4", "serde"] }
regex = { workspace = true }
nanoid = { workspace = true }
tokio = { workspace = true }
async-trait = { workspace = true }
bytes = { workspace = true }
reqwest = { workspace = true }
base64 = { workspace = true }
alien-macros = { workspace = true }
alien-error = { workspace = true, features = ["openapi"] }
thiserror = { workspace = true }
tracing = { workspace = true }
url = { workspace = true, features = ["serde"] }

[dev-dependencies]
insta = { workspace = true, features = ["yaml", "json"] }
rstest = { workspace = true }
axum = { workspace = true, features = ["tokio", "http2"] }
futures = { workspace = true }

[[bin]]
name = "schema_exporter"
path = "src/bin/schema_exporter.rs"
required-features = ["clap", "openapi"]
