
[workspace]
resolver = "2"
members = [
    "crates/build-config",
    "crates/shared",
    "crates/pages",
    "crates/client",
    "crates/server",
    "crates/pages_htmx",
]

[workspace.package]
version = "0.1.0"
authors = ["Development Team <dev@example.com>"]
edition = "2021"
rust-version = "1.75"
license = "MIT"

[workspace.dependencies]
# >>> rustelo-sync:workspace-deps (managed by `cargo xtask sync-deps` — DO NOT EDIT)
aes-gcm = "0.10"
ammonia = "4.1"
any_spawner = "0.3"
anyhow = "1.0.102"
argon2 = "0.5"
async-compression = { version = "0.4", features = ["gzip", "tokio"] }
async-nats = "0.49"
async-trait = "0.1.89"
axum = "0.8.9"
axum-server = { version = "0.8", features = ["tls-rustls"] }
axum-test = "20.0"
base32 = "0.5"
base64 = "0.22"
bytes = "1.11"
cfg-if = "1.0"
chrono = { version = "0.4", features = ["serde"] }
clap = { version = "4.6", features = ["derive", "env"] }
comrak = { version = "0.52", features = ["syntect"] }
console = "0.16"
console_error_panic_hook = "0.1.7"
console_log = "1"
crossterm = "0.29"
dashmap = "6"
dialoguer = "0.12"
dotenv = "0.15.0"
env_logger = "0.11"
fluent = "0.17"
fluent-bundle = "0.16"
fluent-syntax = "0.12"
fluent-templates = { version = "0.14.0", features = ["tera"] }
futures = "0.3.32"
getrandom = { version = "0.4", features = ["std", "wasm_js"] }
glob = "0.3.3"
gloo-net = { version = "0.7.0", features = ["websocket"] }
gloo-timers = { version = "0.4", features = ["futures"] }
gray_matter = "0.3"
handlebars = "6.4"
hex = "0.4.3"
html-escape = "0.2"
http = "1"
ignore = "0.4"
indicatif = "0.18"
inquire = "0.9"
js-sys = "=0.3.97"
jsonwebtoken = { version = "10.4", features = ["rust_crypto"] }
leptos = "=0.8.15"
leptos_axum = "=0.8.7"
leptos_config = "=0.8.8"
leptos_integration_utils = "=0.8.7"
leptos_meta = "=0.8.5"
leptos_router = "=0.8.11"
lettre = { version = "0.11", default-features = false, features = ["tokio1-rustls-tls", "smtp-transport", "pool", "hostname", "builder"] }
log = "0.4.30"
lru = "0.18"
mockall = "0.14"
nkeys = "0.4"
notify = { version = "8.2.0", default-features = false }
oauth2 = "5.0"
once_cell = "1.21.4"
paste = "1.0.15"
pathdiff = "0.2"
platform-nats = { path = "../stratumiops/crates/platform-nats" }
proc-macro2 = "1.0"
prometheus = "0.14"
pulldown-cmark = { version = "0.13", features = ["simd"] }
qrcode = { version = "0.14", features = ["svg"] }
quote = "1.0"
rand = "0.10"
rand_core = "0.10"
ratatui = "0.30"
reactive_graph = "0.2.14"
regex = "1.12.3"
reqwasm = "0.5.0"
reqwest = { version = "0.13.4", features = ["json"] }
rhai = { version = "1.25", features = ["serde", "only_i64", "no_float"] }
rustelo_auth = { path = "{{RUSTELO_ROOT}}/crates/framework/crates/rustelo_auth" }
rustelo_cli = { path = "{{RUSTELO_ROOT}}/crates/framework/crates/rustelo_cli" }
rustelo_client = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_client" }
rustelo_components_leptos = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_components_leptos" }
rustelo_components_htmx = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_components_htmx" }
rustelo_pages_htmx = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_pages_htmx" }
website-pages-htmx = { path = "crates/pages_htmx" }
rustelo_config = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_config" }
rustelo_content = { path = "{{RUSTELO_ROOT}}/crates/framework/crates/rustelo_content" }
rustelo_core = { path = "{{RUSTELO_ROOT}}/crates/framework/crates/rustelo_core" }
rustelo_core_lib = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_core_lib" }
rustelo_core_types = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_core_types" }
rustelo_language = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_language" }
rustelo_macros = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_macros" }
rustelo_pages_leptos = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_pages_leptos" }
rustelo_routing = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_routing" }
rustelo_seo = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_seo" }
rustelo_server = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_server", features = ["rbac-watcher"] }
rustelo_tools = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_tools" }
rustelo_utils = { path = "{{RUSTELO_ROOT}}/crates/foundation/crates/rustelo_utils", features = ["manifest"] }
rustelo_web = { path = "{{RUSTELO_ROOT}}/crates/framework/crates/rustelo_web" }
rustls = "0.23"
rustls-pemfile = "2.2"
scraper = "0.27"
semver = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde-wasm-bindgen = "0.6.5"
serde_json = "1.0"
serde_yaml = "0.9"
sha2 = "0.11"
shellexpand = "3.1"
similar = "3.1"
sqlx = { version = "0.9.0", features = ["runtime-tokio", "tls-rustls-ring", "postgres", "sqlite", "chrono", "uuid", "migrate"] }
syn = { version = "2.0", features = ["full"] }
syntect = "5.3"
tempfile = "3.27"
tera = "1.20"
thiserror = "2.0.18"
minijinja = { version = "2", features = ["loader", "builtins", "json"] }
time = { version = "0.3", features = ["serde"] }
tokio = { version = "1.52", features = ["rt-multi-thread"] }
tokio-test = "0.4"
tokio-util = { version = "0.7", features = ["io"] }
toml = "1.1.2"
totp-rs = "5.7"
tower = "0.5.3"
tower-cookies = "0.11"
tower-http = { version = "0.6.11", features = ["fs", "trace"] }
tower-sessions = "0.15"
tracing = "0.1"
tracing-subscriber = "0.3"
typed-builder = "0.23"
unic-langid = { version = "0.9", features = ["unic-langid-macros"] }
unicode-normalization = "0.1"
urlencoding = "2.1"
uuid = { version = "1.23", features = ["v4", "serde", "js"] }
walkdir = "2.5"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
web-sys = { version = "=0.3.97", features = ["Clipboard", "Window", "Navigator", "Permissions", "MouseEvent", "KeyboardEvent", "Event", "Storage", "console", "File", "SvgElement", "SvgsvgElement", "SvgPathElement", "MediaQueryList"] }
wiremock = "0.6"
content-graph = { path = "{{RUSTELO_ROOT}}/features/content-graph" }
lazy_static = "1.5"
# <<< rustelo-sync:workspace-deps

[[workspace.metadata.leptos]]
# Configuration for Website Leptos project
name = "website"
bin-package = "rustelo-leptos-server"
bin-target = "rustelo-leptos-server"
lib-package = "website-client"
lib-features = ["hydrate"]
bin-features = ["ssr"]
site-root = "target/site"
site-pkg-dir = "pkg"
assets-dir = "site/public"
site-addr = "127.0.0.1:3030"
reload-port = 3031
browserquery = "defaults"
# watch = false
# env = "DEV"
bin-default-features = false
lib-default-features = false
# release-mode = "release"

# [profile.release]
# codegen-units = 1
# lto = true
# opt-level = "z"

# [profile.dev]
# opt-level = 0
# debug = true

# [profile.release]
# opt-level = 3
# lto = true
# codegen-units = 1
# panic = "abort"

# [profile.wee_alloc]
# inherits = "release"
# opt-level = 's'

# [profile.dev.package.sqlx-macros]
# opt-level = 3

# # Features for controlling extension functionality
# [workspace.metadata.features]
# default = ["content-static"]
# full = ["content-static", "auth", "email", "tls", "metrics", "analytics"]
# content-static = []
# content-db = []
# auth = []
# email = []
# tls = []
# metrics = []
# analytics = []
