updates 17.5.10 → 17.6.0

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
@@ -10,6 +10,7 @@
10
10
  - `package.json` - supports all npm package managers
11
11
  - `pyproject.toml` - supports `uv` and `poetry`
12
12
  - `go.mod` - supports go dependencies
13
+ - `.{github,gitea,forgejo}` - supports actions
13
14
 
14
15
  # Usage
15
16
 
@@ -42,7 +43,8 @@ npx updates -u && npm i
42
43
  |`-U, --error-on-unchanged`|Exit with code 0 when updates are available and 2 when not|
43
44
  |`-r, --registry <url>`|Override npm registry URL|
44
45
  |`-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
+ |`-T, --timeout <ms>`|Network request timeout in ms (go probes use half). Default: 5000|
47
+ |`-M, --modes <mode,...>`|Which modes to enable. Either `npm`, `pypi`, `go`, `actions`. Default: `npm,pypi,go,actions`|
46
48
  |`-j, --json`|Output a JSON object|
47
49
  |`-n, --no-color`|Disable color output|
48
50
  |`-v, --version`|Print the version|
@@ -81,4 +83,20 @@ export default {
81
83
 
82
84
  CLI arguments have precedence over options in the config file. `include`, `exclude`, and `pin` options are merged.
83
85
 
86
+ ## Environment Variables
87
+
88
+ |Variable|Description|
89
+ |:-|:-|
90
+ |`UPDATES_FORGE_TOKENS`|Comma-separated list of `host:token` pairs for authenticating against forge APIs (e.g. `github.com:ghp_xxx,gitea.example.com:tok_xxx`)|
91
+ |`UPDATES_GITHUB_API_TOKEN`|GitHub API token for authenticating forge API requests|
92
+ |`GITHUB_API_TOKEN`|Fallback GitHub API token|
93
+ |`GH_TOKEN`|Fallback GitHub API token|
94
+ |`GITHUB_TOKEN`|Fallback GitHub API token|
95
+ |`HOMEBREW_GITHUB_API_TOKEN`|Fallback GitHub API token|
96
+ |`GOPROXY`|Go module proxy URL. Default: `https://proxy.golang.org,direct`|
97
+ |`GONOPROXY`|Comma-separated list of Go module patterns to fetch directly, bypassing the proxy|
98
+ |`GOPRIVATE`|Fallback for `GONOPROXY` when not set|
99
+
100
+ Token resolution order for forge APIs: `UPDATES_FORGE_TOKENS` (matched by hostname) > `UPDATES_GITHUB_API_TOKEN` > `GITHUB_API_TOKEN` > `GH_TOKEN` > `GITHUB_TOKEN` > `HOMEBREW_GITHUB_API_TOKEN`.
101
+
84
102
  © [silverwind](https://github.com/silverwind), distributed under BSD licence
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- //#region index.d.ts
1
+ //#region modes/shared.d.ts
2
2
  type Config = {
3
3
  /** Array of packages to include */include?: Array<string | RegExp>; /** Array of packages to exclude */
4
4
  exclude?: Array<string | RegExp>; /** Array of package types to use */
@@ -7,5 +7,28 @@ type Config = {
7
7
  cooldown?: number; /** Pin packages to semver ranges */
8
8
  pin?: Record<string, string>;
9
9
  };
10
+ type Dep = {
11
+ old: string;
12
+ new: string;
13
+ oldPrint?: string;
14
+ newPrint?: string;
15
+ oldOrig?: string;
16
+ info?: string;
17
+ age?: string;
18
+ date?: string;
19
+ };
20
+ type Deps = {
21
+ [name: string]: Dep;
22
+ };
23
+ type DepsByMode = {
24
+ [mode: string]: Deps;
25
+ };
26
+ type Output = {
27
+ results: {
28
+ [mode: string]: {
29
+ [type: string]: Deps;
30
+ };
31
+ };
32
+ };
10
33
  //#endregion
11
- export { Config };
34
+ export { type Config, type Dep, type Deps, type DepsByMode, type Output };
package/dist/index.js CHANGED
@@ -1,31 +1,31 @@
1
1
  #!/usr/bin/env node
2
- import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,versions as o}from"node:process";import{basename as s,dirname as c,join as l,resolve as u}from"node:path";import{pathToFileURL as d}from"node:url";import{accessSync as f,globSync as p,lstatSync as m,readFileSync as h,statSync as g,truncateSync as _,writeFileSync as v}from"node:fs";import{execFile as y}from"node:child_process";import{parseArgs as b,promisify as ee,stripVTControlCharacters as te,styleText as x}from"node:util";import S from"node:dns";var ne=Object.defineProperty,C=(e,t)=>()=>(e&&(t=e(e=0)),t),re=(e,t)=>{let n={};for(var r in e)ne(n,r,{get:e[r],enumerable:!0});return t||ne(n,Symbol.toStringTag,{value:`Module`}),n};async function ie(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)!==ae&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===ae&&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 ae=Symbol(`skip`);var oe=`17.5.10`;const se=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,ce=new Map;function w(e){if(typeof e!=`string`)return null;let t=ce.get(e);if(t!==void 0)return t;let n=se.exec(e.trim());if(!n)return ce.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return ce.set(e,s),s}function le(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 ue(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function T(e,t){let n=ue(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=le(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function E(e){return w(e)?.version??null}function de(e){return w(e)}const fe=new Map,pe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function me(e){if(typeof e!=`string`)return null;let t=fe.get(e);if(t!==void 0)return t;let n=pe.exec(e);if(!n)return fe.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return fe.set(e,r),r}function D(e,t){let n=w(e),r=w(t);if(!n||!r||n.version===r.version)return null;let i=T(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(ue(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=w(e),r=w(t);return!n||!r?!1:T(n,r)>0}function ge(e,t){let n=w(e),r=w(t);return!n||!r?!1:T(n,r)>=0}function _e(e,t){let n=w(e),r=w(t);return!n||!r?!1:T(n,r)<0}function ve(e,t){let n=w(e),r=w(t);return!n||!r?!0:T(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=w(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function be(e,t){let n=T(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 O(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 <${O(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${O(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 <${O(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${O(a,s+1,0)}`:`>=${a}.${s}.0 <${O(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${O(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${O(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${O(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?`<${O(p+1,0,0)}`:`<${O(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 <${O(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 <${O(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 <${O(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 <${O(o+1,0,0)}`}),e)}const k=new Map;function Te(e){let t=k.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=Ce(t),t=Se(t),t=xe(t),t=we(t),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=ye(t);if(!n)return k.set(e,null),null;i.push(n)}if(i.length===0)return k.set(e,null),null;r.push(i)}let i=r.length?r:null;return k.set(e,i),i}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=w(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`];function Be(){let e=new Map,t=new Map,n=S.lookup;S.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(S,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}function Ve(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||e.startsWith(`#`)||e.startsWith(`;`))continue;let r=e.indexOf(`=`);if(r===-1)continue;let i=e.slice(r+1).trim();i.length>=2&&(i.startsWith(`"`)&&i.endsWith(`"`)||i.startsWith(`'`)&&i.endsWith(`'`))&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function He(e){try{return Ve(h(e,`utf-8`))}catch{return}}function Ue(t){let n=e();for(;;){let e=l(n,t);try{return g(e),e}catch{}let r=c(n);if(r===n)break;n=r}}function We(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function Ge(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=He(e);t&&(o.push(t),s.push(e))}i||(c(l(`/etc`,e,`config`)),c(l(`/etc`,`${e}rc`))),a&&(c(l(a,`.config`,e,`config`)),c(l(a,`.config`,e)),c(l(a,`.${e}`,`config`)),c(l(a,`.${e}rc`))),c(Ue(`.${e}rc`));let u=We(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}function Ke(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}function qe(e,t,n){let r=e.split(/\r\n|\n|\r/g),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
2
+ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,versions as o}from"node:process";import{basename as s,dirname as c,join as l,resolve as u}from"node:path";import{pathToFileURL as d}from"node:url";import{accessSync as f,globSync as p,lstatSync as m,readFileSync as h,readdirSync as g,statSync as _,truncateSync as v,writeFileSync as y}from"node:fs";import{parseArgs as b,promisify as x,stripVTControlCharacters as S,styleText as C}from"node:util";import ee from"node:dns";import{execFile as te}from"node:child_process";var ne=Object.defineProperty,w=(e,t)=>()=>(e&&(t=e(e=0)),t),re=(e,t)=>{let n={};for(var r in e)ne(n,r,{get:e[r],enumerable:!0});return t||ne(n,Symbol.toStringTag,{value:`Module`}),n};async function ie(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)!==T&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===T&&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 T=Symbol(`skip`),ae=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,E=new Map;function D(e){if(typeof e!=`string`)return null;let t=E.get(e);if(t!==void 0)return t;let n=ae.exec(e.trim());if(!n)return E.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return E.set(e,s),s}function oe(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 se(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function O(e,t){let n=se(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=oe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function k(e){return D(e)?.version??null}function ce(e){return D(e)}const le=new Map,ue=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function de(e){if(typeof e!=`string`)return null;let t=le.get(e);if(t!==void 0)return t;let n=ue.exec(e);if(!n)return le.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return le.set(e,r),r}function fe(e,t){let n=D(e),r=D(t);if(!n||!r||n.version===r.version)return null;let i=O(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(se(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 pe(e,t){let n=D(e),r=D(t);return!n||!r?!1:O(n,r)>0}function me(e,t){let n=D(e),r=D(t);return!n||!r?!1:O(n,r)>=0}function he(e,t){let n=D(e),r=D(t);return!n||!r?!1:O(n,r)<0}function ge(e,t){let n=D(e),r=D(t);return!n||!r?!0:O(n,r)!==0}function _e(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=D(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function ve(e,t){let n=O(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 ye(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 be(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 xe(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 Se(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)}const Ce=new Map;function we(e){let t=Ce.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=xe(t),t=be(t),t=ye(t),t=Se(t),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=_e(t);if(!n)return Ce.set(e,null),null;i.push(n)}if(i.length===0)return Ce.set(e,null),null;r.push(i)}let i=r.length?r:null;return Ce.set(e,i),i}function Te(e,t){for(let n of t)if(!ve(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 Ee(e,t){let n=D(e);if(!n)return!1;let r=we(t);if(!r)return!1;for(let e of r)if(e.length===0||Te(n,e))return!0;return!1}function De(e){if(typeof e!=`string`)return null;try{return we(e)?e:null}catch{return null}}const Oe=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],ke={"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`},Ae={sec:`second`,min:`minute`};function je(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Me(e,{now:t,noAffix:n=!1,times:r=Oe,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=ke,longUnits:l=!1}={}){let u=je(e);if(t=t===void 0?Date.now():je(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&&Ae[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 Ne(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r&&!/\d/.test(e[t]);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}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`,`replace`];function Be(){let e=new Map,t=new Map,n=ee.lookup;ee.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(ee,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}const Ve=`17.6.0`,He=5e3,j=e=>e.replace(/^v/,``),M=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),N=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function Ue(e,t){return{headers:{"user-agent":`updates/${Ve}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function We(e,t,n,r,i,a,o){n&&r&&i&&r(`${i(`fetch`)} ${e}`);let s=await fetch(e,t);return n&&r&&a&&o&&r(`${s.ok?a(s.status):o(s.status)} ${e}`),s}function Ge(e){let t=ce(e);return t?!!t.prerelease.length:!1}function Ke(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function P(e){try{return de(e)?.version??``}catch{return``}}function qe(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=P(n);if(!c)return c;i=Ke(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=ce(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!Ee(c,s))continue;let d=fe(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))me(P(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function Je(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>k(e));else if(t===`npm`)d=Object.keys(e.versions).filter(e=>k(e));else if(t===`go`){let t=P(n);if(!t)return null;let r=a||Ke(n),s=e=>Ge(e)&&(!r||i),c=P(e.new);if(c&&!u(e.new)&&!s(e.new)){let n=fe(t,c);if(n&&o.has(n))return e.new}let l=P(e.sameMajorNew);if(l&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=fe(t,l);if(n&&o.has(n))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=qe(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=P(e.info.version)):r=e[`dist-tags`].latest;let d=P(n),p=Ke(n),m=Ge(f),h=Ge(r),g=pe(f,d);if(!i&&a||p&&m||i&&!g&&p&&!m||p&&!m&&g)return f;if(p&&!m&&!g)return null;let _=fe(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&Ge(r)?f:he(r,d)&&!h?c===!0||l(e.name,c)?r:null:!p&&h&&!a||s&&!Ee(r,s)?f:u||r}}const Ye=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&Ye.set(e.substring(0,t),e.substring(t+1))}function Xe(e){try{let t=Ye.get(new URL(e).hostname);if(t)return t}catch{}return t.UPDATES_GITHUB_API_TOKEN||t.GITHUB_API_TOKEN||t.GH_TOKEN||t.GITHUB_TOKEN||t.HOMEBREW_GITHUB_API_TOKEN}function F(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=Xe(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function Ze(e,t,n){let r=j(t);if(!k(r))return null;if(n){let n=t,i=j(t);for(let t of e){let e=j(t);k(e)&&(!n||pe(e,i))&&(n=t,i=e)}if(ge(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=j(t);if(!k(n))return null;if(ge(r,n))return t}return null}function Qe(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 $e(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function et({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=Qe(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${$e(a)}/${e.directory}`)),a||t||``)}function tt(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||e.startsWith(`#`)||e.startsWith(`;`))continue;let r=e.indexOf(`=`);if(r===-1)continue;let i=e.slice(r+1).trim();i.length>=2&&(i.startsWith(`"`)&&i.endsWith(`"`)||i.startsWith(`'`)&&i.endsWith(`'`))&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function nt(e){try{return tt(h(e,`utf-8`))}catch{return}}function rt(t){let n=e();for(;;){let e=l(n,t);try{return _(e),e}catch{}let r=c(n);if(r===n)break;n=r}}function it(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function at(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=nt(e);t&&(o.push(t),s.push(e))}i||(c(l(`/etc`,e,`config`)),c(l(`/etc`,`${e}rc`))),a&&(c(l(a,`.config`,e,`config`)),c(l(a,`.config`,e)),c(l(a,`.${e}`,`config`)),c(l(a,`.${e}rc`))),c(rt(`.${e}rc`));let u=it(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const ot=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,st=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,ct=/^[0-9a-f]{7,}$/i,lt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,ut=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,dt=`https://registry.npmjs.org`;let I=null;const ft=new Map;function pt(){return I||at(`npm`,{registry:dt})}function mt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function ht(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:mt(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(mt(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:mt(a),type:`Basic`}}function L(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=ht(`//${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:mt(i),type:`Basic`}}function gt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function _t(e,t){I||=pt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=ft.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:L(t,I),registry:t};else{let e=N(gt(n,I));if(e!==t)try{let n=L(e,I);a=n?.token?{auth:n,registry:e}:{auth:L(t,I),registry:t}}catch{a={auth:L(t,I),registry:t}}else a={auth:L(t,I),registry:t}}return ft.set(r,a),a}async function vt(e,t,n,r,i){I||=pt();let{auth:a,registry:o}=_t(e,N((typeof r.registry==`string`?r.registry:!1)||n.registry||I.registry||dt)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...Ue(a?.type,a?.token)});if(l?.ok)return[await l.json(),t,o,e];throw l?.status&&l?.statusText?Error(`Received ${l.status} ${l.statusText} from ${c}`):Error(`Unable to fetch ${e} from ${o}`)}function R(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function yt(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 bt(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}else if(s?.status&&s?.statusText)throw Error(`Received ${s.status} ${s.statusText} from ${o}`);else throw Error(`Unable to fetch ${e} from JSR`)}function xt(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(`"${M(a)}": *"${o}@${M(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${M(o)}": *"${M(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function St(e,t,n){let r=e.replace(ut,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 Ct(e){let t=e.match(lt);return t?.length===1?e.replace(lt,P(t[0])):e}async function wt(e,t,n){try{let r=await F(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function Tt(e,t,n){return(await Dt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}function Et(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Dt(e,t,n,r){try{let i=await F(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=Et(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>F(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...Et(await e.json()))}return a}catch{return[]}}async function Ot(e,t,n,r){let i=t.old.replace(ot,``),[a,o,s,c]=st.exec(i)||[];if(!o||!s||!c)return null;if(ct.test(c)){let{hash:n,commit:i}=await wt(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=Ze(await Tt(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function kt(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];throw i?.status&&i?.statusText?Error(`Received ${i.status} ${i.statusText} from ${r}`):Error(`Unable to fetch ${e} from ${n.pypiApiUrl}`)}function At(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(`${M(o)} *= *"${M(s)}"`,`g`),`${o} = "${t[e].new}"`),n=n.replace(RegExp(`("${M(o)} *[<>=~]+ *)${M(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const jt=x(te);function Mt(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return e.endsWith(`/`)?e.substring(0,e.length-1):e}return`https://proxy.golang.org`}function Nt(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Pt(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Ft(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function It(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function z(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Lt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Rt(e){let t={},n={},r=new Set,i=e.split(/\r?\n/),a=!1,o=!1;for(let e of i){let i=e.trim();if(/^require\s*\(/.test(i)){a=!0;continue}if(/^replace\s*\(/.test(i)){o=!0;continue}if(i===`)`){a=!1,o=!1;continue}if(i.includes(`// indirect`))continue;if(o||/^replace\s+/.test(i)){let e=o?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i);if(e){let[,t,i,a]=e;!i.startsWith(`./`)&&!i.startsWith(`/`)&&!i.startsWith(`../`)&&(n[i]=a,r.add(t))}continue}let s=a?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);s&&(t[s[1]]=s[2])}for(let e of r)delete t[e];return{deps:t,replace:n}}async function zt(e,n,r,i,a){let o=[{name:e,old:r,new:r},n,null,e],s=It(e),c=async(e,n)=>{try{let{stdout:r}=await jt(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},[l,u]=await Promise.all([c(e,a.fetchTimeout),c(z(e,s+1),a.goProbeTimeout)]);if(!l)return o;let d=l.Version,f=l.Time,p=d,m=f,h=e,g=e=>{p=e.Version,m=e.Time,h=e.path};if(u){g(u);let t=await c(z(e,s+2),a.goProbeTimeout);if(t){g(t);for(let t=s+3;t<=s+100;t+=20){let n=Math.min(t+20,s+101),r=Array.from({length:n-t},(n,r)=>c(z(e,t+r),a.goProbeTimeout)),i=await Promise.all(r),o=!1;for(let e of i){if(!e)break;g(e),o=!0}if(!o||i.some(e=>!e))break}}}return[{name:e,old:r,new:j(p),Time:m,...h===e?{}:{newPath:h},sameMajorNew:j(d),sameMajorTime:f},n,null,e]}async function Bt(e,t,n,r,i,a){let o=[{name:e,old:n,new:n},t,null,e];if(Pt(e,a))return zt(e,t,n,r,i);let s=Ft(e),c=It(e),l=async t=>{let n=z(e,t);return i.doFetch(`${i.goProxyUrl}/${Ft(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${s}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),l(c+1)]);if(!u.ok)return o;let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return o}let m=f,h=p,g=e,_=e=>{m=e.Version,h=e.Time,g=e.path};if(d){_(d);let e=await l(c+2);if(e){_(e);for(let e=c+3;e<=c+100;e+=20){let t=Math.min(e+20,c+101),n=Array.from({length:t-e},(t,n)=>({result:l(e+n)})),r=await Promise.all(n.map(e=>e.result)),i=!1;for(let e of r){if(!e)break;_(e),i=!0}if(!i||r.some(e=>!e))break}}}return[{name:e,old:n,new:j(m),Time:h,...g===e?{}:{newPath:g},sameMajorNew:j(f),sameMajorTime:p},t,null,e]}function Vt(e,t){let n=M(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function Ht(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${M(s)}\\s+)v${M(c)}`,`g`),`$1v${l}`);continue}let u=It(s),d=parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=z(s,d);n=n.replace(RegExp(`${M(s)} +v${M(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${M(s)}) +v${M(c)}`,`g`),`$1 v${l}`);n=Vt(n,s)}return[n,r]}function Ut(e,t,n){if(!Object.keys(t).length)return;let r=p(`**/*.go`,{cwd:e});for(let i of r){let r=l(e,i),a=h(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${M(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function Wt(e){let t=`https://${Gt(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${$e(t)}/${o.join(`/`)}`,n.toString()}else return t}function Gt(e){return/\/v[0-9]$/.test(e)?c(e):e}function Kt(e){return e.replace(/-.*/,``)}const qt=/^\s*-?\s*uses:\s*['"]?([^'"#\s]+)['"]?/gm,Jt=/^[0-9a-f]{7,}$/i;function Yt(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:Jt.test(o)}}function Xt(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}function Zt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Qt(e,t,n,r){try{let i=await F(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=Zt(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>F(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...Zt(await e.json()))}return a}catch{return[]}}async function $t(e,t,n,r,i){try{let a=await F(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function en(e,t){let n=t.startsWith(`v`),r=ce(j(e)),i=j(t).split(`.`).length,a;return a=r?i===1?String(r.major):i===2?`${r.major}.${r.minor}`:r.version:j(e),n?`v${a}`:a}function tn(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${M(e)}@${M(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function nn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function rn(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}function an(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}function on(e,t,n){let r=e.split(/\r\n|\n|\r/g),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
3
3
  `,e===t&&(i+=` `.repeat(a+n+2),i+=`^
4
- `))}return i}var A,j=C((()=>{A=class extends Error{line;column;codeblock;constructor(e,t){let[n,r]=Ke(t.toml,t.ptr),i=qe(t.toml,n,r);super(`Invalid TOML document: ${e}\n\n${i}`,t),this.line=n,this.column=r,this.codeblock=i}}}));function Je(e,t){let n=0;for(;e[t-++n]===`\\`;);return--n&&n%2}function Ye(e,t=0,n=e.length){let r=e.indexOf(`
5
- `,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}function Xe(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
4
+ `))}return i}var B,V=w((()=>{B=class extends Error{line;column;codeblock;constructor(e,t){let[n,r]=an(t.toml,t.ptr),i=on(t.toml,n,r);super(`Invalid TOML document: ${e}\n\n${i}`,t),this.line=n,this.column=r,this.codeblock=i}}}));function sn(e,t){let n=0;for(;e[t-++n]===`\\`;);return--n&&n%2}function cn(e,t=0,n=e.length){let r=e.indexOf(`
5
+ `,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}function ln(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
6
6
  `)return n;if(r===`\r`&&e[n+1]===`
7
- `)return n+1;if(r<` `&&r!==` `||r===``)throw new A(`control characters are not allowed in comments`,{toml:e,ptr:t})}return e.length}function M(e,t,n,r){let i;for(;(i=e[t])===` `||i===` `||!n&&(i===`
7
+ `)return n+1;if(r<` `&&r!==` `||r===``)throw new B(`control characters are not allowed in comments`,{toml:e,ptr:t})}return e.length}function H(e,t,n,r){let i;for(;(i=e[t])===` `||i===` `||!n&&(i===`
8
8
  `||i===`\r`&&e[t+1]===`
9
- `);)t++;return r||i!==`#`?t:M(e,Xe(e,t),n)}function Ze(e,t,n,r,i=!1){if(!r)return t=Ye(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let t=e[a];if(t===`#`)a=Ye(e,a);else if(t===n)return a+1;else if(t===r||i&&(t===`
9
+ `);)t++;return r||i!==`#`?t:H(e,ln(e,t),n)}function un(e,t,n,r,i=!1){if(!r)return t=cn(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let t=e[a];if(t===`#`)a=cn(e,a);else if(t===n)return a+1;else if(t===r||i&&(t===`
10
10
  `||t===`\r`&&e[a+1]===`
11
- `))return a}throw new A(`cannot find end of structure`,{toml:e,ptr:t})}function Qe(e,t){let n=e[t],r=n===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):n;t+=r.length-1;do t=e.indexOf(r,++t);while(t>-1&&n!==`'`&&Je(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}var $e=C((()=>{j()})),et,tt,nt=C((()=>{et=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,tt=class e extends Date{#e=!1;#t=!1;#n=null;constructor(e){let t=!0,n=!0,r=`Z`;if(typeof e==`string`){let i=e.match(et);i?(i[1]||(t=!1,e=`0000-01-01T${e}`),n=!!i[2],n&&e[10]===` `&&(e=e.replace(` `,`T`)),i[2]&&+i[2]>23?e=``:(r=i[3]||null,e=e.toUpperCase(),!r&&n&&(e+=`Z`))):e=``}super(e),isNaN(this.getTime())||(this.#e=t,this.#t=n,this.#n=r)}isDateTime(){return this.#e&&this.#t}isLocal(){return!this.#e||!this.#t||!this.#n}isDate(){return this.#e&&!this.#t}isTime(){return this.#t&&!this.#e}isValid(){return this.#e||this.#t}toISOString(){let e=super.toISOString();if(this.isDate())return e.slice(0,10);if(this.isTime())return e.slice(11,23);if(this.#n===null)return e.slice(0,-1);if(this.#n===`Z`)return e;let t=this.#n.slice(1,3)*60+ +this.#n.slice(4,6);return t=this.#n[0]===`-`?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#n}static wrapAsOffsetDateTime(t,n=`Z`){let r=new e(t);return r.#n=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#n=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#t=!1,n.#n=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=!1,n.#n=null,n}}}));function rt(e,t=0,n=e.length){let r=e[t]===`'`,i=e[t++]===e[t]&&e[t]===e[t+1];i&&(n-=2,e[t+=2]===`\r`&&t++,e[t]===`
11
+ `))return a}throw new B(`cannot find end of structure`,{toml:e,ptr:t})}function dn(e,t){let n=e[t],r=n===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):n;t+=r.length-1;do t=e.indexOf(r,++t);while(t>-1&&n!==`'`&&sn(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}var fn=w((()=>{V()})),pn,mn,hn=w((()=>{pn=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,mn=class e extends Date{#e=!1;#t=!1;#n=null;constructor(e){let t=!0,n=!0,r=`Z`;if(typeof e==`string`){let i=e.match(pn);i?(i[1]||(t=!1,e=`0000-01-01T${e}`),n=!!i[2],n&&e[10]===` `&&(e=e.replace(` `,`T`)),i[2]&&+i[2]>23?e=``:(r=i[3]||null,e=e.toUpperCase(),!r&&n&&(e+=`Z`))):e=``}super(e),isNaN(this.getTime())||(this.#e=t,this.#t=n,this.#n=r)}isDateTime(){return this.#e&&this.#t}isLocal(){return!this.#e||!this.#t||!this.#n}isDate(){return this.#e&&!this.#t}isTime(){return this.#t&&!this.#e}isValid(){return this.#e||this.#t}toISOString(){let e=super.toISOString();if(this.isDate())return e.slice(0,10);if(this.isTime())return e.slice(11,23);if(this.#n===null)return e.slice(0,-1);if(this.#n===`Z`)return e;let t=this.#n.slice(1,3)*60+ +this.#n.slice(4,6);return t=this.#n[0]===`-`?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#n}static wrapAsOffsetDateTime(t,n=`Z`){let r=new e(t);return r.#n=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#n=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#t=!1,n.#n=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=!1,n.#n=null,n}}}));function gn(e,t=0,n=e.length){let r=e[t]===`'`,i=e[t++]===e[t]&&e[t]===e[t+1];i&&(n-=2,e[t+=2]===`\r`&&t++,e[t]===`
12
12
  `&&t++);let a=0,o,s=``,c=t;for(;t<n-1;){let n=e[t++];if(n===`
13
13
  `||n===`\r`&&e[t]===`
14
- `){if(!i)throw new A(`newlines are not allowed in strings`,{toml:e,ptr:t-1})}else if(n<` `&&n!==` `||n===``)throw new A(`control characters are not allowed in strings`,{toml:e,ptr:t-1});if(o){if(o=!1,n===`x`||n===`u`||n===`U`){let r=e.slice(t,t+=n===`x`?2:n===`u`?4:8);if(!ct.test(r))throw new A(`invalid unicode escape`,{toml:e,ptr:a});try{s+=String.fromCodePoint(parseInt(r,16))}catch{throw new A(`invalid unicode escape`,{toml:e,ptr:a})}}else if(i&&(n===`
15
- `||n===` `||n===` `||n===`\r`)){if(t=M(e,t-1,!0),e[t]!==`
16
- `&&e[t]!==`\r`)throw new A(`invalid escape: only line-ending whitespace may be escaped`,{toml:e,ptr:a});t=M(e,t)}else if(n in lt)s+=lt[n];else throw new A(`unrecognized escape sequence`,{toml:e,ptr:a});c=t}else !r&&n===`\\`&&(a=t-1,o=!0,s+=e.slice(c,a))}return s+e.slice(c,n-1)}function it(e,t,n,r){if(e===`true`)return!0;if(e===`false`)return!1;if(e===`-inf`)return-1/0;if(e===`inf`||e===`+inf`)return 1/0;if(e===`nan`||e===`+nan`||e===`-nan`)return NaN;if(e===`-0`)return r?0n:0;let i=at.test(e);if(i||ot.test(e)){if(st.test(e))throw new A(`leading zeroes are not allowed`,{toml:t,ptr:n});e=e.replace(/_/g,``);let a=+e;if(isNaN(a))throw new A(`invalid number`,{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(a))&&!r)throw new A(`integer value cannot be represented losslessly`,{toml:t,ptr:n});(i||r===!0)&&(a=BigInt(e))}return a}let a=new tt(e);if(!a.isValid())throw new A(`invalid value`,{toml:t,ptr:n});return a}var at,ot,st,ct,lt,ut=C((()=>{$e(),nt(),j(),at=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,ot=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,st=/^[+-]?0[0-9_]/,ct=/^[0-9a-f]{2,8}$/i,lt={b:`\b`,t:` `,n:`
17
- `,f:`\f`,r:`\r`,e:`\x1B`,'"':`"`,"\\":`\\`}}));function dt(e,t,n){let r=e.slice(t,n),i=r.indexOf(`#`);return i>-1&&(Xe(e,i),r=r.slice(0,i)),[r.trimEnd(),i]}function ft(e,t,n,r,i){if(r===0)throw new A(`document contains excessively nested structures. aborting.`,{toml:e,ptr:t});let a=e[t];if(a===`[`||a===`{`){let[o,s]=a===`[`?gt(e,t,r,i):ht(e,t,r,i);if(n){if(s=M(e,s),e[s]===`,`)s++;else if(e[s]!==n)throw new A(`expected comma or end of structure`,{toml:e,ptr:s})}return[o,s]}let o;if(a===`"`||a===`'`){o=Qe(e,t);let r=rt(e,t,o);if(n){if(o=M(e,o),e[o]&&e[o]!==`,`&&e[o]!==n&&e[o]!==`
18
- `&&e[o]!==`\r`)throw new A(`unexpected character encountered`,{toml:e,ptr:o});o+=+(e[o]===`,`)}return[r,o]}o=Ze(e,t,`,`,n);let s=dt(e,t,o-+(e[o-1]===`,`));if(!s[0])throw new A(`incomplete key-value declaration: no value specified`,{toml:e,ptr:t});return n&&s[1]>-1&&(o=M(e,t+s[1]),o+=+(e[o]===`,`)),[it(s[0],e,t,i),o]}var pt=C((()=>{ut(),vt(),$e(),j()}));function mt(e,t,n=`=`){let r=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new A(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});do{let o=e[t=++r];if(o!==` `&&o!==` `)if(o===`"`||o===`'`){if(o===e[t+1]&&o===e[t+2])throw new A(`multiline strings are not allowed in keys`,{toml:e,ptr:t});let s=Qe(e,t);if(s<0)throw new A(`unfinished string encountered`,{toml:e,ptr:t});r=e.indexOf(`.`,s);let c=e.slice(s,r<0||r>a?a:r),l=Ye(c);if(l>-1)throw new A(`newlines are not allowed in keys`,{toml:e,ptr:t+r+l});if(c.trimStart())throw new A(`found extra tokens after the string part`,{toml:e,ptr:s});if(a<s&&(a=e.indexOf(n,s),a<0))throw new A(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});i.push(rt(e,t,s))}else{r=e.indexOf(`.`,t);let n=e.slice(t,r<0||r>a?a:r);if(!_t.test(n))throw new A(`only letter, numbers, dashes and underscores are allowed in keys`,{toml:e,ptr:t});i.push(n.trimEnd())}}while(r+1&&r<a);return[i,M(e,a+1,!0,!0)]}function ht(e,t,n,r){let i={},a=new Set,o;for(t++;(o=e[t++])!==`}`&&o;)if(o===`,`)throw new A(`expected value, found comma`,{toml:e,ptr:t-1});else if(o===`#`)t=Xe(e,t);else if(o!==` `&&o!==` `&&o!==`
19
- `&&o!==`\r`){let o,s=i,c=!1,[l,u]=mt(e,t-1);for(let n=0;n<l.length;n++){if(n&&(s=c?s[o]:s[o]={}),o=l[n],(c=Object.hasOwn(s,o))&&(typeof s[o]!=`object`||a.has(s[o])))throw new A(`trying to redefine an already defined value`,{toml:e,ptr:t});!c&&o===`__proto__`&&Object.defineProperty(s,o,{enumerable:!0,configurable:!0,writable:!0})}if(c)throw new A(`trying to redefine an already defined value`,{toml:e,ptr:t});let[d,f]=ft(e,u,`}`,n-1,r);a.add(d),s[o]=d,t=f}if(!o)throw new A(`unfinished table encountered`,{toml:e,ptr:t});return[i,t]}function gt(e,t,n,r){let i=[],a;for(t++;(a=e[t++])!==`]`&&a;)if(a===`,`)throw new A(`expected value, found comma`,{toml:e,ptr:t-1});else if(a===`#`)t=Xe(e,t);else if(a!==` `&&a!==` `&&a!==`
20
- `&&a!==`\r`){let a=ft(e,t-1,`]`,n-1,r);i.push(a[0]),t=a[1]}if(!a)throw new A(`unfinished array encountered`,{toml:e,ptr:t});return[i,t]}var _t,vt=C((()=>{ut(),pt(),$e(),j(),_t=/^[a-zA-Z0-9-_]+[ \t]*$/}));function yt(e,t,n,r){let i=t,a=n,o,s=!1,c;for(let t=0;t<e.length;t++){if(t){if(i=s?i[o]:i[o]={},a=(c=a[o]).c,r===0&&(c.t===1||c.t===2))return null;if(c.t===2){let e=i.length-1;i=i[e],a=a[e].c}}if(o=e[t],(s=Object.hasOwn(i,o))&&a[o]?.t===0&&a[o]?.d)return null;s||(o===`__proto__`&&(Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(a,o,{enumerable:!0,configurable:!0,writable:!0})),a[o]={t:t<e.length-1&&r===2?3:r,d:!1,i:0,c:{}})}if(c=a[o],c.t!==r&&!(r===1&&c.t===3)||(r===2&&(c.d||(c.d=!0,i[o]=[]),i[o].push(i={}),c.c[c.i++]=c={t:1,d:!1,i:0,c:{}}),c.d))return null;if(c.d=!0,r===1)i=s?i[o]:i[o]={};else if(r===0&&s)return null;return[o,i,c.c]}function bt(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},a=r,o=i;for(let s=M(e,0);s<e.length;){if(e[s]===`[`){let t=e[++s]===`[`,n=mt(e,s+=+t,`]`);if(t){if(e[n[1]-1]!==`]`)throw new A(`expected end of table declaration`,{toml:e,ptr:n[1]-1});n[1]++}let c=yt(n[0],r,i,t?2:1);if(!c)throw new A(`trying to redefine an already defined table or value`,{toml:e,ptr:s});o=c[2],a=c[1],s=n[1]}else{let r=mt(e,s),i=yt(r[0],a,o,0);if(!i)throw new A(`trying to redefine an already defined table or value`,{toml:e,ptr:s});let c=ft(e,r[1],void 0,t,n);i[1][i[0]]=c[0],s=c[1]}if(s=M(e,s,!0),e[s]&&e[s]!==`
21
- `&&e[s]!==`\r`)throw new A(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=M(e,s)}return r}var xt=C((()=>{vt(),pt(),$e(),j()}));function N(e){let t=typeof e;if(t===`object`){if(Array.isArray(e))return`array`;if(e instanceof Date)return`date`}return t}function St(e){for(let t=0;t<e.length;t++)if(N(e[t])!==`object`)return!1;return e.length!=0}function Ct(e){return JSON.stringify(e).replace(/\x7f/g,`\\u007f`)}function wt(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);if(t===`number`)return isNaN(e)?`nan`:e===1/0?`inf`:e===-1/0?`-inf`:r&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t===`bigint`||t===`boolean`)return e.toString();if(t===`string`)return Ct(e);if(t===`date`){if(isNaN(e.getTime()))throw TypeError(`cannot serialize invalid date`);return e.toISOString()}if(t===`object`)return Tt(e,n,r);if(t===`array`)return Et(e,n,r)}function Tt(e,t,n){let r=Object.keys(e);if(r.length===0)return`{}`;let i=`{ `;for(let a=0;a<r.length;a++){let o=r[a];a&&(i+=`, `),i+=At.test(o)?o:Ct(o),i+=` = `,i+=wt(e[o],N(e[o]),t-1,n)}return i+` }`}function Et(e,t,n){if(e.length===0)return`[]`;let r=`[ `;for(let i=0;i<e.length;i++){if(i&&(r+=`, `),e[i]===null||e[i]===void 0)throw TypeError(`arrays cannot contain null or undefined values`);r+=wt(e[i],N(e[i]),t-1,n)}return r+` ]`}function Dt(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let i=``;for(let a=0;a<e.length;a++)i+=`${i&&`
22
- `}[[${t}]]\n`,i+=Ot(0,e[a],t,n,r);return i}function Ot(e,t,n,r,i){if(r===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let a=``,o=``,s=Object.keys(t);for(let e=0;e<s.length;e++){let c=s[e];if(t[c]!==null&&t[c]!==void 0){let e=N(t[c]);if(e===`symbol`||e===`function`)throw TypeError(`cannot serialize values of type '${e}'`);let s=At.test(c)?c:Ct(c);if(e===`array`&&St(t[c]))o+=(o&&`
23
- `)+Dt(t[c],n?`${n}.${s}`:s,r-1,i);else if(e===`object`){let e=n?`${n}.${s}`:s;o+=(o&&`
24
- `)+Ot(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=wt(t[c],e,r,i),a+=`
25
- `}}return e&&(a||!o)&&(a=a?`[${e}]\n${a}`:`[${e}]`),a&&o?`${a}\n${o}`:a||o}function kt(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(N(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=Ot(0,e,``,t,n);return r[r.length-1]===`
14
+ `){if(!i)throw new B(`newlines are not allowed in strings`,{toml:e,ptr:t-1})}else if(n<` `&&n!==` `||n===``)throw new B(`control characters are not allowed in strings`,{toml:e,ptr:t-1});if(o){if(o=!1,n===`x`||n===`u`||n===`U`){let r=e.slice(t,t+=n===`x`?2:n===`u`?4:8);if(!xn.test(r))throw new B(`invalid unicode escape`,{toml:e,ptr:a});try{s+=String.fromCodePoint(parseInt(r,16))}catch{throw new B(`invalid unicode escape`,{toml:e,ptr:a})}}else if(i&&(n===`
15
+ `||n===` `||n===` `||n===`\r`)){if(t=H(e,t-1,!0),e[t]!==`
16
+ `&&e[t]!==`\r`)throw new B(`invalid escape: only line-ending whitespace may be escaped`,{toml:e,ptr:a});t=H(e,t)}else if(n in Sn)s+=Sn[n];else throw new B(`unrecognized escape sequence`,{toml:e,ptr:a});c=t}else !r&&n===`\\`&&(a=t-1,o=!0,s+=e.slice(c,a))}return s+e.slice(c,n-1)}function _n(e,t,n,r){if(e===`true`)return!0;if(e===`false`)return!1;if(e===`-inf`)return-1/0;if(e===`inf`||e===`+inf`)return 1/0;if(e===`nan`||e===`+nan`||e===`-nan`)return NaN;if(e===`-0`)return r?0n:0;let i=vn.test(e);if(i||yn.test(e)){if(bn.test(e))throw new B(`leading zeroes are not allowed`,{toml:t,ptr:n});e=e.replace(/_/g,``);let a=+e;if(isNaN(a))throw new B(`invalid number`,{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(a))&&!r)throw new B(`integer value cannot be represented losslessly`,{toml:t,ptr:n});(i||r===!0)&&(a=BigInt(e))}return a}let a=new mn(e);if(!a.isValid())throw new B(`invalid value`,{toml:t,ptr:n});return a}var vn,yn,bn,xn,Sn,Cn=w((()=>{fn(),hn(),V(),vn=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,yn=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,bn=/^[+-]?0[0-9_]/,xn=/^[0-9a-f]{2,8}$/i,Sn={b:`\b`,t:` `,n:`
17
+ `,f:`\f`,r:`\r`,e:`\x1B`,'"':`"`,"\\":`\\`}}));function wn(e,t,n){let r=e.slice(t,n),i=r.indexOf(`#`);return i>-1&&(ln(e,i),r=r.slice(0,i)),[r.trimEnd(),i]}function Tn(e,t,n,r,i){if(r===0)throw new B(`document contains excessively nested structures. aborting.`,{toml:e,ptr:t});let a=e[t];if(a===`[`||a===`{`){let[o,s]=a===`[`?kn(e,t,r,i):On(e,t,r,i);if(n){if(s=H(e,s),e[s]===`,`)s++;else if(e[s]!==n)throw new B(`expected comma or end of structure`,{toml:e,ptr:s})}return[o,s]}let o;if(a===`"`||a===`'`){o=dn(e,t);let r=gn(e,t,o);if(n){if(o=H(e,o),e[o]&&e[o]!==`,`&&e[o]!==n&&e[o]!==`
18
+ `&&e[o]!==`\r`)throw new B(`unexpected character encountered`,{toml:e,ptr:o});o+=+(e[o]===`,`)}return[r,o]}o=un(e,t,`,`,n);let s=wn(e,t,o-+(e[o-1]===`,`));if(!s[0])throw new B(`incomplete key-value declaration: no value specified`,{toml:e,ptr:t});return n&&s[1]>-1&&(o=H(e,t+s[1]),o+=+(e[o]===`,`)),[_n(s[0],e,t,i),o]}var En=w((()=>{Cn(),jn(),fn(),V()}));function Dn(e,t,n=`=`){let r=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new B(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});do{let o=e[t=++r];if(o!==` `&&o!==` `)if(o===`"`||o===`'`){if(o===e[t+1]&&o===e[t+2])throw new B(`multiline strings are not allowed in keys`,{toml:e,ptr:t});let s=dn(e,t);if(s<0)throw new B(`unfinished string encountered`,{toml:e,ptr:t});r=e.indexOf(`.`,s);let c=e.slice(s,r<0||r>a?a:r),l=cn(c);if(l>-1)throw new B(`newlines are not allowed in keys`,{toml:e,ptr:t+r+l});if(c.trimStart())throw new B(`found extra tokens after the string part`,{toml:e,ptr:s});if(a<s&&(a=e.indexOf(n,s),a<0))throw new B(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});i.push(gn(e,t,s))}else{r=e.indexOf(`.`,t);let n=e.slice(t,r<0||r>a?a:r);if(!An.test(n))throw new B(`only letter, numbers, dashes and underscores are allowed in keys`,{toml:e,ptr:t});i.push(n.trimEnd())}}while(r+1&&r<a);return[i,H(e,a+1,!0,!0)]}function On(e,t,n,r){let i={},a=new Set,o;for(t++;(o=e[t++])!==`}`&&o;)if(o===`,`)throw new B(`expected value, found comma`,{toml:e,ptr:t-1});else if(o===`#`)t=ln(e,t);else if(o!==` `&&o!==` `&&o!==`
19
+ `&&o!==`\r`){let o,s=i,c=!1,[l,u]=Dn(e,t-1);for(let n=0;n<l.length;n++){if(n&&(s=c?s[o]:s[o]={}),o=l[n],(c=Object.hasOwn(s,o))&&(typeof s[o]!=`object`||a.has(s[o])))throw new B(`trying to redefine an already defined value`,{toml:e,ptr:t});!c&&o===`__proto__`&&Object.defineProperty(s,o,{enumerable:!0,configurable:!0,writable:!0})}if(c)throw new B(`trying to redefine an already defined value`,{toml:e,ptr:t});let[d,f]=Tn(e,u,`}`,n-1,r);a.add(d),s[o]=d,t=f}if(!o)throw new B(`unfinished table encountered`,{toml:e,ptr:t});return[i,t]}function kn(e,t,n,r){let i=[],a;for(t++;(a=e[t++])!==`]`&&a;)if(a===`,`)throw new B(`expected value, found comma`,{toml:e,ptr:t-1});else if(a===`#`)t=ln(e,t);else if(a!==` `&&a!==` `&&a!==`
20
+ `&&a!==`\r`){let a=Tn(e,t-1,`]`,n-1,r);i.push(a[0]),t=a[1]}if(!a)throw new B(`unfinished array encountered`,{toml:e,ptr:t});return[i,t]}var An,jn=w((()=>{Cn(),En(),fn(),V(),An=/^[a-zA-Z0-9-_]+[ \t]*$/}));function Mn(e,t,n,r){let i=t,a=n,o,s=!1,c;for(let t=0;t<e.length;t++){if(t){if(i=s?i[o]:i[o]={},a=(c=a[o]).c,r===0&&(c.t===1||c.t===2))return null;if(c.t===2){let e=i.length-1;i=i[e],a=a[e].c}}if(o=e[t],(s=Object.hasOwn(i,o))&&a[o]?.t===0&&a[o]?.d)return null;s||(o===`__proto__`&&(Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(a,o,{enumerable:!0,configurable:!0,writable:!0})),a[o]={t:t<e.length-1&&r===2?3:r,d:!1,i:0,c:{}})}if(c=a[o],c.t!==r&&!(r===1&&c.t===3)||(r===2&&(c.d||(c.d=!0,i[o]=[]),i[o].push(i={}),c.c[c.i++]=c={t:1,d:!1,i:0,c:{}}),c.d))return null;if(c.d=!0,r===1)i=s?i[o]:i[o]={};else if(r===0&&s)return null;return[o,i,c.c]}function Nn(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},a=r,o=i;for(let s=H(e,0);s<e.length;){if(e[s]===`[`){let t=e[++s]===`[`,n=Dn(e,s+=+t,`]`);if(t){if(e[n[1]-1]!==`]`)throw new B(`expected end of table declaration`,{toml:e,ptr:n[1]-1});n[1]++}let c=Mn(n[0],r,i,t?2:1);if(!c)throw new B(`trying to redefine an already defined table or value`,{toml:e,ptr:s});o=c[2],a=c[1],s=n[1]}else{let r=Dn(e,s),i=Mn(r[0],a,o,0);if(!i)throw new B(`trying to redefine an already defined table or value`,{toml:e,ptr:s});let c=Tn(e,r[1],void 0,t,n);i[1][i[0]]=c[0],s=c[1]}if(s=H(e,s,!0),e[s]&&e[s]!==`
21
+ `&&e[s]!==`\r`)throw new B(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=H(e,s)}return r}var Pn=w((()=>{jn(),En(),fn(),V()}));function U(e){let t=typeof e;if(t===`object`){if(Array.isArray(e))return`array`;if(e instanceof Date)return`date`}return t}function Fn(e){for(let t=0;t<e.length;t++)if(U(e[t])!==`object`)return!1;return e.length!=0}function In(e){return JSON.stringify(e).replace(/\x7f/g,`\\u007f`)}function Ln(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);if(t===`number`)return isNaN(e)?`nan`:e===1/0?`inf`:e===-1/0?`-inf`:r&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t===`bigint`||t===`boolean`)return e.toString();if(t===`string`)return In(e);if(t===`date`){if(isNaN(e.getTime()))throw TypeError(`cannot serialize invalid date`);return e.toISOString()}if(t===`object`)return Rn(e,n,r);if(t===`array`)return zn(e,n,r)}function Rn(e,t,n){let r=Object.keys(e);if(r.length===0)return`{}`;let i=`{ `;for(let a=0;a<r.length;a++){let o=r[a];a&&(i+=`, `),i+=Un.test(o)?o:In(o),i+=` = `,i+=Ln(e[o],U(e[o]),t-1,n)}return i+` }`}function zn(e,t,n){if(e.length===0)return`[]`;let r=`[ `;for(let i=0;i<e.length;i++){if(i&&(r+=`, `),e[i]===null||e[i]===void 0)throw TypeError(`arrays cannot contain null or undefined values`);r+=Ln(e[i],U(e[i]),t-1,n)}return r+` ]`}function Bn(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let i=``;for(let a=0;a<e.length;a++)i+=`${i&&`
22
+ `}[[${t}]]\n`,i+=Vn(0,e[a],t,n,r);return i}function Vn(e,t,n,r,i){if(r===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let a=``,o=``,s=Object.keys(t);for(let e=0;e<s.length;e++){let c=s[e];if(t[c]!==null&&t[c]!==void 0){let e=U(t[c]);if(e===`symbol`||e===`function`)throw TypeError(`cannot serialize values of type '${e}'`);let s=Un.test(c)?c:In(c);if(e===`array`&&Fn(t[c]))o+=(o&&`
23
+ `)+Bn(t[c],n?`${n}.${s}`:s,r-1,i);else if(e===`object`){let e=n?`${n}.${s}`:s;o+=(o&&`
24
+ `)+Vn(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=Ln(t[c],e,r,i),a+=`
25
+ `}}return e&&(a||!o)&&(a=a?`[${e}]\n${a}`:`[${e}]`),a&&o?`${a}\n${o}`:a||o}function Hn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(U(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=Vn(0,e,``,t,n);return r[r.length-1]===`
26
26
  `?r:r+`
27
- `}var At,jt=C((()=>{At=/^[a-z0-9-_]+$/i})),Mt=re({TomlDate:()=>tt,TomlError:()=>A,default:()=>Nt,parse:()=>bt,stringify:()=>kt}),Nt,Pt=C((()=>{xt(),jt(),nt(),j(),Nt={parse:bt,stringify:kt,TomlDate:tt,TomlError:A}}));const Ft=ee(y),It=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Lt=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Rt=/^[0-9a-f]{7,}$/i,zt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Bt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,P=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),F=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e,Vt=oe,Ht={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},Ut={"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 I(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?dn(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Wt(e){for(let[t,{short:n}]of Object.entries(Ut))if(t===e||n===e)return t;return``}const L=b({strict:!1,allowPositionals:!0,tokens:!0,options:Ut}),R=L.values;for(let[e,t]of L.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=Wt(t.value.substring(1)),r=L.tokens[e+1];R[t.name]=[!0],R[n]||(R[n]=[]),r.kind===`positional`&&r.value?R[n].push(r.value):R[n].push(!0)}const z=L.values,[Gt,B,Kt]=[`magenta`,`red`,`green`].map(e=>z[`no-color`]?String:t=>x(e,String(t))),V=Q(I(z.greatest)),qt=Q(I(z.prerelease)),Jt=Q(I(z.release)),Yt=Q(I(z.patch)),Xt=Q(I(z.minor)),Zt=Q(I(z[`allow-downgrade`])),Qt=I(z.modes)||new Set([`npm`,`pypi`,`go`]),$t=typeof z.forgeapi==`string`?F(z.forgeapi):`https://api.github.com`,en=typeof z.pypiapi==`string`?F(z.pypiapi):`https://pypi.org`,tn=typeof z.jsrapi==`string`?F(z.jsrapi):`https://jsr.io`,nn=typeof z.goproxy==`string`?F(z.goproxy):on(),rn=sn(),H=5e3,an=2500;function on(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return F(e)}return`https://proxy.golang.org`}function sn(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function cn(e){return rn.some(t=>e===t||e.startsWith(`${t}/`))}const U=e=>e.replace(/^v/,``);function W(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function ln(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function un(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function dn(e){return e.split(`,`).filter(Boolean)}function fn(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 pn(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:pn(e,r)}const mn=`https://registry.npmjs.org`;let G=null;const hn=new Map;function gn(){return G||Ge(`npm`,{registry:mn})}function _n(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function vn(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:_n(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(_n(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:_n(a),type:`Basic`}}function K(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=vn(`//${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:_n(i),type:`Basic`}}function yn(e,t){G||=gn();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=hn.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:K(t,G),registry:t};else{let e=F(ln(n,G));if(e!==t)try{let n=K(e,G);a=n?.token?{auth:n,registry:e}:{auth:K(t,G),registry:t}}catch{a={auth:K(t,G),registry:t}}else a={auth:K(t,G),registry:t}}return hn.set(r,a),a}function bn(e,t){return{headers:{"user-agent":`updates/${Vt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}function xn(){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 Sn(e){console.error(`${xn()} ${e}`)}async function q(e,t){z.verbose&&Sn(`${Gt(`fetch`)} ${e}`);let n=await fetch(e,t);return z.verbose&&Sn(`${n.ok?Kt(n.status):B(n.status)} ${e}`),n}async function Cn(e,t,n){G||=gn();let{auth:r,registry:i}=yn(e,F((typeof z.registry==`string`?z.registry:!1)||n.registry||G.registry||mn)),a=`${i}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,o=await q(a,{signal:AbortSignal.timeout(H),...bn(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 wn(e,t){let n=`${en}/pypi/${e}/json`,r=await q(n,{signal:AbortSignal.timeout(H),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 ${en}`)}function J(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Tn(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 En(e,t){let n=/^@([^/]+)\/(.+)$/.exec(e);if(!n)throw Error(`Invalid JSR package name: ${e}`);let[,r,i]=n,a=`${tn}/@${r}/${i}/meta.json`,o=await q(a,{signal:AbortSignal.timeout(H),headers:{"accept-encoding":`gzip, deflate, br`}});if(o?.ok){let n=await o.json(),r={},i={};for(let[e,t]of Object.entries(n.versions))r[e]={version:e,time:t.createdAt},i[e]=t.createdAt;return[{name:e,"dist-tags":{latest:n.latest},versions:r,time:i},t,tn,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 Dn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function On(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function Y(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function kn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function An(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 jn(e,n,r,i){let a=[{name:e,old:r,new:r},n,null,e],o=On(e),s=async(e,n)=>{try{let{stdout:r}=await Ft(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},[c,l]=await Promise.all([s(e,H),s(Y(e,o+1),an)]);if(!c)return a;let u=c.Version,d=c.Time,f=u,p=d,m=e,h=e=>{f=e.Version,p=e.Time,m=e.path};if(l){h(l);let t=await s(Y(e,o+2),an);if(t){h(t);for(let t=o+3;t<=o+100;t+=20){let n=Math.min(t+20,o+101),r=Array.from({length:n-t},(n,r)=>s(Y(e,t+r),an)),i=await Promise.all(r),a=!1;for(let e of i){if(!e)break;h(e),a=!0}if(!a||i.some(e=>!e))break}}}return[{name:e,old:r,new:U(f),Time:p,...m===e?{}:{newPath:m},sameMajorNew:U(u),sameMajorTime:d},n,null,e]}async function Mn(e,t,n,r){let i=[{name:e,old:n,new:n},t,null,e];if(cn(e))return jn(e,t,n,r);let a=Dn(e),o=On(e),s=async t=>{let n=Y(e,t);return q(`${nn}/${Dn(n)}/@latest`,{signal:AbortSignal.timeout(an)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},[c,l]=await Promise.all([q(`${nn}/${a}/@latest`,{signal:AbortSignal.timeout(H)}),s(o+1)]);if(!c.ok)return i;let u,d;try{let e=await c.json();u=e.Version,d=e.Time}catch{return i}let f=u,p=d,m=e,h=e=>{f=e.Version,p=e.Time,m=e.path};if(l){h(l);let e=await s(o+2);if(e){h(e);for(let e=o+3;e<=o+100;e+=20){let t=Math.min(e+20,o+101),n=Array.from({length:t-e},(t,n)=>({result:s(e+n)})),r=await Promise.all(n.map(e=>e.result)),i=!1;for(let e of r){if(!e)break;h(e),i=!0}if(!i||r.some(e=>!e))break}}}return[{name:e,old:n,new:U(f),Time:p,...m===e?{}:{newPath:m},sameMajorNew:U(u),sameMajorTime:d},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(z.json?JSON.stringify({message:e}):e),await X()}async function X(e,t){if(e){let t=e.stack??e.message,n=e.cause;z.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(B(t)),n&&console.info(B(`Caused by: ${String(n)}`)))}r===`win32`&&Number(o?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),n(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`&&!J(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(z.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 z[`error-on-outdated`]?t?2:0:z[`error-on-unchanged`]?t?0:2:0}function zn(e,t){r===`win32`&&_(e,0),v(e,t,r===`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=>te(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+=`
28
- `)}return n}function Un(e){return/\/v[0-9]$/.test(e)?c(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,B)),l.push(Bn(o.new,o.old,Kt)),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(`"${P(a)}": *"${o}@${P(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${P(o)}": *"${P(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(`${P(o)} *= *"${P(s)}"`,`g`),`${o} = "${t[e].new}"`),n=n.replace(RegExp(`("${P(o)} *[<>=~]+ *)${P(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}function qn(e,t){let n=P(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function Jn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new,u=On(s),d=parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=Y(s,d);n=n.replace(RegExp(`${P(s)} +v${P(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${P(s)}) +v${P(c)}`,`g`),`$1 v${l}`);n=qn(n,s)}return[n,r]}function Yn(e,t){if(!Object.keys(t).length)return;let n=p(`**/*.go`,{cwd:e});for(let r of n){let n=l(e,r),i=h(n,`utf8`),a=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${P(e)}(/|")`,`g`),r=i.replace(t,`"${n}$1`);r!==i&&(i=r,a=!0)}a&&zn(n,i)}}function Xn(e,t,n){let r=e.replace(Bt,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 Zn(e){let t=de(e);return t?!!t.prerelease.length:!1}function Qn(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function Z(e){try{return me(e)?.version??``}catch{return``}}function $n(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=Z(n);if(!c)return c;i=Qn(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=de(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!De(c,s))continue;let d=D(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))ge(Z(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function er(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=>E(e));else if(t===`npm`)c=Object.keys(e.versions).filter(e=>E(e));else if(t===`go`){let t=Z(n);if(!t)return null;let r=a||Qn(n),s=e=>Zn(e)&&(!r||i),c=Z(e.new);if(c&&!kn(e.new)&&!s(e.new)){let n=D(t,c);if(n&&o.has(n))return e.new}let l=Z(e.sameMajorNew);if(l&&!kn(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=D(t,l);if(n&&o.has(n))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let l=$n(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=Qn(n),f=Zn(l),p=Zn(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=D(u,r);return h&&h!==`prerelease`&&!o.has(h.replace(/^pre/,``))||i&&Zn(r)?l:_e(r,u)&&!p?Zt===!0||W(e.name,Zt)?r:null:!d&&p&&!a||s&&!De(r,s)?l:c||r}}function tr(e){let n={signal:AbortSignal.timeout(H),headers:{"accept-encoding":`gzip, deflate, br`}},r=t.UPDATES_GITHUB_API_TOKEN||t.GITHUB_API_TOKEN||t.GH_TOKEN||t.GITHUB_TOKEN||t.HOMEBREW_GITHUB_API_TOKEN;return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),q(e,n)}async function nr(e,t){let n=await tr(`${$t}/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 rr(e,t){let n=await tr(`${$t}/repos/${e}/${t}/git/refs/tags`);return n?.ok?(await n.json()).map(e=>e.ref.replace(/^refs\/tags\//,``)):[]}function ir(e,t,n){let r=U(t);if(!E(r))return null;if(n){let n=t,i=U(t);for(let t of e){let e=U(t);E(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=U(t);if(!E(n))return null;if(ve(r,n))return t}return null}async function ar(e,t,n){let r=t.old.replace(It,``),[i,a,o,s]=Lt.exec(r)||[];if(!a||!o||!s)return null;if(Rt.test(s)){let{hash:n,commit:r}=await nr(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=ir(await rr(a,o),s,n);if(t)return{key:e,newRange:t,user:a,repo:o,oldRef:s,newRef:t}}return null}function or(e){return e.replace(/-.*/,``)}function sr(e){let t=e.match(zt);return t?.length===1?e.replace(zt,Z(t[0])):e}function cr(e,t){return RegExp(`^${P(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function lr(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):cr(e,n):e instanceof RegExp?e:cr(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(lr(n,!0,!1));return t}return e}function ur(e,t){let n=new Set;for(let t of e||[])n.add(lr(t,!0,!0));for(let e of t||[])n.add(lr(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;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function dr(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function fr(t){let n=new Set,r=new Set;if(t)for(let e of t){let t;try{t=m(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile()){let t=u(e);n.add(t),r.add(t)}else if(t?.isDirectory())for(let t of Object.keys(Ht)){let r=l(e,t),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(u(r))}else throw Error(`${e} is neither a file nor directory`)}else for(let t of Object.keys(Ht)){let r=pn(t,e());r&&n.add(u(r))}return[n,r]}async function pr(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=l(e,...t.split(`/`)),r=d(n);try{f(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 mr(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);Be();let e=typeof z.sockets==`number`?z.sockets:96,{help:t,version:n,file:r,types:o,update:l}=z;t&&(a.write(`usage: updates [options]
27
+ `}var Un,Wn=w((()=>{Un=/^[a-z0-9-_]+$/i})),Gn=re({TomlDate:()=>mn,TomlError:()=>B,default:()=>Kn,parse:()=>Nn,stringify:()=>Hn}),Kn,qn=w((()=>{Pn(),Wn(),hn(),V(),Kn={parse:Nn,stringify:Hn,TomlDate:mn,TomlError:B}}));const Jn={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},Yn={"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`},timeout:{short:`T`,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 W(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?pr(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Xn(e){for(let[t,{short:n}]of Object.entries(Yn))if(t===e||n===e)return t;return``}const G=b({strict:!1,allowPositionals:!0,tokens:!0,options:Yn}),K=G.values;for(let[e,t]of G.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=Xn(t.value.substring(1)),r=G.tokens[e+1];K[t.name]=[!0],K[n]||(K[n]=[]),r.kind===`positional`&&r.value?K[n].push(r.value):K[n].push(!0)}const q=G.values,Zn=G.positionals,[Qn,$n,er]=[`magenta`,`red`,`green`].map(e=>q[`no-color`]?String:t=>C(e,String(t))),J=Q(W(q.greatest)),tr=Q(W(q.prerelease)),nr=Q(W(q.release)),rr=Q(W(q.patch)),ir=Q(W(q.minor)),ar=Q(W(q[`allow-downgrade`])),or=W(q.modes)||new Set([`npm`,`pypi`,`go`,`actions`]),sr=typeof q.forgeapi==`string`?N(q.forgeapi):`https://api.github.com`,cr=typeof q.pypiapi==`string`?N(q.pypiapi):`https://pypi.org`,lr=typeof q.jsrapi==`string`?N(q.jsrapi):`https://jsr.io`,ur=typeof q.goproxy==`string`?N(q.goproxy):Mt(),dr=Nt();function Y(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function fr(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function pr(e){return e.split(`,`).filter(Boolean)}function mr(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&De(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&De(r)&&(t[n]=r)}return t}function hr(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:hr(e,r)}function gr(){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 _r(e){console.error(`${gr()} ${e}`)}const vr=typeof q.timeout==`string`?Number(q.timeout):0,X={fetchTimeout:vr||He,goProbeTimeout:vr?vr/2:2500,forgeApiUrl:sr,pypiApiUrl:cr,jsrApiUrl:lr,goProxyUrl:ur,doFetch:(e,t)=>We(e,t,!!q.verbose,_r,Qn,er,$n),verbose:!!q.verbose};async function yr(e){console.info(q.json?JSON.stringify({message:e}):e),await Z()}async function Z(e,t){if(e){let t=e.stack??e.message,n=e.cause;q.json?console.info(JSON.stringify({error:t,cause:n})):(console.info($n(t)),n&&console.info($n(`Caused by: ${String(n)}`)))}r===`win32`&&Number(o?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),n(t||e?1:0)}function br(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`&&!R(n.oldOrig)&&(n.old=n.oldOrig),t===`actions`&&(n.old=j(n.old),n.new=j(n.new)),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(q.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(wr(e));return q[`error-on-outdated`]?t?2:0:q[`error-on-unchanged`]?t?0:2:0}function xr(e,t){r===`win32`&&v(e,0),y(e,t,r===`win32`?{flag:`r+`}:void 0)}const Sr=e=>S(e).length;function Cr(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=Sr(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]-Sr(i));n+=i+(e===a.length-1?``:o)}i<e.length-1&&(n+=`
28
+ `)}return n}function wr(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`?Gt(s):s),n&&l.push(a),l.push(Ne(o.old,o.new,$n)),l.push(Ne(o.new,o.old,er)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return Cr(r)}function Tr(e,t){return RegExp(`^${M(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Er(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Tr(e,n):e instanceof RegExp?e:Tr(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(Er(n,!0,!1));return t}return e}function Dr(e,t){let n=new Set;for(let t of e||[])n.add(Er(t,!0,!0));for(let e of t||[])n.add(Er(e,!1,!0));return n}function Or(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>pr(e)):[]}function kr(e){return rr===!0||Y(e,rr)?new Set([`patch`]):ir===!0||Y(e,ir)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Ar(e){return{useGreatest:typeof J==`boolean`?J:Y(e,J),usePre:typeof tr==`boolean`?tr:Y(e,tr),useRel:typeof nr==`boolean`?nr:Y(e,nr),semvers:kr(e)}}function jr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}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;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Mr(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Nr(t){let n=new Set,r=new Set;if(t)for(let e of t){let t;try{t=m(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile()){let t=u(e);n.add(t),r.add(t)}else if(t?.isDirectory()){for(let t of Object.keys(Jn)){let r=l(e,t),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(u(r))}let t=u(e).replace(/\\/g,`/`),i;i=t.endsWith(`.github/workflows`)?t:t.endsWith(`.github`)?l(t,`workflows`):l(t,`.github`,`workflows`);for(let e of rn(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(Jn)){let r=hr(t,e());r&&n.add(u(r))}let t=hr(l(`.github`,`workflows`),e());if(t)for(let e of rn(t))n.add(e)}return[n,r]}async function Pr(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=l(e,...t.split(`/`)),r=d(n);try{f(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[a,i])e?._handle?.setBlocking?.(!0);Be();let e=typeof q.sockets==`number`?q.sockets:96,{help:t,version:n,file:r,types:o,update:l,include:d,exclude:f,pin:p,cooldown:m}=q;t&&(a.write(`usage: updates [options] [files...]
29
29
 
30
30
  Options:
31
31
  -u, --update Update versions and write package file
@@ -45,7 +45,8 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
45
45
  -U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
46
46
  -r, --registry <url> Override npm registry URL
47
47
  -S, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 96
48
- -M, --modes <mode,...> Which modes to enable. Either npm,pypi,go. Default: npm,pypi,go
48
+ -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${He}
49
+ -M, --modes <mode,...> Which modes to enable. Either npm,pypi,go,actions. Default: npm,pypi,go,actions
49
50
  -j, --json Output a JSON object
50
51
  -n, --no-color Disable color output
51
52
  -v, --version Print the version
@@ -62,4 +63,5 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
62
63
  $ updates -f pyproject.toml
63
64
  $ updates -f go.mod
64
65
  $ updates -l typescript=^5.0.0
65
- `),await X()),n&&(console.info(Vt),await X());let d={},f={},p={},m={},g=Date.now(),_=0,[v,y]=fr(I(r));for(let t of v){let n=Ht[s(t)];if(!Qt.has(n)&&!y.has(t))continue;m[n]=t,d[n]||(d[n]={});let r=c(u(t)),i=await pr(r),a=[],l=[];Array.isArray(z.include)&&(a=z.include.filter(e=>typeof e==`string`).flatMap(e=>dn(e))),Array.isArray(z.exclude)&&(l=z.exclude.filter(e=>typeof e==`string`).flatMap(e=>dn(e)));let v=ur(a,i?.include??[]),b=ur(l,i?.exclude??[]),ee=fn(z.pin),te={...i?.pin,...ee},x=[];Array.isArray(o)?x=o.filter(e=>typeof e==`string`):`types`in i&&Array.isArray(i.types)?x=i.types:n===`npm`?x=Fe:n===`pypi`?x=[...Re,...Le]:n===`go`&&(x=Array.from(ze));let S={};try{p[n]=h(t,`utf8`)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}try{if(n===`npm`)S=JSON.parse(p[n]);else if(n===`pypi`){let{parse:e}=await Promise.resolve().then(()=>(Pt(),Mt));S=e(p[n])}else S.deps=An(p[n])}catch(e){throw Error(`Error parsing ${t}: ${e.message}`)}for(let e of x){let t;if(t=n===`npm`||n===`go`?S[e]||{}:un(S,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Pe(t))$(r,n,v,b,e)&&(d[n][`${e}${r}`]={old:sr(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,v,b,e)&&(d[n][`${e}${r}`]={old:sr(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`npm`&&J(i)&&$(r,n,v,b,e)){let t=Tn(i,r);d[n][`${e}${r}`]={old:t.version,oldOrig:i}}else n!==`go`&&Oe(i)&&$(r,n,v,b,e)?d[n][`${e}${r}`]={old:sr(i),oldOrig:i}:n===`npm`&&!J(i)&&$(r,n,v,b,e)?f[`${e}${r}`]={old:i}:n===`go`&&$(r,n,v,b,e)&&(d[n][`${e}${r}`]={old:or(i),oldOrig:U(i)})}if(_+=Object.keys(d[n]).length+Object.keys(f).length,!_)continue;let ne=[];ne=await ie(Object.keys(d[n]),async e=>{let[t,a]=e.split(`\0`);if(n===`npm`){let{oldOrig:r}=d[n][e];return r&&J(r)?En(a,t):Cn(a,t,i)}else if(n===`go`)return Mn(a,t,d[n][e].oldOrig||d[n][e].old,r);else return wn(a,t)},{concurrency:e});for(let[e,t,r,i]of ne){if(e?.error)throw Error(e.error);let a=typeof V==`boolean`?V:W(e.name,V),o=typeof qt==`boolean`?qt:W(e.name,qt),s=typeof Jt==`boolean`?Jt:W(e.name,Jt),c;c=Yt===!0||W(e.name,Yt)?new Set([`patch`]):Xt===!0||W(e.name,Xt)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`]);let l=`${t}${i}`,u=d[n][l].old,f=d[n][l].oldOrig,p=te[i],m=er(e,{usePre:o,useRel:s,useGreatest:a,semvers:c,range:u,mode:n,pinnedRange:p}),h=``;if([`go`,`pypi`].includes(n)&&m)h=m;else if(m)if(f&&J(f))if(f.startsWith(`npm:@jsr/`)){let e=/^(npm:@jsr\/[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else if(f.startsWith(`jsr:@`)){let e=/^(jsr:@[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else f.startsWith(`jsr:`)&&(h=`jsr:${m}`);else h=Xn(u,m,f);if(!m||f&&f===h){delete d[n][l];continue}let g=``;if(n===`npm`&&e.time?.[m]?g=e.time[m]:n===`pypi`&&e.releases?.[m]?.[0]?.upload_time_iso_8601?g=e.releases[m][0].upload_time_iso_8601:n===`go`&&e.Time&&(g=e.Time),d[n][l].new=h,f&&J(f)&&(d[n][l].newPrint=m),n===`npm`)d[n][l].info=Fn(e?.versions?.[m],r,e.name);else if(n===`pypi`)d[n][l].info=Fn(e,r,e.info.name);else if(n===`go`){let t=e.newPath||i;d[n][l].info=In(t)}g&&(d[n][l].date=g,d[n][l].age=Ne(g,{noAffix:!0}))}if(Object.keys(f).length){let t=(await ie(Object.entries(f),([e,t])=>{let n=e.split(`\0`)[1];return ar(e,t,typeof V==`boolean`?V:W(n,V))},{concurrency:e})).filter(e=>e!==null);for(let e of t){let{key:t,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=e;d[n][t]={old:f[t].old,new:r,oldPrint:Rt.test(o)?o.substring(0,7):o,newPrint:Rt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`,...c?{age:Ne(c,{noAffix:!0})}:{}}}}let C=z.cooldown??i.cooldown;if(C){for(let e of Object.keys(d))for(let[t,{date:n}]of Object.entries(d[e]))if(!dr(n,Number(C),g)){delete d[e][t];continue}}}if(_===0)return Ln(`No dependencies found, nothing to do.`);let b=0;for(let e of Object.keys(d))b+=Object.keys(d[e]).length;if(!b)return Ln(`All dependencies are up to date.`);let ee=Rn(d);if(l){for(let e of Object.keys(d))if(Object.keys(d[e]).length){try{let t=p[e];if(e===`go`){let[n,r]=Jn(t,d[e]);zn(m[e],n),Yn(c(u(m[e])),r)}else{let n=e===`npm`?Gn:Kn;zn(m[e],n(t,d[e]))}}catch(t){throw Error(`Error writing ${s(m[e])}: ${t.message}`)}console.info(Kt(`✨ ${s(m[e])} updated`))}}await X(void 0,ee)}try{await mr()}catch(e){await X(e)}export{};
66
+ $ updates -f .github/workflows
67
+ `),await Z()),n&&(console.info(Ve),await Z());let g={},_={},v={},y={},b=Date.now(),x=0,S=W(r),C=S instanceof Set?S:Zn.length?new Set:!1;if(C instanceof Set)for(let e of Zn)C.add(e);let[ee,te]=Nr(C),ne={},w=Or(d),re=Or(f),T=mr(p),ae=[];for(let t of ee){if(nn(t)){if(!or.has(`actions`)&&!te.has(t))continue;g.actions||={};let e;try{e=h(t,`utf8`)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}let n=jr(t);ne[n]={absPath:t,content:e};let r=Dr(w,[]),i=Dr(re,[]),a=Array.from(e.matchAll(qt),e=>Yt(e[1])).filter(e=>e!==null);for(let e of a){if(!$(e.name,`actions`,r,i,`actions`))continue;let t=`${n}${e.name}`;g.actions[t]||(g.actions[t]={old:e.ref},ae.push({...e,key:t,apiUrl:Xt(e.host,sr)}))}continue}let n=Jn[s(t)];if(!or.has(n)&&!te.has(t))continue;y[n]=t,g[n]||(g[n]={});let r=c(u(t)),i=await Pr(r),a=Dr(w,i?.include??[]),l=Dr(re,i?.exclude??[]),d={...i?.pin,...T},f=[];Array.isArray(o)?f=o.filter(e=>typeof e==`string`):`types`in i&&Array.isArray(i.types)?f=i.types:n===`npm`?f=Fe:n===`pypi`?f=[...Re,...Le]:n===`go`&&(f=Array.from(ze));let p={};try{v[n]=h(t,`utf8`)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}try{if(n===`npm`)p=JSON.parse(v[n]);else if(n===`pypi`){let{parse:e}=await Promise.resolve().then(()=>(qn(),Gn));p=e(v[n])}else{let e=Rt(v[n]);p.deps=e.deps,p.replace=e.replace}}catch(e){throw Error(`Error parsing ${t}: ${e.message}`)}for(let e of f){let t;if(t=n===`npm`||n===`go`?p[e]||{}:fr(p,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Pe(t))$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:Ct(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:Ct(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`npm`&&R(i)&&$(r,n,a,l,e)){let t=yt(i,r);g[n][`${e}${r}`]={old:t.version,oldOrig:i}}else n!==`go`&&De(i)&&$(r,n,a,l,e)?g[n][`${e}${r}`]={old:Ct(i),oldOrig:i}:n===`npm`&&!R(i)&&$(r,n,a,l,e)?_[`${e}${r}`]={old:i}:n===`go`&&$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:Kt(i),oldOrig:j(i)})}if(x+=Object.keys(g[n]).length+Object.keys(_).length,!x)continue;let S=[];S=await ie(Object.keys(g[n]),async e=>{let[t,a]=e.split(`\0`);if(n===`npm`){let{oldOrig:r}=g[n][e];return r&&R(r)?bt(a,t,X):vt(a,t,i,q,X)}else if(n===`go`)return Bt(a,t,g[n][e].oldOrig||g[n][e].old,r,X,dr);else return kt(a,t,X)},{concurrency:e});for(let[e,t,r,i]of S){if(e?.error)throw Error(e.error);let{useGreatest:a,usePre:o,useRel:s,semvers:c}=Ar(e.name),l=`${t}${i}`,u=g[n][l].old,f=g[n][l].oldOrig,p=d[i],m=Je(e,{usePre:o,useRel:s,useGreatest:a,semvers:c,range:u,mode:n,pinnedRange:p},{allowDowngrade:ar,matchesAny:Y,isGoPseudoVersion:Lt}),h=``;if([`go`,`pypi`].includes(n)&&m)h=m;else if(m)if(f&&R(f))if(f.startsWith(`npm:@jsr/`)){let e=/^(npm:@jsr\/[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else if(f.startsWith(`jsr:@`)){let e=/^(jsr:@[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else f.startsWith(`jsr:`)&&(h=`jsr:${m}`);else h=St(u,m,f);if(!m||f&&f===h){delete g[n][l];continue}let _=``;if(n===`npm`&&e.time?.[m]?_=e.time[m]:n===`pypi`&&e.releases?.[m]?.[0]?.upload_time_iso_8601?_=e.releases[m][0].upload_time_iso_8601:n===`go`&&e.Time&&(_=e.Time),g[n][l].new=h,f&&R(f)&&(g[n][l].newPrint=m),n===`npm`)g[n][l].info=et(e?.versions?.[m],r,e.name);else if(n===`pypi`)g[n][l].info=et(e,r,e.info.name);else if(n===`go`){let t=e.newPath||i;g[n][l].info=Wt(t)}_&&(g[n][l].date=_,g[n][l].age=Me(_,{noAffix:!0}))}if(Object.keys(_).length){let t=(await ie(Object.entries(_),([e,t])=>{let n=e.split(`\0`)[1];return Ot(e,t,typeof J==`boolean`?J:Y(n,J),X)},{concurrency:e})).filter(e=>e!==null);for(let e of t){let{key:t,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=e;g[n][t]={old:_[t].old,new:r,oldPrint:ct.test(o)?o.substring(0,7):o,newPrint:ct.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`,...c?{age:Me(c,{noAffix:!0})}:{}}}}let C=m??i.cooldown;if(C)for(let e of Object.keys(g))for(let[t,{date:n}]of Object.entries(g[e]))Mr(n,Number(C),b)||delete g[e][t]}if(g.actions&&(x+=Object.keys(g.actions).length),ae.length){let t=new Map;for(let e of ae){let n=`${e.apiUrl}/${e.owner}/${e.repo}`;t.has(n)||t.set(n,{apiUrl:e.apiUrl,owner:e.owner,repo:e.repo,infos:[]}),t.get(n).infos.push(e)}if(await ie(t.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await Qt(e,t,n,X),a=i.map(e=>e.name),o=a.map(e=>j(e)).filter(e=>k(e)),s=new Map;for(let e of i)e.commitSha&&s.set(e.commitSha,e.name);let c=new Map;async function l(r){if(c.has(r))return c.get(r);let i=await $t(e,t,n,r,X);return c.set(r,i),i}for(let e of r){let r=g.actions[e.key],c=`https://${e.host||`github.com`}/${t}/${n}`;if(e.isHash){let{usePre:t,useRel:n}=Ar(e.name),u=qe({},o,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:T[e.name]});if(!u){delete g.actions[e.key];continue}let d=a.find(e=>j(e)===u);if(!d){delete g.actions[e.key];continue}let f=i.find(e=>e.name===d)?.commitSha;if(!f||f===e.ref||f.startsWith(e.ref)||e.ref.startsWith(f)){delete g.actions[e.key];continue}let p=s.get(e.ref)||Array.from(s.entries()).find(([t])=>t.startsWith(e.ref))?.[1];r.old=e.ref,r.new=f.substring(0,e.ref.length),r.oldPrint=p||e.ref.substring(0,7),r.newPrint=d,r.info=c;let m=await l(f);m&&(r.date=m,r.age=Me(m,{noAffix:!0}))}else{let t=P(j(e.ref));if(!t){delete g.actions[e.key];continue}let{useGreatest:n,usePre:s,useRel:u,semvers:d}=Ar(e.name),f=qe({},o,{range:t,semvers:d,usePre:s,useRel:u,useGreatest:n||!0,pinnedRange:T[e.name]});if(!f||f===t){delete g.actions[e.key];continue}let p=a.find(e=>j(e)===f);if(!p){delete g.actions[e.key];continue}let m=en(p,e.ref);if(m===e.ref){delete g.actions[e.key];continue}r.new=m,r.info=c;let h=i.find(e=>e.name===p);if(h?.commitSha){let e=await l(h.commitSha);e&&(r.date=e,r.age=Me(e,{noAffix:!0}))}}}},{concurrency:e}),m)for(let[e,{date:t}]of Object.entries(g.actions))Mr(t,Number(m),b)||delete g.actions[e];Object.keys(g.actions).length||delete g.actions}if(x===0)return yr(`No dependencies found, nothing to do.`);let E=0;for(let e of Object.keys(g))E+=Object.keys(g[e]).length;if(!E)return yr(`All dependencies are up to date.`);let D=new Map;if(g.actions)for(let[e,t]of Object.entries(g.actions)){let[n,r]=e.split(`\0`);D.has(n)||D.set(n,[]),D.get(n).push({name:r,oldRef:t.old,newRef:t.new})}let oe=br(g);if(l){for(let e of Object.keys(g))if(Object.keys(g[e]).length){if(e===`actions`){for(let[e,t]of D){let{absPath:n,content:r}=ne[e]||{};if(n){try{xr(n,tn(r,t))}catch(e){throw Error(`Error writing ${s(n)}: ${e.message}`)}console.info(er(`✨ ${e} updated`))}}continue}try{let t=v[e];if(e===`go`){let[n,r]=Ht(t,g[e]);xr(y[e],n),Ut(c(u(y[e])),r,xr)}else{let n=e===`npm`?xt:At;xr(y[e],n(t,g[e]))}}catch(t){throw Error(`Error writing ${s(y[e])}: ${t.message}`)}console.info(er(`✨ ${s(y[e])} updated`))}}await Z(void 0,oe)}try{await Fr()}catch(e){await Z(e)}export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.5.10",
3
+ "version": "17.6.0",
4
4
  "description": " Flexible dependency update tool",
5
5
  "author": "silverwind",
6
6
  "repository": "silverwind/updates",
@@ -16,9 +16,9 @@
16
16
  "node": ">=22"
17
17
  },
18
18
  "devDependencies": {
19
- "@types/node": "25.2.3",
20
- "@typescript/native-preview": "7.0.0-dev.20260217.1",
21
- "eslint": "9.39.2",
19
+ "@types/node": "25.3.0",
20
+ "@typescript/native-preview": "7.0.0-dev.20260220.1",
21
+ "eslint": "9.39.3",
22
22
  "eslint-config-silverwind": "121.1.1",
23
23
  "nano-spawn": "2.0.0",
24
24
  "p-map": "7.0.4",
@@ -29,7 +29,7 @@
29
29
  "typescript": "5.9.3",
30
30
  "typescript-config-silverwind": "15.0.0",
31
31
  "updates-config-silverwind": "1.0.3",
32
- "versions": "14.1.2",
32
+ "versions": "14.1.3",
33
33
  "vitest": "4.0.18",
34
34
  "vitest-config-silverwind": "10.6.3"
35
35
  }