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