@baicie/ncu 0.1.30 → 0.1.33

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.
@@ -1,20 +1,20 @@
1
- import e from"path";import t from"prompts-ncu";import n from"spawn-please";import r from"fs";import i from"os";import a from"cli-table3";import o from"fs/promises";import s from"hosted-git-info";import{URL as c}from"url";import l from"parse-github-url";import*as u from"semver";import d,{intersects as f,minVersion as p,satisfies as m,valid as h,validRange as g}from"semver";import _,{parse as v,parseRange as y}from"semver-utils";import b from"util";import x from"camelcase";import S from"fast-memoize";import C from"ini";import w from"npm-registry-fetch";import T from"untildify";import{findUp as E,findUpSync as ee}from"find-up";import te from"node:fs";import D from"node:os";import O from"node:path";import k from"js-yaml";import A from"jsonlines";import{text as ne}from"node:stream/consumers";import re from"fast-glob";import ie from"picomatch";import{rcFile as ae}from"rc-config-loader";import{dequal as oe}from"dequal";import se from"node:child_process";import{promisify as ce}from"node:util";import{and as le,or as ue}from"fp-and-or";import de from"p-map";import fe from"progress";import{ParseErrorCode as pe,parse as me,stripComments as he}from"jsonc-parser";var ge=Object.create,_e=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,ye=Object.getOwnPropertyNames,be=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty,j=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),M=(e,t)=>{let n={};for(var r in e)_e(n,r,{get:e[r],enumerable:!0});return t||_e(n,Symbol.toStringTag,{value:`Module`}),n},Se=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ye(t),a=0,o=i.length,s;a<o;a++)s=i[a],!xe.call(e,s)&&s!==n&&_e(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ve(t,s))||r.enumerable});return e},Ce=(e,t,n)=>(n=e==null?{}:ge(be(e)),Se(t||!e||!e.__esModule?_e(n,`default`,{value:e,enumerable:!0}):n,e)),we=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")}),Te=`0.1.30`,Ee=`https://github.com/baicie/npm-check-updates`,De={url:`https://github.com/raineorshine/npm-check-updates/issues`},Oe={name:`@baicie/ncu`,version:Te,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:Ee,bugs:De,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.3`,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.4`,"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":`^10.0.1`,"@trivago/prettier-plugin-sort-imports":`^6.0.2`,"@types/bun":`^1.3.9`,"@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.24`,"@types/mocha":`^10.0.10`,"@types/node":`^25.3.0`,"@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.56.1`,"@typescript-eslint/parser":`^8.56.1`,chai:`^6.2.2`,"chai-as-promised":`^8.0.2`,"chai-string":`^1.6.0`,"cross-env":`^10.1.0`,eslint:`^10.0.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.7.0`,"eslint-plugin-n":`^17.24.0`,"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.3`,rolldown:`1.0.0-rc.5`,"rolldown-plugin-dts":`^0.22.1`,"rollup-plugin-node-externals":`^8.1.2`,"rollup-plugin-visualizer":`^7.0.0`,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.56.1`,"typescript-json-schema":`^0.67.1`,verdaccio:`^6.2.7`,vite:`^7.3.1`,"vite-bundle-analyzer":`^1.3.6`,"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.30.2`,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}const ke={blue:!0,bold:!0,cyan:!0,gray:!0,green:!0,magenta:!0,red:!0,yellow:!0},Ae=N(ke,e=>({[e]:e=>e.toString()}));let je;const Me=async e=>{let{default:t,Chalk:n}=await import(`chalk`);je=e===!0?new n({level:1}):e===null?Ae:t},Ne=()=>{if(!je)throw Error(`Chalk has not been imported yet. Chalk is a dynamic import and requires that you await { chalkInit } from './lib/chalk'.`)},P=N(ke,e=>{let t=t=>(Ne(),je[e].bold(t)),n=t=>(Ne(),je[e](t));return n.bold=t,{[e]:n}}),F=(e,t)=>N(e,(e,n)=>t(e,n)?{[e]:n}:null),Pe=e=>o.stat(e).then(()=>!0,()=>!1);async function Fe(t,{pkgFile:n}={}){let r=we.resolve.paths(t)||[],i=n?[e.join(e.dirname(n),`node_modules`)]:[],a=[e.join(process.cwd(),`node_modules`)],s=[...i,...a,...r];for(let n of s){let r=e.join(n,t,`package.json`);if(await Pe(r))try{return JSON.parse(await o.readFile(r,`utf-8`))}catch{}}return null}async function Ie(e,t,{pkgFile:n}={}){return t?t.version:(await Fe(e,{pkgFile:n}))?.version??null}async function Le(e,{pkgFile:t}={}){return(await Fe(e,{pkgFile:t}))?.repository??null}async function Re(e,t,{pkgFile:n}={}){let r=t?t.repository?t.repository:null:await Le(e,{pkgFile:n});if(!r)return null;let i,a=``;if(typeof r==`string`){i=r;try{let e=new c(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=s.fromUrl(i)?.browse(a);return e===void 0?i:e.replace(/\/$/,``).replace(/\/tree\/HEAD$/,``)}return null}var ze=j(((e,t)=>{t.exports=Array.isArray})),Be=j(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),I=j(((e,t)=>{var n=Be(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),Ve=j(((e,t)=>{t.exports=I().Symbol})),He=j(((e,t)=>{var n=Ve(),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})),Ue=j(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),We=j(((e,t)=>{var n=Ve(),r=He(),i=Ue(),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})),Ge=j(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),Ke=j(((e,t)=>{var n=We(),r=Ge(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),qe=j(((e,t)=>{var n=ze(),r=Ke(),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})),Je=j(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),Ye=j(((e,t)=>{var n=We(),r=Je(),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})),Xe=j(((e,t)=>{t.exports=I()[`__core-js_shared__`]})),Ze=j(((e,t)=>{var n=Xe(),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})),Qe=j(((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})),$e=j(((e,t)=>{var n=Ye(),r=Ze(),i=Je(),a=Qe(),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})),et=j(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),tt=j(((e,t)=>{var n=$e(),r=et();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),nt=j(((e,t)=>{t.exports=tt()(Object,`create`)})),rt=j(((e,t)=>{var n=nt();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),it=j(((e,t)=>{function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=n})),at=j(((e,t)=>{var n=nt(),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})),ot=j(((e,t)=>{var n=nt(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),st=j(((e,t)=>{var n=nt(),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})),ct=j(((e,t)=>{var n=rt(),r=it(),i=at(),a=ot(),o=st();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})),lt=j(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),ut=j(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),dt=j(((e,t)=>{var n=ut();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),ft=j(((e,t)=>{var n=dt(),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})),pt=j(((e,t)=>{var n=dt();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),mt=j(((e,t)=>{var n=dt();function r(e){return n(this.__data__,e)>-1}t.exports=r})),ht=j(((e,t)=>{var n=dt();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})),gt=j(((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=j(((e,t)=>{t.exports=tt()(I(),`Map`)})),vt=j(((e,t)=>{var n=ct(),r=gt(),i=_t();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),yt=j(((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})),bt=j(((e,t)=>{var n=yt();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),xt=j(((e,t)=>{var n=bt();function r(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}t.exports=r})),St=j(((e,t)=>{var n=bt();function r(e){return n(this,e).get(e)}t.exports=r})),Ct=j(((e,t)=>{var n=bt();function r(e){return n(this,e).has(e)}t.exports=r})),wt=j(((e,t)=>{var n=bt();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})),Tt=j(((e,t)=>{var n=vt(),r=xt(),i=St(),a=Ct(),o=wt();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=j(((e,t)=>{var n=Tt(),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})),Dt=j(((e,t)=>{var n=Et(),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})),Ot=j(((e,t)=>{var n=Dt(),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})})),kt=j(((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})),At=j(((e,t)=>{var n=Ve(),r=kt(),i=ze(),a=Ke(),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})),jt=j(((e,t)=>{var n=At();function r(e){return e==null?``:n(e)}t.exports=r})),Mt=j(((e,t)=>{var n=ze(),r=qe(),i=Ot(),a=jt();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),Nt=j(((e,t)=>{var n=Ke(),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})),Pt=j(((e,t)=>{var n=Mt(),r=Nt();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})),Ft=j(((e,t)=>{var n=Pt();function r(e){return function(t){return e==null?void 0:n(e,t)}}t.exports=r}));function It(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 Lt=Ce(Ft(),1);const Rt=[`major`,`minor`,`patch`],zt=[`release`,`build`],L=[...Rt,...zt],Bt={major:``,minor:`.`,patch:`.`,release:`-`,build:`+`},Vt=[`^`,`~`,`.*`,`.x`],Ht=RegExp(`^(${[`^`,`~`,`^*`,`*`,`x`,`x.x`,`x.x.x`].join(`|`).replace(/\^/g,`\\^`).replace(/\*/g,`\\*`)})$`),Ut=/^npm:(.*)@(.*)/;function Wt(e){let[t]=_.parseRange(e);if(!t)throw Error(b.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 L.reduce((e,n)=>t[n]?e+1:e,0)}function R(e,t){return(t?L.slice(0,L.indexOf(t)+1):L).filter(n=>t&&Rt.includes(t)||e[n]).map(t=>Bt[t]+(e[t]||`0`)).join(``)}function Gt(e){let[t]=_.parseRange(e);return L.slice().reverse().find((0,Lt.default)(t))}function Kt(e,t){let[n]=_.parseRange(e);return R(n,t)}function qt(e,t){return t===`^`||t===`~`?t+e:Kt(e,`major`)+t}function Jt(e){return Ht.test(e)}function Yt(e){return e===`*`||e===`x`}function Xt(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 Zt(e,t,n){let r=N(e,(r,i,a)=>{let o=t[r],s=Xt(o,i),c=n.groupFunction?.(r,s,y(o),y(i),v(e[r]))??s;return c===`none`?a:{...a,[c]:{...a[c],[r]:i}}}),i={patch:P.green(P.bold(`Patch`)+` Backwards-compatible bug fixes`),minor:P.cyan(P.bold(`Minor`)+` Backwards-compatible features`),major:P.red(P.bold(`Major`)+` Potentially breaking API changes`),majorVersionZero:P.magenta(P.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 Qt(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=d.valid(e)?e:d.minVersion(e)?.version??null,r=d.valid(t)?t:d.minVersion(t)?.version??null;n&&r&&d.gt(n,r)&&(o=`yellow`)}catch{}let s=a>0&&a<r.length?`.`:``;return n+r.slice(0,a).join(`.`)+s+P[o](r.slice(a).join(`.`))}const $t=e=>{let t=d.prerelease(e);return t&&t.slice(0,-1).join(`.`)};function en(e,t){let n=$t(e),r=$t(t);return typeof n!=`string`||typeof r!=`string`||n===r}function tn(e,t){return(d.valid(e)&&d.valid(t)?d.gt(e,t):e>t)?1:e===t?0:-1}function nn(e,t,n){if(!d.validRange(t))return null;let r=d.minVersion(t);return[...e].sort(tn).filter(e=>{let t=d.parse(e);return t&&(n===`major`||t.major===r?.major)&&(n===`major`||n===`minor`||t.minor===r?.minor)}).at(-1)||null}function rn(e){return Gt(e)===`release`}const an=e=>/^[vV]?\d+$/.test(e),on=e=>/^[vV]?\d+\.\d+$/.test(e),sn=e=>e.replace(/^[vV]/,``),cn=e=>an(e)?e+`.0.0`:e,ln=e=>on(e)?e+`.0`:e,un=e=>ln(cn(sn(e)));function dn(e){return e&&(e[0]===`v`||e[1]===`v`)?`v`:``}const fn=(e,t)=>`npm:${e}@${t}`,pn=e=>{let t=e&&e.match&&e.match(Ut);return t&&t.slice(1)},mn=e=>e&&!!e.match(Ut),hn=(e,t)=>{let n=pn(e);return n?fn(n[0],t):null},gn=e=>{if(!e)return!1;let t=null;try{t=l(e)}catch{}if(!t||!t.branch)return!1;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return!!d.validRange(n)},_n=e=>{if(!e)return null;let t=l(e);if(!t||!t.branch)return null;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return t&&t.branch&&d.validRange(n)?n:null};function vn(e,t,n={}){if(n.wildcard=n.wildcard||`^`,!t)return e;let[r]=_.parseRange(t);if(!r)return e;if(n.removeRange)return t;if(Jt(e))return e;let i=It(_.parseRange(e).filter(e=>e.operator!==`||`&&e.operator!==`-`),e=>Wt(R(e))),[a]=i;function o(e){return(Yt(a[e])?a[e]:Rt.includes(e)&&a[e]||zt.includes(e)?r[e]:null)||null}let s=R(N(L,e=>({[e]:o(e)}))),c=dn(a.semver)+s,l=Array.from(new Set(i.map(e=>e.operator))),u=l[0]||``,d=Vt.some(e=>s.includes(e)),f=l[0]===`<`||l[0]===`<=`,p=l[0]===`>`,m=l.length>1;return!d&&(f||m)?qt(c,n.wildcard):(p?`>=`:u)+c}const yn=(e,t)=>{let n=dn(e),r=n?n+t:t;return r=an(e)?r.slice(0,r.length-4):r,r=on(e)?r.slice(0,r.length-2):r,r},bn=(e,t)=>{let n=un(t),r=l(e);if(!r)return e;let i=decodeURIComponent(r.branch).replace(/^semver:/,``);return e.replace(i,vn(i,yn(i,n)))},xn={silent:0,error:1,minimal:2,warn:3,info:4,verbose:5,silly:6},Sn=e=>!e.startsWith(`file:`)&&!e.startsWith(`link:`)&&!e.startsWith(`workspace:`)&&!/^[^/:@]+\/\w+/.test(e);function z(e,t,n=null,r=`log`){!e.json&&e.loglevel!==`silent`&&(n==null||xn[e.loglevel??`warn`]>=xn[n])&&console[r](t)}function Cn(e,t){e.loglevel!==`silent`&&console.log(JSON.stringify(t,null,2))}function wn(e,t){console.log(Object.keys(e).map(t=>t+`@`+e[t]).join(t))}function B(e,t,n){z(e,Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}),n)}function Tn(e){let t=new a({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
+ import e from"path";import t from"prompts-ncu";import n from"spawn-please";import r from"fs";import i from"os";import a from"cli-table3";import o from"fs/promises";import s from"hosted-git-info";import{URL as c}from"url";import l from"parse-github-url";import*as u from"semver";import d,{intersects as f,minVersion as p,satisfies as m,valid as h,validRange as g}from"semver";import _,{parse as v,parseRange as y}from"semver-utils";import b from"util";import x from"camelcase";import S from"fast-memoize";import C from"ini";import w from"npm-registry-fetch";import T from"untildify";import{findUp as E,findUpSync as ee}from"find-up";import te from"node:fs";import D from"node:os";import O from"node:path";import k from"js-yaml";import A from"jsonlines";import{text as ne}from"node:stream/consumers";import re from"fast-glob";import ie from"picomatch";import{rcFile as ae}from"rc-config-loader";import{dequal as oe}from"dequal";import se from"node:child_process";import{promisify as ce}from"node:util";import{and as le,or as ue}from"fp-and-or";import de from"progress";import fe from"p-map";import{ParseErrorCode as pe,parse as me,stripComments as he}from"jsonc-parser";var ge=Object.create,_e=Object.defineProperty,ve=Object.getOwnPropertyDescriptor,ye=Object.getOwnPropertyNames,be=Object.getPrototypeOf,xe=Object.prototype.hasOwnProperty,j=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),M=(e,t)=>{let n={};for(var r in e)_e(n,r,{get:e[r],enumerable:!0});return t||_e(n,Symbol.toStringTag,{value:`Module`}),n},Se=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ye(t),a=0,o=i.length,s;a<o;a++)s=i[a],!xe.call(e,s)&&s!==n&&_e(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=ve(t,s))||r.enumerable});return e},Ce=(e,t,n)=>(n=e==null?{}:ge(be(e)),Se(t||!e||!e.__esModule?_e(n,`default`,{value:e,enumerable:!0}):n,e)),we=(e=>typeof require<`u`?require:typeof Proxy<`u`?new Proxy(e,{get:(e,t)=>(typeof require<`u`?require:e)[t]}):e)(function(e){if(typeof require<`u`)return require.apply(this,arguments);throw Error('Calling `require` for "'+e+"\" in an environment that doesn't expose the `require` function. See https://rolldown.rs/in-depth/bundling-cjs#require-external-modules for more details.")}),Te=`0.1.33`,Ee=`https://github.com/baicie/npm-check-updates`,De={url:`https://github.com/raineorshine/npm-check-updates/issues`},Oe={name:`@baicie/ncu`,version:Te,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:Ee,bugs:De,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.3`,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.18.1`,"npm-registry-fetch":`^19.1.1`,"p-map":`^7.0.4`,"parse-github-url":`^1.0.4`,picomatch:`^4.0.4`,progress:`^2.0.3`,"prompts-ncu":`^3.0.2`,"rc-config-loader":`^4.1.4`,rfdc:`^1.4.1`,semver:`^7.7.4`,"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":`^10.0.1`,"@trivago/prettier-plugin-sort-imports":`^6.0.2`,"@types/bun":`^1.3.12`,"@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.24`,"@types/mocha":`^10.0.10`,"@types/node":`^24.12.2`,"@types/npm-registry-fetch":`^8.0.9`,"@types/parse-github-url":`^1.0.3`,"@types/picomatch":`^4.0.3`,"@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.1`,"@types/update-notifier":`^6.0.8`,"@typescript-eslint/eslint-plugin":`^8.58.1`,"@typescript-eslint/parser":`^8.58.1`,chai:`^6.2.2`,"chai-as-promised":`^8.0.2`,"chai-string":`^1.6.0`,"cross-env":`^10.1.0`,eslint:`^10.2.0`,"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.9.0`,"eslint-plugin-n":`^17.24.0`,"eslint-plugin-promise":`^7.2.1`,"lint-staged":`^16.4.0`,"markdownlint-cli":`^0.48.0`,mocha:`^11.7.5`,"npm-run-all":`^4.1.5`,prettier:`^3.8.2`,rimraf:`^6.1.3`,rolldown:`1.0.0-rc.15`,"rolldown-plugin-dts":`^0.23.2`,"rollup-plugin-node-externals":`^9.0.0`,"rollup-plugin-visualizer":`^7.0.1`,should:`^13.2.3`,"simple-git-hooks":`^2.13.1`,sinon:`^21.1.2`,"source-map-support":`^0.5.21`,"strip-ansi":`^7.2.0`,"ts-node":`^10.9.2`,tsx:`^4.21.0`,typescript:`^6.0.2`,"typescript-eslint":`^8.58.1`,"typescript-json-schema":`^0.67.1`,verdaccio:`^6.5.0`,vite:`^8.0.8`,"vite-bundle-analyzer":`^1.3.7`,"vite-node":`^6.0.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.33.0`,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}const ke={blue:!0,bold:!0,cyan:!0,gray:!0,green:!0,magenta:!0,red:!0,yellow:!0},Ae=N(ke,e=>({[e]:e=>e.toString()}));let je;const Me=async e=>{let{default:t,Chalk:n}=await import(`chalk`);je=e===!0?new n({level:1}):e===null?Ae:t},Ne=()=>{if(!je)throw Error(`Chalk has not been imported yet. Chalk is a dynamic import and requires that you await { chalkInit } from './lib/chalk'.`)},P=N(ke,e=>{let t=t=>(Ne(),je[e].bold(t)),n=t=>(Ne(),je[e](t));return n.bold=t,{[e]:n}}),F=(e,t)=>N(e,(e,n)=>t(e,n)?{[e]:n}:null),Pe=e=>o.stat(e).then(()=>!0,()=>!1);async function Fe(t,{pkgFile:n}={}){let r=we.resolve.paths(t)||[],i=n?[e.join(e.dirname(n),`node_modules`)]:[],a=[e.join(process.cwd(),`node_modules`)],s=[...i,...a,...r];for(let n of s){let r=e.join(n,t,`package.json`);if(await Pe(r))try{return JSON.parse(await o.readFile(r,`utf-8`))}catch{}}return null}async function Ie(e,t,{pkgFile:n}={}){return t?t.version:(await Fe(e,{pkgFile:n}))?.version??null}async function Le(e,{pkgFile:t}={}){return(await Fe(e,{pkgFile:t}))?.repository??null}async function Re(e,t,{pkgFile:n}={}){let r=t?t.repository?t.repository:null:await Le(e,{pkgFile:n});if(!r)return null;let i,a=``;if(typeof r==`string`){i=r;try{let e=new c(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=s.fromUrl(i)?.browse(a);return e===void 0?i:e.replace(/\/$/,``).replace(/\/tree\/HEAD$/,``)}return null}var I=j(((e,t)=>{t.exports=Array.isArray})),ze=j(((e,t)=>{t.exports=typeof global==`object`&&global&&global.Object===Object&&global})),L=j(((e,t)=>{var n=ze(),r=typeof self==`object`&&self&&self.Object===Object&&self;t.exports=n||r||Function(`return this`)()})),Be=j(((e,t)=>{t.exports=L().Symbol})),Ve=j(((e,t)=>{var n=Be(),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})),He=j(((e,t)=>{var n=Object.prototype.toString;function r(e){return n.call(e)}t.exports=r})),Ue=j(((e,t)=>{var n=Be(),r=Ve(),i=He(),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})),We=j(((e,t)=>{function n(e){return typeof e==`object`&&!!e}t.exports=n})),Ge=j(((e,t)=>{var n=Ue(),r=We(),i=`[object Symbol]`;function a(e){return typeof e==`symbol`||r(e)&&n(e)==i}t.exports=a})),Ke=j(((e,t)=>{var n=I(),r=Ge(),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})),qe=j(((e,t)=>{function n(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}t.exports=n})),Je=j(((e,t)=>{var n=Ue(),r=qe(),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})),Ye=j(((e,t)=>{t.exports=L()[`__core-js_shared__`]})),Xe=j(((e,t)=>{var n=Ye(),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})),Ze=j(((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})),Qe=j(((e,t)=>{var n=Je(),r=Xe(),i=qe(),a=Ze(),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})),$e=j(((e,t)=>{function n(e,t){return e?.[t]}t.exports=n})),et=j(((e,t)=>{var n=Qe(),r=$e();function i(e,t){var i=r(e,t);return n(i)?i:void 0}t.exports=i})),tt=j(((e,t)=>{t.exports=et()(Object,`create`)})),nt=j(((e,t)=>{var n=tt();function r(){this.__data__=n?n(null):{},this.size=0}t.exports=r})),rt=j(((e,t)=>{function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}t.exports=n})),it=j(((e,t)=>{var n=tt(),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})),at=j(((e,t)=>{var n=tt(),r=Object.prototype.hasOwnProperty;function i(e){var t=this.__data__;return n?t[e]!==void 0:r.call(t,e)}t.exports=i})),ot=j(((e,t)=>{var n=tt(),r=`__lodash_hash_undefined__`;function i(e,t){var i=this.__data__;return this.size+=+!this.has(e),i[e]=n&&t===void 0?r:t,this}t.exports=i})),st=j(((e,t)=>{var n=nt(),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=j(((e,t)=>{function n(){this.__data__=[],this.size=0}t.exports=n})),lt=j(((e,t)=>{function n(e,t){return e===t||e!==e&&t!==t}t.exports=n})),ut=j(((e,t)=>{var n=lt();function r(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}t.exports=r})),dt=j(((e,t)=>{var n=ut(),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})),ft=j(((e,t)=>{var n=ut();function r(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}t.exports=r})),pt=j(((e,t)=>{var n=ut();function r(e){return n(this.__data__,e)>-1}t.exports=r})),mt=j(((e,t)=>{var n=ut();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})),ht=j(((e,t)=>{var n=ct(),r=dt(),i=ft(),a=pt(),o=mt();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})),gt=j(((e,t)=>{t.exports=et()(L(),`Map`)})),_t=j(((e,t)=>{var n=st(),r=ht(),i=gt();function a(){this.size=0,this.__data__={hash:new n,map:new(i||r),string:new n}}t.exports=a})),vt=j(((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})),yt=j(((e,t)=>{var n=vt();function r(e,t){var r=e.__data__;return n(t)?r[typeof t==`string`?`string`:`hash`]:r.map}t.exports=r})),bt=j(((e,t)=>{var n=yt();function r(e){var t=n(this,e).delete(e);return this.size-=+!!t,t}t.exports=r})),xt=j(((e,t)=>{var n=yt();function r(e){return n(this,e).get(e)}t.exports=r})),St=j(((e,t)=>{var n=yt();function r(e){return n(this,e).has(e)}t.exports=r})),Ct=j(((e,t)=>{var n=yt();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})),wt=j(((e,t)=>{var n=_t(),r=bt(),i=xt(),a=St(),o=Ct();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})),Tt=j(((e,t)=>{var n=wt(),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})),Et=j(((e,t)=>{var n=Tt(),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})),Dt=j(((e,t)=>{var n=Et(),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})})),Ot=j(((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})),kt=j(((e,t)=>{var n=Be(),r=Ot(),i=I(),a=Ge(),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})),At=j(((e,t)=>{var n=kt();function r(e){return e==null?``:n(e)}t.exports=r})),jt=j(((e,t)=>{var n=I(),r=Ke(),i=Dt(),a=At();function o(e,t){return n(e)?e:r(e,t)?[e]:i(a(e))}t.exports=o})),Mt=j(((e,t)=>{var n=Ge(),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})),Nt=j(((e,t)=>{var n=jt(),r=Mt();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})),Pt=Ce(j(((e,t)=>{var n=Nt();function r(e){return function(t){return e==null?void 0:n(e,t)}}t.exports=r}))(),1);function Ft(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):[]}const It=[`major`,`minor`,`patch`],Lt=[`release`,`build`],R=[...It,...Lt],Rt={major:``,minor:`.`,patch:`.`,release:`-`,build:`+`},zt=[`^`,`~`,`.*`,`.x`],Bt=RegExp(`^(${[`^`,`~`,`^*`,`*`,`x`,`x.x`,`x.x.x`].join(`|`).replace(/\^/g,`\\^`).replace(/\*/g,`\\*`)})$`),Vt=/^npm:(.*)@(.*)/;function Ht(e){let[t]=_.parseRange(e);if(!t)throw Error(b.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 R.reduce((e,n)=>t[n]?e+1:e,0)}function z(e,t){return(t?R.slice(0,R.indexOf(t)+1):R).filter(n=>t&&It.includes(t)||e[n]).map(t=>Rt[t]+(e[t]||`0`)).join(``)}function Ut(e){let[t]=_.parseRange(e);return R.slice().reverse().find((0,Pt.default)(t))}function Wt(e,t){let[n]=_.parseRange(e);return z(n,t)}function Gt(e,t){return t===`^`||t===`~`?t+e:Wt(e,`major`)+t}function Kt(e){return Bt.test(e)}function qt(e){return e===`*`||e===`x`}function Jt(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 Yt(e,t,n){let r=N(e,(r,i,a)=>{let o=t[r],s=Jt(o,i),c=n.groupFunction?.(r,s,y(o),y(i),v(e[r]))??s;return c===`none`?a:{...a,[c]:{...a[c],[r]:i}}}),i={patch:P.green(P.bold(`Patch`)+` Backwards-compatible bug fixes`),minor:P.cyan(P.bold(`Minor`)+` Backwards-compatible features`),major:P.red(P.bold(`Major`)+` Potentially breaking API changes`),majorVersionZero:P.magenta(P.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 Xt(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=d.valid(e)?e:d.minVersion(e)?.version??null,r=d.valid(t)?t:d.minVersion(t)?.version??null;n&&r&&d.gt(n,r)&&(o=`yellow`)}catch{}let s=a>0&&a<r.length?`.`:``;return n+r.slice(0,a).join(`.`)+s+P[o](r.slice(a).join(`.`))}const Zt=e=>{let t=d.prerelease(e);return t&&t.slice(0,-1).join(`.`)};function Qt(e,t){let n=Zt(e),r=Zt(t);return typeof n!=`string`||typeof r!=`string`||n===r}function $t(e,t){return(d.valid(e)&&d.valid(t)?d.gt(e,t):e>t)?1:e===t?0:-1}function en(e,t,n){if(!d.validRange(t))return null;let r=d.minVersion(t);return[...e].sort($t).filter(e=>{let t=d.parse(e);return t&&(n===`major`||t.major===r?.major)&&(n===`major`||n===`minor`||t.minor===r?.minor)}).at(-1)||null}function tn(e){return Ut(e)===`release`}const nn=e=>/^[vV]?\d+$/.test(e),rn=e=>/^[vV]?\d+\.\d+$/.test(e),an=e=>e.replace(/^[vV]/,``),on=e=>nn(e)?e+`.0.0`:e,sn=e=>rn(e)?e+`.0`:e,cn=e=>sn(on(an(e)));function ln(e){return e&&(e[0]===`v`||e[1]===`v`)?`v`:``}const un=(e,t)=>`npm:${e}@${t}`,dn=e=>{let t=e&&e.match&&e.match(Vt);return t&&t.slice(1)},fn=e=>e&&!!e.match(Vt),pn=(e,t)=>{let n=dn(e);return n?un(n[0],t):null},mn=e=>{if(!e)return!1;let t=null;try{t=l(e)}catch{}if(!t||!t.branch)return!1;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return!!d.validRange(n)},hn=e=>{if(!e)return null;let t=l(e);if(!t||!t.branch)return null;let n=decodeURIComponent(t.branch).replace(/^semver:/,``);return t&&t.branch&&d.validRange(n)?n:null};function gn(e,t,n={}){if(n.wildcard=n.wildcard||`^`,!t)return e;let[r]=_.parseRange(t);if(!r)return e;if(n.removeRange)return t;if(Kt(e))return e;let i=Ft(_.parseRange(e).filter(e=>e.operator!==`||`&&e.operator!==`-`),e=>Ht(z(e))),[a]=i;function o(e){return(qt(a[e])?a[e]:It.includes(e)&&a[e]||Lt.includes(e)?r[e]:null)||null}let s=z(N(R,e=>({[e]:o(e)}))),c=ln(a.semver)+s,l=Array.from(new Set(i.map(e=>e.operator))),u=l[0]||``,d=zt.some(e=>s.includes(e)),f=l[0]===`<`||l[0]===`<=`,p=l[0]===`>`,m=l.length>1;return!d&&(f||m)?Gt(c,n.wildcard):(p?`>=`:u)+c}const _n=(e,t)=>{let n=ln(e),r=n?n+t:t;return r=nn(e)?r.slice(0,r.length-4):r,r=rn(e)?r.slice(0,r.length-2):r,r},vn=(e,t)=>{let n=cn(t),r=l(e);if(!r)return e;let i=decodeURIComponent(r.branch).replace(/^semver:/,``);return e.replace(i,gn(i,_n(i,n)))},yn={silent:0,error:1,minimal:2,warn:3,info:4,verbose:5,silly:6},bn=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||yn[e.loglevel??`warn`]>=yn[n])&&console[r](t)}function xn(e,t){e.loglevel!==`silent`&&console.log(JSON.stringify(t,null,2))}function V(e,t,n){B(e,Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}),n)}function Sn(e){let t=new a({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 En(e){return gn(e)?_n(e):mn(e)?pn(e)[1]:e}async function Dn({from:e,to:t,format:n,ownersChangedDeps:r,pkgFile:i,time:a}){let s=n?.includes(`dep`)&&i?JSON.parse(await o.readFile(i,`utf-8`)):null;return Tn(await Promise.all(Object.keys(t).sort().map(async o=>{let c=(n?.includes(`installedVersion`)?await Ie(o,void 0,{pkgFile:i}):e[o])||``,l=o in(s?.devDependencies??{})?`dev`:o in(s?.peerDependencies??{})?`peer`:o in(s?.optionalDependencies??{})?`optional`:``,u=En(t[o]||``),d=r?o in r?r[o]?`*owner changed*`:``:`*unknown*`:``,f=Qt(En(c),u),p=n?.includes(`repo`)&&await Re(o,void 0,{pkgFile:i})||``,m=n?.includes(`time`)&&a?.[o]?a[o]:``;return[o,...n?.includes(`dep`)?[l?P.gray(l):``]:[],c,`→`,f,d,...[p,m].filter(e=>e)]})))}async function On({current:e,upgraded:t,ownersChangedDeps:n,pkgFile:r,time:i},a){if(a.format?.includes(`group`)){let o=Zt(t,e,a);for(let{heading:t,packages:s}of o)z(a,`
4
- `+t),z(a,await Dn({from:e,to:s,format:a.format,ownersChangedDeps:n,pkgFile:r,time:i}))}else a.format?.includes(`lines`)?wn(t,`
5
- `):z(a,await Dn({from:e,to:t,format:a.format,ownersChangedDeps:n,pkgFile:r,time:i}))}function kn(e,t){if(t&&Object.keys(t).length>0){let n=new a({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,P.yellow(t)])),z(e,`
6
- `+n.toString())}}async function An(e,{current:t,latest:n,upgraded:r,total:i,ownersChangedDeps:a,pkgFile:o,time:s,errors:c}){e.format?.includes(`group`)||z(e,``);let l=P.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?z(e,`No dependencies.`):n&&Object.keys(n).length===0&&Object.values(F(t,(e,t)=>Sn(t))).length>0?z(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 ${P.cyan(`npx pacote packument ncu-test-v2`)} is working before reporting an issue.`):e.global?z(e,`All global packages are up-to-date ${l}`):z(e,`All dependencies match the ${d} package versions ${l}`):f===0&&i>0?z(e,`No dependencies upgraded ${l}`):f>0&&await On({current:t,upgraded:r,ownersChangedDeps:a,pkgFile:o,time:s},e),kn(e,c)}function jn(e,t){z(e,`
3
+ `)}function Cn(e){return mn(e)?hn(e):fn(e)?dn(e)[1]:e}async function wn({from:e,to:t,format:n,ownersChangedDeps:r,pkgFile:i,time:a,pinnedPackages:s}){let c=n?.includes(`dep`)&&i?JSON.parse(await o.readFile(i,`utf-8`)):null;return Sn(await Promise.all(Object.keys(t).sort().map(async o=>{let l=(n?.includes(`installedVersion`)?await Ie(o,void 0,{pkgFile:i}):e[o])||``,u=o in(c?.devDependencies??{})?`dev`:o in(c?.peerDependencies??{})?`peer`:o in(c?.optionalDependencies??{})?`optional`:``,d=Cn(t[o]||``),f=r?o in r?r[o]?`*owner changed*`:``:`*unknown*`:``,p=Xt(Cn(l),d),m=n?.includes(`repo`)&&await Re(o,void 0,{pkgFile:i})||``,h=n?.includes(`time`)&&a?.[o]?a[o]:``,g=s?.has(o)?` `+P.yellow(`(pinned)`):``;return[o,...n?.includes(`dep`)?[u?P.gray(u):``]:[],l,`→`,p+g,f,...[m,h].filter(e=>e)]})))}async function Tn({current:e,upgraded:t,ownersChangedDeps:n,pkgFile:r,time:i,pinnedPackages:a},o){if(o.format?.includes(`group`)){let s=Yt(t,e,o);for(let{heading:t,packages:c}of s)B(o,`
4
+ `+t),B(o,await wn({from:e,to:c,format:o.format,ownersChangedDeps:n,pkgFile:r,time:i,pinnedPackages:a}))}else o.format?.includes(`lines`)?B(o,Object.keys(t).sort().map(e=>a?.has(e)?`${e}@${t[e]} ${P.yellow(`(pinned)`)}`:`${e}@${t[e]}`).join(`
5
+ `)):B(o,await wn({from:e,to:t,format:o.format,ownersChangedDeps:n,pkgFile:r,time:i,pinnedPackages:a}))}function En(e,t){if(t&&Object.keys(t).length>0){let n=new a({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,P.yellow(t)])),B(e,`
6
+ `+n.toString())}}async function Dn(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=P.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(F(t,(e,t)=>bn(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 ${P.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 Tn({current:t,upgraded:r,ownersChangedDeps:a,pkgFile:o,time:s,pinnedPackages:e.pinVersions?new Set(Object.keys(e.pinVersions)):void 0},e),En(e,c)}function On(e,t){B(e,`
7
7
  Ignored incompatible updates (peer dependencies):
8
- `),z(e,Tn(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,`→`,Qt(t,n),i]})))}function Mn(e,t){z(e,`
8
+ `),B(e,Sn(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,`→`,Xt(t,n),i]})))}function kn(e,t){B(e,`
9
9
  Ignored incompatible updates (engines node):
10
- `),z(e,Tn(Object.entries(t).map(([e,{from:t,to:n,enginesNode:r}])=>[e,t,`→`,Qt(t,n),`reason: requires node ${r}`])))}function Nn(e,t=10){return typeof e.timestamp==`number`?e.timestamp+60*1e3*t<Date.now():!1}const Pn=`.ncu-cache.json`,Fn=`~/${Pn}`,In=e.join(i.homedir(),Pn);function Ln(e){return e===Fn?In:e}async function Rn(e){e.cacheFile&&await r.promises.rm(Ln(e.cacheFile),{force:!0})}async function zn(e){if(!e.cache||!e.cacheFile)return;let t=Ln(e.cacheFile),n={},i=new Set;try{n=JSON.parse(await r.promises.readFile(t,`utf-8`)),Nn(n,e.cacheExpiration)&&(r.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 r=`${e}___${t}`,a=n.packages[r];return a&&!r.includes(a)&&i.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 r=`${e}___${t}`,a=n.peers[r];return a&&i.add(e),a},setPeers:(e,t,r)=>{let i=`${e}___${t}`;n.peers&&(n.peers[i]=r)},save:async()=>{await r.promises.writeFile(t,JSON.stringify(n))},log:t=>{let n=i.size;n!==0&&(z(e,`\nUsing ${n} cached package ${t?`peer`:`version`}${n>1?`s`:``}`,`warn`),z(e,i,`verbose`),i.clear())}}}const Bn=(e,t=92)=>{let n=e.split(`
10
+ `),B(e,Sn(Object.entries(t).map(([e,{from:t,to:n,enginesNode:r}])=>[e,t,`→`,Xt(t,n),`reason: requires node ${r}`])))}function An(e,t=10){return typeof e.timestamp==`number`?e.timestamp+60*1e3*t<Date.now():!1}const jn=`.ncu-cache.json`,Mn=`~/${jn}`,Nn=e.join(i.homedir(),jn);function Pn(e){return e===Mn?Nn:e}async function Fn(e){e.cacheFile&&await r.promises.rm(Pn(e.cacheFile),{force:!0})}async function In(e){if(!e.cache||!e.cacheFile)return;let t=Pn(e.cacheFile),n={},i=new Set;try{n=JSON.parse(await r.promises.readFile(t,`utf-8`)),An(n,e.cacheExpiration)&&(r.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 r=`${e}___${t}`,a=n.packages[r];return a&&!r.includes(a)&&i.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 r=`${e}___${t}`,a=n.peers[r];return a&&i.add(e),a},setPeers:(e,t,r)=>{let i=`${e}___${t}`;n.peers&&(n.peers[i]=r)},save:async()=>{await r.promises.writeFile(t,JSON.stringify(n))},log:t=>{let n=i.size;n!==0&&(B(e,`\nUsing ${n} cached package ${t?`peer`:`version`}${n>1?`s`:``}`,`warn`),B(e,i,`verbose`),i.clear())}}}const Ln=(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()},Vn=e=>e.map(([e,t])=>[e,Bn(t)]),Hn=e=>`
13
- <tr>`+e.map(e=>`<td>${e}</td>`).join(``)+`</tr>`,V=({colAligns:e,markdown:t,rows:n})=>{if(t)return`<table>${n.map(Hn).join(``)}\n</table>`;{let r=new a({...e?{colAligns:e}:null});return r.push(...t?n:Vn(n)),r.toString()}},Un=[`latest`,`newest`,`greatest`,`minor`,`patch`,`semver`],H=(e,t)=>e.split(`
12
+ `).trim()},Rn=e=>e.map(([e,t])=>[e,Ln(t)]),zn=e=>`
13
+ <tr>`+e.map(e=>`<td>${e}</td>`).join(``)+`</tr>`,H=({colAligns:e,markdown:t,rows:n})=>{if(t)return`<table>${n.map(zn).join(``)}\n</table>`;{let r=new a({...e?{colAligns:e}:null});return r.push(...t?n:Rn(n)),r.toString()}},Bn=[`latest`,`newest`,`greatest`,`minor`,`patch`,`semver`],Vn=(e,t)=>e.split(`
14
14
  `).map(e=>`${``.padStart(t,` `)}${e}`).join(`
15
- `),U=(e,{markdown:t}={})=>`${t?"```js\n":``}${H(e,t?0:4)}${t?"\n```":``}`,Wn=e=>e.replace(/`/g,``),Gn=(e,{markdown:t}={})=>{let n=``;if(e.cli!==!1&&(n=`Usage:
15
+ `),U=(e,{markdown:t}={})=>`${t?"```js\n":``}${Vn(e,t?0:4)}${t?"\n```":``}`,Hn=e=>e.replace(/`/g,``),Un=(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}):Wn(e.help({markdown:t})):e.help;n+=`\n${r.trim()}\n\n`}else if(e.description){let r=t?e.description:Wn(e.description);n+=`\n${r.replace(/`/g,``)}\n`}return n.trim()},Kn=[{long:`cache`,description:`Cache versions to a local cache file. Default \`--cacheFile\` is ${Fn} 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:t=>e.isAbsolute(t)?t:e.join(process.cwd(),t),default:Fn,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.
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}):Hn(e.help({markdown:t})):e.help;n+=`\n${r.trim()}\n\n`}else if(e.description){let r=t?e.description:Hn(e.description);n+=`\n${r.replace(/`/g,``)}\n`}return n.trim()},Wn=[{long:`cache`,description:`Cache versions to a local cache file. Default \`--cacheFile\` is ${Mn} 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:t=>e.isAbsolute(t)?t:e.join(process.cwd(),t),default:Mn,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
  ${P.yellow("Requires `-u` to execute")} (modifies your package file, lock file, and node_modules)
20
20
 
@@ -30,7 +30,7 @@ To be more precise:
30
30
 
31
31
  Additional options:
32
32
 
33
- ${V({markdown:e,rows:[[P.cyan(`--doctorInstall`),"specify a custom install script (default: `npm install` or `yarn`)"],[P.cyan(`--doctorTest`),"specify a custom test script (default: `npm test`)"]]})}
33
+ ${H({markdown:e,rows:[[P.cyan(`--doctorInstall`),"specify a custom install script (default: `npm install` or `yarn`)"],[P.cyan(`--doctorTest`),"specify a custom test script (default: `npm test`)"]]})}
34
34
 
35
35
  Example:
36
36
 
@@ -127,7 +127,7 @@ ${P.green(`filterVersion`)}: (name, semver) ${P.cyan(`=>`)} {
127
127
  ${P.red(`return`)} ${P.cyan(`true`)}
128
128
  }`,{markdown:e})}
