Skip to content

Commit e7aa097

Browse files
committed
Merge branch 'main' into feat/geometry2
2 parents 779ab98 + 225c3de commit e7aa097

File tree

21 files changed

+478
-344
lines changed

21 files changed

+478
-344
lines changed

Cargo.lock

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ slab = "0.4"
195195
smallvec = "1.8"
196196
socket2 = { version = "0.5.3", features = ["all"] }
197197
spki = "0.7.2"
198-
sys_traits = "=0.1.4"
198+
sys_traits = "=0.1.6"
199199
tar = "=0.4.40"
200200
tempfile = "3.4.0"
201201
termcolor = "1.1.3"
@@ -245,7 +245,7 @@ syn = { version = "2", features = ["full", "extra-traits"] }
245245
nix = "=0.27.1"
246246

247247
# windows deps
248-
junction = "=0.2.0"
248+
junction = "=1.2.0"
249249
winapi = "=0.3.9"
250250
windows-sys = { version = "0.59.0", features = ["Win32_Foundation", "Win32_Media", "Win32_Storage_FileSystem", "Win32_System_IO", "Win32_System_WindowsProgramming", "Wdk", "Wdk_System", "Wdk_System_SystemInformation", "Win32_Security", "Win32_System_Pipes", "Wdk_Storage_FileSystem", "Win32_System_Registry", "Win32_System_Kernel", "Win32_System_Threading", "Win32_UI", "Win32_UI_Shell"] }
251251
winres = "=0.1.12"

