@smarlhens/npm-check-engines 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/nce.cjs +4 -4
- package/dist/bin/nce.js +4 -4
- package/package.json +2 -2
package/dist/bin/nce.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
"use strict";var
|
|
3
|
-
`));return e.relativePath=c,e.data=p,e},"loadFile")
|
|
2
|
+
"use strict";var de=Object.create;var x=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var he=Object.getOwnPropertyNames;var we=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var s=(e,t)=>x(e,"name",{value:t,configurable:!0});var be=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of he(t))!ke.call(e,o)&&o!==n&&x(e,o,{get:()=>t[o],enumerable:!(a=ue(t,o))||a.enumerable});return e};var d=(e,t,n)=>(n=e!=null?de(we(e)):{},be(t||!e||!e.__esModule?x(n,"default",{value:e,enumerable:!0}):n,e));var pe=require("path"),le=d(require("process"),1),me=require("url"),fe=d(require("update-notifier"),1);var T=require("path");var S=d(require("debug"),1);var ve="nce",q=(0,S.default)(ve),M=s(()=>S.default.disable(),"namespaces"),U=s(e=>S.default.enable(e),"enableNamespaces");var V=s(({debug:e,quiet:t,verbose:n},a=process.env)=>{if(t)return{renderer:"silent"};if(n)return{renderer:"simple"};let o=a.TERM==="dumb";return e||o||a.NODE_ENV==="test"?{renderer:"verbose"}:{renderer:"default",rendererOptions:{dateFormat:!1}}},"renderer");var r=d(require("chalk"),1),Y=d(require("cli-table"),1),Z=require("listr2"),F=d(require("lodash"),1),N=require("path"),L=require("url"),g=d(require("semver"),1),ee=d(require("sort-package-json"),1);var z=d(require("ajv-draft-04"),1),H=d(require("ajv-formats"),1),I="../schemas/schema-package.json",W="../schemas/schema-package-lock.json",C=(0,H.default)(new z.default({allErrors:!0,coerceTypes:!0,allowUnionTypes:!0,strict:!1,allowMatchingProperties:!0}));var B="package.json",G="package-lock.json",R=["node","npm","yarn"];var P=d(require("fs/promises"),1),$=d(require("path"),1);var b=s(async e=>JSON.parse(await P.default.readFile(e,"utf8")),"getJson"),_=s(async(e,t)=>P.default.writeFile(e,JSON.stringify(t,null,2),"utf8"),"writeJson"),$e=s(e=>$.default.isAbsolute(e),"isAbsolutePath"),w=s((...e)=>$.default.join(...e),"joinPath"),j=s(e=>{let{workingDir:t,path:n}=e;return n?$e(n)?$.default.relative(t,n):$.default.relative(t,w(t,n)):t},"getRelativePath");var ae={};var k={loose:!1},y=s(e=>[...e.map(t=>[...t])].sort((t,n)=>g.default.compare(t[0].semver,n[0].semver)),"sortRangeSet"),O=s(e=>new g.default.Range(e.map(t=>t.map(n=>n.value).join(" ")).join("||"),k),"setToRange"),K=s((e,t)=>[...e.map(n=>[...n])].filter(n=>n[0].semver.major>=t.major).map(n=>(n[0].semver.major===t.major&&g.default.gte(t,n[0].semver,k)&&(n[0]=new g.default.Comparator(`${n[0].operator}${t.raw}`)),n)),"applyMinVersionToRangeSet"),J=s((e,t,n,a)=>{if(a(`${r.default.white("Compare:")} ${r.default.blue(e.raw)} ${r.default.white("and")} ${r.default.blue(t.raw)}`),g.default.subset(e,t))return a(`${r.default.white("Range")} ${r.default.green(e.raw)} ${r.default.white("is a subset of")} ${r.default.blue(t.raw)}`),n.push(t.raw),e;if(g.default.subset(t,e))return a(`${r.default.white("Range")} ${r.default.green(t.raw)} ${r.default.white("is a subset of")} ${r.default.blue(e.raw)}`),n.push(e.raw),t;let o=g.default.minVersion(e,k)||new g.default.SemVer("*"),i=g.default.minVersion(t,k)||new g.default.SemVer("*"),c=y(e.set),p=y(t.set);if(!g.default.eq(o,i,k)){let E=g.default.compare(o,i)===-1?i:o;a(`${r.default.white("Applying minimal version")} ${r.default.yellow(E.version)} ${r.default.white("to both ranges.")}`);let D=O(K(c,E)),A=O(K(p,E));if(D.intersects(A,k))return J(D,A,n,a);throw new Error("Not yet implemented :/")}let l=c.shift(),m=p.shift(),f=l||m;if(!f)throw new Error("Not yet implemented :/");let u=[f],h=O(c),v=O(p),ge=J(h,v,n,a);return u.push(...y(ge.set)),O(u)},"restrictiveRange"),Q=s(e=>{if(!e||e.raw==="*")return"*";let t=[];return y(e.set).forEach(a=>{let[o,i]=a;a.length===2&&o.operator===">="&&i.operator==="<"&&o.semver.major+1===i.semver.major?t.push(`^${o.semver.version}`):a.length===1&&o.operator===">="?t.push(o.value):t.push(`${o.value} ${(i==null?void 0:i.value)||""}`.trim())}),t.join(" || ")},"humanizeRange"),te=s(async({fileObject:e,path:t,workingDir:n,debug:a,validateFn:o})=>{var m;let i=w(t,e.filename),c=j({path:i,workingDir:n});a(`${r.default.white(`Relative path to ${e.filename}:`)} ${r.default.blue(c)}`);let p=await b(c).catch(()=>{});if(!p)throw new Error(`${c} is not defined.`);if(a(`${r.default.white("Validate JSON schema of")} ${r.default.blue(c)}`),!o(p))throw new Error((m=o.errors)==null?void 0:m.map(f=>f.message).join(`
|
|
3
|
+
`));return e.relativePath=c,e.data=p,e},"loadFile"),je=s(async({ctx:e,debug:t})=>{let{path:n,workingDir:a,packageObject:o}=e,i=w((0,N.dirname)((0,L.fileURLToPath)(ae.url)),I),c=j({path:i,workingDir:a}),p=await b(c),l=C.compile(p);e.packageObject=await te({fileObject:o,path:n,debug:t,workingDir:a,validateFn:l})},"loadPackageFile"),Oe=s(async({ctx:e,debug:t})=>{let{path:n,workingDir:a,packageLockObject:o}=e,i=w((0,N.dirname)((0,L.fileURLToPath)(ae.url)),W),c=j({path:i,workingDir:a}),p=await b(c),l=C.compile(p);e.packageLockObject=await te({fileObject:o,path:n,debug:t,workingDir:a,validateFn:l})},"loadPackageLockFile"),Ne=s((e,t)=>{var n;if(typeof e=="object"&&t in e)return e[t];if(F.default.isArray(e)&&e.some(a=>a.includes(t)))return(n=e.find(a=>a.includes(t)))==null?void 0:n.replace(t,"")},"getConstraintFromEngines"),X=s(({packages:e,constraintKey:t,debug:n})=>{let a=new g.default.Range("*"),o=[],i=n.extend(t);for(let[c,p]of e){let{engines:l}=p,m=Ne(l,t);if(!m){i(`${r.default.white("Package")} ${r.default.gray(c)} ${r.default.white("has no constraints for current engine")}`);continue}let f=g.default.validRange(m);if(!f){i(`${r.default.red(m)} ${r.default.white("is not a valid semver range")}`);continue}if(o.indexOf(f)!==-1){i(`${r.default.white("Ignored range:")} ${r.default.gray(f)}`);continue}let u=new g.default.Range(f,k);if(!a){a=u,i(`${r.default.white("New most restrictive range:")} ${r.default.green(a.raw)}`);continue}let h=J(a,u,o,i);a.raw!==h.raw&&(a=h,i(`${r.default.white("New most restrictive range:")} ${r.default.green(a.raw)}`))}return i(a?`${r.default.white("Final computed engine range constraint:")} ${r.default.blue(a.raw)}`:`${r.default.white("No computed engine range constraint")}`),a},"computeEnginesConstraint"),Se=s(({ctx:e,debug:t})=>{let{packageObject:n,packageLockObject:a,engines:o}=e;if(!n.data)throw new Error(`${n.filename} data is not defined.`);if(!a.data)throw new Error(`${a.filename} data is not defined.`);if(!("packages"in a.data))throw new Error(`${a.filename} does not contain packages property.`);let i=s(m=>R.indexOf(m)!==-1,"filterEngineConstraintKey"),c=Object.entries(a.data.packages),p=new Map,l=[...R];if(o&&o.length>0&&(l=o.filter(i)),l.length===0)throw new Error("No valid constraint key(s).");for(let m of l)p.set(m,{from:X({packages:[["",{engines:n.data.engines||{}}]],constraintKey:m,debug:t}),to:X({packages:c,constraintKey:m,debug:t})});e.ranges=p},"computeEnginesConstraints"),ye=s(e=>new Y.default({style:{head:[],border:[],compact:!1,"padding-left":1,"padding-right":1},colWidths:e,colAligns:["left","left","left","left"],chars:{top:"","top-mid":"","top-left":"","top-right":"",bottom:"","bottom-mid":"","bottom-left":"","bottom-right":"",left:"","left-mid":"",mid:"","mid-mid":"",right:"","right-mid":"",middle:""}}),"createEnginesTable"),Ee=s(e=>{let t=["nce"],n;return typeof e.path=="string"&&e.path.length>0&&(n=j({path:e.path,workingDir:e.workingDir})),typeof n=="string"&&n.length>0&&t.push("-p",n),e.engines&&t.push(...e.engines.map(a=>["-e",a]).flat()),e.quiet&&t.push("-q"),e.debug&&t.push("-d"),e.verbose&&t.push("-v"),t.push("-u"),t.join(" ")},"generateUpdateCommandFromContext"),xe=s(({ctx:e,parent:t,debug:n})=>{let{ranges:a,packageObject:o,update:i}=e;if(!a)throw new Error("Computed engines range constraints are not defined.");let c=new Map,p="\u2192",l=[2,2,2,2],m=[];for(let[f,u]of a.entries()){let h=Q(u.to),v=Q(u.from);h!==v&&(c.set(f,h),n.extend(f)(`${r.default.white("Simplified computed engine range constraint:")} ${r.default.blue(h)}`),l=[Math.max(l[0],f.length+2),Math.max(l[1],v.length+2),p.length+2,Math.max(l[3],h.length+2)],m.push([f,v,p,h]))}if(c.size===0)t.title=`All computed engines range constraints are up-to-date ${r.default.green(":)")}`;else{let f=ye(l);f.push(...m);let u=`Computed engines range constraints:
|
|
4
4
|
|
|
5
|
-
${
|
|
5
|
+
${f.toString()}`;i||(u+=`
|
|
6
6
|
|
|
7
|
-
Run ${r.default.cyan(
|
|
7
|
+
Run ${r.default.cyan(Ee(e))} to upgrade ${o.filename}.`),t.title=u}e.rangesSimplified=c},"outputComputedConstraints"),Ce=s(async({ctx:e,debug:t})=>{let{packageObject:n,rangesSimplified:a}=e;if(!a)throw new Error("Simplified computed engines range constraints are not defined.");if(!n.data)throw new Error(`${n.filename} data is not defined.`);if(!n.relativePath)throw new Error(`${n.filename} path is not defined.`);return n.data.engines=F.default.merge({},n.data.engines,Object.fromEntries(a)),t(`${r.default.white("Write JSON to")} ${r.default.blue(n.relativePath)}`),_(n.relativePath,(0,ee.default)(n.data))},"updatePackageJson"),Re=s(({context:e,parent:t,debug:n})=>[{title:`Load ${e.packageObject.filename} file...`,task:(a,o)=>je({ctx:a,task:o,parent:t,debug:n})},{title:`Load ${e.packageLockObject.filename} file...`,task:(a,o)=>Oe({ctx:a,task:o,parent:t,debug:n})},{title:"Compute engines range constraints...",task:(a,o)=>Se({ctx:a,task:o,parent:t,debug:n})},{title:"Output computed engines range constraints...",task:(a,o)=>xe({ctx:a,task:o,parent:t,debug:n})},{title:`Update ${e.packageObject.filename} file...`,skip:({update:a})=>a?!a:"Update is disabled by default.",task:(a,o)=>Ce({ctx:a,task:o,parent:t,debug:n})}],"checkCommandTasks"),ne=s((e,t)=>{var n;return new Z.Listr([{title:`Checking npm package engines range constraints in ${(n=e.ctx)==null?void 0:n.packageLockObject.filename} file...`,task:(a,o)=>{let{path:i,workingDir:c,packageLockObject:p}=a,l=w(c,i,p.filename);return o.title=`Checking npm package engines range constraints in ${l.replace(`${c}${N.sep}`,"")} file...`,o.newListr(m=>Re({context:a,parent:m,debug:t}))}}],e)},"cliCommandTask");var oe=s(async e=>{let t=e,n={workingDir:(0,T.normalize)(process.cwd()),path:(0,T.normalize)(t.path||""),update:t.update||!1,verbose:t.verbose||!1,quiet:t.quiet||!1,debug:t.debug||!1,engines:t.engines,packageObject:{filename:B},packageLockObject:{filename:G}},a={...V({quiet:n.quiet,debug:n.debug,verbose:n.verbose}),ctx:n},o=M();return n.debug&&U(o),ne(a,q).run()},"nce");var ie=d(require("yargs"),1),se=require("yargs/helpers"),re=(0,ie.default)((0,se.hideBin)(process.argv)),ce=re.scriptName("nce").usage("Usage: $0 [options]").example("$0","Check package-lock.json file in current working directory.").example("$0 -p examples -u","Check package-lock.json file and update engines in package.json in relative examples directory.").strict().options({path:{alias:"p",string:!0,description:"Path to the NPM package folder. Default will use current folder."},quiet:{boolean:!0,alias:"q",default:!1,description:"Enable quiet mode."},debug:{boolean:!0,alias:"d",default:!1,description:"Enable debug mode. Can be used with environment variable DEBUG=nce."},verbose:{boolean:!0,alias:"v",default:!1,description:"A little more detailed than the default output."},engines:{array:!0,alias:"e",description:"Select engines to check. Default will check all engines defined."},update:{boolean:!0,alias:"u",default:!1,description:"Update engines in package.json file."}}).help("help").version().wrap(re.terminalWidth()).epilog("\xA9 2022 Samuel MARLHENS").argv;var Pe={};(async()=>{let n=`${le.default.env.NODE_ENV!=="test"?"../":""}../package.json`,a=await ce,o=w((0,pe.dirname)((0,me.fileURLToPath)(Pe.url)),n),i=await b(o),c=(0,fe.default)({pkg:i,updateCheckInterval:1e3*60,shouldNotifyInNpmScript:!0});c.update&&c.update.latest!==i.version&&c.notify({defer:!1,isGlobal:!0}),await oe(a)})();
|
package/dist/bin/nce.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
var ee=Object.defineProperty;var
|
|
3
|
-
`));return e.relativePath=c,e.data=p,e},"loadFile"),pe=
|
|
2
|
+
var ee=Object.defineProperty;var s=(e,t)=>ee(e,"name",{value:t,configurable:!0});import{dirname as ve}from"node:path";import $e from"node:process";import{fileURLToPath as je}from"node:url";import Oe from"update-notifier";import{normalize as K}from"node:path";import S from"debug";var te="nce",P=S(te),J=s(()=>S.disable(),"namespaces"),F=s(e=>S.enable(e),"enableNamespaces");var L=s(({debug:e,quiet:t,verbose:n},a=process.env)=>{if(t)return{renderer:"silent"};if(n)return{renderer:"simple"};let o=a.TERM==="dumb";return e||o||a.NODE_ENV==="test"?{renderer:"verbose"}:{renderer:"default",rendererOptions:{dateFormat:!1}}},"renderer");import r from"chalk";import re from"cli-table";import{Listr as ie}from"listr2";import I from"lodash";import{dirname as W,sep as se}from"node:path";import{fileURLToPath as B}from"node:url";import g from"semver";import ce from"sort-package-json";import ne from"ajv-draft-04";import ae from"ajv-formats";var T="../schemas/schema-package.json",D="../schemas/schema-package-lock.json",y=ae(new ne({allErrors:!0,coerceTypes:!0,allowUnionTypes:!0,strict:!1,allowMatchingProperties:!0}));var A="package.json",q="package-lock.json",E=["node","npm","yarn"];import M from"node:fs/promises";import j from"node:path";var k=s(async e=>JSON.parse(await M.readFile(e,"utf8")),"getJson"),U=s(async(e,t)=>M.writeFile(e,JSON.stringify(t,null,2),"utf8"),"writeJson"),oe=s(e=>j.isAbsolute(e),"isAbsolutePath"),h=s((...e)=>j.join(...e),"joinPath"),v=s(e=>{let{workingDir:t,path:n}=e;return n?oe(n)?j.relative(t,n):j.relative(t,h(t,n)):t},"getRelativePath");var w={loose:!1},O=s(e=>[...e.map(t=>[...t])].sort((t,n)=>g.compare(t[0].semver,n[0].semver)),"sortRangeSet"),$=s(e=>new g.Range(e.map(t=>t.map(n=>n.value).join(" ")).join("||"),w),"setToRange"),V=s((e,t)=>[...e.map(n=>[...n])].filter(n=>n[0].semver.major>=t.major).map(n=>(n[0].semver.major===t.major&&g.gte(t,n[0].semver,w)&&(n[0]=new g.Comparator(`${n[0].operator}${t.raw}`)),n)),"applyMinVersionToRangeSet"),x=s((e,t,n,a)=>{if(a(`${r.white("Compare:")} ${r.blue(e.raw)} ${r.white("and")} ${r.blue(t.raw)}`),g.subset(e,t))return a(`${r.white("Range")} ${r.green(e.raw)} ${r.white("is a subset of")} ${r.blue(t.raw)}`),n.push(t.raw),e;if(g.subset(t,e))return a(`${r.white("Range")} ${r.green(t.raw)} ${r.white("is a subset of")} ${r.blue(e.raw)}`),n.push(e.raw),t;let o=g.minVersion(e,w)||new g.SemVer("*"),i=g.minVersion(t,w)||new g.SemVer("*"),c=O(e.set),p=O(t.set);if(!g.eq(o,i,w)){let N=g.compare(o,i)===-1?i:o;a(`${r.white("Applying minimal version")} ${r.yellow(N.version)} ${r.white("to both ranges.")}`);let C=$(V(c,N)),R=$(V(p,N));if(C.intersects(R,w))return x(C,R,n,a);throw new Error("Not yet implemented :/")}let l=c.shift(),m=p.shift(),f=l||m;if(!f)throw new Error("Not yet implemented :/");let d=[f],u=$(c),b=$(p),Z=x(u,b,n,a);return d.push(...O(Z.set)),$(d)},"restrictiveRange"),z=s(e=>{if(!e||e.raw==="*")return"*";let t=[];return O(e.set).forEach(a=>{let[o,i]=a;a.length===2&&o.operator===">="&&i.operator==="<"&&o.semver.major+1===i.semver.major?t.push(`^${o.semver.version}`):a.length===1&&o.operator===">="?t.push(o.value):t.push(`${o.value} ${(i==null?void 0:i.value)||""}`.trim())}),t.join(" || ")},"humanizeRange"),G=s(async({fileObject:e,path:t,workingDir:n,debug:a,validateFn:o})=>{var m;let i=h(t,e.filename),c=v({path:i,workingDir:n});a(`${r.white(`Relative path to ${e.filename}:`)} ${r.blue(c)}`);let p=await k(c).catch(()=>{});if(!p)throw new Error(`${c} is not defined.`);if(a(`${r.white("Validate JSON schema of")} ${r.blue(c)}`),!o(p))throw new Error((m=o.errors)==null?void 0:m.map(f=>f.message).join(`
|
|
3
|
+
`));return e.relativePath=c,e.data=p,e},"loadFile"),pe=s(async({ctx:e,debug:t})=>{let{path:n,workingDir:a,packageObject:o}=e,i=h(W(B(import.meta.url)),T),c=v({path:i,workingDir:a}),p=await k(c),l=y.compile(p);e.packageObject=await G({fileObject:o,path:n,debug:t,workingDir:a,validateFn:l})},"loadPackageFile"),le=s(async({ctx:e,debug:t})=>{let{path:n,workingDir:a,packageLockObject:o}=e,i=h(W(B(import.meta.url)),D),c=v({path:i,workingDir:a}),p=await k(c),l=y.compile(p);e.packageLockObject=await G({fileObject:o,path:n,debug:t,workingDir:a,validateFn:l})},"loadPackageLockFile"),me=s((e,t)=>{var n;if(typeof e=="object"&&t in e)return e[t];if(I.isArray(e)&&e.some(a=>a.includes(t)))return(n=e.find(a=>a.includes(t)))==null?void 0:n.replace(t,"")},"getConstraintFromEngines"),H=s(({packages:e,constraintKey:t,debug:n})=>{let a=new g.Range("*"),o=[],i=n.extend(t);for(let[c,p]of e){let{engines:l}=p,m=me(l,t);if(!m){i(`${r.white("Package")} ${r.gray(c)} ${r.white("has no constraints for current engine")}`);continue}let f=g.validRange(m);if(!f){i(`${r.red(m)} ${r.white("is not a valid semver range")}`);continue}if(o.indexOf(f)!==-1){i(`${r.white("Ignored range:")} ${r.gray(f)}`);continue}let d=new g.Range(f,w);if(!a){a=d,i(`${r.white("New most restrictive range:")} ${r.green(a.raw)}`);continue}let u=x(a,d,o,i);a.raw!==u.raw&&(a=u,i(`${r.white("New most restrictive range:")} ${r.green(a.raw)}`))}return i(a?`${r.white("Final computed engine range constraint:")} ${r.blue(a.raw)}`:`${r.white("No computed engine range constraint")}`),a},"computeEnginesConstraint"),fe=s(({ctx:e,debug:t})=>{let{packageObject:n,packageLockObject:a,engines:o}=e;if(!n.data)throw new Error(`${n.filename} data is not defined.`);if(!a.data)throw new Error(`${a.filename} data is not defined.`);if(!("packages"in a.data))throw new Error(`${a.filename} does not contain packages property.`);let i=s(m=>E.indexOf(m)!==-1,"filterEngineConstraintKey"),c=Object.entries(a.data.packages),p=new Map,l=[...E];if(o&&o.length>0&&(l=o.filter(i)),l.length===0)throw new Error("No valid constraint key(s).");for(let m of l)p.set(m,{from:H({packages:[["",{engines:n.data.engines||{}}]],constraintKey:m,debug:t}),to:H({packages:c,constraintKey:m,debug:t})});e.ranges=p},"computeEnginesConstraints"),ge=s(e=>new re({style:{head:[],border:[],compact:!1,"padding-left":1,"padding-right":1},colWidths:e,colAligns:["left","left","left","left"],chars:{top:"","top-mid":"","top-left":"","top-right":"",bottom:"","bottom-mid":"","bottom-left":"","bottom-right":"",left:"","left-mid":"",mid:"","mid-mid":"",right:"","right-mid":"",middle:""}}),"createEnginesTable"),de=s(e=>{let t=["nce"],n;return typeof e.path=="string"&&e.path.length>0&&(n=v({path:e.path,workingDir:e.workingDir})),typeof n=="string"&&n.length>0&&t.push("-p",n),e.engines&&t.push(...e.engines.map(a=>["-e",a]).flat()),e.quiet&&t.push("-q"),e.debug&&t.push("-d"),e.verbose&&t.push("-v"),t.push("-u"),t.join(" ")},"generateUpdateCommandFromContext"),ue=s(({ctx:e,parent:t,debug:n})=>{let{ranges:a,packageObject:o,update:i}=e;if(!a)throw new Error("Computed engines range constraints are not defined.");let c=new Map,p="\u2192",l=[2,2,2,2],m=[];for(let[f,d]of a.entries()){let u=z(d.to),b=z(d.from);u!==b&&(c.set(f,u),n.extend(f)(`${r.white("Simplified computed engine range constraint:")} ${r.blue(u)}`),l=[Math.max(l[0],f.length+2),Math.max(l[1],b.length+2),p.length+2,Math.max(l[3],u.length+2)],m.push([f,b,p,u]))}if(c.size===0)t.title=`All computed engines range constraints are up-to-date ${r.green(":)")}`;else{let f=ge(l);f.push(...m);let d=`Computed engines range constraints:
|
|
4
4
|
|
|
5
|
-
${
|
|
5
|
+
${f.toString()}`;i||(d+=`
|
|
6
6
|
|
|
7
|
-
Run ${r.cyan(de(e))} to upgrade ${o.filename}.`),t.title=d}e.rangesSimplified=c},"outputComputedConstraints"),he=
|
|
7
|
+
Run ${r.cyan(de(e))} to upgrade ${o.filename}.`),t.title=d}e.rangesSimplified=c},"outputComputedConstraints"),he=s(async({ctx:e,debug:t})=>{let{packageObject:n,rangesSimplified:a}=e;if(!a)throw new Error("Simplified computed engines range constraints are not defined.");if(!n.data)throw new Error(`${n.filename} data is not defined.`);if(!n.relativePath)throw new Error(`${n.filename} path is not defined.`);return n.data.engines=I.merge({},n.data.engines,Object.fromEntries(a)),t(`${r.white("Write JSON to")} ${r.blue(n.relativePath)}`),U(n.relativePath,ce(n.data))},"updatePackageJson"),we=s(({context:e,parent:t,debug:n})=>[{title:`Load ${e.packageObject.filename} file...`,task:(a,o)=>pe({ctx:a,task:o,parent:t,debug:n})},{title:`Load ${e.packageLockObject.filename} file...`,task:(a,o)=>le({ctx:a,task:o,parent:t,debug:n})},{title:"Compute engines range constraints...",task:(a,o)=>fe({ctx:a,task:o,parent:t,debug:n})},{title:"Output computed engines range constraints...",task:(a,o)=>ue({ctx:a,task:o,parent:t,debug:n})},{title:`Update ${e.packageObject.filename} file...`,skip:({update:a})=>a?!a:"Update is disabled by default.",task:(a,o)=>he({ctx:a,task:o,parent:t,debug:n})}],"checkCommandTasks"),_=s((e,t)=>{var n;return new ie([{title:`Checking npm package engines range constraints in ${(n=e.ctx)==null?void 0:n.packageLockObject.filename} file...`,task:(a,o)=>{let{path:i,workingDir:c,packageLockObject:p}=a,l=h(c,i,p.filename);return o.title=`Checking npm package engines range constraints in ${l.replace(`${c}${se}`,"")} file...`,o.newListr(m=>we({context:a,parent:m,debug:t}))}}],e)},"cliCommandTask");var Q=s(async e=>{let t=e,n={workingDir:K(process.cwd()),path:K(t.path||""),update:t.update||!1,verbose:t.verbose||!1,quiet:t.quiet||!1,debug:t.debug||!1,engines:t.engines,packageObject:{filename:A},packageLockObject:{filename:q}},a={...L({quiet:n.quiet,debug:n.debug,verbose:n.verbose}),ctx:n},o=J();return n.debug&&F(o),_(a,P).run()},"nce");import ke from"yargs";import{hideBin as be}from"yargs/helpers";var X=ke(be(process.argv)),Y=X.scriptName("nce").usage("Usage: $0 [options]").example("$0","Check package-lock.json file in current working directory.").example("$0 -p examples -u","Check package-lock.json file and update engines in package.json in relative examples directory.").strict().options({path:{alias:"p",string:!0,description:"Path to the NPM package folder. Default will use current folder."},quiet:{boolean:!0,alias:"q",default:!1,description:"Enable quiet mode."},debug:{boolean:!0,alias:"d",default:!1,description:"Enable debug mode. Can be used with environment variable DEBUG=nce."},verbose:{boolean:!0,alias:"v",default:!1,description:"A little more detailed than the default output."},engines:{array:!0,alias:"e",description:"Select engines to check. Default will check all engines defined."},update:{boolean:!0,alias:"u",default:!1,description:"Update engines in package.json file."}}).help("help").version().wrap(X.terminalWidth()).epilog("\xA9 2022 Samuel MARLHENS").argv;(async()=>{let n=`${$e.env.NODE_ENV!=="test"?"../":""}../package.json`,a=await Y,o=h(ve(je(import.meta.url)),n),i=await k(o),c=Oe({pkg:i,updateCheckInterval:1e3*60,shouldNotifyInNpmScript:!0});c.update&&c.update.latest!==i.version&&c.notify({defer:!1,isGlobal:!0}),await Q(a)})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smarlhens/npm-check-engines",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"description": "Node.JS engines constraint checker written in TypeScript.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"listr2": "5.0.5",
|
|
72
72
|
"lodash": "4.17.21",
|
|
73
73
|
"semver": "7.3.8",
|
|
74
|
-
"sort-package-json": "2.
|
|
74
|
+
"sort-package-json": "2.1.0",
|
|
75
75
|
"update-notifier": "6.0.2",
|
|
76
76
|
"yargs": "17.6.2"
|
|
77
77
|
},
|