summaryrefslogtreecommitdiff
path: root/cli/npm/resolution.rs
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2023-09-18 16:40:41 -0400
committerGitHub <noreply@github.com>2023-09-18 16:40:41 -0400
commit3de9af4d0bf5a411e4c43ce1ce474665585502b9 (patch)
tree156a55dd21b6e11ae77702e5f6b3748cc87657c8 /cli/npm/resolution.rs
parentdc1da309274823c15ad8ade0545678f8a9b8e54d (diff)
fix(npm): properly handle legacy shasum of package (#20557)
Closes #20554
Diffstat (limited to 'cli/npm/resolution.rs')
-rw-r--r--cli/npm/resolution.rs18
1 files changed, 17 insertions, 1 deletions
diff --git a/cli/npm/resolution.rs b/cli/npm/resolution.rs
index 10ff5fd92..5595a71ef 100644
--- a/cli/npm/resolution.rs
+++ b/cli/npm/resolution.rs
@@ -10,6 +10,7 @@ use deno_core::parking_lot::RwLock;
use deno_lockfile::NpmPackageDependencyLockfileInfo;
use deno_lockfile::NpmPackageLockfileInfo;
use deno_npm::registry::NpmPackageInfo;
+use deno_npm::registry::NpmPackageVersionDistInfoIntegrity;
use deno_npm::registry::NpmRegistryApi;
use deno_npm::resolution::NpmPackageVersionResolutionError;
use deno_npm::resolution::NpmPackagesPartitioned;
@@ -391,6 +392,21 @@ fn populate_lockfile_from_snapshot(
fn npm_package_to_lockfile_info(
pkg: &NpmResolutionPackage,
) -> NpmPackageLockfileInfo {
+ fn integrity_for_lockfile(
+ integrity: NpmPackageVersionDistInfoIntegrity,
+ ) -> String {
+ match integrity {
+ NpmPackageVersionDistInfoIntegrity::Integrity {
+ algorithm,
+ base64_hash,
+ } => format!("{}-{}", algorithm, base64_hash),
+ NpmPackageVersionDistInfoIntegrity::UnknownIntegrity(integrity) => {
+ integrity.to_string()
+ }
+ NpmPackageVersionDistInfoIntegrity::LegacySha1Hex(hex) => hex.to_string(),
+ }
+ }
+
let dependencies = pkg
.dependencies
.iter()
@@ -403,7 +419,7 @@ fn npm_package_to_lockfile_info(
NpmPackageLockfileInfo {
display_id: pkg.id.nv.to_string(),
serialized_id: pkg.id.as_serialized(),
- integrity: pkg.dist.integrity().to_string(),
+ integrity: integrity_for_lockfile(pkg.dist.integrity()),
dependencies,
}
}