# Copyright 2018-2026 the Deno authors. MIT license.

[package]
name = "deno"
version = "2.9.5"
authors.workspace = true
default-run = "deno"
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "Provides the deno executable"

[[bin]]
name = "deno"
path = "main.rs"
doc = false

[lib]
path = "lib.rs"

[[test]]
name = "integration"
path = "integration_tests_runner.rs"
harness = false

[features]
default = ["v8"]
# The dependency named `v8` is the deno_v8 facade, retained under the existing
# crate name so the engine integration does not require source-level churn.
v8 = ["__runtime_defaults", "deno_core/v8", "v8/v8"]
quickjs = ["__runtime_defaults", "deno_core/quickjs", "v8/quickjs"]
__runtime_defaults = ["upgrade", "__vendored_zlib_ng"]
# A feature that enables heap profiling with dhat on Linux.
# 1. Compile with `cargo build --profile=release-with-debug --features=dhat-heap`
# 2. Run the executable. It will output a dhat-heap.json file.
# 3. Open the json file in https://nnethercote.github.io/dh_view/dh_view.html
dhat-heap = ["dhat"]
# A feature that enables the upgrade subcommand and the background check for
# available updates (of deno binary). This is typically disabled for (Linux)
# distribution packages.
upgrade = []
# A dev feature to disable creations and loading of snapshots in favor of
# loading JS sources at runtime.
hmr = ["deno_runtime/hmr", "deno_snapshots/disable"]
# Vendor zlib as zlib-ng
__vendored_zlib_ng = ["flate2/zlib-ng-compat", "libz-sys/zlib-ng"]
lsp-tracing = ["dep:tracing", "dep:tracing-subscriber", "dep:tracing-opentelemetry", "opentelemetry-otlp/grpc-tonic"]
# Custom panic trace with `deno_panic`
panic-trace = ["deno_panic"]
# Linux release builds remove DWARF unwind tables and trace with frame pointers.
panic-trace-frame-pointer = ["panic-trace", "deno_panic/frame-pointer"]

[build-dependencies]
deno_runtime = { workspace = true }
deno_core = { workspace = true }
lazy-regex.workspace = true
serde.workspace = true
serde_json.workspace = true
zstd.workspace = true
flate2 = { workspace = true, features = ["default"] }
deno_error.workspace = true
sha2.workspace = true
v8.workspace = true

[target.'cfg(windows)'.build-dependencies]
winres.workspace = true

