updates 17.3.0 → 17.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,22 +17,44 @@
17
17
  # check for updates
18
18
  npx updates
19
19
 
20
- # update package.json and install new dependencies with your favorite package manager
20
+ # update package.json and install new dependencies
21
21
  npx updates -u && npm i
22
22
  ```
23
23
 
24
24
  ## Options
25
25
 
26
- See `--help`. Options that take multiple arguments can take them either via comma-separated value or by specifying the option multiple times. If an option has a optional `pkg` argument but none is given, the option will be applied to all packages instead.
27
-
28
- All `pkg` options support glob matching via `*` or regex (on CLI, wrap the regex in slashes, e.g. `'/^foo/'`).
26
+ |Option|Description|
27
+ |:-|:-|
28
+ |`-u, --update`|Update versions and write package file|
29
+ |`-f, --file <path,...>`|File or directory to use, defaults to current directory|
30
+ |`-i, --include <pkg,...>`|Include only given packages|
31
+ |`-e, --exclude <pkg,...>`|Exclude given packages|
32
+ |`-p, --prerelease [<pkg,...>]`|Consider prerelease versions|
33
+ |`-R, --release [<pkg,...>]`|Only use release versions, may downgrade|
34
+ |`-g, --greatest [<pkg,...>]`|Prefer greatest over latest version|
35
+ |`-t, --types <type,...>`|Dependency types to update|
36
+ |`-P, --patch [<pkg,...>]`|Consider only up to semver-patch|
37
+ |`-m, --minor [<pkg,...>]`|Consider only up to semver-minor|
38
+ |`-d, --allow-downgrade [<pkg,...>]`|Allow version downgrades when using latest version|
39
+ |`-C, --cooldown <days>`|Minimum package age in days|
40
+ |`-l, --pin <pkg=range>`|Pin package to given semver range|
41
+ |`-E, --error-on-outdated`|Exit with code 2 when updates are available and 0 when not|
42
+ |`-U, --error-on-unchanged`|Exit with code 0 when updates are available and 2 when not|
43
+ |`-r, --registry <url>`|Override npm registry URL|
44
+ |`-S, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 96|
45
+ |`-M, --modes <mode,...>`|Which modes to enable. Either `npm`, `pypi`, `go`. Default: `npm,pypi,go`|
46
+ |`-j, --json`|Output a JSON object|
47
+ |`-n, --no-color`|Disable color output|
48
+ |`-v, --version`|Print the version|
49
+ |`-V, --verbose`|Print verbose output to stderr|
50
+ |`-h, --help`|Print the help|
51
+
52
+ Options that take multiple arguments can take them either via comma-separated value or by specifying the option multiple times. If an option has a optional `pkg` argument but none is given, the option will be applied to all packages instead. All `pkg` options support glob matching via `*` or regex (on CLI, wrap the regex in slashes, e.g. `'/^foo/'`).
29
53
 
30
54
  ## Config File
31
55
 
32
56
  The config file is used to configure certain options of the module. It is placed at `updates.config.{js,ts,mjs,mts}` or `.config/updates.config.{js,ts,mjs,mts}`, relative to `package.json` / `pyproject.toml` / `go.mod`.
33
57
 
