[package]
name = "quickjs_runtime"
version = "0.17.1"
authors = ["Andries Hiemstra <andries@hiemstra-software.nl>"]
edition = "2021"
description = "Wrapper API and utils for the QuickJS JavaScript engine with support for Promise, Modules, Async/await"
homepage = "https://github.com/HiRoFa/quickjs_es_runtime"
keywords = ["quickjs", "javascript", "runtime", "async", "engine"]
repository = "https://github.com/HiRoFa/quickjs_es_runtime"
license = "MIT"
documentation = "https://hirofa.github.io/quickjs_es_runtime/quickjs_runtime/index.html"
readme = "README.md"
categories = ["development-tools"]
[features]
default = ["console", "setimmediate", "setinterval", "settimeout", "typescript", "bellard"]
console = []
settimeout = []
setinterval = []
setimmediate = []
typescript = ["swc", "swc_common", "swc_atoms", "swc_cached", "swc_macros_common", "swc_eq_ignore_macros", "swc_visit", "swc_visit_macros", "swc_config", "swc_config_macro", "swc_ecma_codegen", "swc_ecma_ast", "swc_ecma_codegen_macros", "swc_ecma_utils", "swc_ecma_visit", "swc_ecma_loader", "swc_ecma_transforms_base", "swc_ecma_transforms_compat", "swc_ecma_transforms_classes", "swc_ecma_transforms_optimization", "swc_ecma_transforms_proposal", "swc_ecma_transforms_macros", "swc_ecma_transforms_react", "swc_ecma_transforms_typescript", "swc_graph_analyzer", "swc_bundler", "swc_ecma_lexer", "swc_ecma_parser", "swc_sourcemap", "swc_trace_macro", "swc_node_comments"]
bellard = ["libquickjs-sys/bellard"]
quickjs-ng = ["libquickjs-sys/quickjs-ng"]
[dependencies]
hirofa_utils = "0.7"
#hirofa_utils = {path="../utils"}
#hirofa_utils = {git="https://github.com/SreeniIO/utils.git"}
#hirofa_utils = {git="https://github.com/HiRoFa/utils"}
backtrace = "0.3"
#libquickjs-sys = {package="hirofa-quickjs-sys", git='https://github.com/HiRoFa/quickjs-sys'}
#libquickjs-sys = { package = "hirofa-quickjs-sys", path = '../quickjs-sys', default-features = false }
libquickjs-sys = { package = "hirofa-quickjs-sys", version = "0.13", default-features = false }
lazy_static = "1.5.0"
log = "0.4"
num_cpus = "1"
rand = "0.8"
thread-id = "5"
futures = "0.3"
tokio = { version = "1", features = ["rt", "rt-multi-thread"] }
serde_json = "1.0"
#serde = { version = "=1.0.219", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
string_cache = "0.8"
flume = { version = "0.11", features = ["async"] }
either = "1"
lru = "0.14.0"
anyhow = "1"
#swc
# like the good people at denoland said:
# "swc's version bumping is very buggy and there will often be patch versions
# published that break our build, so we pin all swc versions to prevent
# pulling in new versions of swc crates"
# see https://github.com/denoland/deno_ast/blob/main/Cargo.toml
swc = { version = "=35.0.0", optional = true }
swc_config = { version = "=3.1.2", optional = true }
swc_config_macro = { version = "=1.0.1", optional = true }
swc_ecma_ast = { version = "=15.0.0", features = ["serde-impl"], optional = true }
swc_atoms = { version = "=7.0.0", optional = true }
swc_cached = { version = "=2.0.0", optional = true }
swc_eq_ignore_macros = { version = "=1.0.1", optional = true }
swc_visit_macros = { version = "=0.5.13", optional = true }
swc_common = { version = "=14.0.4", optional = true, features = ["tty-emitter"] }
swc_ecma_codegen = { version = "=17.0.0", optional = true }
swc_ecma_codegen_macros = { version = "=2.0.2", optional = true }
swc_ecma_loader = { version = "=14.0.0", optional = true }
swc_ecma_lexer = { version = "=23.0.1", optional = true }
swc_ecma_parser = { version = "=23.0.0", optional = true }
swc_ecma_transforms_base = { version = "=25.0.0", features = ["inline-helpers"], optional = true }
swc_ecma_transforms_classes = { version = "=25.0.0", optional = true }
swc_ecma_transforms_compat = { version = "=27.0.0", optional = true }
swc_ecma_transforms_macros = { version = "=1.0.1", optional = true }
swc_ecma_transforms_optimization = { version = "=26.0.0", optional = true }
swc_ecma_transforms_proposal = { version = "=25.0.0", optional = true }
swc_ecma_transforms_react = { version = "=28.0.0", optional = true }
swc_ecma_transforms_typescript = { version = "=28.0.0", optional = true }
swc_ecma_utils = { version = "=21.0.0", optional = true }
swc_ecma_visit = { version = "=15.0.0", optional = true }
swc_bundler = { version = "=29.0.0", optional = true }
swc_graph_analyzer = { version = "=14.0.1", optional = true }
swc_macros_common = { version = "=1.0.1", optional = true }
swc_sourcemap = { version = "9.3.4", optional = true }
swc_trace_macro = { version = "=2.0.2", optional = true }
swc_visit = { version = "=2.0.1", optional = true }
swc_node_comments = { version = "=14.0.0", optional = true }
[dev-dependencies]
#green_copper_runtime = { git = 'https://github.com/HiRoFa/GreenCopperRuntime', branch="main", features = ["console"]}
serde_json = "1"
tracing = "0.1"
tracing-log = "0.1"
tracing-gelf = "0.7"
simple-logging = "2.0.2"
tokio = { version = "1", features = ["macros"] }
[dev-dependencies.cargo-husky]
version = "1.5.0"
default-features = false # Disable features which are enabled by default
# features = ["precommit-hook", "run-cargo-test", "run-cargo-clippy"]