[dependencies]
deno_ast = { workspace = true, features = ["cjs", "codegen", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit", "utils"] }
deno_bundle_runtime.workspace = true
deno_cache_dir = { workspace = true, features = ["sync"] }
deno_cli_parser.workspace = true
deno_config = { workspace = true, features = ["sync", "workspace"] }
deno_core.workspace = true
deno_doc = { workspace = true, features = ["rust", "comrak"] }
deno_error.workspace = true
deno_graph = { workspace = true, features = ["fast_check"] }
deno_lib.workspace = true
deno_lint.workspace = true
deno_lockfile.workspace = true
deno_media_type = { workspace = true, features = ["data_url", "decoding", "module_specifier"] }
deno_npm.workspace = true
deno_npm_cache.workspace = true
deno_npm_installer = { workspace = true }
deno_npmrc.workspace = true
deno_package_json = { workspace = true, features = ["sync"] }
deno_panic = { version = "0.2.1", optional = true }
deno_path_util.workspace = true
deno_print.workspace = true
deno_resolver = { workspace = true, features = ["deno_ast", "graph", "sync"] }
deno_runtime.workspace = true
deno_semver.workspace = true
deno_signals.workspace = true
deno_snapshots.workspace = true
deno_task_shell.workspace = true
deno_telemetry.workspace = true
deno_terminal.workspace = true
eszip.workspace = true
libsui.workspace = true
node_resolver = { workspace = true, features = ["graph", "sync"] }
node_shim.workspace = true
v8.workspace = true

anstream.workspace = true
async-trait.workspace = true
aws-lc-rs.workspace = true
backhand.workspace = true
base64.workspace = true
bincode.workspace = true
boxed_error.workspace = true
bsdiff.workspace = true
bytes.workspace = true
cab.workspace = true
capacity_builder.workspace = true
cfb.workspace = true
chrono = { workspace = true, features = ["now"] }
clap = { workspace = true, features = ["env", "string", "wrap_help", "error-context"] }
clap_complete.workspace = true
clap_complete_fig.workspace = true
color-print.workspace = true
console_static_text.workspace = true
crossterm.workspace = true
dashmap.workspace = true
deno_dotenv.workspace = true
dhat = { workspace = true, optional = true }
dprint-core.workspace = true
dprint-plugin-json.workspace = true
dprint-plugin-jupyter.workspace = true
dprint-plugin-markdown.workspace = true
dprint-plugin-typescript.workspace = true
esbuild_client = { version = "0.7.2", features = ["serde"] }
faster-hex.workspace = true
fastwebsockets.workspace = true
# If you disable the default __vendored_zlib_ng feature above, you _must_ be able to link against `-lz`.
flate2.workspace = true
fluent-uri.workspace = true
glob.workspace = true
http.workspace = true
http-body.workspace = true
http-body-util.workspace = true
hyper.workspace = true
hyper-util.workspace = true
imara-diff.workspace = true
import_map.workspace = true
indexmap.workspace = true
jsonc-parser = { workspace = true, features = ["cst", "serde"] }
keyring = { version = "3.6.3", features = ["apple-native", "sync-secret-service", "windows-native", "vendored"] }
lax-css.workspace = true
lax-markup.workspace = true
lax-sql.workspace = true
lazy-regex.workspace = true
libc.workspace = true
liblzma.workspace = true
libz-sys.workspace = true
locked-tripwire = "0.1.1"
log = { workspace = true, features = ["serde"] }
lsp-types.workspace = true
memchr.workspace = true
msi.workspace = true
notify.workspace = true
once_cell.workspace = true
open.workspace = true
opentelemetry.workspace = true
opentelemetry-otlp.workspace = true
opentelemetry-semantic-conventions.workspace = true
opentelemetry_sdk.workspace = true
p256.workspace = true
pathdiff.workspace = true
percent-encoding.workspace = true
phf.workspace = true
plist = "1"
pretty_yaml.workspace = true
rand = { workspace = true, features = ["small_rng"] }
regex.workspace = true
rpm.workspace = true
rustc-hash.workspace = true
rustls.workspace = true
rustyline.workspace = true
rustyline-derive.workspace = true
same-file.workspace = true
serde.workspace = true
serde_repr.workspace = true
sha2.workspace = true
shlex.workspace = true
spki = { workspace = true, features = ["pem"] }
strsim.workspace = true
sys_traits = { workspace = true, features = ["getrandom", "filetime", "libc", "serde_json", "real", "strip_unc", "winapi"] }
tar.workspace = true
tempfile.workspace = true
text-size.workspace = true
text_lines.workspace = true
thiserror.workspace = true
tokio.workspace = true
tokio-util.workspace = true
tower-lsp.workspace = true
tracing = { workspace = true, features = ["log"], optional = true }
tracing-opentelemetry = { workspace = true, optional = true }
tracing-subscriber = { workspace = true, features = ["env-filter"], optional = true }
twox-hash.workspace = true
typed-arena.workspace = true
unicode-general-category.workspace = true
unicode-width.workspace = true
uuid = { workspace = true, features = ["serde", "v5"] }
walkdir.workspace = true
wasm_dep_analyzer = "0.4.0"
wasmparser = "0.244.0"
which = { workspace = true, features = ["real-sys"] }
yaml_parser.workspace = true
zip = { workspace = true, features = ["deflate-flate2"] }
zstd.workspace = true

[target.'cfg(windows)'.dependencies]
windows-sys = { workspace = true, features = ["Win32_Foundation", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_RestartManager", "Win32_System_Threading"] }
deno_subprocess_windows.workspace = true

[target.'cfg(unix)'.dependencies]
nix.workspace = true
[target.'cfg(any(target_os = "android", target_os = "linux", target_os = "macos"))'.dependencies]
tokio-vsock.workspace = true

[dev-dependencies]
# unsafe_use_unprotected_platform is a workaround for a segfault that may occur
# when running multiple v8 tests on different threads
deno_core = { workspace = true, features = ["unsafe_use_unprotected_platform"] }
pretty_assertions.workspace = true
sys_traits = { workspace = true, features = ["memory"] }
test_util.workspace = true

[package.metadata.winres]
# This section defines the metadata that appears in the deno.exe PE header.
OriginalFilename = "deno.exe"
LegalCopyright = "© Deno contributors & Deno Land Inc. MIT licensed."
ProductName = "Deno"
FileDescription = "Deno: A secure runtime for JavaScript and TypeScript"

[package.metadata.cargo-shear]
ignored = ["locked-tripwire"]