34
- Since Node.js v22.18.0, typescript configuration files work out of the box. For older node versions, set `NODE_OPTIONS="--experimental-strip-types"` in your environment.
35
-
36
58
  ```ts
37
59
  import type {Config} from "updates";
38
60
 
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{createRequire as e}from"node:module";import{cwd as t,env as n,exit as r,platform as i,stderr as a,stdout as o,versions as s}from"node:process";import{basename as c,dirname as l,join as u,resolve as d}from"node:path";import{pathToFileURL as f}from"node:url";import{accessSync as p,lstatSync as m,readFileSync as h,truncateSync as g,writeFileSync as _}from"node:fs";import{parseArgs as v,stripVTControlCharacters as y,styleText as b}from"node:util";var x=Object.create,S=Object.defineProperty,C=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,w=(e,t)=>()=>(e&&(t=e(e=0)),t),T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),re=(e,t)=>{let n={};for(var r in e)S(n,r,{get:e[r],enumerable:!0});return t&&S(n,Symbol.toStringTag,{value:`Module`}),n},ie=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ee(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ne.call(e,s)&&s!==n&&S(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=C(t,s))||r.enumerable});return e},ae=(e,t,n)=>(n=e==null?{}:x(te(e)),ie(t||!e||!e.__esModule?S(n,`default`,{value:e,enumerable:!0}):n,e)),oe=e(import.meta.url);async function se(e,t,{concurrency:n=1/0,stopOnError:r=!0,signal:i}={}){return new Promise((a,o)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!=`function`)throw TypeError(`Mapper function is required`);if(!(Number.isSafeInteger(n)&&n>=1||n===1/0))throw TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let s=[],c=[],l=new Map,u=!1,d=!1,f=!1,p=0,m=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),g=()=>{y(i.reason)},_=()=>{i?.removeEventListener(`abort`,g)},v=e=>{a(e),_()},y=e=>{u=!0,d=!0,o(e),_()};i&&(i.aborted&&y(i.reason),i.addEventListener(`abort`,g,{once:!0}));let b=async()=>{if(d)return;let e=await h.next(),n=m;if(m++,e.done){if(f=!0,p===0&&!d){if(!r&&c.length>0){y(AggregateError(c));return}if(d=!0,l.size===0){v(s);return}let e=[];for(let[t,n]of s.entries())l.get(t)!==ce&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===ce&&l.set(n,i),s[n]=i,p--,await b()}catch(e){if(r)y(e);else{c.push(e),p--;try{await b()}catch(e){y(e)}}}})()};(async()=>{for(let e=0;e<n;e++){try{await b()}catch(e){y(e);break}if(f||u)break}})()})}const ce=Symbol(`skip`);var le=`17.3.0`;const ue=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/;function E(e){if(typeof e!=`string`)return null;let t=ue.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}function de(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:e>t?1:0}function fe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function D(e,t){let n=fe(e,t);if(n!==0)return n;if(!e.prerelease.length&&!t.prerelease.length)return 0;if(e.prerelease.length&&!t.prerelease.length)return-1;if(!e.prerelease.length&&t.prerelease.length)return 1;let r=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<r;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=de(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function O(e){return E(e)?.version??null}function pe(e){return E(e)}function me(e){if(typeof e!=`string`)return null;let t=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/.exec(e);return t?{version:`${t[1]||`0`}.${t[2]||`0`}.${t[3]||`0`}`}:null}function k(e,t){let n=E(e),r=E(t);if(!n||!r||n.version===r.version)return null;let i=D(n,r),a=i>0?n:r,o=i>0?r:n,s=a.prerelease.length>0;if(o.prerelease.length>0&&!s){if(!o.patch&&!o.minor)return`major`;if(fe(o,a)===0)return o.minor&&!o.patch?`minor`:`patch`}let c=s?`pre`:``;return n.major===r.major?n.minor===r.minor?n.patch===r.patch?`prerelease`:`${c}patch`:`${c}minor`:`${c}major`}function he(e,t){let n=E(e),r=E(t);return!n||!r?!1:D(n,r)>0}function ge(e,t){let n=E(e),r=E(t);return!n||!r?!1:D(n,r)>=0}function _e(e,t){let n=E(e),r=E(t);return!n||!r?!1:D(n,r)<0}function ve(e,t){let n=E(e),r=E(t);return!n||!r?!0:D(n,r)!==0}function ye(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=E(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function be(e,t){let n=D(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function A(e,t,n){return`${e}.${t}.${n}-0`}function xe(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${A(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${A(a,o+1,0)}`})}function Se(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${A(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${A(a,s+1,0)}`:`>=${a}.${s}.0 <${A(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${A(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${A(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${A(a+1,0,0)}`})}function Ce(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${A(p+1,0,0)}`:`<${A(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function we(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${A(n+1,0,0)}`}),e=e.replace(/v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${A(r,i+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)\.(\d+)(?=\s|$)/g,(t,n,r,i,a)=>{let o=e.substring(0,a).trimEnd();if(/[<>=]$/.test(o))return t;let s=Number(r),c=Number(i);return`${n}>=${s}.${c}.0 <${A(s,c+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)(?=\s|$)/g,(t,n,r,i)=>{let a=e.substring(0,i).trimEnd();if(/[<>=]$/.test(a))return t;let o=Number(r);return`${n}>=${o}.0.0 <${A(o+1,0,0)}`}),e)}function Te(e){let t=e.split(`||`).map(e=>e.trim()),n=[];for(let e of t){if(!e){n.push([]);continue}e=Ce(e),e=Se(e),e=xe(e),e=we(e),e=e.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),e=e.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let t=e.split(/\s+/).filter(Boolean),r=[];for(let e of t){let t=ye(e);if(!t)return null;r.push(t)}if(r.length===0)return null;n.push(r)}return n.length?n:null}function Ee(e,t){for(let n of t)if(!be(e,n))return!1;if(e.prerelease.length>0){for(let n of t)if(n.semver.prerelease.length>0&&n.semver.major===e.major&&n.semver.minor===e.minor&&n.semver.patch===e.patch)return!0;return!1}return!0}function De(e,t){let n=E(e);if(!n)return!1;let r=Te(t);if(!r)return!1;for(let e of r)if(e.length===0||Ee(n,e))return!0;return!1}function Oe(e){if(typeof e!=`string`)return null;try{return Te(e)?e:null}catch{return null}}const ke=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ae={"1 day ago":`yesterday`,"1 week ago":`last week`,"1 month ago":`last month`,"1 year ago":`last year`,"in 1 day":`tomorrow`,"in 1 week":`next week`,"in 1 month":`next month`,"in 1 year":`next year`},je={sec:`second`,min:`minute`};function Me(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Ne(e,{now:t,noAffix:n=!1,times:r=ke,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ae,longUnits:l=!1}={}){let u=Me(e);if(t=t===void 0?Date.now():Me(t),Number.isNaN(u))return o||String(e);let d=!1,f=t-u;if(f<0&&(d=!0,f=Math.abs(f)),f<i)return a;let p=0,m=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(f>=t[1])){p=Math.floor(f/t[0]),m=(l&&je[t[2]]||t[2])+(p>1?`s`:``);break}}let h=`${d&&!n?`in `:``}${p} ${m}${!d&&!n?` ago`:``}`;return s?c[h]??h:h}function Pe(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/);e&&/^[0-9.a-z]+$/.test(r)&&t.push({name:e,version:r})}return t}const Fe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ie=[`node`,`deno`,`bun`],Le=[`tool.poetry.dependencies`,`tool.poetry.dev-dependencies`,`tool.poetry.test-dependencies`,`tool.poetry.group.dev.dependencies`,`tool.poetry.group.test.dependencies`],Re=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],ze=[`deps`];var Be=T((e=>{e.parse=e.decode=i,e.stringify=e.encode=n,e.safe=o,e.unsafe=s;var t=typeof process<`u`&&process.platform===`win32`?`\r
2
+ import{createRequire as e}from"node:module";import{cwd as t,env as n,exit as r,platform as i,stderr as a,stdout as o,versions as s}from"node:process";import{basename as c,dirname as l,join as u,resolve as d}from"node:path";import{pathToFileURL as f}from"node:url";import{accessSync as p,lstatSync as m,readFileSync as h,truncateSync as g,writeFileSync as _}from"node:fs";import{parseArgs as v,stripVTControlCharacters as y,styleText as b}from"node:util";var x=Object.create,S=Object.defineProperty,C=Object.getOwnPropertyDescriptor,ee=Object.getOwnPropertyNames,te=Object.getPrototypeOf,ne=Object.prototype.hasOwnProperty,w=(e,t)=>()=>(e&&(t=e(e=0)),t),T=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),re=(e,t)=>{let n={};for(var r in e)S(n,r,{get:e[r],enumerable:!0});return t&&S(n,Symbol.toStringTag,{value:`Module`}),n},ie=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=ee(t),a=0,o=i.length,s;a<o;a++)s=i[a],!ne.call(e,s)&&s!==n&&S(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=C(t,s))||r.enumerable});return e},ae=(e,t,n)=>(n=e==null?{}:x(te(e)),ie(t||!e||!e.__esModule?S(n,`default`,{value:e,enumerable:!0}):n,e)),oe=e(import.meta.url);async function se(e,t,{concurrency:n=1/0,stopOnError:r=!0,signal:i}={}){return new Promise((a,o)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!=`function`)throw TypeError(`Mapper function is required`);if(!(Number.isSafeInteger(n)&&n>=1||n===1/0))throw TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let s=[],c=[],l=new Map,u=!1,d=!1,f=!1,p=0,m=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),g=()=>{y(i.reason)},_=()=>{i?.removeEventListener(`abort`,g)},v=e=>{a(e),_()},y=e=>{u=!0,d=!0,o(e),_()};i&&(i.aborted&&y(i.reason),i.addEventListener(`abort`,g,{once:!0}));let b=async()=>{if(d)return;let e=await h.next(),n=m;if(m++,e.done){if(f=!0,p===0&&!d){if(!r&&c.length>0){y(AggregateError(c));return}if(d=!0,l.size===0){v(s);return}let e=[];for(let[t,n]of s.entries())l.get(t)!==ce&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===ce&&l.set(n,i),s[n]=i,p--,await b()}catch(e){if(r)y(e);else{c.push(e),p--;try{await b()}catch(e){y(e)}}}})()};(async()=>{for(let e=0;e<n;e++){try{await b()}catch(e){y(e);break}if(f||u)break}})()})}const ce=Symbol(`skip`);var le=`17.3.2`;const ue=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/;function E(e){if(typeof e!=`string`)return null;let t=ue.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}function de(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:e>t?1:0}function fe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function D(e,t){let n=fe(e,t);if(n!==0)return n;if(!e.prerelease.length&&!t.prerelease.length)return 0;if(e.prerelease.length&&!t.prerelease.length)return-1;if(!e.prerelease.length&&t.prerelease.length)return 1;let r=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<r;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=de(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function O(e){return E(e)?.version??null}function pe(e){return E(e)}function me(e){if(typeof e!=`string`)return null;let t=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/.exec(e);return t?{version:`${t[1]||`0`}.${t[2]||`0`}.${t[3]||`0`}`}:null}function k(e,t){let n=E(e),r=E(t);if(!n||!r||n.version===r.version)return null;let i=D(n,r),a=i>0?n:r,o=i>0?r:n,s=a.prerelease.length>0;if(o.prerelease.length>0&&!s){if(!o.patch&&!o.minor)return`major`;if(fe(o,a)===0)return o.minor&&!o.patch?`minor`:`patch`}let c=s?`pre`:``;return n.major===r.major?n.minor===r.minor?n.patch===r.patch?`prerelease`:`${c}patch`:`${c}minor`:`${c}major`}function he(e,t){let n=E(e),r=E(t);return!n||!r?!1:D(n,r)>0}function ge(e,t){let n=E(e),r=E(t);return!n||!r?!1:D(n,r)>=0}function _e(e,t){let n=E(e),r=E(t);return!n||!r?!1:D(n,r)<0}function ve(e,t){let n=E(e),r=E(t);return!n||!r?!0:D(n,r)!==0}function ye(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=E(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function be(e,t){let n=D(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function A(e,t,n){return`${e}.${t}.${n}-0`}function xe(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${A(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${A(a,o+1,0)}`})}function Se(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${A(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${A(a,s+1,0)}`:`>=${a}.${s}.0 <${A(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${A(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${A(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${A(a+1,0,0)}`})}function Ce(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${A(p+1,0,0)}`:`<${A(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function we(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${A(n+1,0,0)}`}),e=e.replace(/v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${A(r,i+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)\.(\d+)(?=\s|$)/g,(t,n,r,i,a)=>{let o=e.substring(0,a).trimEnd();if(/[<>=]$/.test(o))return t;let s=Number(r),c=Number(i);return`${n}>=${s}.${c}.0 <${A(s,c+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)(?=\s|$)/g,(t,n,r,i)=>{let a=e.substring(0,i).trimEnd();if(/[<>=]$/.test(a))return t;let o=Number(r);return`${n}>=${o}.0.0 <${A(o+1,0,0)}`}),e)}function Te(e){let t=e.split(`||`).map(e=>e.trim()),n=[];for(let e of t){if(!e){n.push([]);continue}e=Ce(e),e=Se(e),e=xe(e),e=we(e),e=e.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),e=e.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let t=e.split(/\s+/).filter(Boolean),r=[];for(let e of t){let t=ye(e);if(!t)return null;r.push(t)}if(r.length===0)return null;n.push(r)}return n.length?n:null}function Ee(e,t){for(let n of t)if(!be(e,n))return!1;if(e.prerelease.length>0){for(let n of t)if(n.semver.prerelease.length>0&&n.semver.major===e.major&&n.semver.minor===e.minor&&n.semver.patch===e.patch)return!0;return!1}return!0}function De(e,t){let n=E(e);if(!n)return!1;let r=Te(t);if(!r)return!1;for(let e of r)if(e.length===0||Ee(n,e))return!0;return!1}function Oe(e){if(typeof e!=`string`)return null;try{return Te(e)?e:null}catch{return null}}const ke=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ae={"1 day ago":`yesterday`,"1 week ago":`last week`,"1 month ago":`last month`,"1 year ago":`last year`,"in 1 day":`tomorrow`,"in 1 week":`next week`,"in 1 month":`next month`,"in 1 year":`next year`},je={sec:`second`,min:`minute`};function Me(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Ne(e,{now:t,noAffix:n=!1,times:r=ke,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ae,longUnits:l=!1}={}){let u=Me(e);if(t=t===void 0?Date.now():Me(t),Number.isNaN(u))return o||String(e);let d=!1,f=t-u;if(f<0&&(d=!0,f=Math.abs(f)),f<i)return a;let p=0,m=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(f>=t[1])){p=Math.floor(f/t[0]),m=(l&&je[t[2]]||t[2])+(p>1?`s`:``);break}}let h=`${d&&!n?`in `:``}${p} ${m}${!d&&!n?` ago`:``}`;return s?c[h]??h:h}function Pe(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/);e&&/^[0-9.a-z]+$/.test(r)&&t.push({name:e,version:r})}return t}const Fe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ie=[`node`,`deno`,`bun`],Le=[`tool.poetry.dependencies`,`tool.poetry.dev-dependencies`,`tool.poetry.test-dependencies`,`tool.poetry.group.dev.dependencies`,`tool.poetry.group.test.dependencies`],Re=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],ze=[`deps`];var Be=T((e=>{e.parse=e.decode=i,e.stringify=e.encode=n,e.safe=o,e.unsafe=s;var t=typeof process<`u`&&process.platform===`win32`?`\r
3
3
  `:`
4
4
  `;function n(e,i){var a=[],s=``;typeof i==`string`?i={section:i,whitespace:!1}:(i||={},i.whitespace=i.whitespace===!0);var c=i.whitespace?` = `:`=`;return Object.keys(e).forEach(function(n,r,i){var l=e[n];l&&Array.isArray(l)?l.forEach(function(e){s+=o(n+`[]`)+c+o(e)+`
5
5
  `}):l&&typeof l==`object`?a.push(n):s+=o(n)+c+o(l)+t}),i.section&&s.length&&(s=`[`+o(i.section)+`]`+t+s),a.forEach(function(a,o,c){var l=r(a).join(`\\.`),u=(i.section?i.section+`.`:``)+l,d=n(e[a],{section:u,whitespace:i.whitespace});s.length&&d.length&&(s+=t),s+=d}),s}function r(e){return e.replace(/\1/g,`LITERAL\\1LITERAL`).replace(/\\\./g,``).split(/\./).map(function(e){return e.replace(/\1/g,`\\.`).replace(/\2LITERAL\\1LITERAL\2/g,``)})}function i(e){var t={},n=t,i=null,a=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i;return e.split(/[\r\n]+/g).forEach(function(e,r,o){if(!(!e||e.match(/^\s*[;#]/))){var c=e.match(a);if(c){if(c[1]!==void 0){if(i=s(c[1]),i===`__proto__`){n={};return}n=t[i]=t[i]||{};return}var l=s(c[2]);if(l!==`__proto__`){var u=c[3]?s(c[4]):!0;switch(u){case`true`:case`false`:case`null`:u=JSON.parse(u)}if(l.length>2&&l.slice(-2)===`[]`){if(l=l.substring(0,l.length-2),l===`__proto__`)return;n[l]?Array.isArray(n[l])||(n[l]=[n[l]]):n[l]=[]}Array.isArray(n[l])?n[l].push(u):n[l]=u}}}}),Object.keys(t).filter(function(e,n,i){if(!t[e]||typeof t[e]!=`object`||Array.isArray(t[e]))return!1;var a=r(e),o=t,s=a.pop(),c=s.replace(/\\\./g,`.`);return a.forEach(function(e,t,n){e!==`__proto__`&&((!o[e]||typeof o[e]!=`object`)&&(o[e]={}),o=o[e])}),o===t&&c===s?!1:(o[c]=t[e],!0)}).forEach(function(e,n,r){delete t[e]}),t}function a(e){return e.charAt(0)===`"`&&e.slice(-1)===`"`||e.charAt(0)===`'`&&e.slice(-1)===`'`}function o(e){return typeof e!=`string`||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&a(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,`\\;`).replace(/#/g,`\\#`)}function s(e,t){if(e=(e||``).trim(),a(e)){e.charAt(0)===`'`&&(e=e.substr(1,e.length-2));try{e=JSON.parse(e)}catch{}}else{for(var n=!1,r=``,i=0,o=e.length;i<o;i++){var s=e.charAt(i);if(n)`\\;#`.indexOf(s)===-1?r+=`\\`+s:r+=s,n=!1;else if(`;#`.indexOf(s)!==-1)break;else s===`\\`?n=!0:r+=s}return n&&(r+=`\\`),r.trim()}return e}})),Ve=T(((e,t)=>{var n=1,r=2;function i(){return``}function a(e,t,n){return e.slice(t,n).replace(/\S/g,` `)}t.exports=function(e,t){t||={};for(var o,s,c=!1,l=!1,u=0,d=``,f=t.whitespace===!1?i:a,p=0;p<e.length;p++)if(o=e[p],s=e[p+1],!l&&o===`"`&&(e[p-1]===`\\`&&e[p-2]!==`\\`||(c=!c)),!c){if(!l&&o+s===`//`)d+=e.slice(u,p),u=p,l=n,p++;else if(l===n&&o+s===`\r
@@ -29,7 +29,7 @@ import{createRequire as e}from"node:module";import{cwd as t,env as n,exit as r,p
29
29
  `)+Et(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=St(t[c],e,r,i),a+=`
30
30
  `}}return e&&(a||!o)&&(a=a?`[${e}]\n${a}`:`[${e}]`),a&&o?`${a}\n${o}`:a||o}function Dt(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(I(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=Et(0,e,``,t,n);return r[r.length-1]===`
31
31
  `?r:r+`
32
- `}var Ot,kt=w((()=>{Ot=/^[a-z0-9-_]+$/i})),At=re({TomlDate:()=>F,TomlError:()=>j,default:()=>jt,parse:()=>vt,stringify:()=>Dt}),jt,Mt=w((()=>{yt(),kt(),et(),M(),jt={parse:vt,stringify:Dt,TomlDate:F,TomlError:j}}));const Nt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Pt=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Ft=/^[0-9a-f]{7,}$/i,It=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Lt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,L=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),R=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e,Rt=le,zt={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},Bt={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function z(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?cn(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Vt(e){for(let[t,{short:n}]of Object.entries(Bt))if(t===e||n===e)return t;return``}const B=v({strict:!1,allowPositionals:!0,tokens:!0,options:Bt}),V=B.values;for(let[e,t]of B.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=Vt(t.value.substring(1)),r=B.tokens[e+1];V[t.name]=[!0],V[n]||(V[n]=[]),r.kind===`positional`&&r.value?V[n].push(r.value):V[n].push(!0)}const H=B.values,[Ht,Ut,Wt]=[`magenta`,`red`,`green`].map(e=>H[`no-color`]?String:t=>b(e,String(t))),U=Q(z(H.greatest)),Gt=Q(z(H.prerelease)),Kt=Q(z(H.release)),qt=Q(z(H.patch)),Jt=Q(z(H.minor)),Yt=Q(z(H[`allow-downgrade`])),Xt=z(H.modes)||new Set([`npm`,`pypi`,`go`]),Zt=typeof H.forgeapi==`string`?R(H.forgeapi):`https://api.github.com`,Qt=typeof H.pypiapi==`string`?R(H.pypiapi):`https://pypi.org`,$t=typeof H.jsrapi==`string`?R(H.jsrapi):`https://jsr.io`,en=typeof H.goproxy==`string`?R(H.goproxy):nn(),tn=rn();function nn(){let e=n.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return R(e)}return`https://proxy.golang.org`}function rn(){return(n.GONOPROXY||n.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function an(e){return tn.some(t=>e===t||e.startsWith(`${t}/`))}const W=e=>e.replace(/^v/,``);function G(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function on(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function sn(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function cn(e){return e.split(`,`).filter(Boolean)}function ln(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&Oe(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&Oe(r)&&(t[n]=r)}return t}function un(e,t){let n=u(t,e);try{return p(n),n}catch{}let r=l(t);return r===t?null:un(e,r)}const dn=`https://registry.npmjs.org`;let K=null;const fn=new Map;async function pn(){return K||(await Promise.resolve().then(()=>ae(Ge(),1))).default(`npm`,{registry:dn})}function mn(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,t)=>process.env[t]||``)}function hn(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:mn(n),type:`Bearer`};let r=t[`${e}:username`]||t[`${e}/:username`],i=t[`${e}:_password`]||t[`${e}/:_password`];if(r&&i){let e=Buffer.from(mn(i),`base64`).toString(`utf8`);return{token:Buffer.from(`${r}:${e}`).toString(`base64`),type:`Basic`,username:r,password:e}}let a=t[`${e}:_auth`]||t[`${e}/:_auth`];if(a)return{token:mn(a),type:`Basic`}}function q(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=hn(`//${n.host}${r.replace(/\/$/,``)}`,t);if(e)return e;let i=r.endsWith(`/`)?r:`${r}/`;n.pathname=new URL(`..`,new URL(i,`http://x`)).pathname}let i=t._auth;if(i)return{token:mn(i),type:`Basic`}}async function gn(e,t){K||=await pn();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=fn.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:q(t,K),registry:t};else{let e=R(on(n,K));if(e!==t)try{let n=q(e,K);a=n?.token?{auth:n,registry:e}:{auth:q(t,K),registry:t}}catch{a={auth:q(t,K),registry:t}}else a={auth:q(t,K),registry:t}}return fn.set(r,a),a}function _n(e,t){return{headers:{"user-agent":`updates/${Rt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}function vn(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`)].join(``)}function yn(e){console.error(`${vn()} ${e}`)}const bn=[`|`,`/`,`-`,`\\`];let xn;function Sn(){if(H.json||H.verbose||!a.isTTY)return;let e=0;a.write(`\x1B[?25l`),xn=setInterval(()=>{a.write(`\r${bn[e++%bn.length]}`)},80)}function Cn(){xn&&(clearInterval(xn),xn=void 0,a.write(`\r \r\x1B[?25h`))}async function J(e,t){H.verbose&&yn(`${Ht(`fetch`)} ${e}`);let n=await fetch(e,t);return H.verbose&&yn(`${n.ok?Wt(n.status):Ut(n.status)} ${e}`),n}async function wn(e,t,n){K||=await pn();let{auth:r,registry:i}=await gn(e,R((typeof H.registry==`string`?H.registry:!1)||n.registry||K.registry||dn)),a=`${i}/${(t===`resolutions`?c(e):e).replace(/\//g,`%2f`)}`,o=await J(a,_n(r?.type,r?.token));if(o?.ok)return[await o.json(),t,i,e];throw o?.status&&o?.statusText?Error(`Received ${o.status} ${o.statusText} from ${a}`):Error(`Unable to fetch ${e} from ${i}`)}async function Tn(e,t){let n=`${Qt}/pypi/${e}/json`,r=await J(n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(r?.ok)return[await r.json(),t,null,e];throw r?.status&&r?.statusText?Error(`Received ${r.status} ${r.statusText} from ${n}`):Error(`Unable to fetch ${e} from ${Qt}`)}function Y(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function En(e,t){if(e.startsWith(`npm:@jsr/`)){let t=/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:@`)){let t=/^jsr:@([^/]+)\/([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:`)){let n=e.substring(4);if(t?.startsWith(`@`)){let e=/^@([^/]+)\/(.+)$/.exec(t);if(e)return{scope:e[1],name:e[2],version:n}}}return{scope:null,name:null,version:``}}async function Dn(e,t){let n=/^@([^/]+)\/(.+)$/.exec(e);if(!n)throw Error(`Invalid JSR package name: ${e}`);let[,r,i]=n,a=`${$t}/@${r}/${i}/meta.json`,o=await J(a,{headers:{"accept-encoding":`gzip, deflate, br`}});if(o?.ok){let n=await o.json(),r={};for(let[e,t]of Object.entries(n.versions))r[e]={version:e,time:t.createdAt};return[{name:e,"dist-tags":{latest:n.latest},versions:r,time:Object.fromEntries(Object.entries(n.versions).map(([e,t])=>[e,t.createdAt]))},t,$t,e]}else if(o?.status&&o?.statusText)throw Error(`Received ${o.status} ${o.statusText} from ${a}`);else throw Error(`Unable to fetch ${e} from JSR`)}function On(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function kn(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function An(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function jn(e){let t={},n=e.split(/\r?\n/),r=!1;for(let e of n){let n=e.trim();if(/^require\s*\(/.test(n)){r=!0;continue}if(n===`)`){r=!1;continue}if(n.includes(`// indirect`))continue;let i=r?/^(\S+)\s+(v\S+)/.exec(n):/^require\s+(\S+)\s+(v\S+)/.exec(n);i&&(t[i[1]]=i[2])}return t}async function Mn(e,t,n){let r=[{old:n,new:n},t,null,e];if(an(e))return r;let i=On(e),a=kn(e),o=async t=>{let n=An(e,t);return J(`${en}/${On(n)}/@latest`,{signal:AbortSignal.timeout(5e3)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},[s,c]=await Promise.all([J(`${en}/${i}/@latest`,{signal:AbortSignal.timeout(1e4)}),o(a+1)]);if(!s.ok)return r;let l,u;try{let e=await s.json();l=e.Version,u=e.Time}catch{return r}let d=l,f=u,p=e,m=e=>{d=e.Version,f=e.Time,p=e.path};if(c){m(c);let e=await o(a+2);if(e){m(e);for(let e=a+3;e<=a+100;e+=20){let t=Math.min(e+20,a+101),n=Array.from({length:t-e},(t,n)=>({result:o(e+n)})),r=await Promise.all(n.map(e=>e.result)),i=!1;for(let e of r){if(!e)break;m(e),i=!0}if(!i||r.some(e=>!e))break}}}return[{old:n,new:W(d),Time:f,...p===e?{}:{newPath:p},sameMajorNew:W(l),sameMajorTime:u},t,null,e]}function Nn(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}function Pn(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Fn({repository:e,homepage:t,info:n},r,i){n&&(e=n.project_urls.repository||n.project_urls.Repository||n.project_urls.repo||n.project_urls.Repo||n.project_urls.source||n.project_urls.Source||n.project_urls[`source code`]||n.project_urls[`Source code`]||n.project_urls[`Source Code`]||n.project_urls.homepage||n.project_urls.Homepage||`https://pypi.org/project/${i}/`);let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=Nn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${Pn(a)}/${e.directory}`)),a||t||``)}function In(e){let t=`https://${Un(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${Pn(t)}/${o.join(`/`)}`,n.toString()}else return t}async function Ln(e){console.info(H.json?JSON.stringify({message:e}):e),await X()}async function X(e,t){if(Cn(),e){let t=e.stack??e.message,n=e.cause;H.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(Ut(t)),n&&console.info(Ut(`Caused by: ${String(n)}`)))}i===`win32`&&Number(s?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),r(t||e?1:0)}function Rn(e={}){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!Y(n.oldOrig)&&(n.old=n.oldOrig),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;if(H.json){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`);t.results[n]||(t.results[n]={}),t.results[n][e]||(t.results[n][e]={}),t.results[n][e][a]=i}console.info(JSON.stringify(t))}else t&&console.info(Wn(e));return H[`error-on-outdated`]?t?2:0:H[`error-on-unchanged`]?t?0:2:0}function zn(e,t){i===`win32`&&g(e,0),_(e,t,i===`win32`?{flag:`r+`}:void 0)}function Bn(e,t,n){if(e===t)return e;let r=e.split(/\./),i=t.split(/\./),a=/^[0-9a-zA-Z-.]+$/,o=``;for(let e=0;e<r.length;e++)if(r[e]!==i[e]){a.test(r[e])?o+=n(r.slice(e).join(`.`)):o+=r[e].split(``).map(e=>a.test(e)?n(e):e).join(``)+n(`.${r.slice(e+1).join(`.`)}`.replace(/\.$/,``));break}else o+=`${r[e]}.`;return o.replace(/\.$/,``)}const Vn=e=>y(e).length;function Hn(e,t=` `){let n=``,r=Array(e[0].length).fill(0);for(let t of e)for(let[e,n]of t.entries()){let t=Vn(n);t>r[e]&&(r[e]=t)}for(let[i,a]of e.entries()){for(let[e,i]of a.entries()){e>0&&(n+=t);let o=` `.repeat(r[e]-Vn(i));n+=i+(e===a.length-1?``:o)}i<e.length-1&&(n+=`
32
+ `}var Ot,kt=w((()=>{Ot=/^[a-z0-9-_]+$/i})),At=re({TomlDate:()=>F,TomlError:()=>j,default:()=>jt,parse:()=>vt,stringify:()=>Dt}),jt,Mt=w((()=>{yt(),kt(),et(),M(),jt={parse:vt,stringify:Dt,TomlDate:F,TomlError:j}}));const Nt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Pt=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Ft=/^[0-9a-f]{7,}$/i,It=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Lt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,L=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),R=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e,Rt=le,zt={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},Bt={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function z(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?cn(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Vt(e){for(let[t,{short:n}]of Object.entries(Bt))if(t===e||n===e)return t;return``}const B=v({strict:!1,allowPositionals:!0,tokens:!0,options:Bt}),V=B.values;for(let[e,t]of B.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=Vt(t.value.substring(1)),r=B.tokens[e+1];V[t.name]=[!0],V[n]||(V[n]=[]),r.kind===`positional`&&r.value?V[n].push(r.value):V[n].push(!0)}const H=B.values,[Ht,Ut,Wt]=[`magenta`,`red`,`green`].map(e=>H[`no-color`]?String:t=>b(e,String(t))),U=Q(z(H.greatest)),Gt=Q(z(H.prerelease)),Kt=Q(z(H.release)),qt=Q(z(H.patch)),Jt=Q(z(H.minor)),Yt=Q(z(H[`allow-downgrade`])),Xt=z(H.modes)||new Set([`npm`,`pypi`,`go`]),Zt=typeof H.forgeapi==`string`?R(H.forgeapi):`https://api.github.com`,Qt=typeof H.pypiapi==`string`?R(H.pypiapi):`https://pypi.org`,$t=typeof H.jsrapi==`string`?R(H.jsrapi):`https://jsr.io`,en=typeof H.goproxy==`string`?R(H.goproxy):nn(),tn=rn();function nn(){let e=n.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return R(e)}return`https://proxy.golang.org`}function rn(){return(n.GONOPROXY||n.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function an(e){return tn.some(t=>e===t||e.startsWith(`${t}/`))}const W=e=>e.replace(/^v/,``);function G(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function on(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function sn(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function cn(e){return e.split(`,`).filter(Boolean)}function ln(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&Oe(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&Oe(r)&&(t[n]=r)}return t}function un(e,t){let n=u(t,e);try{return p(n),n}catch{}let r=l(t);return r===t?null:un(e,r)}const dn=`https://registry.npmjs.org`;let K=null;const fn=new Map;async function pn(){return K||(await Promise.resolve().then(()=>ae(Ge(),1))).default(`npm`,{registry:dn})}function mn(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,t)=>n[t]||``)}function hn(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:mn(n),type:`Bearer`};let r=t[`${e}:username`]||t[`${e}/:username`],i=t[`${e}:_password`]||t[`${e}/:_password`];if(r&&i){let e=Buffer.from(mn(i),`base64`).toString(`utf8`);return{token:Buffer.from(`${r}:${e}`).toString(`base64`),type:`Basic`,username:r,password:e}}let a=t[`${e}:_auth`]||t[`${e}/:_auth`];if(a)return{token:mn(a),type:`Basic`}}function q(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=hn(`//${n.host}${r.replace(/\/$/,``)}`,t);if(e)return e;let i=r.endsWith(`/`)?r:`${r}/`;n.pathname=new URL(`..`,new URL(i,`http://x`)).pathname}let i=t._auth;if(i)return{token:mn(i),type:`Basic`}}async function gn(e,t){K||=await pn();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=fn.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:q(t,K),registry:t};else{let e=R(on(n,K));if(e!==t)try{let n=q(e,K);a=n?.token?{auth:n,registry:e}:{auth:q(t,K),registry:t}}catch{a={auth:q(t,K),registry:t}}else a={auth:q(t,K),registry:t}}return fn.set(r,a),a}function _n(e,t){return{headers:{"user-agent":`updates/${Rt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}function vn(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`)].join(``)}function yn(e){console.error(`${vn()} ${e}`)}const bn=[`|`,`/`,`-`,`\\`];let xn;function Sn(){if(H.json||H.verbose||!a.isTTY)return;let e=0;a.write(`\x1B[?25l`),xn=setInterval(()=>{a.write(`\r${bn[e++%bn.length]}`)},80)}function Cn(){xn&&(clearInterval(xn),xn=void 0,a.write(`\r \r\x1B[?25h`))}async function J(e,t){H.verbose&&yn(`${Ht(`fetch`)} ${e}`);let n=await fetch(e,t);return H.verbose&&yn(`${n.ok?Wt(n.status):Ut(n.status)} ${e}`),n}async function wn(e,t,n){K||=await pn();let{auth:r,registry:i}=await gn(e,R((typeof H.registry==`string`?H.registry:!1)||n.registry||K.registry||dn)),a=`${i}/${(t===`resolutions`?c(e):e).replace(/\//g,`%2f`)}`,o=await J(a,_n(r?.type,r?.token));if(o?.ok)return[await o.json(),t,i,e];throw o?.status&&o?.statusText?Error(`Received ${o.status} ${o.statusText} from ${a}`):Error(`Unable to fetch ${e} from ${i}`)}async function Tn(e,t){let n=`${Qt}/pypi/${e}/json`,r=await J(n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(r?.ok)return[await r.json(),t,null,e];throw r?.status&&r?.statusText?Error(`Received ${r.status} ${r.statusText} from ${n}`):Error(`Unable to fetch ${e} from ${Qt}`)}function Y(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function En(e,t){if(e.startsWith(`npm:@jsr/`)){let t=/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:@`)){let t=/^jsr:@([^/]+)\/([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:`)){let n=e.substring(4);if(t?.startsWith(`@`)){let e=/^@([^/]+)\/(.+)$/.exec(t);if(e)return{scope:e[1],name:e[2],version:n}}}return{scope:null,name:null,version:``}}async function Dn(e,t){let n=/^@([^/]+)\/(.+)$/.exec(e);if(!n)throw Error(`Invalid JSR package name: ${e}`);let[,r,i]=n,a=`${$t}/@${r}/${i}/meta.json`,o=await J(a,{headers:{"accept-encoding":`gzip, deflate, br`}});if(o?.ok){let n=await o.json(),r={};for(let[e,t]of Object.entries(n.versions))r[e]={version:e,time:t.createdAt};return[{name:e,"dist-tags":{latest:n.latest},versions:r,time:Object.fromEntries(Object.entries(n.versions).map(([e,t])=>[e,t.createdAt]))},t,$t,e]}else if(o?.status&&o?.statusText)throw Error(`Received ${o.status} ${o.statusText} from ${a}`);else throw Error(`Unable to fetch ${e} from JSR`)}function On(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function kn(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function An(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function jn(e){let t={},n=e.split(/\r?\n/),r=!1;for(let e of n){let n=e.trim();if(/^require\s*\(/.test(n)){r=!0;continue}if(n===`)`){r=!1;continue}if(n.includes(`// indirect`))continue;let i=r?/^(\S+)\s+(v\S+)/.exec(n):/^require\s+(\S+)\s+(v\S+)/.exec(n);i&&(t[i[1]]=i[2])}return t}async function Mn(e,t,n){let r=[{old:n,new:n},t,null,e];if(an(e))return r;let i=On(e),a=kn(e),o=async t=>{let n=An(e,t);return J(`${en}/${On(n)}/@latest`,{signal:AbortSignal.timeout(5e3)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},[s,c]=await Promise.all([J(`${en}/${i}/@latest`,{signal:AbortSignal.timeout(1e4)}),o(a+1)]);if(!s.ok)return r;let l,u;try{let e=await s.json();l=e.Version,u=e.Time}catch{return r}let d=l,f=u,p=e,m=e=>{d=e.Version,f=e.Time,p=e.path};if(c){m(c);let e=await o(a+2);if(e){m(e);for(let e=a+3;e<=a+100;e+=20){let t=Math.min(e+20,a+101),n=Array.from({length:t-e},(t,n)=>({result:o(e+n)})),r=await Promise.all(n.map(e=>e.result)),i=!1;for(let e of r){if(!e)break;m(e),i=!0}if(!i||r.some(e=>!e))break}}}return[{old:n,new:W(d),Time:f,...p===e?{}:{newPath:p},sameMajorNew:W(l),sameMajorTime:u},t,null,e]}function Nn(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}function Pn(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Fn({repository:e,homepage:t,info:n},r,i){n&&(e=n.project_urls.repository||n.project_urls.Repository||n.project_urls.repo||n.project_urls.Repo||n.project_urls.source||n.project_urls.Source||n.project_urls[`source code`]||n.project_urls[`Source code`]||n.project_urls[`Source Code`]||n.project_urls.homepage||n.project_urls.Homepage||`https://pypi.org/project/${i}/`);let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=Nn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${Pn(a)}/${e.directory}`)),a||t||``)}function In(e){let t=`https://${Un(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${Pn(t)}/${o.join(`/`)}`,n.toString()}else return t}async function Ln(e){console.info(H.json?JSON.stringify({message:e}):e),await X()}async function X(e,t){if(Cn(),e){let t=e.stack??e.message,n=e.cause;H.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(Ut(t)),n&&console.info(Ut(`Caused by: ${String(n)}`)))}i===`win32`&&Number(s?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),r(t||e?1:0)}function Rn(e={}){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!Y(n.oldOrig)&&(n.old=n.oldOrig),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;if(H.json){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`);t.results[n]||(t.results[n]={}),t.results[n][e]||(t.results[n][e]={}),t.results[n][e][a]=i}console.info(JSON.stringify(t))}else t&&console.info(Wn(e));return H[`error-on-outdated`]?t?2:0:H[`error-on-unchanged`]?t?0:2:0}function zn(e,t){i===`win32`&&g(e,0),_(e,t,i===`win32`?{flag:`r+`}:void 0)}function Bn(e,t,n){if(e===t)return e;let r=e.split(/\./),i=t.split(/\./),a=/^[0-9a-zA-Z-.]+$/,o=``;for(let e=0;e<r.length;e++)if(r[e]!==i[e]){a.test(r[e])?o+=n(r.slice(e).join(`.`)):o+=r[e].split(``).map(e=>a.test(e)?n(e):e).join(``)+n(`.${r.slice(e+1).join(`.`)}`.replace(/\.$/,``));break}else o+=`${r[e]}.`;return o.replace(/\.$/,``)}const Vn=e=>y(e).length;function Hn(e,t=` `){let n=``,r=Array(e[0].length).fill(0);for(let t of e)for(let[e,n]of t.entries()){let t=Vn(n);t>r[e]&&(r[e]=t)}for(let[i,a]of e.entries()){for(let[e,i]of a.entries()){e>0&&(n+=t);let o=` `.repeat(r[e]-Vn(i));n+=i+(e===a.length-1?``:o)}i<e.length-1&&(n+=`
33
33
  `)}return n}function Un(e){return/\/v[0-9]$/.test(e)?l(e):e}function Wn(e){let t=Object.keys(e).filter(t=>Object.keys(e[t]).length>0),n=t.length>1,r=[n?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],i=new Set;for(let a of t)for(let[t,o]of Object.entries(e[a])){let[e,s]=t.split(`\0`),c=`${a}|${s}`;if(i.has(c))continue;i.add(c);let l=[];l.push(a===`go`?Un(s):s),n&&l.push(a),l.push(Bn(o.old,o.new,Ut)),l.push(Bn(o.new,o.old,Wt)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return Hn(r)}function Gn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;if(a===`packageManager`){let r=RegExp(`"${L(a)}": *"${o}@${L(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${L(o)}": *"${L(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function Kn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`${L(o)} *= *"${L(s)}"`,`g`),`${o} = "${t[e].new}"`),n=n.replace(RegExp(`("${L(o)} *[<>=~]+ *)${L(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}function qn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r,c=t[e].new,l=kn(o),u=parseInt(c.split(`.`)[0]);if(l!==u&&u>1){let e=An(o,u);n=n.replace(RegExp(`${L(o)} +v${L(s)}`,`g`),`${e} v${c}`)}else n=n.replace(RegExp(`(${L(o)}) +v${L(s)}`,`g`),`$1 v${c}`)}return n}function Jn(e,t,n){let r=e.replace(Lt,t);if(n&&n!==e&&/^[\^~]/.test(r)){let e=n.substring(1).split(`.`),t=r.substring(1).split(`.`);e.length!==t.length&&(r=`${r[0]}${t.slice(0,e.length).join(`.`)}`)}if(n&&n!==e&&r.startsWith(`>=`)){let e=/^>=\s/.test(n)?`>= `:`>=`,t=n.replace(/^>=\s*/,``),i=r.replace(/^>=\s*/,``),a=t.split(`.`),o=i.split(`.`);a.length!==o.length&&(r=`${e}${o.slice(0,a.length).join(`.`)}`)}return r}function Yn(e){let t=pe(e);return t?!!t.prerelease.length:!1}function Xn(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function Z(e){try{return me(e)?.version??``}catch{return``}}function Zn(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=Z(n);if(!c)return c;i=Xn(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let l=0,u=c;for(let n of t){let t=pe(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!De(c,s))continue;let d=k(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))ge(Z(c),u)&&(u=c);else{let t=new Date(e.time[n]).getTime();t>=0&&t>l&&(u=c,l=t)}}return u||null}function Qn(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s}){if(n===`*`||n.includes(`||`))return null;let c=[];if(t===`pypi`)c=Object.keys(e.releases).filter(e=>O(e));else if(t===`npm`)c=Object.keys(e.versions).filter(e=>O(e));else if(t===`go`){let t=Z(n);if(!t)return null;let r=Z(e.new);if(r){let n=k(t,r);if(n&&o.has(n))return e.new}let i=Z(e.sameMajorNew);if(i){let n=k(t,i);if(n&&o.has(n))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let l=Zn(e,c,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!l)return null;if(r)return l;{let r=``,c=``;t===`pypi`?(c=e.info.version,r=Z(e.info.version)):r=e[`dist-tags`].latest;let u=Z(n),d=Xn(n),f=Yn(l),p=Yn(r),m=he(l,u);if(!i&&a||d&&f||i&&!m&&d&&!f||d&&!f&&m)return l;if(d&&!f&&!m)return null;let h=k(u,r);return h&&h!==`prerelease`&&!o.has(h.replace(/^pre/,``))||i&&Yn(r)?l:_e(r,u)&&!p?Yt===!0||G(e.name,Yt)?r:null:!d&&p&&!a||s&&!De(r,s)?l:c||r}}function $n(e){let t={headers:{"accept-encoding":`gzip, deflate, br`}},r=n.UPDATES_GITHUB_API_TOKEN||n.GITHUB_API_TOKEN||n.GH_TOKEN||n.GITHUB_TOKEN||n.HOMEBREW_GITHUB_API_TOKEN;return r&&(t.headers={...t.headers,Authorization:`Bearer ${r}`}),J(e,t)}async function er(e,t){let n=await $n(`${Zt}/repos/${e}/${t}/commits`);if(!n?.ok)return{hash:``,commit:{}};let{sha:r,commit:i}=(await n.json())[0];return{hash:r,commit:i}}async function tr(e,t){let n=await $n(`${Zt}/repos/${e}/${t}/git/refs/tags`);return n?.ok?(await n.json()).map(e=>e.ref.replace(/^refs\/tags\//,``)):[]}function nr(e,t,n){let r=W(t);if(!O(r))return null;if(n){let n=t,i=W(t);for(let t of e){let e=W(t);O(e)&&(!n||he(e,i))&&(n=t,i=e)}if(ve(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=W(t);if(!O(n))return null;if(ve(r,n))return t}return null}async function rr(e,t,n){let r=t.old.replace(Nt,``),[i,a,o,s]=Pt.exec(r)||[];if(!a||!o||!s)return null;if(Ft.test(s)){let{hash:n,commit:r}=await er(a,o);if(!n)return null;let i=r?.committer?.date??r?.author?.date,c=n.substring(0,s.length);if(s!==c)return{key:e,newRange:t.old.replace(s,c),user:a,repo:o,oldRef:s,newRef:c,newDate:i}}else{let t=nr(await tr(a,o),s,n);if(t)return{key:e,newRange:t,user:a,repo:o,oldRef:s,newRef:t}}return null}function ir(e){return e.replace(/-.*/,``)}function ar(e){let t=e.match(It);return t?.length===1?e.replace(It,Z(t[0])):e}function or(e,t){return RegExp(`^${L(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function sr(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):or(e,n):e instanceof RegExp?e:or(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(sr(n,!0,!1));return t}return e}function cr(e,t){let n=new Set;for(let t of e||[])n.add(sr(t,!0,!0));for(let e of t||[])n.add(sr(e,!1,!0));return n}function $(e,t,n,r,i){if(i===`engines`&&Ie.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;for(let t of r)if(t.test(e))return!1;for(let t of n)if(t.test(e))return!0;return!n.size}function lr(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function ur(e){let n=new Set,r=new Set;if(e)for(let t of e){let e;try{e=m(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}if(e?.isFile()){let e=d(t);n.add(e),r.add(e)}else if(e?.isDirectory())for(let e of Object.keys(zt)){let r=u(t,e),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(d(r))}else throw Error(`${t} is neither a file nor directory`)}else for(let e of Object.keys(zt)){let r=un(e,t());r&&n.add(d(r))}return[n,r]}async function dr(e){let t=[];for(let e of[``,`.config/`])for(let n of[`js`,`ts`,`mjs`,`mts`])t.push(`${e}updates${e?``:`.config`}.${n}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=u(e,...t.split(`/`)),r=f(n);try{p(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return n}async function fr(){for(let e of[o,a])e?._handle?.setBlocking?.(!0);let e=typeof H.sockets==`number`?H.sockets:96,{help:t,version:n,file:r,types:i,update:s}=H;t&&(o.write(`usage: updates [options]
34
34
 
35
35
  Options:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.3.0",
3
+ "version": "17.3.2",
4
4
  "description": " Flexible dependency update tool",
5
5
  "author": "silverwind",
6
6
  "repository": "silverwind/updates",
@@ -20,7 +20,7 @@
20
20
  "@types/rc": "1.2.4",
21
21
  "@typescript/native-preview": "7.0.0-dev.20260203.1",
22
22
  "eslint": "9.39.2",
23
- "eslint-config-silverwind": "120.0.1",
23
+ "eslint-config-silverwind": "120.1.2",
24
24
  "nano-spawn": "2.0.0",
25
25
  "p-map": "7.0.4",
26
26
  "rc": "1.2.8",
@@ -34,4 +34,4 @@
34
34
  "vitest": "4.0.18",
35
35
  "vitest-config-silverwind": "10.6.2"
36
36
  }
37
- }
37
+ }