Socket
Socket
Sign inDemoInstall

npm-check-updates

Package Overview
Dependencies
Maintainers
2
Versions
470
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

npm-check-updates - npm Package Compare versions

Comparing version 2.1.1 to 2.1.2

93

lib/npm-check-updates.js

@@ -86,3 +86,12 @@ var options = {};

function analyzeProjectDependencies(pkgData, pkgFile) {
var pkg = JSON.parse(pkgData);
var pkg;
try {
pkg = JSON.parse(pkgData);
}
catch(e) {
throw new Error('Invalid package.json' + (pkgFile ? ': ' + pkgFile : ' from stdin'))
}
var current = vm.getCurrentDependencies(pkg, {

@@ -110,2 +119,3 @@ prod: options.prod,

newPkgData = vm.updatePackageData(pkgData, current, upgraded, latest, options);
// don't need try-catch here because pkgData has already been parsed as valid JSON, and vm.updatePackageData simply does a find-and-replace on that
output = options.jsonAll ? JSON.parse(newPkgData) :

@@ -133,3 +143,3 @@ options.jsonDeps ? _.pick(JSON.parse(newPkgData), 'dependencies', 'devDependencies', 'optionalDependencies') :

.then(function () {
print('Upgraded ' + pkgFile + '\nUpdate the installed dependencies by running ' + chalk.blue('npm update') + '\n');
print('Upgraded ' + pkgFile + '\n');
});

@@ -172,4 +182,21 @@ }

function printUpgrades(args) {
// split the deps into satisfied and unsatisfied to display in two separate tables
var deps = Object.keys(args.upgraded);
var satisfied = cint.toObject(deps, function (dep) {
return cint.keyValue(dep, vm.isSatisfied(args.latest[dep], args.current[dep]));
});
var isSatisfied = _.propertyOf(satisfied);
var satisfiedUpgraded = cint.filterObject(args.upgraded, function (dep) {
return isSatisfied(dep) && (!args.latest || !args.installed || args.latest[dep] !== args.installed[dep]);
});
var unsatisfiedUpgraded = cint.filterObject(args.upgraded, cint.not(isSatisfied));
var numSatisfied = Object.keys(satisfiedUpgraded).length;
var numUnsatisfied = Object.keys(unsatisfiedUpgraded).length;
print('');
if (_.isEmpty(args.upgraded)) {
// print everything is up-to-date
if (numSatisfied === 0 && numUnsatisfied === 0) {
var smiley = chalk.yellow(':)');

@@ -182,46 +209,24 @@ if(options.global) {

}
} else {
}
// split the deps into satisfied and unsatisfied to display in two separate tables
var deps = Object.keys(args.upgraded);
var satisfied = cint.toObject(deps, function (dep) {
return cint.keyValue(dep, vm.isSatisfied(args.latest[dep], args.current[dep]));
});
var isSatisfied = _.propertyOf(satisfied);
var unsatisfiedUpgraded = cint.filterObject(args.upgraded, cint.not(isSatisfied));
var numUnsatisfied = Object.keys(unsatisfiedUpgraded).length;
var satisfiedUpgraded = cint.filterObject(args.upgraded, isSatisfied);
// print unsatisfied table
if (numUnsatisfied > 0) {
var unsatisfiedTable = toDependencyTable({
from: args.current,
to: unsatisfiedUpgraded
}, { greatest: options.greatest });
print(unsatisfiedTable.toString());
// print unsatisfied table
if (numUnsatisfied > 0) {
var unsatisfiedTable = toDependencyTable({
from: args.current,
to: unsatisfiedUpgraded
}, { greatest: options.greatest });
print(unsatisfiedTable.toString());
if (args.pkgFile && !args.isUpgrade) {
print('\nRun with ' + chalk.blue('-u') + ' to upgrade your package.json');
}
}
// filter out installed packages that match the latest
satisfiedUpgraded = cint.filterObject(satisfiedUpgraded, function (dep) {
return !args.latest || !args.installed || args.latest[dep] !== args.installed[dep];
});
var numSatisfied = Object.keys(satisfiedUpgraded).length;
// print satisfied table (if any exist)
if(numSatisfied > 0) {
var count = Object.keys(satisfiedUpgraded).length;
var satisfiedTable = toDependencyTable({
from: args.current,
to: satisfiedUpgraded
}, { greatest: options.greatest });
if (numUnsatisfied > 0) {
// adding some space between the unsatisfied to the satisfied
print('');
}
print('The following dependenc' + (count === 1 ? 'y is' : 'ies are') + ' satisfied by ' + (count === 1 ? 'its' : 'their') + ' declared version range, but the installed version' + (count === 1 ? ' is' : 's are') + ' behind. You can install the latest version' + (count === 1 ? '' : 's') + ' without modifying your package.json by using ' + chalk.blue('npm update') + '. If you want to update the dependenc' + (count === 1 ? 'y' : 'ies') + ' in your package.json anyway, use ' + chalk.blue('ncu --upgradeAll') + '.\n');
print(satisfiedTable.toString());
}
if (numUnsatisfied > 0 && args.pkgFile && !args.isUpgrade) {
print('\nRun with ' + chalk.blue('-u') + ' to upgrade your package.json');
}
// print satisfied table
if(numSatisfied > 0) {
var satisfiedTable = toDependencyTable({
from: args.current,
to: satisfiedUpgraded
}, { greatest: options.greatest });
print((numUnsatisfied > 0 ? '\n' : '') + 'The following dependenc' + (numSatisfied === 1 ? 'y is' : 'ies are') + ' satisfied by ' + (numSatisfied === 1 ? 'its' : 'their') + ' declared version range, but the installed version' + (numSatisfied === 1 ? ' is' : 's are') + ' behind. You can install the latest version' + (numSatisfied === 1 ? '' : 's') + ' without modifying your package.json by using ' + chalk.blue('npm update') + '. If you want to update the dependenc' + (numSatisfied === 1 ? 'y' : 'ies') + ' in your package.json anyway, use ' + chalk.blue('ncu --upgradeAll') + '.\n');
print(satisfiedTable.toString());
}

@@ -228,0 +233,0 @@ print('');

{
"name": "npm-check-updates",
"version": "2.1.1",
"version": "2.1.2",
"author": "Tomas Junnonen <tomas1@gmail.com>",

@@ -38,3 +38,3 @@ "license": "MIT",

"dependencies": {
"async": "^1.4.0",
"async": "^1.4.1",
"bluebird": "^2.9.34",

@@ -48,4 +48,4 @@ "chalk": "^1.1.0",

"get-stdin-promise": "^0.1.1",
"lodash": "^3.10.0",
"npm": "^2.13.1",
"lodash": "^3.10.1",
"npm": "^2.13.4",
"semver": "^5.0.1",

@@ -55,3 +55,2 @@ "semver-utils": "metaraine/semver-utils.git#86ea225"

"devDependencies": {
"bluebird": "^2.9.34",
"chai": "^3.2.0",

@@ -58,0 +57,0 @@ "chai-as-promised": "^5.1.0",

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