129
129
 
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${H(V({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)}
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${Vn(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
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\`.
132
132
 
133
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.
@@ -150,8 +150,8 @@ ${P.green(`groupFunction`)}: (name, defaultGroup, currentSpec, upgradedSpec, upg
150
150
  ${P.red(`return`)} defaultGroup
151
151
  }`,{markdown:e})}
152
152
 
153
- `},{long:`install`,arg:`value`,description:`Control the auto-install behavior: always, never, prompt.`,help:({markdown:e})=>`Control the auto-install behavior.\n\n${H(V({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${H(V({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)}
153
+ `},{long:`install`,arg:`value`,description:`Control the auto-install behavior: always, never, prompt.`,help:({markdown:e})=>`Control the auto-install behavior.\n\n${Vn(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${Vn(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
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.
156
156
 
157
157
  ${P.bold(`Example`)}:
@@ -186,7 +186,7 @@ As a comparison: without using the \`--peer\` option, ncu will suggest the lates
186
186
 
187
187
  ncu-test-peer-update 1.0.0 → 1.${P.cyan(`1.0`)}
188
188
  ncu-test-return-version 1.0.0 → ${P.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${H(V({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 ${P.cyan("`--registry`")} option.
189
+ `}},{long:`pinVersions`,arg:`json`,description:`Pin packages to specific versions, bypassing target strategy. Accepts a JSON object mapping package names to versions (e.g., '{"lodash":"4.17.21"}').`,parse:e=>{if(typeof e==`string`)try{return JSON.parse(e)}catch{throw Error(`pinVersions must be a valid JSON object`)}return e},type:`Index<string>`},{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${Vn(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 ${P.cyan("`--registry`")} option.
190
190
 
191
191
  Example:
192
192
 
@@ -252,7 +252,7 @@ ${P.green(`rejectVersion`)}: (name, semver) ${P.cyan(`=>`)} {
252
252
 
253
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
254
 
255
- ${H(V({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)}
255
+ ${Vn(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)}
256
256
 
257
257
  e.g.
258
258
 
@@ -272,7 +272,7 @@ ${P.green(`target`)}: (name, semver) ${P.cyan(`=>`)} {
272
272
  ${P.red(`if`)} (parseInt(semver[0]?.major) ${P.red(`===`)} ${P.yellow(`'0'`)}) ${P.red(`return`)} ${P.yellow(`'minor'`)}
273
273
  ${P.red(`return`)} ${P.yellow(`'latest'`)}
274
274
  }`,{markdown:e})}
275
- `,type:`${Un.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.
275
+ `,type:`${Bn.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
277
  Note that previous stable versions will ${P.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
 
@@ -334,41 +334,41 @@ ${U(`${P.gray(`/** Set cooldown to 3 days but skip it for \`@my-company\` packag
334
334
  @returns Cooldown days restriction for given package.
335
335
  */`)}
336
336
  ${P.green(`cooldown`)}: packageName ${P.cyan(`=>`)} (packageName.startsWith(${P.yellow(`'@my-company'`)}) ? ${P.cyan(`0`)} : ${P.cyan(`3`)})`,{markdown:e})}
337
- `,parse:e=>typeof e==`function`?e:parseInt(e,10)}],W=Kn.reduce((e,t)=>({...e,...t.short?{[t.short]:t}:null,...t.long?{[t.long]:t}:null}),{}),qn=It(Kn,e=>e.long),Jn=[`package-lock.json`,`yarn.lock`,`pnpm-lock.yaml`,`deno.json`,`deno.jsonc`,`bun.lock`,`bun.lockb`];async function Yn(t,n=o.readdir){try{let r=i.homedir(),a=i.tmpdir(),o=t.cwd?t.cwd:t.packageFile?e.dirname(t.packageFile):`.`;for(o=e.resolve(o);;){let t=await n(o);for(let e of Jn)if(t.includes(e))return{directoryPath:o,filename:e};let i=e.resolve(o,`..`);if(i===o||i===r||i===a)break;o=i}}catch{}return null}const Xn={"package-lock":`npm`,yarn:`yarn`,"pnpm-lock":`pnpm`,deno:`deno`,bun:`bun`},Zn=()=>{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`},Qn=async(e,t=o.readdir)=>{if(e.packageManager)return e.packageManager;if(e.global)return Zn();let n=(await Yn(e,t))?.filename;return n?Xn[n.split(`.`)[0]]:`npm`};var $n=class e{constructor(e,t,n){this.__specs=e||{},this.__opts=t||{},this.__providers=ir(n.filter(e=>typeof e==`object`&&!!e)),this.__isFiggyPudding=!0}get(e){return er(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):ar(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,ir(this.__providers).concat(t)),nr)}};function er(e,t,n){let r=e.__specs[t];r||={};let i;for(let n of e.__providers)if(i=tr(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 tr(e,t){let n;return n=t.__isFiggyPudding?er(t,e,!1):t[e],n}const nr={get(e,t){return typeof t==`symbol`||t.slice(0,2)===`__`||t in $n.prototype?e[t]:e.get(t)}};function rr(e,t){function n(...n){return new Proxy(new $n(e,t,n),nr)}return n}function ir(e){let t=[];return e.forEach(e=>t.unshift(e)),t}function ar(e){return Object.keys(e).map(t=>[t,e[t]])}const or=rr({},{other(){return!0}}),sr=rr({cache:{default:O.join(process.env.HOME||D.homedir(),`.npm`)},configNames:{default:[`npmrc`,`.npmrc`]},envPrefix:{default:/^npm_config_/i},cwd:{default:()=>process.cwd()},globalconfig:{default:()=>O.join(ur(),`etc`,`npmrc`)},userconfig:{default:O.join(process.env.HOME||D.homedir(),`.npmrc`)}});function cr(e,t){let n=sr(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=or(e),a=n.userconfig||i.userconfig||r.userconfig,o=a&&lr(a),s=n.globalconfig||i.globalconfig||r.globalconfig,c=s&&lr(s),l=ee(n.configNames,{cwd:n.cwd}),u={};l&&l!==a&&(u=lr(l));let d=or(n,c,o,u,r,i);return d.cache?d.concat({cache:O.resolve(i.cache||r.cache?n.cwd:u.cache?O.dirname(l):o.cache?O.dirname(a):c.cache?O.dirname(s):O.dirname(a),d.cache)}):d}function lr(e){let t;try{t=te.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return``;throw e}return C.parse(t)}function ur(){if(process.env.PREFIX)return process.env.PREFIX;if(process.platform===`win32`)return O.dirname(process.execPath);{let e=O.dirname(O.dirname(process.execPath));return process.env.DESTDIR&&(e=O.join(process.env.DESTDIR,e)),e}}function dr(e,t){return t.deprecated||!e.deprecated}function fr(e,t){return t.pre?!0:!e.version||!rn(e.version)}function pr(e,t){if(!t)return!0;let n=d.minVersion(t)?.version;if(!n)return!0;let r=e?.engines?.node;return!r||d.satisfies(n,r)}function mr(e,t){return t?Object.values(t).every(t=>t[e.name]===void 0||d.satisfies(e.version,t[e.name])):!0}function hr(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 gr(e){let t=[t=>dr(t,e),t=>fr(t,e),e.enginesNode?t=>pr(t,e.nodeEngineVersion):null,e.peerDependencies?t=>mr(t,e.peerDependencies):null,e.cooldown?t=>hr(t,e.cooldown):null];return e=>t.every(t=>t?t(e):!0)}var _r=M({default:()=>Ar,defaultPrefix:()=>jr,distTag:()=>Ir,fetchUpgradedPackumentMemo:()=>q,getEngines:()=>Pr,getPeerDependencies:()=>Nr,greatest:()=>Mr,latest:()=>Lr,list:()=>Fr,minor:()=>zr,mockFetchUpgradedPackument:()=>Dr,newest:()=>Rr,normalizeNpmConfig:()=>Sr,packageAuthorChanged:()=>Tr,parseJson:()=>K,patch:()=>Br,semver:()=>Vr});const vr=new Set([`-`,`||`,`&&`,`<`,`<=`,`>`,`>=`]),yr=e=>y(e).some(e=>vr.has(e.operator||``)),br=e=>e&&(!d.validRange(e)||Jt(e)),xr=async(e,t,n,r={},i)=>{let a=w.pickRegistry(e,r),o={"user-agent":r.userAgent||`npm-check-updates/${Te} node/${process.version}`,"ncu-version":Te,"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 w.json(s.href,c);{n||=`latest`;let r=w.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 xr(e,t,n,{...r,fullMetadata:!0},i)}},G=(e,t)=>{let n=e.version;return{...e,name:t.name,...t?.time?.[n]?{time:t.time}:null}},Sr=(t,n)=>{let i={cafile:t=>{if(!t)return;let i=r.readFileSync(e.resolve(n||``,T(t)),`utf8`),a=`-----END CERTIFICATE-----`;return{ca:i.split(a).filter(e=>!!e.trim()).map(e=>`${e.trimStart()}${a}`)}},maxsockets:`maxSockets`,"strict-ssl":`strictSSL`},a={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`},o=e=>!!e&&e!==`false`&&e!==`0`,s=e=>parseInt(e)||0;return N(t,(e,t)=>{let n=typeof t==`string`?a[e.replace(/-/g,``).toLowerCase()]===`boolean`?o(t):a[e.replace(/-/g,``).toLowerCase()]===`number`?s(t):t.replace(/\${([^}]+)}/,(e,t)=>process.env[t]):t,{[e]:r}=i;return typeof r==`string`?{[r]:n}:typeof r==`function`?{...r(n.toString())}:{[e.match(/^[a-z]/i)?x(e):e]:n}})},Cr=S(e=>{let t;if(e)try{t=C.parse(r.readFileSync(e,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}else t={...cr(null,{userconfig:process.env.npm_config_userconfig||process.env.NPM_CONFIG_USERCONFIG}).toJSON(),cache:!1};return Sr(t,e)}),wr=Cr();function K(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 Tr(e,t,n,r={},i){let a=await xr(e,[`versions`],null,{...i,...wr,fullMetadata:!0,...r.registry?{registry:r.registry,silent:!0}:null});if(a.versions){let e=Object.keys(a.versions),r=d.minSatisfying(e,t),i=d.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 Er=e=>!!(e&&(e.name||e.engines||e.version||e.versions)),Dr=e=>(t,n,r,i)=>{let a=typeof e==`function`?e(i)?.[t]:typeof e==`string`||Er(e)?e:e[t],o=Er(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=Er(a)&&a.time?.[o]||new Date().toISOString(),c={name:t,"dist-tags":{[i.distTag||`latest`]:o},engines:{node:``},time:{[o]:s},version:o,versions:{},...Er(a)?a:null},{versions:l,...u}=c;return Promise.resolve({...c,versions:{...Er(a)&&a.versions||{[o]:u}}})},Or=S(({npmConfigLocal:t,npmConfigUser:n,npmConfigWorkspaceProject:r},i)=>{let a=i.packageFile?e.join(i.packageFile,`../.npmrc`):null,o=i.packageFile?Cr(a||void 0):null,s=i.cwd?e.join(i.cwd,`.npmrc`):null,c=i.cwd?Cr(s):null;if(r&&Object.keys(r).length>0){z(i,`
338
- npm config (workspace project):`,`verbose`);let{cache:e,...t}=r;B(i,t,`verbose`)}if(n&&Object.keys(n).length>0){z(i,`
339
- npm config (user):`,`verbose`);let{cache:e,...t}=n;B(i,t,`verbose`)}if(t&&Object.keys(t).length>0){z(i,`
340
- npm config (local override):`,`verbose`);let{cache:e,...n}=t;B(i,n,`verbose`)}if(o&&Object.keys(o).length>0){z(i,`\nnpm config (project: ${a}):`,`verbose`);let{cache:e,...t}=o;B(i,t,`verbose`)}if(c&&Object.keys(c).length>0){z(i,`\nnpm config (cwd: ${s}):`,`verbose`);let{cache:e,...t}=c;B(i,t,`verbose`)}let l={...r,...n,...t,...o,...c,...i.registry?{registry:i.registry,silent:!0}:null,...i.timeout?{timeout:i.timeout}:null};if(r||t||o||c){z(i,`
341
- merged npm config:`,`verbose`);let{cache:e,...t}=l;B(i,t,`verbose`)}return l});async function kr(e,t,n,r,i=0,a,o){if(process.env.STUB_VERSIONS)return Dr(JSON.parse(process.env.STUB_VERSIONS))(e,t,n,r);if(br(n))return Promise.resolve({});let s=r.format?.includes(`time`)&&!t.includes(`time`)?[...t,`time`]:t,c=s.includes(`time`),l=Or({npmConfigUser:{...wr,fullMetadata:c},npmConfigLocal:a,npmConfigWorkspaceProject:o},r),u;try{let n=r.distTag||`latest`;u=await xr(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 kr(e,s,n,r,i,a);throw t}return u}const q=S(kr,{serializer:(([e,t,n,r,i,a,o])=>{let{packageFile:s,...c}=r;return JSON.stringify([e,t,br(n),c,i,a,o])})});async function Ar(e,t={},r={},i={}){let{stdout:a}=await n(process.platform===`win32`?`npm.cmd`:`npm`,[...t.global?[`--global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--json`,...Array.isArray(e)?e:[e]],r,i);return a}async function jr(e){if(e.prefix)return Promise.resolve(e.prefix);let t=process.platform===`win32`?`npm.cmd`:`npm`,r;try{let{stdout:e}=await n(t,[`config`,`get`,`prefix`]);r=e}catch(t){z(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&&r?.match(`Cellar`)?`/usr/local`:process.platform===`win32`&&e.global&&!process.env.prefix?r?r.trim():`${process.env.AppData}\\npm`:void 0}const Mr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;return{version:Object.values(s||{}).filter(e=>gr(n)(G(e,o))).map(e=>e.version).sort(tn).at(-1)||null}},Nr=async(e,t,n)=>{let r=[`view`,`${e}@${t}`,`peerDependencies`],i=await Ar(r,{},{rejectOnError:!1},n);return i?K(i,{command:[...r,`--json`].join(` `)}):{}},Pr=async(e,t,n={},r)=>(await xr(e,[`engines`],null,{...r,...wr,...n.registry?{registry:n.registry,silent:!0}:null},t)).engines||{},Fr=async(e={})=>{let t=K(await Ar([`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}))},Ir=async(e,t,n={},r,i)=>{let a=[`dist-tags`];n.cooldown&&a.push(`time`);let o=await q(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=G(c,o);return c&&gr(n)(l)?{version:c.version,...o?.time?.[s]?{time:o.time[s]}:null}:n.cooldown||n.distTag&&n.distTag!==`latest`?{}:Mr(e,t,n,r,i)},Lr=async(e,t,n={},r,i)=>Ir(e,t,{...n,distTag:`latest`},r,i),Rr=async(e,t,n={},r,i)=>{let a=await q(e,[`time`,`versions`],t,n,0,r,i),o=N(a?.versions||{},(e,t)=>pr(t,n.nodeEngineVersion)?{[t.version]:!0}:null),s=F(a?.time||{},e=>o[e]&&(n.pre!==!1||!rn(e))),c=It(Object.entries(s),e=>e[1]).map(([e])=>e);return n.cooldown?{version:c.filter(e=>hr(G(a.versions[e],a),n.cooldown)).at(-1)}:{version:c.at(-1)}},zr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;return{version:nn(Object.values(s||{}).filter(e=>gr(n)(G(e,o))).map(e=>e.version),t,`minor`)}},Br=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;return{version:nn(Object.values(s||{}).filter(e=>gr(n)(G(e,o))).map(e=>e.version),t,`patch`)}},Vr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;if(yr(t))return{version:null};let c=Object.values(s||{}).filter(e=>gr(n)(G(e,o))).map(e=>e.version);return{version:d.maxSatisfying(c,t)}};var Hr=M({default:()=>Ur,defaultPrefix:()=>Wr,distTag:()=>Ir,getEngines:()=>Pr,getPeerDependencies:()=>Nr,greatest:()=>Mr,latest:()=>Lr,list:()=>Gr,minor:()=>zr,newest:()=>Rr,packageAuthorChanged:()=>Tr,patch:()=>Br,semver:()=>Vr});async function Ur(e,t={},r={},i={}){return n(`bun`,[...t.global?[`--global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],...Array.isArray(e)?e:[e]],r,i)}const Wr=async t=>t.global?t.prefix||process.env.BUN_INSTALL||e.dirname((await n(`bun`,[`pm`,`-g`,`bin`])).stdout):void 0,Gr=async(e={})=>{let{default:t}=await import(`./strip-ansi.mjs`),{stdout:n}=await Ur([`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 N(t(n).split(`
342
- `),e=>{let t=e.match(/.* (.+?)@(.+)/);if(t){let[,e,n]=t;return{[e]:n}}return null})};var Kr=M({default:()=>ni,defaultPrefix:()=>jr,distTag:()=>Yr,getEngines:()=>Pr,getPeerDependencies:()=>Nr,greatest:()=>Xr,latest:()=>Zr,list:()=>Jr,minor:()=>Qr,newest:()=>$r,packageAuthorChanged:()=>Tr,patch:()=>ei,semver:()=>ti});const qr=S(async t=>{let n=await E(`pnpm-workspace.yaml`);if(!n)return{};let r=e.dirname(n),i=e.join(r,`.npmrc`),a;try{a=await o.readFile(i,`utf-8`)}catch{return{}}z(t,`\nUsing pnpm workspace config at ${i}:`,`verbose`);let s=Sr(C.parse(a),r);return z(t,s,`verbose`),s}),Jr=async(e={})=>{if(!e.global)return Fr(e);let{stdout:t}=await n(process.platform===`win32`?`pnpm.cmd`:`pnpm`,[`ls`,`-g`,`--json`]);return N(JSON.parse(t)[0].dependencies||{},(e,{version:t})=>({[e]:t}))},J=e=>async(t,n,r={})=>e(t,n,r,{},await qr(r)),Yr=J(Ir),Xr=J(Mr),Zr=J(Lr),Qr=J(zr),$r=J(Rr),ei=J(Br),ti=J(Vr);async function ni(e,t={},r,i){let{stdout:a}=await n(process.platform===`win32`?`pnpm.cmd`:`pnpm`,[...t.global?`global`:[],...Array.isArray(e)?e:[e],...t.prefix?`--prefix=${t.prefix}`:[]],i,r);return a}var ri=j(((e,t)=>{function n(e){return e}t.exports=n})),ii=j(((e,t)=>{t.exports=tt()(I(),`WeakMap`)})),ai=j(((e,t)=>{var n=ii();t.exports=n&&new n})),oi=j(((e,t)=>{var n=ri(),r=ai();t.exports=r?function(e,t){return r.set(e,t),e}:n})),si=j(((e,t)=>{var n=Je(),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}}()})),ci=j(((e,t)=>{var n=si(),r=Je();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})),li=j(((e,t)=>{var n=ci(),r=I(),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})),ui=j(((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})),di=j(((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})),fi=j(((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})),pi=j(((e,t)=>{function n(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}t.exports=n})),mi=j(((e,t)=>{function n(){}t.exports=n})),hi=j(((e,t)=>{var n=si(),r=mi(),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})),gi=j(((e,t)=>{function n(){}t.exports=n})),_i=j(((e,t)=>{var n=ai(),r=gi();t.exports=n?function(e){return n.get(e)}:r})),vi=j(((e,t)=>{t.exports={}})),yi=j(((e,t)=>{var n=vi(),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})),bi=j(((e,t)=>{var n=si(),r=mi();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})),xi=j(((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})),Si=j(((e,t)=>{var n=hi(),r=bi(),i=xi();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})),Ci=j(((e,t)=>{var n=hi(),r=bi(),i=mi(),a=ze(),o=Ge(),s=Si(),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})),wi=j(((e,t)=>{var n=hi(),r=_i(),i=yi(),a=Ci();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})),Ti=j(((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})),Ei=j(((e,t)=>{var n=oi();t.exports=Ti()(n)})),Di=j(((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})),Oi=j(((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,`{
337
+ `,parse:e=>typeof e==`function`?e:parseInt(e,10)}],W=Wn.reduce((e,t)=>({...e,...t.short?{[t.short]:t}:null,...t.long?{[t.long]:t}:null}),{}),Gn=Ft(Wn,e=>e.long),Kn=[`package-lock.json`,`yarn.lock`,`pnpm-lock.yaml`,`deno.json`,`deno.jsonc`,`bun.lock`,`bun.lockb`];async function qn(t,n=o.readdir){try{let r=i.homedir(),a=i.tmpdir(),o=t.cwd?t.cwd:t.packageFile?e.dirname(t.packageFile):`.`;for(o=e.resolve(o);;){let t=await n(o);for(let e of Kn)if(t.includes(e))return{directoryPath:o,filename:e};let i=e.resolve(o,`..`);if(i===o||i===r||i===a)break;o=i}}catch{}return null}const Jn={"package-lock":`npm`,yarn:`yarn`,"pnpm-lock":`pnpm`,deno:`deno`,bun:`bun`},Yn=()=>{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`},Xn=async(e,t=o.readdir)=>{if(e.packageManager)return e.packageManager;if(e.global)return Yn();let n=(await qn(e,t))?.filename;return n?Jn[n.split(`.`)[0]]:`npm`};var Zn=class e{constructor(e,t,n){this.__specs=e||{},this.__opts=t||{},this.__providers=nr(n.filter(e=>typeof e==`object`&&!!e)),this.__isFiggyPudding=!0}get(e){return Qn(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):rr(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,nr(this.__providers).concat(t)),er)}};function Qn(e,t,n){let r=e.__specs[t];r||={};let i;for(let n of e.__providers)if(i=$n(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 $n(e,t){let n;return n=t.__isFiggyPudding?Qn(t,e,!1):t[e],n}const er={get(e,t){return typeof t==`symbol`||t.slice(0,2)===`__`||t in Zn.prototype?e[t]:e.get(t)}};function tr(e,t){function n(...n){return new Proxy(new Zn(e,t,n),er)}return n}function nr(e){let t=[];return e.forEach(e=>t.unshift(e)),t}function rr(e){return Object.keys(e).map(t=>[t,e[t]])}const ir=tr({},{other(){return!0}}),ar=tr({cache:{default:O.join(process.env.HOME||D.homedir(),`.npm`)},configNames:{default:[`npmrc`,`.npmrc`]},envPrefix:{default:/^npm_config_/i},cwd:{default:()=>process.cwd()},globalconfig:{default:()=>O.join(cr(),`etc`,`npmrc`)},userconfig:{default:O.join(process.env.HOME||D.homedir(),`.npmrc`)}});function or(e,t){let n=ar(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=ir(e),a=n.userconfig||i.userconfig||r.userconfig,o=a&&sr(a),s=n.globalconfig||i.globalconfig||r.globalconfig,c=s&&sr(s),l=ee(n.configNames,{cwd:n.cwd}),u={};l&&l!==a&&(u=sr(l));let d=ir(n,c,o,u,r,i);return d.cache?d.concat({cache:O.resolve(i.cache||r.cache?n.cwd:u.cache?O.dirname(l):o.cache?O.dirname(a):c.cache?O.dirname(s):O.dirname(a),d.cache)}):d}function sr(e){let t;try{t=te.readFileSync(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return``;throw e}return C.parse(t)}function cr(){if(process.env.PREFIX)return process.env.PREFIX;if(process.platform===`win32`)return O.dirname(process.execPath);{let e=O.dirname(O.dirname(process.execPath));return process.env.DESTDIR&&(e=O.join(process.env.DESTDIR,e)),e}}function lr(e,t){return t.deprecated||!e.deprecated}function ur(e,t){return t.pre?!0:!e.version||!tn(e.version)}function dr(e,t){if(!t)return!0;let n=d.minVersion(t)?.version;if(!n)return!0;let r=e?.engines?.node;return!r||d.satisfies(n,r)}function fr(e,t){return t?Object.values(t).every(t=>t[e.name]===void 0||d.satisfies(e.version,t[e.name])):!0}function pr(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 mr(e){let t=[t=>lr(t,e),t=>ur(t,e),e.enginesNode?t=>dr(t,e.nodeEngineVersion):null,e.peerDependencies?t=>fr(t,e.peerDependencies):null,e.cooldown?t=>pr(t,e.cooldown):null];return e=>t.every(t=>t?t(e):!0)}var hr=M({default:()=>kr,defaultPrefix:()=>Ar,distTag:()=>Fr,fetchUpgradedPackumentMemo:()=>q,getEngines:()=>Nr,getPeerDependencies:()=>Mr,greatest:()=>jr,latest:()=>Ir,list:()=>Pr,minor:()=>Rr,mockFetchUpgradedPackument:()=>Er,newest:()=>Lr,normalizeNpmConfig:()=>xr,packageAuthorChanged:()=>wr,parseJson:()=>K,patch:()=>zr,semver:()=>Br});const gr=typeof x==`function`?x:x.default,_r=new Set([`-`,`||`,`&&`,`<`,`<=`,`>`,`>=`]),vr=e=>y(e).some(e=>_r.has(e.operator||``)),yr=e=>e&&(!d.validRange(e)||Kt(e)),br=async(e,t,n,r={},i)=>{let a=w.pickRegistry(e,r),o={"user-agent":r.userAgent||`npm-check-updates/${Te} node/${process.version}`,"ncu-version":Te,"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 w.json(s.href,c);{n||=`latest`;let r=w.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 br(e,t,n,{...r,fullMetadata:!0},i)}},G=(e,t)=>{let n=e.version;return{...e,name:t.name,...t?.time?.[n]?{time:t.time}:null}},xr=(t,n)=>{let i={cafile:t=>{if(!t)return;let i=r.readFileSync(e.resolve(n||``,T(t)),`utf8`),a=`-----END CERTIFICATE-----`;return{ca:i.split(a).filter(e=>!!e.trim()).map(e=>`${e.trimStart()}${a}`)}},maxsockets:`maxSockets`,"strict-ssl":`strictSSL`},a={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`},o=e=>!!e&&e!==`false`&&e!==`0`,s=e=>parseInt(e)||0;return N(t,(e,t)=>{let n=typeof t==`string`?a[e.replace(/-/g,``).toLowerCase()]===`boolean`?o(t):a[e.replace(/-/g,``).toLowerCase()]===`number`?s(t):t.replace(/\${([^}]+)}/,(e,t)=>process.env[t]):t,{[e]:r}=i;return typeof r==`string`?{[r]:n}:typeof r==`function`?{...r(n.toString())}:{[e.match(/^[a-z]/i)?gr(e):e]:n}})},Sr=S(e=>{let t;if(e)try{t=C.parse(r.readFileSync(e,`utf-8`))}catch(e){if(e.code===`ENOENT`)return null;throw e}else t={...or(null,{userconfig:process.env.npm_config_userconfig||process.env.NPM_CONFIG_USERCONFIG}).toJSON(),cache:!1};return xr(t,e)}),Cr=Sr();function K(e,t){let n;try{n=JSON.parse(e)}catch(n){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.`}`,{cause:n})}return n}async function wr(e,t,n,r={},i){let a=await br(e,[`versions`],null,{...i,...Cr,fullMetadata:!0,...r.registry?{registry:r.registry,silent:!0}:null});if(a.versions){let e=Object.keys(a.versions),r=d.minSatisfying(e,t),i=d.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 Tr=e=>!!(e&&(e.name||e.engines||e.version||e.versions)),Er=e=>(t,n,r,i)=>{let a=typeof e==`function`?e(i)?.[t]:typeof e==`string`||Tr(e)?e:e[t],o=Tr(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=Tr(a)&&a.time?.[o]||new Date().toISOString(),c={name:t,"dist-tags":{[i.distTag||`latest`]:o},engines:{node:``},time:{[o]:s},version:o,versions:{},...Tr(a)?a:null},{versions:l,...u}=c;return Promise.resolve({...c,versions:{...Tr(a)&&a.versions||{[o]:u}}})},Dr=S(({npmConfigLocal:t,npmConfigUser:n,npmConfigWorkspaceProject:r},i)=>{let a=i.packageFile?e.join(i.packageFile,`../.npmrc`):null,o=i.packageFile?Sr(a||void 0):null,s=i.cwd?e.join(i.cwd,`.npmrc`):null,c=i.cwd?Sr(s):null;if(r&&Object.keys(r).length>0){B(i,`
338
+ npm config (workspace project):`,`verbose`);let{cache:e,...t}=r;V(i,t,`verbose`)}if(n&&Object.keys(n).length>0){B(i,`
339
+ npm config (user):`,`verbose`);let{cache:e,...t}=n;V(i,t,`verbose`)}if(t&&Object.keys(t).length>0){B(i,`
340
+ npm config (local override):`,`verbose`);let{cache:e,...n}=t;V(i,n,`verbose`)}if(o&&Object.keys(o).length>0){B(i,`\nnpm config (project: ${a}):`,`verbose`);let{cache:e,...t}=o;V(i,t,`verbose`)}if(c&&Object.keys(c).length>0){B(i,`\nnpm config (cwd: ${s}):`,`verbose`);let{cache:e,...t}=c;V(i,t,`verbose`)}let l={...r,...n,...t,...o,...c,...i.registry?{registry:i.registry,silent:!0}:null,...i.timeout?{timeout:i.timeout}:null};if(r||t||o||c){B(i,`
341
+ merged npm config:`,`verbose`);let{cache:e,...t}=l;V(i,t,`verbose`)}return l});async function Or(e,t,n,r,i=0,a,o){if(process.env.STUB_VERSIONS)return Er(JSON.parse(process.env.STUB_VERSIONS))(e,t,n,r);if(yr(n))return Promise.resolve({});let s=r.format?.includes(`time`)&&!t.includes(`time`)?[...t,`time`]:t,c=s.includes(`time`),l=Dr({npmConfigUser:{...Cr,fullMetadata:c},npmConfigLocal:a,npmConfigWorkspaceProject:o},r),u;try{let n=r.distTag||`latest`;u=await br(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 Or(e,s,n,r,i,a);throw t}return u}const q=S(Or,{serializer:(([e,t,n,r,i,a,o])=>{let{packageFile:s,...c}=r;return JSON.stringify([e,t,yr(n),c,i,a,o])})});async function kr(e,t={},r={},i={}){let{stdout:a}=await n(process.platform===`win32`?`npm.cmd`:`npm`,[...t.global?[`--global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--json`,...Array.isArray(e)?e:[e]],r,i);return a}async function Ar(e){if(e.prefix)return Promise.resolve(e.prefix);let t=process.platform===`win32`?`npm.cmd`:`npm`,r;try{let{stdout:e}=await n(t,[`config`,`get`,`prefix`]);r=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&&r?.match(`Cellar`)?`/usr/local`:process.platform===`win32`&&e.global&&!process.env.prefix?r?r.trim():`${process.env.AppData}\\npm`:void 0}const jr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;return{version:Object.values(s||{}).filter(e=>mr(n)(G(e,o))).map(e=>e.version).sort($t).at(-1)||null}},Mr=async(e,t,n)=>{let r=[`view`,`${e}@${t}`,`peerDependencies`],i=await kr(r,{},{rejectOnError:!1},n);return i?K(i,{command:[...r,`--json`].join(` `)}):{}},Nr=async(e,t,n={},r)=>(await br(e,[`engines`],null,{...r,...Cr,...n.registry?{registry:n.registry,silent:!0}:null},t)).engines||{},Pr=async(e={})=>{let t=K(await kr([`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}))},Fr=async(e,t,n={},r,i)=>{let a=[`dist-tags`];n.cooldown&&a.push(`time`);let o=await q(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=G(c,o);return c&&mr(n)(l)?{version:c.version,...o?.time?.[s]?{time:o.time[s]}:null}:n.cooldown||n.distTag&&n.distTag!==`latest`?{}:jr(e,t,n,r,i)},Ir=async(e,t,n={},r,i)=>Fr(e,t,{...n,distTag:`latest`},r,i),Lr=async(e,t,n={},r,i)=>{let a=await q(e,[`time`,`versions`],t,n,0,r,i),o=N(a?.versions||{},(e,t)=>dr(t,n.nodeEngineVersion)?{[t.version]:!0}:null),s=F(a?.time||{},e=>o[e]&&(n.pre!==!1||!tn(e))),c=Ft(Object.entries(s),e=>e[1]).map(([e])=>e);return n.cooldown?{version:c.filter(e=>pr(G(a.versions[e],a),n.cooldown)).at(-1)}:{version:c.at(-1)}},Rr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;return{version:en(Object.values(s||{}).filter(e=>mr(n)(G(e,o))).map(e=>e.version),t,`minor`)}},zr=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;return{version:en(Object.values(s||{}).filter(e=>mr(n)(G(e,o))).map(e=>e.version),t,`patch`)}},Br=async(e,t,n={},r,i)=>{let a=[`versions`];n.cooldown&&a.push(`time`);let o=await q(e,a,t,n,0,r,i),s=o?.versions;if(vr(t))return{version:null};let c=Object.values(s||{}).filter(e=>mr(n)(G(e,o))).map(e=>e.version);return{version:d.maxSatisfying(c,t)}};var Vr=M({default:()=>Hr,defaultPrefix:()=>Ur,distTag:()=>Fr,getEngines:()=>Nr,getPeerDependencies:()=>Mr,greatest:()=>jr,latest:()=>Ir,list:()=>Wr,minor:()=>Rr,newest:()=>Lr,packageAuthorChanged:()=>wr,patch:()=>zr,semver:()=>Br});async function Hr(e,t={},r={},i={}){return n(`bun`,[...t.global?[`--global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],...Array.isArray(e)?e:[e]],r,i)}const Ur=async t=>t.global?t.prefix||process.env.BUN_INSTALL||e.dirname((await n(`bun`,[`pm`,`-g`,`bin`])).stdout):void 0,Wr=async(e={})=>{let{default:t}=await import(`./strip-ansi.mjs`),{stdout:n}=await Hr([`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 N(t(n).split(`
342
+ `),e=>{let t=e.match(/.* (.+?)@(.+)/);if(t){let[,e,n]=t;return{[e]:n}}return null})};var Gr=M({default:()=>ti,defaultPrefix:()=>Ar,distTag:()=>Jr,getEngines:()=>Nr,getPeerDependencies:()=>Mr,greatest:()=>Yr,latest:()=>Xr,list:()=>qr,minor:()=>Zr,newest:()=>Qr,packageAuthorChanged:()=>wr,patch:()=>$r,semver:()=>ei});const Kr=S(async t=>{let n=await E(`pnpm-workspace.yaml`);if(!n)return{};let r=e.dirname(n),i=e.join(r,`.npmrc`),a;try{a=await o.readFile(i,`utf-8`)}catch{return{}}B(t,`\nUsing pnpm workspace config at ${i}:`,`verbose`);let s=xr(C.parse(a),r);return B(t,s,`verbose`),s}),qr=async(e={})=>{if(!e.global)return Pr(e);let{stdout:t}=await n(process.platform===`win32`?`pnpm.cmd`:`pnpm`,[`ls`,`-g`,`--json`]);return N(JSON.parse(t)[0].dependencies||{},(e,{version:t})=>({[e]:t}))},J=e=>async(t,n,r={})=>e(t,n,r,{},await Kr(r)),Jr=J(Fr),Yr=J(jr),Xr=J(Ir),Zr=J(Rr),Qr=J(Lr),$r=J(zr),ei=J(Br);async function ti(e,t={},r,i){let{stdout:a}=await n(process.platform===`win32`?`pnpm.cmd`:`pnpm`,[...t.global?`global`:[],...Array.isArray(e)?e:[e],...t.prefix?`--prefix=${t.prefix}`:[]],i,r);return a}var ni=j(((e,t)=>{function n(e){return e}t.exports=n})),ri=j(((e,t)=>{t.exports=et()(L(),`WeakMap`)})),ii=j(((e,t)=>{var n=ri();t.exports=n&&new n})),ai=j(((e,t)=>{var n=ni(),r=ii();t.exports=r?function(e,t){return r.set(e,t),e}:n})),oi=j(((e,t)=>{var n=qe(),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}}()})),si=j(((e,t)=>{var n=oi(),r=qe();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})),ci=j(((e,t)=>{var n=si(),r=L(),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})),li=j(((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})),ui=j(((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})),di=j(((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})),fi=j(((e,t)=>{function n(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}t.exports=n})),pi=j(((e,t)=>{function n(){}t.exports=n})),mi=j(((e,t)=>{var n=oi(),r=pi(),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})),hi=j(((e,t)=>{function n(){}t.exports=n})),gi=j(((e,t)=>{var n=ii(),r=hi();t.exports=n?function(e){return n.get(e)}:r})),_i=j(((e,t)=>{t.exports={}})),vi=j(((e,t)=>{var n=_i(),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})),yi=j(((e,t)=>{var n=oi(),r=pi();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})),bi=j(((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})),xi=j(((e,t)=>{var n=mi(),r=yi(),i=bi();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})),Si=j(((e,t)=>{var n=mi(),r=yi(),i=pi(),a=I(),o=We(),s=xi(),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})),Ci=j(((e,t)=>{var n=mi(),r=gi(),i=vi(),a=Si();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})),wi=j(((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})),Ti=j(((e,t)=>{var n=ai();t.exports=wi()(n)})),Ei=j(((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})),Di=j(((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})),ki=j(((e,t)=>{function n(e){return function(){return e}}t.exports=n})),Ai=j(((e,t)=>{var n=tt();t.exports=function(){try{var e=n(Object,`defineProperty`);return e({},``,{}),e}catch{}}()})),ji=j(((e,t)=>{var n=ki(),r=Ai(),i=ri();t.exports=r?function(e,t){return r(e,`toString`,{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:i})),Mi=j(((e,t)=>{var n=ji();t.exports=Ti()(n)})),Ni=j(((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})),Pi=j(((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})),Fi=j(((e,t)=>{function n(e){return e!==e}t.exports=n})),Ii=j(((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})),Li=j(((e,t)=>{var n=Pi(),r=Fi(),i=Ii();function a(e,t,a){return t===t?i(e,t,a):n(e,r,a)}t.exports=a})),Ri=j(((e,t)=>{var n=Li();function r(e,t){return!!(e!=null&&e.length)&&n(e,t,0)>-1}t.exports=r})),zi=j(((e,t)=>{var n=Ni(),r=Ri(),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})),Bi=j(((e,t)=>{var n=Di(),r=Oi(),i=Mi(),a=zi();function o(e,t,o){var s=t+``;return i(e,r(s,a(n(s),o)))}t.exports=o})),Vi=j(((e,t)=>{var n=wi(),r=Ei(),i=Bi(),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})),Hi=j(((e,t)=>{function n(e){return e.placeholder}t.exports=n})),Ui=j(((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})),Wi=j(((e,t)=>{var n=xi(),r=Ui(),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})),Gi=j(((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})),Ki=j(((e,t)=>{var n=di(),r=fi(),i=pi(),a=ci(),o=Vi(),s=Hi(),c=Wi(),l=Gi(),u=I(),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,ee=t&d,te=t&f,D=t&(p|m),O=t&g,k=te?void 0:a(e);function A(){for(var d=arguments.length,f=Array(d),p=d;p--;)f[p]=arguments[p];if(D)var m=s(A),h=i(f,m);if(y&&(f=n(f,y,b,D)),x&&(f=r(f,x,S,D)),d-=h,D&&d<T){var g=l(f,m);return o(e,t,_,A.placeholder,v,f,g,C,w,T-d)}var ne=ee?v:this,re=te?ne[e]:e;return d=f.length,C?f=c(f,C):O&&d>1&&f.reverse(),E&&w<d&&(f.length=w),this&&this!==u&&this instanceof A&&(re=k||a(re)),re.apply(ne,f)}return A}t.exports=_})),qi=j(((e,t)=>{var n=ui(),r=ci(),i=Ki(),a=Vi(),o=Hi(),s=Gi(),c=I();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})),Ji=j(((e,t)=>{var n=ui(),r=ci(),i=I(),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})),Yi=j(((e,t)=>{var n=di(),r=fi(),i=Gi(),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})),Xi=j(((e,t)=>{var n=/\s/;function r(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}t.exports=r})),Zi=j(((e,t)=>{var n=Xi(),r=/^\s+/;function i(e){return e&&e.slice(0,n(e)+1).replace(r,``)}t.exports=i})),Qi=j(((e,t)=>{var n=Zi(),r=Je(),i=Ke(),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})),$i=j(((e,t)=>{var n=Qi(),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})),ea=j(((e,t)=>{var n=$i();function r(e){var t=n(e),r=t%1;return t===t?r?t-r:t:0}t.exports=r})),ta=j(((e,t)=>{var n=oi(),r=li(),i=qi(),a=Ki(),o=Ji(),s=_i(),c=Yi(),l=Ei(),u=Bi(),d=ea(),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 ee=x?x.length:0;if(ee||(t&=~(_|v),x=S=void 0),w=w===void 0?w:y(d(w),0),T=T===void 0?T:d(T),ee-=S?S.length:0,t&v){var te=x,D=S;x=S=void 0}var O=E?void 0:s(e),k=[e,t,b,x,S,te,D,C,w,T];if(O&&c(k,O),e=k[0],t=k[1],b=k[2],x=k[3],S=k[4],T=k[9]=k[9]===void 0?E?0:e.length:y(k[9]-ee,0),!T&&t&(h|g)&&(t&=~(h|g)),!t||t==p)var A=r(e,t,b);else A=t==h||t==g?i(e,t,T):(t==_||t==(p|_))&&!S.length?o(e,t,b,x):a.apply(void 0,k);return u((O?n:l)(A,k),e,t)}t.exports=b})),na=j(((e,t)=>{var n=ta(),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})),ra=M({default:()=>pa,defaultPrefix:()=>ma,distTag:()=>ga,getEngines:()=>wa,getPathToLookForYarnrc:()=>ca,getPeerDependencies:()=>Ca,greatest:()=>_a,latest:()=>va,list:()=>ha,minor:()=>ya,newest:()=>ba,npmAuthTokenKeyValue:()=>oa,packageAuthorChanged:()=>Ta,patch:()=>xa,semver:()=>Sa}),ia=Ce(na(),1);const aa=(e,t)=>e.replace(/\$\{([^:-]+)(?:(:)?-([^}]*))?\}/g,(e,n,r,i,a)=>t[n]||(i?a:``)),oa=(0,ia.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`]:aa(n.npmAuthToken,process.env)}}}return null}),sa=(e,t)=>t.npmRegistryServer?{[`@${e}:registry`]:aa(t.npmRegistryServer,process.env)}:null;async function ca(t,n=o.readdir){if(t.global)return;let r=(await Yn(t,n))?.directoryPath;if(r)return e.join(r,`.yarnrc.yml`)}const la=S(async t=>{let n=await ca(t),r=e.join(i.homedir(),`.yarnrc.yml`),a=typeof n==`string`&&await Pe(n),s=await Pe(r),c=a?await o.readFile(n,`utf-8`):``,l=s?await o.readFile(r,`utf-8`):``,u=k.load(c),d=k.load(l),f={...N(d?.npmScopes||{},sa),...N(u?.npmScopes||{},sa)};return f={...f,...N(d?.npmScopes||{},oa(f)),...N(u?.npmScopes||{},oa(f))},a&&(z(t,`\nUsing local yarn config at ${n}:`,`verbose`),z(t,u,`verbose`)),s&&(z(t,`\nUsing user yarn config at ${r}:`,`verbose`),z(t,u,`verbose`)),Object.keys(f)&&(z(t,`
345
- Merged yarn config in npm format:`,`verbose`),z(t,f,`verbose`)),f});function ua(e){return new Promise((t,n)=>{let r={},i=A.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 da(e){return new Promise((t,n)=>{let r=A.parse(),i=!1;r.on(`data`,e=>{i||(i=!0,t(JSON.stringify(e)))}),r.on(`error`,n),r.write(e),r.end()})}const fa=process.platform===`win32`?`yarn.cmd`:`yarn`;async function pa(e,t={},r={},i={}){let{stdout:a}=await n(fa,[...t.global?[`global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--depth=0`,`--json`,`--no-progress`,...Array.isArray(e)?e:[e]],r,i);return a}async function ma(e){if(e.prefix)return Promise.resolve(e.prefix);let{stdout:t}=await n(fa,[`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 ha=async(e={},t)=>N((await ua(await pa(`list`,e,{},{...e.cwd?{cwd:e.cwd}:{},...t}))).dependencies,(e,t)=>({[e]:t.version||t.required?.version})),Y=e=>async(t,n,r={})=>e(t,n,r,await la(r)),ga=Y(Ir),_a=Y(Mr),va=Y(Lr),ya=Y(zr),ba=Y(Rr),xa=Y(Br),Sa=Y(Vr),Ca=async(e,t,r)=>{let{stdout:i}=await n(fa,[`--version`],{rejectOnError:!1},r);if(i.startsWith(`1`)){let i=[`--json`,`info`,`${e}@${t}`,`peerDependencies`],{stdout:a}=await n(fa,i,{rejectOnError:!1},r);return a&&K(a,{command:i.join(` `)}).data||{}}else{let i=[`--json`,`npm`,`info`,`${e}@${t}`,`--fields`,`peerDependencies`],{stdout:a}=await n(fa,i,{rejectOnError:!1},r);if(!a)return{};try{return K(a,{command:i.join(` `)}).peerDependencies||{}}catch(e){try{let e=await da(a);if(e)return K(e,{command:i.join(` `)}).peerDependencies||{}}catch{}throw e}}},wa=async(e,t,n={})=>Pr(e,t,n,await la(n)),Ta=async(e,t,n,r={})=>Tr(e,t,n,r,await la(r));function X(e,t,{color:n=!0}={}){if(e.cli)z(e,n?P.red(t):t,null,`error`),process.exit(1);else throw Error(t)}const Ea=async(e,t)=>{let n,r;try{r=await o.readFile(t,`utf-8`),n=JSON.parse(r)}catch{X(e,`Missing or invalid ${t}`)}return{name:void 0,pkg:n,pkgFile:r,filepath:t}},Da={dev:`devDependencies`,peer:`peerDependencies`,prod:`dependencies`,optional:`optionalDependencies`},Oa=e=>(e?typeof e==`string`?e.split(`,`):e:W.dep.default).map(e=>Da[e]||e);function Z(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function ka(e,t,n){let r=await o.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`(${Z(n)}\\s*:\\s*["'])(${Z(i)})(["'])`,o=`(${Z(n)}\\s*:\\s*)(${Z(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 Aa(e,t,n){let r=await o.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`("${Z(n)}"\\s*:\\s*")(${Z(i)})(")`,o=new RegExp(a,`g`);return e.replace(o,`$1${r}$3`)},r)}async function ja(t,n,r){let i=e.extname(t);if(i===`.yaml`||i===`.yml`)return ka(t,n,r);if(i===`.json`)return Aa(t,n,r);throw Error(`Unsupported catalog file type: ${t}`)}function Ma(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function Na(t,n,r,i,a){if(a){let i=e.basename(a),s=e.extname(a);if(a.includes(`#catalog`)){let t=a.replace(`#catalog`,``);if(e.extname(t)===`.json`)return ja(t,n,r)}if(i===`pnpm-workspace.yaml`||i.includes(`catalog`)&&(s===`.yaml`||s===`.yml`)){let e=JSON.parse(t);if(typeof e==`object`&&e.name===`catalog-dependencies`&&typeof e.dependencies==`object`&&Object.keys(e).length<=3){let e=await o.readFile(a,`utf-8`),t=k.load(e);if(t.catalogs&&=Object.entries(t.catalogs).reduce((e,[t,n])=>({...e,[t]:{...n,...Object.entries(r).filter(([e])=>n[e]).reduce((e,[t,n])=>({...e,[t]:n}),{})}}),{}),t.catalog){let e=t.catalog;t.catalog={...e,...Object.entries(r).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 ja(a,n,r)}if(s===`.json`){let e=JSON.parse(t),i=e.catalog||e.catalogs,o=e.workspaces&&!Array.isArray(e.workspaces)&&(e.workspaces.catalog||e.workspaces.catalogs);if(i||o)return ja(a,n,r)}}let s=[...Oa(i.dep),`overrides`],c=RegExp(`"(${s.join(`|`)})"s*:[^}]*`,`g`),l=t.replace(c,e=>Object.entries(r).reduce((e,[t])=>{let i=`"${t}"\\s*:\\s*("|{\\s*"."\\s*:\\s*")(${Ma(n[t])})"`,a=new RegExp(i,`g`);return e.replace(a,(e,n)=>`"${t}${n?`": ${n}`:`: `}${r[t]}"`)},e));if(s.includes(`packageManager`)){let e=JSON.parse(t);if(e.packageManager){let[t]=e.packageManager.split(`@`);r[t]&&(l=l.replace(/"packageManager"\s*:\s*".*?@[^"]*"/,`"packageManager": "${t}@${r[t]}"`))}}return l}const Pa=(e,t,n,{spawnOptions:r,spawnPleaseOptions:i}={})=>{n&&console.log(P.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`?ni:t.packageManager===`yarn`?pa:t.packageManager===`bun`?Ur:Ar)(e,o,i,a)},Fa=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 Ea(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},Ia=async(e,t)=>{await Me();let r=t.packageManager===`yarn`?`yarn.lock`:t.packageManager===`pnpm`?`pnpm-lock.yaml`:t.packageManager===`bun`?`bun.lock`:`package-lock.json`,{pkg:i,pkgFile:a}=await Fa(t),s={...i.dependencies,...i.devDependencies,...i.optionalDependencies},c=async()=>{if(t.doctorInstall){let[e,...r]=t.doctorInstall.split(` `);console.log(P.blue(t.doctorInstall)),await n(e,r)}else await Pa([`install`],{packageManager:t.packageManager},!0)},l=async()=>{let e={stderr:e=>{console.error(P.red(e.toString()))},stdout:e=>{process.stdout.write(e.toString())}};if(t.doctorTest){let r=t.doctorTest.matchAll(/"(.+?)"|'(.+?)'|[^ ]+/g),i=[];for(let e of r)i=[...i,e[2]||e[1]||e[0]];let[a,...o]=i;console.log(P.blue(t.doctorTest)),await n(a,o,e)}else await Pa([`run`,`test`],{packageManager:t.packageManager},!0,{spawnPleaseOptions:e})};console.log(`Running tests before upgrading`),await c();let u=``;try{u=await o.readFile(r,`utf-8`)}catch{if(t.packageManager===`bun`){r=`bun.lockb`;try{u=await o.readFile(r,`utf-8`)}catch{}}}try{await l()}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(P.blue(`ncu `+process.argv.slice(2).filter(e=>e!==`--doctor`).join(` `))),process.env.NCU_DOCTOR=`1`;let d=await e({...t,silent:!0,doctor:!1});if(Object.keys(d||{}).length===0){console.log(`All dependencies are up-to-date `+P.green.bold(`:)`));return}let f=!1;try{await c(),f=!0,await l(),console.log(`${P.green(`✓`)} Tests pass`),await An(t,{current:s,upgraded:d,total:Object.keys(d||{}).length}),console.log(`\n${t.interactive?`Chosen`:`All`} dependencies upgraded and installed ${P.green(`:)`)}`)}catch{console.error(P.red(f?`Tests failed`:`Install failed`)),console.log(`Identifying broken dependencies`),await o.writeFile(`package.json`,a),u?await o.writeFile(r,u):await o.rm(r,{recursive:!0,force:!0});let e=a;if(f)try{await c()}catch{let e=(t.packageManager||`npm`)+` install`;throw Error(`Error: Doctor mode was about to test individual upgrades, but ${P.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 n,p;for([n,p]of Object.entries(d))try{if(await Pa([...t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`?[`add`]:[`install`,`--no-save`],`${n}@${p}`],{packageManager:t.packageManager},!0),i.scripts?.prepare)try{await Pa([`run`,`prepare`],{packageManager:t.packageManager},!0)}catch(e){throw console.error(P.red(`Prepare script failed`)),e}await l(),console.log(` ${P.green(`✓`)} ${n} ${s[n]} → ${p}`),e=await Na(e,{[n]:s[n]},{[n]:p},t),u=await o.readFile(r,`utf-8`)}catch(i){console.error(` ${P.red(`✗`)} ${n} ${s[n]} → ${p}\n`),console.error(P.red(i)),await o.writeFile(r,u),(t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`)&&await o.writeFile(`package.json`,e)}e!==a&&(console.log(`Saving partially upgraded package.json`),await o.writeFile(`package.json`,e)),await c()}};async function La(t){let n,r=null,i=t.packageFile||`package.json`;function a(n,r){if(n!=null){let r=e.resolve(n);z(t,`${t.upgrade?`Upgrading`:`Checking`} ${r}`)}else X(t,`${P.red(`No ${r}`)}\n\nPlease add a ${r} to the current directory, specify the ${P.cyan(`--packageFile`)} or ${P.cyan(`--packageData`)} options, or pipe a ${r} to stdin and specify ${P.cyan(`--stdin`)}.`,{color:!1});return o.readFile(n,`utf-8`).catch(e=>{X(t,e)})}if(z(t,`Running in local mode`,`verbose`),z(t,`Finding package file data`,`verbose`),t.packageData)r=null,n=Promise.resolve(t.packageData);else if(t.packageFile)r=t.packageFile,n=a(r,i);else if(t.stdin){z(t,`Waiting for package data on stdin`,`verbose`);let e=await ne(process.stdin),o=e.trim().length>0?e:null;r=o||!i?null:await E(i),n=o||a(await r,i)}else r=i?await E(!t.packageFile&&t.packageManager===`deno`?[`deno.json`,`deno.jsonc`]:i,{cwd:t.cwd||process.cwd()}):null,n=a(r,i);return{pkgData:await n,pkgFile:r||null,pkgPath:i}}function Ra(e){return{ignore:[`**/node_modules/**`,...typeof e.ignore==`string`?[e.ignore]:e.ignore||[]]}}const za=async t=>{let n=e.join(e.dirname(t),`pnpm-workspace.yaml`),r;try{r=await o.readFile(n,`utf-8`)}catch{return null}return k.load(r)},Ba=async(e,t)=>{let n={};if(e.packageManager===`pnpm`){let e=await za(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 o.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 Va(t,n,r,i){let{pkgData:a,pkgPath:o}=await La({...t,packageFile:r,loglevel:`silent`}),s=(typeof a==`string`?JSON.parse(a):a).workspaces||await za(o||``),c=Array.isArray(s)?s:s?.packages;c||X(t,`workspaces property missing from package.json. --workspace${t.workspaces?`s`:``} only works when you specify a "workspaces" property in your package.json.`);let l=(c||[]).map(t=>e.join(i,t,`package.json`).replace(/\\/g,`/`)),u=Ra(t),d=re.sync(l,u),f=await Promise.all(d.map(async e=>{let n=await Ea(t,e);return n.name=n.pkg.name||e.split(`/`).slice(-2)[0],n})),p=f.map(e=>e.name||``);return t.workspaces===!0?[f,p]:[f.filter(r=>t.workspace?.some(t=>c?.some(a=>r.name===t||r.filepath===e.join(i,e.dirname(a),t,n).replace(/\\/g,`/`)))),p]}async function Ha(t,n){if(!n)return null;let r=await Ba(t,n);if(!r)return null;let i={name:`catalog-dependencies`,version:`1.0.0`,dependencies:r};return{filepath:t.packageManager===`pnpm`?e.join(e.dirname(n),`pnpm-workspace.yaml`):`${n}#catalog`,pkg:i,pkgFile:JSON.stringify(i,null,2),name:`catalogs`}}async function Ua(t){let n=t.packageFile||`package.json`,r=t.cwd?T(t.cwd):`./`,i=t.packageFile||(t.cwd?e.join(r,`package.json`):`package.json`),a=t.workspaces===!0||t.workspace!==void 0&&t.workspace.length!==0,o=[];if(!a||t.root===!0){let e=i.replace(/\\/g,`/`),n=Ra(t),r=re.sync(e,n),a=await Promise.all(r.map(async e=>await Ea(t,e)));o=[...o,...a]}if(!a)return[o,[]];let s=null;if(a){let{pkgPath:e}=await La({...t,packageFile:i,loglevel:`silent`});e&&(s=await Ha(t,e))}let[c,l]=await Va(t,n,i,r);if(o=[...o,...c],s&&(o=[...o,s]),t.ignore){let n=Array.isArray(t.ignore)?t.ignore:[t.ignore];o=o.filter(t=>{let i=e.relative(r,t.filepath).replace(/\\/g,`/`),a=e.dirname(i).replace(/\\/g,`/`);return!n.some(e=>{let t=ie(e);return t(i)||t(a)||t(`${a}/`)})})}return[o,l]}async function Wa({configFileName:t,configFilePath:n,packageFile:r,global:a,options:o}){let{default:s,Chalk:c}=await import(`chalk`),l=o?.color?new c({level:1}):s,u=ae(`ncurc`,{configFileName:t||`.ncurc`,defaultExtension:[`.json`,`.yml`,`.js`],cwd:n||(a?i.homedir():r?e.dirname(r):void 0)}),d=u?.filePath;t&&!d&&X(o,`Config file ${t} not found in ${n||process.cwd()}`);let{$schema:f,...p}=u?.config||{},m=p;typeof m.format==`string`&&(m.format=W.format.parse(m.format));let h=Object.keys(m).filter(e=>!W[e]);return h.length>0&&(console.error(l.red(`Unknown option${h.length===1?``:`s`} found in config file:`),l.gray(h.join(`, `))),console.info(`Using config file `+d),console.info(`You can change the config file path with ${l.blue(`--configFilePath`)}`)),{filePath:d,args:Object.entries(m).flatMap(([e,t])=>typeof t==`boolean`||W[e]?.type===`boolean`?t?[`--${e}`]:[]:[`--${e}`,t]),config:m}}var Ga=M({greatest:()=>Xa,greatestLevel:()=>Za,latest:()=>Ya,minor:()=>Qa,newest:()=>to,patch:()=>$a,semver:()=>eo});const Ka=ce(se.execFile);async function qa(e){let t=(await Ka(`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 Ja(e,t,n){t=t.replace(/^github:/,``);let{auth:r,protocol:i,host:a,path:o}=l(t),s;try{if(i!==null)s=await qa(`${i?i.replace(`git+`,``):`https:`}//${r?r+`@`:``}${a}/${o?.replace(/^:/,``)}`);else try{s=await qa(`ssh://git@${a}/${o?.replace(/^:/,``)}`)}catch{s=await qa(`https://${r?r+`@`:``}${a}/${o}`)}}catch{z(n??{},`Invalid, private repo, or no tags for ${e}: ${t}`,`verbose`);return}return Object.keys(s).map(un).filter(e=>h(e)).sort(tn)}const Ya=async(e,t,n)=>{let r=await Ja(e,t,n);if(!r)return{version:null};let i=n?.pre?r:r.filter(e=>!rn(e)),a=i[i.length-1];return{version:a?bn(t,a):null}},Xa=async(e,t,n)=>{let r=await Ja(e,t,n);if(!r)return{version:null};let i=r[r.length-1];return{version:i?bn(t,i):null}},Za=e=>async(t,n,r={})=>{let i=decodeURIComponent(l(n).branch).replace(/^semver:/,``),a=await Ja(t,n,r);if(!a)return{version:null};let o=nn(a.map(e=>e.replace(/^v/,``)),i,e);return{version:o?bn(n,o):null}},Qa=Za(`minor`),$a=Za(`patch`),eo=async(e,t,n)=>({version:null}),to=Xa;var no=M({latest:()=>ao});const ro=e=>e&&e.startsWith(`http://`)||e.startsWith(`https://`),io=S(async e=>{let t=e.registry,n;if(ro(t))n=await(await fetch(t)).text();else try{n=await o.readFile(t,`utf8`)}catch{X(e,`\nThe specified static registry file does not exist: ${e.registry}`)}return JSON.parse(n)}),ao=async(e,t,n)=>({version:(await io(n||{}))[e]||null});var Q={npm:_r,pnpm:Kr,yarn:ra,bun:Hr,gitTags:Ga,staticRegistry:no};function oo(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 so(e){try{return new URL(e),!0}catch{return!1}}async function co(e,{cli:t}={}){let{default:n,Chalk:r}=await import(`chalk`),i=e.color?new r({level:1}):n;if(!t){let t=qn.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,Lt.default)(a));!s&&o!==`silent`&&a.rcConfigPath&&!a.doctor&&z(a,`Using config file ${a.rcConfigPath}`);let c=qn.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}`;z(a,i.yellow(n),`warn`)}),z(a,``,`warn`)),qn.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))&&X(a,`Invalid option value: --${e} ${n}. Valid values are: ${t.join(`, `)}.`)}),a.cwd&&!await Pe(a.cwd)&&X(a,`No such directory: ${a.cwd}`);let l=oo(a.args),u=oo(a.filter),d=oo(a.filterVersion),f=oo(a.reject),p=oo(a.rejectVersion),m=a.registryType||(a.registry?.endsWith(`.json`)?`json`:`npm`);if(a.filter&&l&&!oe(l.join(` `),Array.isArray(u)?u.join(` `):u)?X(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?X(a,`Cannot specify both --packageFile and --deep. --deep is an alias for --packageFile '**/package.json'`):a.format?.includes(`lines`)&&a.jsonUpgraded?X(a,`Cannot specify both --format lines and --jsonUpgraded.`):a.format?.includes(`lines`)&&a.jsonAll?X(a,`Cannot specify both --format lines and --jsonAll.`):a.format?.includes(`lines`)&&a.format.length>1?X(a,`Cannot use --format lines with other formatting options.`):a.workspace?.length&&a.workspaces?X(a,`Cannot specify both --workspace and --workspaces.`):a.deep&&(a.workspace?.length||a.workspaces)?X(a,`Cannot specify both --deep and --workspace${a.workspaces?`s`:``}.`):a.doctor&&(a.workspace?.length||a.workspaces)?X(a,`Doctor mode is not currently supported with --workspace${a.workspaces?`s`:``}.`):a.packageManager===`staticRegistry`&&!a.registry?X(a,`When --package-manager staticRegistry is specified, you must provide the path for the registry file with --registry.`):a.registryType===`json`&&!a.registry?X(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&&!so(a.registry)&&X(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&&X(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 Qn(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 zn(v);let y=N(v,(e,t)=>t===void 0?null:{[e]:t});return!a.packageManager&&_!==`npm`&&z(y,`Using ${_}`),y}function lo(e,t){return Array.from(new Set([...e||[],...t||[]]))}function uo(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]=lo(n[e],r[e]))}),i}var fo=Ce(ri(),1);function po(e){let t;if(!e)t=fo.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(ue(t=>ie(t)(e),t=>!t.includes(`/`)&&e.includes(`/`)&&ie(t)(e.replace(/\//g,`_`))))}else if(Array.isArray(e))t=(t,n)=>e.some(e=>po(e)(t,n));else if(e instanceof RegExp)t=t=>e.test(t);else if(typeof e==`function`)t=(t,n)=>e(t,y(n??t));else throw TypeError(`Invalid filter. Must be a RegExp, array, or comma-or-space-delimited list.`);return t}function mo(e,t,n,r){return le((n,r)=>le(e?po(e):!0,t?(...e)=>!po(t)(...e):!0)(n,r),(e,t)=>le(n?po(n):!0,r?(...e)=>!po(r)(...e):!0)(t))}function ho(e,t){return!t||t===`deno`?Q.npm:e.registryType===`json`?Q.staticRegistry:(Q[t]||X(e,`Invalid package manager: ${t}`),Q[t])}async function go(e={}){let t=await ho(e,e.packageManager).list?.({cwd:e.cwd,prefix:e.prefix,global:e.global});t||X(e,`Unable to retrieve package list`);let n=mo(e.filter,e.reject,e.filterVersion,e.rejectVersion),r={};try{r=F(t,(e,t)=>!!t&&!Yt(t)&&n(e,t))}catch(t){X(e,`Invalid filter: `+t.message||t)}return r}function _o(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 vo(e,t){let n=ho(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 fe(`[:bar] :current/:total :percent`,{total:r,width:20}),i.render());let a=await de(Object.entries(e),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}),o={};for(let{pkg:e,dependencies:t}of a){o[e]=t;let n=_o(o,e);n.isCircular&&delete o[e][n.offendingPackage]}return await t.cacher?.save(),t.cacher?.log(!0),o}function yo(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 bo=[`latest`,`newest`,`greatest`,`minor`,`patch`,`semver`];async function xo(e,t={}){let{default:n,Chalk:r}=await import(`chalk`),i=t.color?new r({level:1}):n,a=Object.keys(e),o=ho(t,t.packageManager),s;!t.json&&t.loglevel!==`silent`&&t.loglevel!==`verbose`&&a.length>0&&(s=new fe(`[:bar] :current/:total :percent`,{total:a.length,width:20}),s.render());async function c(n){let r=pn(e[n]),[a,c]=r||[n,e[n]],l=t.target||`latest`,u=typeof l==`string`?l:l(a,y(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=gn(e[n]),g=h?Q.gitTags:o,_=h?`github urls`:t.packageManager||`npm`,v=g[d];if(!v){let e=bo.filter(e=>e in g);X(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(`@`)||rn(c):t.pre,retry:t.retry??2}).catch(e=>({error:e?.body?.error||e.toString()})),m.version=!h&&r&&m?.version?fn(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(`
344
+ `)}t.exports=r})),Oi=j(((e,t)=>{function n(e){return function(){return e}}t.exports=n})),ki=j(((e,t)=>{var n=et();t.exports=function(){try{var e=n(Object,`defineProperty`);return e({},``,{}),e}catch{}}()})),Ai=j(((e,t)=>{var n=Oi(),r=ki(),i=ni();t.exports=r?function(e,t){return r(e,`toString`,{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:i})),ji=j(((e,t)=>{var n=Ai();t.exports=wi()(n)})),Mi=j(((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})),Ni=j(((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})),Pi=j(((e,t)=>{function n(e){return e!==e}t.exports=n})),Fi=j(((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})),Ii=j(((e,t)=>{var n=Ni(),r=Pi(),i=Fi();function a(e,t,a){return t===t?i(e,t,a):n(e,r,a)}t.exports=a})),Li=j(((e,t)=>{var n=Ii();function r(e,t){return!!(e!=null&&e.length)&&n(e,t,0)>-1}t.exports=r})),Ri=j(((e,t)=>{var n=Mi(),r=Li(),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})),zi=j(((e,t)=>{var n=Ei(),r=Di(),i=ji(),a=Ri();function o(e,t,o){var s=t+``;return i(e,r(s,a(n(s),o)))}t.exports=o})),Bi=j(((e,t)=>{var n=Ci(),r=Ti(),i=zi(),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})),Vi=j(((e,t)=>{function n(e){return e.placeholder}t.exports=n})),Hi=j(((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})),Ui=j(((e,t)=>{var n=bi(),r=Hi(),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})),Wi=j(((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})),Gi=j(((e,t)=>{var n=ui(),r=di(),i=fi(),a=si(),o=Bi(),s=Vi(),c=Ui(),l=Wi(),u=L(),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,ee=t&d,te=t&f,D=t&(p|m),O=t&g,k=te?void 0:a(e);function A(){for(var d=arguments.length,f=Array(d),p=d;p--;)f[p]=arguments[p];if(D)var m=s(A),h=i(f,m);if(y&&(f=n(f,y,b,D)),x&&(f=r(f,x,S,D)),d-=h,D&&d<T){var g=l(f,m);return o(e,t,_,A.placeholder,v,f,g,C,w,T-d)}var ne=ee?v:this,re=te?ne[e]:e;return d=f.length,C?f=c(f,C):O&&d>1&&f.reverse(),E&&w<d&&(f.length=w),this&&this!==u&&this instanceof A&&(re=k||a(re)),re.apply(ne,f)}return A}t.exports=_})),Ki=j(((e,t)=>{var n=li(),r=si(),i=Gi(),a=Bi(),o=Vi(),s=Wi(),c=L();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})),qi=j(((e,t)=>{var n=li(),r=si(),i=L(),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})),Ji=j(((e,t)=>{var n=ui(),r=di(),i=Wi(),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})),Yi=j(((e,t)=>{var n=/\s/;function r(e){for(var t=e.length;t--&&n.test(e.charAt(t)););return t}t.exports=r})),Xi=j(((e,t)=>{var n=Yi(),r=/^\s+/;function i(e){return e&&e.slice(0,n(e)+1).replace(r,``)}t.exports=i})),Zi=j(((e,t)=>{var n=Xi(),r=qe(),i=Ge(),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})),Qi=j(((e,t)=>{var n=Zi(),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})),$i=j(((e,t)=>{var n=Qi();function r(e){var t=n(e),r=t%1;return t===t?r?t-r:t:0}t.exports=r})),ea=j(((e,t)=>{var n=ai(),r=ci(),i=Ki(),a=Gi(),o=qi(),s=gi(),c=Ji(),l=Ti(),u=zi(),d=$i(),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 ee=x?x.length:0;if(ee||(t&=~(_|v),x=S=void 0),w=w===void 0?w:y(d(w),0),T=T===void 0?T:d(T),ee-=S?S.length:0,t&v){var te=x,D=S;x=S=void 0}var O=E?void 0:s(e),k=[e,t,b,x,S,te,D,C,w,T];if(O&&c(k,O),e=k[0],t=k[1],b=k[2],x=k[3],S=k[4],T=k[9]=k[9]===void 0?E?0:e.length:y(k[9]-ee,0),!T&&t&(h|g)&&(t&=~(h|g)),!t||t==p)var A=r(e,t,b);else A=t==h||t==g?i(e,t,T):(t==_||t==(p|_))&&!S.length?o(e,t,b,x):a.apply(void 0,k);return u((O?n:l)(A,k),e,t)}t.exports=b})),ta=j(((e,t)=>{var n=ea(),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})),na=M({default:()=>fa,defaultPrefix:()=>pa,distTag:()=>ha,getEngines:()=>Ca,getPathToLookForYarnrc:()=>sa,getPeerDependencies:()=>Sa,greatest:()=>ga,latest:()=>_a,list:()=>ma,minor:()=>va,newest:()=>ya,npmAuthTokenKeyValue:()=>aa,packageAuthorChanged:()=>wa,patch:()=>ba,semver:()=>xa}),ra=Ce(ta(),1);const ia=(e,t)=>e.replace(/\$\{([^:-]+)(?:(:)?-([^}]*))?\}/g,(e,n,r,i,a)=>t[n]||(i?a:``)),aa=(0,ra.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`]:ia(n.npmAuthToken,process.env)}}}return null}),oa=(e,t)=>t.npmRegistryServer?{[`@${e}:registry`]:ia(t.npmRegistryServer,process.env)}:null;async function sa(t,n=o.readdir){if(t.global)return;let r=(await qn(t,n))?.directoryPath;if(r)return e.join(r,`.yarnrc.yml`)}const ca=S(async t=>{let n=await sa(t),r=e.join(i.homedir(),`.yarnrc.yml`),a=typeof n==`string`&&await Pe(n),s=await Pe(r),c=a?await o.readFile(n,`utf-8`):``,l=s?await o.readFile(r,`utf-8`):``,u=k.load(c),d=k.load(l),f={...N(d?.npmScopes||{},oa),...N(u?.npmScopes||{},oa)};return f={...f,...N(d?.npmScopes||{},aa(f)),...N(u?.npmScopes||{},aa(f))},a&&(B(t,`\nUsing local yarn config at ${n}:`,`verbose`),B(t,u,`verbose`)),s&&(B(t,`\nUsing user yarn config at ${r}:`,`verbose`),B(t,u,`verbose`)),Object.keys(f)&&(B(t,`
345
+ Merged yarn config in npm format:`,`verbose`),B(t,f,`verbose`)),f});function la(e){return new Promise((t,n)=>{let r={},i=A.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 ua(e){return new Promise((t,n)=>{let r=A.parse(),i=!1;r.on(`data`,e=>{i||(i=!0,t(JSON.stringify(e)))}),r.on(`error`,n),r.write(e),r.end()})}const da=process.platform===`win32`?`yarn.cmd`:`yarn`;async function fa(e,t={},r={},i={}){let{stdout:a}=await n(da,[...t.global?[`global`]:[],...t.prefix?[`--prefix=${t.prefix}`]:[],`--depth=0`,`--json`,`--no-progress`,...Array.isArray(e)?e:[e]],r,i);return a}async function pa(e){if(e.prefix)return Promise.resolve(e.prefix);let{stdout:t}=await n(da,[`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)=>N((await la(await fa(`list`,e,{},{...e.cwd?{cwd:e.cwd}:{},...t}))).dependencies,(e,t)=>({[e]:t.version||t.required?.version})),Y=e=>async(t,n,r={})=>e(t,n,r,await ca(r)),ha=Y(Fr),ga=Y(jr),_a=Y(Ir),va=Y(Rr),ya=Y(Lr),ba=Y(zr),xa=Y(Br),Sa=async(e,t,r)=>{let{stdout:i}=await n(da,[`--version`],{rejectOnError:!1},r);if(i.startsWith(`1`)){let i=[`--json`,`info`,`${e}@${t}`,`peerDependencies`],{stdout:a}=await n(da,i,{rejectOnError:!1},r);return a&&K(a,{command:i.join(` `)}).data||{}}else{let i=[`--json`,`npm`,`info`,`${e}@${t}`,`--fields`,`peerDependencies`],{stdout:a}=await n(da,i,{rejectOnError:!1},r);if(!a)return{};try{return K(a,{command:i.join(` `)}).peerDependencies||{}}catch(e){try{let e=await ua(a);if(e)return K(e,{command:i.join(` `)}).peerDependencies||{}}catch{}throw e}}},Ca=async(e,t,n={})=>Nr(e,t,n,await ca(n)),wa=async(e,t,n,r={})=>wr(e,t,n,r,await ca(r));function X(e,t,{color:n=!0}={}){if(e.cli)B(e,n?P.red(t):t,null,`error`),process.exit(1);else throw Error(t)}const Ta=async(e,t)=>{let n,r;try{r=await o.readFile(t,`utf-8`),n=JSON.parse(r)}catch{X(e,`Missing or invalid ${t}`)}return{name:void 0,pkg:n,pkgFile:r,filepath:t}},Ea={dev:`devDependencies`,peer:`peerDependencies`,prod:`dependencies`,optional:`optionalDependencies`},Da=e=>(e?typeof e==`string`?e.split(`,`):e:W.dep.default).map(e=>Ea[e]||e);function Z(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function Oa(e,t,n){let r=await o.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`(${Z(n)}\\s*:\\s*["'])(${Z(i)})(["'])`,o=`(${Z(n)}\\s*:\\s*)(${Z(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 ka(e,t,n){let r=await o.readFile(e,`utf-8`);return Object.entries(n).filter(([e])=>t[e]).reduce((e,[n,r])=>{let i=t[n],a=`("${Z(n)}"\\s*:\\s*")(${Z(i)})(")`,o=new RegExp(a,`g`);return e.replace(o,`$1${r}$3`)},r)}async function Aa(t,n,r){let i=e.extname(t);if(i===`.yaml`||i===`.yml`)return Oa(t,n,r);if(i===`.json`)return ka(t,n,r);throw Error(`Unsupported catalog file type: ${t}`)}function ja(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,`\\$&`)}async function Ma(t,n,r,i,a){if(a){let i=e.basename(a),s=e.extname(a);if(a.includes(`#catalog`)){let t=a.replace(`#catalog`,``);if(e.extname(t)===`.json`)return Aa(t,n,r)}if(i===`pnpm-workspace.yaml`||i.includes(`catalog`)&&(s===`.yaml`||s===`.yml`)){let e=JSON.parse(t);if(typeof e==`object`&&e.name===`catalog-dependencies`&&typeof e.dependencies==`object`&&Object.keys(e).length<=3){let e=await o.readFile(a,`utf-8`),t=k.load(e);if(t.catalogs&&=Object.entries(t.catalogs).reduce((e,[t,n])=>({...e,[t]:{...n,...Object.entries(r).filter(([e])=>n[e]).reduce((e,[t,n])=>({...e,[t]:n}),{})}}),{}),t.catalog){let e=t.catalog;t.catalog={...e,...Object.entries(r).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 Aa(a,n,r)}if(s===`.json`){let e=JSON.parse(t),i=e.catalog||e.catalogs,o=e.workspaces&&!Array.isArray(e.workspaces)&&(e.workspaces.catalog||e.workspaces.catalogs);if(i||o)return Aa(a,n,r)}}let s=[...Da(i.dep),`overrides`],c=RegExp(`"(${s.join(`|`)})"s*:[^}]*`,`g`),l=t.replace(c,e=>Object.entries(r).reduce((e,[t])=>{let i=`"${t}"\\s*:\\s*("|{\\s*"."\\s*:\\s*")(${ja(n[t])})"`,a=new RegExp(i,`g`);return e.replace(a,(e,n)=>`"${t}${n?`": ${n}`:`: `}${r[t]}"`)},e));if(s.includes(`packageManager`)){let e=JSON.parse(t);if(e.packageManager){let[t]=e.packageManager.split(`@`);r[t]&&(l=l.replace(/"packageManager"\s*:\s*".*?@[^"]*"/,`"packageManager": "${t}@${r[t]}"`))}}return l}const Na=(e,t,n,{spawnOptions:r,spawnPleaseOptions:i}={})=>{n&&console.log(P.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`?ti:t.packageManager===`yarn`?fa:t.packageManager===`bun`?Hr:kr)(e,o,i,a)},Pa=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 Ta(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},Fa=async(e,t)=>{await Me();let r=t.packageManager===`yarn`?`yarn.lock`:t.packageManager===`pnpm`?`pnpm-lock.yaml`:t.packageManager===`bun`?`bun.lock`:`package-lock.json`,{pkg:i,pkgFile:a}=await Pa(t),s={...i.dependencies,...i.devDependencies,...i.optionalDependencies},c=async()=>{if(t.doctorInstall){let[e,...r]=t.doctorInstall.split(` `);console.log(P.blue(t.doctorInstall)),await n(e,r)}else await Na([`install`],{packageManager:t.packageManager},!0)},l=async()=>{let e={stderr:e=>{console.error(P.red(e.toString()))},stdout:e=>{process.stdout.write(e.toString())}};if(t.doctorTest){let r=t.doctorTest.matchAll(/"(.+?)"|'(.+?)'|[^ ]+/g),i=[];for(let e of r)i=[...i,e[2]||e[1]||e[0]];let[a,...o]=i;console.log(P.blue(t.doctorTest)),await n(a,o,e)}else await Na([`run`,`test`],{packageManager:t.packageManager},!0,{spawnPleaseOptions:e})};console.log(`Running tests before upgrading`),await c();let u=``;try{u=await o.readFile(r,`utf-8`)}catch{if(t.packageManager===`bun`){r=`bun.lockb`;try{u=await o.readFile(r,`utf-8`)}catch{}}}try{await l()}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(P.blue(`ncu `+process.argv.slice(2).filter(e=>e!==`--doctor`).join(` `))),process.env.NCU_DOCTOR=`1`;let d=await e({...t,silent:!0,doctor:!1});if(Object.keys(d||{}).length===0){console.log(`All dependencies are up-to-date `+P.green.bold(`:)`));return}let f=!1;try{await c(),f=!0,await l(),console.log(`${P.green(`✓`)} Tests pass`),await Dn(t,{current:s,upgraded:d,total:Object.keys(d||{}).length}),console.log(`\n${t.interactive?`Chosen`:`All`} dependencies upgraded and installed ${P.green(`:)`)}`)}catch{console.error(P.red(f?`Tests failed`:`Install failed`)),console.log(`Identifying broken dependencies`),await o.writeFile(`package.json`,a),u?await o.writeFile(r,u):await o.rm(r,{recursive:!0,force:!0});let e=a;if(f)try{await c()}catch{let e=(t.packageManager||`npm`)+` install`;throw Error(`Error: Doctor mode was about to test individual upgrades, but ${P.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 n,p;for([n,p]of Object.entries(d))try{if(await Na([...t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`?[`add`]:[`install`,`--no-save`],`${n}@${p}`],{packageManager:t.packageManager},!0),i.scripts?.prepare)try{await Na([`run`,`prepare`],{packageManager:t.packageManager},!0)}catch(e){throw console.error(P.red(`Prepare script failed`)),e}await l(),console.log(` ${P.green(`✓`)} ${n} ${s[n]} → ${p}`),e=await Ma(e,{[n]:s[n]},{[n]:p},t),u=await o.readFile(r,`utf-8`)}catch(i){console.error(` ${P.red(`✗`)} ${n} ${s[n]} → ${p}\n`),console.error(P.red(i)),await o.writeFile(r,u),(t.packageManager===`yarn`||t.packageManager===`pnpm`||t.packageManager===`bun`)&&await o.writeFile(`package.json`,e)}e!==a&&(console.log(`Saving partially upgraded package.json`),await o.writeFile(`package.json`,e)),await c()}};async function Ia(t){let n,r=null,i=t.packageFile||`package.json`;function a(n,r){if(n!=null){let r=e.resolve(n);B(t,`${t.upgrade?`Upgrading`:`Checking`} ${r}`)}else X(t,`${P.red(`No ${r}`)}\n\nPlease add a ${r} to the current directory, specify the ${P.cyan(`--packageFile`)} or ${P.cyan(`--packageData`)} options, or pipe a ${r} to stdin and specify ${P.cyan(`--stdin`)}.`,{color:!1});return o.readFile(n,`utf-8`).catch(e=>{X(t,e)})}if(B(t,`Running in local mode`,`verbose`),B(t,`Finding package file data`,`verbose`),t.packageData)r=null,n=Promise.resolve(t.packageData);else if(t.packageFile)r=t.packageFile,n=a(r,i);else if(t.stdin){B(t,`Waiting for package data on stdin`,`verbose`);let e=await ne(process.stdin),o=e.trim().length>0?e:null;r=o||!i?null:await E(i),n=o||a(await r,i)}else r=i?await E(!t.packageFile&&t.packageManager===`deno`?[`deno.json`,`deno.jsonc`]:i,{cwd:t.cwd||process.cwd()}):null,n=a(r,i);return{pkgData:await n,pkgFile:r||null,pkgPath:i}}function La(e){return{ignore:[`**/node_modules/**`,...typeof e.ignore==`string`?[e.ignore]:e.ignore||[]]}}const Ra=async t=>{let n=e.join(e.dirname(t),`pnpm-workspace.yaml`),r;try{r=await o.readFile(n,`utf-8`)}catch{return null}return k.load(r)},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 o.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(t,n,r,i){let{pkgData:a,pkgPath:o}=await Ia({...t,packageFile:r,loglevel:`silent`}),s=(typeof a==`string`?JSON.parse(a):a).workspaces||await Ra(o||``),c=Array.isArray(s)?s:s?.packages;c||X(t,`workspaces property missing from package.json. --workspace${t.workspaces?`s`:``} only works when you specify a "workspaces" property in your package.json.`);let l=(c||[]).map(t=>e.join(i,t,`package.json`).replace(/\\/g,`/`)),u=La(t),d=re.sync(l,u),f=await Promise.all(d.map(async e=>{let n=await Ta(t,e);return n.name=n.pkg.name||e.split(`/`).slice(-2)[0],n})),p=f.map(e=>e.name||``);return t.workspaces===!0?[f,p]:[f.filter(r=>t.workspace?.some(t=>c?.some(a=>r.name===t||r.filepath===e.join(i,e.dirname(a),t,n).replace(/\\/g,`/`)))),p]}async function Va(t,n){if(!n)return null;let r=await za(t,n);if(!r)return null;let i={name:`catalog-dependencies`,version:`1.0.0`,dependencies:r};return{filepath:t.packageManager===`pnpm`?e.join(e.dirname(n),`pnpm-workspace.yaml`):`${n}#catalog`,pkg:i,pkgFile:JSON.stringify(i,null,2),name:`catalogs`}}async function Ha(t){let n=t.packageFile||`package.json`,r=t.cwd?T(t.cwd):`./`,i=t.packageFile||(t.cwd?e.join(r,`package.json`):`package.json`),a=t.workspaces===!0||t.workspace!==void 0&&t.workspace.length!==0,o=[];if(!a||t.root===!0){let e=i.replace(/\\/g,`/`),n=La(t),r=re.sync(e,n),a=await Promise.all(r.map(async e=>await Ta(t,e)));o=[...o,...a]}if(!a)return[o,[]];let s=null;if(a){let{pkgPath:e}=await Ia({...t,packageFile:i,loglevel:`silent`});e&&(s=await Va(t,e))}let[c,l]=await Ba(t,n,i,r);if(o=[...o,...c],s&&(o=[...o,s]),t.ignore){let n=Array.isArray(t.ignore)?t.ignore:[t.ignore];o=o.filter(t=>{let i=e.relative(r,t.filepath).replace(/\\/g,`/`),a=e.dirname(i).replace(/\\/g,`/`);return!n.some(e=>{let t=ie(e);return t(i)||t(a)||t(`${a}/`)})})}return[o,l]}async function Ua({configFileName:t,configFilePath:n,packageFile:r,global:a,options:o}){let{default:s,Chalk:c}=await import(`chalk`),l=o?.color?new c({level:1}):s,u=ae(`ncurc`,{configFileName:t||`.ncurc`,defaultExtension:[`.json`,`.yml`,`.js`],cwd:n||(a?i.homedir():r?e.dirname(r):void 0)}),d=u?.filePath;t&&!d&&X(o,`Config file ${t} not found in ${n||process.cwd()}`);let{$schema:f,...p}=u?.config||{},m=p;typeof m.format==`string`&&(m.format=W.format.parse(m.format));let h=Object.keys(m).filter(e=>!W[e]);return h.length>0&&(console.error(l.red(`Unknown option${h.length===1?``:`s`} found in config file:`),l.gray(h.join(`, `))),console.info(`Using config file `+d),console.info(`You can change the config file path with ${l.blue(`--configFilePath`)}`)),{filePath:d,args:Object.entries(m).flatMap(([e,t])=>typeof t==`boolean`||W[e]?.type===`boolean`?t?[`--${e}`]:[]:[`--${e}`,t]),config:m}}var Wa=M({greatest:()=>Ya,greatestLevel:()=>Xa,latest:()=>Ja,minor:()=>Za,newest:()=>eo,patch:()=>Qa,semver:()=>$a});const Ga=ce(se.execFile);async function Ka(e){let t=(await Ga(`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 qa(e,t,n){t=t.replace(/^github:/,``);let{auth:r,protocol:i,host:a,path:o}=l(t),s;try{if(i!==null)s=await Ka(`${i?i.replace(`git+`,``):`https:`}//${r?r+`@`:``}${a}/${o?.replace(/^:/,``)}`);else try{s=await Ka(`ssh://git@${a}/${o?.replace(/^:/,``)}`)}catch{s=await Ka(`https://${r?r+`@`:``}${a}/${o}`)}}catch{B(n??{},`Invalid, private repo, or no tags for ${e}: ${t}`,`verbose`);return}return Object.keys(s).map(cn).filter(e=>h(e)).sort($t)}const Ja=async(e,t,n)=>{let r=await qa(e,t,n);if(!r)return{version:null};let i=n?.pre?r:r.filter(e=>!tn(e)),a=i[i.length-1];return{version:a?vn(t,a):null}},Ya=async(e,t,n)=>{let r=await qa(e,t,n);if(!r)return{version:null};let i=r[r.length-1];return{version:i?vn(t,i):null}},Xa=e=>async(t,n,r={})=>{let i=decodeURIComponent(l(n).branch).replace(/^semver:/,``),a=await qa(t,n,r);if(!a)return{version:null};let o=en(a.map(e=>e.replace(/^v/,``)),i,e);return{version:o?vn(n,o):null}},Za=Xa(`minor`),Qa=Xa(`patch`),$a=async(e,t,n)=>({version:null}),eo=Ya;var to=M({latest:()=>io});const no=e=>e&&e.startsWith(`http://`)||e.startsWith(`https://`),ro=S(async e=>{let t=e.registry,n;if(no(t))n=await(await fetch(t)).text();else try{n=await o.readFile(t,`utf8`)}catch{X(e,`\nThe specified static registry file does not exist: ${e.registry}`)}return JSON.parse(n)}),io=async(e,t,n)=>({version:(await ro(n||{}))[e]||null});var Q={npm:hr,pnpm:Gr,yarn:na,bun:Vr,gitTags:Wa,staticRegistry:to};function ao(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 oo(e){try{return new URL(e),!0}catch{return!1}}async function so(e,{cli:t}={}){let{default:n,Chalk:r}=await import(`chalk`),i=e.color?new r({level:1}):n;if(!t){let t=Gn.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,Pt.default)(a));!s&&o!==`silent`&&a.rcConfigPath&&!a.doctor&&B(a,`Using config file ${a.rcConfigPath}`);let c=Gn.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`)),Gn.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))&&X(a,`Invalid option value: --${e} ${n}. Valid values are: ${t.join(`, `)}.`)}),a.cwd&&!await Pe(a.cwd)&&X(a,`No such directory: ${a.cwd}`);let l=ao(a.args),u=ao(a.filter),d=ao(a.filterVersion),f=ao(a.reject),p=ao(a.rejectVersion),m=a.registryType||(a.registry?.endsWith(`.json`)?`json`:`npm`);if(a.filter&&l&&!oe(l.join(` `),Array.isArray(u)?u.join(` `):u)?X(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?X(a,`Cannot specify both --packageFile and --deep. --deep is an alias for --packageFile '**/package.json'`):a.format?.includes(`lines`)&&a.jsonUpgraded?X(a,`Cannot specify both --format lines and --jsonUpgraded.`):a.format?.includes(`lines`)&&a.jsonAll?X(a,`Cannot specify both --format lines and --jsonAll.`):a.format?.includes(`lines`)&&a.format.length>1?X(a,`Cannot use --format lines with other formatting options.`):a.workspace?.length&&a.workspaces?X(a,`Cannot specify both --workspace and --workspaces.`):a.deep&&(a.workspace?.length||a.workspaces)?X(a,`Cannot specify both --deep and --workspace${a.workspaces?`s`:``}.`):a.doctor&&(a.workspace?.length||a.workspaces)?X(a,`Doctor mode is not currently supported with --workspace${a.workspaces?`s`:``}.`):a.packageManager===`staticRegistry`&&!a.registry?X(a,`When --package-manager staticRegistry is specified, you must provide the path for the registry file with --registry.`):a.registryType===`json`&&!a.registry?X(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&&!oo(a.registry)&&X(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&&X(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 Xn(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 In(v);let y=N(v,(e,t)=>t===void 0?null:{[e]:t});return!a.packageManager&&_!==`npm`&&B(y,`Using ${_}`),y}function co(e,t){return Array.from(new Set([...e||[],...t||[]]))}function lo(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]=co(n[e],r[e]))}),i}var uo=Ce(ni(),1);function fo(e){let t;if(!e)t=uo.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(ue(t=>ie(t)(e),t=>!t.includes(`/`)&&e.includes(`/`)&&ie(t)(e.replace(/\//g,`_`))))}else if(Array.isArray(e))t=(t,n)=>e.some(e=>fo(e)(t,n));else if(e instanceof RegExp)t=t=>e.test(t);else if(typeof e==`function`)t=(t,n)=>e(t,y(n??t));else throw TypeError(`Invalid filter. Must be a RegExp, array, or comma-or-space-delimited list.`);return t}function po(e,t,n,r){return le((n,r)=>le(e?fo(e):!0,t?(...e)=>!fo(t)(...e):!0)(n,r),(e,t)=>le(n?fo(n):!0,r?(...e)=>!fo(r)(...e):!0)(t))}function mo(e,t){return!t||t===`deno`?Q.npm:e.registryType===`json`?Q.staticRegistry:(Q[t]||X(e,`Invalid package manager: ${t}`),Q[t])}async function ho(e={}){let t=await mo(e,e.packageManager).list?.({cwd:e.cwd,prefix:e.prefix,global:e.global});t||X(e,`Unable to retrieve package list`);let n=po(e.filter,e.reject,e.filterVersion,e.rejectVersion),r={};try{r=F(t,(e,t)=>!!t&&!qt(t)&&n(e,t))}catch(t){X(e,`Invalid filter: `+t.message||t)}return r}const go=typeof fe==`function`?fe:fe.default;function _o(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 vo(e,t){let n=mo(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 de(`[:bar] :current/:total :percent`,{total:r,width:20}),i.render());let a=await go(Object.entries(e),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}),o={};for(let{pkg:e,dependencies:t}of a){o[e]=t;let n=_o(o,e);n.isCircular&&delete o[e][n.offendingPackage]}return await t.cacher?.save(),t.cacher?.log(!0),o}function yo(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 bo=[`latest`,`newest`,`greatest`,`minor`,`patch`,`semver`];async function xo(e,t={}){let{default:n,Chalk:r}=await import(`chalk`),i=t.color?new r({level:1}):n,a=Object.keys(e),o=mo(t,t.packageManager),s;!t.json&&t.loglevel!==`silent`&&t.loglevel!==`verbose`&&a.length>0&&(s=new de(`[:bar] :current/:total :percent`,{total:a.length,width:20}),s.render());async function c(n){let r=dn(e[n]),[a,c]=r||[n,e[n]],l=t.target||`latest`,u=typeof l==`string`?l:l(a,y(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=mn(e[n]),g=h?Q.gitTags:o,_=h?`github urls`:t.packageManager||`npm`,v=g[d];if(!v){let e=bo.filter(e=>e in g);X(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(`@`)||tn(c):t.pre,retry:t.retry??2}).catch(e=>({error:e?.body?.error||e.toString()})),m.version=!h&&r&&m?.version?un(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 de(a,c,{concurrency:t.concurrency});return await t.cacher?.save(),t.cacher?.log(),N(l,(e,t)=>e.version||e.error?{[a[t]]:e}:null)}var So=j(((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})),Co=j(((e,t)=>{var n=We(),r=Ge(),i=`[object Arguments]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),wo=j(((e,t)=>{var n=Co(),r=Ge(),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`)}})),To=j(((e,t)=>{var n=Ve(),r=wo(),i=ze(),a=n?n.isConcatSpreadable:void 0;function o(e){return i(e)||r(e)||!!(a&&e&&e[a])}t.exports=o})),Eo=j(((e,t)=>{var n=So(),r=To();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})),Do=j(((e,t)=>{var n=Eo();function r(e){return e!=null&&e.length?n(e,1):[]}t.exports=r})),Oo=j(((e,t)=>{var n=ui(),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})),ko=j(((e,t)=>{var n=Do(),r=Oo(),i=Mi();function a(e){return i(r(e,void 0,n),e+``)}t.exports=a})),Ao=j(((e,t)=>{var n=bi(),r=ko(),i=_i(),a=yi(),o=ze(),s=wi(),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})),jo=j(((e,t)=>{t.exports=Ao()()}));function Mo(e){if(Object.keys(e).length===0)return null;let t=Object.values(e).reduce((e,t)=>{let n=Vt.find(e=>t&&t.includes(e));return n!==void 0&&(e[n]||=[],e[n].push(t)),e},{}),n=It(Object.entries(t).map(([e,t])=>({wildcard:e,instances:t})),e=>-e.instances.length);return n.length>0?n[0].wildcard:null}function No(e,t,{downgrade:n}={}){if(!u.validRange(e)||Jt(e))return!1;let[r]=_.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=un(t),a=R(r),o=!!u.validRange(a),s=!!u.valid(i);return o&&s&&(!en(i,a)||!u.satisfies(i,r.operator===`<`?e:a)&&(n||!u.ltr(i,a)))}var Po=Ce(jo(),1);function Fo(e,t,n={}){let r=n.target||`latest`;e=F(e,(e,t)=>!!t);let i=Mo(e)||`^`,a=(e,t)=>vn(e,t,{wildcard:i,removeRange:n.removeRange});return(0,Po.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(mn(r)&&(a=pn(r)[1]),mn(i)&&(o=pn(i)[1]),gn(r)){let[e]=y(_n(r));a=R(e)}if(gn(i)){let[e]=y(_n(i));o=R(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=rn(e)&&(typeof r==`string`?r:r(a,y(e))).startsWith(`@`),s=t||e,c=i||n,l=e=>{try{if(d.valid(e))return e;let t=d.minVersion(e);return t?t.version:null}catch{return null}},u=l(s),f=l(c),p=u&&f&&d.gt(u,f);return No(s,c,{downgrade:o})||p}),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]=mn(n)?hn(n,s):gn(n)?bn(n,s):s,e},{})])(e)}const Io=(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||!g(t)||f(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 Lo(e,t){let n=await xo(e,t),r=N(n,(n,r)=>r?.version&&(!t.filterResults||t.filterResults(n,{currentVersion:e[n],currentVersionSemver:y(e[n]),upgradedVersion:r.version,upgradedVersionSemver:v(r.version)}))?{[n]:r.version}:null),i=$(Fo(e,r,t),(n,i)=>!t.jsonUpgraded||!t.minimal||!m(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 vo(a,t),s;if(oe(t.peerDependencies,{...t.peerDependencies,...r})){if(s=Io(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(oe(t.peerDependencies,r))return[{},n,t.peerDependencies];let[i,a,l]=await Lo({...e,...s.filteredUpgradedDependencies},{...t,peerDependencies:r,loglevel:`silent`});o=[{...s.filteredUpgradedDependencies,...i},{...n,...a},l],s=Io(e,o[0],o[2])}while(s.violated)}return o}async function Ro(e){z(e,`
352
- Options:`,`verbose`),B(e,e,`verbose`),z(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 go({cli:n,cwd:r,filter:i,filterVersion:a,global:o,packageManager:s,prefix:c,reject:l,rejectVersion:u})}catch(t){X(e,t.message)}z(e,`globalPackages:`,`verbose`),z(e,t,`verbose`),z(e,``,`verbose`),z(e,`Fetching ${e.target} versions`,`verbose`);let[n,r]=await Lo(t,e);z(e,r,`verbose`);let i=N(r,(e,t)=>t.time?{[e]:t.time}:null),a=Object.keys(n);await An(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)Cn(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`;z(e,`
351
+ `),e}return s?.tick(),m.version&&t.cacher?.set(a,d,m.version),m}let l=await go(a,c,{concurrency:t.concurrency});return await t.cacher?.save(),t.cacher?.log(),N(l,(e,t)=>e.version||e.error?{[a[t]]:e}:null)}var So=j(((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})),Co=j(((e,t)=>{var n=Ue(),r=We(),i=`[object Arguments]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),wo=j(((e,t)=>{var n=Co(),r=We(),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`)}})),To=j(((e,t)=>{var n=Be(),r=wo(),i=I(),a=n?n.isConcatSpreadable:void 0;function o(e){return i(e)||r(e)||!!(a&&e&&e[a])}t.exports=o})),Eo=j(((e,t)=>{var n=So(),r=To();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})),Do=j(((e,t)=>{var n=Eo();function r(e){return e!=null&&e.length?n(e,1):[]}t.exports=r})),Oo=j(((e,t)=>{var n=li(),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})),ko=j(((e,t)=>{var n=Do(),r=Oo(),i=ji();function a(e){return i(r(e,void 0,n),e+``)}t.exports=a})),Ao=j(((e,t)=>{var n=yi(),r=ko(),i=gi(),a=vi(),o=I(),s=Ci(),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})),jo=Ce(j(((e,t)=>{t.exports=Ao()()}))(),1);function Mo(e){if(Object.keys(e).length===0)return null;let t=Object.values(e).reduce((e,t)=>{let n=zt.find(e=>t&&t.includes(e));return n!==void 0&&(e[n]||=[],e[n].push(t)),e},{}),n=Ft(Object.entries(t).map(([e,t])=>({wildcard:e,instances:t})),e=>-e.instances.length);return n.length>0?n[0].wildcard:null}function No(e,t,{downgrade:n}={}){if(!u.validRange(e)||Kt(e))return!1;let[r]=_.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=cn(t),a=z(r),o=!!u.validRange(a),s=!!u.valid(i);return o&&s&&(!Qt(i,a)||!u.satisfies(i,r.operator===`<`?e:a)&&(n||!u.ltr(i,a)))}function Po(e,t,n={}){let r=n.target||`latest`;e=F(e,(e,t)=>!!t);let i=Mo(e)||`^`,a=(e,t)=>gn(e,t,{wildcard:i,removeRange:n.removeRange});return(0,jo.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(fn(r)&&(a=dn(r)[1]),fn(i)&&(o=dn(i)[1]),mn(r)){let[e]=y(hn(r));a=z(e)}if(mn(i)){let[e]=y(hn(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=tn(e)&&(typeof r==`string`?r:r(a,y(e))).startsWith(`@`),s=t||e,c=i||n,l=e=>{try{if(d.valid(e))return e;let t=d.minVersion(e);return t?t.version:null}catch{return null}},u=l(s),f=l(c),p=u&&f&&d.gt(u,f);return No(s,c,{downgrade:o})||p}),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]=fn(n)?pn(n,s):mn(n)?vn(n,s):s,e},{})])(e)}const Fo=(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||!g(t)||f(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 Io(e,t){let n=await xo(e,t),r=N(n,(n,r)=>r?.version&&(!t.filterResults||t.filterResults(n,{currentVersion:e[n],currentVersionSemver:y(e[n]),upgradedVersion:r.version,upgradedVersionSemver:v(r.version)}))?{[n]:r.version}:null);if(t.pinVersions)for(let[e,n]of Object.entries(t.pinVersions))e in r&&(r[e]=n);let i=$(Po(e,r,t),(n,i)=>!t.jsonUpgraded||!t.minimal||!m(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 vo(a,t),s;if(oe(t.peerDependencies,{...t.peerDependencies,...r})){if(s=Fo(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(oe(t.peerDependencies,r))return[{},n,t.peerDependencies];let[i,a,l]=await Io({...e,...s.filteredUpgradedDependencies},{...t,peerDependencies:r,loglevel:`silent`});o=[{...s.filteredUpgradedDependencies,...i},{...n,...a},l],s=Fo(e,o[0],o[2])}while(s.violated)}return o}async function Lo(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 ho({cli:n,cwd:r,filter:i,filterVersion:a,global:o,packageManager:s,prefix:c,reject:l,rejectVersion:u})}catch(t){X(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 Io(t,e);B(e,r,`verbose`);let i=N(r,(e,t)=>t.time?{[e]:t.time}:null),a=Object.keys(n);await Dn(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)xn(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
354
  `+P.cyan(`ncu`)+` itself cannot upgrade global packages. Run the following to upgrade all global packages:
355
355
 
356
356
  `+P.cyan(`${t} `+o)+`
357
- `)}return e.cli&&e.errorLevel===2&&a.length>0&&process.exit(1),n}const zo=(e,t)=>u.validRange(e)&&u.validRange(t)&&u.gt(u.minVersion(e),u.minVersion(t)),Bo=e=>{if(!e.packageManager)return{};let[t,n]=e.packageManager.split(`@`);return{[t]:n}};function Vo(e={},t={}){let n=Oa(t.dep).reduce((t,n)=>({...t,...n===`packageManager`?Bo(e):F(e[n]||{},(e,n)=>!zo(n,t[e]))}),{}),r=N(t.workspacePackages||[]),i={};try{i=F(F(n,e=>!r[e]),mo(t.filter||null,t.reject||null,t.filterVersion||null,t.rejectVersion||null))}catch(e){X(t,`Invalid filter: `+e.message||e)}return i}async function Ho(e,t){let n=ho(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 fe(`[: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({}))}const Uo=(e,t)=>!e||m(t,e);async function Wo(e,t,n={}){if(!n.nodeEngineVersion)return{};let r=p(n.nodeEngineVersion)?.version;if(!r)return{};let[i,a]=await Lo(e,{...n,enginesNode:!1,nodeEngineVersion:void 0,loglevel:`silent`}),o=await Ho(N(a,(e,t)=>i[e]&&t?.version?{[e]:t.version}:null),n);return Object.entries(i).filter(([e,n])=>t[e]!==n&&!Uo(o[e],r)).reduce((t,[n,r])=>({...t,[n]:{from:e[n],to:r,enginesNode:o[n]}}),{})}async function Go(e,t,n,r={}){let i={...e,...t},[a,o]=await Lo(e,{...r,peer:!1,peerDependencies:void 0,loglevel:`silent`}),s=await vo(Object.fromEntries(Object.entries(a).map(([e,t])=>[e,g(t)?p(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&&!m(o[r].version,e[r])).reduce((e,[t,n])=>({...e,[t]:g(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]&&!(!g(t)||f(i[e],t))).reduce((e,[t,n])=>({...e,[r]:`${t} ${n}`}),{})}return{...t,[r]:{from:e[r],to:a,reason:c}}},{})}const Ko=process.stdout.columns||80;function qo(e){return`${e.length?e.slice(0,Math.min(e.length,Ko)):`<empty>`}\n`}function Jo(e){return e>Ko?``:`${` `.repeat(e-1)}^\n`}function Yo(e,t,n){let r=e.length;if(r===0)return`<empty>`;if(r===1)return`${qo(e[0])}${Jo(n)}`;let i=Math.min(t+2,r),a=``;for(let r=Math.max(t-2,1);r<=i;r++)a+=qo(e[r-1]),r===t&&(a+=Jo(n));return`${a}\n`}function Xo(e){e=he(e);try{return JSON.parse(e)}catch{let t=[],n=me(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}: ${pe[e.error]}\n${Yo(i,n,a)}\n`}throw SyntaxError(r)}}const Zo=`
357
+ `)}return e.cli&&e.errorLevel===2&&a.length>0&&process.exit(1),n}const Ro=(e,t)=>u.validRange(e)&&u.validRange(t)&&u.gt(u.minVersion(e),u.minVersion(t)),zo=e=>{if(!e.packageManager)return{};let[t,n]=e.packageManager.split(`@`);return{[t]:n}};function Bo(e={},t={}){let n=Da(t.dep).reduce((t,n)=>({...t,...n===`packageManager`?zo(e):F(e[n]||{},(e,n)=>!Ro(n,t[e]))}),{}),r=N(t.workspacePackages||[]),i={};try{i=F(F(n,e=>!r[e]),po(t.filter||null,t.reject||null,t.filterVersion||null,t.rejectVersion||null))}catch(e){X(t,`Invalid filter: `+e.message||e)}return i}async function Vo(e,t){let n=mo(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 de(`[: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({}))}const Ho=(e,t)=>!e||m(t,e);async function Uo(e,t,n={}){if(!n.nodeEngineVersion)return{};let r=p(n.nodeEngineVersion)?.version;if(!r)return{};let[i,a]=await Io(e,{...n,enginesNode:!1,nodeEngineVersion:void 0,loglevel:`silent`}),o=await Vo(N(a,(e,t)=>i[e]&&t?.version?{[e]:t.version}:null),n);return Object.entries(i).filter(([e,n])=>t[e]!==n&&!Ho(o[e],r)).reduce((t,[n,r])=>({...t,[n]:{from:e[n],to:r,enginesNode:o[n]}}),{})}async function Wo(e,t,n,r={}){let i={...e,...t},[a,o]=await Io(e,{...r,peer:!1,peerDependencies:void 0,loglevel:`silent`}),s=await vo(Object.fromEntries(Object.entries(a).map(([e,t])=>[e,g(t)?p(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&&!m(o[r].version,e[r])).reduce((e,[t,n])=>({...e,[t]:g(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]&&!(!g(t)||f(i[e],t))).reduce((e,[t,n])=>({...e,[r]:`${t} ${n}`}),{})}return{...t,[r]:{from:e[r],to:a,reason:c}}},{})}const Go=process.stdout.columns||80;function Ko(e){return`${e.length?e.slice(0,Math.min(e.length,Go)):`<empty>`}\n`}function qo(e){return e>Go?``:`${` `.repeat(e-1)}^\n`}function Jo(e,t,n){let r=e.length;if(r===0)return`<empty>`;if(r===1)return`${Ko(e[0])}${qo(n)}`;let i=Math.min(t+2,r),a=``;for(let r=Math.max(t-2,1);r<=i;r++)a+=Ko(e[r-1]),r===t&&(a+=qo(n));return`${a}\n`}function Yo(e){e=he(e);try{return JSON.parse(e)}catch{let t=[],n=me(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}: ${pe[e.error]}\n${Jo(i,n,a)}\n`}throw SyntaxError(r)}}const Xo=`
359
359
  ↑/↓: Select a package
360
360
  Space: Toggle selection
361
361
  a: Toggle all
362
- Enter: Upgrade`;function Qo(e,t){let n=e?Zo.split(`
363
- `).length:0;return process.stdout.rows?Math.max(3,process.stdout.rows-n-1-(t?.length??0)*2):50}async function $o(e,t,n){let r=ho(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 es=async(e,n,r,i)=>{let a=[],o=process.stdout.rows>18,s=N((await Dn({from:e,to:n,format:i.format,pkgFile:r||void 0})).toString().split(`
364
- `),e=>({[e.trim().split(` `)[0]]:e.trim()}));if(Object.keys(n).length>0)if(z(i,``),i.format?.includes(`group`)){let r=Zt(n,e,i);a=(await t({choices:[...r.flatMap(({heading:e,groupName:t,packages:n})=>[{title:`
365
- `+e,heading:!0},...Object.keys(n).sort().map(e=>({title:s[e],value:e,selected:[`patch`,`minor`].includes(t)}))]),{title:` `,heading:!0}],hint:o&&Zo,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:Qo(o,r),type:`multiselect`,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})).value}else a=(await t({choices:[...Object.keys(n).sort().map(e=>({title:s[e],value:e,selected:!0})),{title:` `,heading:!0}],hint:o&&Zo+`
366
- `,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:Qo(o),type:`multiselect`,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})).value;return N(a,e=>({[e]:n[e]}))};async function ts(e,t,n){z(e,`
367
- Options:`,`verbose`),B(e,e,`verbose`);let r;try{t?r=Xo(t):X(e,`Missing package data`)}catch(t){X(e,`Invalid package file${n?`: ${n}`:` from stdin`}. Error details:\n${t.message}`)}let i=Vo(r,e);z(e,`
368
- Current versions:`,`verbose`),z(e,i,`verbose`),e.enginesNode&&(e.nodeEngineVersion=r?.engines?.node),e.peer&&(e.peerDependencies=await vo(Object.fromEntries(Object.entries(i).map(([e,t])=>[e,d.validRange(t)?d.minVersion(t)?.version??t:t])),e));let[a,s,c]=await Lo(i,e),l=N(s,(e,t)=>t.version?{[e]:t.version}:null),u=N(s,(e,t)=>t.error?{[e]:t.error}:null),f=N(s,(e,t)=>t.time?{[e]:t.time}:null);e.peer&&(z(e,`
369
- upgradedPeerDependencies:`,`verbose`),z(e,c,`verbose`)),z(e,`\n${typeof e.target==`string`?`${e.target[0].toUpperCase()}${e.target.slice(1)}`:`Fetched`} versions:`,`verbose`),z(e,l,`verbose`),z(e,`
370
- Upgraded versions:`,`verbose`),z(e,a,`verbose`);let p=e.minimal?N(a,(e,t)=>d.satisfies(l[e],i[e])?null:{[e]:t}):a,m=(e.format||[]).includes(`ownerChanged`)?await $o(i,p,e):void 0,h=e.interactive?await es(i,p,n,e):p;if(!e.json||e.deep){if(await An(e.interactive?{...e,format:(e.format||[]).filter(e=>e!==`group`)}:e,{current:i,upgraded:h,total:Object.keys(a).length,latest:s,ownersChangedDeps:m,pkgFile:n||void 0,errors:u,time:f}),e.peer){let t=await Go(i,a,c,e);Object.keys(t).length>0&&jn(e,t)}if(e.enginesNode){let t=await Wo(i,a,e);Object.keys(t).length>0&&Mn(e,t)}}let g=await Na(t,i,h,e,n||void 0),_=e.jsonAll?Xo(g):e.jsonDeps?yo(Xo(g),Oa(e.dep)):h,v;if(e.json&&!e.deep&&Cn(e,_),Object.keys(p).length>0&&n)if(e.upgrade)v=o.writeFile(n.replace(`#catalog`,``),g);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;z(e,`\nRun ${P.cyan(`${t}${r} -u`)} to upgrade ${e.packageFile||`package.json`}`)}return await v,_}function ns(e){return e}process.env.INJECT_PROMPTS&&t.inject(JSON.parse(process.env.INJECT_PROMPTS));let rs=!1;process.on(`unhandledRejection`,e=>{console.error(e),rs=!0});const is=e=>{e.global&&(process.env.VOLTA_HOME||process.env.PATH?.includes(`\\Volta`))&&(z(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))},as=async(t,n)=>{let r={...t,cwd:t.cwd||e.resolve(n,`..`),packageFile:n};return t.packageManager===`staticRegistry`?await Qn({...r,packageManager:void 0}):t.packageManager&&t.packageManager!==`npm`?t.packageManager:await Qn(r)},os=(e,t)=>{let n=e.length===1?{[e[0]]:t}:t;return Object.values(n).some(e=>Object.keys(e).length>0)},ss=async(r,i,a)=>{if(a.install===`never`){z(a,``);return}if(!os(r,i))return;let o=await as(a,r[0]),s=`Run ${P.cyan(o+` install`)}${r.length>1&&!a.workspace&&!a.workspaces?` in each project directory`:``} to install new versions`,c=a.interactive&&(process.env.NCU_TESTS||!process.env.NCU_DOCTOR),l;if(c&&a.install===`prompt`&&(z(a,``),l=await t({type:`confirm`,name:`value`,message:`${s}?`,initial:!0,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})),a.install===`always`||c&&l.value){a.install===`always`&&z(a,``),z(a,`Installing dependencies...`);let t=a.workspaces||a.workspace?.length?[`package.json`]:r;for await(let r of t){let t=await as(a,r),i=t+(process.platform===`win32`&&t!==`bun`?`.cmd`:``),o=a.cwd||e.resolve(r,`..`),s=``;try{await n(i,[`install`],{stdout:e=>{s+=e},stderr:e=>{console.error(P.red(e.toString()))}},{cwd:o,env:{...process.env,...a.color===!1?null:{FORCE_COLOR:!0},...t===`pnpm`?{npm_config_strict_peer_dependencies:!1}:null}}),z(a,s),z(a,`Done`)}catch(e){throw Error(e?.message||e||s)}}}else c||z(a,`\n${s}.`)};async function cs(t,n){let[r,i]=await Ua(t),a=r.map(e=>e.filepath),o=t.workspaces||!!t.workspace?.length;t.deep=t.deep||o||r.length>1;let s;if(t.global){let e=await Ro(t);return clearTimeout(n),e}else if(t.deep)s=await r.reduce(async(n,r)=>{let a=await n,o=(await Wa({packageFile:r.filepath,options:t})).config;t.mergeConfig&&Object.keys(o).length&&(o=uo(t,o));let s={...t,...o,packageFile:r.filepath,workspacePackages:i},c,l,u;if(r.filepath.includes(`#`)||r.name===`catalogs`){c=r.pkgFile,l=r.filepath,u=r.filepath.includes(`#catalog`)?r.filepath.replace(`#catalog`,``):r.filepath;let t=e.resolve(u);z(s,`${s.upgrade?`Upgrading`:`Checking`} ${t} catalog dependencies`)}else{let e=await La(s);c=e.pkgData,l=e.pkgFile||r.filepath,u=l}return{...a,[s.cwd?e.relative(e.resolve(s.cwd),u).replace(/\\/g,`/`):u]:await ts(s,c,l)}},Promise.resolve({})),t.json&&Cn(t,s);else{r.length===1&&r[0].filepath!==(t.packageFile||`package.json`)&&(t.packageFile=r[0].filepath);let{pkgData:e,pkgFile:n}=await La(t);s=await ts(t,e,n)}return clearTimeout(n),t.errorLevel===2&&os(a,s)&&X(t,`
373
- Dependencies not up-to-date`),t.upgrade&&(t.packageManager===`deno`?z(t,``):await ss(a,s,t)),s}async function ls(e={},{cli:t}={}){let n=await co(e,{cli:t}),r=De.url;process.on(`exit`,()=>{rs&&X(n,`Unhandled Rejection! This is a bug and should be reported: ${r}`)}),await Me(n.color),is(n),z(n,`Initializing`,`verbose`),n.cacheClear&&await Rn(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{X(n,t)}catch{}},e)})}if(n.doctor){if(n.upgrade)return Promise.race([a,Ia(ls,n)]);z(n,`Usage: ncu --doctor\n\n${typeof W.doctor.help==`function`?W.doctor.help({}):W.doctor.help}`,`warn`)}else return Promise.race([a,cs(n,i)])}export{qn as a,Ee as c,Wa as i,Oe as l,ns as n,Gn as o,$ as r,Me as s,ls as t,Te as u};
362
+ Enter: Upgrade`;function Zo(e,t){let n=e?Xo.split(`
363
+ `).length:0;return process.stdout.rows?Math.max(3,process.stdout.rows-n-1-(t?.length??0)*2):50}async function Qo(e,t,n){let r=mo(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 $o=async(e,n,r,i)=>{let a=[],o=process.stdout.rows>18,s=N((await wn({from:e,to:n,format:i.format,pkgFile:r||void 0})).toString().split(`
364
+ `),e=>({[e.trim().split(` `)[0]]:e.trim()}));if(Object.keys(n).length>0)if(B(i,``),i.format?.includes(`group`)){let r=Yt(n,e,i);a=(await t({choices:[...r.flatMap(({heading:e,groupName:t,packages:n})=>[{title:`
365
+ `+e,heading:!0},...Object.keys(n).sort().map(e=>({title:s[e],value:e,selected:[`patch`,`minor`].includes(t)}))]),{title:` `,heading:!0}],hint:o&&Xo,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:Zo(o,r),type:`multiselect`,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})).value}else a=(await t({choices:[...Object.keys(n).sort().map(e=>({title:s[e],value:e,selected:!0})),{title:` `,heading:!0}],hint:o&&Xo+`
366
+ `,instructions:!1,message:`Choose which packages to update`,name:`value`,optionsPerPage:Zo(o),type:`multiselect`,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})).value;return N(a,e=>({[e]:n[e]}))};async function es(e,t,n){B(e,`
367
+ Options:`,`verbose`),V(e,e,`verbose`);let r;try{t?r=Yo(t):X(e,`Missing package data`)}catch(t){X(e,`Invalid package file${n?`: ${n}`:` from stdin`}. Error details:\n${t.message}`)}let i=Bo(r,e);B(e,`
368
+ Current versions:`,`verbose`),B(e,i,`verbose`),e.enginesNode&&(e.nodeEngineVersion=r?.engines?.node),e.peer&&(e.peerDependencies=await vo(Object.fromEntries(Object.entries(i).map(([e,t])=>[e,d.validRange(t)?d.minVersion(t)?.version??t:t])),e));let[a,s,c]=await Io(i,e),l=N(s,(e,t)=>t.version?{[e]:t.version}:null),u=N(s,(e,t)=>t.error?{[e]:t.error}:null),f=N(s,(e,t)=>t.time?{[e]:t.time}:null);e.peer&&(B(e,`
369
+ upgradedPeerDependencies:`,`verbose`),B(e,c,`verbose`)),B(e,`\n${typeof e.target==`string`?`${e.target[0].toUpperCase()}${e.target.slice(1)}`:`Fetched`} versions:`,`verbose`),B(e,l,`verbose`),B(e,`
370
+ Upgraded versions:`,`verbose`),B(e,a,`verbose`);let p=e.minimal?N(a,(e,t)=>d.satisfies(l[e],i[e])?null:{[e]:t}):a,m=(e.format||[]).includes(`ownerChanged`)?await Qo(i,p,e):void 0,h=e.interactive?await $o(i,p,n,e):p;if(!e.json||e.deep){if(await Dn(e.interactive?{...e,format:(e.format||[]).filter(e=>e!==`group`)}:e,{current:i,upgraded:h,total:Object.keys(a).length,latest:s,ownersChangedDeps:m,pkgFile:n||void 0,errors:u,time:f}),e.peer){let t=await Wo(i,a,c,e);Object.keys(t).length>0&&On(e,t)}if(e.enginesNode){let t=await Uo(i,a,e);Object.keys(t).length>0&&kn(e,t)}}let g=await Ma(t,i,h,e,n||void 0),_=e.jsonAll?Yo(g):e.jsonDeps?yo(Yo(g),Da(e.dep)):h,v;if(e.json&&!e.deep&&xn(e,_),Object.keys(p).length>0&&n)if(e.upgrade)v=o.writeFile(n.replace(`#catalog`,``),g);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 ${P.cyan(`${t}${r} -u`)} to upgrade ${e.packageFile||`package.json`}`)}return await v,_}function ts(e){return e}process.env.INJECT_PROMPTS&&t.inject(JSON.parse(process.env.INJECT_PROMPTS));let ns=!1;process.on(`unhandledRejection`,e=>{console.error(e),ns=!0});const rs=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))},is=async(t,n)=>{let r={...t,cwd:t.cwd||e.resolve(n,`..`),packageFile:n};return t.packageManager===`staticRegistry`?await Xn({...r,packageManager:void 0}):t.packageManager&&t.packageManager!==`npm`?t.packageManager:await Xn(r)},as=(e,t)=>{let n=e.length===1?{[e[0]]:t}:t;return Object.values(n).some(e=>Object.keys(e).length>0)},os=async(r,i,a)=>{if(a.install===`never`){B(a,``);return}if(!as(r,i))return;let o=await is(a,r[0]),s=`Run ${P.cyan(o+` install`)}${r.length>1&&!a.workspace&&!a.workspaces?` in each project directory`:``} to install new versions`,c=a.interactive&&(process.env.NCU_TESTS||!process.env.NCU_DOCTOR),l;if(c&&a.install===`prompt`&&(B(a,``),l=await t({type:`confirm`,name:`value`,message:`${s}?`,initial:!0,onState:e=>{e.aborted&&process.nextTick(()=>process.exit(1))}})),a.install===`always`||c&&l.value){a.install===`always`&&B(a,``),B(a,`Installing dependencies...`);let t=a.workspaces||a.workspace?.length?[`package.json`]:r;for await(let r of t){let t=await is(a,r),i=t+(process.platform===`win32`&&t!==`bun`?`.cmd`:``),o=a.cwd||e.resolve(r,`..`),s=``;try{await n(i,[`install`],{stdout:e=>{s+=e},stderr:e=>{console.error(P.red(e.toString()))}},{cwd:o,env:{...process.env,...a.color===!1?null:{FORCE_COLOR:!0},...t===`pnpm`?{npm_config_strict_peer_dependencies:!1}:null}}),B(a,s),B(a,`Done`)}catch(e){throw Error(e?.message||e||s)}}}else c||B(a,`\n${s}.`)};async function ss(t,n){let[r,i]=await Ha(t),a=r.map(e=>e.filepath),o=t.workspaces||!!t.workspace?.length;t.deep=t.deep||o||r.length>1;let s;if(t.global){let e=await Lo(t);return clearTimeout(n),e}else if(t.deep)s=await r.reduce(async(n,r)=>{let a=await n,o=(await Ua({packageFile:r.filepath,options:t})).config;t.mergeConfig&&Object.keys(o).length&&(o=lo(t,o));let s={...t,...o,packageFile:r.filepath,workspacePackages:i},c,l,u;if(r.filepath.includes(`#`)||r.name===`catalogs`){c=r.pkgFile,l=r.filepath,u=r.filepath.includes(`#catalog`)?r.filepath.replace(`#catalog`,``):r.filepath;let t=e.resolve(u);B(s,`${s.upgrade?`Upgrading`:`Checking`} ${t} catalog dependencies`)}else{let e=await Ia(s);c=e.pkgData,l=e.pkgFile||r.filepath,u=l}return{...a,[s.cwd?e.relative(e.resolve(s.cwd),u).replace(/\\/g,`/`):u]:await es(s,c,l)}},Promise.resolve({})),t.json&&xn(t,s);else{r.length===1&&r[0].filepath!==(t.packageFile||`package.json`)&&(t.packageFile=r[0].filepath);let{pkgData:e,pkgFile:n}=await Ia(t);s=await es(t,e,n)}return clearTimeout(n),t.errorLevel===2&&as(a,s)&&X(t,`
373
+ Dependencies not up-to-date`),t.upgrade&&(t.packageManager===`deno`?B(t,``):await os(a,s,t)),s}async function cs(e={},{cli:t}={}){let n=await so(e,{cli:t}),r=De.url;process.on(`exit`,()=>{ns&&X(n,`Unhandled Rejection! This is a bug and should be reported: ${r}`)}),await Me(n.color),rs(n),B(n,`Initializing`,`verbose`),n.cacheClear&&await Fn(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{X(n,t)}catch{}},e)})}if(n.doctor){if(n.upgrade)return Promise.race([a,Fa(cs,n)]);B(n,`Usage: ncu --doctor\n\n${typeof W.doctor.help==`function`?W.doctor.help({}):W.doctor.help}`,`warn`)}else return Promise.race([a,ss(n,i)])}export{Gn as a,Ee as c,Ua as i,Oe as l,ts as n,Un as o,$ as r,Me as s,cs as t,Te as u};
374
374
  //# sourceMappingURL=src.mjs.map