updates 17.19.2 → 17.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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{K as e,P as t,W as n,a as r,i,m as a,n as o,o 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}=r(_,v);if(!_.help&&!_.version)for(let e of o(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: ${a}
|
|
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 i(_,v);C(e)&&(b=e=>g(`red`,String(e)),x=e=>g(`green`,String(e))),S=!!e.json;let n=await s(e),r=Object.keys(n.results).length>0;if(n.message)console.info(e.json?JSON.stringify({message:n.message}):n.message);else if(r&&(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,r?2:0):e.errorOnUnchanged?await w(void 0,r?0:2):await w()}const E=e=>h(e).length;function D(t){let r=Object.keys(t.results),i=r.length>1,a=[i?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],o=new Set;for(let e of r)for(let r of Object.values(t.results[e]))for(let[t,s]of Object.entries(r)){let r=`${e}|${t}|${s.old}|${s.new}`;o.has(r)||(o.add(r),a.push([e===`go`?l(t):t,...i?[e]:[],n(s.old,s.new,b),n(s.new,s.old,x),s.age||``,s.info||``]))}return e(a,E)}try{await T()}catch(e){await w(e)}export{};
|
package/dist/renovate.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{G as e,H as t,J as n,U as r,V as i,q 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`,...[...r,`.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 r={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=d(e.minimumReleaseAge);t!==void 0&&t>0&&(r.cooldown=t)}let i=[],a=[],o={};if(Array.isArray(e.ignoreDeps))for(let t of e.ignoreDeps)typeof t==`string`&&t&&a.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:r}=g(t.matchPackageNames.filter(e=>typeof e==`string`&&!!e));if(t.enabled===!1)if(e.length)for(let t of e)a.push(m(t));else for(let e of r)i.push(m(e));if(typeof t.allowedVersions==`string`&&n(t.allowedVersions))for(let n of e)!h(n)&&typeof m(n)==`string`&&(o[n]=t.allowedVersions)}return i.length&&(r.include=i),a.length&&(r.exclude=a),Object.keys(o).length&&(r.pin=o),r}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:e=!1,timeout:n=1e4}={}){return async r=>{let a=e?null:await i(r),o=await E(r,a?.etag),s;try{s=await fetch(r,{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&&!e&&t(r,l,c),c}}const O=e(e=>a(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 ne}from"node:os";import{pathToFileURL as T}from"node:url";const E=/^\[\[([^\]]+)\]\]$/,re=/^\[([^[\]]+)\]$/;function ie(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=de(i).trim();if(!a)continue;let o=E.exec(a);if(o){let e=t,r=ue(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=re.exec(a);if(s){n=fe(t,ue(s[1]));continue}let c=A(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=ue(l),f=fe(n,d.slice(0,-1)),p=d[d.length-1],m=ae(u);if(u.startsWith(`[`)&&!O(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${de(r[n])}`,!O(t));n++);e=n,f[p]=oe(t)}else if(u.startsWith(`{`)&&!O(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${de(r[n])}`,!O(t));n++);e=n,f[p]=ce(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]=oe(m+t+m)}else f[p]=oe(u)}return t}function
|
|
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 me=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,he=new Map;function
|
|
5
|
-
`)}return a}const
|
|
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]=oe(m+t+m)}else f[p]=oe(u)}return t}function D(e,t){let n=e.trim();if(n)for(let e of le(n)){let n=e.trim();n&&t.push(oe(n))}}function ae(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function oe(e){if(e.startsWith(`[`)){let t=[],n=j(e,`]`);return D(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?ce(e):e.startsWith(`"""`)?pe(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?pe(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):se(e)}function se(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function ce(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of le(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=oe(e.slice(n+1).trim())}return t}function O(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 le(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 ue(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 de(e){let t=A(e,`#`);return t<0?e:e.slice(0,t)}function*k(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 A(e,t){return k(e,t).next().value??-1}function j(e,t){let n=-1;for(let r of k(e,t))n=r;return n}function fe(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 pe(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 me=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,he=new Map;function M(e){if(typeof e!=`string`)return null;let t=he.get(e);if(t!==void 0)return t;let n=me.exec(e.trim());if(!n)return he.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 he.set(e,s),s}function ge(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 _e(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function N(e,t){let n=_e(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=ge(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function ve(e){return M(e)?.version??null}function P(e){return M(e)}const F=new Map,ye=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function be(e){if(typeof e!=`string`)return null;let t=F.get(e);if(t!==void 0)return t;let n=ye.exec(e);if(!n)return F.set(e,null),null;let r={version:`${n[1]}.${n[2]||`0`}.${n[3]||`0`}`};return F.set(e,r),r}function I(e,t){let n=M(e),r=M(t);return!n||!r?null:xe(n,r)}function xe(e,t){if(e.version===t.version)return null;let n=N(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(_e(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 L(e,t){let n=M(e),r=M(t);return n&&r?N(n,r):null}function R(e,t){return(L(e,t)??-1)>0}function Se(e,t){return(L(e,t)??-1)>=0}function z(e,t){return(L(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=M(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function we(e,t){let n=N(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 Oe(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 ke(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>Oe(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>Oe(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${Oe(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${Oe(n,Number(r),0,!0)}`),e)}const Ae=new Map;function je(e){let t=Ae.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=ke(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 Ae.set(e,null),null;i.push(n)}if(i.length===0)return Ae.set(e,null),null;r.push(i)}let i=r.length?r:null;return Ae.set(e,i),i}function Me(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 V(e,t){let n=M(e);if(!n)return!1;let r=je(t);if(!r)return!1;for(let e of r)if(e.length===0||Me(n,e))return!0;return!1}function Ne(e){return typeof e==`string`&&je(e)?e:null}const Pe=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Fe={"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`},Ie={sec:`second`,min:`minute`};function Le(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Re(e,{now:t,noAffix:n=!1,times:r=Pe,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Fe,longUnits:l=!1}={}){let u=(t===void 0?Date.now():Le(t))-Le(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&&Ie[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 ze(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 Be=/^([^<>=~!]+)(?:==|>=?|<=?|~=)([0-9.a-z]+)$/;function Ve(e){let t=[];for(let n of e){let e=Be.exec(n.replaceAll(/\s+/g,``));if(!e)continue;let r=e[1].replace(/\[.*?\]$/,``);r&&t.push({name:r,version:e[2]})}return t}const He=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ue=[`node`,`deno`,`bun`],H=[`.github`,`.gitea`,`.forgejo`],We={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Ge=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Ke=[`deps`,`indirect`,`replace`,`tool`],qe=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function U(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 Je(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ye(e){return e.split(`,`).filter(Boolean)}function Xe(){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 Ze(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 Qe={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function $e(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Qe[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function et(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function W(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 tt(e){try{return await e}catch{return null}}const G=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);async function nt(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 rt(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function it(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const at=u(r===`win32`?t.LOCALAPPDATA||u(ne(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(ne(),`.cache`),`updates`);let ot=null;const st=new Map;function ct(e){let t=st.get(e);return t===void 0&&(t=te(`sha256`).update(e).digest(`hex`).substring(0,16),st.set(e,t)),t}async function lt(e){try{let t=await S(u(at,`${ct(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 ut=new Set;let dt=0;function ft(e,t,r){let i=(async()=>{try{await(ot??=x(at,{recursive:!0}))}catch{ot=null;return}try{let i=u(at,`${ct(e)}.cache`),a=`${i}.${n}-${dt++}.tmp`;await w(a,`${t}\n${r}`),await C(a,i)}catch{}})();ut.add(i),(async()=>{await i,ut.delete(i)})()}async function pt(){for(;ut.size;)await Promise.all(ut)}var mt=`17.20.1`;function ht(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/864e5>=t}const gt=mt,_t=5e3,vt=2500,yt=`https://api.github.com`,K={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:yt,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},q=e=>e[0]===`v`?e.substring(1):e,bt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function xt(e,t){return{headers:{"user-agent":`updates/${gt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const St=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function Ct(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&St.has(t)}async function wt(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=Ct(t),n}}async function J(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 Tt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function Et(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function Dt(e,t,n,r,i){let a=Et(await Tt(t),r);return i&&!n.noCache&&ft(e,i,a),{body:a,res:t}}async function Ot(e,t,n={},r){let i=t.noCache?null:await lt(e),a=n.headers,o=i?{...a,"if-none-match":i.etag}:a,s=await J(t,e,{...n,headers:o});return s?s.status===304&&i?{body:i.body,res:s}:s.ok?Dt(e,s,t,r,s.headers?.get?.(`etag`)):{res:s}:{res:void 0}}async function kt(e,t,n={},r){if(!t.noCache){let t=await lt(e);if(t)return{body:t.body}}let i=await J(t,e,n);return i?i.ok?Dt(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function At(e){return(P(e)?.prerelease.length??0)>0}function jt(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const Mt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Nt=new WeakMap;function Pt(e){let t=Nt.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`),Nt.set(e,n),n}function Ft(e,t,n){let r=jt(e)||t;return{effectiveUsePre:r,effectiveSemvers:r?Pt(n):n}}function It(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=Y(e),s=Y(t);if(!o||!s)return!0;let c=jt(e)||At(e),l=At(t);return c&&!l?Se(s,o)||n:!l&&z(s,o)?a(i,r):!0}function Y(e){return be(e)?.version??``}function Lt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=Y(n);if(!d)return null;let f=P(Mt.exec(n)?.[0]??``)??P(d),{effectiveUsePre:p,effectiveSemvers:m}=Ft(n,i,r),h=e?.time,g=!!h,_=o||!g,v=!!(c&&l),y=!!s&&!V(f.version,s)||a&&f.prerelease.length>0,b=0,ee=!1,x=f;for(let e of t){let t=P(e);if(!t?.version||t.prerelease.length&&(!p||a)||!y&&N(t,f)<=0||s&&!V(t.version,s))continue;let n;if(v&&(n=u?u(e):g?h[e]:void 0,!ht(n,c,l)))continue;let r=xe(f,t);if(!(!r||!m.has(r))){if(_){if(ee&&N(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 Rt(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=Y(n);if(!t)return null;let{effectiveUsePre:r,effectiveSemvers:p}=Ft(n,a,o),m=e=>At(e)&&(!r||i),h={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},g=e.old||n,_=(e,n)=>{let r=Y(e);if(!r||f(e)||m(e))return!1;let i=I(g,e)??I(t,r);return!i||!p.has(i)||!It(g,e,h)||!ht(n,c,l)?!1:!s||V(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=Lt(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=Y(e.info.version),p=At(f)):(r=e[`dist-tags`].latest,p=At(r));let m=Y(n),g=jt(n),_=At(h),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||g&&_)return h;if(g&&!_)return It(n,h,v)?h:null;let y=I(m,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&p?h:z(r,m)&&!p?It(n,r,v)?r:R(h,m)?h:null:!g&&p&&!a||s&&!V(r,s)||c&&l&&!ht(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const zt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&zt.set(e.substring(0,t),e.substring(t+1))}const Bt=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function Vt(){return Array.from(new Set(Bt.map(e=>t[e]).filter(e=>!!e)))}let Ht;function Ut(){let e=Vt();return e.length?Promise.resolve(e):Ht??=(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 Wt=new Map;async function Gt(e,t){if(!e)return[];let n=zt.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?Ut():[]}async function Kt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await Gt(r,t.forgeApiUrl),a=e=>{let t=xt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return J(t,e,a());let o=r?Wt.get(r):void 0;if(o)return J(t,e,a(o));for(let n of i){let i=await J(t,e,a(n));if(i.status!==401&&i.status!==403)return r&&Wt.set(r,n),i}return J(t,e,a())}function qt(e,t){let n=q(t);if(!ve(n))return null;let r=``,i=``;for(let t of e){let e=q(t);ve(e)&&(!r||R(e,i))&&(r=t,i=e)}return r&&R(i,n)?r:null}function Jt(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 Yt=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function Xt(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}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 lt(e),r=await Kt(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&&ft(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=q(e).split(`.`),r=q(t).split(`.`);return n.length<r.length?!1:!tn(n)||tn(r)}function rn(e,t,n=``){let r=t.startsWith(`v`),i=q(e),a=q(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=Jt(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(`^${G(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(Ye)):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=>Ye(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&&Ne(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(T(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=it(e=>nt(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=K.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=bt(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=bt(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=xt(a?.type,a?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`}),c=(async()=>{try{let n=await Ot(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=xt(a?.type,a?.token),r=await kt(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 J(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 Ot(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}=P(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 X(e){if(/[xX*]/.test(e))return e;let t=e.match(En);return t?.length===1?e.replace(En,Y(t[0])):e}async function er(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await lt(r),t=await Kt(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&&ft(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(Yt.test(o)){let{hash:t,commit:r}=await er(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=qt(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 Ot(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(`(['"])(${G(a)} *(?:\\[[^\\]]+\\])? *[<>=~]+ *)${G(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||`${K.goproxy},direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return bt(e)}return K.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+=G(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(q(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:q(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:q(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([J(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+${G(s)}\\s+)v${G(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`);continue}let u=yr(s,l);u===s?n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`):(n=n.replace(RegExp(`${G(s)} +v${G(c)}`,`g`),`${u} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${G(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(G).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:Yt.test(o)}}function Xr(e,t){return e?e===`github.com`?yt:`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 lt(a);if(e)return e.body}try{let e=await Kt(a,i);if(!e.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&ft(a,`immutable`,n),n}catch{return``}}function Qr(e,t){return rn(P(q(e))?.version??q(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?:\\/\\/)?)${G(e)}@${G(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(`(?:^|/)(?:${H.map(G).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 Ot(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 Ot(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=be(q(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=be(q(e.version))?.version;if(!d||a&&!V(d,a)||!ht(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=I(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(G(t),G(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`,q(t),n,r,i),c=Rt(s,{mode:`go`,range:q(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:U,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]*?)${G(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=`${bt(t.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,r=Xi.get(n);return r||(r=(async()=>{try{let r=await Ot(n,t,xt(),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];ve(a)&&rt(t,i,a)}return t}const ea=/^\d/;function ta(e,t){return ea.test(e)?$n(X(`^${e}`),t,`^${e}`).replace(/^\^/,``):$n(X(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)V(e,i)&&(!a||R(e,a))&&(a=e);return a}const ra=qe.map(G).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=G(t),s=G(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 W(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`?bt(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 W(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 Z(e,t){t&&(e.date=t,e.age=Re(t,{noAffix:!0}))}const _a=(e,t,n)=>`${e}${t}${n}`;function va(e){let t=0;for(let n of Object.values(e))t+=Object.keys(n).length;return t}function ya(e){console.error(`${Xe()} ${e}`)}function Q(e,t,n,r,i){if(i===`engines`&&Ue.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 ba(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(We,t.name)||Oi(t.name)||Mi(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=H.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&H.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:H.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(H),r=[...Object.keys(We),...Ti,...ji,...H];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 xa(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=q(i.old),i.new=q(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 Sa=!1;async function Ca(t={}){if(!Sa){let{enableDnsCache:e}=await import(`./dns.js`);e(),Sa=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=et(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=pa(t.forgeapi,K.forgeapi),d=pa(t.pypiapi,K.pypiapi),p=pa(t.jsrapi,K.jsrapi),m=pa(t.goproxy,lr),h=pa(t.cargoapi,K.cargoapi),g=pa(t.dockerapi,K.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)):vt,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:m,cratesIoUrl:h,dockerApiUrl:g,doFetch:async(e,t)=>{n.verbose&&ya(`${b(t?.method||`GET`)} ${e}`);let r=await wt(e,t);return n.verbose&&ya(`${r.ok?ee(r.status):x(r.status)} ${e}`),r},noCache:!!n.noCache},w=hn(n.greatest),te=hn(n.prerelease),ne=hn(n.release),T=hn(n.patch),E=hn(n.minor),re=hn(n.allowDowngrade),D=n.modes?.length?new Set(n.modes):ua,ae=(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:$e(String(e.cooldown))})),oe=(e,t)=>e.include&&!U(t,e.include)?!1:!e.exclude||!U(t,e.exclude),se=ae.some(e=>e.cooldownDays);D.has(`actions`)&&Ut();let ce=new Map;function O(e){let t=ce.get(e);if(!t){let n=U(e,w),r=U(e,te),i=U(e,ne),a=U(e,T),o=U(e,E),s=U(e,re),c;for(let t of ae)oe(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},ce.set(e,t)}return t}let le=fn(n.include??[]),ue=fn(n.exclude??[]),de=n.pin??{},k={},A={},j={},fe=Date.now(),pe=e=>{let t=n.cooldown??e;return t?$e(String(t)):0},me=e(),he=e=>e.replace(`${me}/`,``).replace(`${me}\\`,``),M=(e,t,n,r,i,a)=>{k[e][_a(t,n,r)]={old:i,oldOrig:a}},ge=(e,t,n,r)=>{qn(r)?M(`npm`,e,t,n,Yn(r,n).version,r):Ne(r)?M(`npm`,e,t,n,X(r),r):Jn(r)?M(`npm`,e,t,n,`0.0.0`,r):A[_a(e,t,n)]={old:r}},_e=ba(n.files?.length?new Set(n.files):!1),N=await ga(Array.from(_e).filter(e=>{if(ti(e))return D.has(`actions`)||D.has(`docker`);let t=s(e);if(Oi(t))return D.has(`docker`);if(Mi(t))return D.has(`make`);let n=We[t];return!!n&&D.has(n)}),r),P={},F={},ye={},be=[],I=null,xe=[],L=[],R=[],Se=[],z=[],Ce={},we={noCache:n.noCache,timeout:n.timeout||5e3},B=it(async e=>{let t=await vn(e,we);return{dirConfig:t,include:t.include?.length?fn([...n.include??[],...t.include]):le,exclude:t.exclude?.length?fn([...n.exclude??[],...t.exclude]):ue}});async function Te(e){let{dirConfig:t,include:n,exclude:r}=await B(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:{...t.pin,...de}}}function Ee(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?He:e===`pypi`?Ge:e===`go`?n.indirect?Ke:Ke.filter(e=>e!==`indirect`):e===`cargo`?qe:[]}function De(e,t,n,r){k.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(k.docker[e])continue;let i=di(n.tag);i&&(k.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 Oe(e){let{dirConfig:t,include:n,exclude:r}=await B(e);return{include:n,exclude:r,pin:t.pin??{},cooldownDays:pe(t.cooldown)}}let ke=new Set,Ae=new Map;for(let e of _e){let t=s(e);if(Object.hasOwn(fa,t))ke.add(fa[t].mode);else if(t===`Cargo.toml`){let t=N.get(e);if(!t)continue;try{let n=ie(t);Ae.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&ke.add(`cargo`)}catch{}}}let je=(e,t,n,r,i,a)=>{let o=j[e]??=[],s=!o.length&&!ke.has(e),c=s?`.`:he(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:pe(i.cooldown)}),s&&(Ce[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},Me=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of _e){if(ti(e)){let t=D.has(`actions`),n=D.has(`docker`);if(!t&&!n)continue;let r=N.get(e),i=he(e),a=await Oe(c(e));if(P[i]={absPath:e,content:r},t){k.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}`;k.actions[e]||(k.actions[e]={old:t.ref},R.push({...t,key:e,apiUrl:Xr(t.host,l),filePin:a.pin,fileCooldownDays:a.cooldownDays}))}}n&&(F[i]={absPath:e,content:r,fileType:`workflow`},De(r,i,[ai,oi,si],a));continue}let t=s(e);if(Oi(t)){if(!D.has(`docker`))continue;let n=N.get(e),r=he(e),i=Di(t)?`dockerfile`:`compose`,a=await Oe(c(e));F[r]={absPath:e,content:n,fileType:i},De(n,r,[ki(t)],a);continue}if(Mi(t)){if(!D.has(`make`))continue;let t=N.get(e),n=he(e),r=await Oe(c(e));ye[n]={absPath:e,content:t},k.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}`;k.make[t]||(k.make[t]={old:q(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(k.make[t])continue;let a=di(e.ref.tag);if(!a)continue;let o=Bi(e.writtenImage,e.ref.tag,e.digest);k.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=We[t];if(!D.has(n))continue;if(t===`go.work`){k[n]??={};let t=c(f(e)),i=N.get(e);I={file:e,content:i};let a=Wr(i),[o,s]=await Promise.all([Te(t),W(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);be.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)&&M(n,e,s,r,qr(i),q(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,n,d,p,`replace`)&&M(n,`replace`,``,e,qr(t),q(t));continue}if(t===`go.mod`&&be.some(t=>t.absPath===f(e))||t===`package.json`&&L.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){k[n]??={};let t=N.get(e),i=Ae.get(e)??ie(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=Je(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;Ne(i)&&M(n,r,t,e,na(y,e,i)??X(i),i)}else typeof a==`string`&&Ne(a)&&M(n,r,t,e,na(y,e,a)??X(a),a)}}};if(l){Ce[n]={modeConfig:m,projectDir:a,pin:_},b(i,``),xe.push({absPath:f(e),content:t,memberPath:`.`});for(let e of p)xe.push(e),b(Me(e.absPath,()=>ie(e.content)),`|${e.memberPath}`)}else b(i,je(n,e,t,a,m,_));continue}if(t===`pnpm-workspace.yaml`){k[n]??={};let t=c(f(e)),i=la(N.get(e)),a=u(t,`package.json`),[o,s,l]=await Promise.all([Te(t),tt(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)&&M(n,r,t,e,X(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Q(e,n,p,m,r)&&ge(r,t,e,a)}};if(s!==null){let e=Me(a,()=>JSON.parse(s));L.push({absPath:f(a),content:s,memberPath:`.`}),_(e,``)}for(let e of l){let t=Me(e.absPath,()=>JSON.parse(e.content));L.push(e),_(t,`|${e.memberPath}`)}continue}k[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await Te(i),m=Ee(n,a),h=N.get(e),g=je(n,e,h,i,a,p),_=Me(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?ie(h):n===`go`?zr(h):{});for(let e of m){let t;if(t=n===`npm`||n===`go`?_[e]||{}:Je(_,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Ve(t))Q(r,n,o,d,e)&&M(n,e,g,r,X(i),i);else if(typeof t==`string`){let[r,i]=t.split(`@`);Q(r,n,o,d,e)&&M(n,e,g,r,X(i),i)}else for(let[r,i]of Object.entries(t))Q(r,n,o,d,e)&&(n===`npm`?ge(e,g,r,i):n===`go`?M(n,e,g,r,qr(i),q(i)):Ne(i)&&M(n,e,g,r,X(i),i))}}if(!va(k)&&!Object.keys(A).length)return{results:{},message:`No dependencies found, nothing to do.`};let V=[],Pe=!!pe(Ce.npm?.modeConfig.cooldown)||(j.npm??[]).some(e=>e.modeCooldownDays)||Object.keys(k.npm??{}).some(e=>O(e.split(`\0`)[1]).cooldownOverride),Fe={registry:n.registry,needsDates:Pe};for(let[e,t]of Object.entries(Ce)){let n=k[e]&&Object.keys(k[e]).length>0,i=e===`npm`&&Object.keys(A).length>0;if(!n&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=t,c=pe(a.cooldown);V.push((async()=>{let t=new Map;for(let n of j[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&&!se)continue;let s=O(a).cooldownOverride??o;s&&!ht(n,s,fe)&&delete e[t]}},d=k[e];if(await W(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,Fe,C)}catch{delete d[t];return}else p=await Gn(r,a,o,Fe,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}=O(m.name),S=f.old,w=f.oldOrig,te=c[r],ne=x??u,T=Rt(m,{usePre:v,useRel:y,useGreatest:g,semvers:b,range:S,mode:e,pinnedRange:te,cooldownDays:ne||void 0,now:ne?fe:void 0},{allowDowngrade:ee,matchesAny:U,isGoPseudoVersion:Fr}),E=``;if((e===`go`||e===`pypi`)&&T)E=T;else if(e===`cargo`&&T&&w)E=ta(w,T);else if(T)if(w&&Jn(w))E=String(Nn()[`save-exact`])===`true`?T:`^${T}`;else if(w&&qn(w)){let e=ma.exec(w);e?E=`${e[1]}${T}`:w.startsWith(`jsr:`)&&(E=`jsr:${T}`)}else E=$n(S,T,w);if(!T||T===S||w&&w===E){delete d[t];return}let re=``;e===`pypi`&&m.releases?.[T]?.[0]?.upload_time_iso_8601?re=m.releases[T][0].upload_time_iso_8601:e===`go`&&m.Time?re=m.Time:e===`cargo`&&m.time?.[T]&&(re=m.time[T]),f.new=E,w&&qn(w)&&(f.newPrint=T),e===`npm`?l.set(t,{name:r,promise:Kn(m.name,T,o,Fe,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}`),re&&Z(f,re)},{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&&Z(i,r.date))})),e===`npm`&&Object.keys(A).length){let e=(await W(Object.entries(A),([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:A[t].old,new:n,oldPrint:Yt.test(a)?a.substring(0,7):a,newPrint:Yt.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&Z(e,s)}}u(d)})())}R.length&&V.push((async()=>{let e=new Map;for(let t of R)rt(e,`${t.apiUrl}/${t.owner}/${t.repo}`,t);await W(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=q(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=it(e=>Zr(t,n,i,e,C));async function d(e){let t=new Set;for(let n=0;n<20;n++){let n=Lt({},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(ht(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await W(e,async({key:e,host:t,ref:r,name:a,isHash:o,filePin:s,fileCooldownDays:f})=>{let p=k.actions[e],m=`https://${t||`github.com`}/${n}/${i}`,h=de[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 Xt(r)||(g=``);let _=g?Y(q(g)):``;if(!_){delete k.actions[e];return}let{usePre:v,useRel:y,semvers:b,cooldownOverride:ee}=O(a),x=ee??f,S=await d({range:_,semvers:b,usePre:v,useRel:y,useGreatest:!0,pinnedRange:h,cooldownDays:x||void 0,now:x?fe:void 0});if(!S){delete k.actions[e];return}let{tag:C,commitSha:w,date:te}=S;if(o){if(!w||w.startsWith(r)||r.startsWith(w)){delete k.actions[e];return}p.old=r,p.new=w.substring(0,r.length),p.oldPrint=g,p.newPrint=C,p.info=m,te&&Z(p,te)}else{let t=Qr(C,r);if(t===r){delete k.actions[e];return}if(p.new=c.has(t)?t:C,p.info=m,w&&te)Z(p,te);else if(w){let e=await u(w);e&&Z(p,e)}}},{concurrency:r})},{concurrency:r}),Object.keys(k.actions).length||delete k.actions})()),Se.length&&V.push((async()=>{let e=new Map;for(let t of Se)rt(e,t.fullImage,t);await W(e.entries(),async([e,t])=>{let n;try{let[t]=await vi(e,C);n=t}catch{for(let e of t)delete k.docker[e.key];return}for(let e of t){let t=k.docker[e.key],r=t.oldOrig||t.old,{semvers:i,cooldownOverride:a}=O(e.fullImage),o=de[e.fullImage]??e.filePin[e.fullImage],s=a??e.fileCooldownDays,c=yi(n.tags,r,i,s||void 0,s?fe:void 0,o);if(!c){delete k.docker[e.key];continue}t.new=c.newTag,t.info=Ai(e.ref),Z(t,c.date)}},{concurrency:r}),Object.keys(k.docker).length||delete k.docker})()),z.length&&V.push((async()=>{await W(z,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,cooldownOverride:o}=O(e.name),s=de[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?fe:void 0},u=k.make[e.key],d;if(e.kind===`go`){let t=await tt(qi(e.installPath,e.version,e.projectDir,C,_,l));if(!t){delete k.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,u.new=t.newVersion,d=t}else{let t=await tt(Ji(e.image,C,l));if(!t){delete k.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&&Z(u,d.date)},{concurrency:r}),Object.keys(k.make).length||delete k.make})());try{await Promise.all(V)}finally{await pt()}if(!va(k))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(k[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;if(k.actions)for(let[e,n]of Object.entries(k.actions)){let[r,i]=e.split(`\0`),a=Yt.test(n.old)?n.newPrint:void 0;rt(t,r,{name:i,oldRef:n.old,newRef:n.new,newComment:a})}let n=new Map;if(k.docker)for(let[e,t]of Object.entries(k.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;if(k.make)for(let e of z)!e.newSpec||!k.make[e.key]||rt(r,e.key.split(`\0`)[0],{oldSpec:e.oldSpec,newSpec:e.newSpec});let i=Object.keys(k).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(k[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=P[e]||{};if(!t)continue;let i=$r(r,n);$(t,i),F[e]&&(F[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=F[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=ye[e];n&&$(n.absPath,Yi(n.content,t))}continue}if(a===`go`){if(I){for(let e of be){let t=oa(k[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(k[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=Hr(I.content,e);t!==I.content&&$(I.file,t)}}for(let e of j.go??[]){let t=oa(k[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,xe,ia),e(a,j.cargo??[],ia)):a===`npm`?(e(a,L,Zn),e(a,j.npm??[],Zn)):e(a,j[a]??[],ar)}}return xa(k)}function wa(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Ta(e){let t=un(e);if(t!==!1)return t===!0||Array.from(t).map(wa)}function Ea(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 Da(e,t){let n=un(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Ea(r[0])}}function Oa(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 ka(e,t){let{filesList:n,startDir:r}=Da(e,t),i=typeof e.timeout==`string`?et(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(wa),s=pn(e.exclude).map(wa);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=Ta(e[t]);n!==void 0&&(a[t]=n)}let d=Ta(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 Aa(e){try{return yn(g(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function ja(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const Ma={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function Na(e){if(We[e])return We[e];if(Oi(e))return`docker`;if(Mi(e))return`make`}function Pa(e,t){let n=new Set;try{for(let t of _(e,{withFileTypes:!0}))if(t.isFile()){let e=Na(t.name);e&&n.add(e)}else t.isDirectory()&&H.some(e=>e===t.name)&&n.add(`actions`)}catch{}let r=new Set;for(let i of n)for(let n of Ma[i]??[]){let i=ja(n===`registry`&&typeof t.registry!=`string`?Aa(e):t[n],K[n]);i&&r.add(i)}return Array.from(r)}const Fa=/[A-Za-z_$]/,Ia=/[A-Za-z0-9_$]/;function La(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(Fa.test(o)){i=-1;let o=``;for(;n<r&&Ia.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,en as B,sn as C,Yt as D,vt as E,Zt as F,it as G,ft as H,ht as I,Ne as J,Ze as K,Jt as L,At as M,bt as N,It as O,gt as P,qt as R,Ut as S,yt as T,H as U,lt as V,ze as W,Rt as _,Da as a,xt as b,Y as c,$t as d,Kt as f,J as g,Ot as h,ka as i,Xt as j,jt as k,K as l,_t as m,Pa as n,Ca as o,kt as p,nt as q,Oa as r,Kr as s,La as t,wt as u,Lt as v,an as w,Gt as x,rn as y,q 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.1",
|
|
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",
|