[package]
name = "vproxy-web"
version = "0.1.0"
edition = "2021"

[build-dependencies]
rust-shared = { path = "../rust-shared" }

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

[dependencies]
leptos = { version = "0.8.0" }
leptos_router = { version = "0.8.0" }
axum = { version = "0.8.0", optional = true }
console_error_panic_hook = { version = "0.1", optional = true }
leptos_axum = { version = "0.8.0", optional = true }
leptos_meta = { version = "0.8.0" }
tokio = { version = "1", features = ["rt-multi-thread"], optional = true }
wasm-bindgen = { version = "=0.2.100", optional = true }
rust-shared = { path = "../rust-shared" }
indoc = "2.0.6"
log = "0.4"
env_logger = { version = "0.11", optional = true }
console_log = { version = "1.0", optional = true }
web-sys = { version = "0.3", features = ["HtmlInputElement", "InputEvent", "console", "Window", "Storage", "Navigator", "Clipboard", "Element", "HtmlElement", "DomRect", "File", "FileList", "FileReader", "Blob"] }
js-sys = "0.3"
gloo-timers = { version = "0.3", features = ["futures"] }
futures-util = "0.3"
reqwest = { version = "0.12", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
hmac = "0.12.1"
sha2 = "0.10.8"
hex = "0.4.3"
strum = { version = "0.26.3", features = ["derive"] }
strum_macros = "0.27.2"
base64 = "0.22"
color-eyre = "0.6.5"
dotenv = "0.15.0"
chrono = { version = "0.4", features = ["serde"] }
urlencoding = "2.1"
wasm-bindgen-futures = { version = "=0.4.50", optional = true }
tower-http = { version = "0.6.6", features = ["set-header"] }
tower = "0.5.2"

[target.'cfg(target_arch = "wasm32")'.dependencies]
# Enable for getrandom 0.3.x users in your graph
getrandom03 = { package = "getrandom", version = "0.3", features = ["wasm_js"] }
# Enable for getrandom 0.2.x users in your graph
getrandom02 = { package = "getrandom", version = "0.2", features = ["js"] }
web-sys = { version = "0.3", features = ["HtmlInputElement", "InputEvent", "Window", "Storage", "Navigator", "Clipboard", "Element", "HtmlElement", "DomRect"] }
gloo-timers = { version = "0.3", features = ["futures"] }

[features]
hydrate = [
    "leptos/hydrate",
    "dep:console_error_panic_hook",
    "dep:wasm-bindgen",
    "dep:wasm-bindgen-futures",
    "dep:console_log",
]
ssr = [
    "dep:axum",
    "dep:tokio",
    "dep:leptos_axum",
    "leptos/ssr",
    "leptos_meta/ssr",
    "leptos_router/ssr",
    "dep:env_logger",
]

[package.metadata.leptos]
# The name used by wasm-bindgen/cargo-leptos for the JS/WASM bundle. Defaults to the crate name
output-name = "vproxy-web"

# The site root folder is where cargo-leptos generate all output. WARNING: all content of this folder will be erased on a rebuild. Use it in your server setup.
site-root = "target/site"

# The site-root relative folder where all compiled output (JS, WASM and CSS) is written
# Defaults to pkg
site-pkg-dir = "pkg"

# [Optional] The source CSS file. If it ends with .sass or .scss then it will be compiled by dart-sass into CSS. The CSS is optimized by Lightning CSS before being written to <site-root>/<site-pkg>/app.css
style-file = "style/main.scss"
# Assets source dir. All files found here will be copied and synchronized to site-root.
# The assets-dir cannot have a sub directory with the same name/path as site-pkg-dir.
#
# Optional. Env: LEPTOS_ASSETS_DIR.
assets-dir = "public"

# The IP and port (ex: 127.0.0.1:3000) where the server serves the content. Use it in your server setup.
site-addr = "127.0.0.1:3000"

# The port to use for automatic reload monitoring
reload-port = 3001

# [Optional] Command to use when running end2end tests. It will run in the end2end dir.
#   [Windows] for non-WSL use "npx.cmd playwright test"
#   This binary name can be checked in Powershell with Get-Command npx
end2end-cmd = "npx playwright test"
end2end-dir = "end2end"

#  The browserlist query used for optimizing the CSS.
browserquery = "defaults"

# The environment Leptos will run in, usually either "DEV" or "PROD"
env = "DEV"

# The features to use when compiling the bin target
#
# Optional. Can be over-ridden with the command line parameter --bin-features
bin-features = ["ssr"]

# If the --no-default-features flag should be used when compiling the bin target
#
# Optional. Defaults to false.
bin-default-features = false

# The features to use when compiling the lib target
#
# Optional. Can be over-ridden with the command line parameter --lib-features
lib-features = ["hydrate"]

# If the --no-default-features flag should be used when compiling the lib target
#
# Optional. Defaults to false.
lib-default-features = false

# The profile to use for the lib target when compiling for release
#
# Optional. Defaults to "release".
lib-profile-release = "wasm-release"