cli/factory.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ use crate::npm::CliNpmResolver;
7171
use crate::npm::CliNpmResolverCreateOptions;
7272
use crate::npm::CliNpmResolverManagedSnapshotOption;
7373
use crate::npm::CreateInNpmPkgCheckerOptions;
74+
use crate::npm::NpmRegistryReadPermissionChecker;
75+
use crate::npm::NpmRegistryReadPermissionCheckerMode;
7476
use crate::resolver::CjsTracker;
7577
use crate::resolver::CliDenoResolver;
7678
use crate::resolver::CliNpmReqResolver;
@@ -941,6 +943,19 @@ impl CliFactory {
941943
let cjs_tracker = self.cjs_tracker()?.clone();
942944
let pkg_json_resolver = self.pkg_json_resolver().clone();
943945
let npm_req_resolver = self.npm_req_resolver().await?;
946+
let npm_registry_permission_checker = {
947+
let mode = if cli_options.use_byonm() {
948+
NpmRegistryReadPermissionCheckerMode::Byonm
949+
} else if let Some(node_modules_dir) = cli_options.node_modules_dir_path()
950+
{
951+
NpmRegistryReadPermissionCheckerMode::Local(node_modules_dir.clone())
952+
} else {
953+
NpmRegistryReadPermissionCheckerMode::Global(
954+
self.npm_cache_dir()?.root_dir().to_path_buf(),
955+
)
956+
};
957+
Arc::new(NpmRegistryReadPermissionChecker::new(self.sys(), mode))
958+
};
944959

945960
Ok(CliMainWorkerFactory::new(
946961
self.blob_store().clone(),
@@ -968,13 +983,14 @@ impl CliFactory {
968983
self.module_load_preparer().await?.clone(),
969984
node_code_translator.clone(),
970985
node_resolver.clone(),
971-
npm_req_resolver.clone(),
972-
cli_npm_resolver.clone(),
973986
NpmModuleLoader::new(
974987
self.cjs_tracker()?.clone(),
975988
fs.clone(),
976989
node_code_translator.clone(),
977990
),
991+
npm_registry_permission_checker,
992+
npm_req_resolver.clone(),
993+
cli_npm_resolver.clone(),
978994
self.parsed_source_cache().clone(),
979995
self.resolver().await?.clone(),
980996
self.sys(),

cli/lsp/documents.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,9 @@ pub enum LanguageId {
6464
Markdown,
6565
Html,
6666
Css,
67+
Scss,
68+
Sass,
69+
Less,
6770
Yaml,
6871
Sql,
6972
Svelte,
@@ -86,6 +89,9 @@ impl LanguageId {
8689
LanguageId::Markdown => Some("md"),
8790
LanguageId::Html => Some("html"),
8891
LanguageId::Css => Some("css"),
92+
LanguageId::Scss => Some("scss"),
93+
LanguageId::Sass => Some("sass"),
94+
LanguageId::Less => Some("less"),
8995
LanguageId::Yaml => Some("yaml"),
9096
LanguageId::Sql => Some("sql"),
9197
LanguageId::Svelte => Some("svelte"),
@@ -107,6 +113,9 @@ impl LanguageId {
107113
LanguageId::Markdown => Some("text/markdown"),
108114
LanguageId::Html => Some("text/html"),
109115
LanguageId::Css => Some("text/css"),
116+
LanguageId::Scss => None,
117+
LanguageId::Sass => None,
118+
LanguageId::Less => None,
110119
LanguageId::Yaml => Some("application/yaml"),
111120
LanguageId::Sql => None,
112121
LanguageId::Svelte => None,
@@ -140,6 +149,9 @@ impl FromStr for LanguageId {
140149
"markdown" => Ok(Self::Markdown),
141150
"html" => Ok(Self::Html),
142151
"css" => Ok(Self::Css),
152+
"scss" => Ok(Self::Scss),
153+
"sass" => Ok(Self::Sass),
154+
"less" => Ok(Self::Less),
143155
"yaml" => Ok(Self::Yaml),
144156
"sql" => Ok(Self::Sql),
145157
"svelte" => Ok(Self::Svelte),

cli/module_loader.rs

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ use crate::graph_util::ModuleGraphBuilder;
6666
use crate::node::CliNodeCodeTranslator;
6767
use crate::node::CliNodeResolver;
6868
use crate::npm::CliNpmResolver;
69+
use crate::npm::NpmRegistryReadPermissionChecker;
6970
use crate::resolver::CjsTracker;
7071
use crate::resolver::CliNpmReqResolver;
7172
use crate::resolver::CliResolver;
@@ -221,9 +222,10 @@ struct SharedCliModuleLoaderState {
221222
module_load_preparer: Arc<ModuleLoadPreparer>,
222223
node_code_translator: Arc<CliNodeCodeTranslator>,
223224
node_resolver: Arc<CliNodeResolver>,
225+
npm_module_loader: NpmModuleLoader,
226+
npm_registry_permission_checker: Arc<NpmRegistryReadPermissionChecker>,
224227
npm_req_resolver: Arc<CliNpmReqResolver>,
225228
npm_resolver: Arc<dyn CliNpmResolver>,
226-
npm_module_loader: NpmModuleLoader,
227229
parsed_source_cache: Arc<ParsedSourceCache>,
228230
resolver: Arc<CliResolver>,
229231
sys: CliSys,
@@ -281,9 +283,10 @@ impl CliModuleLoaderFactory {
281283
module_load_preparer: Arc<ModuleLoadPreparer>,
282284
node_code_translator: Arc<CliNodeCodeTranslator>,
283285
node_resolver: Arc<CliNodeResolver>,
286+
npm_module_loader: NpmModuleLoader,
287+
npm_registry_permission_checker: Arc<NpmRegistryReadPermissionChecker>,
284288
npm_req_resolver: Arc<CliNpmReqResolver>,
285289
npm_resolver: Arc<dyn CliNpmResolver>,
286-
npm_module_loader: NpmModuleLoader,
287290
parsed_source_cache: Arc<ParsedSourceCache>,
288291
resolver: Arc<CliResolver>,
289292
sys: CliSys,
@@ -307,9 +310,10 @@ impl CliModuleLoaderFactory {
307310
module_load_preparer,
308311
node_code_translator,
309312
node_resolver,
313+
npm_module_loader,
314+
npm_registry_permission_checker,
310315
npm_req_resolver,
311316
npm_resolver,
312-
npm_module_loader,
313317
parsed_source_cache,
314318
resolver,
315319
sys,
@@ -348,7 +352,10 @@ impl CliModuleLoaderFactory {
348352
sys: self.shared.sys.clone(),
349353
graph_container,
350354
in_npm_pkg_checker: self.shared.in_npm_pkg_checker.clone(),
351-
npm_resolver: self.shared.npm_resolver.clone(),
355+
npm_registry_permission_checker: self
356+
.shared
357+
.npm_registry_permission_checker
358+
.clone(),
352359
});
353360
CreateModuleLoaderResult {
354361
module_loader,
@@ -1095,7 +1102,7 @@ struct CliNodeRequireLoader<TGraphContainer: ModuleGraphContainer> {
10951102
sys: CliSys,
10961103
graph_container: TGraphContainer,
10971104
in_npm_pkg_checker: Arc<dyn InNpmPackageChecker>,
1098-
npm_resolver: Arc<dyn CliNpmResolver>,
1105+
npm_registry_permission_checker: Arc<NpmRegistryReadPermissionChecker>,
10991106
}
11001107

11011108
impl<TGraphContainer: ModuleGraphContainer> NodeRequireLoader
@@ -1112,7 +1119,9 @@ impl<TGraphContainer: ModuleGraphContainer> NodeRequireLoader
11121119
return Ok(std::borrow::Cow::Borrowed(path));
11131120
}
11141121
}
1115-
self.npm_resolver.ensure_read_permission(permissions, path)
1122+
self
1123+
.npm_registry_permission_checker
1124+
.ensure_read_permission(permissions, path)
11161125
}
11171126

11181127
fn load_text_file_lossy(

cli/npm/byonm.rs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
// Copyright 2018-2025 the Deno authors. MIT license.
22

3-
use std::borrow::Cow;
43
use std::path::Path;
54
use std::sync::Arc;
65

7-
use deno_core::error::AnyError;
86
use deno_core::serde_json;
97
use deno_resolver::npm::ByonmNpmResolver;
108
use deno_resolver::npm::ByonmNpmResolverCreateOptions;
119
use deno_resolver::npm::CliNpmReqResolver;
12-
use deno_runtime::deno_node::NodePermissions;
1310
use deno_runtime::ops::process::NpmProcessStateProvider;
1411
use node_resolver::NpmPackageFolderResolver;
1512

@@ -73,21 +70,6 @@ impl CliNpmResolver for CliByonmNpmResolver {
7370
self.root_node_modules_dir()
7471
}
7572

76-
fn ensure_read_permission<'a>(
77-
&self,
78-
permissions: &mut dyn NodePermissions,
79-
path: &'a Path,
80-
) -> Result<Cow<'a, Path>, AnyError> {
81-
if !path
82-
.components()
83-
.any(|c| c.as_os_str().to_ascii_lowercase() == "node_modules")
84-
{
85-
permissions.check_read_path(path).map_err(Into::into)
86-
} else {
87-
Ok(Cow::Borrowed(path))
88-
}
89-
}
90-
9173
fn check_state_hash(&self) -> Option<u64> {
9274
// it is very difficult to determine the check state hash for byonm
9375
// so we just return None to signify check caching is not supported

cli/npm/managed/mod.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ use deno_npm_cache::NpmCacheSetting;
2424
use deno_path_util::fs::canonicalize_path_maybe_not_exists;
2525
use deno_resolver::npm::CliNpmReqResolver;
2626
use deno_runtime::colors;
27-
use deno_runtime::deno_node::NodePermissions;
2827
use deno_runtime::ops::process::NpmProcessStateProvider;
2928
use deno_semver::package::PackageNv;
3029
use deno_semver::package::PackageReq;
@@ -167,6 +166,7 @@ fn create_inner(
167166
sys.clone(),
168167
npm_rc.clone(),
169168
));
169+
170170
let fs_resolver = create_npm_fs_resolver(
171171
npm_cache.clone(),
172172
&npm_install_deps_provider,
@@ -754,14 +754,6 @@ impl CliNpmResolver for ManagedCliNpmResolver {
754754
self.fs_resolver.node_modules_path()
755755
}
756756

757-
fn ensure_read_permission<'a>(
758-
&self,
759-
permissions: &mut dyn NodePermissions,
760-
path: &'a Path,
761-
) -> Result<Cow<'a, Path>, AnyError> {
762-
self.fs_resolver.ensure_read_permission(permissions, path)
763-
}
764-
765757
fn check_state_hash(&self) -> Option<u64> {
766758
// We could go further and check all the individual
767759
// npm packages, but that's probably overkill.

0 commit comments

Comments
 (0)