updates 17.6.0 → 17.6.1

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,7 +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
+ - `.{github,gitea,forgejo}/workflows` - supports actions
14
14
 
15
15
  # Usage
16
16
 
@@ -26,19 +26,19 @@ npx updates -u && npm i
26
26
 
27
27
  |Option|Description|
28
28
  |:-|:-|
29
- |`-u, --update`|Update versions and write package file|
29
+ |`-u, --update`|Update versions and write dependency file|
30
30
  |`-f, --file <path,...>`|File or directory to use, defaults to current directory|
31
- |`-i, --include <pkg,...>`|Include only given packages|
32
- |`-e, --exclude <pkg,...>`|Exclude given packages|
33
- |`-p, --prerelease [<pkg,...>]`|Consider prerelease versions|
34
- |`-R, --release [<pkg,...>]`|Only use release versions, may downgrade|
35
- |`-g, --greatest [<pkg,...>]`|Prefer greatest over latest version|
31
+ |`-i, --include <dep,...>`|Include only given dependencies|
32
+ |`-e, --exclude <dep,...>`|Exclude given dependencies|
33
+ |`-p, --prerelease [<dep,...>]`|Consider prerelease versions|
34
+ |`-R, --release [<dep,...>]`|Only use release versions, may downgrade|
35
+ |`-g, --greatest [<dep,...>]`|Prefer greatest over latest version|
36
36
  |`-t, --types <type,...>`|Dependency types to update|
37
- |`-P, --patch [<pkg,...>]`|Consider only up to semver-patch|
38
- |`-m, --minor [<pkg,...>]`|Consider only up to semver-minor|
39
- |`-d, --allow-downgrade [<pkg,...>]`|Allow version downgrades when using latest version|
40
- |`-C, --cooldown <days>`|Minimum package age in days|
41
- |`-l, --pin <pkg=range>`|Pin package to given semver range|
37
+ |`-P, --patch [<dep,...>]`|Consider only up to semver-patch|
38
+ |`-m, --minor [<dep,...>]`|Consider only up to semver-minor|
39
+ |`-d, --allow-downgrade [<dep,...>]`|Allow version downgrades when using latest version|
40
+ |`-C, --cooldown <days>`|Minimum dependency age in days|
41
+ |`-l, --pin <dep=range>`|Pin dependency to given semver range|
42
42
  |`-E, --error-on-outdated`|Exit with code 2 when updates are available and 0 when not|
43
43
  |`-U, --error-on-unchanged`|Exit with code 0 when updates are available and 2 when not|
44
44
  |`-r, --registry <url>`|Override npm registry URL|
@@ -51,7 +51,7 @@ npx updates -u && npm i
51
51
  |`-V, --verbose`|Print verbose output to stderr|
52
52
  |`-h, --help`|Print the help|
53
53
 
54
- Options that take multiple arguments can take them either via comma-separated value or by specifying the option multiple times. If an option has a optional `pkg` argument but none is given, the option will be applied to all packages instead. All `pkg` options support glob matching via `*` or regex (on CLI, wrap the regex in slashes, e.g. `'/^foo/'`).
54
+ Options that take multiple arguments can take them either via comma-separated value or by specifying the option multiple times. If an option has a optional `dep` argument but none is given, the option will be applied to all dependencies instead. All `dep` options support glob matching via `*` or regex (on CLI, wrap the regex in slashes, e.g. `'/^foo/'`).
55
55
 
56
56
  ## Config File
57
57
 
