[package]
name = "tinymist-world"
description = "Typst's World implementation for tinymist."
categories = ["compilers"]
keywords = ["language", "typst"]
# group: world
version = "0.15.0"
authors.workspace = true
license.workspace = true
edition.workspace = true
homepage.workspace = true
repository.workspace = true
rust-version.workspace = true

[dependencies]

anyhow.workspace = true
chrono = { workspace = true, default-features = false, optional = true, features = [
    "std",
    "clock",
] }
clap.workspace = true
codespan-reporting.workspace = true
comemo.workspace = true
dirs = { workspace = true, optional = true }
ecow.workspace = true
flate2.workspace = true
fontdb = { workspace = true, optional = true, features = ["fs", "memmap"] }
hex.workspace = true
js-sys = { workspace = true, optional = true }
log.workspace = true
lsp-types.workspace = true
parking_lot.workspace = true
rayon.workspace = true
reqwest = { workspace = true, optional = true }
rpds.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_with.workspace = true
serde-wasm-bindgen = { workspace = true, optional = true }
sha2.workspace = true
strum.workspace = true
tar.workspace = true
tinymist-package.workspace = true
tinymist-std.workspace = true
tinymist-vfs.workspace = true
ttf-parser.workspace = true
typst-shim.workspace = true
typst-assets.workspace = true
typst.workspace = true
typst-bundle.workspace = true
wasm-bindgen = { workspace = true, optional = true }
web-sys = { workspace = true, optional = true, features = ["console"] }

[features]

default = []
fonts = ["typst-assets/fonts"]
mock = ["tinymist-vfs/mock", "typst-assets/fonts"]
http-registry = ["reqwest"]
web = [
    "chrono",
    "chrono/wasmbind",
    "wasm-bindgen",
    "web-sys",
    "js-sys",
    "serde-wasm-bindgen",
    "tinymist-std/web",
    "tinymist-vfs/web",
    "tinymist-package/web",
]
browser = ["web", "tinymist-vfs/browser", "tinymist-package/browser"]
system = [
    "dirs",
    "fontdb",
    "chrono",
    "http-registry",
    "tinymist-std/system",
    "tinymist-vfs/system",
    "tinymist-package/system",
]

[package.metadata.docs.rs]
features = ["browser", "system"]

[dev-dependencies]
tinymist-vfs = { workspace = true, features = ["mock"] }

[lints]
workspace = true
