# jpl-website - Rustelo cms Implementation
# Generated by cargo rustelo
# Workspace structure for complex applications

[workspace]
resolver = "2"
members = [
    "crates/shared",
    "crates/server", 
    "crates/client",
    "crates/ssr"
]

[workspace.dependencies]
# Local crates
jpl-website-shared = { path = "crates/shared" }
jpl-website-server = { path = "crates/server" }  
jpl-website-client = { path = "crates/client" }
jpl-website-ssr = { path = "crates/ssr" }

# Rustelo Framework (local development)
rustelo-core = { path = "{{dependencies.rustelo_path}}/crates/rustelo-core" }
rustelo-web = { path = "{{dependencies.rustelo_path}}/crates/rustelo-web" }
rustelo-content = { path = "{{dependencies.rustelo_path}}/crates/rustelo-content" }
rustelo-auth = { path = "{{dependencies.rustelo_path}}/crates/rustelo-auth" }

# Leptos Framework
leptos = { version = "0.8.6" }
leptos_axum = { version = "0.8.5" }
leptos_router = { version = "0.8.5" }
leptos_meta = { version = "0.8.5" }
leptos_config = { version = "0.8.5" }

# Server Dependencies
axum = { version = "0.8.4", features = ["macros", "tracing"] }
tower = { version = "0.5.2", features = ["util"] }
tower-http = { version = "0.6.6", features = ["fs", "cors"] }
tokio = { version = "1.47.1", features = ["rt-multi-thread", "macros", "signal"] }

# Shared Dependencies
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
uuid = { version = "1.18", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
thiserror = "2.0"
anyhow = "1.0"

# WASM Dependencies
web-sys = { version = "0.3.77" }
wasm-bindgen = "0.2.100"
console_error_panic_hook = "0.1"

[profile.release]
codegen-units = 1
lto = true
opt-level = 'z'
panic = 'abort'
strip = true

[[workspace.metadata.leptos]]
name = "jpl-website"
bin-package = "jpl-website-server"
lib-package = "jpl-website-client"
bin-target = "jpl-website-server"
output-name = "jpl-website"
site-root = "target/site"
site-pkg-dir = "pkg"
assets-dir = "public"
site-addr = "127.0.0.1:3000"
reload-port = 3001
env = "DEV"
bin-features = ["ssr"]
lib-features = ["hydrate"]
watch = true