@baicie/ncu 0.1.25 → 0.1.29
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/cjs/chunks/src.cjs +185 -185
- package/dist/cjs/chunks/src.cjs.map +1 -1
- package/dist/cjs/cli.cjs.map +1 -1
- package/dist/esm/chunks/src.mjs +2 -2
- package/dist/esm/chunks/src.mjs.map +1 -1
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/index.d.mts +30 -30
- package/package.json +13 -13
package/dist/cjs/chunks/src.cjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n&&t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let u=require(`path`);u=l(u);let d=require(`prompts-ncu`);d=l(d);let f=require(`spawn-please`);f=l(f);let p=require(`fs`);p=l(p);let m=require(`os`);m=l(m);let h=require(`cli-table3`);h=l(h);let g=require(`fs/promises`);g=l(g);let _=require(`hosted-git-info`);_=l(_);let v=require(`url`),y=require(`parse-github-url`);y=l(y);let b=require(`semver`);b=l(b);let x=require(`semver-utils`);x=l(x);let S=require(`util`);S=l(S);let C=require(`camelcase`);C=l(C);let w=require(`fast-memoize`);w=l(w);let T=require(`ini`);T=l(T);let E=require(`npm-registry-fetch`);E=l(E);let D=require(`untildify`);D=l(D);let O=require(`find-up`),k=require(`node:fs`);k=l(k);let A=require(`node:os`);A=l(A);let j=require(`node:path`);j=l(j);let M=require(`js-yaml`);M=l(M);let N=require(`jsonlines`);N=l(N);let ee=require(`node:stream/consumers`),te=require(`fast-glob`);te=l(te);let ne=require(`picomatch`);ne=l(ne);let re=require(`rc-config-loader`),ie=require(`dequal`),ae=require(`node:child_process`);ae=l(ae);let oe=require(`node:util`),se=require(`fp-and-or`),ce=require(`p-map`);ce=l(ce);let le=require(`progress`);le=l(le);let ue=require(`jsonc-parser`);var de=`0.1.25`,fe=`https://github.com/baicie/npm-check-updates`,pe={url:`https://github.com/raineorshine/npm-check-updates/issues`},me={name:`@baicie/ncu`,version:de,author:`Tomas Junnonen <tomas1@gmail.com>`,license:`Apache-2.0`,type:`module`,contributors:[`Raine Revere (https://github.com/raineorshine)`,`Imamuzzaki Abu Salam <imamuzzaki@gmail.com>`],description:`Find newer versions of dependencies than what your package.json allows`,keywords:[`dependencies`,`npm`,`package.json`,`update`,`upgrade`,`versions`],engines:{node:`>=20.0.0`,npm:`>=8.12.1`},main:`dist/cjs/index.cjs`,types:`dist/esm/index.mjs`,exports:{".":{types:`./dist/esm/index.d.mts`,module:`./dist/esm/index.mjs`,import:`./dist/esm/index.mjs`,require:`./dist/esm/index.cjs`}},scripts:{dev:`rolldown --watch -c`,build:`rimraf dist && npm run build:options && rolldown -m -c`,"build:options":`vite-node src/scripts/build-options.ts`,"build:analyze":`rimraf dist && npm run build:options && ANALYZER=true vite build`,lint:`cross-env FORCE_COLOR=1 npm-run-all --parallel --aggregate-output lint:*`,"lint:markdown":`markdownlint "**/*.md" --ignore "**/node_modules/**/*.md" --ignore build --config .markdownlint.cjs`,"lint:src":`eslint --cache`,prepublishOnly:`npm run build`,prettier:`prettier . --check`,"prettier:fix":`prettier . --write`,test:`npm run test:unit && npm run test:e2e`,"test:bun":`test/bun-install.sh && mocha test/bun`,"test:unit":`mocha test test/package-managers/*`,"test:e2e":`./test/e2e.sh`,ncu:`node dist/cjs/cli.cjs`,release:`tsx scripts/release.ts`,"ci-publish":`tsx scripts/publish.ts`,postinstall:`simple-git-hooks`},"simple-git-hooks":{"pre-commit":`pnpm lint-staged`,"commit-msg":`node -e "import('@baicie/scripts').then(m => m.verifyCommit())"`},"lint-staged":{"*.{js,json}":[`prettier --write`],"*.ts?(x)":[`eslint --fix`,`prettier --parser=typescript --write`]},bin:{"npm-check-updates":`dist/cjs/cli.cjs`,ncu:`dist/cjs/cli.cjs`},repository:{type:`git`,url:`git+https://github.com/baicie/npm-check-updates.git`},homepage:fe,bugs:pe,overrides:{ip:`2.0.1`,jsonparse:`https://github.com/ARitz-Cracker/jsonparse/tree/patch-1`,"@yarnpkg/parsers":`2.6.0`},dependencies:{camelcase:`^9.0.0`,chalk:`^5.6.2`,"cli-table3":`^0.6.5`,commander:`^14.0.2`,dequal:`^2.0.3`,"fast-glob":`^3.3.3`,"fast-memoize":`^2.5.2`,"find-up":`8.0.0`,"fp-and-or":`^1.0.2`,"hosted-git-info":`^9.0.2`,ini:`^6.0.0`,"js-yaml":`^4.1.1`,"jsonc-parser":`^3.3.1`,jsonlines:`^0.1.1`,lodash:`^4.17.21`,"npm-registry-fetch":`^19.1.1`,"p-map":`^7.0.4`,"parse-github-url":`^1.0.3`,picomatch:`^4.0.3`,progress:`^2.0.3`,"prompts-ncu":`^3.0.2`,"rc-config-loader":`^4.1.3`,rfdc:`^1.4.1`,semver:`^7.7.3`,"semver-utils":`^1.1.4`,"spawn-please":`^3.0.0`,untildify:`^6.0.0`,"update-notifier":`^7.3.1`},devDependencies:{"@baicie/release":`^0.1.11`,"@baicie/scripts":`^0.1.2`,"@eslint/js":`^9.39.2`,"@trivago/prettier-plugin-sort-imports":`^6.0.2`,"@types/bun":`^1.3.6`,"@types/chai":`^5.2.3`,"@types/chai-as-promised":`^8.0.2`,"@types/chai-string":`^1.4.5`,"@types/cli-table":`^0.3.4`,"@types/hosted-git-info":`^3.0.5`,"@types/ini":`^4.1.1`,"@types/js-yaml":`^4.0.9`,"@types/jsonlines":`^0.1.5`,"@types/lodash":`^4.17.23`,"@types/mocha":`^10.0.10`,"@types/node":`^25.0.8`,"@types/npm-registry-fetch":`^8.0.9`,"@types/parse-github-url":`^1.0.3`,"@types/picomatch":`^4.0.2`,"@types/progress":`^2.0.7`,"@types/prompts":`^2.4.9`,"@types/semver":`^7.7.1`,"@types/semver-utils":`^1.1.3`,"@types/sinon":`^21.0.0`,"@types/update-notifier":`^6.0.8`,"@typescript-eslint/eslint-plugin":`^8.53.0`,"@typescript-eslint/parser":`^8.53.0`,chai:`^6.2.2`,"chai-as-promised":`^8.0.2`,"chai-string":`^1.6.0`,"cross-env":`^10.1.0`,eslint:`^9.39.2`,"eslint-config-prettier":`^10.1.8`,"eslint-config-raine":`^0.5.0`,"eslint-config-standard":`^17.1.0`,"eslint-plugin-import":`^2.32.0`,"eslint-plugin-jsdoc":`^62.0.0`,"eslint-plugin-n":`^17.23.2`,"eslint-plugin-promise":`^7.2.1`,"lint-staged":`^16.2.7`,"markdownlint-cli":`^0.47.0`,mocha:`^11.7.5`,"npm-run-all":`^4.1.5`,prettier:`^3.8.0`,rimraf:`^6.1.2`,rolldown:`1.0.0-beta.60`,"rolldown-plugin-dts":`^0.21.1`,"rollup-plugin-node-externals":`^8.1.2`,"rollup-plugin-visualizer":`^6.0.5`,should:`^13.2.3`,"simple-git-hooks":`^2.13.1`,sinon:`^21.0.1`,"source-map-support":`^0.5.21`,"strip-ansi":`^7.1.2`,"ts-node":`^10.9.2`,tsx:`^4.21.0`,typescript:`^5.9.3`,"typescript-eslint":`^8.53.0`,"typescript-json-schema":`^0.67.1`,verdaccio:`^6.2.4`,vite:`^7.3.1`,"vite-bundle-analyzer":`^1.3.2`,"vite-node":`^5.2.0`,"vite-plugin-dts":`^4.5.4`,yarn:`^1.22.22`},files:[`dist`,`!**/test/**`],mocha:{"check-leaks":!0,extension:[`test.ts`],require:[`source-map-support/register`,`ts-node/register`],timeout:6e4,"trace-deprecation":!0,"trace-warnings":!0,use_strict:!0},packageManager:`pnpm@10.28.0`,publishConfig:{access:`public`,registry:`https://registry.npmjs.org/`}};function P(e,t,n={}){let r=Array.isArray(e);return t||=(e=>({[e]:!0})),Object.entries(e||{}).forEach(([e,i],a)=>{let o=r?t(i,a,n):t(e,i,n);Object.entries(o||{}).forEach(e=>{n[e[0]]=e[1]})}),n}var F=P;const he={blue:!0,bold:!0,cyan:!0,gray:!0,green:!0,magenta:!0,red:!0,yellow:!0},ge=F(he,e=>({[e]:e=>e.toString()}));let _e;const ve=async e=>{let{default:t,Chalk:n}=await import(`chalk`);_e=e===!0?new n({level:1}):e===null?ge:t},ye=()=>{if(!_e)throw Error(`Chalk has not been imported yet. Chalk is a dynamic import and requires that you await { chalkInit } from './lib/chalk'.`)},be=F(he,e=>{let t=t=>(ye(),_e[e].bold(t)),n=t=>(ye(),_e[e](t));return n.bold=t,{[e]:n}});var I=be;const xe=(e,t)=>F(e,(e,n)=>t(e,n)?{[e]:n}:null);var L=xe;const Se=e=>g.default.stat(e).then(()=>!0,()=>!1);var Ce=Se;async function we(e,{pkgFile:t}={}){let n=require.resolve.paths(e)||[],r=t?[u.default.join(u.default.dirname(t),`node_modules`)]:[],i=[u.default.join(process.cwd(),`node_modules`)],a=[...r,...i,...n];for(let t of a){let n=u.default.join(t,e,`package.json`);if(await Ce(n))try{return JSON.parse(await g.default.readFile(n,`utf-8`))}catch{}}return null}var Te=we;async function Ee(e,t,{pkgFile:n}={}){return t?t.version:(await Te(e,{pkgFile:n}))?.version??null}var De=Ee;async function Oe(e,{pkgFile:t}={}){return(await Te(e,{pkgFile:t}))?.repository??null}async function ke(e,t,{pkgFile:n}={}){let r=t?t.repository?t.repository:null:await Oe(e,{pkgFile:n});if(!r)return null;let i,a=``;if(typeof r==`string`){i=r;try{let e=new v.URL(i);if(e.protocol===`https:`||e.protocol===`http:`)return i}catch{}}else typeof r.url==`string`&&(i=r.url,typeof r.directory==`string`&&(a=r.directory));if(typeof i==`string`&&typeof a==`string`){let e=_.default.fromUrl(i)?.browse(a);return e===void 0?i:e.replace(/\/$/,``).replace(/\/tree\/HEAD$/,``)}return null}var Ae=ke,R=o(((e,t)=>{t.exports=Array.isArray})),je=o(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),z=o(((e,t)=>{var n=je(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),Me=o(((e,t)=>{t.exports=z().Symbol})),Ne=o(((e,t)=>{var n=Me(),r=Object.prototype,i=r.hasOwnProperty,a=r.toString,o=n?n.toStringTag:void 0;function s(e){var t=i.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch{}var s=a.call(e);return r&&(t?e[o]=n:delete e[o]),s}t.exports=s})),Pe=o(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),Fe=o(((e,t)=>{var n=Me(),r=Ne(),i=Pe(),a=`[object Null]`,o=`[object Undefined]`,s=n?n.toStringTag:void 0;function c(e){return e==null?e===void 0?o:a:s&&s in Object(e)?r(e):i(e)}t.exports=c})),Ie=o(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),Le=o(((e,t)=>{var n=Fe(),r=Ie(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),Re=o(((e,t)=>{var n=R(),r=Le(),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function o(e,t){if(n(e))return!1;var o=typeof e;return o==`number`||o==`symbol`||o==`boolean`||e==null||r(e)?!0:a.test(e)||!i.test(e)||t!=null&&e in Object(t)}t.exports=o})),ze=o(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),Be=o(((e,t)=>{var n=Fe(),r=ze(),i=`[object AsyncFunction]`,a=`[object Function]`,o=`[object GeneratorFunction]`,s=`[object Proxy]`;function c(e){if(!r(e))return!1;var t=n(e);return t==a||t==o||t==i||t==s}t.exports=c})),Ve=o(((e,t)=>{t.exports=z()[`__core-js_shared__`]})),He=o(((e,t)=>{var n=Ve(),r=function(){var e=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function i(e){return!!r&&r in e}t.exports=i})),Ue=o(((e,t)=>{var n=Function.prototype.toString;function r(e){if(e!=null){try{return n.call(e)}catch{}try{return e+``}catch{}}return``}t.exports=r})),We=o(((e,t)=>{var n=Be(),r=He(),i=ze(),a=Ue(),o=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,d=l.hasOwnProperty,f=RegExp(`^`+u.call(d).replace(o,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function p(e){return!i(e)||r(e)?!1:(n(e)?f:s).test(a(e))}t.exports=p})),Ge=o(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),Ke=o(((e,t)=>{var n=We(),r=Ge();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),qe=o(((e,t)=>{t.exports=Ke()(Object,`create`)})),Je=o(((e,t)=>{var n=qe();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),Ye=o(((e,t)=>{function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=n})),Xe=o(((e,t)=>{var n=qe(),r=`__lodash_hash_undefined__`,i=Object.prototype.hasOwnProperty;function a(e){var t=this.__data__;if(n){var a=t[e];return a===r?void 0:a}return i.call(t,e)?t[e]:void 0}t.exports=a})),Ze=o(((e,t)=>{var n=qe(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),Qe=o(((e,t)=>{var n=qe(),r=`__lodash_hash_undefined__`;function i(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=n&&t===void 0?r:t,this}t.exports=i})),$e=o(((e,t)=>{var n=Je(),r=Ye(),i=Xe(),a=Ze(),o=Qe();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),et=o(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),tt=o(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),nt=o(((e,t)=>{var n=tt();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),rt=o(((e,t)=>{var n=nt(),r=Array.prototype.splice;function i(e){var t=this.__data__,i=n(t,e);return i<0?!1:(i==t.length-1?t.pop():r.call(t,i,1),--this.size,!0)}t.exports=i})),it=o(((e,t)=>{var n=nt();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),at=o(((e,t)=>{var n=nt();function r(e){return n(this.__data__,e)>-1}t.exports=r})),ot=o(((e,t)=>{var n=nt();function r(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}t.exports=r})),st=o(((e,t)=>{var n=et(),r=rt(),i=it(),a=at(),o=ot();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),ct=o(((e,t)=>{t.exports=Ke()(z(),`Map`)})),lt=o(((e,t)=>{var n=$e(),r=st(),i=ct();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),ut=o(((e,t)=>{function n(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}t.exports=n})),dt=o(((e,t)=>{var n=ut();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),ft=o(((e,t)=>{var n=dt();function r(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}t.exports=r})),pt=o(((e,t)=>{var n=dt();function r(e){return n(this,e).get(e)}t.exports=r})),mt=o(((e,t)=>{var n=dt();function r(e){return n(this,e).has(e)}t.exports=r})),ht=o(((e,t)=>{var n=dt();function r(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}t.exports=r})),gt=o(((e,t)=>{var n=lt(),r=ft(),i=pt(),a=mt(),o=ht();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),_t=o(((e,t)=>{var n=gt(),r=`Expected a function`;function i(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(r);var a=function(){var n=arguments,r=t?t.apply(this,n):n[0],i=a.cache;if(i.has(r))return i.get(r);var o=e.apply(this,n);return a.cache=i.set(r,o)||i,o};return a.cache=new(i.Cache||n),a}i.Cache=n,t.exports=i})),vt=o(((e,t)=>{var n=_t(),r=500;function i(e){var t=n(e,function(e){return i.size===r&&i.clear(),e}),i=t.cache;return t}t.exports=i})),yt=o(((e,t)=>{var n=vt(),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g;t.exports=n(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(r,function(e,n,r,a){t.push(r?a.replace(i,`$1`):n||e)}),t})})),bt=o(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}t.exports=n})),xt=o(((e,t)=>{var n=Me(),r=bt(),i=R(),a=Le(),o=1/0,s=n?n.prototype:void 0,c=s?s.toString:void 0;function l(e){if(typeof e==`string`)return e;if(i(e))return r(e,l)+``;if(a(e))return c?c.call(e):``;var t=e+``;return t==`0`&&1/e==-o?`-0`:t}t.exports=l})),St=o(((e,t)=>{var n=xt();function r(e){return e==null?``:n(e)}t.exports=r})),Ct=o(((e,t)=>{var n=R(),r=Re(),i=yt(),a=St();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),wt=o(((e,t)=>{var n=Le(),r=1/0;function i(e){if(typeof e==`string`||n(e))return e;var t=e+``;return t==`0`&&1/e==-r?`-0`:t}t.exports=i})),Tt=o(((e,t)=>{var n=Ct(),r=wt();function i(e,t){t=n(t,e);for(var i=0,a=t.length;e!=null&&i<a;)e=e[r(t[i++])];return i&&i==a?e:void 0}t.exports=i})),Et=o(((e,t)=>{var n=Tt();function r(e){return function(t){return e==null?void 0:n(e,t)}}t.exports=r}));function Dt(e,t){return e?e.map(e=>({item:e,key:t(e)})).sort((e,t)=>e.key>t.key?1:e.key<t.key?-1:0).map(({item:e})=>e):[]}var Ot=l(Et(),1);const kt=[`major`,`minor`,`patch`],At=[`release`,`build`],B=[...kt,...At],jt={major:``,minor:`.`,patch:`.`,release:`-`,build:`+`},Mt=`^`,Nt=[`^`,`~`,`.*`,`.x`],Pt=RegExp(`^(${[`^`,`~`,`^*`,`*`,`x`,`x.x`,`x.x.x`].join(`|`).replace(/\^/g,`\\^`).replace(/\*/g,`\\*`)})$`),Ft=/^npm:(.*)@(.*)/;function It(e){let[t]=x.default.parseRange(e);if(!t)throw Error(S.default.format(`semverutils.parseRange returned null when trying to parse "%s". This is probably a problem with the "semver-utils" dependency. Please report an issue at https://github.com/raineorshine/npm-check-updates/issues.`,e));return B.reduce((e,n)=>t[n]?e+1:e,0)}function V(e,t){return(t?B.slice(0,B.indexOf(t)+1):B).filter(n=>t&&kt.includes(t)||e[n]).map(t=>jt[t]+(e[t]||`0`)).join(``)}function Lt(e){let[t]=x.default.parseRange(e);return B.slice().reverse().find((0,Ot.default)(t))}function Rt(e,t){let[n]=x.default.parseRange(e);return V(n,t)}function zt(e,t){return t===`^`||t===`~`?t+e:Rt(e,`major`)+t}function Bt(e){return Pt.test(e)}function Vt(e){return e===`*`||e===`x`}function Ht(e,t){if(e===t)return`none`;/^[~^]/.test(t)&&t[0]===e[0]&&(t=t.slice(1),e=e.slice(1));let n=t.split(`.`),r=e.split(`.`),i=n.findIndex((e,t)=>e!==r[t]);return i=i>=0?i:n.length,n[0]===`0`?`majorVersionZero`:i===0?`major`:i===1?`minor`:`patch`}function Ut(e,t,n){let r=P(e,(r,i,a)=>{let o=t[r],s=Ht(o,i),c=n.groupFunction?.(r,s,(0,x.parseRange)(o),(0,x.parseRange)(i),(0,x.parse)(e[r]))??s;return c===`none`?a:{...a,[c]:{...a[c],[r]:i}}}),i={patch:I.green(I.bold(`Patch`)+` Backwards-compatible bug fixes`),minor:I.cyan(I.bold(`Minor`)+` Backwards-compatible features`),major:I.red(I.bold(`Major`)+` Potentially breaking API changes`),majorVersionZero:I.magenta(I.bold(`Major version zero`)+` Anything may change`)};return Array.from(new Set([`patch`,`minor`,`major`,`majorVersionZero`,...Object.keys(r).sort()])).filter(e=>e in r).map(e=>({groupName:e,heading:e in i?i[e]:e,packages:r[e]}))}function Wt(e,t){let n=``;/^[~^]/.test(t)&&t[0]===e[0]&&(n=t[0],t=t.slice(1),e=e.slice(1));let r=t.split(`.`),i=e.split(`.`),a=r.findIndex((e,t)=>e!==i[t]);a=a>=0?a:r.length;let o=a===0||r[0]===`0`?`red`:a===1?`cyan`:`green`,s=a>0&&a<r.length?`.`:``;return n+r.slice(0,a).join(`.`)+s+I[o](r.slice(a).join(`.`))}const Gt=e=>{let t=b.default.prerelease(e);return t&&t.slice(0,-1).join(`.`)};function Kt(e,t){let n=Gt(e),r=Gt(t);return typeof n!=`string`||typeof r!=`string`||n===r}function qt(e,t){return(b.default.valid(e)&&b.default.valid(t)?b.default.gt(e,t):e>t)?1:e===t?0:-1}function Jt(e,t,n){if(!b.default.validRange(t))return null;let r=b.default.minVersion(t);return[...e].sort(qt).filter(e=>{let t=b.default.parse(e);return t&&(n===`major`||t.major===r?.major)&&(n===`major`||n===`minor`||t.minor===r?.minor)}).at(-1)||null}function Yt(e){return Lt(e)===`release`}const Xt=e=>/^[vV]?\d+$/.test(e),Zt=e=>/^[vV]?\d+\.\d+$/.test(e),Qt=e=>e.replace(/^[vV]/,``),$t=e=>Xt(e)?e+`.0.0`:e,en=e=>Zt(e)?e+`.0`:e,tn=e=>en($t(Qt(e)));function nn(e){return e&&(e[0]===`v`||e[1]===`v`)?`v`:``}const rn=(e,t)=>`npm:${e}@${t}`,an=e=>{let t=e&&e.match&&e.match(Ft);return t&&t.slice(1)},on=e=>e&&!!e.match(Ft),sn=(e,t)=>{let n=an(e);return n?rn(n[0],t):null},cn=e=>{if(!e)return!1;let t=null;try{t=(0,y.default)(e)}catch{}if(!t||!t.branch)return!1;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return!!b.default.validRange(n)},ln=e=>{if(!e)return null;let t=(0,y.default)(e);if(!t||!t.branch)return null;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return t&&t.branch&&b.default.validRange(n)?n:null};function un(e,t,n={}){if(n.wildcard=n.wildcard||`^`,!t)return e;let[r]=x.default.parseRange(t);if(!r)return e;if(n.removeRange)return t;if(Bt(e))return e;let i=Dt(x.default.parseRange(e).filter(e=>e.operator!==`||`&&e.operator!==`-`),e=>It(V(e))),[a]=i;function o(e){return(Vt(a[e])?a[e]:kt.includes(e)&&a[e]||At.includes(e)?r[e]:null)||null}let s=V(P(B,e=>({[e]:o(e)}))),c=nn(a.semver)+s,l=Array.from(new Set(i.map(e=>e.operator))),u=l[0]||``,d=Nt.some(e=>s.includes(e)),f=l[0]===`<`||l[0]===`<=`,p=l[0]===`>`,m=l.length>1;return!d&&(f||m)?zt(c,n.wildcard):(p?`>=`:u)+c}const dn=(e,t)=>{let n=nn(e),r=n?n+t:t;return r=Xt(e)?r.slice(0,r.length-4):r,r=Zt(e)?r.slice(0,r.length-2):r,r},fn=(e,t)=>{let n=tn(t),r=(0,y.default)(e);if(!r)return e;let i=decodeURIComponent(r.branch).replace(/^semver:/,``);return e.replace(i,un(i,dn(i,n)))},pn={silent:0,error:1,minimal:2,warn:3,info:4,verbose:5,silly:6},mn=e=>!e.startsWith(`file:`)&&!e.startsWith(`link:`)&&!e.startsWith(`workspace:`)&&!/^[^/:@]+\/\w+/.test(e);function H(e,t,n=null,r=`log`){!e.json&&e.loglevel!==`silent`&&(n==null||pn[e.loglevel??`warn`]>=pn[n])&&console[r](t)}function hn(e,t){e.loglevel!==`silent`&&console.log(JSON.stringify(t,null,2))}function gn(e,t){console.log(Object.keys(e).map(t=>t+`@`+e[t]).join(t))}function U(e,t,n){H(e,Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}),n)}function _n(e){let t=new h.default({colAligns:[`left`,`right`,`right`,`right`,`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:``}});return t.push(...e),t.toString().split(`
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n&&t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let u=require(`path`);u=l(u);let d=require(`prompts-ncu`);d=l(d);let f=require(`spawn-please`);f=l(f);let p=require(`fs`);p=l(p);let m=require(`os`);m=l(m);let h=require(`cli-table3`);h=l(h);let g=require(`fs/promises`);g=l(g);let _=require(`hosted-git-info`);_=l(_),require(`url`);let v=require(`parse-github-url`);v=l(v);let y=require(`semver`);y=l(y);let b=require(`semver-utils`);b=l(b);let x=require(`util`);x=l(x);let S=require(`camelcase`);S=l(S);let C=require(`fast-memoize`);C=l(C);let w=require(`ini`);w=l(w);let T=require(`npm-registry-fetch`);T=l(T);let E=require(`untildify`);E=l(E);let D=require(`find-up`),ee=require(`node:fs`);ee=l(ee);let O=require(`node:os`);O=l(O);let k=require(`node:path`);k=l(k);let A=require(`js-yaml`);A=l(A);let j=require(`jsonlines`);j=l(j);let te=require(`node:stream/consumers`),M=require(`fast-glob`);M=l(M);let ne=require(`picomatch`);ne=l(ne);let re=require(`rc-config-loader`),ie=require(`dequal`),ae=require(`node:child_process`);ae=l(ae);let oe=require(`node:util`),se=require(`fp-and-or`),ce=require(`p-map`);ce=l(ce);let le=require(`progress`);le=l(le);let ue=require(`jsonc-parser`);var de=`0.1.29`,fe=`https://github.com/baicie/npm-check-updates`,pe={url:`https://github.com/raineorshine/npm-check-updates/issues`},me={name:`@baicie/ncu`,version:de,author:`Tomas Junnonen <tomas1@gmail.com>`,license:`Apache-2.0`,type:`module`,contributors:[`Raine Revere (https://github.com/raineorshine)`,`Imamuzzaki Abu Salam <imamuzzaki@gmail.com>`],description:`Find newer versions of dependencies than what your package.json allows`,keywords:[`dependencies`,`npm`,`package.json`,`update`,`upgrade`,`versions`],engines:{node:`>=20.0.0`,npm:`>=8.12.1`},main:`dist/cjs/index.cjs`,types:`dist/esm/index.mjs`,exports:{".":{types:`./dist/esm/index.d.mts`,module:`./dist/esm/index.mjs`,import:`./dist/esm/index.mjs`,require:`./dist/esm/index.cjs`}},scripts:{dev:`rolldown --watch -c`,build:`rimraf dist && npm run build:options && rolldown -m -c`,"build:options":`vite-node src/scripts/build-options.ts`,"build:analyze":`rimraf dist && npm run build:options && ANALYZER=true vite build`,lint:`cross-env FORCE_COLOR=1 npm-run-all --parallel --aggregate-output lint:*`,"lint:markdown":`markdownlint "**/*.md" --ignore "**/node_modules/**/*.md" --ignore build --config .markdownlint.cjs`,"lint:src":`eslint --cache`,"type-check":`tsc --noEmit --incremental`,prepublishOnly:`npm run build`,prettier:`prettier . --check`,"prettier:fix":`prettier . --write`,test:`npm run test:unit && npm run test:e2e`,"test:bun":`test/bun-install.sh && mocha test/bun`,"test:unit":`mocha test test/package-managers/*`,"test:e2e":`./test/e2e.sh`,ncu:`node dist/cjs/cli.cjs`,release:`tsx scripts/release.ts`,"ci-publish":`tsx scripts/publish.ts`,prepare:`simple-git-hooks`},"simple-git-hooks":{"pre-commit":`pnpm lint-staged`,"commit-msg":`node -e "import('@baicie/scripts').then(m => m.verifyCommit())"`},"lint-staged":{"*.{js,json}":[`prettier --write`],"*.ts?(x)":[`eslint --fix`,`prettier --parser=typescript --write`]},bin:{"npm-check-updates":`dist/cjs/cli.cjs`,ncu:`dist/cjs/cli.cjs`},repository:{type:`git`,url:`git+https://github.com/baicie/npm-check-updates.git`},homepage:fe,bugs:pe,overrides:{ip:`2.0.1`,jsonparse:`https://github.com/ARitz-Cracker/jsonparse/tree/patch-1`,"@yarnpkg/parsers":`2.6.0`},dependencies:{camelcase:`^9.0.0`,chalk:`^5.6.2`,"cli-table3":`^0.6.5`,commander:`^14.0.2`,dequal:`^2.0.3`,"fast-glob":`^3.3.3`,"fast-memoize":`^2.5.2`,"find-up":`8.0.0`,"fp-and-or":`^1.0.2`,"hosted-git-info":`^9.0.2`,ini:`^6.0.0`,"js-yaml":`^4.1.1`,"jsonc-parser":`^3.3.1`,jsonlines:`^0.1.1`,lodash:`^4.17.23`,"npm-registry-fetch":`^19.1.1`,"p-map":`^7.0.4`,"parse-github-url":`^1.0.3`,picomatch:`^4.0.3`,progress:`^2.0.3`,"prompts-ncu":`^3.0.2`,"rc-config-loader":`^4.1.3`,rfdc:`^1.4.1`,semver:`^7.7.3`,"semver-utils":`^1.1.4`,"spawn-please":`^3.0.0`,untildify:`^6.0.0`,"update-notifier":`^7.3.1`},devDependencies:{"@baicie/release":`^0.1.11`,"@baicie/scripts":`^0.1.2`,"@eslint/js":`^9.39.2`,"@trivago/prettier-plugin-sort-imports":`^6.0.2`,"@types/bun":`^1.3.6`,"@types/chai":`^5.2.3`,"@types/chai-as-promised":`^8.0.2`,"@types/chai-string":`^1.4.5`,"@types/cli-table":`^0.3.4`,"@types/hosted-git-info":`^3.0.5`,"@types/ini":`^4.1.1`,"@types/js-yaml":`^4.0.9`,"@types/jsonlines":`^0.1.5`,"@types/lodash":`^4.17.23`,"@types/mocha":`^10.0.10`,"@types/node":`^25.0.10`,"@types/npm-registry-fetch":`^8.0.9`,"@types/parse-github-url":`^1.0.3`,"@types/picomatch":`^4.0.2`,"@types/progress":`^2.0.7`,"@types/prompts":`^2.4.9`,"@types/semver":`^7.7.1`,"@types/semver-utils":`^1.1.3`,"@types/sinon":`^21.0.0`,"@types/update-notifier":`^6.0.8`,"@typescript-eslint/eslint-plugin":`^8.53.1`,"@typescript-eslint/parser":`^8.53.1`,chai:`^6.2.2`,"chai-as-promised":`^8.0.2`,"chai-string":`^1.6.0`,"cross-env":`^10.1.0`,eslint:`^9.39.2`,"eslint-config-prettier":`^10.1.8`,"eslint-config-raine":`^0.5.0`,"eslint-config-standard":`^17.1.0`,"eslint-plugin-import":`^2.32.0`,"eslint-plugin-jsdoc":`^62.4.1`,"eslint-plugin-n":`^17.23.2`,"eslint-plugin-promise":`^7.2.1`,"lint-staged":`^16.2.7`,"markdownlint-cli":`^0.47.0`,mocha:`^11.7.5`,"npm-run-all":`^4.1.5`,prettier:`^3.8.1`,rimraf:`^6.1.2`,rolldown:`1.0.0-rc.1`,"rolldown-plugin-dts":`^0.21.6`,"rollup-plugin-node-externals":`^8.1.2`,"rollup-plugin-visualizer":`^6.0.5`,should:`^13.2.3`,"simple-git-hooks":`^2.13.1`,sinon:`^21.0.1`,"source-map-support":`^0.5.21`,"strip-ansi":`^7.1.2`,"ts-node":`^10.9.2`,tsx:`^4.21.0`,typescript:`^5.9.3`,"typescript-eslint":`^8.53.1`,"typescript-json-schema":`^0.67.1`,verdaccio:`^6.2.4`,vite:`^7.3.1`,"vite-bundle-analyzer":`^1.3.2`,"vite-node":`^5.3.0`,"vite-plugin-dts":`^4.5.4`,yarn:`^1.22.22`},files:[`dist`,`!**/test/**`],mocha:{"check-leaks":!0,extension:[`test.ts`],require:[`source-map-support/register`,`ts-node/register`],timeout:6e4,"trace-deprecation":!0,"trace-warnings":!0,use_strict:!0},packageManager:`pnpm@10.28.1`,publishConfig:{access:`public`,registry:`https://registry.npmjs.org/`}};function N(e,t,n={}){let r=Array.isArray(e);return t||=(e=>({[e]:!0})),Object.entries(e||{}).forEach(([e,i],a)=>{let o=r?t(i,a,n):t(e,i,n);Object.entries(o||{}).forEach(e=>{n[e[0]]=e[1]})}),n}var P=N;const he={blue:!0,bold:!0,cyan:!0,gray:!0,green:!0,magenta:!0,red:!0,yellow:!0},ge=P(he,e=>({[e]:e=>e.toString()}));let _e;const ve=async e=>{let{default:t,Chalk:n}=await import(`chalk`);_e=e===!0?new n({level:1}):e===null?ge:t},ye=()=>{if(!_e)throw Error(`Chalk has not been imported yet. Chalk is a dynamic import and requires that you await { chalkInit } from './lib/chalk'.`)};var F=P(he,e=>{let t=t=>(ye(),_e[e].bold(t)),n=t=>(ye(),_e[e](t));return n.bold=t,{[e]:n}}),I=(e,t)=>P(e,(e,n)=>t(e,n)?{[e]:n}:null),be=e=>g.default.stat(e).then(()=>!0,()=>!1);async function xe(e,{pkgFile:t}={}){let n=require.resolve.paths(e)||[],r=t?[u.default.join(u.default.dirname(t),`node_modules`)]:[],i=[u.default.join(process.cwd(),`node_modules`)],a=[...r,...i,...n];for(let t of a){let n=u.default.join(t,e,`package.json`);if(await be(n))try{return JSON.parse(await g.default.readFile(n,`utf-8`))}catch{}}return null}var Se=xe;async function Ce(e,t,{pkgFile:n}={}){return t?t.version:(await Se(e,{pkgFile:n}))?.version??null}var we=Ce;async function Te(e,{pkgFile:t}={}){return(await Se(e,{pkgFile:t}))?.repository??null}async function Ee(e,t,{pkgFile:n}={}){let r=t?t.repository?t.repository:null:await Te(e,{pkgFile:n});if(!r)return null;let i,a=``;if(typeof r==`string`){i=r;try{let e=new e.URL(i);if(e.protocol===`https:`||e.protocol===`http:`)return i}catch{}}else typeof r.url==`string`&&(i=r.url,typeof r.directory==`string`&&(a=r.directory));if(typeof i==`string`&&typeof a==`string`){let e=_.default.fromUrl(i)?.browse(a);return e===void 0?i:e.replace(/\/$/,``).replace(/\/tree\/HEAD$/,``)}return null}var De=Ee,L=o(((e,t)=>{t.exports=Array.isArray})),Oe=o(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),R=o(((e,t)=>{var n=Oe(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),ke=o(((e,t)=>{t.exports=R().Symbol})),Ae=o(((e,t)=>{var n=ke(),r=Object.prototype,i=r.hasOwnProperty,a=r.toString,o=n?n.toStringTag:void 0;function s(e){var t=i.call(e,o),n=e[o];try{e[o]=void 0;var r=!0}catch{}var s=a.call(e);return r&&(t?e[o]=n:delete e[o]),s}t.exports=s})),je=o(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),Me=o(((e,t)=>{var n=ke(),r=Ae(),i=je(),a=`[object Null]`,o=`[object Undefined]`,s=n?n.toStringTag:void 0;function c(e){return e==null?e===void 0?o:a:s&&s in Object(e)?r(e):i(e)}t.exports=c})),Ne=o(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),Pe=o(((e,t)=>{var n=Me(),r=Ne(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),Fe=o(((e,t)=>{var n=L(),r=Pe(),i=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;function o(e,t){if(n(e))return!1;var o=typeof e;return o==`number`||o==`symbol`||o==`boolean`||e==null||r(e)?!0:a.test(e)||!i.test(e)||t!=null&&e in Object(t)}t.exports=o})),Ie=o(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),Le=o(((e,t)=>{var n=Me(),r=Ie(),i=`[object AsyncFunction]`,a=`[object Function]`,o=`[object GeneratorFunction]`,s=`[object Proxy]`;function c(e){if(!r(e))return!1;var t=n(e);return t==a||t==o||t==i||t==s}t.exports=c})),Re=o(((e,t)=>{t.exports=R()[`__core-js_shared__`]})),ze=o(((e,t)=>{var n=Re(),r=function(){var e=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function i(e){return!!r&&r in e}t.exports=i})),Be=o(((e,t)=>{var n=Function.prototype.toString;function r(e){if(e!=null){try{return n.call(e)}catch{}try{return e+``}catch{}}return``}t.exports=r})),Ve=o(((e,t)=>{var n=Le(),r=ze(),i=Ie(),a=Be(),o=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,c=Function.prototype,l=Object.prototype,u=c.toString,d=l.hasOwnProperty,f=RegExp(`^`+u.call(d).replace(o,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function p(e){return!i(e)||r(e)?!1:(n(e)?f:s).test(a(e))}t.exports=p})),He=o(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),Ue=o(((e,t)=>{var n=Ve(),r=He();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),We=o(((e,t)=>{t.exports=Ue()(Object,`create`)})),Ge=o(((e,t)=>{var n=We();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),Ke=o(((e,t)=>{function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=n})),qe=o(((e,t)=>{var n=We(),r=`__lodash_hash_undefined__`,i=Object.prototype.hasOwnProperty;function a(e){var t=this.__data__;if(n){var a=t[e];return a===r?void 0:a}return i.call(t,e)?t[e]:void 0}t.exports=a})),Je=o(((e,t)=>{var n=We(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),Ye=o(((e,t)=>{var n=We(),r=`__lodash_hash_undefined__`;function i(e,t){var i=this.__data__;return this.size+=this.has(e)?0:1,i[e]=n&&t===void 0?r:t,this}t.exports=i})),Xe=o(((e,t)=>{var n=Ge(),r=Ke(),i=qe(),a=Je(),o=Ye();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),Ze=o(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),Qe=o(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),$e=o(((e,t)=>{var n=Qe();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),et=o(((e,t)=>{var n=$e(),r=Array.prototype.splice;function i(e){var t=this.__data__,i=n(t,e);return i<0?!1:(i==t.length-1?t.pop():r.call(t,i,1),--this.size,!0)}t.exports=i})),tt=o(((e,t)=>{var n=$e();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),nt=o(((e,t)=>{var n=$e();function r(e){return n(this.__data__,e)>-1}t.exports=r})),rt=o(((e,t)=>{var n=$e();function r(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}t.exports=r})),it=o(((e,t)=>{var n=Ze(),r=et(),i=tt(),a=nt(),o=rt();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),at=o(((e,t)=>{t.exports=Ue()(R(),`Map`)})),ot=o(((e,t)=>{var n=Xe(),r=it(),i=at();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),st=o(((e,t)=>{function n(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}t.exports=n})),ct=o(((e,t)=>{var n=st();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),lt=o(((e,t)=>{var n=ct();function r(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}t.exports=r})),ut=o(((e,t)=>{var n=ct();function r(e){return n(this,e).get(e)}t.exports=r})),dt=o(((e,t)=>{var n=ct();function r(e){return n(this,e).has(e)}t.exports=r})),ft=o(((e,t)=>{var n=ct();function r(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}t.exports=r})),pt=o(((e,t)=>{var n=ot(),r=lt(),i=ut(),a=dt(),o=ft();function s(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}s.prototype.clear=n,s.prototype.delete=r,s.prototype.get=i,s.prototype.has=a,s.prototype.set=o,t.exports=s})),mt=o(((e,t)=>{var n=pt(),r=`Expected a function`;function i(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(r);var a=function(){var n=arguments,r=t?t.apply(this,n):n[0],i=a.cache;if(i.has(r))return i.get(r);var o=e.apply(this,n);return a.cache=i.set(r,o)||i,o};return a.cache=new(i.Cache||n),a}i.Cache=n,t.exports=i})),ht=o(((e,t)=>{var n=mt(),r=500;function i(e){var t=n(e,function(e){return i.size===r&&i.clear(),e}),i=t.cache;return t}t.exports=i})),gt=o(((e,t)=>{var n=ht(),r=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,i=/\\(\\)?/g;t.exports=n(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(``),e.replace(r,function(e,n,r,a){t.push(r?a.replace(i,`$1`):n||e)}),t})})),_t=o(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}t.exports=n})),vt=o(((e,t)=>{var n=ke(),r=_t(),i=L(),a=Pe(),o=1/0,s=n?n.prototype:void 0,c=s?s.toString:void 0;function l(e){if(typeof e==`string`)return e;if(i(e))return r(e,l)+``;if(a(e))return c?c.call(e):``;var t=e+``;return t==`0`&&1/e==-o?`-0`:t}t.exports=l})),yt=o(((e,t)=>{var n=vt();function r(e){return e==null?``:n(e)}t.exports=r})),bt=o(((e,t)=>{var n=L(),r=Fe(),i=gt(),a=yt();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),xt=o(((e,t)=>{var n=Pe(),r=1/0;function i(e){if(typeof e==`string`||n(e))return e;var t=e+``;return t==`0`&&1/e==-r?`-0`:t}t.exports=i})),St=o(((e,t)=>{var n=bt(),r=xt();function i(e,t){t=n(t,e);for(var i=0,a=t.length;e!=null&&i<a;)e=e[r(t[i++])];return i&&i==a?e:void 0}t.exports=i})),Ct=o(((e,t)=>{var n=St();function r(e){return function(t){return e==null?void 0:n(e,t)}}t.exports=r}));function wt(e,t){return e?e.map(e=>({item:e,key:t(e)})).sort((e,t)=>e.key>t.key?1:e.key<t.key?-1:0).map(({item:e})=>e):[]}var Tt=l(Ct(),1);const Et=[`major`,`minor`,`patch`],Dt=[`release`,`build`],Ot=[...Et,...Dt],kt={major:``,minor:`.`,patch:`.`,release:`-`,build:`+`},At=[`^`,`~`,`.*`,`.x`],jt=RegExp(`^(${[`^`,`~`,`^*`,`*`,`x`,`x.x`,`x.x.x`].join(`|`).replace(/\^/g,`\\^`).replace(/\*/g,`\\*`)})$`),Mt=/^npm:(.*)@(.*)/;function Nt(e){let[t]=b.default.parseRange(e);if(!t)throw Error(x.default.format(`semverutils.parseRange returned null when trying to parse "%s". This is probably a problem with the "semver-utils" dependency. Please report an issue at https://github.com/raineorshine/npm-check-updates/issues.`,e));return Ot.reduce((e,n)=>t[n]?e+1:e,0)}function z(e,t){return(t?Ot.slice(0,Ot.indexOf(t)+1):Ot).filter(n=>t&&Et.includes(t)||e[n]).map(t=>kt[t]+(e[t]||`0`)).join(``)}function Pt(e){let[t]=b.default.parseRange(e);return Ot.slice().reverse().find((0,Tt.default)(t))}function Ft(e,t){let[n]=b.default.parseRange(e);return z(n,t)}function It(e,t){return t===`^`||t===`~`?t+e:Ft(e,`major`)+t}function Lt(e){return jt.test(e)}function Rt(e){return e===`*`||e===`x`}function zt(e,t){if(e===t)return`none`;/^[~^]/.test(t)&&t[0]===e[0]&&(t=t.slice(1),e=e.slice(1));let n=t.split(`.`),r=e.split(`.`),i=n.findIndex((e,t)=>e!==r[t]);return i=i>=0?i:n.length,n[0]===`0`?`majorVersionZero`:i===0?`major`:i===1?`minor`:`patch`}function Bt(e,t,n){let r=N(e,(r,i,a)=>{let o=t[r],s=zt(o,i),c=n.groupFunction?.(r,s,(0,b.parseRange)(o),(0,b.parseRange)(i),(0,b.parse)(e[r]))??s;return c===`none`?a:{...a,[c]:{...a[c],[r]:i}}}),i={patch:F.green(F.bold(`Patch`)+` Backwards-compatible bug fixes`),minor:F.cyan(F.bold(`Minor`)+` Backwards-compatible features`),major:F.red(F.bold(`Major`)+` Potentially breaking API changes`),majorVersionZero:F.magenta(F.bold(`Major version zero`)+` Anything may change`)};return Array.from(new Set([`patch`,`minor`,`major`,`majorVersionZero`,...Object.keys(r).sort()])).filter(e=>e in r).map(e=>({groupName:e,heading:e in i?i[e]:e,packages:r[e]}))}function Vt(e,t){let n=``;/^[~^]/.test(t)&&t[0]===e[0]&&(n=t[0],t=t.slice(1),e=e.slice(1));let r=t.split(`.`),i=e.split(`.`),a=r.findIndex((e,t)=>e!==i[t]);a=a>=0?a:r.length;let o=a===0||r[0]===`0`?`red`:a===1?`cyan`:`green`;try{let n=y.default.valid(e)?e:y.default.minVersion(e)?.version??null,r=y.default.valid(t)?t:y.default.minVersion(t)?.version??null;n&&r&&y.default.gt(n,r)&&(o=`yellow`)}catch{}let s=a>0&&a<r.length?`.`:``;return n+r.slice(0,a).join(`.`)+s+F[o](r.slice(a).join(`.`))}const Ht=e=>{let t=y.default.prerelease(e);return t&&t.slice(0,-1).join(`.`)};function Ut(e,t){let n=Ht(e),r=Ht(t);return typeof n!=`string`||typeof r!=`string`||n===r}function Wt(e,t){return(y.default.valid(e)&&y.default.valid(t)?y.default.gt(e,t):e>t)?1:e===t?0:-1}function Gt(e,t,n){if(!y.default.validRange(t))return null;let r=y.default.minVersion(t);return[...e].sort(Wt).filter(e=>{let t=y.default.parse(e);return t&&(n===`major`||t.major===r?.major)&&(n===`major`||n===`minor`||t.minor===r?.minor)}).at(-1)||null}function Kt(e){return Pt(e)===`release`}const qt=e=>/^[vV]?\d+$/.test(e),Jt=e=>/^[vV]?\d+\.\d+$/.test(e),Yt=e=>e.replace(/^[vV]/,``),Xt=e=>qt(e)?e+`.0.0`:e,Zt=e=>Jt(e)?e+`.0`:e,Qt=e=>Zt(Xt(Yt(e)));function $t(e){return e&&(e[0]===`v`||e[1]===`v`)?`v`:``}const en=(e,t)=>`npm:${e}@${t}`,tn=e=>{let t=e&&e.match&&e.match(Mt);return t&&t.slice(1)},nn=e=>e&&!!e.match(Mt),rn=(e,t)=>{let n=tn(e);return n?en(n[0],t):null},an=e=>{if(!e)return!1;let t=null;try{t=(0,v.default)(e)}catch{}if(!t||!t.branch)return!1;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return!!y.default.validRange(n)},on=e=>{if(!e)return null;let t=(0,v.default)(e);if(!t||!t.branch)return null;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return t&&t.branch&&y.default.validRange(n)?n:null};function sn(e,t,n={}){if(n.wildcard=n.wildcard||`^`,!t)return e;let[r]=b.default.parseRange(t);if(!r)return e;if(n.removeRange)return t;if(Lt(e))return e;let i=wt(b.default.parseRange(e).filter(e=>e.operator!==`||`&&e.operator!==`-`),e=>Nt(z(e))),[a]=i;function o(e){return(Rt(a[e])?a[e]:Et.includes(e)&&a[e]||Dt.includes(e)?r[e]:null)||null}let s=z(N(Ot,e=>({[e]:o(e)}))),c=$t(a.semver)+s,l=Array.from(new Set(i.map(e=>e.operator))),u=l[0]||``,d=At.some(e=>s.includes(e)),f=l[0]===`<`||l[0]===`<=`,p=l[0]===`>`,m=l.length>1;return!d&&(f||m)?It(c,n.wildcard):(p?`>=`:u)+c}const cn=(e,t)=>{let n=$t(e),r=n?n+t:t;return r=qt(e)?r.slice(0,r.length-4):r,r=Jt(e)?r.slice(0,r.length-2):r,r},ln=(e,t)=>{let n=Qt(t),r=(0,v.default)(e);if(!r)return e;let i=decodeURIComponent(r.branch).replace(/^semver:/,``);return e.replace(i,sn(i,cn(i,n)))},un={silent:0,error:1,minimal:2,warn:3,info:4,verbose:5,silly:6},dn=e=>!e.startsWith(`file:`)&&!e.startsWith(`link:`)&&!e.startsWith(`workspace:`)&&!/^[^/:@]+\/\w+/.test(e);function B(e,t,n=null,r=`log`){!e.json&&e.loglevel!==`silent`&&(n==null||un[e.loglevel??`warn`]>=un[n])&&console[r](t)}function fn(e,t){e.loglevel!==`silent`&&console.log(JSON.stringify(t,null,2))}function pn(e,t){console.log(Object.keys(e).map(t=>t+`@`+e[t]).join(t))}function V(e,t,n){B(e,Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}),n)}function mn(e){let t=new h.default({colAligns:[`left`,`right`,`right`,`right`,`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:``}});return t.push(...e),t.toString().split(`
|
|
2
2
|
`).map(e=>e.trimEnd()).join(`
|
|
3
|
-
`)}function
|
|
4
|
-
`+t),
|
|
5
|
-
`):
|
|
6
|
-
`+n.toString())}}async function
|
|
3
|
+
`)}function hn(e){return an(e)?on(e):nn(e)?tn(e)[1]:e}async function gn({from:e,to:t,format:n,ownersChangedDeps:r,pkgFile:i,time:a}){let o=n?.includes(`dep`)&&i?JSON.parse(await g.default.readFile(i,`utf-8`)):null;return mn(await Promise.all(Object.keys(t).sort().map(async s=>{let c=(n?.includes(`installedVersion`)?await we(s,void 0,{pkgFile:i}):e[s])||``,l=s in(o?.devDependencies??{})?`dev`:s in(o?.peerDependencies??{})?`peer`:s in(o?.optionalDependencies??{})?`optional`:``,u=hn(t[s]||``),d=r?s in r?r[s]?`*owner changed*`:``:`*unknown*`:``,f=Vt(hn(c),u),p=n?.includes(`repo`)&&await De(s,void 0,{pkgFile:i})||``,m=n?.includes(`time`)&&a?.[s]?a[s]:``;return[s,...n?.includes(`dep`)?[l?F.gray(l):``]:[],c,`→`,f,d,...[p,m].filter(e=>e)]})))}async function _n({current:e,upgraded:t,ownersChangedDeps:n,pkgFile:r,time:i},a){if(a.format?.includes(`group`)){let o=Bt(t,e,a);for(let{heading:t,packages:s}of o)B(a,`
|
|
4
|
+
`+t),B(a,await gn({from:e,to:s,format:a.format,ownersChangedDeps:n,pkgFile:r,time:i}))}else a.format?.includes(`lines`)?pn(t,`
|
|
5
|
+
`):B(a,await gn({from:e,to:t,format:a.format,ownersChangedDeps:n,pkgFile:r,time:i}))}function vn(e,t){if(t&&Object.keys(t).length>0){let n=new h.default({colAligns:[`left`,`right`,`right`,`right`,`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:``}});n.push(...Object.entries(t).map(([e,t])=>[e,F.yellow(t)])),B(e,`
|
|
6
|
+
`+n.toString())}}async function yn(e,{current:t,latest:n,upgraded:r,total:i,ownersChangedDeps:a,pkgFile:o,time:s,errors:c}){e.format?.includes(`group`)||B(e,``);let l=F.green.bold(`:)`),u=Object.keys(c||{}).length,d=typeof e.target==`string`?e.target:`target`,f=Object.keys(r).length;f===0&&i===0&&u===0?Object.keys(t).length===0?B(e,`No dependencies.`):n&&Object.keys(n).length===0&&Object.values(I(t,(e,t)=>dn(t))).length>0?B(e,`No package versions were returned. This may be a problem with your installed ${e.packageManager}, the npm registry, or your Internet connection. Make sure ${F.cyan(`npx pacote packument ncu-test-v2`)} is working before reporting an issue.`):e.global?B(e,`All global packages are up-to-date ${l}`):B(e,`All dependencies match the ${d} package versions ${l}`):f===0&&i>0?B(e,`No dependencies upgraded ${l}`):f>0&&await _n({current:t,upgraded:r,ownersChangedDeps:a,pkgFile:o,time:s},e),vn(e,c)}function bn(e,t){B(e,`
|
|
7
7
|
Ignored incompatible updates (peer dependencies):
|
|
8
|
-
`),
|
|
8
|
+
`),B(e,mn(Object.entries(t).map(([e,{from:t,to:n,reason:r}])=>{let i=`reason: `+Object.entries(r).map(([e,t])=>e+` requires `+t).join(`, `);return[e,t,`→`,Vt(t,n),i]})))}function xn(e,t){B(e,`
|
|
9
9
|
Ignored incompatible updates (engines node):
|
|
10
|
-
`),
|
|
10
|
+
`),B(e,mn(Object.entries(t).map(([e,{from:t,to:n,enginesNode:r}])=>[e,t,`→`,Vt(t,n),`reason: requires node ${r}`])))}function Sn(e,t=10){return typeof e.timestamp==`number`?e.timestamp+60*1e3*t<Date.now():!1}const Cn=`.ncu-cache.json`,wn=`~/${Cn}`,Tn=u.default.join(m.default.homedir(),Cn);function En(e){return e===wn?Tn:e}async function Dn(e){e.cacheFile&&await p.default.promises.rm(En(e.cacheFile),{force:!0})}async function On(e){if(!e.cache||!e.cacheFile)return;let t=En(e.cacheFile),n={},r=new Set;try{n=JSON.parse(await p.default.promises.readFile(t,`utf-8`)),Sn(n,e.cacheExpiration)&&(p.default.promises.rm(t,{force:!0}),n={})}catch{}return typeof n.timestamp!=`number`&&(n.timestamp=Date.now()),n.packages||={},n.peers||={},{get:(e,t)=>{if(!n.packages)return;let i=`${e}___${t}`,a=n.packages[i];return a&&!i.includes(a)&&r.add(e),a},set:(e,t,r)=>{if(!n.packages)return;let i=`${e}___${t}`;n.packages[i]=r},getPeers:(e,t)=>{if(!n.peers)return;let i=`${e}___${t}`,a=n.peers[i];return a&&r.add(e),a},setPeers:(e,t,r)=>{let i=`${e}___${t}`;n.peers&&(n.peers[i]=r)},save:async()=>{await p.default.promises.writeFile(t,JSON.stringify(n))},log:t=>{let n=r.size;n!==0&&(B(e,`\nUsing ${n} cached package ${t?`peer`:`version`}${n>1?`s`:``}`,`warn`),B(e,r,`verbose`),r.clear())}}}var kn=(e,t=92)=>{let n=e.split(`
|
|
11
11
|
`),r=[];return n.forEach(e=>{let n=0;if(e.length===0){r.push(``);return}for(;n<e.length;){let i=e.slice(n,n+t+1),a=i.trimEnd();if(a.length<=t){r.push(a);break}let o=i.split(``).reverse().join(``).match(/[ -][^\W]/)?.index||0,s=i.slice(0,i.length-o);if(s.length===0)break;r.push(s.trimEnd()),n+=s.length}n=0}),r.join(`
|
|
12
|
-
`).trim()};
|
|
13
|
-
<tr>`+e.map(e=>`<td>${e}</td>`).join(``)+`</tr
|
|
12
|
+
`).trim()};const An=e=>e.map(([e,t])=>[e,kn(t)]),jn=e=>`
|
|
13
|
+
<tr>`+e.map(e=>`<td>${e}</td>`).join(``)+`</tr>`;var H=({colAligns:e,markdown:t,rows:n})=>{if(t)return`<table>${n.map(jn).join(``)}\n</table>`;{let r=new h.default({...e?{colAligns:e}:null});return r.push(...t?n:An(n)),r.toString()}};const Mn=[`latest`,`newest`,`greatest`,`minor`,`patch`,`semver`],U=(e,t)=>e.split(`
|
|
14
14
|
`).map(e=>`${``.padStart(t,` `)}${e}`).join(`
|
|
15
|
-
`),
|
|
15
|
+
`),W=(e,{markdown:t}={})=>`${t?"```js\n":``}${U(e,t?0:4)}${t?"\n```":``}`,Nn=e=>e.replace(/`/g,``),Pn=(e,{markdown:t}={})=>{let n=``;if(e.cli!==!1&&(n=`Usage:
|
|
16
16
|
|
|
17
|
-
ncu --${e.long}${e.arg?` [${e.arg}]`:``}${e.long===`doctor`?` -u`:``}\n`),e.type===`boolean`&&(n+=` ncu --no-${e.long}\n`),e.short&&(n+=` ncu -${e.short}${e.arg?` [${e.arg}]`:``}${e.long===`doctor`?`u`:``}\n`),e.default!==void 0&&!(Array.isArray(e.default)&&e.default.length===0)&&(n+=`\nDefault: ${e.default}\n`),e.help){let r=typeof e.help==`function`?t?e.help({markdown:t}):
|
|
17
|
+
ncu --${e.long}${e.arg?` [${e.arg}]`:``}${e.long===`doctor`?` -u`:``}\n`),e.type===`boolean`&&(n+=` ncu --no-${e.long}\n`),e.short&&(n+=` ncu -${e.short}${e.arg?` [${e.arg}]`:``}${e.long===`doctor`?`u`:``}\n`),e.default!==void 0&&!(Array.isArray(e.default)&&e.default.length===0)&&(n+=`\nDefault: ${e.default}\n`),e.help){let r=typeof e.help==`function`?t?e.help({markdown:t}):Nn(e.help({markdown:t})):e.help;n+=`\n${r.trim()}\n\n`}else if(e.description){let r=t?e.description:Nn(e.description);n+=`\n${r.replace(/`/g,``)}\n`}return n.trim()},Fn=[{long:`cache`,description:`Cache versions to a local cache file. Default \`--cacheFile\` is ${wn} and default \`--cacheExpiration\` is 10 minutes.`,type:`boolean`},{long:`cacheClear`,description:"Clear the default cache, or the cache file specified by `--cacheFile`.",type:`boolean`},{long:`cacheExpiration`,arg:`min`,description:"Cache expiration in minutes. Only works with `--cache`.",parse:e=>parseInt(e,10),default:10,type:`number`},{long:`cacheFile`,arg:`path`,description:"Filepath for the cache file. Only works with `--cache`.",parse:e=>u.default.isAbsolute(e)?e:u.default.join(process.cwd(),e),default:wn,type:`string`},{long:`color`,description:`Force color in terminal.`,type:`boolean`},{long:`concurrency`,arg:`n`,description:`Max number of concurrent HTTP requests to registry.`,parse:e=>parseInt(e,10),default:8,type:`number`},{long:`configFileName`,arg:`s`,description:`Config file name. (default: .ncurc.{json,yml,js,cjs})`,type:`string`},{long:`configFilePath`,arg:`path`,description:"Directory of .ncurc config file. (default: directory of `packageFile`)",type:`string`},{long:`cwd`,arg:`path`,description:`Working directory in which npm will be executed.`,type:`string`},{long:`deep`,description:"Run recursively in current working directory. Alias of (`--packageFile '**/package.json'`).",type:`boolean`},{long:`ignore`,arg:`dirs`,description:`Ignore directories containing package.json files (comma-delimited).`,type:`string | readonly string[]`,parse:e=>e&&typeof e==`string`?e.split(`,`):e},{long:`dep`,arg:`value`,description:`Check one or more sections of dependencies only: dev, optional, peer, prod, or packageManager (comma-delimited).`,default:[`prod`,`dev`,`optional`,`packageManager`],parse:e=>e&&typeof e==`string`?e.split(`,`):e,type:`string | readonly string[]`},{long:`deprecated`,default:!0,description:"Include deprecated packages. Use `--no-deprecated` to exclude deprecated packages (20–25% slower).",type:`boolean`},{long:`doctor`,short:`d`,description:"Iteratively installs upgrades and runs tests to identify breaking upgrades. Requires `-u` to execute.",type:`boolean`,help:({markdown:e})=>`Iteratively installs upgrades and runs your project's tests to identify breaking upgrades. Reverts broken upgrades and updates package.json with working upgrades.
|
|
18
18
|
|
|
19
|
-
${
|
|
19
|
+
${F.yellow("Requires `-u` to execute")} (modifies your package file, lock file, and node_modules)
|
|
20
20
|
|
|
21
21
|
To be more precise:
|
|
22
22
|
|
|
@@ -30,7 +30,7 @@ To be more precise:
|
|
|
30
30
|
|
|
31
31
|
Additional options:
|
|
32
32
|
|
|
33
|
-
${
|
|
33
|
+
${H({markdown:e,rows:[[F.cyan(`--doctorInstall`),"specify a custom install script (default: `npm install` or `yarn`)"],[F.cyan(`--doctorTest`),"specify a custom test script (default: `npm test`)"]]})}
|
|
34
34
|
|
|
35
35
|
Example:
|
|
36
36
|
|
|
@@ -60,34 +60,7 @@ Example:
|
|
|
60
60
|
npm run test
|
|
61
61
|
✓ react-dnd 10.0.0 → 11.1.3
|
|
62
62
|
Saving partially upgraded package.json
|
|
63
|
-
`,
|
|
64
|
-
|
|
65
|
-
${t(`filterResults`)} runs _after_ new versions are fetched, in contrast to ${t(`filter`)}, ${t(`reject`)}, ${t(`filterVersion`)}, and ${t(`rejectVersion`)}, which run _before_. This allows you to exclude upgrades with ${t(`filterResults`)} based on how the version has changed (e.g. a major version change).
|
|
66
|
-
|
|
67
|
-
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
68
|
-
|
|
69
|
-
${K(`${I.gray(`/** Exclude major version updates. Note this could also be achieved with --target semver.
|
|
70
|
-
@param {string} packageName The name of the dependency.
|
|
71
|
-
@param {string} current Current version declaration (may be a range).
|
|
72
|
-
@param {SemVer[]} currentVersionSemver Current version declaration in semantic versioning format (may be a range).
|
|
73
|
-
@param {string} upgraded Upgraded version.
|
|
74
|
-
@param {SemVer} upgradedVersionSemver Upgraded version in semantic versioning format.
|
|
75
|
-
@returns {boolean} Return true if the upgrade should be kept; otherwise, it will be ignored.
|
|
76
|
-
*/`)}
|
|
77
|
-
${I.green(`filterResults`)}: (packageName, { current, currentVersionSemver, upgraded, upgradedVersionSemver }) ${I.cyan(`=>`)} {
|
|
78
|
-
${I.cyan(`const`)} currentMajor ${I.red(`=`)} parseInt(currentVersionSemver[${I.cyan(`0`)}]?.major, ${I.cyan(`10`)})
|
|
79
|
-
${I.cyan(`const`)} upgradedMajor ${I.red(`=`)} parseInt(upgradedVersionSemver?.major, ${I.cyan(`10`)})
|
|
80
|
-
${I.red(`if`)} (currentMajor ${I.red(`&&`)} upgradedMajor) {
|
|
81
|
-
${I.red(`return`)} currentMajor ${I.red(`>=`)} upgradedMajor
|
|
82
|
-
}
|
|
83
|
-
${I.red(`return`)} ${I.cyan(`true`)}
|
|
84
|
-
}`,{markdown:e})}
|
|
85
|
-
|
|
86
|
-
For the SemVer type definition, see: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring
|
|
87
|
-
|
|
88
|
-
`},Un=({markdown:e})=>`Modify the output formatting or show additional information. Specify one or more comma-delimited values.\n\n${G(W({colAligns:[`right`,`left`],markdown:e,rows:[[`dep`,`Prints the dependency type (dev, peer, optional) of each package.`],[`group`,`Groups packages by major, minor, patch, and major version zero updates.`],[`installedVersion`,`Prints the exact current version number instead of a range.`],[`lines`,`Prints name@version on separate lines. Useful for piping to npm install.`],[`ownerChanged`,`Shows if the package owner has changed.`],[`repo`,`Infers and displays links to the package's source code repository. Requires packages to be installed.`],[`time`,`Shows the publish time of each upgrade.`]]}),e?0:4)}
|
|
89
|
-
`,Wn=({markdown:e})=>`Control the auto-install behavior.\n\n${G(W({colAligns:[`right`,`left`],markdown:e,rows:[[`always`,`Runs your package manager's install command automatically after upgrading.`],[`never`,`Does not install and does not prompt.`],[`prompt`,`Shows a message after upgrading that recommends an install, but does not install. In interactive mode, prompts for install. (default)`]]}),e?0:4)}
|
|
90
|
-
`,Gn=({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. Only included packages will be checked with ${t(`--peer`)}.
|
|
63
|
+
`},{long:`doctorInstall`,arg:`command`,description:"Specifies the install script to use in doctor mode. (default: `npm install` or the equivalent for your package manager)",type:`string`},{long:`doctorTest`,arg:`command`,description:"Specifies the test script to use in doctor mode. (default: `npm test`)",type:`string`},{long:`enginesNode`,description:`Include only packages that satisfy engines.node as specified in the package file.`,type:`boolean`},{long:`errorLevel`,short:`e`,arg:`n`,description:`Set the error level. 1: exits with error code 0 if no errors occur. 2: exits with error code 0 if no packages need updating (useful for continuous integration).`,parse:e=>parseInt(e,10),default:1,type:`number`},{long:`filter`,short:`f`,arg:`p`,description:`Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. Only included packages will be checked with ${t(`--peer`)}.
|
|
91
64
|
|
|
92
65
|
${t(`--filter`)} runs _before_ new versions are fetched, in contrast to ${t(`--filterResults`)} which runs _after_.
|
|
93
66
|
|
|
@@ -95,87 +68,71 @@ You can also specify a custom function in your .ncurc.js file, or when importing
|
|
|
95
68
|
|
|
96
69
|
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
97
70
|
|
|
98
|
-
${
|
|
99
|
-
@param name The name of the dependency.
|
|
100
|
-
@param semver A parsed Semver array of the current version.
|
|
101
|
-
(See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)
|
|
102
|
-
@returns True if the package should be included, false if it should be excluded.
|
|
103
|
-
*/`)}
|
|
104
|
-
${I.green(`filter`)}: (name, semver) ${I.cyan(`=>`)} {
|
|
105
|
-
${I.red(`if`)} (name.startsWith(${I.yellow(`'@myorg/'`)})) {
|
|
106
|
-
${I.red(`return`)} ${I.cyan(`false`)}
|
|
107
|
-
}
|
|
108
|
-
${I.red(`return`)} ${I.cyan(`true`)}
|
|
109
|
-
}`,{markdown:e})}
|
|
110
|
-
|
|
111
|
-
`},Kn=({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`Include only versions matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.
|
|
112
|
-
|
|
113
|
-
${t(`--filterVersion`)} runs _before_ new versions are fetched, in contrast to ${t(`--filterResults`)} which runs _after_.
|
|
114
|
-
|
|
115
|
-
You can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.
|
|
116
|
-
|
|
117
|
-
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions. This function is an alias for the ${t(`filter`)} option function.
|
|
118
|
-
|
|
119
|
-
${K(`${I.gray(`/**
|
|
71
|
+
${W(`${F.gray(`/**
|
|
120
72
|
@param name The name of the dependency.
|
|
121
73
|
@param semver A parsed Semver array of the current version.
|
|
122
74
|
(See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)
|
|
123
75
|
@returns True if the package should be included, false if it should be excluded.
|
|
124
76
|
*/`)}
|
|
125
|
-
${
|
|
126
|
-
${
|
|
127
|
-
${
|
|
77
|
+
${F.green(`filter`)}: (name, semver) ${F.cyan(`=>`)} {
|
|
78
|
+
${F.red(`if`)} (name.startsWith(${F.yellow(`'@myorg/'`)})) {
|
|
79
|
+
${F.red(`return`)} ${F.cyan(`false`)}
|
|
128
80
|
}
|
|
129
|
-
${
|
|
81
|
+
${F.red(`return`)} ${F.cyan(`true`)}
|
|
130
82
|
}`,{markdown:e})}
|
|
131
83
|
|
|
132
|
-
`},
|
|
133
|
-
|
|
134
|
-
${t(`--reject`)} runs _before_ new versions are fetched, in contrast to ${t(`--filterResults`)} which runs _after_.
|
|
84
|
+
`}},{long:`filterResults`,arg:`fn`,cli:!1,description:`Filters results based on a user provided predicate function after fetching new versions.`,type:`FilterResultsFunction`,help:({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`Filters results based on a user provided predicate function after fetching new versions.
|
|
135
85
|
|
|
136
|
-
|
|
86
|
+
${t(`filterResults`)} runs _after_ new versions are fetched, in contrast to ${t(`filter`)}, ${t(`reject`)}, ${t(`filterVersion`)}, and ${t(`rejectVersion`)}, which run _before_. This allows you to exclude upgrades with ${t(`filterResults`)} based on how the version has changed (e.g. a major version change).
|
|
137
87
|
|
|
138
88
|
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
139
89
|
|
|
140
|
-
${
|
|
141
|
-
@param
|
|
142
|
-
@param
|
|
143
|
-
(
|
|
144
|
-
@
|
|
90
|
+
${W(`${F.gray(`/** Exclude major version updates. Note this could also be achieved with --target semver.
|
|
91
|
+
@param {string} packageName The name of the dependency.
|
|
92
|
+
@param {string} current Current version declaration (may be a range).
|
|
93
|
+
@param {SemVer[]} currentVersionSemver Current version declaration in semantic versioning format (may be a range).
|
|
94
|
+
@param {string} upgraded Upgraded version.
|
|
95
|
+
@param {SemVer} upgradedVersionSemver Upgraded version in semantic versioning format.
|
|
96
|
+
@returns {boolean} Return true if the upgrade should be kept; otherwise, it will be ignored.
|
|
145
97
|
*/`)}
|
|
146
|
-
${
|
|
147
|
-
${
|
|
148
|
-
|
|
98
|
+
${F.green(`filterResults`)}: (packageName, { current, currentVersionSemver, upgraded, upgradedVersionSemver }) ${F.cyan(`=>`)} {
|
|
99
|
+
${F.cyan(`const`)} currentMajor ${F.red(`=`)} parseInt(currentVersionSemver[${F.cyan(`0`)}]?.major, ${F.cyan(`10`)})
|
|
100
|
+
${F.cyan(`const`)} upgradedMajor ${F.red(`=`)} parseInt(upgradedVersionSemver?.major, ${F.cyan(`10`)})
|
|
101
|
+
${F.red(`if`)} (currentMajor ${F.red(`&&`)} upgradedMajor) {
|
|
102
|
+
${F.red(`return`)} currentMajor ${F.red(`>=`)} upgradedMajor
|
|
149
103
|
}
|
|
150
|
-
${
|
|
104
|
+
${F.red(`return`)} ${F.cyan(`true`)}
|
|
151
105
|
}`,{markdown:e})}
|
|
152
106
|
|
|
153
|
-
|
|
107
|
+
For the SemVer type definition, see: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring
|
|
154
108
|
|
|
155
|
-
|
|
109
|
+
`}},{long:`filterVersion`,arg:`p`,description:`Filter on package version using comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`Include only versions matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.
|
|
110
|
+
|
|
111
|
+
${t(`--filterVersion`)} runs _before_ new versions are fetched, in contrast to ${t(`--filterResults`)} which runs _after_.
|
|
156
112
|
|
|
157
113
|
You can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.
|
|
158
114
|
|
|
159
|
-
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions. This function is an alias for the
|
|
115
|
+
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions. This function is an alias for the ${t(`filter`)} option function.
|
|
160
116
|
|
|
161
|
-
${
|
|
117
|
+
${W(`${F.gray(`/**
|
|
162
118
|
@param name The name of the dependency.
|
|
163
119
|
@param semver A parsed Semver array of the current version.
|
|
164
120
|
(See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)
|
|
165
|
-
@returns True if the package should be
|
|
121
|
+
@returns True if the package should be included, false if it should be excluded.
|
|
166
122
|
*/`)}
|
|
167
|
-
${
|
|
168
|
-
${
|
|
169
|
-
${
|
|
123
|
+
${F.green(`filterVersion`)}: (name, semver) ${F.cyan(`=>`)} {
|
|
124
|
+
${F.red(`if`)} (name.startsWith(${F.yellow(`'@myorg/'`)}) ${F.red(`&&`)} parseInt(semver[0]?.major) ${F.cyan(`>`)} ${F.cyan(`5`)}) {
|
|
125
|
+
${F.red(`return`)} ${F.cyan(`false`)}
|
|
170
126
|
}
|
|
171
|
-
${
|
|
127
|
+
${F.red(`return`)} ${F.cyan(`true`)}
|
|
172
128
|
}`,{markdown:e})}
|
|
173
129
|
|
|
174
|
-
`},
|
|
130
|
+
`}},{long:`format`,arg:`value`,description:`Modify the output formatting or show additional information. Specify one or more comma-delimited values: dep, group, ownerChanged, repo, time, lines, installedVersion.`,parse:e=>typeof e==`string`?e.split(`,`):e,default:[],type:`readonly string[]`,choices:[`dep`,`group`,`ownerChanged`,`repo`,`time`,`lines`,`installedVersion`],help:({markdown:e})=>`Modify the output formatting or show additional information. Specify one or more comma-delimited values.\n\n${U(H({colAligns:[`right`,`left`],markdown:e,rows:[[`dep`,`Prints the dependency type (dev, peer, optional) of each package.`],[`group`,`Groups packages by major, minor, patch, and major version zero updates.`],[`installedVersion`,`Prints the exact current version number instead of a range.`],[`lines`,`Prints name@version on separate lines. Useful for piping to npm install.`],[`ownerChanged`,`Shows if the package owner has changed.`],[`repo`,`Infers and displays links to the package's source code repository. Requires packages to be installed.`],[`time`,`Shows the publish time of each upgrade.`]]}),e?0:4)}
|
|
131
|
+
`},{long:`global`,short:`g`,description:`Check global packages instead of in the current project.`,type:`boolean`},{long:`groupFunction`,arg:`fn`,cli:!1,description:"Customize how packages are divided into groups when using `--format group`.",type:`GroupFunction`,help:({markdown:e})=>`Customize how packages are divided into groups when using \`--format group\`.
|
|
175
132
|
|
|
176
133
|
Only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
177
134
|
|
|
178
|
-
${
|
|
135
|
+
${W(`${F.gray(`/**
|
|
179
136
|
@param name The name of the dependency.
|
|
180
137
|
@param defaultGroup The predefined group name which will be used by default.
|
|
181
138
|
@param currentSpec The current version range in your package.json.
|
|
@@ -183,52 +140,65 @@ ${K(`${I.gray(`/**
|
|
|
183
140
|
@param upgradedVersion The upgraded version number returned by the registry.
|
|
184
141
|
@returns A predefined group name ('major' | 'minor' | 'patch' | 'majorVersionZero' | 'none') or a custom string to create your own group.
|
|
185
142
|
*/`)}
|
|
186
|
-
${
|
|
187
|
-
${
|
|
188
|
-
${
|
|
143
|
+
${F.green(`groupFunction`)}: (name, defaultGroup, currentSpec, upgradedSpec, upgradedVersion) ${F.cyan(`=>`)} {
|
|
144
|
+
${F.red(`if`)} (name ${F.red(`===`)} ${F.yellow(`'typescript'`)} ${F.red(`&&`)} defaultGroup ${F.red(`===`)} ${F.yellow(`'minor'`)}) {
|
|
145
|
+
${F.red(`return`)} ${F.yellow(`'major'`)}
|
|
189
146
|
}
|
|
190
|
-
${
|
|
191
|
-
${
|
|
147
|
+
${F.red(`if`)} (name.startsWith(${F.yellow(`'@myorg/'`)})) {
|
|
148
|
+
${F.red(`return`)} ${F.yellow(`'My Org'`)}
|
|
192
149
|
}
|
|
193
|
-
${
|
|
150
|
+
${F.red(`return`)} defaultGroup
|
|
194
151
|
}`,{markdown:e})}
|
|
195
152
|
|
|
196
|
-
`,
|
|
153
|
+
`},{long:`install`,arg:`value`,description:`Control the auto-install behavior: always, never, prompt.`,help:({markdown:e})=>`Control the auto-install behavior.\n\n${U(H({colAligns:[`right`,`left`],markdown:e,rows:[[`always`,`Runs your package manager's install command automatically after upgrading.`],[`never`,`Does not install and does not prompt.`],[`prompt`,`Shows a message after upgrading that recommends an install, but does not install. In interactive mode, prompts for install. (default)`]]}),e?0:4)}
|
|
154
|
+
`,default:`prompt`,choices:[`always`,`never`,`prompt`],type:`'always' | 'never' | 'prompt'`},{long:`interactive`,short:`i`,description:"Enable interactive prompts for each dependency; implies `-u` unless one of the json options are set.",type:`boolean`},{long:`jsonAll`,short:`j`,description:`Output new package file instead of human-readable message.`,type:`boolean`},{long:`jsonDeps`,description:"Like `jsonAll` but only lists `dependencies`, `devDependencies`, `optionalDependencies`, etc of the new package data.",type:`boolean`},{long:`jsonUpgraded`,description:`Output upgraded dependencies in json.`,type:`boolean`},{long:`loglevel`,short:`l`,arg:`n`,description:`Amount to log: silent, error, minimal, warn, info, verbose, silly.`,default:`warn`,type:`string`},{long:`mergeConfig`,description:"Merges nested configs with the root config file for `--deep` or `--packageFile` options. (default: false)",type:`boolean`},{long:`minimal`,short:`m`,description:`Do not upgrade newer versions that are already satisfied by the version range according to semver.`,type:`boolean`},{long:`packageData`,arg:`value`,description:`Package file data (you can also use stdin).`,type:`string | PackageFile`},{long:`packageFile`,arg:`path|glob`,description:`Package file(s) location. (default: ./package.json)`,type:`string`},{long:`packageManager`,short:`p`,arg:`s`,description:`npm, yarn, pnpm, deno, bun, staticRegistry (default: npm).`,help:({markdown:e})=>`Specifies the package manager to use when looking up versions.\n\n${U(H({colAligns:[`right`,`left`],markdown:e,rows:[[`npm`,`System-installed npm. Default.`],[`yarn`,`System-installed yarn. Automatically used if yarn.lock is present.`],[`pnpm`,`System-installed pnpm. Automatically used if pnpm-lock.yaml is present.`],[`bun`,`System-installed bun. Automatically used if bun.lock or bun.lockb is present.`]]}),e?0:4)}
|
|
155
|
+
`,type:`'npm' | 'yarn' | 'pnpm' | 'deno' | 'bun' | 'staticRegistry'`},{long:`peer`,description:`Check peer dependencies of installed packages and filter updates to compatible versions.`,type:`boolean`,help:({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`Check peer dependencies of installed packages and filter updates to compatible versions.
|
|
197
156
|
|
|
198
|
-
${
|
|
157
|
+
${F.bold(`Example`)}:
|
|
199
158
|
|
|
200
|
-
|
|
159
|
+
The following example demonstrates how \`--peer\` works, and how it uses peer dependencies from upgraded modules.
|
|
201
160
|
|
|
202
|
-
${
|
|
161
|
+
The package ${F.bold(`ncu-test-peer-update`)} has two versions published:
|
|
203
162
|
|
|
204
|
-
|
|
163
|
+
- 1.0.0 has peer dependency ${t(`"ncu-test-return-version": "1.0.x"`)}
|
|
164
|
+
- 1.1.0 has peer dependency ${t(`"ncu-test-return-version": "1.1.x"`)}
|
|
205
165
|
|
|
206
|
-
|
|
166
|
+
Our test app has the following dependencies:
|
|
207
167
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
168
|
+
"ncu-test-peer-update": "1.0.0",
|
|
169
|
+
"ncu-test-return-version": "1.0.0"
|
|
170
|
+
|
|
171
|
+
The latest versions of these packages are:
|
|
172
|
+
|
|
173
|
+
"ncu-test-peer-update": "1.1.0",
|
|
174
|
+
"ncu-test-return-version": "2.0.0"
|
|
175
|
+
|
|
176
|
+
${F.bold("With `--peer`")}:
|
|
177
|
+
|
|
178
|
+
ncu upgrades packages to the highest version that still adheres to the peer dependency constraints:
|
|
179
|
+
|
|
180
|
+
ncu-test-peer-update 1.0.0 → 1.${F.cyan(`1.0`)}
|
|
181
|
+
ncu-test-return-version 1.0.0 → 1.${F.cyan(`1.0`)}
|
|
182
|
+
|
|
183
|
+
${F.bold("Without `--peer`")}:
|
|
184
|
+
|
|
185
|
+
As a comparison: without using the \`--peer\` option, ncu will suggest the latest versions, ignoring peer dependencies:
|
|
186
|
+
|
|
187
|
+
ncu-test-peer-update 1.0.0 → 1.${F.cyan(`1.0`)}
|
|
188
|
+
ncu-test-return-version 1.0.0 → ${F.red(`2.0.0`)}
|
|
189
|
+
`}},{long:`pre`,arg:`n`,description:"Include prerelease versions, e.g. -alpha.0, -beta.5, -rc.2. Automatically set to 1 when `--target` is newest or greatest, or when the current version is a prerelease. (default: 0)",parse:e=>!!parseInt(e,10),type:`number`},{long:`prefix`,arg:`path`,description:`Current working directory of npm.`,type:`string`},{long:`registry`,short:`r`,arg:`uri`,description:`Specify the registry to use when looking up package versions.`,type:`string`},{long:`registryType`,arg:`type`,description:`Specify whether --registry refers to a full npm registry or a simple JSON file or url: npm, json. (default: npm)`,help:({markdown:e})=>`${`Specify whether ${(t=>e?`\`${t}\``:t)(`--registry`)} refers to a full npm registry or a simple JSON file.`}\n\n${U(H({colAligns:[`right`,`left`],markdown:e,rows:[[`npm`,`Default npm registry`],[`json`,`Checks versions from a file or url to a simple JSON registry. Must include the ${F.cyan("`--registry`")} option.
|
|
220
190
|
|
|
221
191
|
Example:
|
|
222
192
|
|
|
223
|
-
${
|
|
224
|
-
${
|
|
193
|
+
${F.gray(`// local file`)}
|
|
194
|
+
${F.cyan(`$`)} ncu --registryType json --registry ./registry.json
|
|
225
195
|
|
|
226
|
-
${
|
|
227
|
-
${
|
|
196
|
+
${F.gray(`// url`)}
|
|
197
|
+
${F.cyan(`$`)} ncu --registryType json --registry https://api.mydomain/registry.json
|
|
228
198
|
|
|
229
|
-
${
|
|
230
|
-
${
|
|
231
|
-
${
|
|
199
|
+
${F.gray(`// you can omit --registryType when the registry ends in .json`)}
|
|
200
|
+
${F.cyan(`$`)} ncu --registry ./registry.json
|
|
201
|
+
${F.cyan(`$`)} ncu --registry https://api.mydomain/registry.json
|
|
232
202
|
|
|
233
203
|
registry.json:
|
|
234
204
|
|
|
@@ -238,45 +208,75 @@ registry.json:
|
|
|
238
208
|
}
|
|
239
209
|
|
|
240
210
|
`]]}),e?0:4)}
|
|
241
|
-
|
|
211
|
+
`,type:`'npm' | 'json'`},{long:`reject`,short:`x`,arg:`p`,description:`Exclude packages matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`The inverse of ${t(`--filter`)}. Exclude package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function. This will also exclude them from the ${t(`--peer`)} check.
|
|
242
212
|
|
|
243
|
-
${
|
|
213
|
+
${t(`--reject`)} runs _before_ new versions are fetched, in contrast to ${t(`--filterResults`)} which runs _after_.
|
|
244
214
|
|
|
245
|
-
|
|
215
|
+
You can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.
|
|
246
216
|
|
|
247
|
-
The
|
|
217
|
+
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
248
218
|
|
|
249
|
-
|
|
250
|
-
|
|
219
|
+
${W(`${F.gray(`/**
|
|
220
|
+
@param name The name of the dependency.
|
|
221
|
+
@param semver A parsed Semver array of the current version.
|
|
222
|
+
(See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)
|
|
223
|
+
@returns True if the package should be excluded, false if it should be included.
|
|
224
|
+
*/`)}
|
|
225
|
+
${F.green(`reject`)}: (name, semver) ${F.cyan(`=>`)} {
|
|
226
|
+
${F.red(`if`)} (name.startsWith(${F.yellow(`'@myorg/'`)})) {
|
|
227
|
+
${F.red(`return`)} ${F.cyan(`true`)}
|
|
228
|
+
}
|
|
229
|
+
${F.red(`return`)} ${F.cyan(`false`)}
|
|
230
|
+
}`,{markdown:e})}
|
|
251
231
|
|
|
252
|
-
|
|
232
|
+
`}},{long:`rejectVersion`,arg:`p`,description:`Exclude package.json versions using comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:({markdown:e})=>{let t=t=>e?`\`${t}\``:t;return`The inverse of ${t(`--filterVersion`)}. Exclude versions matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.
|
|
253
233
|
|
|
254
|
-
|
|
255
|
-
"ncu-test-return-version": "1.0.0"
|
|
234
|
+
${t(`--rejectVersion`)} runs _before_ new versions are fetched, in contrast to ${t(`--filterResults`)} which runs _after_.
|
|
256
235
|
|
|
257
|
-
|
|
236
|
+
You can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.
|
|
258
237
|
|
|
259
|
-
|
|
260
|
-
"ncu-test-return-version": "2.0.0"
|
|
238
|
+
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions. This function is an alias for the reject option function.
|
|
261
239
|
|
|
262
|
-
${
|
|
240
|
+
${W(`${F.gray(`/**
|
|
241
|
+
@param name The name of the dependency.
|
|
242
|
+
@param semver A parsed Semver array of the current version.
|
|
243
|
+
(See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)
|
|
244
|
+
@returns True if the package should be excluded, false if it should be included.
|
|
245
|
+
*/`)}
|
|
246
|
+
${F.green(`rejectVersion`)}: (name, semver) ${F.cyan(`=>`)} {
|
|
247
|
+
${F.red(`if`)} (name.startsWith(${F.yellow(`'@myorg/'`)}) ${F.red(`&&`)} parseInt(semver[0]?.major) ${F.cyan(`>`)} ${F.cyan(`5`)}) {
|
|
248
|
+
${F.red(`return`)} ${F.cyan(`true`)}
|
|
249
|
+
}
|
|
250
|
+
${F.red(`return`)} ${F.cyan(`false`)}
|
|
251
|
+
}`,{markdown:e})}
|
|
263
252
|
|
|
264
|
-
|
|
253
|
+
`}},{long:`removeRange`,description:`Remove version ranges from the final package version.`,type:`boolean`},{long:`root`,default:!0,description:"Runs updates on the root project in addition to specified workspaces. Only allowed with `--workspace` or `--workspaces`.",type:`boolean`},{long:`retry`,arg:`n`,description:`Number of times to retry failed requests for package info.`,parse:e=>parseInt(e,10),default:3,type:`number`},{long:`silent`,short:`s`,description:"Don't output anything. Alias for `--loglevel` silent.",type:`boolean`},{long:`stdin`,description:`Read package.json from stdin.`,type:`string`},{long:`target`,short:`t`,arg:`value`,description:"Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, `@[tag]`, or [function]. (default: latest)",help:({markdown:e})=>`Determines the version to upgrade to. (default: "latest")
|
|
254
|
+
|
|
255
|
+
${U(H({colAligns:[`right`,`left`],markdown:e,rows:[[`greatest`,`Upgrade to the highest version number published, regardless of release date or tag. Includes prereleases.`],[`latest`,`Upgrade to whatever the package's "latest" git tag points to. Excludes prereleases unless --pre is specified.`],[`minor`,`Upgrade to the highest minor version without bumping the major version.`],[`newest`,`Upgrade to the version with the most recent publish date, even if there are other version numbers that are higher. Includes prereleases.`],[`patch`,`Upgrade to the highest patch version without bumping the minor or major versions.`],[`semver`,`Upgrade to the highest version within the semver range specified in your package.json.`],[`@[tag]`,`Upgrade to the version published to a specific tag, e.g. 'next' or 'beta'.`]]}),e?0:4)}
|
|
265
256
|
|
|
266
|
-
|
|
267
|
-
ncu-test-return-version 1.0.0 → 1.${I.cyan(`1.0`)}
|
|
257
|
+
e.g.
|
|
268
258
|
|
|
269
|
-
${
|
|
259
|
+
${W(`ncu --target semver`)}
|
|
270
260
|
|
|
271
|
-
|
|
261
|
+
You can also specify a custom function in your .ncurc.js file, or when importing npm-check-updates as a module.
|
|
272
262
|
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
263
|
+
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
264
|
+
|
|
265
|
+
${W(`${F.gray(`/** Upgrade major version zero to the next minor version, and everything else to latest.
|
|
266
|
+
@param name The name of the dependency.
|
|
267
|
+
@param semver A parsed Semver object of the upgraded version.
|
|
268
|
+
(See: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring)
|
|
269
|
+
@returns One of the valid target values (specified in the table above).
|
|
270
|
+
*/`)}
|
|
271
|
+
${F.green(`target`)}: (name, semver) ${F.cyan(`=>`)} {
|
|
272
|
+
${F.red(`if`)} (parseInt(semver[0]?.major) ${F.red(`===`)} ${F.yellow(`'0'`)}) ${F.red(`return`)} ${F.yellow(`'minor'`)}
|
|
273
|
+
${F.red(`return`)} ${F.yellow(`'latest'`)}
|
|
274
|
+
}`,{markdown:e})}
|
|
275
|
+
`,type:`${Mn.map(e=>`'${e}'`).join(` | `)} | \`@\${string}\` | TargetFunction`},{long:`timeout`,arg:`ms`,description:`Global timeout in milliseconds. (default: no global timeout and 30 seconds per npm-registry-fetch)`,parse:e=>parseInt(e,10),type:`number`},{long:`upgrade`,short:`u`,description:`Overwrite package file with upgraded versions instead of just outputting to console.`,type:`boolean`},{long:`verbose`,description:"Log additional information for debugging. Alias for `--loglevel` verbose.",type:`boolean`},{long:`workspace`,arg:`s`,parse:(e,t)=>[...t,e],default:[],description:"Run on one or more specified workspaces. Add `--no-root` to exclude the root project.",type:`readonly string[]`},{long:`workspaces`,short:`w`,description:"Run on all workspaces. Add `--no-root` to exclude the root project.",type:`boolean`},{long:`cooldown`,short:`c`,arg:`n`,description:`Sets a minimum age (in days) for package versions to be considered for upgrade, reducing the risk of installing newly published, potentially compromised packages.`,type:`number | CooldownFunction`,help:({markdown:e})=>`The cooldown option helps protect against supply chain attacks by requiring package versions to be published at least the given number of days before considering them for upgrade.
|
|
276
276
|
|
|
277
|
-
Note that previous stable versions will ${
|
|
277
|
+
Note that previous stable versions will ${F.bold(`not`)} be suggested. The package will be completely ignored if its latest published version is within the cooldown period. This is due to a limitation of the npm registry, which does not provide a way to query previous stable versions.
|
|
278
278
|
|
|
279
|
-
${
|
|
279
|
+
${F.bold(`Example`)}:
|
|
280
280
|
|
|
281
281
|
Let's examine how cooldown works with a package that has these versions available:
|
|
282
282
|
|
|
@@ -290,9 +290,9 @@ Let's examine how cooldown works with a package that has these versions availabl
|
|
|
290
290
|
2.0.0-beta.2 Released 3 days ago (beta release)
|
|
291
291
|
2.0.0-beta.3 Released 2 days ago (beta release) [beta]
|
|
292
292
|
|
|
293
|
-
${
|
|
293
|
+
${F.bold(`With default target (latest)`)}:
|
|
294
294
|
|
|
295
|
-
${
|
|
295
|
+
${W(`${F.cyan(`$`)} ncu --cooldown 5`,{markdown:e})}
|
|
296
296
|
|
|
297
297
|
No update will be suggested because:
|
|
298
298
|
|
|
@@ -300,9 +300,9 @@ No update will be suggested because:
|
|
|
300
300
|
- Cooldown requires versions to be at least 5 days old
|
|
301
301
|
- Use \`--cooldown 4\` or lower to allow this update
|
|
302
302
|
|
|
303
|
-
${
|
|
303
|
+
${F.bold("With `@beta`/`@tag` target")}:
|
|
304
304
|
|
|
305
|
-
${
|
|
305
|
+
${W(`${F.cyan(`$`)} ncu --cooldown 3 --target @beta`,{markdown:e})}
|
|
306
306
|
|
|
307
307
|
No update will be suggested because:
|
|
308
308
|
|
|
@@ -310,9 +310,9 @@ No update will be suggested because:
|
|
|
310
310
|
- Cooldown requires versions to be at least 3 days old
|
|
311
311
|
- Use \`--cooldown 2\` or lower to allow this update
|
|
312
312
|
|
|
313
|
-
${
|
|
313
|
+
${F.bold(`With other targets`)}:
|
|
314
314
|
|
|
315
|
-
${
|
|
315
|
+
${W(`${F.cyan(`$`)} ncu --cooldown 5 --target greatest|newest|minor|patch|semver`,{markdown:e})}
|
|
316
316
|
|
|
317
317
|
Each target will select the best version that is at least 5 days old:
|
|
318
318
|
|
|
@@ -321,7 +321,7 @@ Each target will select the best version that is at least 5 days old:
|
|
|
321
321
|
minor → 1.2.0 (highest minor version outside cooldown)
|
|
322
322
|
patch → 1.1.1 (highest patch version outside cooldown)
|
|
323
323
|
|
|
324
|
-
${
|
|
324
|
+
${F.bold(`Note for latest/tag targets`)}:
|
|
325
325
|
|
|
326
326
|
> :warning: For packages that update frequently (e.g. daily releases), using a long cooldown period (7+ days) with the default \`--target latest\` or \`--target @tag\` may prevent all updates since new versions will be published before older ones meet the cooldown requirement. Please consider this when setting your cooldown period.
|
|
327
327
|
|
|
@@ -329,46 +329,46 @@ You can also provide a custom function in your .ncurc.js file or when importing
|
|
|
329
329
|
|
|
330
330
|
> :warning: The predicate function is only available in .ncurc.js or when importing npm-check-updates as a module, not on the command line. To convert a JSON config to a JS config, follow the instructions at https://github.com/raineorshine/npm-check-updates#config-functions.
|
|
331
331
|
|
|
332
|
-
${
|
|
332
|
+
${W(`${F.gray(`/** Set cooldown to 3 days but skip it for \`@my-company\` packages.
|
|
333
333
|
@param packageName The name of the dependency.
|
|
334
334
|
@returns Cooldown days restriction for given package.
|
|
335
335
|
*/`)}
|
|
336
|
-
${
|
|
337
|
-
`,tr=[{long:`cache`,description:`Cache versions to a local cache file. Default \`--cacheFile\` is ${On} and default \`--cacheExpiration\` is 10 minutes.`,type:`boolean`},{long:`cacheClear`,description:"Clear the default cache, or the cache file specified by `--cacheFile`.",type:`boolean`},{long:`cacheExpiration`,arg:`min`,description:"Cache expiration in minutes. Only works with `--cache`.",parse:e=>parseInt(e,10),default:10,type:`number`},{long:`cacheFile`,arg:`path`,description:"Filepath for the cache file. Only works with `--cache`.",parse:e=>u.default.isAbsolute(e)?e:u.default.join(process.cwd(),e),default:On,type:`string`},{long:`color`,description:`Force color in terminal.`,type:`boolean`},{long:`concurrency`,arg:`n`,description:`Max number of concurrent HTTP requests to registry.`,parse:e=>parseInt(e,10),default:8,type:`number`},{long:`configFileName`,arg:`s`,description:`Config file name. (default: .ncurc.{json,yml,js,cjs})`,type:`string`},{long:`configFilePath`,arg:`path`,description:"Directory of .ncurc config file. (default: directory of `packageFile`)",type:`string`},{long:`cwd`,arg:`path`,description:`Working directory in which npm will be executed.`,type:`string`},{long:`deep`,description:"Run recursively in current working directory. Alias of (`--packageFile '**/package.json'`).",type:`boolean`},{long:`ignore`,arg:`dirs`,description:`Ignore directories containing package.json files (comma-delimited).`,type:`string | readonly string[]`,parse:e=>e&&typeof e==`string`?e.split(`,`):e},{long:`dep`,arg:`value`,description:`Check one or more sections of dependencies only: dev, optional, peer, prod, or packageManager (comma-delimited).`,default:[`prod`,`dev`,`optional`,`packageManager`],parse:e=>e&&typeof e==`string`?e.split(`,`):e,type:`string | readonly string[]`},{long:`deprecated`,default:!0,description:"Include deprecated packages. Use `--no-deprecated` to exclude deprecated packages (20–25% slower).",type:`boolean`},{long:`doctor`,short:`d`,description:"Iteratively installs upgrades and runs tests to identify breaking upgrades. Requires `-u` to execute.",type:`boolean`,help:Vn},{long:`doctorInstall`,arg:`command`,description:"Specifies the install script to use in doctor mode. (default: `npm install` or the equivalent for your package manager)",type:`string`},{long:`doctorTest`,arg:`command`,description:"Specifies the test script to use in doctor mode. (default: `npm test`)",type:`string`},{long:`enginesNode`,description:`Include only packages that satisfy engines.node as specified in the package file.`,type:`boolean`},{long:`errorLevel`,short:`e`,arg:`n`,description:`Set the error level. 1: exits with error code 0 if no errors occur. 2: exits with error code 0 if no packages need updating (useful for continuous integration).`,parse:e=>parseInt(e,10),default:1,type:`number`},{long:`filter`,short:`f`,arg:`p`,description:`Include only package names matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:Gn},{long:`filterResults`,arg:`fn`,cli:!1,description:`Filters results based on a user provided predicate function after fetching new versions.`,type:`FilterResultsFunction`,help:Hn},{long:`filterVersion`,arg:`p`,description:`Filter on package version using comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:Kn},{long:`format`,arg:`value`,description:`Modify the output formatting or show additional information. Specify one or more comma-delimited values: dep, group, ownerChanged, repo, time, lines, installedVersion.`,parse:e=>typeof e==`string`?e.split(`,`):e,default:[],type:`readonly string[]`,choices:[`dep`,`group`,`ownerChanged`,`repo`,`time`,`lines`,`installedVersion`],help:Un},{long:`global`,short:`g`,description:`Check global packages instead of in the current project.`,type:`boolean`},{long:`groupFunction`,arg:`fn`,cli:!1,description:"Customize how packages are divided into groups when using `--format group`.",type:`GroupFunction`,help:Yn},{long:`install`,arg:`value`,description:`Control the auto-install behavior: always, never, prompt.`,help:Wn,default:`prompt`,choices:[`always`,`never`,`prompt`],type:`'always' | 'never' | 'prompt'`},{long:`interactive`,short:`i`,description:"Enable interactive prompts for each dependency; implies `-u` unless one of the json options are set.",type:`boolean`},{long:`jsonAll`,short:`j`,description:`Output new package file instead of human-readable message.`,type:`boolean`},{long:`jsonDeps`,description:"Like `jsonAll` but only lists `dependencies`, `devDependencies`, `optionalDependencies`, etc of the new package data.",type:`boolean`},{long:`jsonUpgraded`,description:`Output upgraded dependencies in json.`,type:`boolean`},{long:`loglevel`,short:`l`,arg:`n`,description:`Amount to log: silent, error, minimal, warn, info, verbose, silly.`,default:`warn`,type:`string`},{long:`mergeConfig`,description:"Merges nested configs with the root config file for `--deep` or `--packageFile` options. (default: false)",type:`boolean`},{long:`minimal`,short:`m`,description:`Do not upgrade newer versions that are already satisfied by the version range according to semver.`,type:`boolean`},{long:`packageData`,arg:`value`,description:`Package file data (you can also use stdin).`,type:`string | PackageFile`},{long:`packageFile`,arg:`path|glob`,description:`Package file(s) location. (default: ./package.json)`,type:`string`},{long:`packageManager`,short:`p`,arg:`s`,description:`npm, yarn, pnpm, deno, bun, staticRegistry (default: npm).`,help:Zn,type:`'npm' | 'yarn' | 'pnpm' | 'deno' | 'bun' | 'staticRegistry'`},{long:`peer`,description:`Check peer dependencies of installed packages and filter updates to compatible versions.`,type:`boolean`,help:$n},{long:`pre`,arg:`n`,description:"Include prerelease versions, e.g. -alpha.0, -beta.5, -rc.2. Automatically set to 1 when `--target` is newest or greatest, or when the current version is a prerelease. (default: 0)",parse:e=>!!parseInt(e,10),type:`number`},{long:`prefix`,arg:`path`,description:`Current working directory of npm.`,type:`string`},{long:`registry`,short:`r`,arg:`uri`,description:`Specify the registry to use when looking up package versions.`,type:`string`},{long:`registryType`,arg:`type`,description:`Specify whether --registry refers to a full npm registry or a simple JSON file or url: npm, json. (default: npm)`,help:Qn,type:`'npm' | 'json'`},{long:`reject`,short:`x`,arg:`p`,description:`Exclude packages matching the given string, wildcard, glob, comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:qn},{long:`rejectVersion`,arg:`p`,description:`Exclude package.json versions using comma-or-space-delimited list, /regex/, or predicate function.`,type:`string | RegExp | readonly (string | RegExp)[] | FilterFunction`,parse:(e,t)=>[...t||[],e],help:Jn},{long:`removeRange`,description:`Remove version ranges from the final package version.`,type:`boolean`},{long:`root`,default:!0,description:"Runs updates on the root project in addition to specified workspaces. Only allowed with `--workspace` or `--workspaces`.",type:`boolean`},{long:`retry`,arg:`n`,description:`Number of times to retry failed requests for package info.`,parse:e=>parseInt(e,10),default:3,type:`number`},{long:`silent`,short:`s`,description:"Don't output anything. Alias for `--loglevel` silent.",type:`boolean`},{long:`stdin`,description:`Read package.json from stdin.`,type:`string`},{long:`target`,short:`t`,arg:`value`,description:"Determines the version to upgrade to: latest, newest, greatest, minor, patch, semver, `@[tag]`, or [function]. (default: latest)",help:Xn,type:`${Rn.map(e=>`'${e}'`).join(` | `)} | \`@\${string}\` | TargetFunction`},{long:`timeout`,arg:`ms`,description:`Global timeout in milliseconds. (default: no global timeout and 30 seconds per npm-registry-fetch)`,parse:e=>parseInt(e,10),type:`number`},{long:`upgrade`,short:`u`,description:`Overwrite package file with upgraded versions instead of just outputting to console.`,type:`boolean`},{long:`verbose`,description:"Log additional information for debugging. Alias for `--loglevel` verbose.",type:`boolean`},{long:`workspace`,arg:`s`,parse:(e,t)=>[...t,e],default:[],description:"Run on one or more specified workspaces. Add `--no-root` to exclude the root project.",type:`readonly string[]`},{long:`workspaces`,short:`w`,description:"Run on all workspaces. Add `--no-root` to exclude the root project.",type:`boolean`},{long:`cooldown`,short:`c`,arg:`n`,description:`Sets a minimum age (in days) for package versions to be considered for upgrade, reducing the risk of installing newly published, potentially compromised packages.`,type:`number | CooldownFunction`,help:er,parse:e=>typeof e==`function`?e:parseInt(e,10)}],q=tr.reduce((e,t)=>({...e,...t.short?{[t.short]:t}:null,...t.long?{[t.long]:t}:null}),{}),nr=Dt(tr,e=>e.long);var rr=nr;const ir=[`package-lock.json`,`yarn.lock`,`pnpm-lock.yaml`,`deno.json`,`deno.jsonc`,`bun.lock`,`bun.lockb`];async function ar(e,t=g.default.readdir){try{let n=m.default.homedir(),r=m.default.tmpdir(),i=e.cwd?e.cwd:e.packageFile?u.default.dirname(e.packageFile):`.`;for(i=u.default.resolve(i);;){let e=await t(i);for(let t of ir)if(e.includes(t))return{directoryPath:i,filename:t};let a=u.default.resolve(i,`..`);if(a===i||a===n||a===r)break;i=a}}catch{}return null}const or={"package-lock":`npm`,yarn:`yarn`,"pnpm-lock":`pnpm`,deno:`deno`,bun:`bun`},sr=()=>{let e=process.env.npm_config_user_agent??``,t=process.env.npm_execpath??``;return e.startsWith(`yarn/`)||t.includes(`yarn`)||__dirname.includes(`/yarn/`)||__dirname.includes(`\\Yarn\\`)?`yarn`:e.startsWith(`pnpm/`)||t.includes(`pnpm`)||__dirname.includes(`/pnpm/`)||__dirname.includes(`\\pnpm\\`)?`pnpm`:e.startsWith(`bun/`)||typeof Bun<`u`||process.versions.bun||__dirname.includes(`/.bun/`)||__dirname.includes(`\\.bun\\`)?`bun`:`npm`},cr=async(e,t=g.default.readdir)=>{if(e.packageManager)return e.packageManager;if(e.global)return sr();let n=(await ar(e,t))?.filename;return n?or[n.split(`.`)[0]]:`npm`};var lr=cr,ur=class e{constructor(e,t,n){this.__specs=e||{},this.__opts=t||{},this.__providers=hr(n.filter(e=>typeof e==`object`&&!!e)),this.__isFiggyPudding=!0}get(e){return dr(this,e,!0)}toJSON(){let e={};return this.forEach((t,n)=>{e[n]=t}),e}forEach(e,t=this){for(let[n,r]of this.entries())e.call(t,r,n,this)}*entries(e){for(let e of Object.keys(this.__specs))yield[e,this.get(e)];let t=e||this.__opts.other;if(t){let e=new Set;for(let n of this.__providers){let r=n.entries?n.entries(t):gr(n);for(let[n,i]of r)t(n)&&!e.has(n)&&(e.add(n),yield[n,i])}}}concat(...t){return new Proxy(new e(this.__specs,this.__opts,hr(this.__providers).concat(t)),pr)}};function dr(e,t,n){let r=e.__specs[t];r||={};let i;for(let n of e.__providers)if(i=fr(t,n),i!==void 0)break;return i===void 0&&r.default!==void 0?typeof r.default==`function`?r.default(e):r.default:i}function fr(e,t){let n;return n=t.__isFiggyPudding?dr(t,e,!1):t[e],n}const pr={get(e,t){return typeof t==`symbol`||t.slice(0,2)===`__`||t in ur.prototype?e[t]:e.get(t)}};function mr(e,t){function n(...n){return new Proxy(new ur(e,t,n),pr)}return n}function hr(e){let t=[];return e.forEach(e=>t.unshift(e)),t}function gr(e){return Object.keys(e).map(t=>[t,e[t]])}const _r=mr({},{other(){return!0}}),vr=mr({cache:{default:j.default.join(process.env.HOME||A.default.homedir(),`.npm`)},configNames:{default:[`npmrc`,`.npmrc`]},envPrefix:{default:/^npm_config_/i},cwd:{default:()=>process.cwd()},globalconfig:{default:()=>j.default.join(xr(),`etc`,`npmrc`)},userconfig:{default:j.default.join(process.env.HOME||A.default.homedir(),`.npmrc`)}});function yr(e,t){let n=vr(t),r={};Object.keys(process.env).forEach(e=>{if(!e.match(n.envPrefix))return;let t=e.toLowerCase().replace(n.envPrefix,``).replace(/(?!^)_/g,`-`);r[t]=process.env[e]});let i=_r(e),a=n.userconfig||i.userconfig||r.userconfig,o=a&&br(a),s=n.globalconfig||i.globalconfig||r.globalconfig,c=s&&br(s),l=(0,O.findUpSync)(n.configNames,{cwd:n.cwd}),u={};l&&l!==a&&(u=br(l));let d=_r(n,c,o,u,r,i);return d.cache?d.concat({cache:j.default.resolve(i.cache||r.cache?n.cwd:u.cache?j.default.dirname(l):o.cache?j.default.dirname(a):c.cache?j.default.dirname(s):j.default.dirname(a),d.cache)}):d}function br(e){let t;try{t=k.default.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return``;throw e}return T.default.parse(t)}function xr(){if(process.env.PREFIX)return process.env.PREFIX;if(process.platform===`win32`)return j.default.dirname(process.execPath);{let e=j.default.dirname(j.default.dirname(process.execPath));return process.env.DESTDIR&&(e=j.default.join(process.env.DESTDIR,e)),e}}var Sr=yr;function Cr(e,t){return t.deprecated||!e.deprecated}function wr(e,t){return t.pre?!0:!e.version||!Yt(e.version)}function Tr(e,t){if(!t)return!0;let n=b.default.minVersion(t)?.version;if(!n)return!0;let r=e?.engines?.node;return!r||b.default.satisfies(n,r)}function Er(e,t){return t?Object.values(t).every(t=>t[e.name]===void 0||b.default.satisfies(e.version,t[e.name])):!0}function Dr(e,t){let n=e.version,r=e?.time?.[n];if(!t)return!0;if(!r)return!1;let i=new Date(r),a=typeof t==`function`?t(e.name)??0:t;return Date.now()-i.getTime()>=a*864e5}function Or(e){let t=[t=>Cr(t,e),t=>wr(t,e),e.enginesNode?t=>Tr(t,e.nodeEngineVersion):null,e.peerDependencies?t=>Er(t,e.peerDependencies):null,e.cooldown?t=>Dr(t,e.cooldown):null];return e=>t.every(t=>t?t(e):!0)}var kr=s({default:()=>ni,defaultPrefix:()=>Gr,distTag:()=>Xr,fetchUpgradedPackumentMemo:()=>J,getEngines:()=>Jr,getPeerDependencies:()=>qr,greatest:()=>Kr,latest:()=>Zr,list:()=>Yr,minor:()=>$r,mockFetchUpgradedPackument:()=>Vr,newest:()=>Qr,normalizeNpmConfig:()=>Fr,packageAuthorChanged:()=>zr,parseJson:()=>Rr,patch:()=>ei,semver:()=>ti});const Ar=new Set([`-`,`||`,`&&`,`<`,`<=`,`>`,`>=`]),jr=e=>(0,x.parseRange)(e).some(e=>Ar.has(e.operator||``)),Mr=e=>e&&(!b.default.validRange(e)||Bt(e)),Nr=async(e,t,n,r={},i)=>{let a=E.default.pickRegistry(e,r),o={"user-agent":r.userAgent||`npm-check-updates/${de} node/${process.version}`,"ncu-version":de,"ncu-pkg-id":`registry:${e}`,accept:r.fullMetadata?`application/json`:`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`,...r.headers},s=new URL(encodeURIComponent(e),a.endsWith(`/`)?a:`${a}/`);i&&(s.pathname+=`/${i}`);let c={...r,headers:o,spec:e};try{if(r.fullMetadata)return E.default.json(s.href,c);{n||=`latest`;let r=E.default.json.stream(s.href,`$*`,c),i={name:e};for await(let{key:e,value:n}of r)if(t.includes(e)&&(i[e]=n,Object.keys(i).length===t.length+1))break;return i}}catch(a){if(a.code!==`E404`||r.fullMetadata)throw a;return Nr(e,t,n,{...r,fullMetadata:!0},i)}},Pr=(e,t)=>{let n=e.version;return{...e,name:t.name,...t?.time?.[n]?{time:t.time}:null}},Fr=(e,t)=>{let n={cafile:e=>{if(!e)return;let n=p.default.readFileSync(u.default.resolve(t||``,(0,D.default)(e)),`utf8`),r=`-----END CERTIFICATE-----`;return{ca:n.split(r).filter(e=>!!e.trim()).map(e=>`${e.trimStart()}${r}`)}},maxsockets:`maxSockets`,"strict-ssl":`strictSSL`},r={all:`boolean`,allowsameversion:`boolean`,audit:`boolean`,binlinks:`boolean`,color:`boolean`,commithooks:`boolean`,description:`boolean`,dev:`boolean`,diffignoreallspace:`boolean`,diffnameonly:`boolean`,diffnoprefix:`boolean`,difftext:`boolean`,dryrun:`boolean`,enginestrict:`boolean`,force:`boolean`,foregroundscripts:`boolean`,formatpackagelock:`boolean`,fund:`boolean`,gittagversion:`boolean`,global:`boolean`,globalstyle:`boolean`,ifpresent:`boolean`,ignorescripts:`boolean`,includestaged:`boolean`,includeworkspaceroot:`boolean`,installlinks:`boolean`,json:`boolean`,legacybundling:`boolean`,legacypeerdeps:`boolean`,link:`boolean`,long:`boolean`,offline:`boolean`,omitlockfileregistryresolved:`boolean`,packagelock:`boolean`,packagelockonly:`boolean`,parseable:`boolean`,preferoffline:`boolean`,preferonline:`boolean`,progress:`boolean`,readonly:`boolean`,rebuildbundle:`boolean`,save:`boolean`,savebundle:`boolean`,savedev:`boolean`,saveexact:`boolean`,saveoptional:`boolean`,savepeer:`boolean`,saveprod:`boolean`,shrinkwrap:`boolean`,signgitcommit:`boolean`,signgittag:`boolean`,strictpeerdeps:`boolean`,strictssl:`boolean`,timing:`boolean`,unicode:`boolean`,updatenotifier:`boolean`,usage:`boolean`,version:`boolean`,versions:`boolean`,workspacesupdate:`boolean`,diffunified:`number`,fetchretries:`number`,fetchretryfactor:`number`,fetchretrymaxtimeout:`number`,fetchretrymintimeout:`number`,fetchtimeout:`number`,logsmax:`number`,maxsockets:`number`,searchlimit:`number`,searchstaleness:`number`,ssopollfrequency:`number`,timeout:`number`},i=e=>!!e&&e!==`false`&&e!==`0`,a=e=>parseInt(e)||0;return P(e,(e,t)=>{let o=typeof t==`string`?r[e.replace(/-/g,``).toLowerCase()]===`boolean`?i(t):r[e.replace(/-/g,``).toLowerCase()]===`number`?a(t):t.replace(/\${([^}]+)}/,(e,t)=>process.env[t]):t,{[e]:s}=n;return typeof s==`string`?{[s]:o}:typeof s==`function`?{...s(o.toString())}:{[e.match(/^[a-z]/i)?(0,C.default)(e):e]:o}})},Ir=(0,w.default)(e=>{let t;if(e)try{t=T.default.parse(p.default.readFileSync(e,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}else t={...Sr(null,{userconfig:process.env.npm_config_userconfig||process.env.NPM_CONFIG_USERCONFIG}).toJSON(),cache:!1};return Fr(t,e)}),Lr=Ir();function Rr(e,t){let n;try{n=JSON.parse(e)}catch{throw Error(`Expected JSON from "${t.command}".${t.packageName?` There could be problems with the ${t.packageName} package.`:``} ${e?`Instead received: `+e:`Received empty response.`}`)}return n}async function zr(e,t,n,r={},i){let a=await Nr(e,[`versions`],null,{...i,...Lr,fullMetadata:!0,...r.registry?{registry:r.registry,silent:!0}:null});if(a.versions){let e=Object.keys(a.versions),r=b.default.minSatisfying(e,t),i=b.default.maxSatisfying(e,n);if(r&&i&&a.versions[r]._npmUser&&a.versions[i]._npmUser)return a.versions[r]._npmUser?.name!==a.versions[i]._npmUser?.name}return!1}const Br=e=>!!(e&&(e.name||e.engines||e.version||e.versions)),Vr=e=>(t,n,r,i)=>{let a=typeof e==`function`?e(i)?.[t]:typeof e==`string`||Br(e)?e:e[t],o=Br(a)?a.version:a;if(!o)throw Error(`fetchUpgradedPackument is mocked, but no mock version was supplied for ${t}. Make sure that all dependencies are mocked. `);let s=Br(a)&&a.time?.[o]||new Date().toISOString(),c={name:t,"dist-tags":{[i.distTag||`latest`]:o},engines:{node:``},time:{[o]:s},version:o,versions:{},...Br(a)?a:null},{versions:l,...u}=c;return Promise.resolve({...c,versions:{...Br(a)&&a.versions||{[o]:u}}})},Hr=(0,w.default)(({npmConfigLocal:e,npmConfigUser:t,npmConfigWorkspaceProject:n},r)=>{let i=r.packageFile?u.default.join(r.packageFile,`../.npmrc`):null,a=r.packageFile?Ir(i||void 0):null,o=r.cwd?u.default.join(r.cwd,`.npmrc`):null,s=r.cwd?Ir(o):null;if(n&&Object.keys(n).length>0){H(r,`
|
|
338
|
-
npm config (workspace project):`,`verbose`);let{cache:e,...t}=n;
|
|
339
|
-
npm config (user):`,`verbose`);let{cache:e,...n}=t;
|
|
340
|
-
npm config (local override):`,`verbose`);let{cache:t,...n}=e;
|
|
341
|
-
merged npm config:`,`verbose`);let{cache:e,...t}=c;
|
|
342
|
-
`),e=>{let t=e.match(/.* (.+?)@(.+)/);if(t){let[,e,n]=t;return{[e]:n}}return null})};var
|
|
336
|
+
${F.green(`cooldown`)}: packageName ${F.cyan(`=>`)} (packageName.startsWith(${F.yellow(`'@my-company'`)}) ? ${F.cyan(`0`)} : ${F.cyan(`3`)})`,{markdown:e})}
|
|
337
|
+
`,parse:e=>typeof e==`function`?e:parseInt(e,10)}],G=Fn.reduce((e,t)=>({...e,...t.short?{[t.short]:t}:null,...t.long?{[t.long]:t}:null}),{});var In=wt(Fn,e=>e.long);const Ln=[`package-lock.json`,`yarn.lock`,`pnpm-lock.yaml`,`deno.json`,`deno.jsonc`,`bun.lock`,`bun.lockb`];async function Rn(e,t=g.default.readdir){try{let n=m.default.homedir(),r=m.default.tmpdir(),i=e.cwd?e.cwd:e.packageFile?u.default.dirname(e.packageFile):`.`;for(i=u.default.resolve(i);;){let e=await t(i);for(let t of Ln)if(e.includes(t))return{directoryPath:i,filename:t};let a=u.default.resolve(i,`..`);if(a===i||a===n||a===r)break;i=a}}catch{}return null}const zn={"package-lock":`npm`,yarn:`yarn`,"pnpm-lock":`pnpm`,deno:`deno`,bun:`bun`},Bn=()=>{let e=process.env.npm_config_user_agent??``,t=process.env.npm_execpath??``;return e.startsWith(`yarn/`)||t.includes(`yarn`)||__dirname.includes(`/yarn/`)||__dirname.includes(`\\Yarn\\`)?`yarn`:e.startsWith(`pnpm/`)||t.includes(`pnpm`)||__dirname.includes(`/pnpm/`)||__dirname.includes(`\\pnpm\\`)?`pnpm`:e.startsWith(`bun/`)||typeof Bun<`u`||process.versions.bun||__dirname.includes(`/.bun/`)||__dirname.includes(`\\.bun\\`)?`bun`:`npm`};var Vn=async(e,t=g.default.readdir)=>{if(e.packageManager)return e.packageManager;if(e.global)return Bn();let n=(await Rn(e,t))?.filename;return n?zn[n.split(`.`)[0]]:`npm`},Hn=class e{constructor(e,t,n){this.__specs=e||{},this.__opts=t||{},this.__providers=qn(n.filter(e=>typeof e==`object`&&!!e)),this.__isFiggyPudding=!0}get(e){return Un(this,e,!0)}toJSON(){let e={};return this.forEach((t,n)=>{e[n]=t}),e}forEach(e,t=this){for(let[n,r]of this.entries())e.call(t,r,n,this)}*entries(e){for(let e of Object.keys(this.__specs))yield[e,this.get(e)];let t=e||this.__opts.other;if(t){let e=new Set;for(let n of this.__providers){let r=n.entries?n.entries(t):Jn(n);for(let[n,i]of r)t(n)&&!e.has(n)&&(e.add(n),yield[n,i])}}}concat(...t){return new Proxy(new e(this.__specs,this.__opts,qn(this.__providers).concat(t)),Gn)}};function Un(e,t,n){let r=e.__specs[t];r||={};let i;for(let n of e.__providers)if(i=Wn(t,n),i!==void 0)break;return i===void 0&&r.default!==void 0?typeof r.default==`function`?r.default(e):r.default:i}function Wn(e,t){let n;return n=t.__isFiggyPudding?Un(t,e,!1):t[e],n}const Gn={get(e,t){return typeof t==`symbol`||t.slice(0,2)===`__`||t in Hn.prototype?e[t]:e.get(t)}};function Kn(e,t){function n(...n){return new Proxy(new Hn(e,t,n),Gn)}return n}function qn(e){let t=[];return e.forEach(e=>t.unshift(e)),t}function Jn(e){return Object.keys(e).map(t=>[t,e[t]])}const Yn=Kn({},{other(){return!0}}),Xn=Kn({cache:{default:k.default.join(process.env.HOME||O.default.homedir(),`.npm`)},configNames:{default:[`npmrc`,`.npmrc`]},envPrefix:{default:/^npm_config_/i},cwd:{default:()=>process.cwd()},globalconfig:{default:()=>k.default.join($n(),`etc`,`npmrc`)},userconfig:{default:k.default.join(process.env.HOME||O.default.homedir(),`.npmrc`)}});function Zn(e,t){let n=Xn(t),r={};Object.keys(process.env).forEach(e=>{if(!e.match(n.envPrefix))return;let t=e.toLowerCase().replace(n.envPrefix,``).replace(/(?!^)_/g,`-`);r[t]=process.env[e]});let i=Yn(e),a=n.userconfig||i.userconfig||r.userconfig,o=a&&Qn(a),s=n.globalconfig||i.globalconfig||r.globalconfig,c=s&&Qn(s),l=(0,D.findUpSync)(n.configNames,{cwd:n.cwd}),u={};l&&l!==a&&(u=Qn(l));let d=Yn(n,c,o,u,r,i);return d.cache?d.concat({cache:k.default.resolve(i.cache||r.cache?n.cwd:u.cache?k.default.dirname(l):o.cache?k.default.dirname(a):c.cache?k.default.dirname(s):k.default.dirname(a),d.cache)}):d}function Qn(e){let t;try{t=ee.default.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return``;throw e}return w.default.parse(t)}function $n(){if(process.env.PREFIX)return process.env.PREFIX;if(process.platform===`win32`)return k.default.dirname(process.execPath);{let e=k.default.dirname(k.default.dirname(process.execPath));return process.env.DESTDIR&&(e=k.default.join(process.env.DESTDIR,e)),e}}var er=Zn;function tr(e,t){return t.deprecated||!e.deprecated}function nr(e,t){return t.pre?!0:!e.version||!Kt(e.version)}function rr(e,t){if(!t)return!0;let n=y.default.minVersion(t)?.version;if(!n)return!0;let r=e?.engines?.node;return!r||y.default.satisfies(n,r)}function ir(e,t){return t?Object.values(t).every(t=>t[e.name]===void 0||y.default.satisfies(e.version,t[e.name])):!0}function ar(e,t){let n=e.version,r=e?.time?.[n];if(!t)return!0;if(!r)return!1;let i=new Date(r),a=typeof t==`function`?t(e.name)??0:t;return Date.now()-i.getTime()>=a*864e5}function or(e){let t=[t=>tr(t,e),t=>nr(t,e),e.enginesNode?t=>rr(t,e.nodeEngineVersion):null,e.peerDependencies?t=>ir(t,e.peerDependencies):null,e.cooldown?t=>ar(t,e.cooldown):null];return e=>t.every(t=>t?t(e):!0)}var sr=s({default:()=>Mr,defaultPrefix:()=>xr,distTag:()=>Er,fetchUpgradedPackumentMemo:()=>J,getEngines:()=>wr,getPeerDependencies:()=>Cr,greatest:()=>Sr,latest:()=>Dr,list:()=>Tr,minor:()=>kr,mockFetchUpgradedPackument:()=>_r,newest:()=>Or,normalizeNpmConfig:()=>fr,packageAuthorChanged:()=>hr,parseJson:()=>q,patch:()=>Ar,semver:()=>jr});const cr=new Set([`-`,`||`,`&&`,`<`,`<=`,`>`,`>=`]),lr=e=>(0,b.parseRange)(e).some(e=>cr.has(e.operator||``)),ur=e=>e&&(!y.default.validRange(e)||Lt(e)),dr=async(e,t,n,r={},i)=>{let a=T.default.pickRegistry(e,r),o={"user-agent":r.userAgent||`npm-check-updates/${de} node/${process.version}`,"ncu-version":de,"ncu-pkg-id":`registry:${e}`,accept:r.fullMetadata?`application/json`:`application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*`,...r.headers},s=new URL(encodeURIComponent(e),a.endsWith(`/`)?a:`${a}/`);i&&(s.pathname+=`/${i}`);let c={...r,headers:o,spec:e};try{if(r.fullMetadata)return T.default.json(s.href,c);{n||=`latest`;let r=T.default.json.stream(s.href,`$*`,c),i={name:e};for await(let{key:e,value:n}of r)if(t.includes(e)&&(i[e]=n,Object.keys(i).length===t.length+1))break;return i}}catch(a){if(a.code!==`E404`||r.fullMetadata)throw a;return dr(e,t,n,{...r,fullMetadata:!0},i)}},K=(e,t)=>{let n=e.version;return{...e,name:t.name,...t?.time?.[n]?{time:t.time}:null}},fr=(e,t)=>{let n={cafile:e=>{if(!e)return;let n=p.default.readFileSync(u.default.resolve(t||``,(0,E.default)(e)),`utf8`),r=`-----END CERTIFICATE-----`;return{ca:n.split(r).filter(e=>!!e.trim()).map(e=>`${e.trimStart()}${r}`)}},maxsockets:`maxSockets`,"strict-ssl":`strictSSL`},r={all:`boolean`,allowsameversion:`boolean`,audit:`boolean`,binlinks:`boolean`,color:`boolean`,commithooks:`boolean`,description:`boolean`,dev:`boolean`,diffignoreallspace:`boolean`,diffnameonly:`boolean`,diffnoprefix:`boolean`,difftext:`boolean`,dryrun:`boolean`,enginestrict:`boolean`,force:`boolean`,foregroundscripts:`boolean`,formatpackagelock:`boolean`,fund:`boolean`,gittagversion:`boolean`,global:`boolean`,globalstyle:`boolean`,ifpresent:`boolean`,ignorescripts:`boolean`,includestaged:`boolean`,includeworkspaceroot:`boolean`,installlinks:`boolean`,json:`boolean`,legacybundling:`boolean`,legacypeerdeps:`boolean`,link:`boolean`,long:`boolean`,offline:`boolean`,omitlockfileregistryresolved:`boolean`,packagelock:`boolean`,packagelockonly:`boolean`,parseable:`boolean`,preferoffline:`boolean`,preferonline:`boolean`,progress:`boolean`,readonly:`boolean`,rebuildbundle:`boolean`,save:`boolean`,savebundle:`boolean`,savedev:`boolean`,saveexact:`boolean`,saveoptional:`boolean`,savepeer:`boolean`,saveprod:`boolean`,shrinkwrap:`boolean`,signgitcommit:`boolean`,signgittag:`boolean`,strictpeerdeps:`boolean`,strictssl:`boolean`,timing:`boolean`,unicode:`boolean`,updatenotifier:`boolean`,usage:`boolean`,version:`boolean`,versions:`boolean`,workspacesupdate:`boolean`,diffunified:`number`,fetchretries:`number`,fetchretryfactor:`number`,fetchretrymaxtimeout:`number`,fetchretrymintimeout:`number`,fetchtimeout:`number`,logsmax:`number`,maxsockets:`number`,searchlimit:`number`,searchstaleness:`number`,ssopollfrequency:`number`,timeout:`number`},i=e=>!!e&&e!==`false`&&e!==`0`,a=e=>parseInt(e)||0;return N(e,(e,t)=>{let o=typeof t==`string`?r[e.replace(/-/g,``).toLowerCase()]===`boolean`?i(t):r[e.replace(/-/g,``).toLowerCase()]===`number`?a(t):t.replace(/\${([^}]+)}/,(e,t)=>process.env[t]):t,{[e]:s}=n;return typeof s==`string`?{[s]:o}:typeof s==`function`?{...s(o.toString())}:{[e.match(/^[a-z]/i)?(0,S.default)(e):e]:o}})},pr=(0,C.default)(e=>{let t;if(e)try{t=w.default.parse(p.default.readFileSync(e,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}else t={...er(null,{userconfig:process.env.npm_config_userconfig||process.env.NPM_CONFIG_USERCONFIG}).toJSON(),cache:!1};return fr(t,e)}),mr=pr();function q(e,t){let n;try{n=JSON.parse(e)}catch{throw Error(`Expected JSON from "${t.command}".${t.packageName?` There could be problems with the ${t.packageName} package.`:``} ${e?`Instead received: `+e:`Received empty response.`}`)}return n}async function hr(e,t,n,r={},i){let a=await dr(e,[`versions`],null,{...i,...mr,fullMetadata:!0,...r.registry?{registry:r.registry,silent:!0}:null});if(a.versions){let e=Object.keys(a.versions),r=y.default.minSatisfying(e,t),i=y.default.maxSatisfying(e,n);if(r&&i&&a.versions[r]._npmUser&&a.versions[i]._npmUser)return a.versions[r]._npmUser?.name!==a.versions[i]._npmUser?.name}return!1}const gr=e=>!!(e&&(e.name||e.engines||e.version||e.versions)),_r=e=>(t,n,r,i)=>{let a=typeof e==`function`?e(i)?.[t]:typeof e==`string`||gr(e)?e:e[t],o=gr(a)?a.version:a;if(!o)throw Error(`fetchUpgradedPackument is mocked, but no mock version was supplied for ${t}. Make sure that all dependencies are mocked. `);let s=gr(a)&&a.time?.[o]||new Date().toISOString(),c={name:t,"dist-tags":{[i.distTag||`latest`]:o},engines:{node:``},time:{[o]:s},version:o,versions:{},...gr(a)?a:null},{versions:l,...u}=c;return Promise.resolve({...c,versions:{...gr(a)&&a.versions||{[o]:u}}})},vr=(0,C.default)(({npmConfigLocal:e,npmConfigUser:t,npmConfigWorkspaceProject:n},r)=>{let i=r.packageFile?u.default.join(r.packageFile,`../.npmrc`):null,a=r.packageFile?pr(i||void 0):null,o=r.cwd?u.default.join(r.cwd,`.npmrc`):null,s=r.cwd?pr(o):null;if(n&&Object.keys(n).length>0){B(r,`
|
|
338
|
+
npm config (workspace project):`,`verbose`);let{cache:e,...t}=n;V(r,t,`verbose`)}if(t&&Object.keys(t).length>0){B(r,`
|
|
339
|
+
npm config (user):`,`verbose`);let{cache:e,...n}=t;V(r,n,`verbose`)}if(e&&Object.keys(e).length>0){B(r,`
|
|
340
|
+
npm config (local override):`,`verbose`);let{cache:t,...n}=e;V(r,n,`verbose`)}if(a&&Object.keys(a).length>0){B(r,`\nnpm config (project: ${i}):`,`verbose`);let{cache:e,...t}=a;V(r,t,`verbose`)}if(s&&Object.keys(s).length>0){B(r,`\nnpm config (cwd: ${o}):`,`verbose`);let{cache:e,...t}=s;V(r,t,`verbose`)}let c={...n,...t,...e,...a,...s,...r.registry?{registry:r.registry,silent:!0}:null,...r.timeout?{timeout:r.timeout}:null};if(n||e||a||s){B(r,`
|
|
341
|
+
merged npm config:`,`verbose`);let{cache:e,...t}=c;V(r,t,`verbose`)}return c});async function yr(e,t,n,r,i=0,a,o){if(process.env.STUB_VERSIONS)return _r(JSON.parse(process.env.STUB_VERSIONS))(e,t,n,r);if(ur(n))return Promise.resolve({});let s=r.format?.includes(`time`)&&!t.includes(`time`)?[...t,`time`]:t,c=s.includes(`time`),l=vr({npmConfigUser:{...mr,fullMetadata:c},npmConfigLocal:a,npmConfigWorkspaceProject:o},r),u;try{let n=r.distTag||`latest`;u=await dr(e,Array.from(new Set([`dist-tags`,...t,...r.deprecated?[]:[`deprecated`,`versions`],...r.enginesNode?[`engines`,`versions`]:[]])),c?null:n,l)}catch(t){if(r.retry&&++i<=r.retry)return yr(e,s,n,r,i,a);throw t}return u}const J=(0,C.default)(yr,{serializer:(([e,t,n,r,i,a,o])=>{let{packageFile:s,...c}=r;return JSON.stringify([e,t,ur(n),c,i,a,o])})});async function br(e,t={},n={},r={}){let{stdout:i}=await(0,f.default)(process.platform===`win32`?`npm.cmd`:`npm`,[...t.global?[`--global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--json`,...Array.isArray(e)?e:[e]],n,r);return i}async function xr(e){if(e.prefix)return Promise.resolve(e.prefix);let t=process.platform===`win32`?`npm.cmd`:`npm`,n;try{let{stdout:e}=await(0,f.default)(t,[`config`,`get`,`prefix`]);n=e}catch(t){B(e,"Error executing `npm config get prefix`. Caught and ignored. Unsolved: https://github.com/raineorshine/npm-check-updates/issues/703. ERROR: "+(t.message||t||``).toString(),`verbose`,`error`)}return e.global&&n?.match(`Cellar`)?`/usr/local`:process.platform===`win32`&&e.global&&!process.env.prefix?n?n.trim():`${process.env.AppData}\\npm`:void 0}const Sr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await J(e,a,t,n,0,r,i),s=o?.versions;return{version:Object.values(s||{}).filter(e=>or(n)(K(e,o))).map(e=>e.version).sort(Wt).at(-1)||null}},Cr=async(e,t,n)=>{let r=[`view`,`${e}@${t}`,`peerDependencies`],i=await br(r,{},{rejectOnError:!1},n);return i?q(i,{command:[...r,`--json`].join(` `)}):{}},wr=async(e,t,n={},r)=>(await dr(e,[`engines`],null,{...r,...mr,...n.registry?{registry:n.registry,silent:!0}:null},t)).engines||{},Tr=async(e={})=>{let t=q(await br([`ls`,`--depth=0`],{...e.global?{global:!0}:null,...e.prefix?{prefix:e.prefix}:null},{rejectOnError:!1},{...e.cwd?{cwd:e.cwd}:null}),{command:`npm${process.platform===`win32`?`.cmd`:``} ls --json${e.global?` --global`:``}`}).dependencies;return N(t,(e,t)=>({[e]:t.version||t.required?.version}))},Er=async(e,t,n={},r,i)=>{let a=[`dist-tags`];n.cooldown&&a.push(`time`);let o=await J(e,a,t,n,0,r,i),s=o?.[`dist-tags`]?.[n.distTag||`latest`],c=o?.versions?o.versions?.[s]:{name:e,version:s},l=K(c,o);return c&&or(n)(l)?{version:c.version,...o?.time?.[s]?{time:o.time[s]}:null}:n.cooldown||n.distTag&&n.distTag!==`latest`?{}:Sr(e,t,n,r,i)},Dr=async(e,t,n={},r,i)=>Er(e,t,{...n,distTag:`latest`},r,i),Or=async(e,t,n={},r,i)=>{let a=await J(e,[`time`,`versions`],t,n,0,r,i),o=N(a?.versions||{},(e,t)=>rr(t,n.nodeEngineVersion)?{[t.version]:!0}:null),s=I(a?.time||{},e=>o[e]&&(n.pre!==!1||!Kt(e))),c=wt(Object.entries(s),e=>e[1]).map(([e])=>e);return n.cooldown?{version:c.filter(e=>ar(K(a.versions[e],a),n.cooldown)).at(-1)}:{version:c.at(-1)}},kr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await J(e,a,t,n,0,r,i),s=o?.versions;return{version:Gt(Object.values(s||{}).filter(e=>or(n)(K(e,o))).map(e=>e.version),t,`minor`)}},Ar=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await J(e,a,t,n,0,r,i),s=o?.versions;return{version:Gt(Object.values(s||{}).filter(e=>or(n)(K(e,o))).map(e=>e.version),t,`patch`)}},jr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await J(e,a,t,n,0,r,i),s=o?.versions;if(lr(t))return{version:null};let c=Object.values(s||{}).filter(e=>or(n)(K(e,o))).map(e=>e.version);return{version:y.default.maxSatisfying(c,t)}};var Mr=br,Nr=s({default:()=>Lr,defaultPrefix:()=>Fr,distTag:()=>Er,getEngines:()=>wr,getPeerDependencies:()=>Cr,greatest:()=>Sr,latest:()=>Dr,list:()=>Ir,minor:()=>kr,newest:()=>Or,packageAuthorChanged:()=>hr,patch:()=>Ar,semver:()=>jr});async function Pr(e,t={},n={},r={}){return(0,f.default)(`bun`,[...t.global?[`--global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],...Array.isArray(e)?e:[e]],n,r)}const Fr=async e=>e.global?e.prefix||process.env.BUN_INSTALL||u.default.dirname((await(0,f.default)(`bun`,[`pm`,`-g`,`bin`])).stdout):void 0,Ir=async(e={})=>{let{default:t}=await Promise.resolve().then(()=>require(`./strip-ansi.cjs`)),{stdout:n}=await Pr([`pm`,`ls`],{...e.global?{global:!0}:null,...e.prefix?{prefix:e.prefix}:null},{rejectOnError:!1},{env:{...process.env,NO_COLOR:`1`},...e.cwd?{cwd:e.cwd}:null});return P(t(n).split(`
|
|
342
|
+
`),e=>{let t=e.match(/.* (.+?)@(.+)/);if(t){let[,e,n]=t;return{[e]:n}}return null})};var Lr=Pr,Rr=s({default:()=>Yr,defaultPrefix:()=>xr,distTag:()=>Vr,getEngines:()=>wr,getPeerDependencies:()=>Cr,greatest:()=>Hr,latest:()=>Ur,list:()=>Br,minor:()=>Wr,newest:()=>Gr,packageAuthorChanged:()=>hr,patch:()=>Kr,semver:()=>qr});const zr=(0,C.default)(async e=>{let t=await(0,D.findUp)(`pnpm-workspace.yaml`);if(!t)return{};let n=u.default.dirname(t),r=u.default.join(n,`.npmrc`),i;try{i=await g.default.readFile(r,`utf-8`)}catch{return{}}B(e,`\nUsing pnpm workspace config at ${r}:`,`verbose`);let a=fr(w.default.parse(i),n);return B(e,a,`verbose`),a}),Br=async(e={})=>{if(!e.global)return Tr(e);let{stdout:t}=await(0,f.default)(process.platform===`win32`?`pnpm.cmd`:`pnpm`,[`ls`,`-g`,`--json`]);return P(JSON.parse(t)[0].dependencies||{},(e,{version:t})=>({[e]:t}))},Y=e=>async(t,n,r={})=>e(t,n,r,{},await zr(r)),Vr=Y(Er),Hr=Y(Sr),Ur=Y(Dr),Wr=Y(kr),Gr=Y(Or),Kr=Y(Ar),qr=Y(jr);async function Jr(e,t={},n,r){let{stdout:i}=await(0,f.default)(process.platform===`win32`?`pnpm.cmd`:`pnpm`,[...t.global?`global`:[],...Array.isArray(e)?e:[e],...t.prefix?`--prefix=${t.prefix}`:[]],r,n);return i}var Yr=Jr,Xr=o(((e,t)=>{function n(e){return e}t.exports=n})),Zr=o(((e,t)=>{t.exports=Ue()(R(),`WeakMap`)})),Qr=o(((e,t)=>{var n=Zr();t.exports=n&&new n})),$r=o(((e,t)=>{var n=Xr(),r=Qr();t.exports=r?function(e,t){return r.set(e,t),e}:n})),ei=o(((e,t)=>{var n=Ie(),r=Object.create;t.exports=function(){function e(){}return function(t){if(!n(t))return{};if(r)return r(t);e.prototype=t;var i=new e;return e.prototype=void 0,i}}()})),ti=o(((e,t)=>{var n=ei(),r=Ie();function i(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var i=n(e.prototype),a=e.apply(i,t);return r(a)?a:i}}t.exports=i})),ni=o(((e,t)=>{var n=ti(),r=R(),i=1;function a(e,t,a){var o=t&i,s=n(e);function c(){return(this&&this!==r&&this instanceof c?s:e).apply(o?a:this,arguments)}return c}t.exports=a})),ri=o(((e,t)=>{function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}t.exports=n})),ii=o(((e,t)=>{var n=Math.max;function r(e,t,r,i){for(var a=-1,o=e.length,s=r.length,c=-1,l=t.length,u=n(o-s,0),d=Array(l+u),f=!i;++c<l;)d[c]=t[c];for(;++a<s;)(f||a<o)&&(d[r[a]]=e[a]);for(;u--;)d[c++]=e[a++];return d}t.exports=r})),ai=o(((e,t)=>{var n=Math.max;function r(e,t,r,i){for(var a=-1,o=e.length,s=-1,c=r.length,l=-1,u=t.length,d=n(o-c,0),f=Array(d+u),p=!i;++a<d;)f[a]=e[a];for(var m=a;++l<u;)f[m+l]=t[l];for(;++s<c;)(p||a<o)&&(f[m+r[s]]=e[a++]);return f}t.exports=r})),oi=o(((e,t)=>{function n(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}t.exports=n})),si=o(((e,t)=>{function n(){}t.exports=n})),ci=o(((e,t)=>{var n=ei(),r=si(),i=4294967295;function a(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=i,this.__views__=[]}a.prototype=n(r.prototype),a.prototype.constructor=a,t.exports=a})),li=o(((e,t)=>{function n(){}t.exports=n})),ui=o(((e,t)=>{var n=Qr(),r=li();t.exports=n?function(e){return n.get(e)}:r})),di=o(((e,t)=>{t.exports={}})),fi=o(((e,t)=>{var n=di(),r=Object.prototype.hasOwnProperty;function i(e){for(var t=e.name+``,i=n[t],a=r.call(n,t)?i.length:0;a--;){var o=i[a],s=o.func;if(s==null||s==e)return o.name}return t}t.exports=i})),pi=o(((e,t)=>{var n=ei(),r=si();function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=n(r.prototype),i.prototype.constructor=i,t.exports=i})),mi=o(((e,t)=>{function n(e,t){var n=-1,r=e.length;for(t||=Array(r);++n<r;)t[n]=e[n];return t}t.exports=n})),hi=o(((e,t)=>{var n=ci(),r=pi(),i=mi();function a(e){if(e instanceof n)return e.clone();var t=new r(e.__wrapped__,e.__chain__);return t.__actions__=i(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}t.exports=a})),gi=o(((e,t)=>{var n=ci(),r=pi(),i=si(),a=L(),o=Ne(),s=hi(),c=Object.prototype.hasOwnProperty;function l(e){if(o(e)&&!a(e)&&!(e instanceof n)){if(e instanceof r)return e;if(c.call(e,`__wrapped__`))return s(e)}return new r(e)}l.prototype=i.prototype,l.prototype.constructor=l,t.exports=l})),_i=o(((e,t)=>{var n=ci(),r=ui(),i=fi(),a=gi();function o(e){var t=i(e),o=a[t];if(typeof o!=`function`||!(t in n.prototype))return!1;if(e===o)return!0;var s=r(o);return!!s&&e===s[0]}t.exports=o})),vi=o(((e,t)=>{var n=800,r=16,i=Date.now;function a(e){var t=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}t.exports=a})),yi=o(((e,t)=>{var n=$r();t.exports=vi()(n)})),bi=o(((e,t)=>{var n=/\{\n\/\* \[wrapped with (.+)\] \*/,r=/,? & /;function i(e){var t=e.match(n);return t?t[1].split(r):[]}t.exports=i})),xi=o(((e,t)=>{var n=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function r(e,t){var r=t.length;if(!r)return e;var i=r-1;return t[i]=(r>1?`& `:``)+t[i],t=t.join(r>2?`, `:` `),e.replace(n,`{
|
|
343
343
|
/* [wrapped with `+t+`] */
|
|
344
|
-
`)}t.exports=r})),
|
|
345
|
-
Merged yarn config in npm format:`,`verbose`),H(e,l,`verbose`)),l});function Da(e){return new Promise((t,n)=>{let r={},i=N.default.parse();i.on(`data`,e=>{if(e.type===`info`&&!e.data.match(/^Visit/)){let[,t,n]=e.data.match(/"(@?.*)@(.*)"/)||[];r[t]={version:n,from:t}}else e.type===`error`&&n(Error(e.data))}),i.on(`end`,()=>{t({dependencies:r})}),i.on(`error`,n),i.write(e),i.end()})}function Oa(e){return new Promise((t,n)=>{let r=N.default.parse(),i=!1;r.on(`data`,e=>{i||(i=!0,t(JSON.stringify(e)))}),r.on(`error`,n),r.write(e),r.end()})}const ka=process.platform===`win32`?`yarn.cmd`:`yarn`;async function Aa(e,t={},n={},r={}){let{stdout:i}=await(0,f.default)(ka,[...t.global?[`global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--depth=0`,`--json`,`--no-progress`,...Array.isArray(e)?e:[e]],n,r);return i}async function ja(e){if(e.prefix)return Promise.resolve(e.prefix);let{stdout:t}=await(0,f.default)(ka,[`global`,`dir`]).catch(()=>({stdout:null}));return e.global&&t&&t.match(`Cellar`)?`/usr/local`:process.platform===`win32`&&e.global&&!process.env.prefix?t?t.trim():`${process.env.LOCALAPPDATA}\\Yarn\\Data\\global`:null}const Ma=async(e={},t)=>P((await Da(await Aa(`list`,e,{},{...e.cwd?{cwd:e.cwd}:{},...t}))).dependencies,(e,t)=>({[e]:t.version||t.required?.version})),X=e=>async(t,n,r={})=>e(t,n,r,await Ea(r)),Na=X(Xr),Pa=X(Kr),Fa=X(Zr),Ia=X($r),La=X(Qr),Ra=X(ei),za=X(ti),Ba=async(e,t,n)=>{let{stdout:r}=await(0,f.default)(ka,[`--version`],{rejectOnError:!1},n);if(r.startsWith(`1`)){let r=[`--json`,`info`,`${e}@${t}`,`peerDependencies`],{stdout:i}=await(0,f.default)(ka,r,{rejectOnError:!1},n);return i&&Rr(i,{command:r.join(` `)}).data||{}}else{let r=[`--json`,`npm`,`info`,`${e}@${t}`,`--fields`,`peerDependencies`],{stdout:i}=await(0,f.default)(ka,r,{rejectOnError:!1},n);if(!i)return{};try{return Rr(i,{command:r.join(` `)}).peerDependencies||{}}catch(e){try{let e=await Oa(i);if(e)return Rr(e,{command:r.join(` `)}).peerDependencies||{}}catch{}throw e}}},Va=async(e,t,n={})=>Jr(e,t,n,await Ea(n)),Ha=async(e,t,n,r={})=>zr(e,t,n,r,await Ea(r));var Ua=Aa;function Wa(e,t,{color:n=!0}={}){if(e.cli)H(e,n?I.red(t):t,null,`error`),process.exit(1);else throw Error(t)}var Z=Wa;const Ga=async(e,t)=>{let n,r;try{r=await g.default.readFile(t,`utf-8`),n=JSON.parse(r)}catch{Z(e,`Missing or invalid ${t}`)}return{name:void 0,pkg:n,pkgFile:r,filepath:t}};var Ka=Ga;const qa={dev:`devDependencies`,peer:`peerDependencies`,prod:`dependencies`,optional:`optionalDependencies`},Ja=e=>(e?typeof e==`string`?e.split(`,`):e:q.dep.default).map(e=>qa[e]||e);var Ya=Ja;function Xa(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function Za(e,t,n){let r=await g.default.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`(${Xa(n)}\\s*:\\s*["'])(${Xa(i)})(["'])`,o=`(${Xa(n)}\\s*:\\s*)(${Xa(i)})(\\s*(?:\\n|$))`,s=new RegExp(a,`g`),c=new RegExp(o,`g`);return e.replace(s,`$1${r}$3`).replace(c,`$1${r}$3`)},r)}async function Qa(e,t,n){let r=await g.default.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`("${Xa(n)}"\\s*:\\s*")(${Xa(i)})(")`,o=new RegExp(a,`g`);return e.replace(o,`$1${r}$3`)},r)}async function $a(e,t,n){let r=u.default.extname(e);if(r===`.yaml`||r===`.yml`)return Za(e,t,n);if(r===`.json`)return Qa(e,t,n);throw Error(`Unsupported catalog file type: ${e}`)}var eo=$a;function to(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function no(e,t,n,r,i){if(i){let r=u.default.basename(i),a=u.default.extname(i);if(i.includes(`#catalog`)){let e=i.replace(`#catalog`,``);if(u.default.extname(e)===`.json`)return eo(e,t,n)}if(r===`pnpm-workspace.yaml`||r.includes(`catalog`)&&(a===`.yaml`||a===`.yml`)){let r=JSON.parse(e);if(typeof r==`object`&&r.name===`catalog-dependencies`&&typeof r.dependencies==`object`&&Object.keys(r).length<=3){let e=await g.default.readFile(i,`utf-8`),t=M.default.load(e);if(t.catalogs&&=Object.entries(t.catalogs).reduce((e,[t,r])=>({...e,[t]:{...r,...Object.entries(n).filter(([e])=>r[e]).reduce((e,[t,n])=>({...e,[t]:n}),{})}}),{}),t.catalog){let e=t.catalog;t.catalog={...e,...Object.entries(n).filter(([t])=>e[t]).reduce((e,[t,n])=>({...e,[t]:n}),{})}}return t.catalogs?.default&&(t.catalog=t.catalogs.default),JSON.stringify(t,null,2)}return eo(i,t,n)}if(a===`.json`){let r=JSON.parse(e),a=r.catalog||r.catalogs,o=r.workspaces&&!Array.isArray(r.workspaces)&&(r.workspaces.catalog||r.workspaces.catalogs);if(a||o)return eo(i,t,n)}}let a=[...Ya(r.dep),`overrides`],o=RegExp(`"(${a.join(`|`)})"s*:[^}]*`,`g`),s=e.replace(o,e=>Object.entries(n).reduce((e,[r])=>{let i=`"${r}"\\s*:\\s*("|{\\s*"."\\s*:\\s*")(${to(t[r])})"`,a=new RegExp(i,`g`);return e.replace(a,(e,t)=>`"${r}${t?`": ${t}`:`: `}${n[r]}"`)},e));if(a.includes(`packageManager`)){let t=JSON.parse(e);if(t.packageManager){let[e]=t.packageManager.split(`@`);n[e]&&(s=s.replace(/"packageManager"\s*:\s*".*?@[^"]*"/,`"packageManager": "${e}@${n[e]}"`))}}return s}var ro=no;const io=(e,t,n,{spawnOptions:r,spawnPleaseOptions:i}={})=>{n&&console.log(I.blue([t.packageManager,...e].join(` `)));let a={cwd:t.cwd||process.cwd(),env:{...process.env,...t.packageManager===`pnpm`?null:{CI:`1`},FORCE_COLOR:`1`,...r?.env},...r},o={...t.global?{global:!0}:null,...t.prefix?{prefix:t.prefix}:null};return(t.packageManager===`pnpm`?yi:t.packageManager===`yarn`?Ua:t.packageManager===`bun`?si:ni)(e,o,i,a)},ao=async e=>{(e.packageData||e.packageFile)&&(console.error(`--packageData and --packageFile are not allowed with --doctor. You must execute "ncu --doctor" in a directory with a package file so it can install dependencies and test them.`),process.exit(1));let t;try{t=await Ka(e,`package.json`)}catch{console.error(`Missing or invalid package.json`),process.exit(1)}return!e.doctorTest&&!t.pkg.scripts?.test&&(console.error(`No npm "test" script defined. You must define a "test" script in the "scripts" section of your package.json to use --doctor.`),process.exit(1)),t},oo=async(e,t)=>{await ve();let n=t.packageManager===`yarn`?`yarn.lock`:t.packageManager===`pnpm`?`pnpm-lock.yaml`:t.packageManager===`bun`?`bun.lock`:`package-lock.json`,{pkg:r,pkgFile:i}=await ao(t),a={...r.dependencies,...r.devDependencies,...r.optionalDependencies},o=async()=>{if(t.doctorInstall){let[e,...n]=t.doctorInstall.split(` `);console.log(I.blue(t.doctorInstall)),await(0,f.default)(e,n)}else await io([`install`],{packageManager:t.packageManager},!0)},s=async()=>{let e={stderr:e=>{console.error(I.red(e.toString()))},stdout:e=>{process.stdout.write(e.toString())}};if(t.doctorTest){let n=t.doctorTest.matchAll(/"(.+?)"|'(.+?)'|[^ ]+/g),r=[];for(let e of n)r=[...r,e[2]||e[1]||e[0]];let[i,...a]=r;console.log(I.blue(t.doctorTest)),await(0,f.default)(i,a,e)}else await io([`run`,`test`],{packageManager:t.packageManager},!0,{spawnPleaseOptions:e})};console.log(`Running tests before upgrading`),await o();let c=``;try{c=await g.default.readFile(n,`utf-8`)}catch{if(t.packageManager===`bun`){n=`bun.lockb`;try{c=await g.default.readFile(n,`utf-8`)}catch{}}}try{await s()}catch{console.error(`Tests failed before we even got started!`),process.exit(1)}t.interactive||console.log(`Upgrading all dependencies and re-running tests`),console.log(I.blue(`ncu `+process.argv.slice(2).filter(e=>e!==`--doctor`).join(` `))),process.env.NCU_DOCTOR=`1`;let l=await e({...t,silent:!0,doctor:!1});if(Object.keys(l||{}).length===0){console.log(`All dependencies are up-to-date `+I.green.bold(`:)`));return}let u=!1;try{await o(),u=!0,await s(),console.log(`${I.green(`✓`)} Tests pass`),await Sn(t,{current:a,upgraded:l,total:Object.keys(l||{}).length}),console.log(`\n${t.interactive?`Chosen`:`All`} dependencies upgraded and installed ${I.green(`:)`)}`)}catch{console.error(I.red(u?`Tests failed`:`Install failed`)),console.log(`Identifying broken dependencies`),await g.default.writeFile(`package.json`,i),c?await g.default.writeFile(n,c):await g.default.rm(n,{recursive:!0,force:!0});let e=i;if(u)try{await o()}catch{let e=(t.packageManager||`npm`)+` install`;throw Error(`Error: Doctor mode was about to test individual upgrades, but ${I.cyan(e)} failed after rolling back to your existing package and lock files. This is unexpected since the initial install before any upgrades succeeded. Either npm failed to revert a partial install, or failed anomalously on the second run. Please check your internet connection and retry. If doctor mode fails consistently, report a bug with your complete list of dependency versions at https://github.com/raineorshine/npm-check-updates/issues.`)}let d,f;for([d,f]of Object.entries(l))try{if(await io([...t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`?[`add`]:[`install`,`--no-save`],`${d}@${f}`],{packageManager:t.packageManager},!0),r.scripts?.prepare)try{await io([`run`,`prepare`],{packageManager:t.packageManager},!0)}catch(e){throw console.error(I.red(`Prepare script failed`)),e}await s(),console.log(` ${I.green(`✓`)} ${d} ${a[d]} → ${f}`),e=await ro(e,{[d]:a[d]},{[d]:f},t),c=await g.default.readFile(n,`utf-8`)}catch(r){console.error(` ${I.red(`✗`)} ${d} ${a[d]} → ${f}\n`),console.error(I.red(r)),await g.default.writeFile(n,c),(t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`)&&await g.default.writeFile(`package.json`,e)}e!==i&&(console.log(`Saving partially upgraded package.json`),await g.default.writeFile(`package.json`,e)),await o()}};var so=oo;async function co(e){let t,n=null,r=e.packageFile||`package.json`;function i(t,n){if(t!=null){let n=u.default.resolve(t);H(e,`${e.upgrade?`Upgrading`:`Checking`} ${n}`)}else Z(e,`${I.red(`No ${n}`)}\n\nPlease add a ${n} to the current directory, specify the ${I.cyan(`--packageFile`)} or ${I.cyan(`--packageData`)} options, or pipe a ${n} to stdin and specify ${I.cyan(`--stdin`)}.`,{color:!1});return g.default.readFile(t,`utf-8`).catch(t=>{Z(e,t)})}if(H(e,`Running in local mode`,`verbose`),H(e,`Finding package file data`,`verbose`),e.packageData)n=null,t=Promise.resolve(e.packageData);else if(e.packageFile)n=e.packageFile,t=i(n,r);else if(e.stdin){H(e,`Waiting for package data on stdin`,`verbose`);let a=await(0,ee.text)(process.stdin),o=a.trim().length>0?a:null;n=o||!r?null:await(0,O.findUp)(r),t=o||i(await n,r)}else n=r?await(0,O.findUp)(!e.packageFile&&e.packageManager===`deno`?[`deno.json`,`deno.jsonc`]:r,{cwd:e.cwd||process.cwd()}):null,t=i(n,r);return{pkgData:await t,pkgFile:n||null,pkgPath:r}}var lo=co;function uo(e){return{ignore:[`**/node_modules/**`,...typeof e.ignore==`string`?[e.ignore]:e.ignore||[]]}}const fo=async e=>{let t=u.default.join(u.default.dirname(e),`pnpm-workspace.yaml`),n;try{n=await g.default.readFile(t,`utf-8`)}catch{return null}return M.default.load(n)},po=async(e,t)=>{let n={};if(e.packageManager===`pnpm`){let e=await fo(t);e&&!Array.isArray(e)&&(e.catalog&&Object.assign(n,e.catalog),e.catalogs&&Object.assign(n,...Object.values(e.catalogs)))}let r=JSON.parse(await g.default.readFile(t,`utf-8`));return Object.assign(n,r.catalog,...Object.values(r.catalogs??{})),r.workspaces&&!Array.isArray(r.workspaces)&&Object.assign(n,r.workspaces.catalog,...Object.values(r.workspaces.catalogs??{})),Object.keys(n).length>0?n:null};async function mo(e,t,n,r){let{pkgData:i,pkgPath:a}=await lo({...e,packageFile:n,loglevel:`silent`}),o=(typeof i==`string`?JSON.parse(i):i).workspaces||await fo(a||``),s=Array.isArray(o)?o:o?.packages;s||Z(e,`workspaces property missing from package.json. --workspace${e.workspaces?`s`:``} only works when you specify a "workspaces" property in your package.json.`);let c=(s||[]).map(e=>u.default.join(r,e,`package.json`).replace(/\\/g,`/`)),l=uo(e),d=te.default.sync(c,l),f=await Promise.all(d.map(async t=>{let n=await Ka(e,t);return n.name=n.pkg.name||t.split(`/`).slice(-2)[0],n})),p=f.map(e=>e.name||``);return e.workspaces===!0?[f,p]:[f.filter(n=>e.workspace?.some(e=>s?.some(i=>n.name===e||n.filepath===u.default.join(r,u.default.dirname(i),e,t).replace(/\\/g,`/`)))),p]}async function ho(e,t){if(!t)return null;let n=await po(e,t);if(!n)return null;let r={name:`catalog-dependencies`,version:`1.0.0`,dependencies:n};return{filepath:e.packageManager===`pnpm`?u.default.join(u.default.dirname(t),`pnpm-workspace.yaml`):`${t}#catalog`,pkg:r,pkgFile:JSON.stringify(r,null,2),name:`catalogs`}}async function go(e){let t=e.packageFile||`package.json`,n=e.cwd?(0,D.default)(e.cwd):`./`,r=e.packageFile||(e.cwd?u.default.join(n,`package.json`):`package.json`),i=e.workspaces===!0||e.workspace!==void 0&&e.workspace.length!==0,a=[];if(!i||e.root===!0){let t=r.replace(/\\/g,`/`),n=uo(e),i=te.default.sync(t,n),o=await Promise.all(i.map(async t=>await Ka(e,t)));a=[...a,...o]}if(!i)return[a,[]];let o=null;if(i){let{pkgPath:t}=await lo({...e,packageFile:r,loglevel:`silent`});t&&(o=await ho(e,t))}let[s,c]=await mo(e,t,r,n);if(a=[...a,...s],o&&(a=[...a,o]),e.ignore){let t=Array.isArray(e.ignore)?e.ignore:[e.ignore];a=a.filter(e=>{let r=u.default.relative(n,e.filepath).replace(/\\/g,`/`),i=u.default.dirname(r).replace(/\\/g,`/`);return!t.some(e=>{let t=(0,ne.default)(e);return t(r)||t(i)||t(`${i}/`)})})}return[a,c]}var _o=go;async function vo({configFileName:e,configFilePath:t,packageFile:n,global:r,options:i}){let{default:a,Chalk:o}=await import(`chalk`),s=i?.color?new o({level:1}):a,c=(0,re.rcFile)(`ncurc`,{configFileName:e||`.ncurc`,defaultExtension:[`.json`,`.yml`,`.js`],cwd:t||(r?m.default.homedir():n?u.default.dirname(n):void 0)}),l=c?.filePath;e&&!l&&Z(i,`Config file ${e} not found in ${t||process.cwd()}`);let{$schema:d,...f}=c?.config||{},p=f;typeof p.format==`string`&&(p.format=q.format.parse(p.format));let h=Object.keys(p).filter(e=>!q[e]);return h.length>0&&(console.error(s.red(`Unknown option${h.length===1?``:`s`} found in config file:`),s.gray(h.join(`, `))),console.info(`Using config file `+l),console.info(`You can change the config file path with ${s.blue(`--configFilePath`)}`)),{filePath:l,args:Object.entries(p).flatMap(([e,t])=>typeof t==`boolean`||q[e]?.type===`boolean`?t?[`--${e}`]:[]:[`--${e}`,t]),config:p}}var yo=vo,bo=s({greatest:()=>To,greatestLevel:()=>Eo,latest:()=>wo,minor:()=>Do,newest:()=>Ao,patch:()=>Oo,semver:()=>ko});const xo=(0,oe.promisify)(ae.default.execFile);async function So(e){let t=(await xo(`git`,[`ls-remote`,`--tags`,e])).stdout,n={};for(let e of t.trim().split(`
|
|
346
|
-
`)){let t=e.split(` `);n[t[1].replace(/^refs\/tags\/|\^{}$/g,``)]=t[0]}return n}async function
|
|
347
|
-
See: https://github.com/raineorshine/npm-check-updates/issues/759#issuecomment-723587297`):a.packageFile&&a.deep?Z(a,`Cannot specify both --packageFile and --deep. --deep is an alias for --packageFile '**/package.json'`):a.format?.includes(`lines`)&&a.jsonUpgraded?Z(a,`Cannot specify both --format lines and --jsonUpgraded.`):a.format?.includes(`lines`)&&a.jsonAll?Z(a,`Cannot specify both --format lines and --jsonAll.`):a.format?.includes(`lines`)&&a.format.length>1?Z(a,`Cannot use --format lines with other formatting options.`):a.workspace?.length&&a.workspaces?Z(a,`Cannot specify both --workspace and --workspaces.`):a.deep&&(a.workspace?.length||a.workspaces)?Z(a,`Cannot specify both --deep and --workspace${a.workspaces?`s`:``}.`):a.doctor&&(a.workspace?.length||a.workspaces)?Z(a,`Doctor mode is not currently supported with --workspace${a.workspaces?`s`:``}.`):a.packageManager===`staticRegistry`&&!a.registry?Z(a,`When --package-manager staticRegistry is specified, you must provide the path for the registry file with --registry.`):a.registryType===`json`&&!a.registry?Z(a,`When --registryType json is specified, you must provide the path for the registry file with --registry. Run "ncu --help registryType" for details.`):m!==`json`&&a.registry&&!
|
|
348
|
-
Supported version targets are: `+e.join(`, `)+(h?``:`, and tags (e.g. @next)`),{color:!1})}try{m=await v(a,c,{...t,distTag:f,pre:t.pre==null?u.startsWith(`@`)||
|
|
344
|
+
`)}t.exports=r})),Si=o(((e,t)=>{function n(e){return function(){return e}}t.exports=n})),Ci=o(((e,t)=>{var n=Ue();t.exports=function(){try{var e=n(Object,`defineProperty`);return e({},``,{}),e}catch{}}()})),wi=o(((e,t)=>{var n=Si(),r=Ci(),i=Xr();t.exports=r?function(e,t){return r(e,`toString`,{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:i})),Ti=o(((e,t)=>{var n=wi();t.exports=vi()(n)})),Ei=o(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}t.exports=n})),Di=o(((e,t)=>{function n(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a<i;)if(t(e[a],a,e))return a;return-1}t.exports=n})),Oi=o(((e,t)=>{function n(e){return e!==e}t.exports=n})),ki=o(((e,t)=>{function n(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}t.exports=n})),Ai=o(((e,t)=>{var n=Di(),r=Oi(),i=ki();function a(e,t,a){return t===t?i(e,t,a):n(e,r,a)}t.exports=a})),ji=o(((e,t)=>{var n=Ai();function r(e,t){return!!(e!=null&&e.length)&&n(e,t,0)>-1}t.exports=r})),Mi=o(((e,t)=>{var n=Ei(),r=ji(),i=[[`ary`,128],[`bind`,1],[`bindKey`,2],[`curry`,8],[`curryRight`,16],[`flip`,512],[`partial`,32],[`partialRight`,64],[`rearg`,256]];function a(e,t){return n(i,function(n){var i=`_.`+n[0];t&n[1]&&!r(e,i)&&e.push(i)}),e.sort()}t.exports=a})),Ni=o(((e,t)=>{var n=bi(),r=xi(),i=Ti(),a=Mi();function o(e,t,o){var s=t+``;return i(e,r(s,a(n(s),o)))}t.exports=o})),Pi=o(((e,t)=>{var n=_i(),r=yi(),i=Ni(),a=1,o=2,s=4,c=8,l=32,u=64;function d(e,t,d,f,p,m,h,g,_,v){var y=t&c,b=y?h:void 0,x=y?void 0:h,S=y?m:void 0,C=y?void 0:m;t|=y?l:u,t&=~(y?u:l),t&s||(t&=~(a|o));var w=[e,t,p,S,b,C,x,g,_,v],T=d.apply(void 0,w);return n(e)&&r(T,w),T.placeholder=f,i(T,e,t)}t.exports=d})),Fi=o(((e,t)=>{function n(e){return e.placeholder}t.exports=n})),Ii=o(((e,t)=>{var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function i(e,t){var i=typeof e;return t??=n,!!t&&(i==`number`||i!=`symbol`&&r.test(e))&&e>-1&&e%1==0&&e<t}t.exports=i})),Li=o(((e,t)=>{var n=mi(),r=Ii(),i=Math.min;function a(e,t){for(var a=e.length,o=i(t.length,a),s=n(e);o--;){var c=t[o];e[o]=r(c,a)?s[c]:void 0}return e}t.exports=a})),Ri=o(((e,t)=>{var n=`__lodash_placeholder__`;function r(e,t){for(var r=-1,i=e.length,a=0,o=[];++r<i;){var s=e[r];(s===t||s===n)&&(e[r]=n,o[a++]=r)}return o}t.exports=r})),zi=o(((e,t)=>{var n=ii(),r=ai(),i=oi(),a=ti(),o=Pi(),s=Fi(),c=Li(),l=Ri(),u=R(),d=1,f=2,p=8,m=16,h=128,g=512;function _(e,t,v,y,b,x,S,C,w,T){var E=t&h,D=t&d,ee=t&f,O=t&(p|m),k=t&g,A=ee?void 0:a(e);function j(){for(var d=arguments.length,f=Array(d),p=d;p--;)f[p]=arguments[p];if(O)var m=s(j),h=i(f,m);if(y&&(f=n(f,y,b,O)),x&&(f=r(f,x,S,O)),d-=h,O&&d<T){var g=l(f,m);return o(e,t,_,j.placeholder,v,f,g,C,w,T-d)}var te=D?v:this,M=ee?te[e]:e;return d=f.length,C?f=c(f,C):k&&d>1&&f.reverse(),E&&w<d&&(f.length=w),this&&this!==u&&this instanceof j&&(M=A||a(M)),M.apply(te,f)}return j}t.exports=_})),Bi=o(((e,t)=>{var n=ri(),r=ti(),i=zi(),a=Pi(),o=Fi(),s=Ri(),c=R();function l(e,t,l){var u=r(e);function d(){for(var r=arguments.length,f=Array(r),p=r,m=o(d);p--;)f[p]=arguments[p];var h=r<3&&f[0]!==m&&f[r-1]!==m?[]:s(f,m);return r-=h.length,r<l?a(e,t,i,d.placeholder,void 0,f,h,void 0,void 0,l-r):n(this&&this!==c&&this instanceof d?u:e,this,f)}return d}t.exports=l})),Vi=o(((e,t)=>{var n=ri(),r=ti(),i=R(),a=1;function o(e,t,o,s){var c=t&a,l=r(e);function u(){for(var t=-1,r=arguments.length,a=-1,d=s.length,f=Array(d+r),p=this&&this!==i&&this instanceof u?l:e;++a<d;)f[a]=s[a];for(;r--;)f[a++]=arguments[++t];return n(p,c?o:this,f)}return u}t.exports=o})),Hi=o(((e,t)=>{var n=ii(),r=ai(),i=Ri(),a=`__lodash_placeholder__`,o=1,s=2,c=4,l=8,u=128,d=256,f=Math.min;function p(e,t){var p=e[1],m=t[1],h=p|m,g=h<(o|s|u),_=m==u&&p==l||m==u&&p==d&&e[7].length<=t[8]||m==(u|d)&&t[7].length<=t[8]&&p==l;if(!(g||_))return e;m&o&&(e[2]=t[2],h|=p&o?0:c);var v=t[3];if(v){var y=e[3];e[3]=y?n(y,v,t[4]):v,e[4]=y?i(e[3],a):t[4]}return v=t[5],v&&(y=e[5],e[5]=y?r(y,v,t[6]):v,e[6]=y?i(e[5],a):t[6]),v=t[7],v&&(e[7]=v),m&u&&(e[8]=e[8]==null?t[8]:f(e[8],t[8])),e[9]??=t[9],e[0]=t[0],e[1]=h,e}t.exports=p})),Ui=o(((e,t)=>{var n=/\s/;function r(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}t.exports=r})),Wi=o(((e,t)=>{var n=Ui(),r=/^\s+/;function i(e){return e&&e.slice(0,n(e)+1).replace(r,``)}t.exports=i})),Gi=o(((e,t)=>{var n=Wi(),r=Ie(),i=Pe(),a=NaN,o=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,l=parseInt;function u(e){if(typeof e==`number`)return e;if(i(e))return a;if(r(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=r(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=n(e);var u=s.test(e);return u||c.test(e)?l(e.slice(2),u?2:8):o.test(e)?a:+e}t.exports=u})),Ki=o(((e,t)=>{var n=Gi(),r=1/0,i=17976931348623157e292;function a(e){return e?(e=n(e),e===r||e===-r?(e<0?-1:1)*i:e===e?e:0):e===0?e:0}t.exports=a})),qi=o(((e,t)=>{var n=Ki();function r(e){var t=n(e),r=t%1;return t===t?r?t-r:t:0}t.exports=r})),Ji=o(((e,t)=>{var n=$r(),r=ni(),i=Bi(),a=zi(),o=Vi(),s=ui(),c=Hi(),l=yi(),u=Ni(),d=qi(),f=`Expected a function`,p=1,m=2,h=8,g=16,_=32,v=64,y=Math.max;function b(e,t,b,x,S,C,w,T){var E=t&m;if(!E&&typeof e!=`function`)throw TypeError(f);var D=x?x.length:0;if(D||(t&=~(_|v),x=S=void 0),w=w===void 0?w:y(d(w),0),T=T===void 0?T:d(T),D-=S?S.length:0,t&v){var ee=x,O=S;x=S=void 0}var k=E?void 0:s(e),A=[e,t,b,x,S,ee,O,C,w,T];if(k&&c(A,k),e=A[0],t=A[1],b=A[2],x=A[3],S=A[4],T=A[9]=A[9]===void 0?E?0:e.length:y(A[9]-D,0),!T&&t&(h|g)&&(t&=~(h|g)),!t||t==p)var j=r(e,t,b);else j=t==h||t==g?i(e,t,T):(t==_||t==(p|_))&&!S.length?o(e,t,b,x):a.apply(void 0,A);return u((k?n:l)(j,A),e,t)}t.exports=b})),Yi=o(((e,t)=>{var n=Ji(),r=8;function i(e,t,a){t=a?void 0:t;var o=n(e,r,void 0,void 0,void 0,void 0,void 0,t);return o.placeholder=i.placeholder,o}i.placeholder={},t.exports=i})),Xi=s({default:()=>ya,defaultPrefix:()=>sa,distTag:()=>la,getEngines:()=>_a,getPathToLookForYarnrc:()=>ta,getPeerDependencies:()=>ga,greatest:()=>ua,latest:()=>da,list:()=>ca,minor:()=>fa,newest:()=>pa,npmAuthTokenKeyValue:()=>$i,packageAuthorChanged:()=>va,patch:()=>ma,semver:()=>ha}),Zi=l(Yi(),1);const Qi=(e,t)=>e.replace(/\$\{([^:-]+)(?:(:)?-([^}]*))?\}/g,(e,n,r,i,a)=>t[n]||(i?a:``)),$i=(0,Zi.default)((e,t,n)=>{if(n.npmAuthToken){let r=n.npmRegistryServer||e[`@${t}:registry`];if(r){let e=r.replace(/^https?:/,``);return e.endsWith(`/`)&&(e=e.slice(0,-1)),{[`${e}/:_authToken`]:Qi(n.npmAuthToken,process.env)}}}return null}),ea=(e,t)=>t.npmRegistryServer?{[`@${e}:registry`]:Qi(t.npmRegistryServer,process.env)}:null;async function ta(e,t=g.default.readdir){if(e.global)return;let n=(await Rn(e,t))?.directoryPath;if(n)return u.default.join(n,`.yarnrc.yml`)}const na=(0,C.default)(async e=>{let t=await ta(e),n=u.default.join(m.default.homedir(),`.yarnrc.yml`),r=typeof t==`string`&&await be(t),i=await be(n),a=r?await g.default.readFile(t,`utf-8`):``,o=i?await g.default.readFile(n,`utf-8`):``,s=A.default.load(a),c=A.default.load(o),l={...N(c?.npmScopes||{},ea),...N(s?.npmScopes||{},ea)};return l={...l,...N(c?.npmScopes||{},$i(l)),...N(s?.npmScopes||{},$i(l))},r&&(B(e,`\nUsing local yarn config at ${t}:`,`verbose`),B(e,s,`verbose`)),i&&(B(e,`\nUsing user yarn config at ${n}:`,`verbose`),B(e,s,`verbose`)),Object.keys(l)&&(B(e,`
|
|
345
|
+
Merged yarn config in npm format:`,`verbose`),B(e,l,`verbose`)),l});function ra(e){return new Promise((t,n)=>{let r={},i=j.default.parse();i.on(`data`,e=>{if(e.type===`info`&&!e.data.match(/^Visit/)){let[,t,n]=e.data.match(/"(@?.*)@(.*)"/)||[];r[t]={version:n,from:t}}else e.type===`error`&&n(Error(e.data))}),i.on(`end`,()=>{t({dependencies:r})}),i.on(`error`,n),i.write(e),i.end()})}function ia(e){return new Promise((t,n)=>{let r=j.default.parse(),i=!1;r.on(`data`,e=>{i||(i=!0,t(JSON.stringify(e)))}),r.on(`error`,n),r.write(e),r.end()})}const aa=process.platform===`win32`?`yarn.cmd`:`yarn`;async function oa(e,t={},n={},r={}){let{stdout:i}=await(0,f.default)(aa,[...t.global?[`global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--depth=0`,`--json`,`--no-progress`,...Array.isArray(e)?e:[e]],n,r);return i}async function sa(e){if(e.prefix)return Promise.resolve(e.prefix);let{stdout:t}=await(0,f.default)(aa,[`global`,`dir`]).catch(()=>({stdout:null}));return e.global&&t&&t.match(`Cellar`)?`/usr/local`:process.platform===`win32`&&e.global&&!process.env.prefix?t?t.trim():`${process.env.LOCALAPPDATA}\\Yarn\\Data\\global`:null}const ca=async(e={},t)=>N((await ra(await oa(`list`,e,{},{...e.cwd?{cwd:e.cwd}:{},...t}))).dependencies,(e,t)=>({[e]:t.version||t.required?.version})),X=e=>async(t,n,r={})=>e(t,n,r,await na(r)),la=X(Er),ua=X(Sr),da=X(Dr),fa=X(kr),pa=X(Or),ma=X(Ar),ha=X(jr),ga=async(e,t,n)=>{let{stdout:r}=await(0,f.default)(aa,[`--version`],{rejectOnError:!1},n);if(r.startsWith(`1`)){let r=[`--json`,`info`,`${e}@${t}`,`peerDependencies`],{stdout:i}=await(0,f.default)(aa,r,{rejectOnError:!1},n);return i&&q(i,{command:r.join(` `)}).data||{}}else{let r=[`--json`,`npm`,`info`,`${e}@${t}`,`--fields`,`peerDependencies`],{stdout:i}=await(0,f.default)(aa,r,{rejectOnError:!1},n);if(!i)return{};try{return q(i,{command:r.join(` `)}).peerDependencies||{}}catch(e){try{let e=await ia(i);if(e)return q(e,{command:r.join(` `)}).peerDependencies||{}}catch{}throw e}}},_a=async(e,t,n={})=>wr(e,t,n,await na(n)),va=async(e,t,n,r={})=>hr(e,t,n,r,await na(r));var ya=oa;function ba(e,t,{color:n=!0}={}){if(e.cli)B(e,n?F.red(t):t,null,`error`),process.exit(1);else throw Error(t)}var Z=ba,xa=async(e,t)=>{let n,r;try{r=await g.default.readFile(t,`utf-8`),n=JSON.parse(r)}catch{Z(e,`Missing or invalid ${t}`)}return{name:void 0,pkg:n,pkgFile:r,filepath:t}};const Sa={dev:`devDependencies`,peer:`peerDependencies`,prod:`dependencies`,optional:`optionalDependencies`};var Ca=e=>(e?typeof e==`string`?e.split(`,`):e:G.dep.default).map(e=>Sa[e]||e);function wa(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function Ta(e,t,n){let r=await g.default.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`(${wa(n)}\\s*:\\s*["'])(${wa(i)})(["'])`,o=`(${wa(n)}\\s*:\\s*)(${wa(i)})(\\s*(?:\\n|$))`,s=new RegExp(a,`g`),c=new RegExp(o,`g`);return e.replace(s,`$1${r}$3`).replace(c,`$1${r}$3`)},r)}async function Ea(e,t,n){let r=await g.default.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`("${wa(n)}"\\s*:\\s*")(${wa(i)})(")`,o=new RegExp(a,`g`);return e.replace(o,`$1${r}$3`)},r)}async function Da(e,t,n){let r=u.default.extname(e);if(r===`.yaml`||r===`.yml`)return Ta(e,t,n);if(r===`.json`)return Ea(e,t,n);throw Error(`Unsupported catalog file type: ${e}`)}var Oa=Da;function ka(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function Aa(e,t,n,r,i){if(i){let r=u.default.basename(i),a=u.default.extname(i);if(i.includes(`#catalog`)){let e=i.replace(`#catalog`,``);if(u.default.extname(e)===`.json`)return Oa(e,t,n)}if(r===`pnpm-workspace.yaml`||r.includes(`catalog`)&&(a===`.yaml`||a===`.yml`)){let r=JSON.parse(e);if(typeof r==`object`&&r.name===`catalog-dependencies`&&typeof r.dependencies==`object`&&Object.keys(r).length<=3){let e=await g.default.readFile(i,`utf-8`),t=A.default.load(e);if(t.catalogs&&=Object.entries(t.catalogs).reduce((e,[t,r])=>({...e,[t]:{...r,...Object.entries(n).filter(([e])=>r[e]).reduce((e,[t,n])=>({...e,[t]:n}),{})}}),{}),t.catalog){let e=t.catalog;t.catalog={...e,...Object.entries(n).filter(([t])=>e[t]).reduce((e,[t,n])=>({...e,[t]:n}),{})}}return t.catalogs?.default&&(t.catalog=t.catalogs.default),JSON.stringify(t,null,2)}return Oa(i,t,n)}if(a===`.json`){let r=JSON.parse(e),a=r.catalog||r.catalogs,o=r.workspaces&&!Array.isArray(r.workspaces)&&(r.workspaces.catalog||r.workspaces.catalogs);if(a||o)return Oa(i,t,n)}}let a=[...Ca(r.dep),`overrides`],o=RegExp(`"(${a.join(`|`)})"s*:[^}]*`,`g`),s=e.replace(o,e=>Object.entries(n).reduce((e,[r])=>{let i=`"${r}"\\s*:\\s*("|{\\s*"."\\s*:\\s*")(${ka(t[r])})"`,a=new RegExp(i,`g`);return e.replace(a,(e,t)=>`"${r}${t?`": ${t}`:`: `}${n[r]}"`)},e));if(a.includes(`packageManager`)){let t=JSON.parse(e);if(t.packageManager){let[e]=t.packageManager.split(`@`);n[e]&&(s=s.replace(/"packageManager"\s*:\s*".*?@[^"]*"/,`"packageManager": "${e}@${n[e]}"`))}}return s}var ja=Aa;const Ma=(e,t,n,{spawnOptions:r,spawnPleaseOptions:i}={})=>{n&&console.log(F.blue([t.packageManager,...e].join(` `)));let a={cwd:t.cwd||process.cwd(),env:{...process.env,...t.packageManager===`pnpm`?null:{CI:`1`},FORCE_COLOR:`1`,...r?.env},...r},o={...t.global?{global:!0}:null,...t.prefix?{prefix:t.prefix}:null};return(t.packageManager===`pnpm`?Yr:t.packageManager===`yarn`?ya:t.packageManager===`bun`?Lr:Mr)(e,o,i,a)},Na=async e=>{(e.packageData||e.packageFile)&&(console.error(`--packageData and --packageFile are not allowed with --doctor. You must execute "ncu --doctor" in a directory with a package file so it can install dependencies and test them.`),process.exit(1));let t;try{t=await xa(e,`package.json`)}catch{console.error(`Missing or invalid package.json`),process.exit(1)}return!e.doctorTest&&!t.pkg.scripts?.test&&(console.error(`No npm "test" script defined. You must define a "test" script in the "scripts" section of your package.json to use --doctor.`),process.exit(1)),t};var Pa=async(e,t)=>{await ve();let n=t.packageManager===`yarn`?`yarn.lock`:t.packageManager===`pnpm`?`pnpm-lock.yaml`:t.packageManager===`bun`?`bun.lock`:`package-lock.json`,{pkg:r,pkgFile:i}=await Na(t),a={...r.dependencies,...r.devDependencies,...r.optionalDependencies},o=async()=>{if(t.doctorInstall){let[e,...n]=t.doctorInstall.split(` `);console.log(F.blue(t.doctorInstall)),await(0,f.default)(e,n)}else await Ma([`install`],{packageManager:t.packageManager},!0)},s=async()=>{let e={stderr:e=>{console.error(F.red(e.toString()))},stdout:e=>{process.stdout.write(e.toString())}};if(t.doctorTest){let n=t.doctorTest.matchAll(/"(.+?)"|'(.+?)'|[^ ]+/g),r=[];for(let e of n)r=[...r,e[2]||e[1]||e[0]];let[i,...a]=r;console.log(F.blue(t.doctorTest)),await(0,f.default)(i,a,e)}else await Ma([`run`,`test`],{packageManager:t.packageManager},!0,{spawnPleaseOptions:e})};console.log(`Running tests before upgrading`),await o();let c=``;try{c=await g.default.readFile(n,`utf-8`)}catch{if(t.packageManager===`bun`){n=`bun.lockb`;try{c=await g.default.readFile(n,`utf-8`)}catch{}}}try{await s()}catch{console.error(`Tests failed before we even got started!`),process.exit(1)}t.interactive||console.log(`Upgrading all dependencies and re-running tests`),console.log(F.blue(`ncu `+process.argv.slice(2).filter(e=>e!==`--doctor`).join(` `))),process.env.NCU_DOCTOR=`1`;let l=await e({...t,silent:!0,doctor:!1});if(Object.keys(l||{}).length===0){console.log(`All dependencies are up-to-date `+F.green.bold(`:)`));return}let u=!1;try{await o(),u=!0,await s(),console.log(`${F.green(`✓`)} Tests pass`),await yn(t,{current:a,upgraded:l,total:Object.keys(l||{}).length}),console.log(`\n${t.interactive?`Chosen`:`All`} dependencies upgraded and installed ${F.green(`:)`)}`)}catch{console.error(F.red(u?`Tests failed`:`Install failed`)),console.log(`Identifying broken dependencies`),await g.default.writeFile(`package.json`,i),c?await g.default.writeFile(n,c):await g.default.rm(n,{recursive:!0,force:!0});let e=i;if(u)try{await o()}catch{let e=(t.packageManager||`npm`)+` install`;throw Error(`Error: Doctor mode was about to test individual upgrades, but ${F.cyan(e)} failed after rolling back to your existing package and lock files. This is unexpected since the initial install before any upgrades succeeded. Either npm failed to revert a partial install, or failed anomalously on the second run. Please check your internet connection and retry. If doctor mode fails consistently, report a bug with your complete list of dependency versions at https://github.com/raineorshine/npm-check-updates/issues.`)}let d,f;for([d,f]of Object.entries(l))try{if(await Ma([...t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`?[`add`]:[`install`,`--no-save`],`${d}@${f}`],{packageManager:t.packageManager},!0),r.scripts?.prepare)try{await Ma([`run`,`prepare`],{packageManager:t.packageManager},!0)}catch(e){throw console.error(F.red(`Prepare script failed`)),e}await s(),console.log(` ${F.green(`✓`)} ${d} ${a[d]} → ${f}`),e=await ja(e,{[d]:a[d]},{[d]:f},t),c=await g.default.readFile(n,`utf-8`)}catch(r){console.error(` ${F.red(`✗`)} ${d} ${a[d]} → ${f}\n`),console.error(F.red(r)),await g.default.writeFile(n,c),(t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`)&&await g.default.writeFile(`package.json`,e)}e!==i&&(console.log(`Saving partially upgraded package.json`),await g.default.writeFile(`package.json`,e)),await o()}};async function Fa(e){let t,n=null,r=e.packageFile||`package.json`;function i(t,n){if(t!=null){let n=u.default.resolve(t);B(e,`${e.upgrade?`Upgrading`:`Checking`} ${n}`)}else Z(e,`${F.red(`No ${n}`)}\n\nPlease add a ${n} to the current directory, specify the ${F.cyan(`--packageFile`)} or ${F.cyan(`--packageData`)} options, or pipe a ${n} to stdin and specify ${F.cyan(`--stdin`)}.`,{color:!1});return g.default.readFile(t,`utf-8`).catch(t=>{Z(e,t)})}if(B(e,`Running in local mode`,`verbose`),B(e,`Finding package file data`,`verbose`),e.packageData)n=null,t=Promise.resolve(e.packageData);else if(e.packageFile)n=e.packageFile,t=i(n,r);else if(e.stdin){B(e,`Waiting for package data on stdin`,`verbose`);let a=await(0,te.text)(process.stdin),o=a.trim().length>0?a:null;n=o||!r?null:await(0,D.findUp)(r),t=o||i(await n,r)}else n=r?await(0,D.findUp)(!e.packageFile&&e.packageManager===`deno`?[`deno.json`,`deno.jsonc`]:r,{cwd:e.cwd||process.cwd()}):null,t=i(n,r);return{pkgData:await t,pkgFile:n||null,pkgPath:r}}var Ia=Fa;function La(e){return{ignore:[`**/node_modules/**`,...typeof e.ignore==`string`?[e.ignore]:e.ignore||[]]}}const Ra=async e=>{let t=u.default.join(u.default.dirname(e),`pnpm-workspace.yaml`),n;try{n=await g.default.readFile(t,`utf-8`)}catch{return null}return A.default.load(n)},za=async(e,t)=>{let n={};if(e.packageManager===`pnpm`){let e=await Ra(t);e&&!Array.isArray(e)&&(e.catalog&&Object.assign(n,e.catalog),e.catalogs&&Object.assign(n,...Object.values(e.catalogs)))}let r=JSON.parse(await g.default.readFile(t,`utf-8`));return Object.assign(n,r.catalog,...Object.values(r.catalogs??{})),r.workspaces&&!Array.isArray(r.workspaces)&&Object.assign(n,r.workspaces.catalog,...Object.values(r.workspaces.catalogs??{})),Object.keys(n).length>0?n:null};async function Ba(e,t,n,r){let{pkgData:i,pkgPath:a}=await Ia({...e,packageFile:n,loglevel:`silent`}),o=(typeof i==`string`?JSON.parse(i):i).workspaces||await Ra(a||``),s=Array.isArray(o)?o:o?.packages;s||Z(e,`workspaces property missing from package.json. --workspace${e.workspaces?`s`:``} only works when you specify a "workspaces" property in your package.json.`);let c=(s||[]).map(e=>u.default.join(r,e,`package.json`).replace(/\\/g,`/`)),l=La(e),d=M.default.sync(c,l),f=await Promise.all(d.map(async t=>{let n=await xa(e,t);return n.name=n.pkg.name||t.split(`/`).slice(-2)[0],n})),p=f.map(e=>e.name||``);return e.workspaces===!0?[f,p]:[f.filter(n=>e.workspace?.some(e=>s?.some(i=>n.name===e||n.filepath===u.default.join(r,u.default.dirname(i),e,t).replace(/\\/g,`/`)))),p]}async function Va(e,t){if(!t)return null;let n=await za(e,t);if(!n)return null;let r={name:`catalog-dependencies`,version:`1.0.0`,dependencies:n};return{filepath:e.packageManager===`pnpm`?u.default.join(u.default.dirname(t),`pnpm-workspace.yaml`):`${t}#catalog`,pkg:r,pkgFile:JSON.stringify(r,null,2),name:`catalogs`}}async function Ha(e){let t=e.packageFile||`package.json`,n=e.cwd?(0,E.default)(e.cwd):`./`,r=e.packageFile||(e.cwd?u.default.join(n,`package.json`):`package.json`),i=e.workspaces===!0||e.workspace!==void 0&&e.workspace.length!==0,a=[];if(!i||e.root===!0){let t=r.replace(/\\/g,`/`),n=La(e),i=M.default.sync(t,n),o=await Promise.all(i.map(async t=>await xa(e,t)));a=[...a,...o]}if(!i)return[a,[]];let o=null;if(i){let{pkgPath:t}=await Ia({...e,packageFile:r,loglevel:`silent`});t&&(o=await Va(e,t))}let[s,c]=await Ba(e,t,r,n);if(a=[...a,...s],o&&(a=[...a,o]),e.ignore){let t=Array.isArray(e.ignore)?e.ignore:[e.ignore];a=a.filter(e=>{let r=u.default.relative(n,e.filepath).replace(/\\/g,`/`),i=u.default.dirname(r).replace(/\\/g,`/`);return!t.some(e=>{let t=(0,ne.default)(e);return t(r)||t(i)||t(`${i}/`)})})}return[a,c]}var Ua=Ha;async function Wa({configFileName:e,configFilePath:t,packageFile:n,global:r,options:i}){let{default:a,Chalk:o}=await import(`chalk`),s=i?.color?new o({level:1}):a,c=(0,re.rcFile)(`ncurc`,{configFileName:e||`.ncurc`,defaultExtension:[`.json`,`.yml`,`.js`],cwd:t||(r?m.default.homedir():n?u.default.dirname(n):void 0)}),l=c?.filePath;e&&!l&&Z(i,`Config file ${e} not found in ${t||process.cwd()}`);let{$schema:d,...f}=c?.config||{},p=f;typeof p.format==`string`&&(p.format=G.format.parse(p.format));let h=Object.keys(p).filter(e=>!G[e]);return h.length>0&&(console.error(s.red(`Unknown option${h.length===1?``:`s`} found in config file:`),s.gray(h.join(`, `))),console.info(`Using config file `+l),console.info(`You can change the config file path with ${s.blue(`--configFilePath`)}`)),{filePath:l,args:Object.entries(p).flatMap(([e,t])=>typeof t==`boolean`||G[e]?.type===`boolean`?t?[`--${e}`]:[]:[`--${e}`,t]),config:p}}var Ga=Wa,Ka=s({greatest:()=>Za,greatestLevel:()=>Qa,latest:()=>Xa,minor:()=>$a,newest:()=>no,patch:()=>eo,semver:()=>to});const qa=(0,oe.promisify)(ae.default.execFile);async function Ja(e){let t=(await qa(`git`,[`ls-remote`,`--tags`,e])).stdout,n={};for(let e of t.trim().split(`
|
|
346
|
+
`)){let t=e.split(` `);n[t[1].replace(/^refs\/tags\/|\^{}$/g,``)]=t[0]}return n}async function Ya(e,t,n){t=t.replace(/^github:/,``);let{auth:r,protocol:i,host:a,path:o}=(0,v.default)(t),s;try{if(i!==null)s=await Ja(`${i?i.replace(`git+`,``):`https:`}//${r?r+`@`:``}${a}/${o?.replace(/^:/,``)}`);else try{s=await Ja(`ssh://git@${a}/${o?.replace(/^:/,``)}`)}catch{s=await Ja(`https://${r?r+`@`:``}${a}/${o}`)}}catch{B(n??{},`Invalid, private repo, or no tags for ${e}: ${t}`,`verbose`);return}return Object.keys(s).map(Qt).filter(e=>(0,y.valid)(e)).sort(Wt)}const Xa=async(e,t,n)=>{let r=await Ya(e,t,n);if(!r)return{version:null};let i=n?.pre?r:r.filter(e=>!Kt(e)),a=i[i.length-1];return{version:a?ln(t,a):null}},Za=async(e,t,n)=>{let r=await Ya(e,t,n);if(!r)return{version:null};let i=r[r.length-1];return{version:i?ln(t,i):null}},Qa=e=>async(t,n,r={})=>{let i=decodeURIComponent((0,v.default)(n).branch).replace(/^semver:/,``),a=await Ya(t,n,r);if(!a)return{version:null};let o=Gt(a.map(e=>e.replace(/^v/,``)),i,e);return{version:o?ln(n,o):null}},$a=Qa(`minor`),eo=Qa(`patch`),to=async(e,t,n)=>({version:null}),no=Za;var ro=s({latest:()=>oo});const io=e=>e&&e.startsWith(`http://`)||e.startsWith(`https://`),ao=(0,C.default)(async e=>{let t=e.registry,n;if(io(t))n=await(await fetch(t)).text();else try{n=await g.default.readFile(t,`utf8`)}catch{Z(e,`\nThe specified static registry file does not exist: ${e.registry}`)}return JSON.parse(n)}),oo=async(e,t,n)=>({version:(await ao(n||{}))[e]||null});var Q={npm:sr,pnpm:Rr,yarn:Xi,bun:Nr,gitTags:Ka,staticRegistry:ro};function so(e){if(typeof e==`string`)return e.trim();if(Array.isArray(e)&&(e.length===0||typeof e[0]==`string`)){let t=e.map(e=>typeof e==`string`?e.trim():e).filter(e=>e);return t.length>0?t:void 0}else return e}function co(e){try{return new URL(e),!0}catch{return!1}}async function lo(e,{cli:t}={}){let{default:n,Chalk:r}=await import(`chalk`),i=e.color?new r({level:1}):n;if(!t){let t=In.reduce((e,t)=>({...e,...t.default==null?null:{[t.long]:t.default}}),{}),n={jsonUpgraded:!0,silent:e.silent||e.loglevel===void 0&&!e.verbose,args:[]};e={...t,...n,...e}}let a={...e,...e.packageData&&typeof e.packageData!=`string`?{packageData:JSON.stringify(e.packageData,null,2)}:null,cli:t},o=a.silent||a.format?.includes(`lines`)?`silent`:a.verbose?`verbose`:a.loglevel,s=Object.keys(a).filter(e=>e.startsWith(`json`)).some((0,Tt.default)(a));!s&&o!==`silent`&&a.rcConfigPath&&!a.doctor&&B(a,`Using config file ${a.rcConfigPath}`);let c=In.filter(({long:e,deprecated:t})=>t&&a[e]||e===`packageManager`&&a.packageManager===`staticRegistry`);c.length>0&&(c.forEach(({long:e,description:t})=>{let n=e===`packageManager`?`--packageManager staticRegistry is deprecated. Use --registryType json.`:`--${e}: ${t}`;B(a,i.yellow(n),`warn`)}),B(a,``,`warn`)),In.forEach(({long:e,choices:t})=>{if(!t||t.length===0)return;let n=a[e],r=Array.isArray(n)?n:[n];r.length!==0&&r.every(e=>!t.includes(e))&&Z(a,`Invalid option value: --${e} ${n}. Valid values are: ${t.join(`, `)}.`)}),a.cwd&&!await be(a.cwd)&&Z(a,`No such directory: ${a.cwd}`);let l=so(a.args),u=so(a.filter),d=so(a.filterVersion),f=so(a.reject),p=so(a.rejectVersion),m=a.registryType||(a.registry?.endsWith(`.json`)?`json`:`npm`);if(a.filter&&l&&!(0,ie.dequal)(l.join(` `),Array.isArray(u)?u.join(` `):u)?Z(a,`Cannot specify a filter using both --filter and args. Did you forget to quote an argument?
|
|
347
|
+
See: https://github.com/raineorshine/npm-check-updates/issues/759#issuecomment-723587297`):a.packageFile&&a.deep?Z(a,`Cannot specify both --packageFile and --deep. --deep is an alias for --packageFile '**/package.json'`):a.format?.includes(`lines`)&&a.jsonUpgraded?Z(a,`Cannot specify both --format lines and --jsonUpgraded.`):a.format?.includes(`lines`)&&a.jsonAll?Z(a,`Cannot specify both --format lines and --jsonAll.`):a.format?.includes(`lines`)&&a.format.length>1?Z(a,`Cannot use --format lines with other formatting options.`):a.workspace?.length&&a.workspaces?Z(a,`Cannot specify both --workspace and --workspaces.`):a.deep&&(a.workspace?.length||a.workspaces)?Z(a,`Cannot specify both --deep and --workspace${a.workspaces?`s`:``}.`):a.doctor&&(a.workspace?.length||a.workspaces)?Z(a,`Doctor mode is not currently supported with --workspace${a.workspaces?`s`:``}.`):a.packageManager===`staticRegistry`&&!a.registry?Z(a,`When --package-manager staticRegistry is specified, you must provide the path for the registry file with --registry.`):a.registryType===`json`&&!a.registry?Z(a,`When --registryType json is specified, you must provide the path for the registry file with --registry. Run "ncu --help registryType" for details.`):m!==`json`&&a.registry&&!co(a.registry)&&Z(a,`--registry must be a valid URL. Invalid value: "${a.registry}"`),a.cooldown!=null){let e=typeof a.cooldown==`number`&&!isNaN(a.cooldown)&&a.cooldown>=0,t=typeof a.cooldown==`function`;!e&&!t&&Z(a,`Cooldown must be a non-negative integer representing days since published or a function`)}let h=a.target||`latest`,g=h===`newest`||h===`greatest`,_=await Vn(a),v={...a,...a.deep?{packageFile:`**/package.json`}:null,..._===`deno`?{dep:[`imports`]}:null,...a.format&&a.format.length>0?{format:a.format}:null,filter:l||u,filterVersion:d,json:s,loglevel:o,minimal:a.minimal===void 0?!1:a.minimal,...a.pre!=null||g?{pre:a.pre==null?g:!!a.pre}:null,reject:f,rejectVersion:p,target:h,...a.interactive&&a.upgrade===void 0?{upgrade:!s}:null,packageManager:_,...a.prefix?{prefix:await(Q[_||``]?.defaultPrefix||Q.npm.defaultPrefix)(a)}:null,registryType:m};v.cacher=await On(v);let y=P(v,(e,t)=>t===void 0?null:{[e]:t});return!a.packageManager&&_!==`npm`&&B(y,`Using ${_}`),y}var uo=lo;function fo(e,t){return Array.from(new Set([...e||[],...t||[]]))}function po(e,t){let n=e||{},r=t||{},i={...n,...r};return Object.keys(i).forEach(e=>{Array.isArray(n[e])&&Array.isArray(r[e])&&(i[e]=fo(n[e],r[e]))}),i}var mo=po,ho=l(Xr(),1);function go(e){let t;if(!e)t=ho.default;else if(typeof e==`string`)if(e[0]===`/`&&e.at(-1)===`/`){let n=new RegExp(e.slice(1,-1));t=e=>n.test(e)}else{let n=e.split(/[\s,]+/);t=e=>n.some((0,se.or)(t=>(0,ne.default)(t)(e),t=>!t.includes(`/`)&&e.includes(`/`)&&(0,ne.default)(t)(e.replace(/\//g,`_`))))}else if(Array.isArray(e))t=(t,n)=>e.some(e=>go(e)(t,n));else if(e instanceof RegExp)t=t=>e.test(t);else if(typeof e==`function`)t=(t,n)=>e(t,(0,b.parseRange)(n??t));else throw TypeError(`Invalid filter. Must be a RegExp, array, or comma-or-space-delimited list.`);return t}function _o(e,t,n,r){return(0,se.and)((n,r)=>(0,se.and)(e?go(e):!0,t?(...e)=>!go(t)(...e):!0)(n,r),(e,t)=>(0,se.and)(n?go(n):!0,r?(...e)=>!go(r)(...e):!0)(t))}var vo=_o;function yo(e,t){return!t||t===`deno`?Q.npm:e.registryType===`json`?Q.staticRegistry:(Q[t]||Z(e,`Invalid package manager: ${t}`),Q[t])}var bo=yo;async function xo(e={}){let t=await bo(e,e.packageManager).list?.({cwd:e.cwd,prefix:e.prefix,global:e.global});t||Z(e,`Unable to retrieve package list`);let n=vo(e.filter,e.reject,e.filterVersion,e.rejectVersion),r={};try{r=I(t,(e,t)=>!!t&&!Rt(t)&&n(e,t))}catch(t){Z(e,`Invalid filter: `+t.message||t)}return r}var So=xo;function Co(e,t){let n=[[t]];for(;n.length>0;){let t=[];for(let r of n){let n=Object.keys(e[r[0]]??{});for(let e of n){if(e===r.at(-1))return{isCircular:!0,offendingPackage:r[0]};t.push([e,...r])}}n=t}return{isCircular:!1}}async function wo(e,t){let n=bo(t,t.packageManager);if(!n.getPeerDependencies)return{};let r=Object.keys(e).length,i;!t.json&&t.loglevel!==`silent`&&t.loglevel!==`verbose`&&r>0&&(i=new le.default(`[:bar] :current/:total :percent`,{total:r,width:20}),i.render());let a=Object.entries(e),o=await(0,ce.default)(a,async([e,r])=>{let a,o=t.cacher?.getPeers(e,r);return o?a=o:(a=await n.getPeerDependencies(e,r,{cwd:t.cwd}),t.cacher?.setPeers(e,r,a)),i&&i.tick(),{pkg:e,dependencies:a}},{concurrency:t.concurrency}),s={};for(let{pkg:e,dependencies:t}of o){s[e]=t;let n=Co(s,e);n.isCircular&&delete s[e][n.offendingPackage]}return await t.cacher?.save(),t.cacher?.log(!0),s}var To=wo;function Eo(e,t){let n={};for(let r of t)n[r]=e[r];return n}function $(e,t){let n={};for(let[r,i]of Object.entries(e??{})){let e=r;t(i,e)&&(n[e]=i)}return n}const Do=[`latest`,`newest`,`greatest`,`minor`,`patch`,`semver`];async function Oo(e,t={}){let{default:n,Chalk:r}=await import(`chalk`),i=t.color?new r({level:1}):n,a=Object.keys(e),o=bo(t,t.packageManager),s;!t.json&&t.loglevel!==`silent`&&t.loglevel!==`verbose`&&a.length>0&&(s=new le.default(`[:bar] :current/:total :percent`,{total:a.length,width:20}),s.render());async function c(n){let r=tn(e[n]),[a,c]=r||[n,e[n]],l=t.target||`latest`,u=typeof l==`string`?l:l(a,(0,b.parseRange)(c)),[d,f]=u.startsWith(`@`)?[`distTag`,u.slice(1)]:[u,`latest`],p=t.cacher?.get(a,d);if(p)return s?.tick(),{version:p};let m,h=an(e[n]),g=h?Q.gitTags:o,_=h?`github urls`:t.packageManager||`npm`,v=g[d];if(!v){let e=Do.filter(e=>e in g);Z(t,i.red(`\nUnsupported target "${d}" using ${_}`)+`
|
|
348
|
+
Supported version targets are: `+e.join(`, `)+(h?``:`, and tags (e.g. @next)`),{color:!1})}try{m=await v(a,c,{...t,distTag:f,pre:t.pre==null?u.startsWith(`@`)||Kt(c):t.pre,retry:t.retry??2}).catch(e=>({error:e?.body?.error||e.toString()})),m.version=!h&&r&&m?.version?en(a,m.version):m?.version??null}catch(e){let n=e?(e.message||e).toString():``;if(n.match(/E504|Gateway Timeout/i))return{error:`${n}. All ${t.retry} retry attempts failed.`};if(n.match(/E400|E404|ENOTFOUND|404 Not Found|400 Bad Request/i))return{error:`${n.replace(/ - Not found$/i,``)}. All ${t.retry} retry attempts failed. Either your internet connection is down, the registry is inaccessible, the authentication credentials are invalid, or the package does not exist.`};if(e.code===`ERR_INVALID_URL`)return{error:n||`Invalid URL`};throw!process.env.NCU_TESTS&&/(Response|network) timeout/i.test(n)&&console.error(`
|
|
349
349
|
|
|
350
350
|
`+i.red(`FetchError: Request Timeout. npm-registry-fetch defaults to 30000 (30 seconds). Try setting the --timeout option (in milliseconds) to override this.`)+`
|
|
351
|
-
`),e}return s?.tick(),m.version&&t.cacher?.set(a,d,m.version),m}let l=await(0,ce.default)(a,c,{concurrency:t.concurrency});return await t.cacher?.save(),t.cacher?.log(),
|
|
352
|
-
Options:`,`verbose`),
|
|
353
|
-
Getting installed packages`,`verbose`);let t={};try{let{cli:n,cwd:r,filter:i,filterVersion:a,global:o,packageManager:s,prefix:c,reject:l,rejectVersion:u}=e;t=await
|
|
354
|
-
`+
|
|
355
|
-
|
|
356
|
-
`+
|
|
357
|
-
`)}return e.cli&&e.errorLevel===2&&a.length>0&&process.exit(1),n}var
|
|
358
|
-
`);for(let e of t){let t=e.offset,n=1,a=1,o=0;for(let e of i){if(o+e.length>=t){a=t-o+1;break}o+=e.length+1,n++}r+=`Error at line ${n}, column ${a}: ${ue.ParseErrorCode[e.error]}\n${
|
|
351
|
+
`),e}return s?.tick(),m.version&&t.cacher?.set(a,d,m.version),m}let l=await(0,ce.default)(a,c,{concurrency:t.concurrency});return await t.cacher?.save(),t.cacher?.log(),P(l,(e,t)=>e.version||e.error?{[a[t]]:e}:null)}var ko=Oo,Ao=o(((e,t)=>{function n(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}t.exports=n})),jo=o(((e,t)=>{var n=Me(),r=Ne(),i=`[object Arguments]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),Mo=o(((e,t)=>{var n=jo(),r=Ne(),i=Object.prototype,a=i.hasOwnProperty,o=i.propertyIsEnumerable;t.exports=n(function(){return arguments}())?n:function(e){return r(e)&&a.call(e,`callee`)&&!o.call(e,`callee`)}})),No=o(((e,t)=>{var n=ke(),r=Mo(),i=L(),a=n?n.isConcatSpreadable:void 0;function o(e){return i(e)||r(e)||!!(a&&e&&e[a])}t.exports=o})),Po=o(((e,t)=>{var n=Ao(),r=No();function i(e,t,a,o,s){var c=-1,l=e.length;for(a||=r,s||=[];++c<l;){var u=e[c];t>0&&a(u)?t>1?i(u,t-1,a,o,s):n(s,u):o||(s[s.length]=u)}return s}t.exports=i})),Fo=o(((e,t)=>{var n=Po();function r(e){return e!=null&&e.length?n(e,1):[]}t.exports=r})),Io=o(((e,t)=>{var n=ri(),r=Math.max;function i(e,t,i){return t=r(t===void 0?e.length-1:t,0),function(){for(var a=arguments,o=-1,s=r(a.length-t,0),c=Array(s);++o<s;)c[o]=a[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=a[o];return l[t]=i(c),n(e,this,l)}}t.exports=i})),Lo=o(((e,t)=>{var n=Fo(),r=Io(),i=Ti();function a(e){return i(r(e,void 0,n),e+``)}t.exports=a})),Ro=o(((e,t)=>{var n=pi(),r=Lo(),i=ui(),a=fi(),o=L(),s=_i(),c=`Expected a function`,l=8,u=32,d=128,f=256;function p(e){return r(function(t){var r=t.length,p=r,m=n.prototype.thru;for(e&&t.reverse();p--;){var h=t[p];if(typeof h!=`function`)throw TypeError(c);if(m&&!g&&a(h)==`wrapper`)var g=new n([],!0)}for(p=g?p:r;++p<r;){h=t[p];var _=a(h),v=_==`wrapper`?i(h):void 0;g=v&&s(v[0])&&v[1]==(d|l|u|f)&&!v[4].length&&v[9]==1?g[a(v[0])].apply(g,v[3]):h.length==1&&s(h)?g[_]():g.thru(h)}return function(){var e=arguments,n=e[0];if(g&&e.length==1&&o(n))return g.plant(n).value();for(var i=0,a=r?t[i].apply(this,e):n;++i<r;)a=t[i].call(this,a);return a}})}t.exports=p})),zo=o(((e,t)=>{t.exports=Ro()()}));function Bo(e){if(Object.keys(e).length===0)return null;let t=Object.values(e).reduce((e,t)=>{let n=At.find(e=>t&&t.includes(e));return n!==void 0&&(e[n]||=[],e[n].push(t)),e},{}),n=wt(Object.entries(t).map(([e,t])=>({wildcard:e,instances:t})),e=>-e.instances.length);return n.length>0?n[0].wildcard:null}var Vo=Bo;function Ho(e,t,{downgrade:n}={}){if(!y.validRange(e)||Lt(e))return!1;let[r]=b.default.parseRange(e);if(!r)throw Error(`"${e}" could not be parsed by semver-utils. This is probably a bug. Please file an issue at https://github.com/raineorshine/npm-check-updates.`);let i=Qt(t),a=z(r),o=!!y.validRange(a),s=!!y.valid(i);return o&&s&&(!Ut(i,a)||!y.satisfies(i,r.operator===`<`?e:a)&&(n||!y.ltr(i,a)))}var Uo=Ho,Wo=l(zo(),1);function Go(e,t,n={}){let r=n.target||`latest`;e=I(e,(e,t)=>!!t);let i=Vo(e)||`^`,a=(e,t)=>sn(e,t,{wildcard:i,removeRange:n.removeRange});return(0,Wo.default)([e=>$(e,(e,n)=>n in t),e=>Object.entries(e).reduce((e,[n,r])=>{let i=t[n],a=null,o=null;if(nn(r)&&(a=tn(r)[1]),nn(i)&&(o=tn(i)[1]),an(r)){let[e]=(0,b.parseRange)(on(r));a=z(e)}if(an(i)){let[e]=(0,b.parseRange)(on(i));o=z(e)}return e[n]={current:r,currentParsed:a,latest:i,latestParsed:o},e},{}),e=>$(e,({current:e,currentParsed:t,latest:n,latestParsed:i},a)=>{let o=Kt(e)&&(typeof r==`string`?r:r(a,(0,b.parseRange)(e))).startsWith(`@`),s=t||e,c=i||n,l=e=>{try{if(y.default.valid(e))return e;let t=y.default.minVersion(e);return t?t.version:null}catch{return null}},u=l(s),d=l(c),f=u&&d&&y.default.gt(u,d);return Uo(s,c,{downgrade:o})||f}),e=>Object.entries(e).reduce((e,[t,{current:n,currentParsed:r,latest:i,latestParsed:o}])=>{let s=a(r||n,o||i);return e[t]=nn(n)?rn(n,s):an(n)?ln(n,s):s,e},{})])(e)}var Ko=Go;const qo=(e,t,n)=>{let r={...e,...t},i=$(t,(e,t)=>{let i=n[t];return i?Object.entries(i).every(([e,t])=>r[e]===void 0||!(0,y.validRange)(t)||(0,y.intersects)(r[e],t)):!0}),a=Object.keys(t).length>Object.keys(i).length,o=n;return a&&(o=$(n,(e,n)=>i[n]||!t[n])),{violated:a,filteredUpgradedDependencies:i,upgradedPeerDependencies:o}};async function Jo(e,t){let n=await ko(e,t),r=P(n,(n,r)=>r?.version&&(!t.filterResults||t.filterResults(n,{currentVersion:e[n],currentVersionSemver:(0,b.parseRange)(e[n]),upgradedVersion:r.version,upgradedVersionSemver:(0,b.parse)(r.version)}))?{[n]:r.version}:null),i=$(Ko(e,r,t),(n,i)=>!t.jsonUpgraded||!t.minimal||!(0,y.satisfies)(r[i],e[i])),a=$(r,(e,t)=>i[t]),o=[i,n,t.peerDependencies];if(!t.peer||Object.keys(a).length===0)return o;if(t.peer&&Object.keys(a).length>0){let r=await To(a,t),s;if((0,ie.dequal)(t.peerDependencies,{...t.peerDependencies,...r})){if(s=qo(e,i,t.peerDependencies),!s.violated)return o}else s={violated:!1,filteredUpgradedDependencies:i,upgradedPeerDependencies:r};let c=0;do{if(c++>6)throw Error(`Stuck in a while loop. Please report an issue`);let r={...t.peerDependencies,...s.upgradedPeerDependencies};if((0,ie.dequal)(t.peerDependencies,r))return[{},n,t.peerDependencies];let[i,a,l]=await Jo({...e,...s.filteredUpgradedDependencies},{...t,peerDependencies:r,loglevel:`silent`});o=[{...s.filteredUpgradedDependencies,...i},{...n,...a},l],s=qo(e,o[0],o[2])}while(s.violated)}return o}var Yo=Jo;async function Xo(e){B(e,`
|
|
352
|
+
Options:`,`verbose`),V(e,e,`verbose`),B(e,`
|
|
353
|
+
Getting installed packages`,`verbose`);let t={};try{let{cli:n,cwd:r,filter:i,filterVersion:a,global:o,packageManager:s,prefix:c,reject:l,rejectVersion:u}=e;t=await So({cli:n,cwd:r,filter:i,filterVersion:a,global:o,packageManager:s,prefix:c,reject:l,rejectVersion:u})}catch(t){Z(e,t.message)}B(e,`globalPackages:`,`verbose`),B(e,t,`verbose`),B(e,``,`verbose`),B(e,`Fetching ${e.target} versions`,`verbose`);let[n,r]=await Yo(t,e);B(e,r,`verbose`);let i=N(r,(e,t)=>t.time?{[e]:t.time}:null),a=Object.keys(n);await yn(e,{current:t,upgraded:n,latest:r,total:a.length,time:i});let o=n?a.map(e=>e+`@`+n[e]).join(` `):`[package]`;if(e.json)fn(e,n);else if(o.length){let t=e.packageManager===`yarn`?`yarn global upgrade`:e.packageManager===`pnpm`?`pnpm -g add`:e.packageManager===`bun`?`bun add -g`:`npm -g install`;B(e,`
|
|
354
|
+
`+F.cyan(`ncu`)+` itself cannot upgrade global packages. Run the following to upgrade all global packages:
|
|
355
|
+
|
|
356
|
+
`+F.cyan(`${t} `+o)+`
|
|
357
|
+
`)}return e.cli&&e.errorLevel===2&&a.length>0&&process.exit(1),n}var Zo=Xo;const Qo=(e,t)=>y.validRange(e)&&y.validRange(t)&&y.gt(y.minVersion(e),y.minVersion(t)),$o=e=>{if(!e.packageManager)return{};let[t,n]=e.packageManager.split(`@`);return{[t]:n}};function es(e={},t={}){let n=Ca(t.dep).reduce((t,n)=>({...t,...n===`packageManager`?$o(e):I(e[n]||{},(e,n)=>!Qo(n,t[e]))}),{}),r=N(t.workspacePackages||[]),i={};try{i=I(I(n,e=>!r[e]),vo(t.filter||null,t.reject||null,t.filterVersion||null,t.rejectVersion||null))}catch(e){Z(t,`Invalid filter: `+e.message||e)}return i}var ts=es;async function ns(e,t){let n=bo(t,t.packageManager);if(!n.getEngines)return{};let r=Object.keys(e).length,i;return!t.json&&t.loglevel!==`silent`&&t.loglevel!==`verbose`&&r>0&&(i=new le.default(`[:bar] :current/:total :percent`,{total:r,width:20}),i.render()),Object.entries(e).reduce(async(e,[r,a])=>{let o=(await n.getEngines(r,a,t)).node;return i&&i.tick(),{...await e,[r]:o}},Promise.resolve({}))}var rs=ns;const is=(e,t)=>!e||(0,y.satisfies)(t,e);async function as(e,t,n={}){if(!n.nodeEngineVersion)return{};let r=(0,y.minVersion)(n.nodeEngineVersion)?.version;if(!r)return{};let[i,a]=await Yo(e,{...n,enginesNode:!1,nodeEngineVersion:void 0,loglevel:`silent`}),o=await rs(P(a,(e,t)=>i[e]&&t?.version?{[e]:t.version}:null),n);return Object.entries(i).filter(([e,n])=>t[e]!==n&&!is(o[e],r)).reduce((t,[n,r])=>({...t,[n]:{from:e[n],to:r,enginesNode:o[n]}}),{})}async function os(e,t,n,r={}){let i={...e,...t},[a,o]=await Yo(e,{...r,peer:!1,peerDependencies:void 0,loglevel:`silent`}),s=await To(Object.fromEntries(Object.entries(a).map(([e,t])=>[e,(0,y.validRange)(t)?(0,y.minVersion)(t)?.version??t:t])),r);return Object.entries(a).filter(([e,n])=>t[e]!==n).reduce((t,[r,a])=>{let c=Object.entries(n).filter(([,e])=>e[r]!==void 0&&o[r]?.version&&!(0,y.satisfies)(o[r].version,e[r])).reduce((e,[t,n])=>({...e,[t]:(0,y.validRange)(n[r])?n[r]:`a range that semver does not understand: ${n[r]}. This range does not work with semver.satisfies or semver.intersects, which npm-check-updates relies on to determine peer dependency compatibility. Either this is a mistake in ${t}, or it relies on a new syntax that is not compatible with the semver package.`}),{});if(Object.keys(c).length===0){let e=s?.[r]||{};c=Object.entries(e).filter(([e,t])=>i[e]&&!(!(0,y.validRange)(t)||(0,y.intersects)(i[e],t))).reduce((e,[t,n])=>({...e,[r]:`${t} ${n}`}),{})}return{...t,[r]:{from:e[r],to:a,reason:c}}},{})}var ss=os;const cs=process.stdout.columns||80;function ls(e){return`${e.length?e.slice(0,Math.min(e.length,cs)):`<empty>`}\n`}function us(e){return e>cs?``:`${` `.repeat(e-1)}^\n`}function ds(e,t,n){let r=e.length;if(r===0)return`<empty>`;if(r===1)return`${ls(e[0])}${us(n)}`;let i=Math.min(t+2,r),a=``;for(let r=Math.max(t-2,1);r<=i;r++)a+=ls(e[r-1]),r===t&&(a+=us(n));return`${a}\n`}function fs(e){e=(0,ue.stripComments)(e);try{return JSON.parse(e)}catch{let t=[],n=(0,ue.parse)(e,t);if(t.length===0)return n;let r=``,i=e.split(`
|
|
358
|
+
`);for(let e of t){let t=e.offset,n=1,a=1,o=0;for(let e of i){if(o+e.length>=t){a=t-o+1;break}o+=e.length+1,n++}r+=`Error at line ${n}, column ${a}: ${ue.ParseErrorCode[e.error]}\n${ds(i,n,a)}\n`}throw SyntaxError(r)}}const ps=`
|
|
359
359
|
↑/↓: Select a package
|
|
360
360
|
Space: Toggle selection
|
|
361
361
|
a: Toggle all
|
|
362
|
-
Enter: Upgrade`;function
|
|
363
|
-
`).length:0;return process.stdout.rows?Math.max(3,process.stdout.rows-n-1-(t?.length??0)*2):50}async function
|
|
364
|
-
`),e=>({[e.trim().split(` `)[0]]:e.trim()}));if(Object.keys(t).length>0)if(
|
|
365
|
-
`+e,heading:!0},...Object.keys(n).sort().map(e=>({title:o[e],value:e,selected:[`patch`,`minor`].includes(t)}))]),{title:` `,heading:!0}],hint:a&&
|
|
366
|
-
`,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:
|
|
367
|
-
Options:`,`verbose`),
|
|
368
|
-
Current versions:`,`verbose`),
|
|
369
|
-
upgradedPeerDependencies:`,`verbose`),
|
|
370
|
-
Upgraded versions:`,`verbose`),
|
|
371
|
-
|
|
372
|
-
If you are still receiving this message after uninstalling Volta, ensure your PATH does not contain an entry for Volta and your shell profile does not define VOLTA_HOME. You may need to reboot for changes to your shell profile to take effect.`,`error`),process.exit(1))},
|
|
373
|
-
Dependencies not up-to-date`),e.upgrade&&(e.packageManager===`deno`?
|
|
362
|
+
Enter: Upgrade`;function ms(e,t){let n=e?ps.split(`
|
|
363
|
+
`).length:0;return process.stdout.rows?Math.max(3,process.stdout.rows-n-1-(t?.length??0)*2):50}async function hs(e,t,n){let r=bo(n,n.packageManager);return await Object.keys(t).reduce(async(i,a)=>{let o=e[a]||null,s=t[a]||null,c=await r.packageAuthorChanged(a,o,s,n);return{...await i,[a]:c}},{})}const gs=async(e,t,n,r)=>{let i=[],a=process.stdout.rows>18,o=P((await gn({from:e,to:t,format:r.format,pkgFile:n||void 0})).toString().split(`
|
|
364
|
+
`),e=>({[e.trim().split(` `)[0]]:e.trim()}));if(Object.keys(t).length>0)if(B(r,``),r.format?.includes(`group`)){let n=Bt(t,e,r);i=(await(0,d.default)({choices:[...n.flatMap(({heading:e,groupName:t,packages:n})=>[{title:`
|
|
365
|
+
`+e,heading:!0},...Object.keys(n).sort().map(e=>({title:o[e],value:e,selected:[`patch`,`minor`].includes(t)}))]),{title:` `,heading:!0}],hint:a&&ps,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:ms(a,n),type:`multiselect`,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})).value}else i=(await(0,d.default)({choices:[...Object.keys(t).sort().map(e=>({title:o[e],value:e,selected:!0})),{title:` `,heading:!0}],hint:a&&ps+`
|
|
366
|
+
`,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:ms(a),type:`multiselect`,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})).value;return P(i,e=>({[e]:t[e]}))};async function _s(e,t,n){B(e,`
|
|
367
|
+
Options:`,`verbose`),V(e,e,`verbose`);let r;try{t?r=fs(t):Z(e,`Missing package data`)}catch(t){Z(e,`Invalid package file${n?`: ${n}`:` from stdin`}. Error details:\n${t.message}`)}let i=ts(r,e);B(e,`
|
|
368
|
+
Current versions:`,`verbose`),B(e,i,`verbose`),e.enginesNode&&(e.nodeEngineVersion=r?.engines?.node),e.peer&&(e.peerDependencies=await To(Object.fromEntries(Object.entries(i).map(([e,t])=>[e,y.default.validRange(t)?y.default.minVersion(t)?.version??t:t])),e));let[a,o,s]=await Yo(i,e),c=P(o,(e,t)=>t.version?{[e]:t.version}:null),l=P(o,(e,t)=>t.error?{[e]:t.error}:null),u=P(o,(e,t)=>t.time?{[e]:t.time}:null);e.peer&&(B(e,`
|
|
369
|
+
upgradedPeerDependencies:`,`verbose`),B(e,s,`verbose`)),B(e,`\n${typeof e.target==`string`?`${e.target[0].toUpperCase()}${e.target.slice(1)}`:`Fetched`} versions:`,`verbose`),B(e,c,`verbose`),B(e,`
|
|
370
|
+
Upgraded versions:`,`verbose`),B(e,a,`verbose`);let d=e.minimal?P(a,(e,t)=>y.default.satisfies(c[e],i[e])?null:{[e]:t}):a,f=(e.format||[]).includes(`ownerChanged`)?await hs(i,d,e):void 0,p=e.interactive?await gs(i,d,n,e):d;if(!e.json||e.deep){if(await yn(e.interactive?{...e,format:(e.format||[]).filter(e=>e!==`group`)}:e,{current:i,upgraded:p,total:Object.keys(a).length,latest:o,ownersChangedDeps:f,pkgFile:n||void 0,errors:l,time:u}),e.peer){let t=await ss(i,a,s,e);Object.keys(t).length>0&&bn(e,t)}if(e.enginesNode){let t=await as(i,a,e);Object.keys(t).length>0&&xn(e,t)}}let m=await ja(t,i,p,e,n||void 0),h=e.jsonAll?fs(m):e.jsonDeps?Eo(fs(m),Ca(e.dep)):p,_;if(e.json&&!e.deep&&fn(e,h),Object.keys(d).length>0&&n)if(e.upgrade)_=g.default.writeFile(n.replace(`#catalog`,``),m);else{let t=process.env.npm_lifecycle_event===`npx`?`npx npm-check-updates`:`ncu`,n=process.argv.slice(2).map(e=>e.includes(` `)?`"${e}"`:e).join(` `),r=n&&` `+n;B(e,`\nRun ${F.cyan(`${t}${r} -u`)} to upgrade ${e.packageFile||`package.json`}`)}return await _,h}function vs(e){return e}var ys=vs;process.env.INJECT_PROMPTS&&d.default.inject(JSON.parse(process.env.INJECT_PROMPTS));let bs=!1;process.on(`unhandledRejection`,e=>{console.error(e),bs=!0});const xs=e=>{e.global&&(process.env.VOLTA_HOME||process.env.PATH?.includes(`\\Volta`))&&(B(e,`It appears you are using Volta. \`npm-check-updates --global\` cannot be used with Volta because Volta has its own system for managing global packages which circumvents npm.
|
|
371
|
+
|
|
372
|
+
If you are still receiving this message after uninstalling Volta, ensure your PATH does not contain an entry for Volta and your shell profile does not define VOLTA_HOME. You may need to reboot for changes to your shell profile to take effect.`,`error`),process.exit(1))},Ss=async(e,t)=>{let n={...e,cwd:e.cwd||u.default.resolve(t,`..`),packageFile:t};return e.packageManager===`staticRegistry`?await Vn({...n,packageManager:void 0}):e.packageManager&&e.packageManager!==`npm`?e.packageManager:await Vn(n)},Cs=(e,t)=>{let n=e.length===1?{[e[0]]:t}:t;return Object.values(n).some(e=>Object.keys(e).length>0)},ws=async(e,t,n)=>{if(n.install===`never`){B(n,``);return}if(!Cs(e,t))return;let r=await Ss(n,e[0]),i=`Run ${F.cyan(r+` install`)}${e.length>1&&!n.workspace&&!n.workspaces?` in each project directory`:``} to install new versions`,a=n.interactive&&(process.env.NCU_TESTS||!process.env.NCU_DOCTOR),o;if(a&&n.install===`prompt`&&(B(n,``),o=await(0,d.default)({type:`confirm`,name:`value`,message:`${i}?`,initial:!0,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})),n.install===`always`||a&&o.value){n.install===`always`&&B(n,``),B(n,`Installing dependencies...`);let t=n.workspaces||n.workspace?.length?[`package.json`]:e;for await(let e of t){let t=await Ss(n,e),r=t+(process.platform===`win32`&&t!==`bun`?`.cmd`:``),i=n.cwd||u.default.resolve(e,`..`),a=``;try{await(0,f.default)(r,[`install`],{stdout:e=>{a+=e},stderr:e=>{console.error(F.red(e.toString()))}},{cwd:i,env:{...process.env,...n.color===!1?null:{FORCE_COLOR:!0},...t===`pnpm`?{npm_config_strict_peer_dependencies:!1}:null}}),B(n,a),B(n,`Done`)}catch(e){throw Error(e?.message||e||a)}}}else a||B(n,`\n${i}.`)};async function Ts(e,t){let[n,r]=await Ua(e),i=n.map(e=>e.filepath),a=e.workspaces||!!e.workspace?.length;e.deep=e.deep||a||n.length>1;let o;if(e.global){let n=await Zo(e);return clearTimeout(t),n}else if(e.deep)o=await n.reduce(async(t,n)=>{let i=await t,a=(await Ga({packageFile:n.filepath,options:e})).config;e.mergeConfig&&Object.keys(a).length&&(a=mo(e,a));let o={...e,...a,packageFile:n.filepath,workspacePackages:r},s,c,l;if(n.filepath.includes(`#`)||n.name===`catalogs`){s=n.pkgFile,c=n.filepath,l=n.filepath.includes(`#catalog`)?n.filepath.replace(`#catalog`,``):n.filepath;let e=u.default.resolve(l);B(o,`${o.upgrade?`Upgrading`:`Checking`} ${e} catalog dependencies`)}else{let e=await Ia(o);s=e.pkgData,c=e.pkgFile||n.filepath,l=c}return{...i,[o.cwd?u.default.relative(u.default.resolve(o.cwd),l).replace(/\\/g,`/`):l]:await _s(o,s,c)}},Promise.resolve({})),e.json&&fn(e,o);else{n.length===1&&n[0].filepath!==(e.packageFile||`package.json`)&&(e.packageFile=n[0].filepath);let{pkgData:t,pkgFile:r}=await Ia(e);o=await _s(e,t,r)}return clearTimeout(t),e.errorLevel===2&&Cs(i,o)&&Z(e,`
|
|
373
|
+
Dependencies not up-to-date`),e.upgrade&&(e.packageManager===`deno`?B(e,``):await ws(i,o,e)),o}async function Es(e={},{cli:t}={}){let n=await uo(e,{cli:t}),r=pe.url;process.on(`exit`,()=>{bs&&Z(n,`Unhandled Rejection! This is a bug and should be reported: ${r}`)}),await ve(n.color),xs(n),B(n,`Initializing`,`verbose`),n.cacheClear&&await Dn(n);let i,a=new Promise(()=>null);if(n.timeout){let e=typeof n.timeout==`string`?Number.parseInt(n.timeout,10):n.timeout;a=new Promise((t,r)=>{i=setTimeout(()=>{let t=`Exceeded global timeout of ${e}ms`;r(t);try{Z(n,t)}catch{}},e)})}if(n.doctor){if(n.upgrade)return Promise.race([a,Pa(Es,n)]);B(n,`Usage: ncu --doctor\n\n${typeof G.doctor.help==`function`?G.doctor.help({}):G.doctor.help}`,`warn`)}else return Promise.race([a,Ts(n,i)])}var Ds=Es;Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Ga}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Ds}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return In}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return ys}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Pn}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Es}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return me}});
|
|
374
374
|
//# sourceMappingURL=src.cjs.map
|