
Security News
CISA Rebuffs Funding Concerns as CVE Foundation Draws Criticism
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.
@smarlhens/npm-check-engines
Advanced tools
Node.JS engines constraint checker written in TypeScript.
npm-check-engines upgrades your package.json node engines constraint to the most restrictive used by your dependencies.
Install globally:
npm install -g @smarlhens/npm-check-engines
Or run with npx:
npx @smarlhens/npm-check-engines
Show the most restrictive constraint (opinionated) of the node engine for the project in the current directory based on the npm package-lock.json
file:
$ nce
✔ Computed engines range constraints:
node * → ^14.17.0 || ^16.10.0 || >=17.0.0
Run nce -u to upgrade package.json.
Upgrade a project's package.json
file:
$ nce -u
✔ Computed engines range constraints:
node * → ^14.17.0 || ^16.10.0 || >=17.0.0
import { checkEnginesFromString, validatePackageJson, validatePackageLock } from '@smarlhens/npm-check-engines';
let packageJsonString = ''; // load content of package.json as stringified JSON
let packageLockString = ''; // load content of package-lock.json as stringified JSON
validatePackageJson({ packageJsonString }); // can throw Errors if unexpected format
validatePackageLock({ packageLockString }); // can throw Errors if unexpected format
// packageJson is the content of your package.json with updated engines
// packageLock is the content of your package-lock.json with updated engines of the root project in packages
// enginesRangeToSet contains changes if you want to display them
const { enginesRangeToSet, packageJson, packageLock } = checkEnginesFromString({
packageJsonString,
packageLockString,
});
console.log(packageJson);
console.log(packageLock);
console.log(
enginesRangeToSet
.map(({ engine, range, rangeToSet }) => `${engine} range "${range}" replaced by "${rangeToSet}"`)
.join('\n'),
);
Usage: nce [options]
Options:
-q, --quiet Enable quiet mode. [boolean] [default: false]
-d, --debug Enable debug mode. Can be used with environment variable DEBUG=nce.
[boolean] [default: false]
-v, --verbose A little more detailed than the default output. [boolean] [default: false]
-e, --engines Select engines to check. Default will check all engines defined. [array]
-u, --update Update engines in package.json and package-lock.json. [boolean] [default: false]
--enableEngineStrict Enable engine strict. [boolean] [default: false]
--help Show help [boolean]
--version Show version number [boolean]
Examples:
nce Check package-lock.json file in current working directory.
© 2023 Samuel MARLHENS
$ DEBUG=* nce -d
[STARTED] Checking npm package engines range constraints in package-lock.json...
[STARTED] Reading package-lock.json...
[SUCCESS] Reading package-lock.json...
[STARTED] Reading package.json...
[SUCCESS] Reading package.json...
[STARTED] Validating package-lock.json...
[SUCCESS] Validating package-lock.json...
[STARTED] Validating package.json...
[SUCCESS] Validating package.json...
[STARTED] Compute engines range constraints...
nce:node Package has no constraints for current engine +0ms
nce:node Final computed engine range constraint: * +1ms
nce:node Package has no engines +0ms
nce:node Compare: * and >=6.9.0 +1ms
nce:node Range >=6.9.0 is a subset of * +1ms
nce:node New most restrictive range: >=6.9.0 +0ms
nce:node Compare: >=6.9.0 and >=12.22.0 +0ms
nce:node Range >=12.22.0 is a subset of >=6.9.0 +0ms
nce:node New most restrictive range: >=12.22.0 +0ms
nce:node Ignored range: * +0ms
nce:node Compare: >=12.22.0 and >=7.0.0 +1ms
nce:node Range >=12.22.0 is a subset of >=7.0.0 +0ms
nce:node Package node_modules/noengines has no engines +0ms
nce:node Compare: >=12.22.0 and >=12.13.0 <13.0.0-0||>=14.15.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 +1ms
nce:node Applying minimal version 12.22.0 to both ranges. +0ms
nce:node Compare: >=12.22.0 and >=12.22.0 <13.0.0-0||>=14.15.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 +1ms
nce:node Range >=12.22.0 <13.0.0-0||>=14.15.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 is a subset of >=12.22.0 +0ms
nce:node New most restrictive range: >=12.22.0 <13.0.0-0||>=14.15.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 +0ms
nce:node Compare: >=12.22.0 <13.0.0-0||>=14.15.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 and >=16.0.0||>=14.17.0 <15.0.0-0 +1ms
nce:node Applying minimal version 14.17.0 to both ranges. +0ms
nce:node Compare: >=14.17.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 and >=14.17.0 <15.0.0-0||>=16.0.0 +0ms
nce:node Range >=14.17.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 is a subset of >=14.17.0 <15.0.0-0||>=16.0.0 +0ms
nce:node New most restrictive range: >=14.17.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 +1ms
nce:node Final computed engine range constraint: >=14.17.0 <15.0.0-0||>=16.10.0 <17.0.0-0||>=17.0.0 +0ms
nce:npm Package has no constraints for current engine +0ms
nce:npm Final computed engine range constraint: * +0ms
nce:npm Package has no engines +0ms
nce:npm Package node_modules/foo has no constraints for current engine +0ms
nce:npm Compare: * and >=6.0.0 +1ms
nce:npm Range >=6.0.0 is a subset of * +0ms
nce:npm New most restrictive range: >=6.0.0 +0ms
nce:npm Package node_modules/all has no constraints for current engine +0ms
nce:npm Package node_modules/arr has no constraints for current engine +0ms
nce:npm Package node_modules/noengines has no engines +0ms
nce:npm Package node_modules/complex1 has no constraints for current engine +0ms
nce:npm Package node_modules/complex2 has no constraints for current engine +0ms
nce:npm Final computed engine range constraint: >=6.0.0 +0ms
nce:yarn Package has no constraints for current engine +0ms
nce:yarn Final computed engine range constraint: * +0ms
nce:yarn Package has no engines +0ms
nce:yarn Package node_modules/foo has no constraints for current engine +1ms
nce:yarn Compare: * and >=1.22.4 <2.0.0-0 +0ms
nce:yarn Range >=1.22.4 <2.0.0-0 is a subset of * +0ms
nce:yarn New most restrictive range: >=1.22.4 <2.0.0-0 +0ms
nce:yarn Package node_modules/all has no constraints for current engine +0ms
nce:yarn Package node_modules/arr has no constraints for current engine +0ms
nce:yarn Package node_modules/noengines has no engines +0ms
nce:yarn Package node_modules/complex1 has no constraints for current engine +0ms
nce:yarn Package node_modules/complex2 has no constraints for current engine +0ms
nce:yarn Final computed engine range constraint: >=1.22.4 <2.0.0-0 +0ms
[SUCCESS] Compute engines range constraints...
[STARTED] Output computed engines range constraints...
nce:node Simplified computed engine range constraint: ^14.17.0 || ^16.10.0 || >=17.0.0 +0ms
nce:npm Simplified computed engine range constraint: >=6.0.0 +0ms
nce:yarn Simplified computed engine range constraint: ^1.22.4 +0ms
[TITLE] Computed engines range constraints:
[TITLE]
[TITLE] node * → ^14.17.0 || ^16.10.0 || >=17.0.0
[TITLE] npm * → >=6.0.0
[TITLE] yarn * → ^1.22.4
[TITLE]
[TITLE] Run nce -d -u to upgrade package.json.
[SUCCESS] Output computed engines range constraints...
[STARTED] Enabling engine-strict using .npmrc...
[SKIPPED] Enabling engine-strict is disabled by default.
[STARTED] Updating package.json...
[SKIPPED] Update is disabled by default.
[SUCCESS] Computed engines range constraints:
[SUCCESS]
[SUCCESS] node * → ^14.17.0 || ^16.10.0 || >=17.0.0
[SUCCESS] npm * → >=6.0.0
[SUCCESS] yarn * → ^1.22.4
[SUCCESS]
[SUCCESS] Run nce -d -u to upgrade package.json.
This project is heavily inspired by the following awesome project: npm-check-updates.
0.13.0 (2023-04-04)
FAQs
Node.JS engines constraint checker written in TypeScript.
The npm package @smarlhens/npm-check-engines receives a total of 3 weekly downloads. As such, @smarlhens/npm-check-engines popularity was classified as not popular.
We found that @smarlhens/npm-check-engines demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA denies CVE funding issues amid backlash over a new CVE foundation formed by board members, raising concerns about transparency and program governance.
Product
We’re excited to announce a powerful new capability in Socket: historical data and enhanced analytics.
Product
Module Reachability filters out unreachable CVEs so you can focus on vulnerabilities that actually matter to your application.