[package]
name = "cuqueclicker"
# Hardcoded at 0.0.0; release.yml patches this from the git tag at build time.
# A 0.0.0 binary reports itself as "(dev)" in the HUD.
version = "0.7.0"
edition = "2024"
description = "A TUI idle clicker where you finger an ASCII ass instead of clicking a cookie."
repository = "https://github.com/flipbit03/cuqueclicker"
readme = "README.md"
license = "MIT"
keywords = ["game", "tui", "ratatui", "idle", "clicker"]
categories = ["games", "command-line-utilities"]
authors = ["Cadu <cadu.coelho@gmail.com>"]

[lib]
# Renamed to disambiguate from the `cuqueclicker` binary target — trunk
# (the wasm bundler) can't tell two same-named artifacts apart, and
# `data-target-name="cuqueclicker_lib"` in `index.html` selects the
# cdylib unambiguously. The native bin still ships as `cuqueclicker`;
# only the in-crate symbol changes.
name = "cuqueclicker_lib"
crate-type = ["cdylib", "rlib"]

[features]
# Enabled by release.yml when building binaries for GitHub releases. Controls
# how `cuqueclicker self update` re-installs itself: ON → re-run the install
# script; OFF → `cargo install cuqueclicker --force`.
binary-release = []

# --- Cross-platform deps ------------------------------------------------
# Anything in this section must compile on both native and `wasm32-unknown-unknown`.
# `ratatui` is included with `default-features = false` here; the native target
# block below re-enables `crossterm` (a default feature that's std-only).
[dependencies]
anyhow = "1.0.102"
rand = "0.10.1"
ratatui = { version = "0.30.0", default-features = false, features = ["all-widgets", "macros", "layout-cache", "underline-color"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"

# --- Native-only deps ---------------------------------------------------
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
arc-swap = "1.9.1"
clap = { version = "4.6.1", features = ["derive"] }
crossterm = "0.29.0"
ratatui = { version = "0.30.0", features = ["crossterm"] }

# --- Web-only deps ------------------------------------------------------
[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1"
# `rand 0.10` pulls `getrandom 0.4`; the `wasm_js` feature is required on
# `wasm32-unknown-unknown` to back the system RNG (otherwise `rand::rng()`
# panics at runtime).
getrandom = { version = "0.4", features = ["wasm_js"] }
ratzilla = "0.3.0"
wasm-bindgen = "0.2"
web-sys = { version = "0.3", features = ["Storage", "Window", "Performance", "Document", "Element", "DomRect", "HtmlCanvasElement", "WheelEvent"] }
