New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@pnpm/npm-resolver

Package Overview
Dependencies
Maintainers
3
Versions
211
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pnpm/npm-resolver - npm Package Compare versions

Comparing version 3.0.16 to 3.1.0

34

lib/index.js

@@ -69,5 +69,15 @@ "use strict";

async function resolveNpm(ctx, wantedDependency, opts) {
const defaultTag = opts.defaultTag || 'latest';
const resolvedFromWorkspace = tryResolveFromWorkspace(wantedDependency, {
defaultTag,
localPackages: opts.localPackages,
prefix: opts.prefix,
registry: opts.registry,
});
if (resolvedFromWorkspace) {
return resolvedFromWorkspace;
}
const spec = wantedDependency.pref
? parsePref_1.default(wantedDependency.pref, wantedDependency.alias, opts.defaultTag || 'latest', opts.registry)
: defaultTagForAlias(wantedDependency.alias, opts.defaultTag || 'latest');
? parsePref_1.default(wantedDependency.pref, wantedDependency.alias, defaultTag, opts.registry)
: defaultTagForAlias(wantedDependency.alias, defaultTag);
if (!spec)

@@ -127,2 +137,22 @@ return null;

}
function tryResolveFromWorkspace(wantedDependency, opts) {
if (!wantedDependency.pref || !wantedDependency.pref.startsWith('workspace:')) {
return null;
}
const pref = wantedDependency.pref.substr(10);
const spec = parsePref_1.default(pref, wantedDependency.alias, opts.defaultTag, opts.registry);
if (!spec)
throw new Error(`Invalid workspace: spec (${wantedDependency.pref})`);
if (!opts.localPackages) {
throw new Error('Cannot resolve package from workspace because opts.localPackages is not defined');
}
if (!opts.prefix) {
throw new Error('Cannot resolve package from workspace because opts.prefix is not defined');
}
const resolvedFromLocal = tryResolveFromLocalPackages(opts.localPackages, spec, opts.prefix);
if (!resolvedFromLocal) {
throw new error_1.default('NO_MATCHING_VERSION_INSIDE_WORKSPACE', `No matching version found for ${wantedDependency.alias}@${pref} inside the workspace`);
}
return resolvedFromLocal;
}
function tryResolveFromLocalPackages(localPackages, spec, prefix) {

@@ -129,0 +159,0 @@ if (!localPackages[spec.name])

19

lib/pickPackage.d.ts

@@ -24,2 +24,11 @@ import { PackageManifest } from '@pnpm/types';

};
export declare type PickPackageOptions = {
auth: object;
preferredVersionSelector: {
selector: string;
type: 'version' | 'range' | 'tag';
} | undefined;
registry: string;
dryRun: boolean;
};
declare const _default: (ctx: {

@@ -34,11 +43,3 @@ fetch: (url: string, opts: {

preferOffline?: boolean | undefined;
}, spec: RegistryPackageSpec, opts: {
auth: object;
preferredVersionSelector: {
selector: string;
type: "version" | "range" | "tag";
} | undefined;
registry: string;
dryRun: boolean;
}) => Promise<{
}, spec: RegistryPackageSpec, opts: PickPackageOptions) => Promise<{
meta: PackageMeta;

@@ -45,0 +46,0 @@ pickedPackage: PackageInRegistry | null;

{
"name": "@pnpm/npm-resolver",
"version": "3.0.16",
"version": "3.1.0",
"description": "Resolver for npm-hosted packages",

@@ -5,0 +5,0 @@ "main": "lib/index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc