updates 17.19.2 → 17.20.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/index.js +3 -3
- package/dist/renovate.js +1 -1
- package/dist/shared.js +6 -6
- package/dist/shared2.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- `go.mod`, `go.work` - go dependencies
|
|
13
13
|
- `Cargo.toml` - rust dependencies, including workspaces
|
|
14
14
|
- `.{github,gitea,forgejo}/workflows` - actions and docker images
|
|
15
|
-
- `Dockerfile*`, `docker-*.{yml,yaml}` - docker images
|
|
15
|
+
- `Dockerfile*`, `compose*.{yml,yaml}`, `docker-*.{yml,yaml}` - docker images
|
|
16
16
|
- `Makefile`, `*.mk` - go tool versions in `go install` paths and docker image tags
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
@@ -114,7 +114,7 @@ A `cooldown` of `0` in an override disables a global cooldown for the matched de
|
|
|
114
114
|
|
|
115
115
|
### Renovate config
|
|
116
116
|
|
|
117
|
-
If a [Renovate](https://docs.renovatebot.com/) config is found, `ignoreDeps` and simple `packageRules` are inherited as `exclude`/`pin`. `minimumReleaseAge` is *not* inherited as `cooldown` by default — opt in via:
|
|
117
|
+
If a [Renovate](https://docs.renovatebot.com/) config is found, `ignoreDeps` and simple `packageRules` are inherited as `include`/`exclude`/`pin`. A rule that disables only negated matchers, like `"matchPackageNames": ["!/^@types/"]`, becomes an `include` since it leaves just those packages enabled. `minimumReleaseAge` is *not* inherited as `cooldown` by default — opt in via:
|
|
118
118
|
|
|
119
119
|
```ts
|
|
120
120
|
export default {
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{G as e,P as t,a as n,i as r,m as i,n as a,o,q as s,r as c,s as l}from"./shared.js";import{exit as u,platform as d,stderr as f,stdout as p,versions as m}from"node:process";import{stripVTControlCharacters as h,styleText as g}from"node:util";const{args:_,positionals:v}=c(),{startDir:y}=n(_,v);if(!_.help&&!_.version)for(let e of a(y,_))(async()=>{try{await fetch(e,{method:`HEAD`})}catch{}})();let b=String,x=String,S=!1;function C(e){return _[`no-color`]===!0?!1:_.color===!0?!0:e.noColor===!0?!1:e.color===!0||p.isTTY}async function w(e,t){if(e){let t=e.message??String(e);console.info(S?JSON.stringify({error:t}):b(t))}d===`win32`&&Number(m?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),u(t??+!!e)}async function T(){for(let e of[p,f])e?._handle?.setBlocking?.(!0);_.help&&(p.write(`usage: updates [options] [files...]
|
|
3
3
|
|
|
4
4
|
Options:
|
|
5
5
|
-u, --update Update versions and write dependency file
|
|
@@ -17,7 +17,7 @@ import{A as e,B as t,H as n,a as r,i,n as a,o,p as s,r as c,s as l}from"./shared
|
|
|
17
17
|
-m, --minor [<dep,...>] Consider only up to semver-minor
|
|
18
18
|
-d, --allow-downgrade [<dep,...>] Allow version downgrades when using latest version
|
|
19
19
|
-s, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 25
|
|
20
|
-
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${
|
|
20
|
+
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${i}
|
|
21
21
|
-r, --registry <url> Override npm registry URL
|
|
22
22
|
-I, --indirect Include indirect Go dependencies
|
|
23
23
|
-E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
|
|
@@ -44,4 +44,4 @@ import{A as e,B as t,H as n,a as r,i,n as a,o,p as s,r as c,s as l}from"./shared
|
|
|
44
44
|
$ updates -f Dockerfile
|
|
45
45
|
$ updates -f docker-compose.yml
|
|
46
46
|
$ updates -f Makefile
|
|
47
|
-
`),await w()),_.version&&(console.info(
|
|
47
|
+
`),await w()),_.version&&(console.info(t),await w());let e=await r(_,v);C(e)&&(b=e=>g(`red`,String(e)),x=e=>g(`green`,String(e))),S=!!e.json;let n=await o(e),a=Object.keys(n.results).length>0;if(n.message)console.info(e.json?JSON.stringify({message:n.message}):n.message);else if(a&&(e.json?console.info(JSON.stringify({results:n.results})):console.info(D(n)),e.update))for(let[e,t]of Object.entries(n.results))Object.values(t).some(e=>Object.keys(e).length)&&console.info(x(`✨ ${e} updated`));e.errorOnOutdated?await w(void 0,a?2:0):e.errorOnUnchanged?await w(void 0,a?0:2):await w()}const E=e=>h(e).length;function D(t){let n=Object.keys(t.results),r=n.length>1,i=[r?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],a=new Set;for(let o of n)for(let n of Object.values(t.results[o]))for(let[t,s]of Object.entries(n)){let n=`${o}|${t}|${s.old}|${s.new}`;a.has(n)||(a.add(n),i.push([o===`go`?l(t):t,...r?[o]:[],e(s.old,s.new,b),e(s.new,s.old,x),s.age||``,s.info||``]))}return s(i,E)}try{await T()}catch(e){await w(e)}export{};
|
package/dist/renovate.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{H as e,J as t,K as n,U as r,W as i,Y as a,t as o}from"./shared.js";import{join as s}from"node:path";import{readFile as c}from"node:fs/promises";const l=[`renovate.json`,`renovate.json5`,...[...i,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],u={y:365,year:365,years:365,mo:30,month:30,months:30,w:7,week:7,weeks:7,d:1,day:1,days:1,h:1/24,hour:1/24,hours:1/24,min:1/1440,minute:1/1440,minutes:1/1440,s:1/86400,second:1/86400,seconds:1/86400};function d(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=u[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function f(e){return!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length?!1:Object.keys(e).every(e=>!e.startsWith(`match`)||e===`matchPackageNames`)}async function p(e){let t=(await Promise.all(l.map(async t=>{let n=s(e,...t.split(`/`));try{return{path:n,text:await c(n,`utf8`)}}catch{return null}}))).find(e=>e!==null);if(t)return t;try{let t=s(e,`package.json`),n=JSON.parse(await c(t,`utf8`));if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:t,text:JSON.stringify(n.renovate)}}catch{}}function m(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function h(e){return/[*?[\]{}!()|+]/.test(e)}function g(e){let t=[],n=[];for(let r of e)r.startsWith(`!`)&&r.length>1?n.push(r.substring(1)):t.push(r);return{positive:t,negated:n}}function _(e,t){let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=d(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=[],i=[],o={};if(Array.isArray(e.ignoreDeps))for(let t of e.ignoreDeps)typeof t==`string`&&t&&i.push(t);if(Array.isArray(e.packageRules))for(let t of e.packageRules){if(!t||typeof t!=`object`||!f(t))continue;let{positive:e,negated:n}=g(t.matchPackageNames.filter(e=>typeof e==`string`&&!!e));if(t.enabled===!1)if(e.length)for(let t of e)i.push(m(t));else for(let e of n)r.push(m(e));if(typeof t.allowedVersions==`string`&&a(t.allowedVersions))for(let n of e)!h(n)&&typeof m(n)==`string`&&(o[n]=t.allowedVersions)}return r.length&&(n.include=r),i.length&&(n.exclude=i),Object.keys(o).length&&(n.pin=o),n}const v={github:(e,t,n)=>`https://raw.githubusercontent.com/${e}/${t}/${n}`,gitlab:(e,t,n)=>`https://gitlab.com/${e}/-/raw/${t}/${n}`,gitea:(e,t,n)=>`https://gitea.com/api/v1/repos/${e}/raw/${n}?ref=${t}`,forgejo:(e,t,n)=>`https://code.forgejo.org/api/v1/repos/${e}/raw/${n}?ref=${t}`};function y(e){if(/^https?:\/\//i.test(e))return{kind:`http`,url:e};let t=e.indexOf(`>`);if(t===-1)return null;let n=e.slice(0,t);if(!Object.hasOwn(v,n))return null;let r=e.slice(t+1).replace(/\([^)]*\)\s*$/,``),i=`HEAD`,a=r.indexOf(`#`);a!==-1&&(i=r.slice(a+1)||`HEAD`,r=r.slice(0,a));let o,s,c=r.indexOf(`//`);if(c!==-1)o=r.slice(c+2),r=r.slice(0,c);else{let e=r.indexOf(`:`);e!==-1&&(s=r.slice(e+1),r=r.slice(0,e))}let l=r.replace(/\/+$/,``);return l.includes(`/`)?{kind:`forge`,forge:n,slug:l,ref:i,name:s,subpath:o}:null}const b=[`default.json`,`default.json5`,`renovate.json`,`renovate.json5`,`.renovaterc.json`,`.renovaterc`];function x(e){return/\.json5?$/.test(e)?[e]:[`${e}.json`,`${e}.json5`]}function S(e){if(e===null)return null;try{let t=o(e);return t&&typeof t==`object`?t:null}catch{return null}}async function C(e,t){if(e.kind===`http`)return S(await t(e.url));let n=v[e.forge],r=async r=>S(await t(n(e.slug,e.ref,r)));if(e.subpath){for(let t of x(e.subpath)){let e=await r(t);if(e)return e}return null}let i=e.name??`default`;for(let t of b){let n=await r(t);if(!n)continue;let a=n.presets?.[i];return a&&typeof a==`object`?a:e.name?null:n}return null}function w(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=Array.isArray(r)&&Array.isArray(t)?[...t,...r]:r}return n}async function T(e,t,n,r){let i={},a=Array.isArray(e.extends)?e.extends:[];for(let e of a){if(typeof e!=`string`||r>=10||n.has(e))continue;let a=y(e);if(!a)continue;let o=await C(a,t);o&&(i=w(i,await T(o,t,new Set(n).add(e),r+1)))}let{extends:o,...s}=e;return w(i,s)}async function E(e,t){let n=``;try{n=new URL(e).hostname}catch{}let{getForgeTokens:r,getFetchOpts:i,githubApiUrl:a}=await import(`./shared2.js`),[o]=n?await r(n,a):[],s={...i(`Bearer`,o).headers};return t&&(s[`if-none-match`]=t),s}function D({noCache:t=!1,timeout:n=1e4}={}){return async i=>{let a=t?null:await e(i),o=await E(i,a?.etag),s;try{s=await fetch(i,{headers:o,signal:AbortSignal.timeout(n)})}catch{return a?.body??null}if(s.status===304&&a)return a.body;if(!s.ok)return a?.body??null;let c;try{c=await s.text()}catch{return a?.body??null}let l=s.headers.get(`etag`);return l&&!t&&r(i,l,c),c}}const O=n(e=>t(e,async e=>{let t=await p(e);if(!t)return null;let n;try{n=o(t.text)}catch(e){throw Error(`Unable to parse renovate config ${t.path}: ${e.message}`)}return!n||typeof n!=`object`?null:{parsed:n,path:t.path}})),k=new Map;async function A(e,t={},n=D()){let r=await O(e);if(!r)return{};let i=k.get(r.path);return i||(i=T(r.parsed,n,new Set,0),k.set(r.path,i)),_(await i,t)}export{A as loadRenovateConfig,D as makePresetFetcher};
|
package/dist/shared.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{parseArgs as a,styleText as o}from"node:util";import{basename as s,dirname as c,isAbsolute as l,join as u,relative as d,resolve as f}from"node:path";import{accessSync as p,
|
|
1
|
+
import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{parseArgs as a,styleText as o}from"node:util";import{basename as s,dirname as c,isAbsolute as l,join as u,relative as d,resolve as f}from"node:path";import{accessSync as p,globSync as m,lstatSync as h,readFileSync as g,readdirSync as _,statSync as v,truncateSync as y,writeFileSync as b}from"node:fs";import{access as ee,mkdir as x,readFile as S,rename as C,writeFile as w}from"node:fs/promises";import{createHash as te}from"node:crypto";import{homedir as T}from"node:os";import{pathToFileURL as E}from"node:url";const D=/^\[\[([^\]]+)\]\]$/,ne=/^\[([^[\]]+)\]$/;function re(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=ue(i).trim();if(!a)continue;let o=D.exec(a);if(o){let e=t,r=le(o[1]);for(let t=0;t<r.length-1;t++){let n=e[r[t]];Array.isArray(n)?e=n[n.length-1]:((!n||typeof n!=`object`)&&(e[r[t]]={}),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let a={};e[i].push(a),n=a;continue}let s=ne.exec(a);if(s){n=de(t,le(s[1]));continue}let c=j(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=le(l),f=de(n,d.slice(0,-1)),p=d[d.length-1],m=ie(u);if(u.startsWith(`[`)&&!k(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${ue(r[n])}`,!k(t));n++);e=n,f[p]=ae(t)}else if(u.startsWith(`{`)&&!k(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${ue(r[n])}`,!k(t));n++);e=n,f[p]=se(t)}else if(m){let t=u.slice(3),n=e+1;for(;n<r.length;n++){let e=r[n].indexOf(m);if(e>=0){t+=(t?`
|
|
2
2
|
`:``)+r[n].slice(0,e);break}t+=(t?`
|
|
3
|
-
`:``)+r[n]}e=n,f[p]=
|
|
4
|
-
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const
|
|
5
|
-
`)}return a}const Ze={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Qe(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ze[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function $e(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function
|
|
6
|
-
`);if(n===-1)return null;let r=t.substring(0,n),i=t.substring(n+1);return r&&i?{etag:r,body:i}:null}catch{return null}}const lt=new Set;let ut=0;function dt(e,t,r){let i=(async()=>{try{await(at??=S(it,{recursive:!0}))}catch{at=null;return}try{let i=u(it,`${st(e)}.cache`),a=`${i}.${n}-${ut++}.tmp`;await ne(a,`${t}\n${r}`),await te(a,i)}catch{}})();lt.add(i),(async()=>{await i,lt.delete(i)})()}async function ft(){for(;lt.size;)await Promise.all(lt)}var pt=`17.19.2`;function G(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/(24*3600*1e3)>=t}const mt=pt,ht=5e3,gt=2500,K=e=>e[0]===`v`?e.substring(1):e,_t=e=>e.endsWith(`/`)?e.slice(0,-1):e;function vt(e,t){return{headers:{"user-agent":`updates/${mt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const yt=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function bt(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&yt.has(t)}async function xt(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=bt(t),n}}async function q(e,t,n={}){for(let r=0;;r++)try{return await e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})}catch(e){if(r>=2||!e?.transient)throw e}}async function St(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function Ct(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function wt(e,t,n,r,i){let a=Ct(await St(t),r);return i&&!n.noCache&&dt(e,i,a),{body:a,res:t}}async function Tt(e,t,n={},r){let i=t.noCache?null:await ct(e),a=n.headers,o=i?{...a,"if-none-match":i.etag}:a,s=await q(t,e,{...n,headers:o});return s?s.status===304&&i?{body:i.body,res:s}:s.ok?wt(e,s,t,r,s.headers?.get?.(`etag`)):{res:s}:{res:void 0}}async function Et(e,t,n={},r){if(!t.noCache){let t=await ct(e);if(t)return{body:t.body}}let i=await q(t,e,n);return i?i.ok?wt(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function Dt(e){return(N(e)?.prerelease.length??0)>0}function Ot(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const kt=new WeakMap;function At(e){let t=kt.get(e);if(t)return t;let n=new Set(e);return n.add(`prerelease`),e.has(`patch`)&&n.add(`prepatch`),e.has(`minor`)&&n.add(`preminor`),e.has(`major`)&&n.add(`premajor`),kt.set(e,n),n}function jt(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=Ot(e)||Dt(e),l=Dt(t);return c&&!l?Ce(s,o)||n:!l&&we(s,o)?a(i,r):!0}function J(e){return xe(e)?.version??``}function Mt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=J(n);if(!d)return d;let f=Ot(n)||i,p=f?At(r):r,m=e?.time,h=!!m,g=o||!h,_=!!(c&&l),v=0,y=!1,b=d,x=N(d);for(let e of t){let t=N(e);if(!t?.version||t.prerelease.length&&(!f||a))continue;let n=t.version;if(s&&!B(n,s))continue;let r;if(_&&(r=u?u(e):h?m[e]:void 0,!G(r,c,l)))continue;let i=F(x,t);if(!(!i||!p.has(i)))if(g)((y?_e(t,x)>0:ge(t,x)>=0)||s&&!B(b,s))&&(b=n,x=t,y=!0);else{let i=Date.parse(r??m[e]);i>=0&&i>v&&(b=n,x=t,v=i)}}return b||null}function Nt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l},{allowDowngrade:u,matchesAny:d,isGoPseudoVersion:f}){if(n===`*`||n.includes(`||`)||/\d\s/.test(n))return null;let p=[],m;if(t===`pypi`){let t=e.releases;p=Object.keys(t),m=e=>t?.[e]?.[0]?.upload_time_iso_8601}else if(t===`npm`||t===`cargo`)p=Object.keys(e.versions);else if(t===`go`){let t=J(n);if(!t)return null;let r=a||Ot(n),p=e=>Dt(e)&&(!r||i),m={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},h=e.old||n,g=J(e.new);if(g&&!f(e.new)&&!p(e.new)){let n=P(t,g);if(n&&o.has(n)&&jt(h,e.new,m)&&G(e.Time,c,l)&&(!s||B(g,s)))return e.new}let _=J(e.sameMajorNew);if(_&&!f(e.sameMajorNew)&&!p(e.sameMajorNew)){let n=P(t,_);if(n&&o.has(n)&&jt(h,e.sameMajorNew,m)&&G(e.sameMajorTime,c,l)&&(!s||B(_,s)))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}if(c&&l&&e.olderEligible&&!p(e.olderEligible.version)){let n=J(e.olderEligible.version);if(n){let r=P(t,n);if(r&&o.has(r)&&jt(h,e.olderEligible.version,m)&&(!s||B(n,s)))return e.Time=e.olderEligible.time,delete e.newPath,e.olderEligible.version}}return null}let h=Mt(e,p,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:m});if(!h)return null;if(r)return h;{let r=``,f=``,p=!1;t===`pypi`?(f=e.info.version,r=J(e.info.version),p=Dt(f)):(r=e[`dist-tags`].latest,p=Dt(r));let m=J(n),g=Ot(n),_=Dt(h),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||g&&_)return h;if(g&&!_)return jt(n,h,v)?h:null;let y=P(m,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&p?h:we(r,m)&&!p?jt(n,r,v)?r:I(h,m)?h:null:!g&&p&&!a||s&&!B(r,s)||c&&l&&!G(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const Pt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&Pt.set(e.substring(0,t),e.substring(t+1))}const Ft=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function It(){return Array.from(new Set(Ft.map(e=>t[e]).filter(e=>!!e)))}let Lt;function Rt(){let e=It();return e.length?Promise.resolve(e):Lt??=(async()=>{try{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]),{stdout:n}=await t(e)(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),r=n.trim();return r?[r]:[]}catch{return[]}})()}const zt=new Map;async function Bt(e,t){if(!e)return[];let n=Pt.get(e);if(n)return[n];let r=``;try{r=new URL(t).hostname}catch{}return e===`api.github.com`||e===`github.com`||e===r?Rt():[]}async function Vt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await Bt(r,t.forgeApiUrl),a=e=>{let t=vt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return q(t,e,a());let o=r?zt.get(r):void 0;if(o)return q(t,e,a(o));for(let n of i){let i=await q(t,e,a(n));if(i.status!==401&&i.status!==403)return r&&zt.set(r,n),i}return q(t,e,a())}function Ht(e,t){let n=K(t);if(!ve(n))return null;let r=``,i=``;for(let t of e){let e=K(t);ve(e)&&(!r||I(e,i))&&(r=t,i=e)}return r&&I(i,n)?r:null}function Ut(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Wt=/^[0-9a-f]{7,}$/i;function Gt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Kt(e,t){let n=t.noCache?null:await ct(e),r=await Vt(e,t,n?{"if-none-match":n.etag}:void 0);if(r?.status===304&&n)try{let e=JSON.parse(n.body);return{tags:e.tags||[],link:e.link||``}}catch{return null}if(!r?.ok)return null;let i=Gt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&dt(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function qt(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await Kt(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Math.min(Number(new URL(n[1]).searchParams.get(`page`)),10);if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>Kt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function Jt(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function Yt(e,t,n=``){let r=t.startsWith(`v`),i=K(e),a=K(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function Xt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Zt({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`])if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=Ut(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Xt(a)}/${e.directory}`)),a||t||``)}const Qt={"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`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},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-cache":{short:`x`,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 $t(e,t){return RegExp(`^${W(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function en(e,t,n){if(t&&typeof e==`string`)return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):$t(e,n);{let t=e instanceof RegExp?e:$t(e,n);return/[gy]/.test(t.flags)?new RegExp(t.source,t.flags.replace(/[gy]/g,``)):t}}function tn(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(Je)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function nn(e){for(let[t,{short:n}]of Object.entries(Qt))if(t===e||n===e)return t;return``}function rn(e){return new Set(e.map(e=>en(e,!1,!0)))}function an(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Je(e)):[]}function on(e){let t={},n=Array.isArray(e)?e:[e];for(let e of n){if(typeof e!=`string`)continue;let n=e.indexOf(`=`);if(n===-1)continue;let r=e.slice(0,n),i=e.slice(n+1);r&&i&&Ne(i)&&(t[r]=i)}return t}function sn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:rn(e)}async function cn(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await ee(r)}catch{return null}try{return{configDir:e,filename:n,default:(await import(re(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const ln=rt(e=>tt(e,cn));async function un(e,t={}){let n=await ln(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t);return{...await i(n?.configDir??e,r.inherit?.renovate,o),...r}}function dn(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 fn(e){try{return dn(_(e,`utf-8`))}catch{return}}function pn(t){let n=e();for(;;){let e=u(n,t);try{if(y(e).isFile())return e}catch{}let r=c(n);if(r===n)break;n=r}}function mn(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function hn(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=fn(e);t&&(o.push(t),s.push(e))}i||(c(u(`/etc`,e,`config`)),c(u(`/etc`,`${e}rc`))),a&&(c(u(a,`.config`,e,`config`)),c(u(a,`.config`,e)),c(u(a,`.${e}`,`config`)),c(u(a,`.${e}rc`))),c(pn(`.${e}rc`));let l=mn(`${e}_`);return l.config&&c(l.config),Object.assign({},...o,l,s.length?{configs:s,config:s[s.length-1]}:void 0)}const gn=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,_n=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,vn=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,yn=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,bn=/(@[^/]+\/)?([^/]+)/g;function xn(e){let t=e.match(bn);return t?t[t.length-1]:e}const Sn=`https://registry.npmjs.org`;let Cn=null;const wn=new Map;function Tn(){return Cn??=hn(`npm`,{registry:Sn})}function En(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Dn(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:En(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(En(a),`base64`).toString(`utf8`);return{token:Buffer.from(`${i}:${e}`).toString(`base64`),type:`Basic`,username:i,password:e}}let o=n(`_auth`);if(o)return{token:En(o),type:`Basic`}}function On(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Dn(`//${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:En(i),type:`Basic`}}function kn(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function An(e,t){let n=Tn(),r=e.startsWith(`@`)?e.split(`/`)[0]:``,i=`${r}:${t}`,a=wn.get(i);if(a)return a;let o=()=>({auth:On(t,n),registry:t}),s;if(!e.startsWith(`@`))s=o();else{let e=_t(kn(r,n));if(e!==t)try{let t=On(e,n);s=t?.token?{auth:t,registry:e}:o()}catch{s=o()}else s=o()}return wn.set(i,s),s}function jn(e,t,n){let r=_t(typeof n.registry==`string`&&n.registry||t.registry||Tn().registry||Sn);return{...An(e,r),originalRegistry:r}}function Mn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Nn=new Map,Pn=new Map,Fn=new Map;function In(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]={};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function Ln(e,t,n,r,i){let{auth:a,registry:o}=jn(e,n,r),s=Mn(o,t===`resolutions`?xn(e):e),c=Nn.get(s);if(!c){let t=vt(a?.type,a?.token);t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`},c=(async()=>{try{let n=await Tt(s,i,t,In);return`body`in n||Jt(n.res,s,e,o),JSON.parse(n.body)}catch(e){throw Nn.delete(s),e}})(),Nn.set(s,c)}return[await c,o]}async function Rn(e,t,n,r,i){let{auth:a,registry:o}=jn(e,n,r),s=Mn(o,e,t),c=Pn.get(s);if(c)return c;let l=(async()=>{try{let n=vt(a?.type,a?.token),r=await Et(s,i,n,e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0}));if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}if(!l){let r=Mn(o,e),a=Fn.get(r);a||(a=(async()=>{try{let e=await q(i,r,n);return e?.ok?await e.json():null}catch{return Fn.delete(r),null}})(),Fn.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return Pn.set(s,l),l}function zn(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Bn(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Vn(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 Hn(e,t){let n=/^@([^/]+)\/(.+)$/.exec(e);if(!n)throw Error(`Invalid JSR package name: ${e}`);let[,r,i]=n,a=`${t.jsrApiUrl}/@${r}/${i}/meta.json`,o=await Tt(a,t,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))}));if(`body`in o){let n=JSON.parse(o.body),r={},i={};for(let[e,t]of Object.entries(n.versions??{}))r[e]={version:e,time:t.createdAt},i[e]=t.createdAt;return[{name:e,"dist-tags":{latest:n.latest},versions:r,time:i},t.jsrApiUrl]}Jt(o.res,a,e,`JSR`)}function Un(e,t){let n=new Map;for(let[e,{old:r,oldOrig:i,new:a}]of Object.entries(t)){let[t,o]=e.split(`\0`),s=i||r;t===`packageManager`?n.set(`${t}\0${o}@${s}`,`"${t}": "${o}@${a}"`):n.set(`${o}\0${s}`,`"${o}": "${a}"`)}return n.size?e.replace(/"((?:[^"\\]|\\.)*)": *"((?:[^"\\]|\\.)*)"/g,(e,t,r)=>n.get(`${t}\0${r}`)??e):e}function Wn(e,t,n){let r=e.replace(yn,t);if(!n||n===e)return r;let i=/^([\^~]|>=\s*)([\d.]+)$/.exec(n);if(!i)return r;let[,a,o]=i,s=t.split(/[-+]/)[0];if(s!==t)return r;let c=o.split(`.`).length,l=s.split(`.`);return l.length===c?r:`${a}${l.slice(0,c).join(`.`)}`}function Y(e){if(/[xX*]/.test(e))return e;let t=e.match(vn);return t?.length===1?e.replace(vn,J(t[0])):e}async function Gn(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await ct(r),t=await Vt(r,n,e?{"if-none-match":e.etag}:void 0),i;if(t?.status===304&&e)i=e.body;else if(t?.ok){let{sha:e,commit:a}=JSON.parse(await t.text())[0];i=JSON.stringify([{sha:e,commit:{committer:a?.committer,author:a?.author}}]);let o=t.headers.get(`etag`);o&&!n.noCache&&dt(r,o,i)}else return{hash:``,commit:{}};let{sha:a,commit:o}=JSON.parse(i)[0];return{hash:a,commit:o}}catch{return{hash:``,commit:{}}}}async function Kn(e,t,n){return(await qt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function qn(e,t,n){let r=t.old.replace(gn,``),[,i,a,o]=_n.exec(r)||[];if(!i||!a||!o)return null;let s=e=>{let n=t.old.lastIndexOf(o);return t.old.slice(0,n)+e+t.old.slice(n+o.length)};if(Wt.test(o)){let{hash:t,commit:r}=await Gn(i,a,n);if(!t)return null;let c=r?.committer?.date??r?.author?.date,l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:s(l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let t=Ht(await Kn(i,a,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function Jn(e){let t={};for(let[n,r]of Object.entries(e.releases??{}))t[n]=(r??[]).slice(0,1).map(e=>e.upload_time_iso_8601?{upload_time_iso_8601:e.upload_time_iso_8601}:{});let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function Yn(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await Tt(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Jn);if(`body`in r)return[JSON.parse(r.body),null];Jt(r.res,n,e,t.pypiApiUrl)}function Xn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`(['"])(${W(a)} *(?:\\[[^\\]]+\\])? *[<>=~]+ *)${W(o)}\\1`,`g`),(n,r,i)=>`${r}${i}${t[e].new}${r}`)}return n}let Zn;async function Qn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function $n(){return Zn??=Qn()}function er(){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 _t(e)}return`https://proxy.golang.org`}function tr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function nr(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function rr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const ir=/\/v(\d+)$/;function ar(e){let t=ir.exec(e);return t?Number.parseInt(t[1]):1}function or(e,t){let n=e.replace(ir,``);return t<=1?n:`${n}/v${t}`}function sr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(K(t).split(`.`)[0]);return Number.isNaN(n)||n<=1||n===ar(e)?e:or(e,n)}function cr(e,t){let n=t?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e);if(!n)return null;let[,r,i,a]=n;return i.startsWith(`./`)||i.startsWith(`/`)||i.startsWith(`../`)?null:{origModule:r,targetModule:i,targetVersion:a}}function lr(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||ur(n)}function ur(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function dr(e,t){return[{name:e,old:t,new:t},null]}async function fr(e,t,n){if(!t)return null;let r=t,i=e+101,a=e+2,o=7;for(;a<=i;){let e=Math.min(a+o-1,i),t=await Promise.all(Array.from({length:e-a+1},(e,t)=>n(a+t))),s=t.indexOf(null),c=s===-1?t:t.slice(0,s);if(c.length&&(r=c.at(-1)),s!==-1)break;a=e+1,o*=2}return r}function pr(e,t,n,r,i){let a=n?.Version??r,o=n?.Time??i,s=n?.path??e;return[{name:e,old:t,new:K(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:K(r),sameMajorTime:i},null]}function mr(e){let t={},n={},r={},i={},a=new Set,o=[],s=e.split(/\r?\n/),c=!1,l=!1,u=!1;for(let e of s){let i=e.trim();if(/^require\s*\(/.test(i)){c=!0;continue}if(/^replace\s*\(/.test(i)){l=!0;continue}if(/^tool\s*\(/.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&!i.startsWith(`//`)&&o.push(i);continue}let s=/^tool\s+(\S+)/.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||/^replace\s+/.test(i)){let e=cr(i,l);e&&(r[e.targetModule]=e.targetVersion,a.add(e.origModule));continue}let f=c?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);f&&((d?n:t)[f[1]]=f[2])}for(let e of a)delete t[e],delete n[e];if(o.length){let e=[...Object.keys(n),...Object.keys(t)];for(let r of o){let a=``;for(let t of e)(r===t||r.startsWith(`${t}/`))&&t.length>a.length&&(a=t);let o=n[a]?n:t[a]?t:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function hr(e,n,r,i,a){let o=ar(e),s=async(e,n)=>{try{let{stdout:r}=await(await $n())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},c=lr(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(or(e,o+1),a.goProbeTimeout)]);return l?pr(e,r,await fr(o,u,t=>s(or(e,t),a.goProbeTimeout)),l.Version,l.Time):dr(e,r)}async function gr(e,t,n,r,i,a){if(nr(e,a))return hr(e,t,n,r,i);let o=rr(e),s=ar(e),c=async t=>{let n=or(e,t);try{let e=await i.doFetch(`${i.goProxyUrl}/${rr(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});return e.ok?{...await e.json(),path:n}:null}catch{return null}},l=lr(e,t,n),[u,d]=await Promise.all([q(i,`${i.goProxyUrl}/${o}/@latest`,{headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return dr(e,n);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return dr(e,n)}return pr(e,n,await fr(s,d,c),f,p)}function _r(e,t){if(!e.includes(`replace`))return e;let n=W(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 vr(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+${W(s)}\\s+)v${W(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${W(s)}) +v${W(c)}`,`g`),`$1 v${l}`);continue}let u=sr(s,l);u===s?n=n.replace(RegExp(`(${W(s)}) +v${W(c)}`,`g`),`$1 v${l}`):(n=n.replace(RegExp(`${W(s)} +v${W(c)}`,`g`),`${u} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${W(s)}(/\\S+)?\\s*$`,`gm`),`$1${u}$2`)),r[s]=u),o!==`tool`&&(n=_r(n,s))}return[n,r]}function yr(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=r.map(([e])=>e).sort((e,t)=>t.length-e.length),o=RegExp(`"(${a.map(W).join(`|`)})(/|")`,`g`),s=h(`**/*.go`,{cwd:e});for(let t of s){let r=u(e,t),a=_(r,`utf8`),s=a.replace(o,(e,t,n)=>`"${i.get(t)}${n}`);s!==a&&n(r,s)}}function br(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(/^use\s*\(/.test(r)){i=!0;continue}if(/^replace\s*\(/.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=/^(\S+)/.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=/^use\s+(\S+)/.exec(r);if(o){t.push(o[1]);continue}if(a||/^replace\s+/.test(r)){let e=cr(r,a);e&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function xr(e){let t=`https://${Sr(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${Xt(t)}/${a.join(`/`)}`,n.href}else return t}function Sr(e){return ir.test(e)?c(e):e}function Cr(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const wr=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Tr(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:Wt.test(o)}}function Er(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function Dr(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await ct(a);if(e)return e.body}try{let e=await Vt(a,i);if(!e.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&dt(a,`immutable`,n),n}catch{return``}}function Or(e,t){return Yt(N(K(e))?.version??K(e),t)}function kr(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?(?:https?:\\/\\/)?)${W(e)}@${W(r)}(?![\\w.-])`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}const Ar=RegExp(`(?:^|/)(?:${V.map(W).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function jr(e){return Ar.test(e.replace(/\\/g,`/`))}function Mr(e){let t=new Set;try{for(let n of v(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of v(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const Nr=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Pr=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,Fr=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Ir=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Lr=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function Rr(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`),repo:t[t.length-1]}}function zr(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`);if(t===-1||e.lastIndexOf(`/`)>t)return null;let n=e.substring(0,t),r=e.substring(t+1);if(!r||!Nr.test(r))return null;let{registry:i,namespace:a,repo:o}=Rr(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Br(e){let t=Nr.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Vr(e,t){let n=Br(t);return n?Yt(e,n.version,n.suffix):t}function Hr(e,t){let n=[];for(let r of e.matchAll(t)){let e=zr(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Ur=new WeakMap;function Wr(e,t,n){let r=Ur.get(n);r||Ur.set(n,r=new Map);let i=`${e}/${t}`,a=r.get(i);return a||r.set(i,a=Gr(e,t,n)),a}async function Gr(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o={headers:{"accept-encoding":`gzip, deflate, br`}},s=e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated}))}),c=async e=>{try{let t=await Tt(a(e),n,o,s);return`body`in t?JSON.parse(t.body):null}catch{return null}},l=await c(1);if(!l)return r;for(let e of l.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let u=Math.min(Math.ceil((l.count||0)/100),10);if(u<2)return r;let d=await Promise.all(Array.from({length:u-1},(e,t)=>c(t+2)));for(let e of d)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function Kr(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await Tt(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({digest:e.digest}));if(!(`body`in e))return null;let t=JSON.parse(e.body).digest;return typeof t==`string`?t:null}catch{return null}}async function qr(e,t){let{registry:n,namespace:r,repo:i}=Rr(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:await Wr(r,i,t),name:e},null]}function Jr(e,t,n,r,i,a){let o=Br(t);if(!o)return null;let s=xe(K(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=Br(t);if(!e||e.suffix!==o.suffix)continue;let d=xe(K(e.version))?.version;if(!d||a&&!B(d,a)||!G(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=P(c,d);!f||!n.has(f)||I(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=Vr(c,t);return d===t?null:{newTag:d,hubTag:l,date:u}}function Yr(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(W(t),W(a)),`$1${t}:${i.new}`)}return r}function Xr(e,t){return Yr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}(?![\\w.-])`,`g`)])}function Zr(e,t){return Yr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`)])}function Qr(e,t){return Yr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}(?![\\w.-])`,`g`)])}const $r=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function ei(e){return/^docker-.+\.ya?ml$/.test(e)}function ti(e){return/^Dockerfile(\..+)?$/.test(e)}function ni(e){return ti(e)||ei(e)}function ri(e){return ti(e)?Pr:Fr}function ii(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const ai=[`Makefile`,`makefile`,`GNUmakefile`];function oi(e){return ai.includes(e)||e.endsWith(`.mk`)}const si=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,ci=RegExp(`${si}${String.raw`(\S+)@(v\d\S*)\s*$`}`),li=/^[^/\s]+\.[^/\s]+\//;function ui(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function di(e){let t=[];for(let n of e.split(/\r?\n/)){let e=ui(n),r=ci.exec(e);if(!r)continue;let[,i,a]=r;li.test(i)&&t.push({installPath:i,version:a})}return t}const fi=RegExp(`${si}${String.raw`(\S+)\s*$`}`),pi=/@(sha256:[0-9a-f]{64})$/;function mi(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function hi(e){let t=null,n=e,r=pi.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=zr(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function gi(e){let t=[];for(let n of e.split(/\r?\n/)){let e=fi.exec(ui(n));if(!e)continue;let r=hi(e[1]);r&&t.push(r)}return t}const _i=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function vi(e){let t=_i.exec(e);return t?e.slice(0,t.index+t[0].length):null}function yi(e){let t=e.split(`/`),n=[];for(let e=t.length;e>=2;e--)n.push(t.slice(0,e).join(`/`));return n}async function bi(e,t){let n=vi(e);if(n)return n;let r=yi(e);return(await Promise.all(r.map(async e=>{try{return(await t.doFetch(`${t.goProxyUrl}/${rr(e)}/@latest`,{signal:AbortSignal.timeout(t.goProbeTimeout)})).ok?e:null}catch{return null}}))).find(Boolean)??null}async function xi(e,t,n,r,i,a){let o=await bi(e,r);if(!o)return null;let[s]=await gr(o,`tool`,K(t),n,r,i),c=Nt(s,{mode:`go`,range:K(t),semvers:a.semvers,useGreatest:a.useGreatest,usePre:a.usePre,useRel:a.useRel,pinnedRange:a.pinnedRange,cooldownDays:a.cooldownDays,now:a.now},{allowDowngrade:a.allowDowngrade,matchesAny:H,isGoPseudoVersion:ur});if(!c)return null;let l=s.newPath??sr(o,c),u=`${l}${e.slice(o.length)}`,d=Yt(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:xr(l)}}async function Si(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await qr(a,t),c=Jr(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await Kr(r,i,c.hubTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:ii(e.ref)}}function Ci(e,t){for(let{oldSpec:n,newSpec:r}of t){let t=RegExp(`^([^#\\n]*?)${W(n)}(?=[\\s#]|$)`,`gm`);e=e.replace(t,`$1${r}`)}return e}const wi=new Map,Ti=e=>({versions:(e.versions||[]).filter(e=>!e.yanked).map(e=>({num:e.num,created_at:e.created_at}))});async function Ei(e,t){let n=`${_t(t.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,r=wi.get(n);return r||(r=(async()=>{try{let r=await Tt(n,t,vt(),Ti);`body`in r||Jt(r.res,n,e,t.cratesIoUrl);let i;try{i=JSON.parse(r.body)}catch{throw Error(`Invalid JSON from ${n}`)}let a=(i.versions||[]).filter(e=>!e.yanked),o={},s={};for(let e of a)e.num&&(o[e.num]={},s[e.num]=e.created_at||``);return{name:e,versions:o,time:s,"dist-tags":{latest:a[0]?.num??``}}}catch(e){throw wi.delete(n),e}})(),wi.set(n,r)),[await r,null]}function Di(e){let t=new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);if(!e||!r)continue;let i=e[1],a=r[1];ve(a)&&nt(t,i,a)}return t}const Oi=/^\d/;function ki(e,t){return Oi.test(e)?Wn(Y(`^${e}`),t,`^${e}`).replace(/^\^/,``):Wn(Y(e),t,e)}function Ai(e,t,n){let r=e.get(t);if(!r)return;let i=Oi.test(n)?`^${n}`:n,a;for(let e of r)B(e,i)&&(!a||I(e,a))&&(a=e);return a}const ji=Ke.map(W).join(`|`);function Mi(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[,t]=e.split(`\0`),i=r.oldOrig||r.old,a=r.new,o=W(t),s=W(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${s}(["'])`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${ji})\\.${o}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function Ni(e){return e.split(`|`)[0]}function Pi(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Ni(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Fi=/[*?{[]/;async function Ii(e,t,n,r=32){let i=e.filter(e=>!e.startsWith(`!`)),a=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),o=new Set(a.flatMap(e=>h(e,{cwd:t})).map(e=>e.replace(/\\/g,`/`))),s=new Set,c=[];for(let e of i){let r=Fi.test(e)?h(e,{cwd:t}).map(e=>f(u(t,e))):[f(u(t,e))];for(let e of r){let r=d(t,e).replace(/\\/g,`/`);if(o.has(r))continue;let i=u(e,n);s.has(i)||(s.add(i),c.push({absPath:i,memberPath:`./${r}`}))}}return(await U(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await C(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function Li(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){let n=e.trim();if(!n||n.startsWith(`#`))continue;if(!n.startsWith(`-`))break;let r=/^\s*-\s+['"]?([^'"#\s]+)['"]?/.exec(e);r&&t.push(r[1])}}return t}const Ri=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`,`make`]),zi={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},Bi=(e,t)=>typeof e==`string`?_t(e):typeof t==`function`?t():t;function Vi(e,t){let n=new Map,r=new Set(e),i=t;for(;r.size;){for(let e of r){let t=u(i,e);try{p(t),n.set(e,t),r.delete(e)}catch{}}let e=c(i);if(e===i)break;i=e}return n}async function Hi(e,t){let n=await U(e,async e=>{try{return[e,await C(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function X(e,t){t&&(e.date=t,e.age=Re(t,{noAffix:!0}))}const Ui=(e,t,n)=>`${e}${t}${n}`;function Wi(e){let t=0;for(let n of Object.values(e))t+=Object.keys(n).length;return t}function Gi(e){console.error(`${Ye()} ${e}`)}function Z(e,t,n,r,i){if(i===`engines`&&He.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?Sr(e):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 Ki(t){let n=new Set;if(t)for(let e of t){let t;try{t=g(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t.isFile())n.add(f(e));else if(t.isDirectory()){for(let t of Object.keys(Ue)){let r=u(e,t),i=null;try{i=g(r)}catch{}i?.isFile()&&n.add(f(r))}try{for(let t of v(e,{withFileTypes:!0}))t.isFile()&&(ni(t.name)||oi(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=V.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&V.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:V.map(e=>u(t,e));for(let e of a)for(let t of Mr(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(V),r=[...Object.keys(Ue),...$r,...ai,...V];for(let[i,a]of Vi(r,e()))if(t.has(i))for(let e of Mr(a))n.add(e);else n.add(f(a));try{for(let t of v(e(),{withFileTypes:!0})){let r=ni(t.name)&&!$r.includes(t.name),i=oi(t.name)&&!ai.includes(t.name);t.isFile()&&(r||i)&&n.add(f(u(e(),t.name)))}}catch{}}for(let e of Array.from(n)){let t=s(e);Object.hasOwn(zi,t)&&n.delete(u(c(e),zi[t].supersedes))}return n}function Q(e,t){r===`win32`&&b(e,0),x(e,t,r===`win32`?{flag:`r+`}:void 0)}function qi(e){let t={results:{}};for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r)){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!zn(i.oldOrig)&&(i.old=n===`go`?Cr(i.oldOrig):i.oldOrig),n===`go`?i.new=Cr(i.new):n===`actions`&&(i.old=K(i.old),i.new=K(i.new)),delete i.oldPrint,delete i.newPrint,delete i.oldOrig,delete i.date;let[r,a]=e.split(`\0`),o=t.results[n]??={};(o[r]??={})[a]=i}return t}let Ji=!1;async function Yi(t={}){if(!Ji){let{enableDnsCache:e}=await import(`./dns.js`);e(),Ji=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=$e(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=Bi(t.forgeapi,`https://api.github.com`),d=Bi(t.pypiapi,`https://pypi.org`),p=Bi(t.jsrapi,`https://jsr.io`),m=Bi(t.goproxy,er),h=Bi(t.cargoapi,`https://crates.io`),g=Bi(t.dockerapi,`https://hub.docker.com`),_=tr(),v=n.color||!n.noColor&&i.isTTY,y=e=>v?t=>o(e,String(t)):String,b=y(`magenta`),x=y(`green`),ee=y(`red`),S={fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):gt,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:m,cratesIoUrl:h,dockerApiUrl:g,doFetch:async(e,t)=>{n.verbose&&Gi(`${b(t?.method||`GET`)} ${e}`);let r=await xt(e,t);return n.verbose&&Gi(`${r.ok?x(r.status):ee(r.status)} ${e}`),r},noCache:!!n.noCache},te=sn(n.greatest),ne=sn(n.prerelease),w=sn(n.release),T=sn(n.patch),re=sn(n.minor),ae=sn(n.allowDowngrade),E=n.modes?.length?new Set(n.modes):Ri,oe=(n.overrides??[]).map(e=>({include:e.include?.length?rn(e.include):void 0,exclude:e.exclude?.length?rn(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Qe(String(e.cooldown))})),se=(e,t)=>e.include&&!H(t,e.include)?!1:!e.exclude||!H(t,e.exclude),ce=oe.some(e=>e.cooldownDays);E.has(`actions`)&&Rt();let le=new Map;function D(e){let t=le.get(e);if(!t){let n=H(e,te),r=H(e,ne),i=H(e,w),a=H(e,T),o=H(e,re),s=H(e,ae),c;for(let t of oe)se(t,e)&&(t.greatest!==void 0&&(n=t.greatest),t.prerelease!==void 0&&(r=t.prerelease),t.release!==void 0&&(i=t.release),t.patch!==void 0&&(a=t.patch),t.minor!==void 0&&(o=t.minor),t.allowDowngrade!==void 0&&(s=t.allowDowngrade),t.cooldownDays!==void 0&&(c=t.cooldownDays));let l=new Set(a?[`patch`]:o?[`patch`,`minor`]:[`patch`,`minor`,`major`]);t={useGreatest:n,usePre:r,useRel:i,semvers:l,allowDowngrade:s,cooldownOverride:c},le.set(e,t)}return t}let ue=rn(n.include??[]),de=rn(n.exclude??[]),fe=n.pin??{},O={},pe={},k={},A=Date.now(),me=e=>{let t=n.cooldown??e;return t?Qe(String(t)):0},he=e(),j=e=>e.replace(`${he}/`,``).replace(`${he}\\`,``),M=(e,t,n,r,i,a)=>{O[e][Ui(t,n,r)]={old:i,oldOrig:a}},ge=(e,t,n,r)=>{zn(r)?M(`npm`,e,t,n,Vn(r,n).version,r):Ne(r)?M(`npm`,e,t,n,Y(r),r):Bn(r)?M(`npm`,e,t,n,`0.0.0`,r):pe[Ui(e,t,n)]={old:r}},_e=Ki(n.files?.length?new Set(n.files):!1),N=await Hi(Array.from(_e).filter(e=>{if(jr(e))return E.has(`actions`)||E.has(`docker`);let t=s(e);if(ni(t))return E.has(`docker`);if(oi(t))return E.has(`make`);let n=Ue[t];return!!n&&E.has(n)}),r),ye={},be={},xe={},P=[],F=null,Se=[],I=!1,Ce=[],we=!1,Te=[],Ee=[],L=[],R={},De={noCache:n.noCache,timeout:n.timeout||5e3},Oe=rt(async e=>{let t=await un(e,De);return{dirConfig:t,include:t.include?.length?rn([...n.include??[],...t.include]):ue,exclude:t.exclude?.length?rn([...n.exclude??[],...t.exclude]):de}});async function z(e){let{dirConfig:t,include:n,exclude:r}=await Oe(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:{...t.pin,...fe}}}function ke(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Ve:e===`pypi`?We:e===`go`?n.indirect?Ge:Ge.filter(e=>e!==`indirect`):e===`cargo`?Ke:[]}function Ae(e,t,n,r){O.docker??={};for(let i of n)for(let{ref:n}of Hr(e,i)){if(!Z(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(O.docker[e])continue;let i=Br(n.tag);i&&(O.docker[e]={old:i.version,oldOrig:n.tag},Ee.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function je(e){let{dirConfig:t,include:n,exclude:r}=await Oe(e);return{include:n,exclude:r,pin:t.pin??{},cooldownDays:me(t.cooldown)}}let Me=new Set,B=new Map;for(let e of _e){let t=s(e);if(Object.hasOwn(zi,t))Me.add(zi[t].mode);else if(t===`Cargo.toml`){let t=N.get(e);if(!t)continue;try{let n=ie(t);B.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&Me.add(`cargo`)}catch{}}}for(let e of _e){if(jr(e)){let t=E.has(`actions`),n=E.has(`docker`);if(!t&&!n)continue;let r=N.get(e),i=j(e),a=await je(c(e));if(ye[i]={absPath:e,content:r},t){O.actions??={};let e=Array.from(r.matchAll(wr),e=>Tr(e[1])).filter(e=>e!==null);for(let t of e){if(!Z(t.name,`actions`,a.include,a.exclude,`actions`))continue;let e=`${i}${t.name}`;O.actions[e]||(O.actions[e]={old:t.ref},Te.push({...t,key:e,apiUrl:Er(t.host,l),filePin:a.pin,fileCooldownDays:a.cooldownDays}))}}n&&(be[i]={absPath:e,content:r,fileType:`workflow`},Ae(r,i,[Fr,Ir,Lr],a));continue}let t=s(e);if(ni(t)){if(!E.has(`docker`))continue;let n=N.get(e),r=j(e),i=ti(t)?`dockerfile`:`compose`,a=await je(c(e));be[r]={absPath:e,content:n,fileType:i},Ae(n,r,[ri(t)],a);continue}if(oi(t)){if(!E.has(`make`))continue;let t=N.get(e),n=j(e),r=await je(c(e));xe[n]={absPath:e,content:t},O.make??={};let i={projectDir:c(e),filePin:r.pin,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of di(t)){if(!Z(e,`make`,r.include,r.exclude,`make`))continue;let t=`${n}${e}`;O.make[t]||(O.make[t]={old:K(a),oldOrig:a},L.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of gi(t)){if(!Z(e.writtenImage,`make`,r.include,r.exclude,`make`))continue;let t=`${n}${e.writtenImage}`;if(O.make[t])continue;let a=Br(e.ref.tag);if(!a)continue;let o=mi(e.writtenImage,e.ref.tag,e.digest);O.make[t]={old:a.version,oldOrig:e.ref.tag},L.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=Ue[t];if(!E.has(n))continue;if(t===`go.work`){O[n]??={};let t=c(f(e)),i=N.get(e);F={file:e,content:i};let a=br(i),[o,s]=await Promise.all([z(t),U(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await C(n,`utf8`)}}catch{return null}},{concurrency:r})]),{modeConfig:l,modeInclude:d,modeExclude:p,pin:m}=o,h=ke(n,l);R[n]={modeConfig:l,projectDir:t,pin:m};for(let e of s){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=mr(i),o=c(r);P.push({absPath:r,content:i,projectDir:o,usePath:t});let s=t===`.`?``:`|${t}`;for(let e of h){let t=a[e]||{};for(let[r,i]of Object.entries(t))Z(r,n,d,p,e)&&M(n,e,s,r,Cr(i),K(i))}}for(let[e,t]of Object.entries(a.replace))Z(e,n,d,p,`replace`)&&M(n,`replace`,``,e,Cr(t),K(t));continue}if(t===`go.mod`&&P.some(t=>t.absPath===f(e))||t===`package.json`&&Ce.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){O[n]??={};let t=N.get(e),i=B.get(e)??ie(t),a=c(f(e)),o=Vi([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,l=Array.isArray(s)&&s.length,[u,d,p]=await Promise.all([z(a),o?C(o,`utf8`):Promise.resolve(null),l?Ii(s,a,`Cargo.toml`,r):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=u,v=ke(n,m),y=d?Di(d):new Map,b=(e,t)=>{for(let r of v){let i=qe(e,r)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if(Z(e,n,h,g,r))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=a.version;Ne(i)&&M(n,r,t,e,Ai(y,e,i)??Y(i),i)}else typeof a==`string`&&Ne(a)&&M(n,r,t,e,Ai(y,e,a)??Y(a),a)}}};if(l){I=!0,R[n]={modeConfig:m,projectDir:a,pin:_},b(i,``),Se.push({absPath:f(e),content:t,memberPath:`.`});for(let e of p){Se.push(e);try{b(ie(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else{let r=k[n]??=[],o=!r.length&&!Me.has(n),s=o?`.`:j(e);r.push({absPath:f(e),content:t,memberPath:s,projectDir:a,modeConfig:m,pin:_,modeCooldownDays:me(m.cooldown)}),o&&(R[n]={modeConfig:m,projectDir:a,pin:_}),b(i,s===`.`?``:`|${s}`)}continue}if(t===`pnpm-workspace.yaml`){O[n]??={};let t=c(f(e)),i=N.get(e);we=!0;let a=Li(i),o=u(t,`package.json`),[s,l,d]=await Promise.all([z(t),et(C(o,`utf8`)),Ii(a,t,`package.json`,r)]),{modeConfig:p,modeInclude:m,modeExclude:h,pin:g}=s,_=ke(n,p);R[n]={modeConfig:p,projectDir:t,pin:g};let v=(e,t)=>{for(let r of _){let i=e[r]||{};if(typeof i==`string`){let[e,a]=i.split(`@`);Z(e,n,m,h,r)&&M(n,r,t,e,Y(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Z(e,n,m,h,r)&&ge(r,t,e,a)}};if(l!==null){let e;try{e=JSON.parse(l)}catch(e){throw Error(`Error parsing ${o}: ${e.message}`)}Ce.push({absPath:f(o),content:l,memberPath:`.`}),v(e,``)}for(let e of d){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}Ce.push(e),v(t,`|${e.memberPath}`)}continue}O[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await z(i),m=ke(n,a),h=k[n]??=[],g=!h.length&&!Me.has(n),_=g?`.`:j(e),v=_===`.`?``:`|${_}`,y=N.get(e);h.push({absPath:f(e),content:y,memberPath:_,projectDir:i,modeConfig:a,pin:p,modeCooldownDays:me(a.cooldown)});let b={};try{n===`npm`?b=JSON.parse(y):n===`pypi`?b=ie(y):n===`go`&&(b=mr(y))}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}for(let e of m){let t;if(t=n===`npm`||n===`go`?b[e]||{}:qe(b,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Be(t))Z(r,n,o,d,e)&&M(n,e,v,r,Y(i),i);else if(typeof t==`string`){let[r,i]=t.split(`@`);Z(r,n,o,d,e)&&M(n,e,v,r,Y(i),i)}else for(let[r,i]of Object.entries(t))Z(r,n,o,d,e)&&(n===`npm`?ge(e,v,r,i):n===`go`?M(n,e,v,r,Cr(i),K(i)):Ne(i)&&M(n,e,v,r,Y(i),i))}g&&(R[n]={modeConfig:a,projectDir:i,pin:p})}if(!Wi(O)&&!Object.keys(pe).length)return{results:{},message:`No dependencies found, nothing to do.`};let Pe=[],Fe={registry:n.registry};for(let[e,t]of Object.entries(R)){let n=O[e]&&Object.keys(O[e]).length>0,i=e===`npm`&&Object.keys(pe).length>0;if(!n&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=t,c=me(a.cooldown);Pe.push((async()=>{let t=new Map;for(let n of k[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let n={modeConfig:a,projectDir:o,pin:s,modeCooldownDays:c},i=e=>{let r=e.slice(Ni(e).length);return r&&t.get(r)||n},l=new Map,u=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let{modeCooldownDays:r}=i(t.split(`\0`)[0]);if(!r&&!ce)continue;let[,a]=t.split(`\0`),o=D(a).cooldownOverride??r;o&&!G(n,o,A)&&delete e[t]}};if(await U(Object.keys(O[e]),async t=>{let[n,r]=t.split(`\0`),a=Ni(n),{modeConfig:o,projectDir:s,pin:c,modeCooldownDays:u}=i(n),d=O[e][t],f=null;if(e===`npm`){let{oldOrig:n}=d;if(n&&zn(n))f=await Hn(r,S);else if(n&&Bn(n))try{f=await Ln(r,a,o,Fe,S)}catch{delete O[e][t];return}else f=await Ln(r,a,o,Fe,S)}else f=e===`go`?await gr(r,a,d.oldOrig||d.old,s,S,_):e===`cargo`?await Ei(r,S):await Yn(r,S);if(!f)return;let[p,m]=f;if(p.error)throw Error(p.error);let{useGreatest:h,usePre:g,useRel:v,semvers:y,allowDowngrade:b,cooldownOverride:x}=D(p.name),ee=d.old,C=d.oldOrig,te=c[r],ne=x??u,w=Nt(p,{usePre:g,useRel:v,useGreatest:h,semvers:y,range:ee,mode:e,pinnedRange:te,cooldownDays:ne||void 0,now:ne?A:void 0},{allowDowngrade:b,matchesAny:H,isGoPseudoVersion:ur}),T=``;if([`go`,`pypi`].includes(e)&&w)T=w;else if(e===`cargo`&&w&&C)T=ki(C,w);else if(w)if(C&&Bn(C))T=String(Tn()[`save-exact`])===`true`?w:`^${w}`;else if(C&&zn(C)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(C);e?T=`${e[1]}${w}`:C.startsWith(`jsr:`)&&(T=`jsr:${w}`)}else T=Wn(ee,w,C);if(!w||w===ee||C&&C===T){delete O[e][t];return}let re=``;e===`pypi`&&p.releases?.[w]?.[0]?.upload_time_iso_8601?re=p.releases[w][0].upload_time_iso_8601:e===`go`&&p.Time?re=p.Time:e===`cargo`&&p.time?.[w]&&(re=p.time[w]),d.new=T,C&&zn(C)&&(d.newPrint=w),e===`npm`?l.set(t,{name:r,promise:Rn(p.name,w,o,Fe,S)}):e===`pypi`?d.info=Zt(p,m,p.info.name):e===`go`?d.info=xr(p.newPath||r):e===`cargo`&&(d.info=`https://crates.io/crates/${r}`),re&&X(d,re)},{concurrency:r}),await Promise.all(Array.from(l,async([t,{name:n,promise:r}])=>{let i=await r,a=O[e][t];a&&(a.info=Zt({repository:i.repository,homepage:i.homepage},null,n),i.date&&X(a,i.date))})),e===`npm`&&Object.keys(pe).length){let t=(await U(Object.entries(pe),([e,t])=>qn(e,t,S),{concurrency:r})).filter(e=>e!==null);for(let n of t){let{key:t,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=n;O[e][t]={old:pe[t].old,new:r,oldPrint:Wt.test(o)?o.substring(0,7):o,newPrint:Wt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&X(O[e][t],c)}}u(O[e])})())}Te.length&&Pe.push((async()=>{let e=new Map;for(let t of Te)nt(e,`${t.apiUrl}/${t.owner}/${t.repo}`,t);await U(e.values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a=await qt(t,n,i,S),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=K(e.name);ve(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=rt(e=>Dr(t,n,i,e,S));async function d(e){let t=new Set;for(let n=0;n<20;n++){let n=Mt({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!e.cooldownDays)return{version:n,tag:r,commitSha:i,date:``};let a=i?await u(i):``;if(G(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await U(e,async({key:e,host:t,ref:r,name:a,isHash:o,filePin:s,fileCooldownDays:f})=>{let p=O.actions[e],m=`https://${t||`github.com`}/${n}/${i}`,h=fe[a]??s[a];if(o){let{usePre:t,useRel:n,cooldownOverride:i}=D(a),o=i??f,s=await d({range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:h,cooldownDays:o||void 0,now:o?A:void 0});if(!s){delete O.actions[e];return}let{tag:c,commitSha:u,date:g}=s;if(!u||u.startsWith(r)||r.startsWith(u)){delete O.actions[e];return}let _=l.get(r);if(!_){for(let[e,t]of l)if(e.startsWith(r)){_=t;break}}p.old=r,p.new=u.substring(0,r.length),p.oldPrint=_||r.substring(0,7),p.newPrint=c,p.info=m,g&&X(p,g)}else{let t=J(K(r));if(!t){delete O.actions[e];return}let{usePre:n,useRel:i,semvers:o,cooldownOverride:s}=D(a),l=s??f,g=await d({range:t,semvers:o,usePre:n,useRel:i,useGreatest:!0,pinnedRange:h,cooldownDays:l||void 0,now:l?A:void 0});if(!g){delete O.actions[e];return}let{tag:_,commitSha:v,date:y}=g,b=Or(_,r);if(b===r){delete O.actions[e];return}if(p.new=c.has(b)?b:_,p.info=m,v&&y)X(p,y);else if(v){let e=await u(v);e&&X(p,e)}}},{concurrency:r})},{concurrency:r}),Object.keys(O.actions).length||delete O.actions})()),Ee.length&&Pe.push((async()=>{let e=new Map;for(let t of Ee)nt(e,t.fullImage,t);await U(e.entries(),async([e,t])=>{let n;try{let[t]=await qr(e,S);n=t}catch{for(let e of t)delete O.docker[e.key];return}for(let e of t){let t=O.docker[e.key],r=t.oldOrig||t.old,{semvers:i,cooldownOverride:a}=D(e.fullImage),o=fe[e.fullImage]??e.filePin[e.fullImage],s=a??e.fileCooldownDays,c=Jr(n.tags,r,i,s||void 0,s?A:void 0,o);if(!c){delete O.docker[e.key];continue}t.new=c.newTag,t.info=ii(e.ref),X(t,c.date)}},{concurrency:r}),Object.keys(O.docker).length||delete O.docker})()),L.length&&Pe.push((async()=>{await U(L,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,cooldownOverride:o}=D(e.name),s=fe[e.name]??e.filePin[e.name],c=o??e.fileCooldownDays,l={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,cooldownDays:c||void 0,now:c?A:void 0},u=O.make[e.key],d;if(e.kind===`go`){let t=await et(xi(e.installPath,e.version,e.projectDir,S,_,l));if(!t){delete O.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,u.new=t.newVersion,d=t}else{let t=await et(Si(e.image,S,l));if(!t){delete O.make[e.key];return}e.newSpec=mi(e.image.writtenImage,t.newTag,e.image.digest?t.newDigest:null),u.new=t.newTag,d=t}u.info=d.info,d.date&&X(u,d.date)},{concurrency:r}),Object.keys(O.make).length||delete O.make})());try{await Promise.all(Pe)}finally{await ft()}if(!Wi(O))return{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=Pi(O[e],r.memberPath);Object.keys(t).length&&Q(r.absPath,n(r.content,t))}},t=new Map;if(O.actions)for(let[e,n]of Object.entries(O.actions)){let[r,i]=e.split(`\0`);nt(t,r,{name:i,oldRef:n.old,newRef:n.new})}let n=new Map;if(O.docker)for(let[e,t]of Object.entries(O.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;if(O.make)for(let e of L)!e.newSpec||!O.make[e.key]||nt(r,e.key.split(`\0`)[0],{oldSpec:e.oldSpec,newSpec:e.newSpec});let i=Object.keys(O).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(O[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=ye[e]||{};if(!t)continue;let i=kr(r,n);Q(t,i),be[e]&&(be[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=be[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;Q(r,(a===`dockerfile`?Xr:a===`compose`?Zr:Qr)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=xe[e];n&&Q(n.absPath,Ci(n.content,t))}continue}if(a===`go`){if(F){for(let e of P){let t=Pi(O[a],e.usePath);if(!Object.keys(t).length)continue;let[n,r]=vr(e.content,t);n!==e.content&&Q(e.absPath,n),yr(e.projectDir,r,Q)}let e={};for(let[t,n]of Object.entries(O[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=vr(F.content,e);t!==F.content&&Q(F.file,t)}}for(let e of k.go??[]){let t=Pi(O[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=vr(e.content,t);Q(e.absPath,n),yr(e.projectDir,r,Q)}}else a===`cargo`?(I&&e(a,Se,Mi),e(a,k.cargo??[],Mi)):a===`npm`?(we&&e(a,Ce,Un),e(a,k.npm??[],Un)):e(a,k[a]??[],Xn)}}return qi(O)}function Xi(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Zi(e){let t=tn(e);if(t!==!1)return t===!0||Array.from(t).map(Xi)}function Qi(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=y(n).isDirectory()}catch{}return r?n:c(n)}function $i(e,t){let n=tn(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Qi(r[0])}}function ea(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:Qt,...e!==void 0&&{args:e}}),n=t.values;for(let[e,r]of t.tokens.entries()){if(r.kind!==`option`||!r.value?.startsWith(`-`))continue;let i=r.value.startsWith(`--`)?2:1,a=nn(r.value.substring(i));if(!a)continue;let o=t.tokens[e+1],s=n[r.name];if(Array.isArray(s)){let e=s.indexOf(r.value);e!==-1&&s.splice(e,1)}else n[r.name]=!0;let c=o?.kind===`positional`&&o.value?o.value:!0;Qt[a]?.multiple?(n[a]??=[]).push(c):n[a]=c}return{args:n,positionals:t.positionals}}async function ta(e,t){let{filesList:n,startDir:r}=$i(e,t),i=typeof e.timeout==`string`?$e(e.timeout,`timeout`):void 0,a={...await un(r,{noCache:!!e[`no-cache`],timeout:i??5e3})};a.pin=void 0,e.json&&(a.json=!0),e.verbose&&(a.verbose=!0),e[`no-cache`]&&(a.noCache=!0),e.update&&(a.update=!0),e.indirect&&(a.indirect=!0),e[`error-on-outdated`]&&(a.errorOnOutdated=!0),e[`error-on-unchanged`]&&(a.errorOnUnchanged=!0),i!==void 0&&(a.timeout=i),typeof e.sockets==`string`&&(a.sockets=Number(e.sockets)||void 0),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=an(e.include).map(Xi),s=an(e.exclude).map(Xi);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=an(e.types);c.length&&(a.types=c);let l=on(e.pin);Object.keys(l).length&&(a.pin=l);let u=tn(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Zi(e[t]);n!==void 0&&(a[t]=n)}let d=Zi(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);return a}function na(e){try{return dn(_(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function $(e,t){if(typeof e!=`string`||!e)return t;try{return`${new URL(e).origin}/`}catch{return null}}function ra(e,t){let n=(...t)=>t.some(t=>m(u(e,t))),r=new Set,i=e=>{e&&r.add(e)},a=$(t.forgeapi,`https://api.github.com/`),o=$(t.dockerapi,`https://hub.docker.com/`);return n(`package.json`,`pnpm-workspace.yaml`)&&(i($(typeof t.registry==`string`?t.registry:na(e),`https://registry.npmjs.org/`)),i($(t.jsrapi,`https://jsr.io/`)),i(a)),n(`pyproject.toml`)&&i($(t.pypiapi,`https://pypi.org/`)),n(`Cargo.toml`)&&i($(t.cargoapi,`https://crates.io/`)),n(`go.mod`,`go.work`)&&i($(t.goproxy,`https://proxy.golang.org/`)),n(...$r)&&i(o),n(...V)&&(i(a),i(o)),Array.from(r)}const ia=/[A-Za-z_$]/,aa=/[A-Za-z0-9_$]/;function oa(e){let t=``,n=0,r=e.length,i=-1;function a(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
|
|
3
|
+
`:``)+r[n]}e=n,f[p]=ae(m+t+m)}else f[p]=ae(u)}return t}function O(e,t){let n=e.trim();if(n)for(let e of ce(n)){let n=e.trim();n&&t.push(ae(n))}}function ie(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function ae(e){if(e.startsWith(`[`)){let t=[],n=M(e,`]`);return O(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?se(e):e.startsWith(`"""`)?fe(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?fe(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):oe(e)}function oe(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function se(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of ce(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=ae(e.slice(n+1).trim())}return t}function k(e){let t=0,n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else if(i===`"`||i===`'`)n=i;else if(i===`{`||i===`[`)t++;else if((i===`}`||i===`]`)&&(t--,t===0))return!0}return!1}function ce(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function le(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function ue(e){let t=j(e,`#`);return t<0?e:e.slice(0,t)}function*A(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else i===`"`||i===`'`?n=i:i===t&&(yield r)}}function j(e,t){return A(e,t).next().value??-1}function M(e,t){let n=-1;for(let r of A(e,t))n=r;return n}function de(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]={}),e=e[n];return e}function fe(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
|
|
4
|
+
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const pe=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,me=new Map;function N(e){if(typeof e!=`string`)return null;let t=me.get(e);if(t!==void 0)return t;let n=pe.exec(e.trim());if(!n)return me.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 me.set(e,s),s}function he(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)}function ge(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function P(e,t){let n=ge(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=he(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function _e(e){return N(e)?.version??null}function F(e){return N(e)}const I=new Map,ve=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function ye(e){if(typeof e!=`string`)return null;let t=I.get(e);if(t!==void 0)return t;let n=ve.exec(e);if(!n)return I.set(e,null),null;let r={version:`${n[1]}.${n[2]||`0`}.${n[3]||`0`}`};return I.set(e,r),r}function L(e,t){let n=N(e),r=N(t);return!n||!r?null:be(n,r)}function be(e,t){if(e.version===t.version)return null;let n=P(e,t),r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(ge(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function xe(e,t){let n=N(e),r=N(t);return n&&r?P(n,r):null}function R(e,t){return(xe(e,t)??-1)>0}function Se(e,t){return(xe(e,t)??-1)>=0}function z(e,t){return(xe(e,t)??1)<0}function Ce(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=N(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function we(e,t){let n=P(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 B(e,t,n){return`${e}.${t}.${n}-0`}function Te(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${B(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${B(a,o+1,0)}`})}function Ee(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${B(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${B(a,s+1,0)}`:`>=${a}.${s}.0 <${B(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${B(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${B(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${B(a+1,0,0)}`})}function De(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?`<${B(p+1,0,0)}`:`<${B(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function V(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${B(t+1,0,0)}`:`>=${t}.${n}.0 <${B(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${B(t+1,0,0)}`:`<${B(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function Oe(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>V(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>V(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${V(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${V(n,Number(r),0,!0)}`),e)}const ke=new Map;function Ae(e){let t=ke.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=De(t),t=Ee(t),t=Te(t),t=Oe(t),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=Ce(t);if(!n)return ke.set(e,null),null;i.push(n)}if(i.length===0)return ke.set(e,null),null;r.push(i)}let i=r.length?r:null;return ke.set(e,i),i}function je(e,t){return t.some(t=>!we(e,t))?!1:e.prerelease.length>0?t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch):!0}function H(e,t){let n=N(e);if(!n)return!1;let r=Ae(t);if(!r)return!1;for(let e of r)if(e.length===0||je(n,e))return!0;return!1}function Me(e){return typeof e==`string`&&Ae(e)?e:null}const Ne=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Pe={"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`},Fe={sec:`second`,min:`minute`};function Ie(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Le(e,{now:t,noAffix:n=!1,times:r=Ne,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Pe,longUnits:l=!1}={}){let u=(t===void 0?Date.now():Ie(t))-Ie(e);if(Number.isNaN(u))return o||String(e);let d=u<0;if(d&&(u=-u),u<i)return a;let f=0,p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(u>=t[1])){f=Math.trunc(u/t[0]),p=(l&&Fe[t[2]]||t[2])+(f>1?`s`:``);break}}let m=`${f} ${p}`,h=n?m:d?`in ${m}`:`${m} ago`;return s?c[h]??h:h}function Re(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;){let n=e.charCodeAt(t);if(n>=48&&n<=57)break;t++}r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const ze=/^([^<>=~!]+)(?:==|>=?|<=?|~=)([0-9.a-z]+)$/;function Be(e){let t=[];for(let n of e){let e=ze.exec(n.replaceAll(/\s+/g,``));if(!e)continue;let r=e[1].replace(/\[.*?\]$/,``);r&&t.push({name:r,version:e[2]})}return t}const Ve=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],He=[`node`,`deno`,`bun`],U=[`.github`,`.gitea`,`.forgejo`],Ue={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},We=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Ge=[`deps`,`indirect`,`replace`,`tool`],Ke=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function W(e,t){if(t===!0)return!0;if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function qe(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Je(e){return e.split(`,`).filter(Boolean)}function Ye(){let e=new Date,t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`),r=String(e.getHours()).padStart(2,`0`),i=String(e.getMinutes()).padStart(2,`0`),a=String(e.getSeconds()).padStart(2,`0`),o=String(e.getMilliseconds()).padStart(3,`0`);return`${e.getFullYear()}-${t}-${n} ${r}:${i}:${a}.${o}`}function Xe(e,t,n=` `){let r=Array(e[0].length).fill(0),i=Array(e.length);for(let n=0;n<e.length;n++){let a=e[n],o=Array(a.length);for(let e=0;e<a.length;e++){let n=t(a[e]);o[e]=n,n>r[e]&&(r[e]=n)}i[n]=o}let a=``;for(let t=0;t<e.length;t++){let o=e[t],s=o.length-1;for(let e=0;e<=s;e++)if(e>0&&(a+=n),a+=o[e],e!==s){let n=r[e]-i[t][e];n>0&&(a+=` `.repeat(n))}t<e.length-1&&(a+=`
|
|
5
|
+
`)}return a}const Ze={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Qe(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ze[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function $e(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function G(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function et(e){try{return await e}catch{return null}}const K=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);async function tt(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=c(n);if(r===n)return null;n=r}}function nt(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function rt(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const it=u(r===`win32`?t.LOCALAPPDATA||u(T(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(T(),`.cache`),`updates`);let at=null;const ot=new Map;function st(e){let t=ot.get(e);return t===void 0&&(t=te(`sha256`).update(e).digest(`hex`).substring(0,16),ot.set(e,t)),t}async function ct(e){try{let t=await S(u(it,`${st(e)}.cache`),`utf8`),n=t.indexOf(`
|
|
6
|
+
`);if(n===-1)return null;let r=t.substring(0,n),i=t.substring(n+1);return r&&i?{etag:r,body:i}:null}catch{return null}}const lt=new Set;let ut=0;function dt(e,t,r){let i=(async()=>{try{await(at??=x(it,{recursive:!0}))}catch{at=null;return}try{let i=u(it,`${st(e)}.cache`),a=`${i}.${n}-${ut++}.tmp`;await w(a,`${t}\n${r}`),await C(a,i)}catch{}})();lt.add(i),(async()=>{await i,lt.delete(i)})()}async function ft(){for(;lt.size;)await Promise.all(lt)}var pt=`17.20.2`;function mt(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/864e5>=t}const ht=pt,gt=5e3,_t=2500,vt=`https://api.github.com`,q={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:vt,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},J=e=>e[0]===`v`?e.substring(1):e,yt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function bt(e,t){return{headers:{"user-agent":`updates/${ht}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const xt=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function St(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&xt.has(t)}async function Ct(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=St(t),n}}async function Y(e,t,n={}){for(let r=0;;r++)try{return await e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})}catch(e){if(r>=2||!e?.transient)throw e}}async function wt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function Tt(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function Et(e,t,n,r,i){let a=Tt(await wt(t),r);return i&&!n.noCache&&dt(e,i,a),{body:a,res:t}}async function Dt(e,t,n={},r){let i=t.noCache?null:await ct(e),a=n.headers,o=i?{...a,"if-none-match":i.etag}:a,s=await Y(t,e,{...n,headers:o});return s?s.status===304&&i?{body:i.body,res:s}:s.ok?Et(e,s,t,r,s.headers?.get?.(`etag`)):{res:s}:{res:void 0}}async function Ot(e,t,n={},r){if(!t.noCache){let t=await ct(e);if(t)return{body:t.body}}let i=await Y(t,e,n);return i?i.ok?Et(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function kt(e){return(F(e)?.prerelease.length??0)>0}function At(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const jt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Mt=new WeakMap;function Nt(e){let t=Mt.get(e);if(t)return t;let n=new Set(e);return n.add(`prerelease`),e.has(`patch`)&&n.add(`prepatch`),e.has(`minor`)&&n.add(`preminor`),e.has(`major`)&&n.add(`premajor`),Mt.set(e,n),n}function Pt(e,t,n){let r=At(e)||t;return{effectiveUsePre:r,effectiveSemvers:r?Nt(n):n}}function Ft(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=X(e),s=X(t);if(!o||!s)return!0;let c=At(e)||kt(e),l=kt(t);return c&&!l?Se(s,o)||n:!l&&z(s,o)?a(i,r):!0}function X(e){return ye(e)?.version??``}function It(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=X(n);if(!d)return null;let f=F(jt.exec(n)?.[0]??``)??F(d),{effectiveUsePre:p,effectiveSemvers:m}=Pt(n,i,r),h=e?.time,g=!!h,_=o||!g,v=!!(c&&l),y=!!s&&!H(f.version,s)||a&&f.prerelease.length>0,b=0,ee=!1,x=f;for(let e of t){let t=F(e);if(!t?.version||t.prerelease.length&&(!p||a)||!y&&P(t,f)<=0||s&&!H(t.version,s))continue;let n;if(v&&(n=u?u(e):g?h[e]:void 0,!mt(n,c,l)))continue;let r=be(f,t);if(!(!r||!m.has(r))){if(_){if(ee&&P(t,x)<=0)continue}else{let t=Date.parse(n??h[e]);if(!(t>=0&&t>b))continue;b=t}x=t,ee=!0}}return x.version}function Lt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l},{allowDowngrade:u,matchesAny:d,isGoPseudoVersion:f}){if(n===`*`||n.includes(`||`)||/\d\s/.test(n))return null;let p=[],m;if(t===`pypi`){let t=e.releases;p=Object.keys(t),m=e=>t?.[e]?.[0]?.upload_time_iso_8601}else if(t===`npm`||t===`cargo`)p=Object.keys(e.versions);else if(t===`go`){let t=X(n);if(!t)return null;let{effectiveUsePre:r,effectiveSemvers:p}=Pt(n,a,o),m=e=>kt(e)&&(!r||i),h={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},g=e.old||n,_=(e,n)=>{let r=X(e);if(!r||f(e)||m(e))return!1;let i=L(g,e)??L(t,r);return!i||!p.has(i)||!Ft(g,e,h)||!mt(n,c,l)?!1:!s||H(r,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}let h=It(e,p,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:m});if(!h)return null;if(r)return h;{let r=``,f=``,p=!1;t===`pypi`?(f=e.info.version,r=X(e.info.version),p=kt(f)):(r=e[`dist-tags`].latest,p=kt(r));let m=X(n),g=At(n),_=kt(h),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||g&&_)return h;if(g&&!_)return Ft(n,h,v)?h:null;let y=L(m,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&p?h:z(r,m)&&!p?Ft(n,r,v)?r:R(h,m)?h:null:!g&&p&&!a||s&&!H(r,s)||c&&l&&!mt(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const Rt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&Rt.set(e.substring(0,t),e.substring(t+1))}const zt=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function Bt(){return Array.from(new Set(zt.map(e=>t[e]).filter(e=>!!e)))}let Vt;function Ht(){let e=Bt();return e.length?Promise.resolve(e):Vt??=(async()=>{try{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]),{stdout:n}=await t(e)(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),r=n.trim();return r?[r]:[]}catch{return[]}})()}const Ut=new Map;async function Wt(e,t){if(!e)return[];let n=Rt.get(e);if(n)return[n];let r=``;try{r=new URL(t).hostname}catch{}return e===`api.github.com`||e===`github.com`||e===r?Ht():[]}async function Gt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await Wt(r,t.forgeApiUrl),a=e=>{let t=bt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return Y(t,e,a());let o=r?Ut.get(r):void 0;if(o)return Y(t,e,a(o));for(let n of i){let i=await Y(t,e,a(n));if(i.status!==401&&i.status!==403)return r&&Ut.set(r,n),i}return Y(t,e,a())}function Kt(e,t){let n=J(t);if(!_e(n))return null;let r=``,i=``;for(let t of e){let e=J(t);_e(e)&&(!r||R(e,i))&&(r=t,i=e)}return r&&R(i,n)?r:null}function qt(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Jt=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function Yt(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Xt(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function Zt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Qt(e,t){let n=t.noCache?null:await ct(e),r=await Gt(e,t,n?{"if-none-match":n.etag}:void 0);if(r?.status===304&&n)try{let e=JSON.parse(n.body);return{tags:e.tags||[],link:e.link||``}}catch{return null}if(!r?.ok)return null;let i=Zt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&dt(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function $t(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await Qt(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Math.min(Number(new URL(n[1]).searchParams.get(`page`)),10);if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>Qt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function en(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}const tn=e=>Number(e[0])>=2e7;function nn(e,t){let n=J(e).split(`.`),r=J(t).split(`.`);return n.length<r.length?!1:!tn(n)||tn(r)}function rn(e,t,n=``){let r=t.startsWith(`v`),i=J(e),a=J(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function an(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const on=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function sn({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of on)if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=qt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${an(a)}/${e.directory}`)),a||t||``)}const cn={"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`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},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-cache":{short:`x`,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 ln(e){return e instanceof RegExp?/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e:RegExp(`^${K(e).replaceAll(`\\*`,`.*`)}$`,`i`)}function un(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(Je)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function dn(e){for(let[t,{short:n}]of Object.entries(cn))if(t===e||n===e)return t;return``}function fn(e){return new Set(e.map(ln))}function pn(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Je(e)):[]}function mn(e){let t={},n=Array.isArray(e)?e:[e];for(let e of n){if(typeof e!=`string`)continue;let n=e.indexOf(`=`);if(n===-1)continue;let r=e.slice(0,n),i=e.slice(n+1);r&&i&&Me(i)&&(t[r]=i)}return t}function hn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:fn(e)}async function gn(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await ee(r)}catch{return null}try{return{configDir:e,filename:n,default:(await import(E(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const _n=rt(e=>tt(e,gn));async function vn(e,t={}){let n=await _n(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t);return{...await i(n?.configDir??e,r.inherit?.renovate,o),...r}}function yn(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 bn(e){try{return yn(g(e,`utf-8`))}catch{return}}function xn(t){let n=e();for(;;){let e=u(n,t);try{if(v(e).isFile())return e}catch{}let r=c(n);if(r===n)break;n=r}}function Sn(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function Cn(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=bn(e);t&&(o.push(t),s.push(e))}i||(c(u(`/etc`,e,`config`)),c(u(`/etc`,`${e}rc`))),a&&(c(u(a,`.config`,e,`config`)),c(u(a,`.config`,e)),c(u(a,`.${e}`,`config`)),c(u(a,`.${e}rc`))),c(xn(`.${e}rc`));let l=Sn(`${e}_`);return l.config&&c(l.config),Object.assign({},...o,l,s.length?{configs:s,config:s[s.length-1]}:void 0)}const wn=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Tn=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,En=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Dn=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,On=/(@[^/]+\/)?([^/]+)/g;function kn(e){let t=e.match(On);return t?t[t.length-1]:e}const An=q.registry;let jn=null;const Mn=new Map;function Nn(){return jn??=Cn(`npm`,{registry:An})}function Pn(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Fn(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Pn(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Pn(a),`base64`).toString(`utf8`);return{token:Buffer.from(`${i}:${e}`).toString(`base64`),type:`Basic`,username:i,password:e}}let o=n(`_auth`);if(o)return{token:Pn(o),type:`Basic`}}function In(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Fn(`//${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:Pn(i),type:`Basic`}}function Ln(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Rn(e,t){let n=Nn(),r=e.startsWith(`@`)?e.split(`/`)[0]:``,i=`${r}:${t}`,a=Mn.get(i);if(a)return a;let o;if(r){let e=yt(Ln(r,n));if(e!==t)try{let t=In(e,n);t?.token&&(o={auth:t,registry:e})}catch{}}return o??={auth:In(t,n),registry:t},Mn.set(i,o),o}function zn(e,t,n){let r=yt(typeof n.registry==`string`&&n.registry||t.registry||Nn().registry||An);return{...Rn(e,r),originalRegistry:r}}function Bn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Vn=new Map,Hn=new Map,Un=new Map;function Wn(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]={};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function Gn(e,t,n,r,i){let{auth:a,registry:o}=zn(e,n,r),s=Bn(o,t===`resolutions`?kn(e):e),c=Vn.get(s);if(!c){let t=bt(a?.type,a?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`}),c=(async()=>{try{let n=await Dt(s,i,t,Wn);return`body`in n||en(n.res,s,e,o),JSON.parse(n.body)}catch(e){throw Vn.delete(s),e}})(),Vn.set(s,c)}return[await c,o]}async function Kn(e,t,n,r,i){let{auth:a,registry:o}=zn(e,n,r),s=Bn(o,e,t),c=Hn.get(s);if(c)return c;let l=(async()=>{try{let n=bt(a?.type,a?.token),r=await Ot(s,i,n,e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0}));if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}let d=Bn(o,e);if(l||=(await Vn.get(d))?.time?.[t]||``,!l){let e=Un.get(d);e||(e=(async()=>{try{let e=await Y(i,d,n);return e?.ok?await e.json():null}catch{return Un.delete(d),null}})(),Un.set(d,e)),l=(await e)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return Hn.set(s,l),l}function qn(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Jn(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Yn(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 Xn(e,t){let n=/^@([^/]+)\/(.+)$/.exec(e);if(!n)throw Error(`Invalid JSR package name: ${e}`);let[,r,i]=n,a=`${t.jsrApiUrl}/@${r}/${i}/meta.json`,o=await Dt(a,t,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))}));if(`body`in o){let n=JSON.parse(o.body),r={},i={};for(let[e,t]of Object.entries(n.versions??{}))r[e]={version:e,time:t.createdAt},i[e]=t.createdAt;return[{name:e,"dist-tags":{latest:n.latest},versions:r,time:i},t.jsrApiUrl]}en(o.res,a,e,`JSR`)}function Zn(e,t){let n=new Map;for(let[e,{old:r,oldOrig:i,new:a}]of Object.entries(t)){let[t,o]=e.split(`\0`),s=i||r;t===`packageManager`?n.set(`${t}\0${o}@${s}`,`"${t}": "${o}@${a}"`):n.set(`${o}\0${s}`,`"${o}": "${a}"`)}return n.size?e.replace(/"((?:[^"\\]|\\.)*)": *"((?:[^"\\]|\\.)*)"/g,(e,t,r)=>n.get(`${t}\0${r}`)??e):e}function Qn(e,t){let n=/^(<\s*)(\d+(?:\.\d+){0,2})$/.exec(e);if(!n)return null;let[,r,i]=n,{major:a,minor:o,patch:s}=F(t),c=i.split(`.`).length,l;return l=c===1?`${a+1}`:c===2?`${a}.${o+1}`:i.endsWith(`.0.0`)?`${a+1}.0.0`:`${a}.${o}.${s+1}`,`${r}${l}`}function $n(e,t,n){let r=n||e;if(/^>\s*\d/.test(r))return e;let i=Qn(r,t);if(i)return i;let a=e.replace(Dn,t);if(!n||n===e)return a;let o=/^([\^~]|>=\s*)([\d.]+)$/.exec(n);if(!o)return a;let[,s,c]=o,l=t.split(/[-+]/)[0];if(l!==t)return a;let u=c.split(`.`).length,d=l.split(`.`);return d.length===u?a:`${s}${d.slice(0,u).join(`.`)}`}function Z(e){if(/[xX*]/.test(e))return e;let t=e.match(En);return t?.length===1?e.replace(En,X(t[0])):e}async function er(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await ct(r),t=await Gt(r,n,e?{"if-none-match":e.etag}:void 0),i;if(t?.status===304&&e)i=e.body;else if(t?.ok){let{sha:e,commit:a}=JSON.parse(await t.text())[0];i=JSON.stringify([{sha:e,commit:{committer:a?.committer,author:a?.author}}]);let o=t.headers.get(`etag`);o&&!n.noCache&&dt(r,o,i)}else return{hash:``,commit:{}};let{sha:a,commit:o}=JSON.parse(i)[0];return{hash:a,commit:o}}catch{return{hash:``,commit:{}}}}async function tr(e,t,n){return(await $t(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function nr(e,t,n){let r=t.old.replace(wn,``),[,i,a,o]=Tn.exec(r)||[];if(!i||!a||!o)return null;let s=e=>{let n=t.old.lastIndexOf(o);return t.old.slice(0,n)+e+t.old.slice(n+o.length)};if(Jt.test(o)){let{hash:t,commit:r}=await er(i,a,n);if(!t)return null;let c=Xt(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:s(l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let t=Kt(await tr(i,a,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function rr(e){let t={};for(let[n,r]of Object.entries(e.releases??{}))t[n]=(r??[]).slice(0,1).map(e=>e.upload_time_iso_8601?{upload_time_iso_8601:e.upload_time_iso_8601}:{});let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function ir(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await Dt(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},rr);if(`body`in r)return[JSON.parse(r.body),null];en(r.res,n,e,t.pypiApiUrl)}function ar(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`(['"])(${K(a)} *(?:\\[[^\\]]+\\])? *[<>=~]+ *)${K(o)}\\1`,`g`),(n,r,i)=>`${r}${i}${t[e].new}${r}`)}return n}let or;async function sr(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function cr(){return or??=sr()}function lr(){let e=t.GOPROXY||`${q.goproxy},direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return yt(e)}return q.goproxy}function ur(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const dr=new Map;function fr(e){let t=dr.get(e);if(t)return t;let n=``;for(let t=0;t<e.length;t++){let r=e[t];if(r===`*`)n+=`[^/]*`;else if(r===`?`)n+=`[^/]`;else if(r===`[`&&e.includes(`]`,t+1)){let r=e.indexOf(`]`,t+1);n+=`[${e.slice(t+1,r).replace(/\\/g,`\\\\`)}]`,t=r}else n+=K(r)}return dr.set(e,t=RegExp(`^${n}(?:/.*)?$`)),t}function pr(e,t){return t.some(t=>fr(t).test(e))}function mr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const hr=/\/v(\d+)$/,gr=/^gopkg\.in\/.*?\.v(\d+)$/;function _r(e){let t=gr.exec(e)??hr.exec(e);return t?Number.parseInt(t[1]):1}function vr(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(hr,``);return t<=1?n:`${n}/v${t}`}function yr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(J(t).split(`.`)[0]);return Number.isNaN(n)||n===_r(e)?e:vr(e,n)}const br=/^require\s*\(/,xr=/^replace\s*\(/,Sr=/^tool\s*\(/,Cr=/^use\s*\(/,wr=/^replace\s+/,Tr=/^(\S+)\s+(v\S+)/,Er=/^require\s+(\S+)\s+(v\S+)/,Dr=/^tool\s+(\S+)/,Or=/^use\s+(\S+)/,kr=/^(\S+)/,Ar=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,jr=/^replace\s+(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/;function Mr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Nr(e,t){let n=(t?Ar:jr).exec(e);if(!n)return null;let[,r,i,a,o]=n;return{origModule:r,origVersion:i??``,targetModule:a,targetVersion:o??``}}function Pr(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Fr(n)}function Fr(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Ir(e,t){return[{name:e,old:t,new:t},null]}async function Lr(e,t,n){if(!t)return null;let r=t,i=e+101,a=e+2,o=7;for(;a<=i;){let e=Math.min(a+o-1,i),t=await Promise.all(Array.from({length:e-a+1},(e,t)=>n(a+t))),s=t.indexOf(null),c=s===-1?t:t.slice(0,s);if(c.length&&(r=c.at(-1)),s!==-1)break;a=e+1,o*=2}return r}function Rr(e,t,n,r,i){let a=n?.Version??r,o=n?.Time??i,s=n?.path??e;return[{name:e,old:t,new:J(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:J(r),sameMajorTime:i},null]}function zr(e){let t={},n={},r={},i={},a=new Set,o=[],s=e.split(/\r?\n/),c=!1,l=!1,u=!1;for(let e of s){let i=e.trim();if(br.test(i)){c=!0;continue}if(xr.test(i)){l=!0;continue}if(Sr.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&o.push(i);continue}let s=Dr.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||wr.test(i)){let e=Nr(i,l);e&&(e.targetVersion&&!Mr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||a.add(e.origModule));continue}let f=(c?Tr:Er).exec(i);f&&((d?n:t)[f[1]]=f[2])}for(let e of a)delete t[e],delete n[e];if(o.length){let e=[...Object.keys(n),...Object.keys(t)];for(let r of o){let a=``;for(let t of e)(r===t||r.startsWith(`${t}/`))&&t.length>a.length&&(a=t);let o=n[a]?n:t[a]?t:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function Br(e,n,r,i,a){let o=_r(e),s=async(e,n)=>{try{let{stdout:r}=await(await cr())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},c=Pr(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(vr(e,o+1),a.goProbeTimeout)]);return l?Rr(e,r,await Lr(o,u,t=>s(vr(e,t),a.goProbeTimeout)),l.Version,l.Time):Ir(e,r)}async function Vr(e,t,n,r,i,a){if(pr(e,a))return Br(e,t,n,r,i);let o=mr(e),s=_r(e),c=async t=>{let n=vr(e,t);try{let e=await i.doFetch(`${i.goProxyUrl}/${mr(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});return e.ok?{...await e.json(),path:n}:null}catch{return null}},l=Pr(e,t,n),[u,d]=await Promise.all([Y(i,`${i.goProxyUrl}/${o}/@latest`,{headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return Ir(e,n);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Ir(e,n)}return Rr(e,n,await Lr(s,d,c),f,p)}function Hr(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+${K(s)}\\s+)v${K(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${K(s)}) +v${K(c)}`,`g`),`$1 v${l}`);continue}let u=yr(s,l);u===s?n=n.replace(RegExp(`(${K(s)}) +v${K(c)}`,`g`),`$1 v${l}`):(n=n.replace(RegExp(`${K(s)} +v${K(c)}`,`g`),`${u} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${K(s)}(/\\S+)?\\s*$`,`gm`),`$1${u}$2`)),r[s]=u)}return[n,r]}function Ur(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=r.map(([e])=>e).sort((e,t)=>t.length-e.length),o=RegExp(`"(${a.map(K).join(`|`)})(/|")`,`g`),s=m(`**/*.go`,{cwd:e});for(let t of s){let r=u(e,t),a=g(r,`utf8`),s=a.replace(o,(e,t,n)=>`"${i.get(t)}${n}`);s!==a&&n(r,s)}}function Wr(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(Cr.test(r)){i=!0;continue}if(xr.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=kr.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=Or.exec(r);if(o){t.push(o[1]);continue}if(a||wr.test(r)){let e=Nr(r,a);e?.targetVersion&&!Mr(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function Gr(e){let t=`https://${Kr(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${an(t)}/${a.join(`/`)}`,n.href}return t}function Kr(e){return hr.test(e)?c(e):e}function qr(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Jr=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Yr(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 Xr(e,t){return e?e===`github.com`?vt:`https://${e}/api/v1`:t}async function Zr(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await ct(a);if(e)return e.body}try{let e=await Gt(a,i);if(!e.ok)return``;let t=Xt(await e.json());return t&&!i.noCache&&dt(a,`immutable`,t),t}catch{return``}}function Qr(e,t){return rn(F(J(e))?.version??J(e),t)}function $r(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i,newComment:a}of t){let t=`(uses:\\s*['"]?(?:https?:\\/\\/)?)${K(e)}@${K(r)}(?![\\w.-])`;a&&(n=n.replace(RegExp(`${t}([ \\t]*#[ \\t]*)v?\\d\\S*`,`g`),`$1${e}@${i}$2${a}`)),n=n.replace(new RegExp(t,`g`),`$1${e}@${i}`)}return n}const ei=RegExp(`(?:^|/)(?:${U.map(K).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function ti(e){return ei.test(e.replace(/\\/g,`/`))}function ni(e){let t=new Set;try{for(let n of _(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of _(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const ri=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,ii=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gim,ai=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,oi=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,si=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm,ci=/^(?:index\.)?docker\.io$/;function li(e){let t=e.split(`/`);return t.length>1&&ci.test(t[0])&&t.shift(),t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`),repo:t[t.length-1]}}function ui(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`);if(t===-1||e.lastIndexOf(`/`)>t)return null;let n=e.substring(0,t),r=e.substring(t+1);if(!r||!ri.test(r))return null;let{registry:i,namespace:a,repo:o}=li(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function di(e){let t=ri.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function fi(e,t){let n=di(t);return n?rn(e,n.version,n.suffix):t}function pi(e,t){let n=[];for(let r of e.matchAll(t)){let e=ui(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const mi=new WeakMap;function hi(e,t,n){let r=mi.get(n);r||mi.set(n,r=new Map);let i=`${e}/${t}`,a=r.get(i);return a||r.set(i,a=gi(e,t,n)),a}async function gi(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o={headers:{"accept-encoding":`gzip, deflate, br`}},s=e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated}))}),c=async e=>{try{let t=await Dt(a(e),n,o,s);return`body`in t?JSON.parse(t.body):null}catch{return null}},l=await c(1);if(!l)return r;for(let e of l.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let u=Math.min(Math.ceil((l.count||0)/100),10);if(u<2)return r;let d=await Promise.all(Array.from({length:u-1},(e,t)=>c(t+2)));for(let e of d)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function _i(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await Dt(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({digest:e.digest}));if(!(`body`in e))return null;let t=JSON.parse(e.body).digest;return typeof t==`string`?t:null}catch{return null}}async function vi(e,t){let{registry:n,namespace:r,repo:i}=li(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:await hi(r,i,t),name:e},null]}function yi(e,t,n,r,i,a){let o=di(t);if(!o)return null;let s=ye(J(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=di(t);if(!e||e.suffix!==o.suffix||!nn(e.version,o.version))continue;let d=ye(J(e.version))?.version;if(!d||a&&!H(d,a)||!mt(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=L(c,d);!f||!n.has(f)||R(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=fi(c,t),f=d in e?d:l;return f===t?null:{newTag:f,date:u}}const bi=`(?![\\w.@+-])`;function xi(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(K(t),K(a)),`$1${t}:${i.new}`)}return r}function Si(e,t){return xi(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}${bi}`,`gi`)])}function Ci(e,t){return xi(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}${bi}`,`g`)])}function wi(e,t){return xi(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}${bi}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}${bi}`,`g`)])}const Ti=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function Ei(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function Di(e){return/^Dockerfile(\..+)?$/.test(e)}function Oi(e){return Di(e)||Ei(e)}function ki(e){return Di(e)?ii:ai}function Ai(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const ji=[`Makefile`,`makefile`,`GNUmakefile`];function Mi(e){return ji.includes(e)||e.endsWith(`.mk`)}const Ni=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,Pi=RegExp(`${Ni}${String.raw`(\S+)@(v\d\S*)\s*$`}`),Fi=/^[^/\s]+\.[^/\s]+\//;function Ii(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function Li(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Ii(n),r=Pi.exec(e);if(!r)continue;let[,i,a]=r;Fi.test(i)&&t.push({installPath:i,version:a})}return t}const Ri=RegExp(`${Ni}${String.raw`(\S+)\s*$`}`),zi=/@(sha256:[0-9a-f]{64})$/;function Bi(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Vi(e){let t=null,n=e,r=zi.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=ui(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function Hi(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Ri.exec(Ii(n));if(!e)continue;let r=Vi(e[1]);r&&t.push(r)}return t}const Ui=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function Wi(e){let t=Ui.exec(e);return t?e.slice(0,t.index+t[0].length):null}function Gi(e){let t=e.split(`/`),n=[];for(let e=t.length;e>=2;e--)n.push(t.slice(0,e).join(`/`));return n}async function Ki(e,t){let n=Wi(e);if(n)return n;let r=Gi(e);return(await Promise.all(r.map(async e=>{try{return(await t.doFetch(`${t.goProxyUrl}/${mr(e)}/@latest`,{signal:AbortSignal.timeout(t.goProbeTimeout)})).ok?e:null}catch{return null}}))).find(Boolean)??null}async function qi(e,t,n,r,i,a){let o=await Ki(e,r);if(!o)return null;let[s]=await Vr(o,`tool`,J(t),n,r,i),c=Lt(s,{mode:`go`,range:J(t),semvers:a.semvers,useGreatest:a.useGreatest,usePre:a.usePre,useRel:a.useRel,pinnedRange:a.pinnedRange,cooldownDays:a.cooldownDays,now:a.now},{allowDowngrade:a.allowDowngrade,matchesAny:W,isGoPseudoVersion:Fr});if(!c)return null;let l=s.newPath??yr(o,c),u=`${l}${e.slice(o.length)}`,d=rn(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:Gr(l)}}async function Ji(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await vi(a,t),c=yi(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await _i(r,i,c.newTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:Ai(e.ref)}}function Yi(e,t){for(let{oldSpec:n,newSpec:r}of t){let t=RegExp(`^([^#\\n]*?)${K(n)}(?=[\\s#]|$)`,`gm`);e=e.replace(t,`$1${r}`)}return e}const Xi=new Map,Zi=e=>({versions:(e.versions||[]).filter(e=>!e.yanked).map(e=>({num:e.num,created_at:e.created_at}))});async function Qi(e,t){let n=`${yt(t.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,r=Xi.get(n);return r||(r=(async()=>{try{let r=await Dt(n,t,bt(),Zi);`body`in r||en(r.res,n,e,t.cratesIoUrl);let i;try{i=JSON.parse(r.body)}catch{throw Error(`Invalid JSON from ${n}`)}let a=(i.versions||[]).filter(e=>!e.yanked),o={},s={};for(let e of a)e.num&&(o[e.num]={},s[e.num]=e.created_at||``);return{name:e,versions:o,time:s,"dist-tags":{latest:a[0]?.num??``}}}catch(e){throw Xi.delete(n),e}})(),Xi.set(n,r)),[await r,null]}function $i(e){let t=new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);if(!e||!r)continue;let i=e[1],a=r[1];_e(a)&&nt(t,i,a)}return t}const ea=/^\d/;function ta(e,t){return ea.test(e)?$n(Z(`^${e}`),t,`^${e}`).replace(/^\^/,``):$n(Z(e),t,e)}function na(e,t,n){let r=e.get(t);if(!r)return;let i=ea.test(n)?`^${n}`:n,a;for(let e of r)H(e,i)&&(!a||R(e,a))&&(a=e);return a}const ra=Ke.map(K).join(`|`);function ia(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[,t]=e.split(`\0`),i=r.oldOrig||r.old,a=r.new,o=K(t),s=K(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${s}(["'])`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${ra})\\.${o}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function aa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}function oa(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=aa(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const sa=/[*?{[]/;async function ca(e,t,n,r=32){let i=e.filter(e=>!e.startsWith(`!`)),a=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),o=new Set(a.flatMap(e=>m(e,{cwd:t})).map(e=>e.replace(/\\/g,`/`))),s=new Set,c=[];for(let e of i){let r=sa.test(e)?m(e,{cwd:t}).map(e=>f(u(t,e))):[f(u(t,e))];for(let e of r){let r=d(t,e).replace(/\\/g,`/`);if(o.has(r))continue;let i=u(e,n);s.has(i)||(s.add(i),c.push({absPath:i,memberPath:`./${r}`}))}}return(await G(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await S(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function la(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){let n=e.trim();if(!n||n.startsWith(`#`))continue;if(!n.startsWith(`-`))break;let r=/^\s*-\s+['"]?([^'"#\s]+)['"]?/.exec(e);r&&t.push(r[1])}}return t}const ua=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`,`make`]),da={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},fa={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},pa=(e,t)=>typeof e==`string`?yt(e):typeof t==`function`?t():t,ma=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function ha(e,t){let n=new Map,r=new Set(e),i=t;for(;r.size;){for(let e of r){let t=u(i,e);try{p(t),n.set(e,t),r.delete(e)}catch{}}let e=c(i);if(e===i)break;i=e}return n}async function ga(e,t){let n=await G(e,async e=>{try{return[e,await S(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function _a(e,t){t&&(e.date=t,e.age=Le(t,{noAffix:!0}))}const va=(e,t,n)=>`${e}${t}${n}`;function ya(e){let t=0;for(let n of Object.values(e))t+=Object.keys(n).length;return t}function ba(e){console.error(`${Ye()} ${e}`)}function Q(e,t,n,r,i){if(i===`engines`&&He.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?Kr(e):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 xa(t){let n=new Set;if(t)for(let e of t){let t;try{t=h(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t.isFile())n.add(f(e));else if(t.isDirectory()){try{for(let t of _(e,{withFileTypes:!0}))t.isFile()&&(Object.hasOwn(Ue,t.name)||Oi(t.name)||Mi(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=U.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&U.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:U.map(e=>u(t,e));for(let e of a)for(let t of ni(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(U),r=[...Object.keys(Ue),...Ti,...ji,...U];for(let[i,a]of ha(r,e()))if(t.has(i))for(let e of ni(a))n.add(e);else n.add(f(a));try{for(let t of _(e(),{withFileTypes:!0})){let r=Oi(t.name)&&!Ti.includes(t.name),i=Mi(t.name)&&!ji.includes(t.name);t.isFile()&&(r||i)&&n.add(f(u(e(),t.name)))}}catch{}}for(let e of Array.from(n)){let t=s(e);Object.hasOwn(fa,t)&&n.delete(u(c(e),fa[t].supersedes))}return n}function $(e,t){r===`win32`&&y(e,0),b(e,t,r===`win32`?{flag:`r+`}:void 0)}function Sa(e){let t={results:{}};for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r)){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!qn(i.oldOrig)&&(i.old=n===`go`?qr(i.oldOrig):i.oldOrig),n===`go`?i.new=qr(i.new):n===`actions`&&(i.old=J(i.old),i.new=J(i.new)),delete i.oldPrint,delete i.newPrint,delete i.oldOrig,delete i.date;let[r,a]=e.split(`\0`),o=t.results[n]??={};(o[r]??={})[a]=i}return t}let Ca=!1;async function wa(t={}){if(!Ca){let{enableDnsCache:e}=await import(`./dns.js`);e(),Ca=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=$e(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=pa(t.forgeapi,q.forgeapi),d=pa(t.pypiapi,q.pypiapi),p=pa(t.jsrapi,q.jsrapi),m=pa(t.goproxy,lr),h=pa(t.cargoapi,q.cargoapi),g=pa(t.dockerapi,q.dockerapi),_=ur(),v=n.color||!n.noColor&&i.isTTY,y=e=>v?t=>o(e,String(t)):String,b=y(`magenta`),ee=y(`green`),x=y(`red`),C={fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):_t,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:m,cratesIoUrl:h,dockerApiUrl:g,doFetch:async(e,t)=>{n.verbose&&ba(`${b(t?.method||`GET`)} ${e}`);let r=await Ct(e,t);return n.verbose&&ba(`${r.ok?ee(r.status):x(r.status)} ${e}`),r},noCache:!!n.noCache},w=hn(n.greatest),te=hn(n.prerelease),T=hn(n.release),E=hn(n.patch),D=hn(n.minor),ne=hn(n.allowDowngrade),O=n.modes?.length?new Set(n.modes):ua,ie=(n.overrides??[]).map(e=>({include:e.include?.length?fn(e.include):void 0,exclude:e.exclude?.length?fn(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Qe(String(e.cooldown))})),ae=(e,t)=>e.include&&!W(t,e.include)?!1:!e.exclude||!W(t,e.exclude),oe=ie.some(e=>e.cooldownDays);O.has(`actions`)&&Ht();let se=new Map;function k(e){let t=se.get(e);if(!t){let n=W(e,w),r=W(e,te),i=W(e,T),a=W(e,E),o=W(e,D),s=W(e,ne),c;for(let t of ie)ae(t,e)&&(t.greatest!==void 0&&(n=t.greatest),t.prerelease!==void 0&&(r=t.prerelease),t.release!==void 0&&(i=t.release),t.patch!==void 0&&(a=t.patch),t.minor!==void 0&&(o=t.minor),t.allowDowngrade!==void 0&&(s=t.allowDowngrade),t.cooldownDays!==void 0&&(c=t.cooldownDays));let l=a?da.patch:o?da.minor:da.major;t={useGreatest:n,usePre:r,useRel:i,semvers:l,allowDowngrade:s,cooldownOverride:c},se.set(e,t)}return t}let ce=fn(n.include??[]),le=fn(n.exclude??[]),ue=n.pin??{},A={},j={},M={},de=Date.now(),fe=e=>{let t=n.cooldown??e;return t?Qe(String(t)):0},pe=e(),me=e=>e.replace(`${pe}/`,``).replace(`${pe}\\`,``),N=(e,t,n,r,i,a)=>{A[e][va(t,n,r)]={old:i,oldOrig:a}},he=(e,t,n,r)=>{qn(r)?N(`npm`,e,t,n,Yn(r,n).version,r):Me(r)?N(`npm`,e,t,n,Z(r),r):Jn(r)?N(`npm`,e,t,n,`0.0.0`,r):j[va(e,t,n)]={old:r}},ge=xa(n.files?.length?new Set(n.files):!1),P=await ga(Array.from(ge).filter(e=>{if(ti(e))return O.has(`actions`)||O.has(`docker`);let t=s(e);if(Oi(t))return O.has(`docker`);if(Mi(t))return O.has(`make`);let n=Ue[t];return!!n&&O.has(n)}),r),F={},I={},ve={},ye=[],L=null,be=[],xe=[],R=[],Se=[],z=[],Ce={},we={noCache:n.noCache,timeout:n.timeout||5e3},B=rt(async e=>{let t=await vn(e,we);return{dirConfig:t,include:t.include?.length?fn([...n.include??[],...t.include]):ce,exclude:t.exclude?.length?fn([...n.exclude??[],...t.exclude]):le}});async function Te(e){let{dirConfig:t,include:n,exclude:r}=await B(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:{...t.pin,...ue}}}function Ee(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Ve:e===`pypi`?We:e===`go`?n.indirect?Ge:Ge.filter(e=>e!==`indirect`):e===`cargo`?Ke:[]}function De(e,t,n,r){A.docker??={};for(let i of n)for(let{ref:n}of pi(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(A.docker[e])continue;let i=di(n.tag);i&&(A.docker[e]={old:i.version,oldOrig:n.tag},Se.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function V(e){let{dirConfig:t,include:n,exclude:r}=await B(e);return{include:n,exclude:r,pin:t.pin??{},cooldownDays:fe(t.cooldown)}}let Oe=new Set,ke=new Map;for(let e of ge){let t=s(e);if(Object.hasOwn(fa,t))Oe.add(fa[t].mode);else if(t===`Cargo.toml`){let t=P.get(e);if(!t)continue;try{let n=re(t);ke.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&Oe.add(`cargo`)}catch{}}}let Ae=(e,t,n,r,i,a)=>{let o=M[e]??=[],s=!o.length&&!Oe.has(e),c=s?`.`:me(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:fe(i.cooldown)}),s&&(Ce[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},je=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of ge){if(ti(e)){let t=O.has(`actions`),n=O.has(`docker`);if(!t&&!n)continue;let r=P.get(e),i=me(e),a=await V(c(e));if(F[i]={absPath:e,content:r},t){A.actions??={};let e=Array.from(r.matchAll(Jr),e=>Yr(e[1])).filter(e=>e!==null);for(let t of e){if(!Q(t.name,`actions`,a.include,a.exclude,`actions`))continue;let e=`${i}${t.name}`;A.actions[e]||(A.actions[e]={old:t.ref},R.push({...t,key:e,apiUrl:Xr(t.host,l),filePin:a.pin,fileCooldownDays:a.cooldownDays}))}}n&&(I[i]={absPath:e,content:r,fileType:`workflow`},De(r,i,[ai,oi,si],a));continue}let t=s(e);if(Oi(t)){if(!O.has(`docker`))continue;let n=P.get(e),r=me(e),i=Di(t)?`dockerfile`:`compose`,a=await V(c(e));I[r]={absPath:e,content:n,fileType:i},De(n,r,[ki(t)],a);continue}if(Mi(t)){if(!O.has(`make`))continue;let t=P.get(e),n=me(e),r=await V(c(e));ve[n]={absPath:e,content:t},A.make??={};let i={projectDir:c(e),filePin:r.pin,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of Li(t)){if(!Q(e,`make`,r.include,r.exclude,`make`))continue;let t=`${n}${e}`;A.make[t]||(A.make[t]={old:J(a),oldOrig:a},z.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Hi(t)){if(!Q(e.writtenImage,`make`,r.include,r.exclude,`make`))continue;let t=`${n}${e.writtenImage}`;if(A.make[t])continue;let a=di(e.ref.tag);if(!a)continue;let o=Bi(e.writtenImage,e.ref.tag,e.digest);A.make[t]={old:a.version,oldOrig:e.ref.tag},z.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=Ue[t];if(!O.has(n))continue;if(t===`go.work`){A[n]??={};let t=c(f(e)),i=P.get(e);L={file:e,content:i};let a=Wr(i),[o,s]=await Promise.all([Te(t),G(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await S(n,`utf8`)}}catch{return null}},{concurrency:r})]),{modeConfig:l,modeInclude:d,modeExclude:p,pin:m}=o,h=Ee(n,l);Ce[n]={modeConfig:l,projectDir:t,pin:m};for(let e of s){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=zr(i),o=c(r);ye.push({absPath:r,content:i,projectDir:o,usePath:t});let s=t===`.`?``:`|${t}`;for(let e of h){let t=a[e]||{};for(let[r,i]of Object.entries(t))Q(r,n,d,p,e)&&N(n,e,s,r,qr(i),J(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,n,d,p,`replace`)&&N(n,`replace`,``,e,qr(t),J(t));continue}if(t===`go.mod`&&ye.some(t=>t.absPath===f(e))||t===`package.json`&&xe.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){A[n]??={};let t=P.get(e),i=ke.get(e)??re(t),a=c(f(e)),o=ha([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,l=Array.isArray(s)&&s.length,[u,d,p]=await Promise.all([Te(a),o?S(o,`utf8`):Promise.resolve(null),l?ca(s,a,`Cargo.toml`,r):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=u,v=Ee(n,m),y=d?$i(d):new Map,b=(e,t)=>{for(let r of v){let i=qe(e,r)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if(Q(e,n,h,g,r))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=a.version;Me(i)&&N(n,r,t,e,na(y,e,i)??Z(i),i)}else typeof a==`string`&&Me(a)&&N(n,r,t,e,na(y,e,a)??Z(a),a)}}};if(l){Ce[n]={modeConfig:m,projectDir:a,pin:_},b(i,``),be.push({absPath:f(e),content:t,memberPath:`.`});for(let e of p)be.push(e),b(je(e.absPath,()=>re(e.content)),`|${e.memberPath}`)}else b(i,Ae(n,e,t,a,m,_));continue}if(t===`pnpm-workspace.yaml`){A[n]??={};let t=c(f(e)),i=la(P.get(e)),a=u(t,`package.json`),[o,s,l]=await Promise.all([Te(t),et(S(a,`utf8`)),ca(i,t,`package.json`,r)]),{modeConfig:d,modeInclude:p,modeExclude:m,pin:h}=o,g=Ee(n,d);Ce[n]={modeConfig:d,projectDir:t,pin:h};let _=(e,t)=>{for(let r of g){let i=e[r]||{};if(typeof i==`string`){let[e,a]=i.split(`@`);Q(e,n,p,m,r)&&N(n,r,t,e,Z(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Q(e,n,p,m,r)&&he(r,t,e,a)}};if(s!==null){let e=je(a,()=>JSON.parse(s));xe.push({absPath:f(a),content:s,memberPath:`.`}),_(e,``)}for(let e of l){let t=je(e.absPath,()=>JSON.parse(e.content));xe.push(e),_(t,`|${e.memberPath}`)}continue}A[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await Te(i),m=Ee(n,a),h=P.get(e),g=Ae(n,e,h,i,a,p),_=je(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?re(h):n===`go`?zr(h):{});for(let e of m){let t;if(t=n===`npm`||n===`go`?_[e]||{}:qe(_,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Be(t))Q(r,n,o,d,e)&&N(n,e,g,r,Z(i),i);else if(typeof t==`string`){let[r,i]=t.split(`@`);Q(r,n,o,d,e)&&N(n,e,g,r,Z(i),i)}else for(let[r,i]of Object.entries(t))Q(r,n,o,d,e)&&(n===`npm`?he(e,g,r,i):n===`go`?N(n,e,g,r,qr(i),J(i)):Me(i)&&N(n,e,g,r,Z(i),i))}}if(!ya(A)&&!Object.keys(j).length)return{results:{},message:`No dependencies found, nothing to do.`};let H=[],Ne=!!fe(Ce.npm?.modeConfig.cooldown)||(M.npm??[]).some(e=>e.modeCooldownDays)||Object.keys(A.npm??{}).some(e=>k(e.split(`\0`)[1]).cooldownOverride),Pe={registry:n.registry,needsDates:Ne};for(let[e,t]of Object.entries(Ce)){let n=A[e]&&Object.keys(A[e]).length>0,i=e===`npm`&&Object.keys(j).length>0;if(!n&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=t,c=fe(a.cooldown);H.push((async()=>{let t=new Map;for(let n of M[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let n={modeConfig:a,projectDir:o,pin:s,modeCooldownDays:c},i=e=>{let r=e.indexOf(`|`);return r!==-1&&t.get(e.slice(r))||n},l=new Map,u=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let[r,a]=t.split(`\0`),{modeCooldownDays:o}=i(r);if(!o&&!oe)continue;let s=k(a).cooldownOverride??o;s&&!mt(n,s,de)&&delete e[t]}},d=A[e];if(await G(Object.keys(d),async t=>{let[n,r]=t.split(`\0`),a=aa(n),{modeConfig:o,projectDir:s,pin:c,modeCooldownDays:u}=i(n),f=d[t],p=null;if(e===`npm`){let{oldOrig:e}=f;if(e&&qn(e))p=await Xn(r,C);else if(e&&Jn(e))try{p=await Gn(r,a,o,Pe,C)}catch{delete d[t];return}else p=await Gn(r,a,o,Pe,C)}else p=e===`go`?await Vr(r,a,f.oldOrig||f.old,s,C,_):e===`cargo`?await Qi(r,C):await ir(r,C);if(!p)return;let[m,h]=p;if(m.error)throw Error(m.error);let{useGreatest:g,usePre:v,useRel:y,semvers:b,allowDowngrade:ee,cooldownOverride:x}=k(m.name),S=f.old,w=f.oldOrig,te=c[r],T=x??u,E=Lt(m,{usePre:v,useRel:y,useGreatest:g,semvers:b,range:S,mode:e,pinnedRange:te,cooldownDays:T||void 0,now:T?de:void 0},{allowDowngrade:ee,matchesAny:W,isGoPseudoVersion:Fr}),D=``;if((e===`go`||e===`pypi`)&&E)D=E;else if(e===`cargo`&&E&&w)D=ta(w,E);else if(E)if(w&&Jn(w))D=String(Nn()[`save-exact`])===`true`?E:`^${E}`;else if(w&&qn(w)){let e=ma.exec(w);e?D=`${e[1]}${E}`:w.startsWith(`jsr:`)&&(D=`jsr:${E}`)}else D=$n(S,E,w);if(!E||E===S||w&&w===D){delete d[t];return}let ne=``;e===`pypi`&&m.releases?.[E]?.[0]?.upload_time_iso_8601?ne=m.releases[E][0].upload_time_iso_8601:e===`go`&&m.Time?ne=m.Time:e===`cargo`&&m.time?.[E]&&(ne=m.time[E]),f.new=D,w&&qn(w)&&(f.newPrint=E),e===`npm`?l.set(t,{name:r,promise:Kn(m.name,E,o,Pe,C)}):e===`pypi`?f.info=sn(m,h,m.info.name):e===`go`?f.info=Gr(m.newPath||r):e===`cargo`&&(f.info=`https://crates.io/crates/${r}`),ne&&_a(f,ne)},{concurrency:r}),await Promise.all(Array.from(l,async([e,{name:t,promise:n}])=>{let r=await n,i=d[e];i&&(i.info=sn({repository:r.repository,homepage:r.homepage},null,t),r.date&&_a(i,r.date))})),e===`npm`&&Object.keys(j).length){let e=(await G(Object.entries(j),([e,t])=>nr(e,t,C),{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:s}of e){let e=d[t]={old:j[t].old,new:n,oldPrint:Jt.test(a)?a.substring(0,7):a,newPrint:Jt.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&_a(e,s)}}u(d)})())}R.length&&H.push((async()=>{let e=new Map;for(let t of R)nt(e,`${t.apiUrl}/${t.owner}/${t.repo}`,t);await G(e.values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a=await $t(t,n,i,C),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=J(e.name);_e(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=rt(e=>Zr(t,n,i,e,C));async function d(e){let t=new Set;for(let n=0;n<20;n++){let n=It({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!e.cooldownDays)return{version:n,tag:r,commitSha:i,date:``};let a=i?await u(i):``;if(mt(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await G(e,async({key:e,host:t,ref:r,name:a,isHash:o,filePin:s,fileCooldownDays:f})=>{let p=A.actions[e],m=`https://${t||`github.com`}/${n}/${i}`,h=ue[a]??s[a],g=r;if(o){if(g=l.get(r)??``,!g){for(let[e,t]of l)if(e.startsWith(r)){g=t;break}}}else Yt(r)||(g=``);let _=g?X(J(g)):``;if(!_){delete A.actions[e];return}let{usePre:v,useRel:y,semvers:b,cooldownOverride:ee}=k(a),x=ee??f,S=await d({range:_,semvers:b,usePre:v,useRel:y,useGreatest:!0,pinnedRange:h,cooldownDays:x||void 0,now:x?de:void 0});if(!S){delete A.actions[e];return}let{tag:C,commitSha:w,date:te}=S;if(o){if(!w||w.startsWith(r)||r.startsWith(w)){delete A.actions[e];return}p.old=r,p.new=w.substring(0,r.length),p.oldPrint=g,p.newPrint=C}else{let t=Qr(C,r);if(t===r){delete A.actions[e];return}p.new=c.has(t)?t:C}p.info=m;let T=te||(w?await u(w):``);T&&_a(p,T)},{concurrency:r})},{concurrency:r}),Object.keys(A.actions).length||delete A.actions})()),Se.length&&H.push((async()=>{let e=new Map;for(let t of Se)nt(e,t.fullImage,t);await G(e.entries(),async([e,t])=>{let n;try{let[t]=await vi(e,C);n=t}catch{for(let e of t)delete A.docker[e.key];return}for(let e of t){let t=A.docker[e.key],r=t.oldOrig||t.old,{semvers:i,cooldownOverride:a}=k(e.fullImage),o=ue[e.fullImage]??e.filePin[e.fullImage],s=a??e.fileCooldownDays,c=yi(n.tags,r,i,s||void 0,s?de:void 0,o);if(!c){delete A.docker[e.key];continue}t.new=c.newTag,t.info=Ai(e.ref),_a(t,c.date)}},{concurrency:r}),Object.keys(A.docker).length||delete A.docker})()),z.length&&H.push((async()=>{await G(z,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,cooldownOverride:o}=k(e.name),s=ue[e.name]??e.filePin[e.name],c=o??e.fileCooldownDays,l={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,cooldownDays:c||void 0,now:c?de:void 0},u=A.make[e.key],d;if(e.kind===`go`){let t=await et(qi(e.installPath,e.version,e.projectDir,C,_,l));if(!t){delete A.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,u.new=t.newVersion,d=t}else{let t=await et(Ji(e.image,C,l));if(!t){delete A.make[e.key];return}e.newSpec=Bi(e.image.writtenImage,t.newTag,e.image.digest?t.newDigest:null),u.new=t.newTag,d=t}u.info=d.info,d.date&&_a(u,d.date)},{concurrency:r}),Object.keys(A.make).length||delete A.make})());try{await Promise.all(H)}finally{await ft()}if(!ya(A))return{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=oa(A[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;if(A.actions)for(let[e,n]of Object.entries(A.actions)){let[r,i]=e.split(`\0`),a=Jt.test(n.old)?n.newPrint:void 0;nt(t,r,{name:i,oldRef:n.old,newRef:n.new,newComment:a})}let n=new Map;if(A.docker)for(let[e,t]of Object.entries(A.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;if(A.make)for(let e of z)!e.newSpec||!A.make[e.key]||nt(r,e.key.split(`\0`)[0],{oldSpec:e.oldSpec,newSpec:e.newSpec});let i=Object.keys(A).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(A[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=F[e]||{};if(!t)continue;let i=$r(r,n);$(t,i),I[e]&&(I[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=I[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?Si:a===`compose`?Ci:wi)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=ve[e];n&&$(n.absPath,Yi(n.content,t))}continue}if(a===`go`){if(L){for(let e of ye){let t=oa(A[a],e.usePath);if(!Object.keys(t).length)continue;let[n,r]=Hr(e.content,t);n!==e.content&&$(e.absPath,n),Ur(e.projectDir,r,$)}let e={};for(let[t,n]of Object.entries(A[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=Hr(L.content,e);t!==L.content&&$(L.file,t)}}for(let e of M.go??[]){let t=oa(A[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=Hr(e.content,t);$(e.absPath,n),Ur(e.projectDir,r,$)}}else a===`cargo`?(e(a,be,ia),e(a,M.cargo??[],ia)):a===`npm`?(e(a,xe,Zn),e(a,M.npm??[],Zn)):e(a,M[a]??[],ar)}}return Sa(A)}function Ta(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Ea(e){let t=un(e);if(t!==!1)return t===!0||Array.from(t).map(Ta)}function Da(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=v(n).isDirectory()}catch{}return r?n:c(n)}function Oa(e,t){let n=un(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Da(r[0])}}function ka(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:cn,...e!==void 0&&{args:e}}),n=t.values;for(let[e,r]of t.tokens.entries()){if(r.kind!==`option`||!r.value?.startsWith(`-`))continue;let i=r.value.startsWith(`--`)?2:1,a=dn(r.value.substring(i));if(!a)continue;let o=t.tokens[e+1],s=n[r.name];if(Array.isArray(s)){let e=s.indexOf(r.value);e!==-1&&s.splice(e,1)}else n[r.name]=!0;let c=o?.kind===`positional`&&o.value?o.value:!0;cn[a]?.multiple?(n[a]??=[]).push(c):n[a]=c}return{args:n,positionals:t.positionals}}async function Aa(e,t){let{filesList:n,startDir:r}=Oa(e,t),i=typeof e.timeout==`string`?$e(e.timeout,`timeout`):void 0,a={...await vn(r,{noCache:!!e[`no-cache`],timeout:i??5e3})};a.pin=void 0,e.json&&(a.json=!0),e.verbose&&(a.verbose=!0),e[`no-cache`]&&(a.noCache=!0),e.update&&(a.update=!0),e.indirect&&(a.indirect=!0),e[`error-on-outdated`]&&(a.errorOnOutdated=!0),e[`error-on-unchanged`]&&(a.errorOnUnchanged=!0),i!==void 0&&(a.timeout=i),typeof e.sockets==`string`&&(a.sockets=Number(e.sockets)||void 0),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=pn(e.include).map(Ta),s=pn(e.exclude).map(Ta);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=pn(e.types);c.length&&(a.types=c);let l=mn(e.pin);Object.keys(l).length&&(a.pin=l);let u=un(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Ea(e[t]);n!==void 0&&(a[t]=n)}let d=Ea(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);return a}function ja(e){try{return yn(g(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function Ma(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const Na={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function Pa(e){if(Ue[e])return Ue[e];if(Oi(e))return`docker`;if(Mi(e))return`make`}function Fa(e,t){let n=new Set;try{for(let t of _(e,{withFileTypes:!0}))if(t.isFile()){let e=Pa(t.name);e&&n.add(e)}else t.isDirectory()&&U.some(e=>e===t.name)&&n.add(`actions`)}catch{}let r=new Set;for(let i of n)for(let n of Na[i]??[]){let i=Ma(n===`registry`&&typeof t.registry!=`string`?ja(e):t[n],q[n]);i&&r.add(i)}return Array.from(r)}const Ia=/[A-Za-z_$]/,La=/[A-Za-z0-9_$]/;function Ra(e){let t=``,n=0,r=e.length,i=-1;function a(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
|
|
7
7
|
`;)t++;continue}if(e[t]===`/`&&e[t+1]===`*`){for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;t+=2;continue}break}return t}for(;n<r;){let o=e[n];if(o===`"`){for(i=-1,t+=o,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(o===`'`){for(i=-1,t+=`"`,n++;n<r;){let i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
|
|
8
8
|
`){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
|
|
9
|
-
`;)n++;continue}if(o===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}if(o===`,`){i=t.length,t+=o,n++;continue}if(o===`}`||o===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=o,n++;continue}if(
|
|
9
|
+
`;)n++;continue}if(o===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}if(o===`,`){i=t.length,t+=o,n++;continue}if(o===`}`||o===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=o,n++;continue}if(Ia.test(o)){i=-1;let o=``;for(;n<r&&La.test(e[n]);)o+=e[n],n++;t+=e[a(n)]===`:`?JSON.stringify(o):o;continue}/\s/.test(o)||(i=-1),t+=o,n++}return JSON.parse(t)}export{nn as A,J as B,sn as C,Jt as D,_t as E,Xt as F,Re as G,ct as H,Zt as I,tt as J,rt as K,mt as L,kt as M,yt as N,Ft as O,ht as P,qt as R,Ht as S,vt as T,dt as U,en as V,U as W,Me as Y,Lt as _,Oa as a,bt as b,X as c,$t as d,Gt as f,Y as g,Dt as h,Aa as i,Yt as j,At as k,q as l,gt as m,Fa as n,wa as o,Ot as p,Xe as q,ka as r,Kr as s,Ra as t,Ct as u,It as v,an as w,Wt as x,rn as y,Kt as z};
|
package/dist/shared2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{T as e,b as t,x as n}from"./shared.js";export{t as getFetchOpts,n as getForgeTokens,e as githubApiUrl};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.20.2",
|
|
4
4
|
"description": "CLI dependency update tool for npm, uv, cargo, go, actions, docker and make",
|
|
5
5
|
"author": "silverwind",
|
|
6
6
|
"repository": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"eslint": "10.8.0",
|
|
49
49
|
"eslint-config-silverwind": "143.0.0",
|
|
50
50
|
"jest-extended": "7.0.0",
|
|
51
|
-
"timerel": "5.8.
|
|
51
|
+
"timerel": "5.8.8",
|
|
52
52
|
"tsdown": "0.22.14",
|
|
53
53
|
"tsdown-config-silverwind": "4.0.3",
|
|
54
54
|
"typescript": "6.0.3",
|