diff --git a/deno b/deno index 3871c99..1ab2268 160000 --- a/deno +++ b/deno @@ -1 +1 @@ -Subproject commit 3871c99eaae6a4862d63ce0494a280a3a758f579 +Subproject commit 1ab2268c0bcbf9b0468e0e36963f77f8c31c73ec diff --git a/src/mod.ts b/src/mod.ts index 31a7b0a..ec8d4f0 100644 --- a/src/mod.ts +++ b/src/mod.ts @@ -52,6 +52,8 @@ export interface WorkspaceOptions { configPath?: string; /** Node resolution conditions to use for resolving package.json exports. */ nodeConditions?: string[]; + /** Date for the newest allowed dependency. */ + newestDependencyDate?: Date; /** * Platform to bundle for. * @default "node" diff --git a/src/rs_lib/Cargo.lock b/src/rs_lib/Cargo.lock index 4070002..1849887 100644 --- a/src/rs_lib/Cargo.lock +++ b/src/rs_lib/Cargo.lock @@ -289,9 +289,9 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "chrono" -version = "0.4.41" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" +checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" dependencies = [ "num-traits", "serde", @@ -536,13 +536,14 @@ dependencies = [ [[package]] name = "deno_graph" -version = "0.100.1" +version = "0.101.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0acfb48cc2e5a63b1c3501f2243e6898fb1b4518e1d0674b3344b11631c9d0ba" +checksum = "f0419813ac1469cfbb2b987dac6870de13cdff4bea6609f70fd99b3c2bc48403" dependencies = [ "async-trait", "boxed_error", "capacity_builder", + "chrono", "data-url", "deno_ast", "deno_error", @@ -601,12 +602,13 @@ dependencies = [ [[package]] name = "deno_npm" -version = "0.38.1" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80af8018f8ba59cb1b2da276e55b3765c5ac66181dc59c4bd724aa19cfbb3134" +checksum = "0470f809b73b0d936ff0df40f042a5c8e3c687d1118a174f44e967e0c075364b" dependencies = [ "async-trait", "capacity_builder", + "chrono", "deno_error", "deno_lockfile", "deno_semver", @@ -659,6 +661,7 @@ dependencies = [ "bincode", "boxed_error", "capacity_builder", + "chrono", "deno_config", "deno_error", "deno_graph", @@ -756,6 +759,7 @@ dependencies = [ "base32", "boxed_error", "capacity_builder", + "chrono", "dashmap", "deno_ast", "deno_cache_dir", @@ -1856,6 +1860,7 @@ version = "0.0.0" dependencies = [ "anyhow", "async-trait", + "chrono", "console_error_panic_hook", "deno_ast", "deno_cache_dir", diff --git a/src/rs_lib/Cargo.toml b/src/rs_lib/Cargo.toml index adaaed0..044c455 100644 --- a/src/rs_lib/Cargo.toml +++ b/src/rs_lib/Cargo.toml @@ -22,6 +22,7 @@ deno_error = "=0.7.0" deno_path_util = "=0.6.1" deno_semver = "=0.9.0" url = "2.5" +chrono = { version = "0.4.42", default-features = false } [dependencies.flate2] version = "1.0.30" @@ -41,7 +42,7 @@ path = "../../deno/libs/config" features = ["workspace","sync"] [dependencies.deno_graph] -version = "=0.100.1" +version = "=0.101.0" features = ["swc"] default-features = false diff --git a/src/rs_lib/lib.rs b/src/rs_lib/lib.rs index c7409a5..b023675 100644 --- a/src/rs_lib/lib.rs +++ b/src/rs_lib/lib.rs @@ -168,6 +168,8 @@ pub struct DenoWorkspaceOptions { #[serde(default)] pub node_conditions: Option>, #[serde(default)] + pub newest_dependency_date: Option>, + #[serde(default)] pub cached_only: Option, #[serde(default)] pub preserve_jsx: Option, @@ -303,8 +305,10 @@ impl DenoWorkspace { package_json_dep_resolution: None, specified_import_map: None, bare_node_builtins: true, + newest_dependency_date: options.newest_dependency_date, // todo: report these on_mapped_resolution_diagnostic: None, + types_node_version_req: None, }, )); let http_client = WasmHttpClient::default(); @@ -510,6 +514,8 @@ impl DenoLoader { { lockfile.fill_graph(&mut graph); } + let jsr_version_resolver = + self.resolver_factory.jsr_version_resolver()?; graph .build( entrypoints, @@ -523,6 +529,9 @@ impl DenoLoader { locker: locker.as_mut().map(|l| l as _), file_system: self.workspace_factory.sys(), jsr_url_provider: Default::default(), + jsr_version_resolver: Cow::Borrowed( + jsr_version_resolver.as_ref(), + ), passthrough_jsr_specifiers: false, module_analyzer: &module_analyzer, npm_resolver: Some(npm_resolver.as_ref()),