Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,442 changes: 1,006 additions & 436 deletions Cargo.lock

Large diffs are not rendered by default.

67 changes: 35 additions & 32 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ extra_features = ["worker", "snapshot_builder"]
# These extensions are not safe to use in a sandboxed environment without additional restrictions
# (See [NodePermissions])
node_experimental = [
"deno_node", "deno_resolver", "node_resolver", "deno_npm", "deno_semver", "deno_napi", "deno_runtime", "deno_process", "deno_package_json",
"deno_node", "deno_node_crypto", "deno_node_sqlite", "deno_resolver", "node_resolver", "deno_npm", "deno_semver", "deno_napi",
"deno_package_json", "deno_process", "deno_runtime",
"deno_bundle_runtime",
"checksum", "sys_traits", "all_extensions"
]
Expand Down Expand Up @@ -169,9 +170,9 @@ async-trait = "^0.1.89"
paste = "1.0.15"

# The deno runtime itself, and the webidl extension for the web APIs
deno_core = "^0.380.1"
deno_core = "^0.400.0"
deno_error = "=0.7.1"
deno_features = "^0.25.0"
deno_features = "^0.44.0"

# For transpiling typescript
deno_ast = { version = "^0.52.0", features = ["transpiling", "cjs"] }
Expand All @@ -189,7 +190,7 @@ rustls = {version = "0.23.28", optional = true}
# Upgraded to support axum 0.8+
reqwest = { version = "^0.12.20", optional = true, default-features = false, features = ["blocking", "rustls-tls"] }
http = { version = "^1.0", optional = true }
deno_permissions = { version = "^0.87.0", optional = true }
deno_permissions = { version = "^0.106.0", optional = true }


#
Expand All @@ -199,56 +200,58 @@ deno_permissions = { version = "^0.87.0", optional = true }
deno_broadcast_channel = { version = "^0.216.0", optional = true }
uuid = { version = "1.10.0", optional = true, features = ["v4"] }

deno_bundle_runtime = { version = "^0.15.0", optional = true }
deno_cache = { version = "^0.161.0", optional = true }
deno_bundle_runtime = { version = "^0.34.0", optional = true }
deno_cache = { version = "^0.180.0", optional = true }
deno_console = { version = "^0.222.0", optional = true }
deno_cron = { version = "^0.108.0", optional = true }
deno_crypto = { version = "^0.242.0", optional = true }
deno_fetch = { version = "^0.252.0", optional = true }
deno_ffi = { version = "^0.215.0", optional = true }
deno_fs = { version = "^0.138.0", optional = true, features = ["sync_fs"] }
deno_http = { version = "^0.226.0", optional = true }
deno_kv = { version = "^0.136.0", optional = true }
deno_net = { version = "^0.220.0", optional = true }
deno_node = { version = "^0.166.0", optional = true }
deno_tls = { version = "^0.215.0", optional = true }
deno_cron = { version = "^0.127.0", optional = true }
deno_crypto = { version = "^0.261.0", optional = true }
deno_fetch = { version = "^0.271.0", optional = true }
deno_ffi = { version = "^0.234.0", optional = true }
deno_fs = { version = "^0.157.0", optional = true, features = ["sync_fs"] }
deno_http = { version = "^0.245.0", optional = true }
deno_kv = { version = "^0.155.0", optional = true }
deno_net = { version = "^0.239.0", optional = true }
deno_node = { version = "^0.185.0", optional = true }
deno_node_crypto = { version = "^0.17.0", optional = true }
deno_node_sqlite = { version = "^0.17.0", optional = true }
deno_tls = { version = "^0.234.0", optional = true }
deno_url = { version = "^0.222.0", optional = true }

deno_web = { version = "^0.259.0", optional = true }
deno_webidl = { version = "^0.228.0", optional = true }
deno_webstorage = { version = "^0.223.0", optional = true }
deno_websocket = { version = "^0.233.0", optional = true }
deno_webgpu = { version = "^0.195.0", optional = true }
deno_web = { version = "^0.278.0", optional = true }
deno_webidl = { version = "^0.247.0", optional = true }
deno_webstorage = { version = "^0.242.0", optional = true }
deno_websocket = { version = "^0.252.0", optional = true }
deno_webgpu = { version = "^0.214.0", optional = true }

deno_io = { version = "^0.138.0", optional = true }
deno_telemetry = { version = "^0.50.0", optional = true }
deno_io = { version = "^0.157.0", optional = true }
deno_telemetry = { version = "^0.69.0", optional = true }