@@ -74,12 +74,12 @@ export default {
74
74
 
75
75
  ### Config Options
76
76
 
77
- - `include` *Array\<string | RegExp>*: Array of packages to include
78
- - `exclude` *Array\<string | RegExp>*: Array of packages to exclude
79
- - `types` *Array\<string>*: Array of package types to use
77
+ - `include` *Array\<string | RegExp>*: Array of dependencies to include
78
+ - `exclude` *Array\<string | RegExp>*: Array of dependencies to exclude
79
+ - `types` *Array\<string>*: Array of dependency types to use
80
80
  - `registry` *string*: URL to npm registry
81
- - `minAge` *number*: Minimum package age in hours
82
- - `pin` *Record\<string, string>*: Pin packages to semver ranges
81
+ - `minAge` *number*: Minimum dependency age in hours
82
+ - `pin` *Record\<string, string>*: Pin dependencies to semver ranges
83
83
 
84
84
  CLI arguments have precedence over options in the config file. `include`, `exclude`, and `pin` options are merged.
85
85
 
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  //#region modes/shared.d.ts
2
2
  type Config = {
3
- /** Array of packages to include */include?: Array<string | RegExp>; /** Array of packages to exclude */
3
+ /** Array of dependencies to include */include?: Array<string | RegExp>; /** Array of dependencies to exclude */
4
4
  exclude?: Array<string | RegExp>; /** Array of package types to use */
5
5
  types?: Array<string>; /** URL to npm registry */
6
- registry?: string; /** Minimum package age in days */
7
- cooldown?: number; /** Pin packages to semver ranges */
6
+ registry?: string; /** Minimum dependency age in days */
7
+ cooldown?: number; /** Pin dependencies to semver ranges */
8
8
  pin?: Record<string, string>;
9
9
  };
10
10
  type Dep = {
package/dist/index.js CHANGED
@@ -1,51 +1,51 @@
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,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+=`
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 j(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function Be(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ve(e){return e.split(`,`).filter(Boolean)}function He(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Ue(){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 We(e,t,n=` `){let r=``,i=Array(e[0].length).fill(0);for(let n of e)for(let[e,r]of n.entries()){let n=t(r);n>i[e]&&(i[e]=n)}for(let[a,o]of e.entries()){for(let[e,a]of o.entries()){e>0&&(r+=n);let s=` `.repeat(i[e]-t(a));r+=a+(e===o.length-1?``:s)}a<e.length-1&&(r+=`
3
+ `)}return r}const Ge={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ke(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ge[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}function qe(){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 Je=`17.6.1`,Ye=5e3,M=e=>e.replace(/^v/,``),N=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),P=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function Xe(e,t){return{headers:{"user-agent":`updates/${Je}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function Ze(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 Qe(e){let t=ce(e);return t?!!t.prerelease.length:!1}function $e(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function F(e){try{return de(e)?.version??``}catch{return``}}function et(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=F(n);if(!c)return c;i=$e(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(F(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function tt(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=F(n);if(!t)return null;let r=a||$e(n),s=e=>Qe(e)&&(!r||i),c=F(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=F(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=et(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=F(e.info.version)):r=e[`dist-tags`].latest;let d=F(n),p=$e(n),m=Qe(f),h=Qe(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&&Qe(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 nt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&nt.set(e.substring(0,t),e.substring(t+1))}function rt(e){try{let t=nt.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 I(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=rt(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function it(e,t,n){let r=M(t);if(!k(r))return null;if(n){let n=t,i=M(t);for(let t of e){let e=M(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=M(t);if(!k(n))return null;if(ge(r,n))return t}return null}function at(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 ot(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function st({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=at(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${ot(a)}/${e.directory}`)),a||t||``)}function ct(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 lt(e){try{return ct(h(e,`utf-8`))}catch{return}}function ut(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 dt(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 ft(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=lt(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(ut(`.${e}rc`));let u=dt(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const pt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,mt=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,ht=/^[0-9a-f]{7,}$/i,gt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,_t=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,vt=`https://registry.npmjs.org`;let L=null;const yt=new Map;function bt(){return L||ft(`npm`,{registry:vt})}function xt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function St(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:xt(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(xt(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:xt(a),type:`Basic`}}function R(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=St(`//${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:xt(i),type:`Basic`}}function Ct(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function wt(e,t){L||=bt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=yt.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:R(t,L),registry:t};else{let e=P(Ct(n,L));if(e!==t)try{let n=R(e,L);a=n?.token?{auth:n,registry:e}:{auth:R(t,L),registry:t}}catch{a={auth:R(t,L),registry:t}}else a={auth:R(t,L),registry:t}}return yt.set(r,a),a}async function Tt(e,t,n,r,i){L||=bt();let{auth:a,registry:o}=wt(e,P((typeof r.registry==`string`?r.registry:!1)||n.registry||L.registry||vt)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...Xe(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 z(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Et(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 Dt(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 Ot(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(`"${N(a)}": *"${o}@${N(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${N(o)}": *"${N(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function kt(e,t,n){let r=e.replace(_t,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 At(e){let t=e.match(gt);return t?.length===1?e.replace(gt,F(t[0])):e}async function jt(e,t,n){try{let r=await I(`${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 Mt(e,t,n){return(await Pt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}function Nt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Pt(e,t,n,r){try{let i=await I(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=Nt(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)=>I(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...Nt(await e.json()))}return a}catch{return[]}}async function Ft(e,t,n,r){let i=t.old.replace(pt,``),[a,o,s,c]=mt.exec(i)||[];if(!o||!s||!c)return null;if(ht.test(c)){let{hash:n,commit:i}=await jt(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=it(await Mt(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function It(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 Lt(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(`${N(o)} *= *"${N(s)}"`,`g`),`${o} = "${t[e].new}"`),n=n.replace(RegExp(`("${N(o)} *[<>=~]+ *)${N(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const Rt=x(te);function zt(){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 Bt(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Vt(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Ht(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Ut(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function B(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Wt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Gt(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 Kt(e,n,r,i,a){let o=[{name:e,old:r,new:r},n,null,e],s=Ut(e),c=async(e,n)=>{try{let{stdout:r}=await Rt(`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(B(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(B(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(B(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:M(p),Time:m,...h===e?{}:{newPath:h},sameMajorNew:M(d),sameMajorTime:f},n,null,e]}async function qt(e,t,n,r,i,a){let o=[{name:e,old:n,new:n},t,null,e];if(Vt(e,a))return Kt(e,t,n,r,i);let s=Ht(e),c=Ut(e),l=async t=>{let n=B(e,t);return i.doFetch(`${i.goProxyUrl}/${Ht(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:M(m),Time:h,...g===e?{}:{newPath:g},sameMajorNew:M(f),sameMajorTime:p},t,null,e]}function Jt(e,t){let n=N(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 Yt(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+${N(s)}\\s+)v${N(c)}`,`g`),`$1v${l}`);continue}let u=Ut(s),d=parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=B(s,d);n=n.replace(RegExp(`${N(s)} +v${N(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${N(s)}) +v${N(c)}`,`g`),`$1 v${l}`);n=Jt(n,s)}return[n,r]}function Xt(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(`"${N(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function Zt(e){let t=`https://${Qt(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${ot(t)}/${o.join(`/`)}`,n.toString()}else return t}function Qt(e){return/\/v[0-9]$/.test(e)?c(e):e}function $t(e){return e.replace(/-.*/,``)}const en=/^\s*-?\s*uses:\s*['"]?([^'"#\s]+)['"]?/gm,tn=/^[0-9a-f]{7,}$/i;function nn(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:tn.test(o)}}function rn(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}function an(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function on(e,t,n,r){try{let i=await I(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=an(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)=>I(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...an(await e.json()))}return a}catch{return[]}}async function sn(e,t,n,r,i){try{let a=await I(`${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 cn(e,t){let n=t.startsWith(`v`),r=ce(M(e)),i=M(t).split(`.`).length,a;return a=r?i===1?String(r.major):i===2?`${r.major}.${r.minor}`:r.version:M(e),n?`v${a}`:a}function ln(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${N(e)}@${N(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function un(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function dn(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}function fn(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}function pn(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
4
  `,e===t&&(i+=` `.repeat(a+n+2),i+=`^
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===`
5
+ `))}return i}var V,H=w((()=>{V=class extends Error{line;column;codeblock;constructor(e,t){let[n,r]=fn(t.toml,t.ptr),i=pn(t.toml,n,r);super(`Invalid TOML document: ${e}\n\n${i}`,t),this.line=n,this.column=r,this.codeblock=i}}}));function mn(e,t){let n=0;for(;e[t-++n]===`\\`;);return--n&&n%2}function hn(e,t=0,n=e.length){let r=e.indexOf(`
6
+ `,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}function gn(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
6
7
  `)return n;if(r===`\r`&&e[n+1]===`
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
+ `)return n+1;if(r<` `&&r!==` `||r===``)throw new V(`control characters are not allowed in comments`,{toml:e,ptr:t})}return e.length}function U(e,t,n,r){let i;for(;(i=e[t])===` `||i===` `||!n&&(i===`
8
9
  `||i===`\r`&&e[t+1]===`
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
+ `);)t++;return r||i!==`#`?t:U(e,gn(e,t),n)}function _n(e,t,n,r,i=!1){if(!r)return t=hn(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let t=e[a];if(t===`#`)a=hn(e,a);else if(t===n)return a+1;else if(t===r||i&&(t===`
10
11
  `||t===`\r`&&e[a+1]===`
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
+ `))return a}throw new V(`cannot find end of structure`,{toml:e,ptr:t})}function vn(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!==`'`&&mn(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}var yn=w((()=>{H()})),bn,xn,Sn=w((()=>{bn=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,xn=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(bn);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 Cn(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
13
  `&&t++);let a=0,o,s=``,c=t;for(;t<n-1;){let n=e[t++];if(n===`
13
14
  `||n===`\r`&&e[t]===`
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]===`
15
+ `){if(!i)throw new V(`newlines are not allowed in strings`,{toml:e,ptr:t-1})}else if(n<` `&&n!==` `||n===``)throw new V(`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(!On.test(r))throw new V(`invalid unicode escape`,{toml:e,ptr:a});try{s+=String.fromCodePoint(parseInt(r,16))}catch{throw new V(`invalid unicode escape`,{toml:e,ptr:a})}}else if(i&&(n===`
16
+ `||n===` `||n===` `||n===`\r`)){if(t=U(e,t-1,!0),e[t]!==`
17
+ `&&e[t]!==`\r`)throw new V(`invalid escape: only line-ending whitespace may be escaped`,{toml:e,ptr:a});t=U(e,t)}else if(n in kn)s+=kn[n];else throw new V(`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 wn(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=Tn.test(e);if(i||En.test(e)){if(Dn.test(e))throw new V(`leading zeroes are not allowed`,{toml:t,ptr:n});e=e.replace(/_/g,``);let a=+e;if(isNaN(a))throw new V(`invalid number`,{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(a))&&!r)throw new V(`integer value cannot be represented losslessly`,{toml:t,ptr:n});(i||r===!0)&&(a=BigInt(e))}return a}let a=new xn(e);if(!a.isValid())throw new V(`invalid value`,{toml:t,ptr:n});return a}var Tn,En,Dn,On,kn,An=w((()=>{yn(),Sn(),H(),Tn=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,En=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,Dn=/^[+-]?0[0-9_]/,On=/^[0-9a-f]{2,8}$/i,kn={b:`\b`,t:` `,n:`
18
+ `,f:`\f`,r:`\r`,e:`\x1B`,'"':`"`,"\\":`\\`}}));function jn(e,t,n){let r=e.slice(t,n),i=r.indexOf(`#`);return i>-1&&(gn(e,i),r=r.slice(0,i)),[r.trimEnd(),i]}function Mn(e,t,n,r,i){if(r===0)throw new V(`document contains excessively nested structures. aborting.`,{toml:e,ptr:t});let a=e[t];if(a===`[`||a===`{`){let[o,s]=a===`[`?In(e,t,r,i):Fn(e,t,r,i);if(n){if(s=U(e,s),e[s]===`,`)s++;else if(e[s]!==n)throw new V(`expected comma or end of structure`,{toml:e,ptr:s})}return[o,s]}let o;if(a===`"`||a===`'`){o=vn(e,t);let r=Cn(e,t,o);if(n){if(o=U(e,o),e[o]&&e[o]!==`,`&&e[o]!==n&&e[o]!==`
19
+ `&&e[o]!==`\r`)throw new V(`unexpected character encountered`,{toml:e,ptr:o});o+=+(e[o]===`,`)}return[r,o]}o=_n(e,t,`,`,n);let s=jn(e,t,o-+(e[o-1]===`,`));if(!s[0])throw new V(`incomplete key-value declaration: no value specified`,{toml:e,ptr:t});return n&&s[1]>-1&&(o=U(e,t+s[1]),o+=+(e[o]===`,`)),[wn(s[0],e,t,i),o]}var Nn=w((()=>{An(),Rn(),yn(),H()}));function Pn(e,t,n=`=`){let r=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new V(`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 V(`multiline strings are not allowed in keys`,{toml:e,ptr:t});let s=vn(e,t);if(s<0)throw new V(`unfinished string encountered`,{toml:e,ptr:t});r=e.indexOf(`.`,s);let c=e.slice(s,r<0||r>a?a:r),l=hn(c);if(l>-1)throw new V(`newlines are not allowed in keys`,{toml:e,ptr:t+r+l});if(c.trimStart())throw new V(`found extra tokens after the string part`,{toml:e,ptr:s});if(a<s&&(a=e.indexOf(n,s),a<0))throw new V(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});i.push(Cn(e,t,s))}else{r=e.indexOf(`.`,t);let n=e.slice(t,r<0||r>a?a:r);if(!Ln.test(n))throw new V(`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,U(e,a+1,!0,!0)]}function Fn(e,t,n,r){let i={},a=new Set,o;for(t++;(o=e[t++])!==`}`&&o;)if(o===`,`)throw new V(`expected value, found comma`,{toml:e,ptr:t-1});else if(o===`#`)t=gn(e,t);else if(o!==` `&&o!==` `&&o!==`
20
+ `&&o!==`\r`){let o,s=i,c=!1,[l,u]=Pn(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 V(`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 V(`trying to redefine an already defined value`,{toml:e,ptr:t});let[d,f]=Mn(e,u,`}`,n-1,r);a.add(d),s[o]=d,t=f}if(!o)throw new V(`unfinished table encountered`,{toml:e,ptr:t});return[i,t]}function In(e,t,n,r){let i=[],a;for(t++;(a=e[t++])!==`]`&&a;)if(a===`,`)throw new V(`expected value, found comma`,{toml:e,ptr:t-1});else if(a===`#`)t=gn(e,t);else if(a!==` `&&a!==` `&&a!==`
21
+ `&&a!==`\r`){let a=Mn(e,t-1,`]`,n-1,r);i.push(a[0]),t=a[1]}if(!a)throw new V(`unfinished array encountered`,{toml:e,ptr:t});return[i,t]}var Ln,Rn=w((()=>{An(),Nn(),yn(),H(),Ln=/^[a-zA-Z0-9-_]+[ \t]*$/}));function zn(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 Bn(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},a=r,o=i;for(let s=U(e,0);s<e.length;){if(e[s]===`[`){let t=e[++s]===`[`,n=Pn(e,s+=+t,`]`);if(t){if(e[n[1]-1]!==`]`)throw new V(`expected end of table declaration`,{toml:e,ptr:n[1]-1});n[1]++}let c=zn(n[0],r,i,t?2:1);if(!c)throw new V(`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=Pn(e,s),i=zn(r[0],a,o,0);if(!i)throw new V(`trying to redefine an already defined table or value`,{toml:e,ptr:s});let c=Mn(e,r[1],void 0,t,n);i[1][i[0]]=c[0],s=c[1]}if(s=U(e,s,!0),e[s]&&e[s]!==`
22
+ `&&e[s]!==`\r`)throw new V(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=U(e,s)}return r}var Vn=w((()=>{Rn(),Nn(),yn(),H()}));function W(e){let t=typeof e;if(t===`object`){if(Array.isArray(e))return`array`;if(e instanceof Date)return`date`}return t}function Hn(e){for(let t=0;t<e.length;t++)if(W(e[t])!==`object`)return!1;return e.length!=0}function Un(e){return JSON.stringify(e).replace(/\x7f/g,`\\u007f`)}function Wn(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 Un(e);if(t===`date`){if(isNaN(e.getTime()))throw TypeError(`cannot serialize invalid date`);return e.toISOString()}if(t===`object`)return Gn(e,n,r);if(t===`array`)return Kn(e,n,r)}function Gn(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+=Xn.test(o)?o:Un(o),i+=` = `,i+=Wn(e[o],W(e[o]),t-1,n)}return i+` }`}function Kn(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+=Wn(e[i],W(e[i]),t-1,n)}return r+` ]`}function qn(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&&`
23
+ `}[[${t}]]\n`,i+=Jn(0,e[a],t,n,r);return i}function Jn(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=W(t[c]);if(e===`symbol`||e===`function`)throw TypeError(`cannot serialize values of type '${e}'`);let s=Xn.test(c)?c:Un(c);if(e===`array`&&Hn(t[c]))o+=(o&&`
24
+ `)+qn(t[c],n?`${n}.${s}`:s,r-1,i);else if(e===`object`){let e=n?`${n}.${s}`:s;o+=(o&&`
25
+ `)+Jn(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=Wn(t[c],e,r,i),a+=`
26
+ `}}return e&&(a||!o)&&(a=a?`[${e}]\n${a}`:`[${e}]`),a&&o?`${a}\n${o}`:a||o}function Yn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(W(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=Jn(0,e,``,t,n);return r[r.length-1]===`
26
27
  `?r:r+`
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...]
28
+ `}var Xn,Zn=w((()=>{Xn=/^[a-z0-9-_]+$/i})),Qn=re({TomlDate:()=>xn,TomlError:()=>V,default:()=>$n,parse:()=>Bn,stringify:()=>Yn}),$n,er=w((()=>{Vn(),Zn(),Sn(),H(),$n={parse:Bn,stringify:Yn,TomlDate:xn,TomlError:V}}));const tr={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},nr={"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 G(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Ve(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function rr(e){for(let[t,{short:n}]of Object.entries(nr))if(t===e||n===e)return t;return``}const K=b({strict:!1,allowPositionals:!0,tokens:!0,options:nr}),q=K.values;for(let[e,t]of K.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=rr(t.value.substring(1)),r=K.tokens[e+1];q[t.name]=[!0],q[n]||(q[n]=[]),r.kind===`positional`&&r.value?q[n].push(r.value):q[n].push(!0)}const J=K.values,ir=K.positionals,[ar,or,sr]=[`magenta`,`red`,`green`].map(e=>J[`no-color`]?String:t=>C(e,String(t))),Y=Q(G(J.greatest)),cr=Q(G(J.prerelease)),lr=Q(G(J.release)),ur=Q(G(J.patch)),dr=Q(G(J.minor)),fr=Q(G(J[`allow-downgrade`])),pr=G(J.modes)||new Set([`npm`,`pypi`,`go`,`actions`]),mr=typeof J.forgeapi==`string`?P(J.forgeapi):`https://api.github.com`,hr=typeof J.pypiapi==`string`?P(J.pypiapi):`https://pypi.org`,gr=typeof J.jsrapi==`string`?P(J.jsrapi):`https://jsr.io`,_r=typeof J.goproxy==`string`?P(J.goproxy):zt(),vr=Bt();function yr(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 br(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:br(e,r)}function xr(e){console.error(`${Ue()} ${e}`)}const Sr=typeof J.timeout==`string`?Number(J.timeout):0,X={fetchTimeout:Sr||Ye,goProbeTimeout:Sr?Sr/2:2500,forgeApiUrl:mr,pypiApiUrl:hr,jsrApiUrl:gr,goProxyUrl:_r,doFetch:(e,t)=>Ze(e,t,!!J.verbose,xr,ar,sr,or),verbose:!!J.verbose};async function Cr(e){console.info(J.json?JSON.stringify({message:e}):e),await Z()}async function Z(e,t){if(e){let t=e.stack??e.message,n=e.cause;J.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(or(t)),n&&console.info(or(`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 wr(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`&&!z(n.oldOrig)&&(n.old=n.oldOrig),t===`actions`&&(n.old=M(n.old),n.new=M(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(J.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(Dr(e));return J[`error-on-outdated`]?t?2:0:J[`error-on-unchanged`]?t?0:2:0}function Tr(e,t){r===`win32`&&v(e,0),y(e,t,r===`win32`?{flag:`r+`}:void 0)}const Er=e=>S(e).length;function Dr(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`?Qt(s):s),n&&l.push(a),l.push(Ne(o.old,o.new,or)),l.push(Ne(o.new,o.old,sr)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return We(r,Er)}function Or(e,t){return RegExp(`^${N(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function kr(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Or(e,n):e instanceof RegExp?e:Or(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(kr(n,!0,!1));return t}return e}function Ar(e,t){let n=new Set;for(let t of e||[])n.add(kr(t,!0,!0));for(let e of t||[])n.add(kr(e,!1,!0));return n}function jr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Ve(e)):[]}function Mr(e){return ur===!0||j(e,ur)?new Set([`patch`]):dr===!0||j(e,dr)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Nr(e){return{useGreatest:typeof Y==`boolean`?Y:j(e,Y),usePre:typeof cr==`boolean`?cr:j(e,cr),useRel:typeof lr==`boolean`?lr:j(e,lr),semvers:Mr(e)}}function Pr(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 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(tr)){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 dn(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(tr)){let r=br(t,e());r&&n.add(u(r))}let t=br(l(`.github`,`workflows`),e());if(t)for(let e of dn(t))n.add(e)}return[n,r]}async function Ir(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 Lr(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);qe();let e=typeof J.sockets==`number`?J.sockets:96,{help:t,version:n,file:r,types:o,update:l,include:d,exclude:f,pin:p,cooldown:m}=J;t&&(a.write(`usage: updates [options] [files...]
29
29
 
30
30
  Options:
31
- -u, --update Update versions and write package file
31
+ -u, --update Update versions and write dependency file
32
32
  -f, --file <path,...> File or directory to use, defaults to current directory
33
- -i, --include <pkg,...> Include only given packages
34
- -e, --exclude <pkg,...> Exclude given packages
35
- -p, --prerelease [<pkg,...>] Consider prerelease versions
36
- -R, --release [<pkg,...>] Only use release versions, may downgrade
37
- -g, --greatest [<pkg,...>] Prefer greatest over latest version
33
+ -i, --include <dep,...> Include only given dependencies
34
+ -e, --exclude <dep,...> Exclude given dependencies
35
+ -p, --prerelease [<dep,...>] Consider prerelease versions
36
+ -R, --release [<dep,...>] Only use release versions, may downgrade
37
+ -g, --greatest [<dep,...>] Prefer greatest over latest version
38
38
  -t, --types <type,...> Dependency types to update
39
- -P, --patch [<pkg,...>] Consider only up to semver-patch
40
- -m, --minor [<pkg,...>] Consider only up to semver-minor
41
- -d, --allow-downgrade [<pkg,...>] Allow version downgrades when using latest version
42
- -C, --cooldown <days> Minimum package age in days
43
- -l, --pin <pkg=range> Pin package to given semver range
39
+ -P, --patch [<dep,...>] Consider only up to semver-patch
40
+ -m, --minor [<dep,...>] Consider only up to semver-minor
41
+ -d, --allow-downgrade [<dep,...>] Allow version downgrades when using latest version
42
+ -C, --cooldown <duration> Minimum dependency age, e.g. 7, 1w, 2d, 6h
43
+ -l, --pin <dep=range> Pin dependency to given semver range
44
44
  -E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
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
- -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${He}
48
+ -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${Ye}
49
49
  -M, --modes <mode,...> Which modes to enable. Either npm,pypi,go,actions. Default: npm,pypi,go,actions
50
50
  -j, --json Output a JSON object
51
51
  -n, --no-color Disable color output
@@ -57,11 +57,10 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
57
57
  $ updates
58
58
  $ updates -u
59
59
  $ updates -C 7
60
+ $ updates -M npm
60
61
  $ updates -e react,react-dom
61
- $ updates -e '/^react-(dom)?/'
62
62
  $ updates -f package.json
63
63
  $ updates -f pyproject.toml
64
64
  $ updates -f go.mod
65
- $ updates -l typescript=^5.0.0
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{};
65
+ $ updates -f .github
66
+ `),await Z()),n&&(console.info(Je),await Z());let g={},_={},v={},y={},b=Date.now(),x=0,S=G(r),C=S instanceof Set?S:ir.length?new Set:!1;if(C instanceof Set)for(let e of ir)C.add(e);let[ee,te]=Fr(C),ne={},w=jr(d),re=jr(f),T=yr(p),ae=[];for(let t of ee){if(un(t)){if(!pr.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=Pr(t);ne[n]={absPath:t,content:e};let r=Ar(w,[]),i=Ar(re,[]),a=Array.from(e.matchAll(en),e=>nn(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:rn(e.host,mr)}))}continue}let n=tr[s(t)];if(!pr.has(n)&&!te.has(t))continue;y[n]=t,g[n]||(g[n]={});let r=c(u(t)),i=await Ir(r),a=Ar(w,i?.include??[]),l=Ar(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(()=>(er(),Qn));p=e(v[n])}else{let e=Gt(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]||{}:Be(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:At(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:At(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`npm`&&z(i)&&$(r,n,a,l,e)){let t=Et(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:At(i),oldOrig:i}:n===`npm`&&!z(i)&&$(r,n,a,l,e)?_[`${e}${r}`]={old:i}:n===`go`&&$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:$t(i),oldOrig:M(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&&z(r)?Dt(a,t,X):Tt(a,t,i,J,X)}else if(n===`go`)return qt(a,t,g[n][e].oldOrig||g[n][e].old,r,X,vr);else return It(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}=Nr(e.name),l=`${t}${i}`,u=g[n][l].old,f=g[n][l].oldOrig,p=d[i],m=tt(e,{usePre:o,useRel:s,useGreatest:a,semvers:c,range:u,mode:n,pinnedRange:p},{allowDowngrade:fr,matchesAny:j,isGoPseudoVersion:Wt}),h=``;if([`go`,`pypi`].includes(n)&&m)h=m;else if(m)if(f&&z(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=kt(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&&z(f)&&(g[n][l].newPrint=m),n===`npm`)g[n][l].info=st(e?.versions?.[m],r,e.name);else if(n===`pypi`)g[n][l].info=st(e,r,e.info.name);else if(n===`go`){let t=e.newPath||i;g[n][l].info=Zt(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 Ft(e,t,typeof Y==`boolean`?Y:j(n,Y),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:ht.test(o)?o.substring(0,7):o,newPrint:ht.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]))He(n,Ke(String(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 on(e,t,n,X),a=i.map(e=>e.name),o=a.map(e=>M(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 sn(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}=Nr(e.name),u=et({},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=>M(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=F(M(e.ref));if(!t){delete g.actions[e.key];continue}let{useGreatest:n,usePre:s,useRel:u,semvers:d}=Nr(e.name),f=et({},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=>M(e)===f);if(!p){delete g.actions[e.key];continue}let m=cn(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))He(t,Ke(String(m)),b)||delete g.actions[e];Object.keys(g.actions).length||delete g.actions}if(x===0)return Cr(`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 Cr(`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=wr(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{Tr(n,ln(r,t))}catch(e){throw Error(`Error writing ${s(n)}: ${e.message}`)}console.info(sr(`✨ ${e} updated`))}}continue}try{let t=v[e];if(e===`go`){let[n,r]=Yt(t,g[e]);Tr(y[e],n),Xt(c(u(y[e])),r,Tr)}else{let n=e===`npm`?Ot:Lt;Tr(y[e],n(t,g[e]))}}catch(t){throw Error(`Error writing ${s(y[e])}: ${t.message}`)}console.info(sr(`✨ ${s(y[e])} updated`))}}await Z(void 0,oe)}try{await Lr()}catch(e){await Z(e)}export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.6.0",
3
+ "version": "17.6.1",
4
4
  "description": " Flexible dependency update tool",
5
5
  "author": "silverwind",
6
6
  "repository": "silverwind/updates",
@@ -20,7 +20,6 @@
20
20
  "@typescript/native-preview": "7.0.0-dev.20260220.1",
21
21
  "eslint": "9.39.3",
22
22
  "eslint-config-silverwind": "121.1.1",
23
- "nano-spawn": "2.0.0",
24
23
  "p-map": "7.0.4",
25
24
  "smol-toml": "1.6.0",
26
25
  "timerel": "5.8.5",