[package]
name    = "solitaire_data"
version.workspace = true
license.workspace = true
edition.workspace = true

[dependencies]
solitaire_core = { workspace = true }
solitaire_sync = { workspace = true }
klondike  = { workspace = true }
card_game = { workspace = true }
serde          = { workspace = true }
serde_json     = { workspace = true }
chrono         = { workspace = true }
thiserror      = { workspace = true }
async-trait    = { workspace = true }
uuid           = { workspace = true }

# These deps are not available / not needed on wasm32:
#   dirs     — platform data directories (no filesystem on browser)
#   reqwest  — native HTTP client (sync/analytics gated out on wasm32)
#   tokio    — OS-threaded async runtime (mio doesn't compile on wasm32)
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
dirs           = { workspace = true }
reqwest        = { workspace = true }
tokio          = { workspace = true }
# Theme-store downloads are verified against the catalog's SHA-256
# before the archive is handed to the engine's theme importer.
sha2           = { workspace = true }

# `keyring-core` is the typed Entry/Error API used by
# `auth_tokens`. The crate's own dependency tree pulls in
# `rpassword` which uses `libc::__errno_location` — a symbol the
# Android NDK doesn't expose (`__errno` lives at a different path
# on bionic). On Android `auth_tokens` falls back to a stub
# implementation that always returns `KeychainUnavailable`; the
# real backend lands when we wire Android Keystore via JNI.
[target.'cfg(all(not(target_os = "android"), not(target_arch = "wasm32")))'.dependencies]
keyring-core   = { workspace = true }

[target.'cfg(target_os = "android")'.dependencies]
jni            = { workspace = true }

[dev-dependencies]
solitaire_core   = { workspace = true, features = ["test-support"] }
solitaire_server = { path = "../solitaire_server" }
solitaire_sync   = { workspace = true }
axum             = { workspace = true }
sqlx             = { workspace = true }
jsonwebtoken     = { workspace = true }
uuid             = { workspace = true }
chrono           = { workspace = true }
# theme_store_round_trip builds a theme zip in a tempdir for the
# in-process store server.
zip              = { workspace = true }
tempfile         = { workspace = true }

[lints]
workspace = true
