[package]
name = "web_modules"
version = "0.1.0"
authors = ["Stefan Grönke <stefan@gronke.net>"]
homepage = "https://github.com/gronke/rust-web_modules"
repository = "https://github.com/gronke/rust-web_modules"
documentation = "https://docs.rs/web_modules"
description = "Pure-Rust, buildless toolchain for ES modules and Web Components"
categories = ["development-tools", "web-programming"]
keywords = ["typescript", "esm", "importmap", "web_modules", "buildless"]
license = "MIT"
edition = "2021"
rust-version = "1.94"
include = ["/src/**/*.rs", "/Cargo.toml", "/README.md", "/LICENSE"]
publish = true
[package.metadata.docs.rs]
features = ["full"]
[features]
default = ["typescript", "scss", "tera"]
typescript = ["dep:oxc_allocator", "dep:oxc_parser", "dep:oxc_semantic", "dep:oxc_transformer", "dep:oxc_codegen", "dep:oxc_span"]
scss = ["dep:grass"]
tera = ["dep:tera"]
minify = ["typescript", "dep:oxc_minifier"]
icons = ["dep:image", "dep:ico"]
dts = ["typescript", "dep:oxc_isolated_declarations"]
i18n = ["dep:quick-xml"]
compress = ["dep:flate2"]
axum = ["dep:axum", "dep:tokio", "dep:mime_guess", "dep:include_dir"]
dev = ["axum", "typescript", "scss", "dep:notify", "dep:tower-livereload"]
cli = ["dev", "minify", "dep:clap", "npm-utils/cli"]
bundle = ["dep:rolldown", "dep:tokio"]
full = ["typescript", "scss", "tera", "minify", "icons", "dts", "i18n", "compress", "axum", "dev", "cli"]
[dependencies]
npm-utils = "0.5"
serde_json = "1"
walkdir = "2"
semver = "1"
oxc_allocator = { version = "0.135", optional = true }
oxc_parser = { version = "0.135", optional = true }
oxc_semantic = { version = "0.135", optional = true }
oxc_transformer = { version = "0.135", optional = true }
oxc_codegen = { version = "0.135", optional = true }
oxc_span = { version = "0.135", optional = true }
oxc_minifier = { version = "0.135", optional = true }
oxc_isolated_declarations = { version = "0.135", optional = true }
grass = { version = "0.13", optional = true }
tera = { version = "1", optional = true }
image = { version = "0.25", default-features = false, features = ["png"], optional = true }
ico = { version = "0.5", optional = true }
quick-xml = { version = "0.40", optional = true }
flate2 = { version = "1", optional = true }
axum = { version = "0.8", optional = true }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net"], optional = true }
include_dir = { version = "0.7", optional = true }
notify = { version = "8", optional = true }
tower-livereload = { version = "0.10", optional = true }
mime_guess = { version = "2", optional = true }
clap = { version = "4", features = ["derive"], optional = true }
rolldown = { version = "1", optional = true }
[[bin]]
name = "web-modules"
path = "src/bin/web-modules.rs"
required-features = ["cli"]
[dev-dependencies]
tempfile = "3"
tower = { version = "0.5", features = ["util"] }
http-body-util = "0.1"
tokio = { version = "1", features = ["rt", "macros"] }
[workspace]
members = ["examples/*"]
exclude = ["examples/tauri"]