# Dependencies for the IO feature
rustyline = {version = "=13.0.0", optional = true}
rustyline = {version = "=17.0.0", optional = true}
winapi = {version = "=0.3.9", optional = true, features = [
"commapi", "knownfolders", "mswsock", "objbase", "psapi", "shlobj",
"tlhelp32", "winbase", "winerror", "winuser", "winsock2", "processenv",
"wincon", "wincontypes", "consoleapi"
]}
nix = {version = "=0.27.1", optional = true, features = ["term"]}
nix = { version = "=0.30.1", optional = true, features = ["term"] }
libc = {version = "^0.2.168", optional = true}
once_cell = {version = "^1.17.1", optional = true}

# Dependencies for the web stub feature
base64-simd = {version = "0.8.0", optional = true}

# Dependencies for the node feature
deno_resolver = { version = "^0.59.0", optional = true }
node_resolver = { version = "^0.66.0", optional = true, features = ["sync"] }
deno_runtime = { version = "^0.236.0", optional = true, features = ["exclude_runtime_main_js"] }
deno_resolver = { version = "^0.78.0", optional = true }
node_resolver = { version = "^0.85.0", optional = true, features = ["sync"] }
deno_runtime = { version = "^0.255.0", optional = true, features = ["exclude_runtime_main_js"] }
deno_terminal = { version = "^0.2.3", optional = true }
deno_semver = { version = "^0.9.1", optional = true }
deno_napi = { version = "^0.159.0", optional = true }
deno_napi = { version = "^0.178.0", optional = true }
deno_npm = { version = "^0.43.0", optional = true }
deno_process = { version = "^0.43.0", optional = true }
deno_package_json = { version = "^0.30.0", optional = true }
deno_process = { version = "^0.62.0", optional = true }
deno_package_json = { version = "^0.49.0", optional = true }
checksum = { version = "0.2.1", optional = true }
sys_traits = { version = "=0.1.22", optional = true, features = ["libc", "real", "winapi"] }
sys_traits = { version = "=0.1.27", optional = true, features = ["libc", "real", "winapi"] }

[dev-dependencies]
version-sync = "0.9.5"
Expand Down
2 changes: 1 addition & 1 deletion src/ext/broadcast_channel/wrapper.rs
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@ impl Drop for IsolatedBroadcastChannelWrapper {
#[cfg(test)]
mod test {
use super::*;
use crate::{Module, Runtime, RuntimeOptions};
use crate::{Runtime, RuntimeOptions};

#[test]
fn test_isolated_broadcast_channel_send_recv() {
Expand Down
3 changes: 1 addition & 2 deletions src/ext/io/tty_unix.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,6 @@ deno_error::js_error_wrapper!(ReadlineError, JsReadlineError, |err| {
ReadlineError::Eof => GENERIC_ERROR.into(),
ReadlineError::Interrupted => GENERIC_ERROR.into(),
ReadlineError::Errno(e) => JsNixError(*e).get_class(),
ReadlineError::WindowResized => GENERIC_ERROR.into(),
_ => GENERIC_ERROR.into(),
}
});
Expand All @@ -233,7 +232,7 @@ pub fn op_read_line_prompt(
let mut editor =
Editor::<(), rustyline::history::DefaultHistory>::new().expect("Failed to create editor.");

editor.set_keyseq_timeout(1);
editor.set_keyseq_timeout(Some(1));
editor.bind_sequence(KeyEvent(KeyCode::Esc, Modifiers::empty()), Cmd::Interrupt);

let read_result = editor.readline_with_initial(prompt_text, (default_value, ""));
Expand Down
12 changes: 12 additions & 0 deletions src/ext/node/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,21 @@ impl ExtensionTrait<Arc<RustyResolver>> for deno_node::deno_node {
)
}
}
impl ExtensionTrait<()> for deno_node_crypto::deno_node_crypto {
fn init((): ()) -> Extension {
deno_node_crypto::deno_node_crypto::init()
}
}
impl ExtensionTrait<()> for deno_node_sqlite::deno_node_sqlite {
fn init((): ()) -> Extension {
deno_node_sqlite::deno_node_sqlite::init()
}
}

pub fn extensions(resolver: Arc<RustyResolver>, is_snapshot: bool) -> Vec<Extension> {
vec![
deno_node_crypto::deno_node_crypto::build((), is_snapshot),
deno_node_sqlite::deno_node_sqlite::build((), is_snapshot),
deno_node::deno_node::build(resolver, is_snapshot),
init_node::build((), is_snapshot),
]
Expand Down
1 change: 1 addition & 0 deletions src/ext/node/resolvers.rs
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,7 @@ impl RustyNpmPackageFolderResolver {
let options = ByonmNpmResolverCreateOptions {
sys: NodeResolutionSys::new(RealSys, Some(resolution_cache.clone())),
root_node_modules_dir: base_dir.clone(),
search_stop_dir: None,
pkg_json_resolver: pjson.clone(),
};

Expand Down
4 changes: 3 additions & 1 deletion src/ext/runtime/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,6 @@ fn create_web_worker_callback(options: WebWorkerCallbackOptions) -> Arc<CreateWe
.map(std::num::NonZero::get)
.unwrap_or(1),
log_level: WorkerLogLevel::default(),
enable_op_summary_metrics: false,
enable_testing_features: false,
locale: deno_core::v8::icu::get_language_tag(),
location: Some(args.main_module),
Expand All @@ -254,6 +253,8 @@ fn create_web_worker_callback(options: WebWorkerCallbackOptions) -> Arc<CreateWe
has_node_modules_dir: node_resolver.has_node_modules_dir(),
argv0: None,
node_debug: None,
node_cluster_unique_id: None,
node_cluster_sched_policy: None,
node_ipc_init: None,
mode: WorkerExecutionMode::Worker,
serve_port: None,
Expand All @@ -279,6 +280,7 @@ fn create_web_worker_callback(options: WebWorkerCallbackOptions) -> Arc<CreateWe
create_params: None,
enable_stack_trace_arg_in_ops: false,
maybe_coverage_dir: None,
maybe_cpu_prof_config: None,
};
WebWorker::bootstrap_from_options(services, options)
})
Expand Down
4 changes: 2 additions & 2 deletions src/ext/rustyscript/callbacks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ rs_fn! {
}
}

