From 636352e0ca1e611c7673f2ab68538e1ddb2dc5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 10 Jan 2023 14:35:44 +0100 Subject: fix(npm): allow to read package.json if permissions are granted (#17209) This commit changes signature of "deno_core::ModuleLoader::resolve" to pass an enum indicating whether or not we're resolving a specifier for dynamic import. Additionally "CliModuleLoader" was changes to store both "parent permissions" (or "root permissions") as well as "dynamic permissions" that allow to check for permissions in top-level module load an dynamic imports. Then all code paths that have anything to do with Node/npm compat are now checking for permissions which are passed from module loader instance associated with given worker. --- cli/lsp/documents.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'cli/lsp') diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs index bedd1f9a7..92dfdf543 100644 --- a/cli/lsp/documents.rs +++ b/cli/lsp/documents.rs @@ -33,6 +33,7 @@ use deno_core::ModuleSpecifier; use deno_graph::GraphImport; use deno_graph::Resolved; use deno_runtime::deno_node::NodeResolutionMode; +use deno_runtime::permissions::PermissionsContainer; use once_cell::sync::Lazy; use std::collections::BTreeMap; use std::collections::HashMap; @@ -1004,6 +1005,7 @@ impl Documents { referrer, NodeResolutionMode::Types, npm_resolver, + &mut PermissionsContainer::allow_all(), ) .ok() .flatten(), @@ -1040,6 +1042,7 @@ impl Documents { &npm_ref, NodeResolutionMode::Types, npm_resolver, + &mut PermissionsContainer::allow_all(), ) .ok() .flatten(), @@ -1208,6 +1211,7 @@ impl Documents { &npm_ref, NodeResolutionMode::Types, npm_resolver, + &mut PermissionsContainer::allow_all(), ) .ok() .flatten(), -- cgit v1.2.3