
[workspace]
resolver = "2"
members = [
    "crates/framework/crates/rustelo_core",
    "crates/framework/crates/rustelo_web",
    "crates/framework/crates/rustelo_auth",
    "crates/framework/crates/rustelo_content",
    "crates/framework/crates/rustelo_cli",
    "crates/foundation/crates/rustelo_client",
    "crates/foundation/crates/rustelo_server",
    "crates/foundation/crates/rustelo_core_lib",
    "crates/foundation/crates/rustelo_core_types",
    "crates/foundation/crates/rustelo_language",
    "crates/foundation/crates/rustelo_routing",
    "crates/foundation/crates/rustelo_components_leptos",
    "crates/foundation/crates/rustelo_components_htmx",
    "crates/foundation/crates/rustelo_pages_htmx",
    "crates/foundation/crates/rustelo_pages_leptos",
    "crates/foundation/crates/rustelo_seo",
    "crates/foundation/crates/rustelo_tools",
    "crates/foundation/crates/rustelo_utils",
    "crates/foundation/crates/rustelo_macros",
    "crates/foundation/crates/rustelo_config",
    "crates/foundation/crates/rustelo_content_graph_ssr",
    "examples/plugin-example-theme",
]
exclude = ["xtask", "registry", "features/content-graph"]

[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 = "0.7.0"
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"
minijinja = { version = "2", features = ["loader", "builtins", "json"] }
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/code/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 = "crates/framework/crates/rustelo_auth" }
rustelo_cli = { path = "crates/framework/crates/rustelo_cli" }
rustelo_client = { path = "crates/foundation/crates/rustelo_client" }
rustelo_components_htmx = { path = "crates/foundation/crates/rustelo_components_htmx" }
rustelo_components_leptos = { path = "crates/foundation/crates/rustelo_components_leptos" }
rustelo_config = { path = "crates/foundation/crates/rustelo_config" }
rustelo_content = { path = "crates/framework/crates/rustelo_content" }
rustelo_core = { path = "crates/framework/crates/rustelo_core" }
rustelo_core_lib = { path = "crates/foundation/crates/rustelo_core_lib" }
rustelo_core_types = { path = "crates/foundation/crates/rustelo_core_types" }
rustelo_language = { path = "crates/foundation/crates/rustelo_language" }
rustelo_macros = { path = "crates/foundation/crates/rustelo_macros" }
rustelo_pages_htmx = { path = "crates/foundation/crates/rustelo_pages_htmx" }
rustelo_pages_leptos = { path = "crates/foundation/crates/rustelo_pages_leptos" }
rustelo_routing = { path = "crates/foundation/crates/rustelo_routing" }
rustelo_seo = { path = "crates/foundation/crates/rustelo_seo" }
rustelo_server = { path = "crates/foundation/crates/rustelo_server", default-features = false }
rustelo_tools = { path = "crates/foundation/crates/rustelo_tools" }
rustelo_utils = { path = "crates/foundation/crates/rustelo_utils" }
rustelo_web = { path = "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"
time = { version = "0.3", features = ["serde"] }
tokio = { version = "1.52", features = ["rt-multi-thread"] }
tokio-stream = { version = "0.1", features = ["sync"] }
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"] }
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"
# <<< rustelo-sync:workspace-deps

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