#[op2(async)]
#[op2]
#[serde]
pub async fn run_rscallback<T: RsCallback>(
#[serde] args: T::Arguments,
Expand All @@ -176,7 +176,7 @@ pub async fn run_rscallback<T: RsCallback>(

type CallbackTable = std::collections::HashMap<String, Rc<Box<dyn RsStoredCallback>>>;

#[op2(async)]
#[op2]
#[serde]
pub fn rscallback(
#[string] name: &str,
Expand Down
12 changes: 8 additions & 4 deletions src/ext/rustyscript/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,13 @@ mod callbacks;
/// # Arguments
/// * `state` - The runtime's state, into which the function will be put
/// * `callback` - The function to register
#[op2]
fn op_register_entrypoint(state: &mut OpState, #[global] callback: v8::Global<v8::Function>) {
state.put(callback);
#[op2(fast)]
fn op_register_entrypoint<'s>(
scope: &mut v8::PinScope<'s, '_>,
state: &mut OpState,
callback: v8::Local<'s, v8::Function>,
) {
state.put(v8::Global::new(scope, callback));
}

#[op2]
Expand All @@ -38,7 +42,7 @@ fn call_registered_function(
Err(Error::ValueNotCallable(name.to_string()))
}

#[op2(async)]
#[op2]
#[serde]
fn call_registered_function_async(
#[string] name: String,
Expand Down
1 change: 1 addition & 0 deletions src/ext/web/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pub use permissions::{

/// Stub for a node op deno_net expects to find
/// We return None to show no cert available
#[cfg(not(feature = "node_experimental"))]
#[deno_core::op2]
#[serde]
pub fn op_tls_peer_certificate(
Expand Down
2 changes: 1 addition & 1 deletion src/utilities.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ pub fn resolve_path(
/// but for multi-threaded applications, it may be necessary to call this function manually
pub fn init_platform(thread_pool_size: u32, idle_task_support: bool) {
let platform = deno_core::v8::Platform::new(thread_pool_size, idle_task_support);
deno_core::JsRuntime::init_platform(Some(platform.into()), true);
deno_core::JsRuntime::init_platform(Some(platform.into()));
}

#[macro_use]
Expand Down
2 changes: 1 addition & 1 deletion src/worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ where
where
T: serde::de::DeserializeOwned + Send + 'static,
{
deno_core::JsRuntime::init_platform(None, true);
deno_core::JsRuntime::init_platform(None);
std::thread::spawn(move || {
let mut runtime = crate::Runtime::new(RuntimeOptions::default())?;
runtime.eval(&code)
Expand Down