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

[lib]
crate-type = ["rlib"]

[dependencies]
alien-client-core = { workspace = true }
alien-core = { workspace = true }
alien-error = { workspace = true }

serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
bon = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
tracing = { workspace = true }
tokio = { workspace = true, features = ["sync", "macros", "io-util", "rt", "time"] }
uuid = { workspace = true, features = ["v4", "serde"] }
reqwest = { workspace = true, features = ["json", "rustls-tls-webpki-roots"] }
http = { workspace = true }
base64 = { workspace = true }
form_urlencoded = { workspace = true }
urlencoding = { workspace = true }
md5 = { workspace = true }
sha2 = { workspace = true }
hex = { workspace = true }
backon = { workspace = true }
async-trait = { workspace = true }
quick-xml = { version = "0.37.0", features = ["serialize", "overlapped-lists"] }
mockall = { workspace = true, optional = true }

# AWS specific dependencies
aws-credential-types = { workspace = true }
aws-sigv4 = { workspace = true }

# WASM-specific dependencies
[target.'cfg(target_arch = "wasm32")'.dependencies]
js-sys = "0.3"
wasm-bindgen = "0.2"

[dev-dependencies]
alien-aws-clients = { path = ".", features = ["test-utils"] }
rand = { workspace = true }
reqwest = { workspace = true, features = ["json", "rustls-tls-webpki-roots"] }
serde_json = { workspace = true, features = ["preserve_order"] }
tempfile = { workspace = true }
workspace_root = { workspace = true }
dotenvy = { workspace = true }
test-context = { workspace = true }
regex = { workspace = true }
anyhow = { workspace = true }
tracing-subscriber = { workspace = true }
rcgen = "0.13.2"

[features]
default = []
test-utils = ["dep:mockall"]
