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