🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more

npm-upgrade

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

npm-upgrade - npm Package Compare versions

Comparing version

to
2.0.2

@@ -13,2 +13,6 @@ # Changelog

## 2.0.2
* **Bug Fix**
* Fix handling of dependency group flags (`--production`, `--development` etc.)
## 2.0.1

@@ -15,0 +19,0 @@ * **Improvement**

@@ -59,2 +59,4 @@ "use strict";

var _stringUtils = require("../stringUtils");
var _ignore = require("./ignore");

@@ -81,11 +83,10 @@

const depsCliOptions = _packageUtils.DEPS_GROUPS.filter(group => group.cliOption);
function builder(yargs) {
depsCliOptions.forEach(({
_packageUtils.DEPS_GROUPS.forEach(({
name,
field
field,
flag
}) => yargs.option(name, {
type: 'boolean',
alias: name[0],
alias: flag,
describe: `check only "${field}"`

@@ -104,6 +105,6 @@ }));

if ((0, _every2.default)(depsCliOptions, ({
if ((0, _every2.default)(_packageUtils.DEPS_GROUPS, ({
name
}) => !opts[name])) {
(0, _each2.default)(depsCliOptions, ({
(0, _each2.default)(_packageUtils.DEPS_GROUPS, ({
name

@@ -121,15 +122,19 @@ }) => opts[name] = true);

(0, _changelogUtils.fetchRemoteDb)();
const depsGroupsToCheck = (0, _filter2.default)(depsCliOptions, ({
const depsGroupsToCheck = (0, _filter2.default)(_packageUtils.DEPS_GROUPS, ({
name
}) => !!opts[name]);
const depsGroupsToCheckStr = depsGroupsToCheck.length === depsCliOptions.length ? '' : `${(0, _map4.default)(depsGroupsToCheck, ({
const depsGroupsToCheckStr = depsGroupsToCheck.length === _packageUtils.DEPS_GROUPS.length ? '' : `${(0, _stringUtils.toSentence)((0, _map4.default)(depsGroupsToCheck, ({
name
}) => (0, _cliStyles.strong)(name)).join(' and ')} `;
}) => (0, _cliStyles.strong)(name)))} `;
const filteredWith = filter ? `filtered with ${(0, _cliStyles.strong)(filter)} ` : '';
console.log(`Checking for outdated ${depsGroupsToCheckStr}dependencies ${filteredWith}for "${(0, _cliStyles.strong)(packageFile)}"...`);
const ncuDepGroups = _packageUtils.DEPS_GROUPS.filter(({
name
}) => opts[name]).map(({
ncuValue
}) => ncuValue).join(',');
const currentVersions = _npmCheckUpdates.default.getCurrentDependencies(packageJson, {
prod: opts.production,
dev: opts.development,
optional: opts.optional
dep: ncuDepGroups
});

@@ -136,0 +141,0 @@

@@ -15,4 +15,2 @@ "use strict";

var _map2 = _interopRequireDefault(require("lodash/map"));
var _memoize2 = _interopRequireDefault(require("lodash/memoize"));

@@ -31,15 +29,25 @@

field: 'dependencies',
cliOption: true
flag: 'p',
ncuValue: 'prod'
}, {
name: 'optional',
field: 'optionalDependencies',
cliOption: true
flag: 'o',
ncuValue: 'optional'
}, {
name: 'development',
field: 'devDependencies',
cliOption: true
flag: 'd',
ncuValue: 'dev'
}, {
name: 'peer',
field: 'peerDependencies',
cliOption: false
flag: 'r',
ncuValue: 'peer'
}, {
name: 'bundled',
field: 'bundledDependencies',
altField: 'bundleDependencies',
flag: 'b',
ncuValue: 'bundle'
}];

@@ -83,5 +91,12 @@ exports.DEPS_GROUPS = DEPS_GROUPS;

function findModuleDepsGroup(moduleName, packageJson) {
for (const group of (0, _map2.default)(DEPS_GROUPS, 'field')) {
const modules = packageJson[group];
for (const {
field,
altField
} of DEPS_GROUPS) {
let modules = packageJson[field];
if (!modules && altField) {
modules = packageJson[altField];
}
if (modules && modules[moduleName]) {

@@ -88,0 +103,0 @@ return modules;

{
"name": "npm-upgrade",
"version": "2.0.1",
"version": "2.0.2",
"description": "Interactive CLI utility to easily update outdated NPM dependencies",

@@ -5,0 +5,0 @@ "author": "Yuriy Grunin <grunin.ya@ya.ru>",

@@ -18,2 +18,3 @@ import {writeFileSync} from 'fs';

import askUser from '../askUser';
import {toSentence} from '../stringUtils';
import {askIgnoreFields} from './ignore';

@@ -37,10 +38,8 @@ import Config from '../Config';

const depsCliOptions = DEPS_GROUPS.filter(group => group.cliOption);
export function builder(yargs) {
depsCliOptions
.forEach(({name, field}) =>
DEPS_GROUPS
.forEach(({name, field, flag}) =>
yargs.option(name, {
type: 'boolean',
alias: name[0],
alias: flag,
describe: `check only "${field}"`

@@ -58,4 +57,4 @@ })

// Checking all the deps if all of them are omitted
if (_.every(depsCliOptions, ({name}) => !opts[name])) {
_.each(depsCliOptions, ({name}) => (opts[name] = true));
if (_.every(DEPS_GROUPS, ({name}) => !opts[name])) {
_.each(DEPS_GROUPS, ({name}) => (opts[name] = true));
}

@@ -69,5 +68,5 @@

const depsGroupsToCheck = _.filter(depsCliOptions, ({name}) => !!opts[name]);
const depsGroupsToCheckStr = (depsGroupsToCheck.length === depsCliOptions.length) ?
'' : `${_.map(depsGroupsToCheck, ({name}) => strong(name)).join(' and ')} `;
const depsGroupsToCheck = _.filter(DEPS_GROUPS, ({name}) => !!opts[name]);
const depsGroupsToCheckStr = (depsGroupsToCheck.length === DEPS_GROUPS.length) ?
'' : `${toSentence(_.map(depsGroupsToCheck, ({name}) => strong(name)))} `;
const filteredWith = filter ? `filtered with ${strong(filter)} ` : '';

@@ -79,8 +78,7 @@

const currentVersions = ncu.getCurrentDependencies(packageJson, {
prod: opts.production,
dev: opts.development,
optional: opts.optional
});
const ncuDepGroups = DEPS_GROUPS
.filter(({name}) => opts[name])
.map(({ncuValue}) => ncuValue)
.join(',');
const currentVersions = ncu.getCurrentDependencies(packageJson, {dep: ncuDepGroups});
const latestVersions = await ncu.queryVersions(currentVersions, {versionTarget: 'latest'});

@@ -87,0 +85,0 @@ let upgradedVersions = ncu.upgradeDependencies(currentVersions, latestVersions);

@@ -9,6 +9,7 @@ import {resolve} from 'path';

export const DEPS_GROUPS = [
{name: 'production', field: 'dependencies', cliOption: true},
{name: 'optional', field: 'optionalDependencies', cliOption: true},
{name: 'development', field: 'devDependencies', cliOption: true},
{name: 'peer', field: 'peerDependencies', cliOption: false}
{name: 'production', field: 'dependencies', flag: 'p', ncuValue: 'prod'},
{name: 'optional', field: 'optionalDependencies', flag: 'o', ncuValue: 'optional'},
{name: 'development', field: 'devDependencies', flag: 'd', ncuValue: 'dev'},
{name: 'peer', field: 'peerDependencies', flag: 'r', ncuValue: 'peer'},
{name: 'bundled', field: 'bundledDependencies', altField: 'bundleDependencies', flag: 'b', ncuValue: 'bundle'}
];

@@ -50,5 +51,9 @@

export function findModuleDepsGroup(moduleName, packageJson) {
for (const group of _.map(DEPS_GROUPS, 'field')) {
const modules = packageJson[group];
for (const {field, altField} of DEPS_GROUPS) {
let modules = packageJson[field];
if (!modules && altField) {
modules = packageJson[altField];
}
if (modules && modules[moduleName]) {

@@ -55,0 +60,0 @@ return modules;