🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

nypm

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nypm - npm Package Compare versions

Comparing version
0.6.5
to
0.6.6
+28
-5
dist/cli.mjs

@@ -11,3 +11,3 @@ #!/usr/bin/env node

var name = "nypm";
var version = "0.6.4";
var version = "0.6.5";
var description = "Unified Package Manager for Node.js";

@@ -90,8 +90,29 @@ const packageManagers = [

}
async function readPackageJSON(cwd) {
async function readPackageJSON(cwd, options = {}) {
return findup(cwd, (p) => {
const pkgPath = join$1(p, "package.json");
if (existsSync(pkgPath)) return readFile(pkgPath, "utf8").then((data) => JSON.parse(data));
});
}, options);
}
async function readInstalledPackageJSON(pkgName, cwd) {
const pkgJSONPath = await findup(cwd, (p) => {
const candidate = join$1(p, "node_modules", pkgName, "package.json");
if (existsSync(candidate)) return candidate;
}, { includeParentDirs: true });
if (!pkgJSONPath) return null;
try {
return JSON.parse(await readFile(pkgJSONPath, "utf8"));
} catch {
return null;
}
}
async function readPackageJSONFromResolver(requireFn, pkgName) {
let resolved;
try {
resolved = requireFn.resolve(pkgName);
} catch {
return null;
}
return readPackageJSON(resolved, { includeParentDirs: true });
}
function cached(fn) {

@@ -227,4 +248,6 @@ let v;

const pkgName = _name.match(/^(.[^@]+)/)?.[0];
const pkg = await readPackageJSON(_require.resolve(pkgName));
if (!pkg?.peerDependencies || pkg?.name !== pkgName) continue;
if (!pkgName) continue;
let pkg = await readPackageJSONFromResolver(_require, pkgName);
if (pkg?.name !== pkgName) pkg = await readInstalledPackageJSON(pkgName, resolvedOptions.cwd);
if (!pkg?.peerDependencies) continue;
for (const [peerDependency, version] of Object.entries(pkg.peerDependencies)) {

@@ -231,0 +254,0 @@ if (pkg.peerDependenciesMeta?.[peerDependency]?.optional) continue;

+0
-8

@@ -1,2 +0,1 @@

//#region src/types.d.ts
type PackageManagerName = "npm" | "yarn" | "pnpm" | "bun" | "deno";

@@ -30,4 +29,2 @@ type PackageManager = {

};
//#endregion
//#region src/package-manager.d.ts
type DetectPackageManagerOptions = {

@@ -68,4 +65,2 @@ /**

}) | undefined>;
//#endregion
//#region src/api.d.ts
/**

@@ -177,4 +172,2 @@ * Installs project dependencies.

}): Promise<OperationResult>;
//#endregion
//#region src/cmd.d.ts
/**

@@ -211,3 +204,2 @@ * Get the command to install dependencies with the package manager.

}): string;
//#endregion
export { DetectPackageManagerOptions, OperationOptions, OperationResult, PackageManager, PackageManagerName, addDependency, addDependencyCommand, addDevDependency, dedupeDependencies, detectPackageManager, dlx, dlxCommand, ensureDependencyInstalled, installDependencies, installDependenciesCommand, packageManagers, removeDependency, runScript, runScriptCommand };

@@ -16,8 +16,29 @@ import { createRequire } from "node:module";

}
async function readPackageJSON(cwd) {
async function readPackageJSON(cwd, options = {}) {
return findup(cwd, (p) => {
const pkgPath = join$1(p, "package.json");
if (existsSync(pkgPath)) return readFile(pkgPath, "utf8").then((data) => JSON.parse(data));
});
}, options);
}
async function readInstalledPackageJSON(pkgName, cwd) {
const pkgJSONPath = await findup(cwd, (p) => {
const candidate = join$1(p, "node_modules", pkgName, "package.json");
if (existsSync(candidate)) return candidate;
}, { includeParentDirs: true });
if (!pkgJSONPath) return null;
try {
return JSON.parse(await readFile(pkgJSONPath, "utf8"));
} catch {
return null;
}
}
async function readPackageJSONFromResolver(requireFn, pkgName) {
let resolved;
try {
resolved = requireFn.resolve(pkgName);
} catch {
return null;
}
return readPackageJSON(resolved, { includeParentDirs: true });
}
function cached(fn) {

@@ -311,4 +332,6 @@ let v;

const pkgName = _name.match(/^(.[^@]+)/)?.[0];
const pkg = await readPackageJSON(_require.resolve(pkgName));
if (!pkg?.peerDependencies || pkg?.name !== pkgName) continue;
if (!pkgName) continue;
let pkg = await readPackageJSONFromResolver(_require, pkgName);
if (pkg?.name !== pkgName) pkg = await readInstalledPackageJSON(pkgName, resolvedOptions.cwd);
if (!pkg?.peerDependencies) continue;
for (const [peerDependency, version] of Object.entries(pkg.peerDependencies)) {

@@ -315,0 +338,0 @@ if (pkg.peerDependenciesMeta?.[peerDependency]?.optional) continue;

{
"name": "nypm",
"version": "0.6.5",
"version": "0.6.6",
"description": "Unified Package Manager for Node.js",

@@ -21,21 +21,21 @@ "license": "MIT",

"dependencies": {
"citty": "^0.2.0",
"citty": "^0.2.2",
"pathe": "^2.0.3",
"tinyexec": "^1.0.2"
"tinyexec": "^1.1.1"
},
"devDependencies": {
"@types/node": "^25.2.1",
"@typescript/native-preview": "^7.0.0-dev.20260205.1",
"@vitest/coverage-v8": "^4.0.18",
"@types/node": "^25.6.0",
"@typescript/native-preview": "^7.0.0-dev.20260424.1",
"@vitest/coverage-v8": "^4.1.5",
"automd": "^0.4.3",
"changelogen": "^0.6.2",
"eslint-config-unjs": "^0.6.2",
"obuild": "^0.4.22",
"oxfmt": "^0.28.0",
"oxlint": "^1.43.0",
"obuild": "^0.4.33",
"oxfmt": "^0.46.0",
"oxlint": "^1.61.0",
"pkg-types": "^2.3.0",
"std-env": "^3.10.0",
"typescript": "^5.9.3",
"std-env": "^4.1.0",
"typescript": "^6.0.3",
"ufo": "^1.6.3",
"vitest": "^4.0.18"
"vitest": "^4.1.5"
},

@@ -42,0 +42,0 @@ "engines": {