summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/Cargo.toml16
-rw-r--r--cli/args/mod.rs5
-rw-r--r--cli/args/package_json.rs26
-rw-r--r--cli/lsp/analysis.rs4
-rw-r--r--cli/lsp/diagnostics.rs17
-rw-r--r--cli/lsp/documents.rs12
-rw-r--r--cli/npm/cache.rs31
-rw-r--r--cli/npm/installer.rs6
-rw-r--r--cli/npm/resolution.rs26
-rw-r--r--cli/npm/resolvers/local.rs16
-rw-r--r--cli/npm/resolvers/mod.rs20
-rw-r--r--cli/npm/tarball.rs8
-rw-r--r--cli/resolver.rs25
-rw-r--r--cli/standalone/binary.rs8
-rw-r--r--cli/tests/integration/compile_tests.rs4
-rw-r--r--cli/tests/integration/inspector_tests.rs8
-rw-r--r--cli/tests/integration/npm_tests.rs12
-rw-r--r--cli/tests/testdata/npm/cjs_with_deps/main_info.out32
-rw-r--r--cli/tests/testdata/npm/cjs_with_deps/main_info_json.out4
-rw-r--r--cli/tests/testdata/npm/info/chalk.out12
-rw-r--r--cli/tests/testdata/npm/info/chalk_json.out4
-rw-r--r--cli/tests/testdata/npm/invalid_package_name/main.out2
-rw-r--r--cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info.out16
-rw-r--r--cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info_json.out4
-rw-r--r--cli/tests/testdata/package_json/basic/main.info.out2
-rw-r--r--cli/tests/testdata/package_json/invalid_value/error.ts.out2
-rw-r--r--cli/tests/testdata/package_json/invalid_value/task.out2
-rw-r--r--cli/tools/check.rs6
-rw-r--r--cli/tools/info.rs17
-rw-r--r--cli/tools/installer.rs1
-rw-r--r--cli/tools/repl/session.rs2
-rw-r--r--cli/tools/task.rs4
-rw-r--r--cli/worker.rs4
33 files changed, 176 insertions, 182 deletions
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index c2c4b3ede..dec23e6a5 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -48,16 +48,16 @@ winres.workspace = true
deno_ast = { workspace = true, features = ["bundler", "cjs", "codegen", "dep_graph", "module_specifier", "proposal", "react", "sourcemap", "transforms", "typescript", "view", "visit"] }
deno_cache_dir = "=0.5.2"
deno_core = { workspace = true, features = ["include_js_files_for_snapshotting"] }
-deno_doc = "=0.64.0"
-deno_emit = "=0.25.0"
-deno_graph = "=0.50.0"
-deno_lint = { version = "=0.49.0", features = ["docs"] }
+deno_doc = "=0.65.0"
+deno_emit = "=0.26.0"
+deno_graph = "=0.52.0"
+deno_lint = { version = "=0.50.1", features = ["docs"] }
deno_lockfile.workspace = true
deno_npm.workspace = true
deno_runtime = { workspace = true, features = ["dont_create_runtime_snapshot", "include_js_files_for_snapshotting"] }
deno_semver.workspace = true
-deno_task_shell = "=0.13.1"
-eszip = "=0.49.0"
+deno_task_shell = "=0.13.2"
+eszip = "=0.50.0"
napi_sym.workspace = true
async-trait.workspace = true
@@ -75,7 +75,7 @@ data-url.workspace = true
dissimilar = "=1.0.4"
dprint-plugin-json = "=0.17.4"
dprint-plugin-markdown = "=0.15.3"
-dprint-plugin-typescript = "=0.86.1"
+dprint-plugin-typescript = "=0.86.2"
encoding_rs.workspace = true
env_logger = "=0.9.0"
fancy-regex = "=0.10.0"
@@ -92,7 +92,7 @@ lazy-regex.workspace = true
libc.workspace = true
log = { workspace = true, features = ["serde"] }
lsp-types.workspace = true
-monch = "=0.4.2"
+monch = "=0.4.3"
notify.workspace = true
once_cell.workspace = true
os_pipe.workspace = true
diff --git a/cli/args/mod.rs b/cli/args/mod.rs
index f7f73fd4a..65c6e7308 100644
--- a/cli/args/mod.rs
+++ b/cli/args/mod.rs
@@ -1383,10 +1383,7 @@ pub fn has_flag_env_var(name: &str) -> bool {
pub fn npm_pkg_req_ref_to_binary_command(
req_ref: &NpmPackageReqReference,
) -> String {
- let binary_name = req_ref
- .sub_path
- .as_deref()
- .unwrap_or(req_ref.req.name.as_str());
+ let binary_name = req_ref.sub_path().unwrap_or(req_ref.req().name.as_str());
binary_name.to_string()
}
diff --git a/cli/args/package_json.rs b/cli/args/package_json.rs
index 76a09eadd..8ee30214e 100644
--- a/cli/args/package_json.rs
+++ b/cli/args/package_json.rs
@@ -10,9 +10,9 @@ use deno_core::error::AnyError;
use deno_npm::registry::parse_dep_entry_name_and_raw_version;
use deno_npm::registry::PackageDepNpmSchemeValueParseError;
use deno_runtime::deno_node::PackageJson;
-use deno_semver::npm::NpmPackageReq;
-use deno_semver::npm::NpmVersionReqSpecifierParseError;
+use deno_semver::package::PackageReq;
use deno_semver::VersionReq;
+use deno_semver::VersionReqSpecifierParseError;
use thiserror::Error;
#[derive(Debug, Error, Clone)]
@@ -20,13 +20,13 @@ pub enum PackageJsonDepValueParseError {
#[error(transparent)]
SchemeValue(#[from] PackageDepNpmSchemeValueParseError),
#[error(transparent)]
- Specifier(#[from] NpmVersionReqSpecifierParseError),
+ Specifier(#[from] VersionReqSpecifierParseError),
#[error("Not implemented scheme '{scheme}'")]
Unsupported { scheme: String },
}
pub type PackageJsonDeps =
- BTreeMap<String, Result<NpmPackageReq, PackageJsonDepValueParseError>>;
+ BTreeMap<String, Result<PackageReq, PackageJsonDepValueParseError>>;
#[derive(Debug, Default)]
pub struct PackageJsonDepsProvider(Option<PackageJsonDeps>);
@@ -40,7 +40,7 @@ impl PackageJsonDepsProvider {
self.0.as_ref()
}
- pub fn reqs(&self) -> Vec<&NpmPackageReq> {
+ pub fn reqs(&self) -> Vec<&PackageReq> {
match &self.0 {
Some(deps) => {
let mut package_reqs = deps
@@ -67,7 +67,7 @@ pub fn get_local_package_json_version_reqs(
fn parse_entry(
key: &str,
value: &str,
- ) -> Result<NpmPackageReq, PackageJsonDepValueParseError> {
+ ) -> Result<PackageReq, PackageJsonDepValueParseError> {
if value.starts_with("workspace:")
|| value.starts_with("file:")
|| value.starts_with("git:")
@@ -83,7 +83,7 @@ pub fn get_local_package_json_version_reqs(
let result = VersionReq::parse_from_specifier(version_req);
match result {
- Ok(version_req) => Ok(NpmPackageReq {
+ Ok(version_req) => Ok(PackageReq {
name: name.to_string(),
version_req,
}),
@@ -182,7 +182,7 @@ mod test {
fn get_local_package_json_version_reqs_for_tests(
package_json: &PackageJson,
- ) -> BTreeMap<String, Result<NpmPackageReq, String>> {
+ ) -> BTreeMap<String, Result<PackageReq, String>> {
get_local_package_json_version_reqs(package_json)
.into_iter()
.map(|(k, v)| {
@@ -215,15 +215,15 @@ mod test {
BTreeMap::from([
(
"test".to_string(),
- Ok(NpmPackageReq::from_str("test@^1.2").unwrap())
+ Ok(PackageReq::from_str("test@^1.2").unwrap())
),
(
"other".to_string(),
- Ok(NpmPackageReq::from_str("package@~1.3").unwrap())
+ Ok(PackageReq::from_str("package@~1.3").unwrap())
),
(
"package_b".to_string(),
- Ok(NpmPackageReq::from_str("package_b@~2.2").unwrap())
+ Ok(PackageReq::from_str("package_b@~2.2").unwrap())
)
])
);
@@ -243,7 +243,7 @@ mod test {
"test".to_string(),
Err(
concat!(
- "Invalid npm specifier version requirement. Unexpected character.\n",
+ "Invalid specifier version requirement. Unexpected character.\n",
" - 1.3\n",
" ~"
)
@@ -286,7 +286,7 @@ mod test {
),
(
"test".to_string(),
- Ok(NpmPackageReq::from_str("test@1").unwrap())
+ Ok(PackageReq::from_str("test@1").unwrap())
),
(
"work-test".to_string(),
diff --git a/cli/lsp/analysis.rs b/cli/lsp/analysis.rs
index 63e0549fd..ec279022d 100644
--- a/cli/lsp/analysis.rs
+++ b/cli/lsp/analysis.rs
@@ -23,7 +23,7 @@ use deno_core::ModuleSpecifier;
use deno_lint::rules::LintRule;
use deno_runtime::deno_node::PackageJson;
use deno_runtime::deno_node::PathClean;
-use deno_semver::npm::NpmPackageReq;
+use deno_semver::package::PackageReq;
use import_map::ImportMap;
use once_cell::sync::Lazy;
use regex::Regex;
@@ -187,7 +187,7 @@ impl<'a> TsResponseImportMapper<'a> {
) -> Option<String> {
fn concat_npm_specifier(
prefix: &str,
- pkg_req: &NpmPackageReq,
+ pkg_req: &PackageReq,
sub_path: Option<&str>,
) -> String {
let result = format!("{}{}", prefix, pkg_req);
diff --git a/cli/lsp/diagnostics.rs b/cli/lsp/diagnostics.rs
index 4e24673f3..817d2fbc4 100644
--- a/cli/lsp/diagnostics.rs
+++ b/cli/lsp/diagnostics.rs
@@ -39,6 +39,7 @@ use deno_lint::rules::LintRule;
use deno_runtime::deno_node;
use deno_runtime::tokio_util::create_basic_runtime;
use deno_semver::npm::NpmPackageReqReference;
+use deno_semver::package::PackageReq;
use log::error;
use std::collections::HashMap;
use std::collections::HashSet;
@@ -876,7 +877,7 @@ pub enum DenoDiagnostic {
/// A remote module was not found in the cache.
NoCache(ModuleSpecifier),
/// A remote npm package reference was not found in the cache.
- NoCacheNpm(NpmPackageReqReference, ModuleSpecifier),
+ NoCacheNpm(PackageReq, ModuleSpecifier),
/// A local module was not found on the local file system.
NoLocal(ModuleSpecifier),
/// The specifier resolved to a remote specifier that was redirected to
@@ -1086,7 +1087,7 @@ impl DenoDiagnostic {
Self::InvalidAssertType(assert_type) => (lsp::DiagnosticSeverity::ERROR, format!("The module is a JSON module and expected an assertion type of \"json\". Instead got \"{assert_type}\"."), None),
Self::NoAssertType => (lsp::DiagnosticSeverity::ERROR, "The module is a JSON module and not being imported with an import assertion. Consider adding `assert { type: \"json\" }` to the import statement.".to_string(), None),
Self::NoCache(specifier) => (lsp::DiagnosticSeverity::ERROR, format!("Uncached or missing remote URL: {specifier}"), Some(json!({ "specifier": specifier }))),
- Self::NoCacheNpm(pkg_ref, specifier) => (lsp::DiagnosticSeverity::ERROR, format!("Uncached or missing npm package: {}", pkg_ref.req), Some(json!({ "specifier": specifier }))),
+ Self::NoCacheNpm(pkg_req, specifier) => (lsp::DiagnosticSeverity::ERROR, format!("Uncached or missing npm package: {}", pkg_req), Some(json!({ "specifier": specifier }))),
Self::NoLocal(specifier) => (lsp::DiagnosticSeverity::ERROR, format!("Unable to load a local module: {specifier}\n Please check the file path."), None),
Self::Redirect { from, to} => (lsp::DiagnosticSeverity::INFORMATION, format!("The import of \"{from}\" was redirected to \"{to}\"."), Some(json!({ "specifier": from, "redirect": to }))),
Self::ResolutionError(err) => (
@@ -1159,9 +1160,10 @@ fn diagnose_resolution(
{
if let Some(npm_resolver) = &snapshot.maybe_npm_resolver {
// show diagnostics for npm package references that aren't cached
- if !npm_resolver.is_pkg_req_folder_cached(&pkg_ref.req) {
+ let req = pkg_ref.into_inner().req;
+ if !npm_resolver.is_pkg_req_folder_cached(&req) {
diagnostics
- .push(DenoDiagnostic::NoCacheNpm(pkg_ref, specifier.clone()));
+ .push(DenoDiagnostic::NoCacheNpm(req, specifier.clone()));
}
}
} else if let Some(module_name) = specifier.as_str().strip_prefix("node:")
@@ -1171,11 +1173,10 @@ fn diagnose_resolution(
.push(DenoDiagnostic::InvalidNodeSpecifier(specifier.clone()));
} else if let Some(npm_resolver) = &snapshot.maybe_npm_resolver {
// check that a @types/node package exists in the resolver
- let types_node_ref =
- NpmPackageReqReference::from_str("npm:@types/node").unwrap();
- if !npm_resolver.is_pkg_req_folder_cached(&types_node_ref.req) {
+ let types_node_req = PackageReq::from_str("@types/node").unwrap();
+ if !npm_resolver.is_pkg_req_folder_cached(&types_node_req) {
diagnostics.push(DenoDiagnostic::NoCacheNpm(
- types_node_ref,
+ types_node_req,
ModuleSpecifier::parse("npm:@types/node").unwrap(),
));
}
diff --git a/cli/lsp/documents.rs b/cli/lsp/documents.rs
index 8227d2e4c..11fba693f 100644
--- a/cli/lsp/documents.rs
+++ b/cli/lsp/documents.rs
@@ -43,8 +43,8 @@ use deno_runtime::deno_node::NodeResolutionMode;
use deno_runtime::deno_node::NodeResolver;
use deno_runtime::deno_node::PackageJson;
use deno_runtime::permissions::PermissionsContainer;
-use deno_semver::npm::NpmPackageReq;
use deno_semver::npm::NpmPackageReqReference;
+use deno_semver::package::PackageReq;
use indexmap::IndexMap;
use lsp::Url;
use once_cell::sync::Lazy;
@@ -846,7 +846,7 @@ pub struct Documents {
/// settings.
resolver: Arc<CliGraphResolver>,
/// The npm package requirements found in npm specifiers.
- npm_specifier_reqs: Arc<Vec<NpmPackageReq>>,
+ npm_specifier_reqs: Arc<Vec<PackageReq>>,
/// Gets if any document had a node: specifier such that a @types/node package
/// should be injected.
has_injected_types_node_package: bool,
@@ -1017,7 +1017,7 @@ impl Documents {
}
/// Returns a collection of npm package requirements.
- pub fn npm_package_reqs(&mut self) -> Arc<Vec<NpmPackageReq>> {
+ pub fn npm_package_reqs(&mut self) -> Arc<Vec<PackageReq>> {
self.calculate_dependents_if_dirty();
self.npm_specifier_reqs.clone()
}
@@ -1398,7 +1398,7 @@ impl Documents {
dependents_map: HashMap<ModuleSpecifier, HashSet<ModuleSpecifier>>,
analyzed_specifiers: HashSet<ModuleSpecifier>,
pending_specifiers: VecDeque<ModuleSpecifier>,
- npm_reqs: HashSet<NpmPackageReq>,
+ npm_reqs: HashSet<PackageReq>,
has_node_builtin_specifier: bool,
}
@@ -1410,7 +1410,7 @@ impl Documents {
// been analyzed in order to not cause an extra file system lookup
self.pending_specifiers.push_back(dep.clone());
if let Ok(reference) = NpmPackageReqReference::from_specifier(dep) {
- self.npm_reqs.insert(reference.req);
+ self.npm_reqs.insert(reference.into_inner().req);
}
}
@@ -1468,7 +1468,7 @@ impl Documents {
.has_node_builtin_specifier
&& !npm_reqs.iter().any(|r| r.name == "@types/node");
if self.has_injected_types_node_package {
- npm_reqs.insert(NpmPackageReq::from_str("@types/node").unwrap());
+ npm_reqs.insert(PackageReq::from_str("@types/node").unwrap());
}
self.dependents_map = Arc::new(doc_analyzer.dependents_map);
diff --git a/cli/npm/cache.rs b/cli/npm/cache.rs
index c657beef3..587ce6fd0 100644
--- a/cli/npm/cache.rs
+++ b/cli/npm/cache.rs
@@ -16,7 +16,7 @@ use deno_core::url::Url;
use deno_npm::registry::NpmPackageVersionDistInfo;
use deno_npm::NpmPackageCacheFolderId;
use deno_runtime::deno_fs;
-use deno_semver::npm::NpmPackageNv;
+use deno_semver::package::PackageNv;
use deno_semver::Version;
use once_cell::sync::Lazy;
@@ -43,7 +43,7 @@ pub fn should_sync_download() -> bool {
const NPM_PACKAGE_SYNC_LOCK_FILENAME: &str = ".deno_sync_lock";
pub fn with_folder_sync_lock(
- package: &NpmPackageNv,
+ package: &PackageNv,
output_folder: &Path,
action: impl FnOnce() -> Result<(), AnyError>,
) -> Result<(), AnyError> {
@@ -162,7 +162,7 @@ impl NpmCacheDir {
pub fn package_folder_for_name_and_version(
&self,
- package: &NpmPackageNv,
+ package: &PackageNv,
registry_url: &Url,
) -> PathBuf {
self
@@ -251,7 +251,7 @@ impl NpmCacheDir {
(version_part, 0)
};
Some(NpmPackageCacheFolderId {
- nv: NpmPackageNv {
+ nv: PackageNv {
name,
version: Version::parse_from_npm(version).ok()?,
},
@@ -273,7 +273,7 @@ pub struct NpmCache {
http_client: Arc<HttpClient>,
progress_bar: ProgressBar,
/// ensures a package is only downloaded once per run
- previously_reloaded_packages: Mutex<HashSet<NpmPackageNv>>,
+ previously_reloaded_packages: Mutex<HashSet<PackageNv>>,
}
impl NpmCache {
@@ -311,10 +311,7 @@ impl NpmCache {
/// to ensure a package is only downloaded once per run of the CLI. This
/// prevents downloads from re-occurring when someone has `--reload` and
/// and imports a dynamic import that imports the same package again for example.
- fn should_use_global_cache_for_package(
- &self,
- package: &NpmPackageNv,
- ) -> bool {
+ fn should_use_global_cache_for_package(&self, package: &PackageNv) -> bool {
self.cache_setting.should_use_for_npm_package(&package.name)
|| !self
.previously_reloaded_packages
@@ -324,7 +321,7 @@ impl NpmCache {
pub async fn ensure_package(
&self,
- package: &NpmPackageNv,
+ package: &PackageNv,
dist: &NpmPackageVersionDistInfo,
registry_url: &Url,
) -> Result<(), AnyError> {
@@ -336,7 +333,7 @@ impl NpmCache {
async fn ensure_package_inner(
&self,
- package: &NpmPackageNv,
+ package: &PackageNv,
dist: &NpmPackageVersionDistInfo,
registry_url: &Url,
) -> Result<(), AnyError> {
@@ -422,7 +419,7 @@ impl NpmCache {
pub fn package_folder_for_name_and_version(
&self,
- package: &NpmPackageNv,
+ package: &PackageNv,
registry_url: &Url,
) -> PathBuf {
self
@@ -467,7 +464,7 @@ pub fn mixed_case_package_name_decode(name: &str) -> Option<String> {
#[cfg(test)]
mod test {
use deno_core::url::Url;
- use deno_semver::npm::NpmPackageNv;
+ use deno_semver::package::PackageNv;
use deno_semver::Version;
use super::NpmCacheDir;
@@ -483,7 +480,7 @@ mod test {
assert_eq!(
cache.package_folder_for_id(
&NpmPackageCacheFolderId {
- nv: NpmPackageNv {
+ nv: PackageNv {
name: "json".to_string(),
version: Version::parse_from_npm("1.2.5").unwrap(),
},
@@ -500,7 +497,7 @@ mod test {
assert_eq!(
cache.package_folder_for_id(
&NpmPackageCacheFolderId {
- nv: NpmPackageNv {
+ nv: PackageNv {
name: "json".to_string(),
version: Version::parse_from_npm("1.2.5").unwrap(),
},
@@ -517,7 +514,7 @@ mod test {
assert_eq!(
cache.package_folder_for_id(
&NpmPackageCacheFolderId {
- nv: NpmPackageNv {
+ nv: PackageNv {
name: "JSON".to_string(),
version: Version::parse_from_npm("2.1.5").unwrap(),
},
@@ -534,7 +531,7 @@ mod test {
assert_eq!(
cache.package_folder_for_id(
&NpmPackageCacheFolderId {
- nv: NpmPackageNv {
+ nv: PackageNv {
name: "@types/JSON".to_string(),
version: Version::parse_from_npm("2.1.5").unwrap(),
},
diff --git a/cli/npm/installer.rs b/cli/npm/installer.rs
index adb4344ee..9e7b413b4 100644
--- a/cli/npm/installer.rs
+++ b/cli/npm/installer.rs
@@ -8,7 +8,7 @@ use deno_core::futures::stream::FuturesOrdered;
use deno_core::futures::StreamExt;
use deno_npm::registry::NpmRegistryApi;
use deno_npm::registry::NpmRegistryPackageInfoLoadError;
-use deno_semver::npm::NpmPackageReq;
+use deno_semver::package::PackageReq;
use crate::args::PackageJsonDepsProvider;
use crate::util::sync::AtomicFlag;
@@ -27,11 +27,11 @@ struct PackageJsonDepsInstallerInner {
impl PackageJsonDepsInstallerInner {
pub fn reqs_with_info_futures<'a>(
&self,
- reqs: &'a [&'a NpmPackageReq],
+ reqs: &'a [&'a PackageReq],
) -> FuturesOrdered<
impl Future<
Output = Result<
- (&'a NpmPackageReq, Arc<deno_npm::registry::NpmPackageInfo>),
+ (&'a PackageReq, Arc<deno_npm::registry::NpmPackageInfo>),
NpmRegistryPackageInfoLoadError,
>,
>,
diff --git a/cli/npm/resolution.rs b/cli/npm/resolution.rs
index 6beb52090..d097f8cd4 100644
--- a/cli/npm/resolution.rs
+++ b/cli/npm/resolution.rs
@@ -27,8 +27,8 @@ use deno_npm::NpmPackageCacheFolderId;
use deno_npm::NpmPackageId;
use deno_npm::NpmResolutionPackage;
use deno_npm::NpmSystemInfo;
-use deno_semver::npm::NpmPackageNv;
-use deno_semver::npm::NpmPackageReq;
+use deno_semver::package::PackageNv;
+use deno_semver::package::PackageReq;
use deno_semver::VersionReq;
use crate::args::Lockfile;
@@ -82,7 +82,7 @@ impl NpmResolution {
pub async fn add_package_reqs(
&self,
- package_reqs: &[NpmPackageReq],
+ package_reqs: &[PackageReq],
) -> Result<(), AnyError> {
// only allow one thread in here at a time
let _permit = self.update_queue.acquire().await;
@@ -100,7 +100,7 @@ impl NpmResolution {
pub async fn set_package_reqs(
&self,
- package_reqs: &[NpmPackageReq],
+ package_reqs: &[PackageReq],
) -> Result<(), AnyError> {
// only allow one thread in here at a time
let _permit = self.update_queue.acquire().await;
@@ -185,7 +185,7 @@ impl NpmResolution {
/// Resolve a node package from a deno module.
pub fn resolve_pkg_id_from_pkg_req(
&self,
- req: &NpmPackageReq,
+ req: &PackageReq,
) -> Result<NpmPackageId, PackageReqNotFoundError> {
self
.snapshot
@@ -197,7 +197,7 @@ impl NpmResolution {
pub fn resolve_pkg_reqs_from_pkg_id(
&self,
id: &NpmPackageId,
- ) -> Vec<NpmPackageReq> {
+ ) -> Vec<PackageReq> {
let snapshot = self.snapshot.read();
let mut pkg_reqs = snapshot
.package_reqs()
@@ -211,7 +211,7 @@ impl NpmResolution {
pub fn resolve_pkg_id_from_deno_module(
&self,
- id: &NpmPackageNv,
+ id: &PackageNv,
) -> Result<NpmPackageId, PackageNvNotFoundError> {
self
.snapshot
@@ -225,8 +225,8 @@ impl NpmResolution {
/// a package.json
pub fn resolve_package_req_as_pending(
&self,
- pkg_req: &NpmPackageReq,
- ) -> Result<NpmPackageNv, NpmPackageVersionResolutionError> {
+ pkg_req: &PackageReq,
+ ) -> Result<PackageNv, NpmPackageVersionResolutionError> {
// we should always have this because it should have been cached before here
let package_info = self.api.get_cached_package_info(&pkg_req.name).unwrap();
self.resolve_package_req_as_pending_with_info(pkg_req, &package_info)
@@ -237,9 +237,9 @@ impl NpmResolution {
/// a package.json
pub fn resolve_package_req_as_pending_with_info(
&self,
- pkg_req: &NpmPackageReq,
+ pkg_req: &PackageReq,
package_info: &NpmPackageInfo,
- ) -> Result<NpmPackageNv, NpmPackageVersionResolutionError> {
+ ) -> Result<PackageNv, NpmPackageVersionResolutionError> {
debug_assert_eq!(pkg_req.name, package_info.name);
let mut snapshot = self.snapshot.write();
let pending_resolver = get_npm_pending_resolver(&self.api);
@@ -251,7 +251,7 @@ impl NpmResolution {
Ok(nv)
}
- pub fn package_reqs(&self) -> HashMap<NpmPackageReq, NpmPackageNv> {
+ pub fn package_reqs(&self) -> HashMap<PackageReq, PackageNv> {
self.snapshot.read().package_reqs().clone()
}
@@ -304,7 +304,7 @@ impl NpmResolution {
async fn add_package_reqs_to_snapshot(
api: &CliNpmRegistryApi,
- package_reqs: &[NpmPackageReq],
+ package_reqs: &[PackageReq],
maybe_lockfile: Option<Arc<Mutex<Lockfile>>>,
get_new_snapshot: impl Fn() -> NpmResolutionSnapshot,
) -> Result<NpmResolutionSnapshot, AnyError> {
diff --git a/cli/npm/resolvers/local.rs b/cli/npm/resolvers/local.rs
index 6a0065ba8..71b91c452 100644
--- a/cli/npm/resolvers/local.rs
+++ b/cli/npm/resolvers/local.rs
@@ -37,7 +37,7 @@ use deno_runtime::deno_fs;
use deno_runtime::deno_node::NodePermissions;
use deno_runtime::deno_node::NodeResolutionMode;
use deno_runtime::deno_node::PackageJson;
-use deno_semver::npm::NpmPackageNv;
+use deno_semver::package::PackageNv;
use serde::Deserialize;
use serde::Serialize;
@@ -657,7 +657,7 @@ fn get_package_folder_id_from_folder_name(
};
let version = deno_semver::Version::parse_from_npm(raw_version).ok()?;
Some(NpmPackageCacheFolderId {
- nv: NpmPackageNv { name, version },
+ nv: PackageNv { name, version },
copy_index,
})
}
@@ -726,7 +726,7 @@ fn join_package_name(path: &Path, package_name: &str) -> PathBuf {
#[cfg(test)]
mod test {
use deno_npm::NpmPackageCacheFolderId;
- use deno_semver::npm::NpmPackageNv;
+ use deno_semver::package::PackageNv;
use test_util::TempDir;
use super::*;
@@ -736,20 +736,14 @@ mod test {
let cases = vec![
(
NpmPackageCacheFolderId {
- nv: NpmPackageNv {
- name: "@types/foo".to_string(),
- version: deno_semver::Version::parse_standard("1.2.3").unwrap(),
- },
+ nv: PackageNv::from_str("@types/foo@1.2.3").unwrap(),
copy_index: 1,
},
"@types+foo@1.2.3_1".to_string(),
),
(
NpmPackageCacheFolderId {
- nv: NpmPackageNv {
- name: "JSON".to_string(),
- version: deno_semver::Version::parse_standard("3.2.1").unwrap(),
- },
+ nv: PackageNv::from_str("JSON@3.2.1").unwrap(),
copy_index: 0,
},
"_jjju6tq@3.2.1".to_string(),
diff --git a/cli/npm/resolvers/mod.rs b/cli/npm/resolvers/mod.rs
index 1b3f57c9a..58a70dff0 100644
--- a/cli/npm/resolvers/mod.rs
+++ b/cli/npm/resolvers/mod.rs
@@ -25,8 +25,8 @@ use deno_runtime::deno_node::NodePermissions;
use deno_runtime::deno_node::NodeResolutionMode;
use deno_runtime::deno_node::NpmResolver;
use deno_runtime::deno_node::PathClean;
-use deno_semver::npm::NpmPackageNv;
-use deno_semver::npm::NpmPackageReq;
+use deno_semver::package::PackageNv;
+use deno_semver::package::PackageReq;
use global::GlobalNpmPackageResolver;
use serde::Deserialize;
use serde::Serialize;
@@ -91,7 +91,7 @@ impl CliNpmResolver {
}
/// Checks if the provided package req's folder is cached.
- pub fn is_pkg_req_folder_cached(&self, req: &NpmPackageReq) -> bool {
+ pub fn is_pkg_req_folder_cached(&self, req: &PackageReq) -> bool {
self
.resolve_pkg_id_from_pkg_req(req)
.ok()
@@ -102,7 +102,7 @@ impl CliNpmResolver {
pub fn resolve_pkg_id_from_pkg_req(
&self,
- req: &NpmPackageReq,
+ req: &PackageReq,
) -> Result<NpmPackageId, PackageReqNotFoundError> {
self.resolution.resolve_pkg_id_from_pkg_req(req)
}
@@ -182,7 +182,7 @@ impl CliNpmResolver {
/// Adds package requirements to the resolver and ensures everything is setup.
pub async fn add_package_reqs(
&self,
- packages: &[NpmPackageReq],
+ packages: &[PackageReq],
) -> Result<(), AnyError> {
if packages.is_empty() {
return Ok(());
@@ -205,7 +205,7 @@ impl CliNpmResolver {
/// This will retrieve and resolve package information, but not cache any package files.
pub async fn set_package_reqs(
&self,
- packages: &[NpmPackageReq],
+ packages: &[PackageReq],
) -> Result<(), AnyError> {
self.resolution.set_package_reqs(packages).await
}
@@ -225,7 +225,7 @@ impl CliNpmResolver {
.unwrap()
}
- pub fn package_reqs(&self) -> HashMap<NpmPackageReq, NpmPackageNv> {
+ pub fn package_reqs(&self) -> HashMap<PackageReq, PackageNv> {
self.resolution.package_reqs()
}
@@ -241,7 +241,7 @@ impl CliNpmResolver {
&self,
) -> Result<(), AnyError> {
// add and ensure this isn't added to the lockfile
- let package_reqs = vec![NpmPackageReq::from_str("@types/node").unwrap()];
+ let package_reqs = vec![PackageReq::from_str("@types/node").unwrap()];
self.resolution.add_package_reqs(&package_reqs).await?;
self.fs_resolver.cache_packages().await?;
@@ -279,7 +279,7 @@ impl NpmResolver for CliNpmResolver {
fn resolve_package_folder_from_deno_module(
&self,
- pkg_nv: &NpmPackageNv,
+ pkg_nv: &PackageNv,
) -> Result<PathBuf, AnyError> {
let pkg_id = self.resolution.resolve_pkg_id_from_deno_module(pkg_nv)?;
self.resolve_pkg_folder_from_pkg_id(&pkg_id)
@@ -287,7 +287,7 @@ impl NpmResolver for CliNpmResolver {
fn resolve_pkg_id_from_pkg_req(
&self,
- req: &NpmPackageReq,
+ req: &PackageReq,
) -> Result<NpmPackageId, PackageReqNotFoundError> {
self.resolution.resolve_pkg_id_from_pkg_req(req)
}
diff --git a/cli/npm/tarball.rs b/cli/npm/tarball.rs
index 18a555671..f2f8d1ba4 100644
--- a/cli/npm/tarball.rs
+++ b/cli/npm/tarball.rs
@@ -8,7 +8,7 @@ use std::path::PathBuf;
use deno_core::anyhow::bail;
use deno_core::error::AnyError;
use deno_npm::registry::NpmPackageVersionDistInfo;
-use deno_semver::npm::NpmPackageNv;
+use deno_semver::package::PackageNv;
use flate2::read::GzDecoder;
use tar::Archive;
use tar::EntryType;
@@ -16,7 +16,7 @@ use tar::EntryType;
use super::cache::with_folder_sync_lock;
pub fn verify_and_extract_tarball(
- package: &NpmPackageNv,
+ package: &PackageNv,
data: &[u8],
dist_info: &NpmPackageVersionDistInfo,
output_folder: &Path,
@@ -29,7 +29,7 @@ pub fn verify_and_extract_tarball(
}
fn verify_tarball_integrity(
- package: &NpmPackageNv,
+ package: &PackageNv,
data: &[u8],
npm_integrity: &str,
) -> Result<(), AnyError> {
@@ -140,7 +140,7 @@ mod test {
#[test]
pub fn test_verify_tarball() {
- let package = NpmPackageNv {
+ let package = PackageNv {
name: "package".to_string(),
version: Version::parse_from_npm("1.0.0").unwrap(),
};
diff --git a/cli/resolver.rs b/cli/resolver.rs
index f78f31e8d..dfa709bcb 100644
--- a/cli/resolver.rs
+++ b/cli/resolver.rs
@@ -8,14 +8,14 @@ use deno_core::futures::future::LocalBoxFuture;
use deno_core::futures::FutureExt;
use deno_core::ModuleSpecifier;
use deno_core::TaskQueue;
-use deno_graph::source::NpmPackageReqResolution;
use deno_graph::source::NpmResolver;
+use deno_graph::source::PackageReqResolution;
use deno_graph::source::Resolver;
use deno_graph::source::UnknownBuiltInNodeModuleError;
use deno_graph::source::DEFAULT_JSX_IMPORT_SOURCE_MODULE;
use deno_npm::registry::NpmRegistryApi;
use deno_runtime::deno_node::is_builtin_node_module;
-use deno_semver::npm::NpmPackageReq;
+use deno_semver::package::PackageReq;
use import_map::ImportMap;
use std::path::PathBuf;
use std::sync::Arc;
@@ -333,12 +333,9 @@ impl NpmResolver for CliGraphResolver {
.boxed()
}
- fn resolve_npm(
- &self,
- package_req: &NpmPackageReq,
- ) -> NpmPackageReqResolution {
+ fn resolve_npm(&self, package_req: &PackageReq) -> PackageReqResolution {
if self.no_npm {
- return NpmPackageReqResolution::Err(anyhow!(
+ return PackageReqResolution::Err(anyhow!(
"npm specifiers were requested; but --no-npm is specified"
));
}
@@ -347,13 +344,13 @@ impl NpmResolver for CliGraphResolver {
.npm_resolution
.resolve_package_req_as_pending(package_req);
match result {
- Ok(nv) => NpmPackageReqResolution::Ok(nv),
+ Ok(nv) => PackageReqResolution::Ok(nv),
Err(err) => {
if self.npm_registry_api.mark_force_reload() {
log::debug!("Restarting npm specifier resolution to check for new registry information. Error: {:#}", err);
- NpmPackageReqResolution::ReloadRegistryInfo(err.into())
+ PackageReqResolution::ReloadRegistryInfo(err.into())
} else {
- NpmPackageReqResolution::Err(err.into())
+ PackageReqResolution::Err(err.into())
}
}
}
@@ -370,7 +367,7 @@ mod test {
fn test_resolve_package_json_dep() {
fn resolve(
specifier: &str,
- deps: &BTreeMap<String, NpmPackageReq>,
+ deps: &BTreeMap<String, PackageReq>,
) -> Result<Option<String>, String> {
let deps = deps
.iter()
@@ -384,15 +381,15 @@ mod test {
let deps = BTreeMap::from([
(
"package".to_string(),
- NpmPackageReq::from_str("package@1.0").unwrap(),
+ PackageReq::from_str("package@1.0").unwrap(),
),
(
"package-alias".to_string(),
- NpmPackageReq::from_str("package@^1.2").unwrap(),
+ PackageReq::from_str("package@^1.2").unwrap(),
),
(
"@deno/test".to_string(),
- NpmPackageReq::from_str("@deno/test@~0.2").unwrap(),
+ PackageReq::from_str("@deno/test@~0.2").unwrap(),
),
]);
diff --git a/cli/standalone/binary.rs b/cli/standalone/binary.rs
index bfafcdb6b..48ef043da 100644
--- a/cli/standalone/binary.rs
+++ b/cli/standalone/binary.rs
@@ -21,8 +21,8 @@ use deno_core::url::Url;
use deno_npm::registry::PackageDepNpmSchemeValueParseError;
use deno_npm::NpmSystemInfo;
use deno_runtime::permissions::PermissionsOptions;
-use deno_semver::npm::NpmPackageReq;
-use deno_semver::npm::NpmVersionReqSpecifierParseError;
+use deno_semver::package::PackageReq;
+use deno_semver::VersionReqSpecifierParseError;
use log::Level;
use serde::Deserialize;
use serde::Serialize;
@@ -81,7 +81,7 @@ impl SerializablePackageJsonDepValueParseError {
}
SerializablePackageJsonDepValueParseError::Specifier(source) => {
PackageJsonDepValueParseError::Specifier(
- NpmVersionReqSpecifierParseError {
+ VersionReqSpecifierParseError {
source: monch::ParseErrorFailureError::new(source),
},
)
@@ -97,7 +97,7 @@ impl SerializablePackageJsonDepValueParseError {
pub struct SerializablePackageJsonDeps(
BTreeMap<
String,
- Result<NpmPackageReq, SerializablePackageJsonDepValueParseError>,
+ Result<PackageReq, SerializablePackageJsonDepValueParseError>,
>,
);
diff --git a/cli/tests/integration/compile_tests.rs b/cli/tests/integration/compile_tests.rs
index 022148ce4..f43b1cff9 100644
--- a/cli/tests/integration/compile_tests.rs
+++ b/cli/tests/integration/compile_tests.rs
@@ -120,9 +120,9 @@ fn standalone_error() {
assert_contains!(stderr, "error: Uncaught Error: boom!");
assert_contains!(stderr, "throw new Error(\"boom!\");");
assert_contains!(stderr, "\n at boom (file://");
- assert_contains!(stderr, "standalone_error.ts:2:11");
+ assert_contains!(stderr, "standalone_error.ts:2:9");
assert_contains!(stderr, "at foo (file://");
- assert_contains!(stderr, "standalone_error.ts:5:5");
+ assert_contains!(stderr, "standalone_error.ts:5:3");
assert_contains!(stderr, "standalone_error.ts:7:1");
}
diff --git a/cli/tests/integration/inspector_tests.rs b/cli/tests/integration/inspector_tests.rs
index 79422ee5a..c507204e4 100644
--- a/cli/tests/integration/inspector_tests.rs
+++ b/cli/tests/integration/inspector_tests.rs
@@ -75,6 +75,12 @@ struct InspectorTester {
stdout_lines: Box<dyn Iterator<Item = String>>,
}
+impl Drop for InspectorTester {
+ fn drop(&mut self) {
+ _ = self.child.kill();
+ }
+}
+
fn ignore_script_parsed(msg: &str) -> bool {
!msg.starts_with(r#"{"method":"Debugger.scriptParsed","#)
}
@@ -953,7 +959,7 @@ async fn inspector_with_ts_files() {
tester.assert_received_messages(
&[
r#"{"id":4,"result":{"scriptSource":"import { foo } from \"./foo.ts\";\nimport { bar } from \"./bar.js\";\nconsole.log(foo());\nconsole.log(bar());\n//# sourceMappingURL=data:application/json;base64,"#,
- r#"{"id":5,"result":{"scriptSource":"class Foo {\n hello() {\n return \"hello\";\n }\n}\nexport function foo() {\n const f = new Foo();\n return f.hello();\n}\n//# sourceMappingURL=data:application/json;base64,"#,
+ r#"{"id":5,"result":{"scriptSource":"class Foo {\n hello() {\n return \"hello\";\n }\n}\nexport function foo() {\n const f = new Foo();\n return f.hello();\n}\n//# sourceMappingURL=data:application/json;base64,"#,
r#"{"id":6,"result":{"scriptSource":"export function bar() {\n return \"world\";\n}\n"#,
],
&[],
diff --git a/cli/tests/integration/npm_tests.rs b/cli/tests/integration/npm_tests.rs
index f27befe54..1352777d2 100644
--- a/cli/tests/integration/npm_tests.rs
+++ b/cli/tests/integration/npm_tests.rs
@@ -988,12 +988,12 @@ fn ensure_registry_files_local() {
}
itest!(bundle_errors {
- args: "bundle --quiet npm/esm/main.js",
- output_str: Some("error: npm specifiers have not yet been implemented for this subcommand (https://github.com/denoland/deno/issues/15960). Found: npm:chalk@5.0.1\n"),
- exit_code: 1,
- envs: env_vars_for_npm_tests(),
- http_server: true,
- });
+ args: "bundle --quiet npm/esm/main.js",
+ output_str: Some("error: npm specifiers have not yet been implemented for this subcommand (https://github.com/denoland/deno/issues/15960). Found: npm:/chalk@5.0.1\n"),
+ exit_code: 1,
+ envs: env_vars_for_npm_tests(),
+ http_server: true,
+});
itest!(info_chalk_display {
args: "info --quiet npm/cjs_with_deps/main.js",
diff --git a/cli/tests/testdata/npm/cjs_with_deps/main_info.out b/cli/tests/testdata/npm/cjs_with_deps/main_info.out
index cf84197e1..bcaaf1eec 100644
--- a/cli/tests/testdata/npm/cjs_with_deps/main_info.out
+++ b/cli/tests/testdata/npm/cjs_with_deps/main_info.out
@@ -4,19 +4,19 @@ dependencies: 14 unique
size: [WILDCARD]
file:///[WILDCARD]/npm/cjs_with_deps/main.js ([WILDCARD])
-├─┬ npm:chalk@4.1.2 ([WILDCARD])
-│ ├─┬ npm:ansi-styles@4.3.0 ([WILDCARD])
-│ │ └─┬ npm:color-convert@2.0.1 ([WILDCARD])
-│ │ └── npm:color-name@1.1.4 ([WILDCARD])
-│ └─┬ npm:supports-color@7.2.0 ([WILDCARD])
-│ └── npm:has-flag@4.0.0 ([WILDCARD])
-└─┬ npm:chai@4.3.6 ([WILDCARD])
- ├── npm:assertion-error@1.1.0 ([WILDCARD])
- ├── npm:check-error@1.0.2 ([WILDCARD])
- ├─┬ npm:deep-eql@3.0.1 ([WILDCARD])
- │ └── npm:type-detect@4.0.8 ([WILDCARD])
- ├── npm:get-func-name@2.0.0 ([WILDCARD])
- ├─┬ npm:loupe@2.3.4 ([WILDCARD])
- │ └── npm:get-func-name@2.0.0 ([WILDCARD])
- ├── npm:pathval@1.1.1 ([WILDCARD])
- └── npm:type-detect@4.0.8 ([WILDCARD])
+├─┬ npm:/chalk@4.1.2 ([WILDCARD])
+│ ├─┬ npm:/ansi-styles@4.3.0 ([WILDCARD])
+│ │ └─┬ npm:/color-convert@2.0.1 ([WILDCARD])
+│ │ └── npm:/color-name@1.1.4 ([WILDCARD])
+│ └─┬ npm:/supports-color@7.2.0 ([WILDCARD])
+│ └── npm:/has-flag@4.0.0 ([WILDCARD])
+└─┬ npm:/chai@4.3.6 ([WILDCARD])
+ ├── npm:/assertion-error@1.1.0 ([WILDCARD])
+ ├── npm:/check-error@1.0.2 ([WILDCARD])
+ ├─┬ npm:/deep-eql@3.0.1 ([WILDCARD])
+ │ └── npm:/type-detect@4.0.8 ([WILDCARD])
+ ├── npm:/get-func-name@2.0.0 ([WILDCARD])
+ ├─┬ npm:/loupe@2.3.4 ([WILDCARD])
+ │ └── npm:/get-func-name@2.0.0 ([WILDCARD])
+ ├── npm:/pathval@1.1.1 ([WILDCARD])
+ └── npm:/type-detect@4.0.8 ([WILDCARD])
diff --git a/cli/tests/testdata/npm/cjs_with_deps/main_info_json.out b/cli/tests/testdata/npm/cjs_with_deps/main_info_json.out
index e2a659a42..fd850b8a1 100644
--- a/cli/tests/testdata/npm/cjs_with_deps/main_info_json.out
+++ b/cli/tests/testdata/npm/cjs_with_deps/main_info_json.out
@@ -50,8 +50,8 @@
}
],
"redirects": {
- "npm:chai@4.3": "npm:chai@4.3.6",
- "npm:chalk@4": "npm:chalk@4.1.2"
+ "npm:chai@4.3": "npm:/chai@4.3.6",
+ "npm:chalk@4": "npm:/chalk@4.1.2"
},
"npmPackages": {
"ansi-styles@4.3.0": {
diff --git a/cli/tests/testdata/npm/info/chalk.out b/cli/tests/testdata/npm/info/chalk.out
index d7ac95120..63fa20da5 100644
--- a/cli/tests/testdata/npm/info/chalk.out
+++ b/cli/tests/testdata/npm/info/chalk.out
@@ -1,9 +1,9 @@
dependencies: 5 unique
size: [WILDCARD]
-npm:chalk@4.1.2 ([WILDCARD])
-├─┬ npm:ansi-styles@4.3.0 ([WILDCARD])
-│ └─┬ npm:color-convert@2.0.1 ([WILDCARD])
-│ └── npm:color-name@1.1.4 ([WILDCARD])
-└─┬ npm:supports-color@7.2.0 ([WILDCARD])
- └── npm:has-flag@4.0.0 ([WILDCARD])
+npm:/chalk@4.1.2 ([WILDCARD])
+├─┬ npm:/ansi-styles@4.3.0 ([WILDCARD])
+│ └─┬ npm:/color-convert@2.0.1 ([WILDCARD])
+│ └── npm:/color-name@1.1.4 ([WILDCARD])
+└─┬ npm:/supports-color@7.2.0 ([WILDCARD])
+ └── npm:/has-flag@4.0.0 ([WILDCARD])
diff --git a/cli/tests/testdata/npm/info/chalk_json.out b/cli/tests/testdata/npm/info/chalk_json.out
index 0f86bc994..bffed4ad4 100644
--- a/cli/tests/testdata/npm/info/chalk_json.out
+++ b/cli/tests/testdata/npm/info/chalk_json.out
@@ -5,12 +5,12 @@
"modules": [
{
"kind": "npm",
- "specifier": "npm:chalk@4.1.2",
+ "specifier": "npm:/chalk@4.1.2",
"npmPackage": "chalk@4.1.2"
}
],
"redirects": {
- "npm:chalk@4": "npm:chalk@4.1.2"
+ "npm:chalk@4": "npm:/chalk@4.1.2"
},
"npmPackages": {
"ansi-styles@4.3.0": {
diff --git a/cli/tests/testdata/npm/invalid_package_name/main.out b/cli/tests/testdata/npm/invalid_package_name/main.out
index 7d2b3754d..b4a421bd7 100644
--- a/cli/tests/testdata/npm/invalid_package_name/main.out
+++ b/cli/tests/testdata/npm/invalid_package_name/main.out
@@ -1,2 +1,2 @@
-error: Not a valid package: @foo
+error: Invalid package specifier 'npm:@foo'. Did not contain a valid package name.
at [WILDCARD]/invalid_package_name/main.js:1:22
diff --git a/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info.out b/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info.out
index d85b00094..638f9328d 100644
--- a/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info.out
+++ b/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info.out
@@ -4,11 +4,11 @@ dependencies: 6 unique
size: [WILDCARD]
file:///[WILDCARD]/testdata/npm/peer_deps_with_copied_folders/main.ts (171B)
-├─┬ npm:@denotest/peer-dep-test-child@1.0.0 ([WILDCARD])
-│ ├─┬ npm:@denotest/peer-dep-test-grandchild@1.0.0_@denotest+peer-dep-test-peer@1.0.0 ([WILDCARD])
-│ │ └── npm:@denotest/peer-dep-test-peer@1.0.0 ([WILDCARD])
-│ └── npm:@denotest/peer-dep-test-peer@1.0.0 ([WILDCARD])
-└─┬ npm:@denotest/peer-dep-test-child@2.0.0 ([WILDCARD])
- ├─┬ npm:@denotest/peer-dep-test-grandchild@1.0.0_@denotest+peer-dep-test-peer@2.0.0 ([WILDCARD])
- │ └── npm:@denotest/peer-dep-test-peer@2.0.0 ([WILDCARD])
- └── npm:@denotest/peer-dep-test-peer@2.0.0 ([WILDCARD])
+├─┬ npm:/@denotest/peer-dep-test-child@1.0.0 ([WILDCARD])
+│ ├─┬ npm:/@denotest/peer-dep-test-grandchild@1.0.0_@denotest+peer-dep-test-peer@1.0.0 ([WILDCARD])
+│ │ └── npm:/@denotest/peer-dep-test-peer@1.0.0 ([WILDCARD])
+│ └── npm:/@denotest/peer-dep-test-peer@1.0.0 ([WILDCARD])
+└─┬ npm:/@denotest/peer-dep-test-child@2.0.0 ([WILDCARD])
+ ├─┬ npm:/@denotest/peer-dep-test-grandchild@1.0.0_@denotest+peer-dep-test-peer@2.0.0 ([WILDCARD])
+ │ └── npm:/@denotest/peer-dep-test-peer@2.0.0 ([WILDCARD])
+ └── npm:/@denotest/peer-dep-test-peer@2.0.0 ([WILDCARD])
diff --git a/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info_json.out b/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info_json.out
index 6a455b001..a4306a6d5 100644
--- a/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info_json.out
+++ b/cli/tests/testdata/npm/peer_deps_with_copied_folders/main_info_json.out
@@ -50,8 +50,8 @@
}
],
"redirects": {
- "npm:@denotest/peer-dep-test-child@1": "npm:@denotest/peer-dep-test-child@1.0.0",
- "npm:@denotest/peer-dep-test-child@2": "npm:@denotest/peer-dep-test-child@2.0.0"
+ "npm:@denotest/peer-dep-test-child@1": "npm:/@denotest/peer-dep-test-child@1.0.0",
+ "npm:@denotest/peer-dep-test-child@2": "npm:/@denotest/peer-dep-test-child@2.0.0"
},
"npmPackages": {
"@denotest/peer-dep-test-child@1.0.0_@denotest+peer-dep-test-peer@1.0.0": {
diff --git a/cli/tests/testdata/package_json/basic/main.info.out b/cli/tests/testdata/package_json/basic/main.info.out
index 3572c75e1..b283a0ee0 100644
--- a/cli/tests/testdata/package_json/basic/main.info.out
+++ b/cli/tests/testdata/package_json/basic/main.info.out
@@ -5,4 +5,4 @@ size: [WILDCARD]
file:///[WILDCARD]/main.ts (63B)
└─┬ file:///[WILDCARD]/lib.ts (166B)
- └── npm:@denotest/esm-basic@1.0.0 (416B)
+ └── npm:/@denotest/esm-basic@1.0.0 (416B)
diff --git a/cli/tests/testdata/package_json/invalid_value/error.ts.out b/cli/tests/testdata/package_json/invalid_value/error.ts.out
index 866388e60..faa811a30 100644
--- a/cli/tests/testdata/package_json/invalid_value/error.ts.out
+++ b/cli/tests/testdata/package_json/invalid_value/error.ts.out
@@ -1,6 +1,6 @@
error: Parsing version constraints in the application-level package.json is more strict at the moment.
-Invalid npm specifier version requirement. Unexpected character.
+Invalid specifier version requirement. Unexpected character.
invalid stuff that won't parse
~
at file:///[WILDCARD]/error.ts:2:23
diff --git a/cli/tests/testdata/package_json/invalid_value/task.out b/cli/tests/testdata/package_json/invalid_value/task.out
index 823c50612..c78a32739 100644
--- a/cli/tests/testdata/package_json/invalid_value/task.out
+++ b/cli/tests/testdata/package_json/invalid_value/task.out
@@ -1,4 +1,4 @@
-Warning Ignoring dependency '@denotest/cjs-default-export' in package.json because its version requirement failed to parse: Invalid npm specifier version requirement. Unexpected character.
+Warning Ignoring dependency '@denotest/cjs-default-export' in package.json because its version requirement failed to parse: Invalid specifier version requirement. Unexpected character.
invalid stuff that won't parse
~
Warning Currently only basic package.json `scripts` are supported. Programs like `rimraf` or `cross-env` will not work correctly. This will be fixed in an upcoming release.
diff --git a/cli/tools/check.rs b/cli/tools/check.rs
index f2e31b153..85ce44b95 100644
--- a/cli/tools/check.rs
+++ b/cli/tools/check.rs
@@ -11,8 +11,8 @@ use deno_graph::Module;
use deno_graph::ModuleGraph;
use deno_runtime::colors;
use deno_runtime::deno_node::NodeResolver;
-use deno_semver::npm::NpmPackageNv;
-use deno_semver::npm::NpmPackageReq;
+use deno_semver::package::PackageNv;
+use deno_semver::package::PackageReq;
use once_cell::sync::Lazy;
use regex::Regex;
@@ -194,7 +194,7 @@ enum CheckHashResult {
/// be used to tell
fn get_check_hash(
graph: &ModuleGraph,
- package_reqs: HashMap<NpmPackageReq, NpmPackageNv>,
+ package_reqs: HashMap<PackageReq, PackageNv>,
type_check_mode: TypeCheckMode,
ts_config: &TsConfig,
) -> CheckHashResult {
diff --git a/cli/tools/info.rs b/cli/tools/info.rs
index 08345887b..c0dd686f8 100644
--- a/cli/tools/info.rs
+++ b/cli/tools/info.rs
@@ -21,9 +21,9 @@ use deno_npm::resolution::NpmResolutionSnapshot;
use deno_npm::NpmPackageId;
use deno_npm::NpmResolutionPackage;
use deno_runtime::colors;
-use deno_semver::npm::NpmPackageNv;
use deno_semver::npm::NpmPackageNvReference;
use deno_semver::npm::NpmPackageReqReference;
+use deno_semver::package::PackageNv;
use crate::args::Flags;
use crate::args::InfoFlags;
@@ -185,7 +185,7 @@ fn add_npm_packages_to_json(
.and_then(|specifier| NpmPackageNvReference::from_str(specifier).ok())
.and_then(|package_ref| {
snapshot
- .resolve_package_from_deno_module(&package_ref.nv)
+ .resolve_package_from_deno_module(package_ref.nv())
.ok()
});
if let Some(pkg) = maybe_package {
@@ -220,7 +220,8 @@ fn add_npm_packages_to_json(
let specifier = dep.get("specifier").and_then(|s| s.as_str());
if let Some(specifier) = specifier {
if let Ok(npm_ref) = NpmPackageReqReference::from_str(specifier) {
- if let Ok(pkg) = snapshot.resolve_pkg_from_pkg_req(&npm_ref.req)
+ if let Ok(pkg) =
+ snapshot.resolve_pkg_from_pkg_req(npm_ref.req())
{
dep.insert(
"npmPackage".to_string(),
@@ -331,7 +332,7 @@ fn print_tree_node<TWrite: Write>(
#[derive(Default)]
struct NpmInfo {
package_sizes: HashMap<NpmPackageId, u64>,
- resolved_ids: HashMap<NpmPackageNv, NpmPackageId>,
+ resolved_ids: HashMap<PackageNv, NpmPackageId>,
packages: HashMap<NpmPackageId, NpmResolutionPackage>,
}
@@ -348,7 +349,7 @@ impl NpmInfo {
for module in graph.modules() {
if let Module::Npm(module) = module {
- let nv = &module.nv_reference.nv;
+ let nv = module.nv_reference.nv();
if let Ok(package) = npm_snapshot.resolve_package_from_deno_module(nv) {
info.resolved_ids.insert(nv.clone(), package.id.clone());
if !info.packages.contains_key(&package.id) {
@@ -382,7 +383,7 @@ impl NpmInfo {
pub fn resolve_package(
&self,
- nv: &NpmPackageNv,
+ nv: &PackageNv,
) -> Option<&NpmResolutionPackage> {
let id = self.resolved_ids.get(nv)?;
self.packages.get(id)
@@ -542,7 +543,7 @@ impl<'a> GraphDisplayContext<'a> {
use PackageOrSpecifier::*;
let package_or_specifier = match module.npm() {
- Some(npm) => match self.npm_info.resolve_package(&npm.nv_reference.nv) {
+ Some(npm) => match self.npm_info.resolve_package(npm.nv_reference.nv()) {
Some(package) => Package(package.clone()),
None => Specifier(module.specifier().clone()), // should never happen
},
@@ -615,7 +616,7 @@ impl<'a> GraphDisplayContext<'a> {
let maybe_size = self.npm_info.package_sizes.get(dep_id).cloned();
let size_str = maybe_size_to_text(maybe_size);
let mut child = TreeNode::from_text(format!(
- "npm:{} {}",
+ "npm:/{} {}",
dep_id.as_serialized(),
size_str
));
diff --git a/cli/tools/installer.rs b/cli/tools/installer.rs
index 03c2ffdcf..cabae9e28 100644
--- a/cli/tools/installer.rs
+++ b/cli/tools/installer.rs
@@ -140,6 +140,7 @@ pub async fn infer_name_from_url(url: &Url) -> Option<String> {
}
if let Ok(npm_ref) = NpmPackageReqReference::from_specifier(&url) {
+ let npm_ref = npm_ref.into_inner();
if let Some(sub_path) = npm_ref.sub_path {
if !sub_path.contains('/') {
return Some(sub_path);
diff --git a/cli/tools/repl/session.rs b/cli/tools/repl/session.rs
index 9261299df..d89cc95c3 100644
--- a/cli/tools/repl/session.rs
+++ b/cli/tools/repl/session.rs
@@ -505,7 +505,7 @@ impl ReplSession {
let npm_imports = resolved_imports
.iter()
.flat_map(|url| NpmPackageReqReference::from_specifier(url).ok())
- .map(|r| r.req)
+ .map(|r| r.into_inner().req)
.collect::<Vec<_>>();
let has_node_specifier =
resolved_imports.iter().any(|url| url.scheme() == "node");
diff --git a/cli/tools/task.rs b/cli/tools/task.rs
index f99e7431c..dcb53e4ec 100644
--- a/cli/tools/task.rs
+++ b/cli/tools/task.rs
@@ -13,7 +13,7 @@ use deno_core::error::AnyError;
use deno_core::futures;
use deno_core::futures::future::LocalBoxFuture;
use deno_runtime::deno_node::NodeResolver;
-use deno_semver::npm::NpmPackageNv;
+use deno_semver::package::PackageNv;
use deno_task_shell::ExecuteResult;
use deno_task_shell::ShellCommand;
use deno_task_shell::ShellCommandContext;
@@ -237,7 +237,7 @@ impl ShellCommand for NpxCommand {
#[derive(Clone)]
struct NpmPackageBinCommand {
name: String,
- npm_package: NpmPackageNv,
+ npm_package: PackageNv,
}
impl ShellCommand for NpmPackageBinCommand {
diff --git a/cli/worker.rs b/cli/worker.rs
index b451cdbed..1d9252e65 100644
--- a/cli/worker.rs
+++ b/cli/worker.rs
@@ -346,7 +346,7 @@ impl CliMainWorkerFactory {
{
shared
.npm_resolver
- .add_package_reqs(&[package_ref.req.clone()])
+ .add_package_reqs(&[package_ref.req().clone()])
.await?;
let node_resolution =
self.resolve_binary_entrypoint(&package_ref, &permissions)?;
@@ -500,7 +500,7 @@ impl CliMainWorkerFactory {
permissions: &PermissionsContainer,
) -> Result<Option<NodeResolution>, AnyError> {
// only fallback if the user specified a sub path
- if package_ref.sub_path.is_none() {
+ if package_ref.sub_path().is_none() {
// it's confusing to users if the package doesn't have any binary
// entrypoint and we just execute the main script which will likely
// have blank output, so do not resolve the entrypoint in this case