updates 17.16.1 → 17.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/api.d.ts CHANGED
@@ -24,7 +24,12 @@ type Config = {
24
24
  release?: boolean | Array<string | RegExp>; /** Consider only up to semver-patch */
25
25
  patch?: boolean | Array<string | RegExp>; /** Consider only up to semver-minor */
26
26
  minor?: boolean | Array<string | RegExp>; /** Allow version downgrades when using latest version */
27
- allowDowngrade?: boolean | Array<string | RegExp>;
27
+ allowDowngrade?: boolean | Array<string | RegExp>; /** Opt-in to inheriting select fields from other tools' configs */
28
+ inherit?: {
29
+ renovate?: {
30
+ /** Inherit minimumReleaseAge as cooldown. Off by default. */cooldown?: boolean;
31
+ };
32
+ };
28
33
  };
29
34
  //#endregion
30
35
  //#region modes/shared.d.ts
package/dist/shared.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import{cwd as e,env as t,platform as n,stderr as r}from"node:process";import{promisify as i,styleText as a}from"node:util";import{basename as o,dirname as s,join as c,relative as l,resolve as u}from"node:path";import{accessSync as d,globSync as f,lstatSync as p,readFileSync as m,readdirSync as h,statSync as g,truncateSync as _,writeFileSync as v}from"node:fs";import{mkdir as y,readFile as b,writeFile as ee}from"node:fs/promises";import x from"node:dns";import{execFile as S}from"node:child_process";import{createHash as C}from"node:crypto";import{homedir as w}from"node:os";import{pathToFileURL as te}from"node:url";function ne(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=se(i).trim();if(!a)continue;let o=/^\[\[([^\]]+)\]\]$/.exec(a);if(o){let e=t,r=oe(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=/^\[([^[\]]+)\]$/.exec(a);if(s){n=t;for(let e of oe(s[1]))(!(e in n)||typeof n[e]!=`object`||Array.isArray(n[e]))&&(n[e]={}),n=n[e];continue}let c=le(a);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=oe(l),f=n;for(let e=0;e<d.length-1;e++)(!(d[e]in f)||typeof f[d[e]]!=`object`||Array.isArray(f[d[e]]))&&(f[d[e]]={}),f=f[d[e]];let p=d[d.length-1];if(u.startsWith(`[`)&&D(u,`]`)<0){let t=[];T(u.slice(1),t);for(let n=e+1;n<r.length;n++){let i=se(r[n]).trim();if(!i)continue;let a=D(i,`]`);if(a>=0){T(i.slice(0,a),t),e=n;break}T(i,t)}f[p]=t}else f[p]=re(u)}return t}function T(e,t){let n=e.trim();if(n)for(let e of E(n)){let n=e.trim();n&&t.push(re(n))}}function re(e){if(e.startsWith(`[`)){let t=[],n=ce(e,`]`);return T(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?ae(e):e.startsWith(`"""`)?ue(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ue(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ie(e)}function ie(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function ae(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of E(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=re(e.slice(n+1).trim())}return t}function E(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 oe(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 se(e){let t=D(e,`#`);return t<0?e:e.slice(0,t)}function D(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 if(i===`"`||i===`'`)n=i;else if(i===t)return r}return-1}function ce(e,t){let n=-1,r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`){i++;continue}a===r&&(r=null)}else a===`"`||a===`'`?r=a:a===t&&(n=i)}return n}function le(e){let t=null;for(let n=0;n<e.length;n++){let r=e[n];if(t){if(r===`\\`&&t===`"`){n++;continue}r===t&&(t=null)}else if(r===`"`||r===`'`)t=r;else if(r===`=`)return n}return-1}function ue(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`
2
2
  `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const O=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,k=new Map;function A(e){if(typeof e!=`string`)return null;let t=k.get(e);if(t!==void 0)return t;let n=O.exec(e.trim());if(!n)return k.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 k.set(e,s),s}function j(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 M(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function N(e,t){let n=M(e,t);if(n!==0)return n;if(!e.prerelease.length&&!t.prerelease.length)return 0;if(e.prerelease.length&&!t.prerelease.length)return-1;if(!e.prerelease.length&&t.prerelease.length)return 1;let r=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<r;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=j(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function P(e){return A(e)?.version??null}function F(e){return A(e)}const de=new Map,I=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function fe(e){if(typeof e!=`string`)return null;let t=de.get(e);if(t!==void 0)return t;let n=I.exec(e);if(!n)return de.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return de.set(e,r),r}function L(e,t){let n=A(e),r=A(t);if(!n||!r||n.version===r.version)return null;let i=N(n,r),a=i>0?n:r,o=i>0?r:n,s=a.prerelease.length>0;if(o.prerelease.length>0&&!s){if(!o.patch&&!o.minor)return`major`;if(M(o,a)===0)return o.minor&&!o.patch?`minor`:`patch`}let c=s?`pre`:``;return n.major===r.major?n.minor===r.minor?n.patch===r.patch?`prerelease`:`${c}patch`:`${c}minor`:`${c}major`}function pe(e,t){let n=A(e),r=A(t);return n&&r?N(n,r):null}function R(e,t){return(pe(e,t)??-1)>0}function me(e,t){return(pe(e,t)??-1)>=0}function he(e,t){return(pe(e,t)??1)<0}function ge(e,t){return(pe(e,t)??1)!==0}function _e(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=A(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function ve(e,t){let n=N(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function z(e,t,n){return`${e}.${t}.${n}-0`}function B(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${z(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${z(a,o+1,0)}`})}function ye(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${z(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${z(a,s+1,0)}`:`>=${a}.${s}.0 <${z(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${z(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${z(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${z(a+1,0,0)}`})}function be(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?`<${z(p+1,0,0)}`:`<${z(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function xe(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${z(n+1,0,0)}`}),e=e.replace(/v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${z(r,i+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)\.(\d+)(?=\s|$)/g,(t,n,r,i,a)=>{let o=e.substring(0,a).trimEnd();if(/[<>=]$/.test(o))return t;let s=Number(r),c=Number(i);return`${n}>=${s}.${c}.0 <${z(s,c+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)(?=\s|$)/g,(t,n,r,i)=>{let a=e.substring(0,i).trimEnd();if(/[<>=]$/.test(a))return t;let o=Number(r);return`${n}>=${o}.0.0 <${z(o+1,0,0)}`}),e)}const V=new Map;function Se(e){let t=V.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=be(t),t=ye(t),t=B(t),t=xe(t),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=_e(t);if(!n)return V.set(e,null),null;i.push(n)}if(i.length===0)return V.set(e,null),null;r.push(i)}let i=r.length?r:null;return V.set(e,i),i}function Ce(e,t){for(let n of t)if(!ve(e,n))return!1;if(e.prerelease.length>0){for(let n of t)if(n.semver.prerelease.length>0&&n.semver.major===e.major&&n.semver.minor===e.minor&&n.semver.patch===e.patch)return!0;return!1}return!0}function we(e,t){let n=A(e);if(!n)return!1;let r=Se(t);if(!r)return!1;for(let e of r)if(e.length===0||Ce(n,e))return!0;return!1}function H(e){return typeof e==`string`&&Se(e)?e:null}const Te=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ee={"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`},De={sec:`second`,min:`minute`};function Oe(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function ke(e,{now:t,noAffix:n=!1,times:r=Te,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ee,longUnits:l=!1}={}){let u=Oe(e),d=t===void 0?Date.now():Oe(t);if(u!==u)return o||String(e);let f=d-u,p=f<0;if(p&&(f=-f),f<i)return a;let m=0,h=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(f>=t[1])){m=f/t[0]|0,h=(l&&De[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function Ae(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r&&!/\d/.test(e[t]);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}function je(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/),i=e?.replace(/\[.*?\]$/,``);i&&/^[0-9.a-z]+$/.test(r)&&t.push({name:i,version:r})}return t}const Me=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ne=[`node`,`deno`,`bun`],Pe=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Fe=[`deps`,`indirect`,`replace`,`tool`],Ie=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function U(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function Le(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Re(e){return e.split(`,`).filter(Boolean)}function ze(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`),`.`,String(e.getMilliseconds()).padStart(3,`0`)].join(``)}function Be(e,t,n=` `){let r=``,i=Array(e[0].length).fill(0);for(let n of e)for(let[e,r]of n.entries()){let n=t(r);n>i[e]&&(i[e]=n)}for(let[a,o]of e.entries()){for(let[e,a]of o.entries()){e>0&&(r+=n);let s=` `.repeat(i[e]-t(a));r+=a+(e===o.length-1?``:s)}a<e.length-1&&(r+=`
3
3
  `)}return r}const Ve={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function He(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ve[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}async function W(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(n,r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}const G=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`);function Ue(){let e=new Map,t=new Map,n=x.lookup;x.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(x,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}const We=c(n===`win32`?t.LOCALAPPDATA||c(w(),`AppData`,`Local`):t.XDG_CACHE_HOME||c(w(),`.cache`),`updates`);let Ge=null;function Ke(e){return C(`sha256`).update(e).digest(`hex`).substring(0,16)}async function K(e){try{let t=await b(c(We,`${Ke(e)}.cache`),`utf8`),n=t.indexOf(`
4
- `);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}}async function qe(e,t,n){try{await(Ge??=y(We,{recursive:!0})),await ee(c(We,`${Ke(e)}.cache`),`${t}\n${n}`)}catch{}}var Je=`17.16.1`;function Ye(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/(24*3600*1e3)>=t}const Xe=Je,Ze=5e3,q=e=>e.replace(/^v/,``),Qe=e=>e.endsWith(`/`)?e.slice(0,-1):e;function $e(e,t){return{headers:{"user-agent":`updates/${Xe}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function et(e,t){try{return await fetch(e,t)}catch(t){throw Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`)}}async function tt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}async function nt(e,t,n={}){let r=t.noCache?null:await K(e),i=n.headers,a=r?{...i,"if-none-match":r.etag}:i,o=await t.doFetch(e,{...n,headers:a,signal:AbortSignal.timeout(t.fetchTimeout)});if(!o)return{res:void 0};if(o.status===304&&r)return{body:r.body,res:o};if(!o.ok)return{res:o};let s=await tt(o),c=o.headers?.get?.(`etag`);return c&&!t.noCache&&await qe(e,c,s),{body:s,res:o}}async function rt(e,t,n={}){if(!t.noCache){let t=await K(e);if(t)return{body:t.body}}let r=await t.doFetch(e,{...n,signal:AbortSignal.timeout(t.fetchTimeout)});if(!r)return{res:void 0};if(!r.ok)return{res:r};let i=await tt(r);return t.noCache||await qe(e,`immutable`,i),{body:i,res:r}}function it(e){return(F(e)?.prerelease.length??0)>0}function at(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function ot(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=at(e)||it(e),l=it(t);return c&&!l?R(s,o)||n:!l&&he(s,o)?r===!0||a(i,r):!0}function J(e){return fe(e)?.version??``}function st(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=J(n);if(!d)return d;i=at(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let f=u??(t=>e?.time?.[t]),p=0,m=d;for(let n of t){let t=F(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let u=t.version;if(s&&!we(u,s)||!Ye(f(n),c,l))continue;let d=L(m,u);if(!(!d||!r.has(d)))if(o||!(`time`in e))(me(J(u),m)||s&&!we(m,s))&&(m=u);else{let t=Date.parse(e.time[n]);t>=0&&t>p&&(m=u,p=t)}}return m||null}function ct(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(`||`))return null;let p=[],m;if(t===`pypi`)p=Object.keys(e.releases).filter(e=>P(e)),m=t=>e.releases?.[t]?.[0]?.upload_time_iso_8601;else if(t===`npm`||t===`cargo`)p=Object.keys(e.versions).filter(e=>P(e)),m=t=>e.time?.[t];else if(t===`go`){let t=J(n);if(!t)return null;let r=a||at(n),s=e=>it(e)&&(!r||i),p={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},m=e.old||n,h=J(e.new);if(h&&!f(e.new)&&!s(e.new)){let n=L(t,h);if(n&&o.has(n)&&ot(m,e.new,p)&&Ye(e.Time,c,l))return e.new}let g=J(e.sameMajorNew);if(g&&!f(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=L(t,g);if(n&&o.has(n)&&ot(m,e.sameMajorNew,p)&&Ye(e.sameMajorTime,c,l))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}if(c&&l&&e.olderEligible&&!s(e.olderEligible.version)){let n=J(e.olderEligible.version);if(n){let r=L(t,n);if(r&&o.has(r)&&ot(m,e.olderEligible.version,p))return e.Time=e.olderEligible.time,delete e.newPath,e.olderEligible.version}}return null}let h=st(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=``;t===`pypi`?(f=e.info.version,r=J(e.info.version)):r=e[`dist-tags`].latest;let p=J(n),m=at(n),g=it(h),_=it(r),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||m&&g)return h;if(m&&!g)return ot(n,h,v)?h:null;let y=L(p,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&it(r)?h:he(r,p)&&!_?ot(n,r,v)?r:null:!m&&_&&!a||s&&!we(r,s)||c&&l&&!Ye(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[f||r]??e.time?.[r],c,l)?h:f||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))}const ut=Array.from(new Set([`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`].map(e=>t[e]).filter(Boolean))),dt=i(S);let ft;function pt(){return ut.length?Promise.resolve(ut):ft??=(async()=>{try{let{stdout:e}=await dt(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:ut}catch{return ut}})()}const mt=new Map;async function ht(e){try{let t=lt.get(new URL(e).hostname);if(t)return[t]}catch{}return pt()}async function gt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await(r?ht(e):pt()),a=AbortSignal.timeout(t.fetchTimeout),o=e=>{let t=$e(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t.signal=a,t};if(!i.length)return t.doFetch(e,o());let s=r?mt.get(r):void 0;if(s)return t.doFetch(e,o(s));for(let n of i){let i=await t.doFetch(e,o(n));if(i.status!==401&&i.status!==403)return r&&mt.set(r,n),i}return t.doFetch(e,o())}function _t(e,t,n){let r=q(t);if(!P(r))return null;if(n){let n=t,i=q(t);for(let t of e){let e=q(t);P(e)&&(!n||R(e,i))&&(n=t,i=e)}if(ge(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=q(t);if(!P(n))return null;if(ge(r,n))return t}return null}function vt(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}const yt=/^[0-9a-f]{7,}$/i;function bt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function xt(e,t){let n=t.noCache?null:await K(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=bt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&await qe(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function St(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await xt(i(1),r);if(!e)return[];let t=Array.from(e.tags),n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Number(new URL(n[1]).searchParams.get(`page`));if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>xt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function Ct(e,t,n,r){throw e?.status&&e?.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function wt(e,t,n=``){let r=t.startsWith(`v`),i=q(e),a=q(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function Tt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Et({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`])if(t[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=vt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${Tt(a)}/${e.directory}`)),a||t||``)}function Dt(e){let t=``,n=0,r=e.length;for(;n<r;){let i=e[n];if(i===`"`){for(t+=i,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(i===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
5
- `;)n++;continue}if(i===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}t+=i,n++}return t=t.replace(/,(\s*[}\]])/g,`$1`),JSON.parse(t)}const Ot=[`renovate.json`,`renovate.json5`,...[`.github`,`.gitea`,`.forgejo`,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],kt={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 At(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=kt[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function jt(e){if(!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length)return!1;for(let t of Object.keys(e))if(t.startsWith(`match`)&&t!==`matchPackageNames`)return!1;return!0}async function Mt(e){for(let t of Ot){let n=c(e,...t.split(`/`));try{return{path:n,text:await b(n,`utf8`)}}catch{}}try{let t=await b(c(e,`package.json`),`utf8`),n=JSON.parse(t);if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:`package.json`,text:JSON.stringify(n.renovate)}}catch{}}function Nt(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function Pt(e){let t={};if(typeof e.minimumReleaseAge==`string`){let n=At(e.minimumReleaseAge);n!==void 0&&n>0&&(t.cooldown=n)}let n=[],r={};if(Array.isArray(e.ignoreDeps))for(let t of e.ignoreDeps)typeof t==`string`&&t&&n.push(t);if(Array.isArray(e.packageRules))for(let t of e.packageRules){if(!t||typeof t!=`object`||!jt(t))continue;let e=t.matchPackageNames.filter(e=>typeof e==`string`&&!!e);if(t.enabled===!1)for(let t of e)n.push(Nt(t));if(typeof t.allowedVersions==`string`&&H(t.allowedVersions))for(let n of e)r[n]=t.allowedVersions}return n.length&&(t.exclude=n),Object.keys(r).length&&(t.pin=r),t}async function Ft(e){let t=await Mt(e);if(!t)return{};let n;try{n=Dt(t.text)}catch(e){throw Error(`Unable to parse renovate config ${t.path}: ${e.message}`)}return!n||typeof n!=`object`?{}:Pt(n)}const It={"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 Lt(e,t){return RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Rt(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Lt(e,n):e instanceof RegExp?e:Lt(e,n)}function zt(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Re(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Bt(e){for(let[t,{short:n}]of Object.entries(It))if(t===e||n===e)return t;return``}function Vt(e){return new Set(e.map(e=>Rt(e,!1,!0)))}function Ht(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Re(e)):[]}function Ut(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&H(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&H(r)&&(t[n]=r)}return t}function Wt(e){if(typeof e==`boolean`)return e;if(!Array.isArray(e)||!e.length)return!1;let t=new Set;for(let n of e)t.add(Rt(n,!1,!1));return t}async function Gt(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n=await Ft(e),r={};try{({default:r}=await Promise.any(t.map(async t=>{let n=c(e,...t.split(`/`)),r=te(n);try{d(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return{...n,...r}}function Kt(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 qt(e){try{return Kt(m(e,`utf-8`))}catch{return}}function Jt(t){let n=e();for(;;){let e=c(n,t);try{return g(e),e}catch{}let r=s(n);if(r===n)break;n=r}}function Yt(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function Xt(e,r={}){let i=n===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...r}],s=[];function l(e){if(!e||s.includes(e))return;let t=qt(e);t&&(o.push(t),s.push(e))}i||(l(c(`/etc`,e,`config`)),l(c(`/etc`,`${e}rc`))),a&&(l(c(a,`.config`,e,`config`)),l(c(a,`.config`,e)),l(c(a,`.${e}`,`config`)),l(c(a,`.${e}rc`))),l(Jt(`.${e}rc`));let u=Yt(`${e}_`);return u.config&&l(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const Zt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Qt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,$t=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,en=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,tn=`https://registry.npmjs.org`;let Y=null;const nn=new Map;function rn(){return Y??=Xt(`npm`,{registry:tn})}function an(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function on(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:an(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(an(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:an(o),type:`Basic`}}function sn(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=on(`//${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:an(i),type:`Basic`}}function cn(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function ln(e,t){Y||=rn();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=nn.get(r);if(i)return i;let a=()=>({auth:sn(t,Y),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=Qe(cn(n,Y));if(e!==t)try{let t=sn(e,Y);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return nn.set(r,o),o}function un(e,t,n){Y||=rn();let r=Qe((typeof n.registry==`string`?n.registry:!1)||t.registry||Y.registry||tn);return{...ln(e,r),originalRegistry:r}}function dn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const fn=new Map,pn=new Map,mn=new Map;async function hn(e,t,n,r,i){let{auth:a,registry:s}=un(e,n,r),c=dn(s,t===`resolutions`?o(e):e),l=fn.get(c);if(!l){let t=$e(a?.type,a?.token),n={...t.headers,accept:`application/vnd.npm.install-v1+json`};t.headers=n,l=(async()=>{let r=i.noCache?null:await K(c);r&&(n[`if-none-match`]=r.etag);let a=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...t});if(a?.status===304&&r)return JSON.parse(r.body);if(a?.ok){let e=await a.text(),t=a.headers.get(`etag`);return t&&!i.noCache&&await qe(c,t,e),JSON.parse(e)}Ct(a,c,e,s)})().catch(e=>{throw fn.delete(c),e}),fn.set(c,l)}return[await l,t,s,e]}async function gn(e,t,n,r,i){let{auth:a,registry:o}=un(e,n,r),s=dn(o,e,t),c=pn.get(s);if(c)return c;let l=(async()=>{try{let n=$e(a?.type,a?.token),r=await rt(s,i,n);if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}if(!l){let r=dn(o,e),a=mn.get(r);a||(a=i.doFetch(r,{...n,signal:AbortSignal.timeout(i.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>(mn.delete(r),null)),mn.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return pn.set(s,l),l}function _n(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function vn(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 bn(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await nt(o,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in s){let r=JSON.parse(s.body),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}Ct(s.res,o,e,`JSR`)}function xn(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 Sn(e,t,n){let r=e.replace(en,t);if(n&&n!==e&&/^[\^~]/.test(r)){let e=n.substring(1).split(`.`),t=r.substring(1).split(`.`);e.length!==t.length&&(r=`${r[0]}${t.slice(0,e.length).join(`.`)}`)}if(n&&n!==e&&r.startsWith(`>=`)){let e=/^>=\s/.test(n)?`>= `:`>=`,t=n.replace(/^>=\s*/,``),i=r.replace(/^>=\s*/,``),a=t.split(`.`),o=i.split(`.`);a.length!==o.length&&(r=`${e}${o.slice(0,a.length).join(`.`)}`)}return r}function X(e){let t=e.match($t);return t?.length===1?e.replace($t,J(t[0])):e}async function Cn(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await K(r),t=await gt(r,n,e?{"if-none-match":e.etag}:void 0);if(t?.status===304&&e){let{sha:t,commit:n}=JSON.parse(e.body)[0];return{hash:t,commit:n}}if(!t?.ok)return{hash:``,commit:{}};let i=await t.text(),a=t.headers.get(`etag`);a&&!n.noCache&&await qe(r,a,i);let{sha:o,commit:s}=JSON.parse(i)[0];return{hash:o,commit:s}}catch{return{hash:``,commit:{}}}}async function wn(e,t,n){return(await St(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function Tn(e,t,n,r){let i=t.old.replace(Zt,``),[a,o,s,c]=Qt.exec(i)||[];if(!o||!s||!c)return null;if(yt.test(c)){let{hash:n,commit:i}=await Cn(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=_t(await wn(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function En(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await nt(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in i)return[JSON.parse(i.body),t,null,e];Ct(i.res,r,e,n.pypiApiUrl)}function Dn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`("${G(o)} *[<>=~]+ *)${G(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const On=i(S);function kn(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return Qe(e)}return`https://proxy.golang.org`}function An(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function jn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Mn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Nn(e){let t=/\/v(\d+)$/.exec(e);return t?Number.parseInt(t[1]):1}function Pn(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Fn(e,t){let n=t?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e);if(!n)return null;let[,r,i,a]=n;return i.startsWith(`./`)||i.startsWith(`/`)||i.startsWith(`../`)?null:{origModule:r,targetModule:i,targetVersion:a}}function In(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Ln(n)}function Ln(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Rn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function zn(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 Bn(e,t,n,r,i,a){let o=r?.Version??i,s=r?.Time??a,c=r?.path??e;return[{name:e,old:n,new:q(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:q(i),sameMajorTime:a},t,null,e]}function Vn(e){let t={},n={},r={},i={},a=new Set,o=[],s=e.split(/\r?\n/),c=!1,l=!1,u=!1;for(let e of s){let i=e.trim();if(/^require\s*\(/.test(i)){c=!0;continue}if(/^replace\s*\(/.test(i)){l=!0;continue}if(/^tool\s*\(/.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(u){i&&!i.startsWith(`//`)&&o.push(i);continue}let s=/^tool\s+(\S+)/.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||/^replace\s+/.test(i)){let e=Fn(i,l);e&&(r[e.targetModule]=e.targetVersion,a.add(e.origModule));continue}let f=c?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);f&&((d?n:t)[f[1]]=f[2])}for(let e of a)delete t[e],delete n[e];if(o.length){let e=[...Object.keys(n),...Object.keys(t)];for(let r of o){let a=``;for(let t of e)(r===t||r.startsWith(`${t}/`))&&t.length>a.length&&(a=t);let o=a?n[a]?n:t[a]?t:null:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function Hn(e,n,r,i,a){let o=Nn(e),s=async(e,n)=>{try{let{stdout:r}=await On(`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=In(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(Pn(e,o+1),a.goProbeTimeout)]);return l?Bn(e,n,r,await zn(o,u,t=>s(Pn(e,t),a.goProbeTimeout)),l.Version,l.Time):Rn(e,r,n)}async function Un(e,t,n,r,i,a){if(jn(e,a))return Hn(e,t,n,r,i);let o=Mn(e),s=Nn(e),c=async t=>{let n=Pn(e,t);return i.doFetch(`${i.goProxyUrl}/${Mn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=In(e,t,n),[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return Rn(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Rn(e,n,t)}return Bn(e,t,n,await zn(s,d,c),f,p)}function Wn(e,t){let n=G(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function Gn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${G(s)}\\s+)v${G(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`);continue}let u=Nn(s),d=Number.parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=Pn(s,d);n=n.replace(RegExp(`${G(s)} +v${G(c)}`,`g`),`${e} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${G(s)}(/\\S+)?\\s*$`,`gm`),`$1${e}$2`)),r[s]=e}else n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`);o!==`tool`&&(n=Wn(n,s))}return[n,r]}function Kn(e,t,n){if(!Object.keys(t).length)return;let r=f(`**/*.go`,{cwd:e});for(let i of r){let r=c(e,i),a=m(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${G(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function qn(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(/^use\s*\(/.test(r)){i=!0;continue}if(/^replace\s*\(/.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=/^(\S+)/.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=/^use\s+(\S+)/.exec(r);if(o){t.push(o[1]);continue}if(a||/^replace\s+/.test(r)){let e=Fn(r,a);e&&(n[e.targetModule]=e.targetVersion);continue}}return{use:t,replace:n}}function Jn(e){let t=`https://${Yn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${Tt(t)}/${o.join(`/`)}`,n.toString()}else return t}function Yn(e){return/\/v[0-9]$/.test(e)?s(e):e}function Xn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Zn=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Qn(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:yt.test(o)}}function $n(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function er(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await K(a);if(e)return e.body}try{let e=await gt(a,i);if(!e?.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&await qe(a,`immutable`,n),n}catch{return``}}function tr(e,t){return wt(F(q(e))?.version??q(e),t)}function nr(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${G(e)}@${G(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function rr(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function ir(e){try{return h(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(c(e,t)))}catch{return[]}}const ar=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,or=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,sr=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,cr=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,lr=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function ur(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`)||t[1],repo:t[t.length-1]}}function dr(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`),n,r;if(t===-1||e.lastIndexOf(`/`)>t||(n=e.substring(0,t),r=e.substring(t+1),!r||!ar.test(r)))return null;let{registry:i,namespace:a,repo:o}=ur(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function fr(e){let t=ar.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function pr(e,t){let n=fr(t);return n?wt(e,n.version,n.suffix):t}function mr(e,t){let n=[];for(let r of e.matchAll(t)){let e=dr(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function hr(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=async e=>{try{let t=await nt(a(e),n,o);return`body`in t?JSON.parse(t.body):null}catch{return null}},c=await s(1);if(!c)return r;for(let e of c.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let l=Math.min(Math.ceil((c.count||0)/100),10);if(l<2)return r;let u=await Promise.all(Array.from({length:l-1},(e,t)=>s(t+2)));for(let e of u)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function gr(e,t,n){let{registry:r,namespace:i,repo:a}=ur(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await hr(i,a,n),name:e},t,null,e]}function _r(e,t,n,r,i){let a=fr(t);if(!a)return null;let o=fe(q(a.version))?.version;if(!o)return null;let s=o,c=``,l=``;for(let[t,o]of Object.entries(e)){let e=fr(t);if(!e||e.suffix!==a.suffix)continue;let u=fe(q(e.version))?.version;if(!u||!Ye(o,r,i))continue;let d=L(s,u);!d||!n.has(d)||me(u,s)&&(s=u,c=t,l=o)}if(!c||s===o)return null;let u=pr(s,t);return u===t?null:{newTag:u,date:l}}function vr(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let[t,a]=e.split(`\0`),o=i.oldOrig||i.old;for(let e of n)r=r.replace(e(G(a),G(o)),`$1${a}:${i.new}`)}return r}function yr(e,t){return vr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function br(e,t){return vr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function xr(e,t){return vr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const Sr=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function Cr(e){return/^docker-.+\.ya?ml$/.test(e)}function wr(e){return/^Dockerfile(\..+)?$/.test(e)}function Tr(e){return wr(e)||Cr(e)}function Er(e){return wr(e)?or:sr}function Dr(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Or=new Map;async function kr(e,t,n){let r=`${Qe(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=n.noCache?void 0:Or.get(r);return i||(i=nt(r,n,$e()).then(t=>{`body`in t||Ct(t.res,r,e,n.cratesIoUrl);let i;try{i=JSON.parse(t.body)}catch{throw Error(`Invalid JSON from ${r}`)}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 Or.delete(r),e}),Or.set(r,i)),[await i,t,null,e]}function Ar(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];if(!P(a))continue;let o=t.get(i)||[];o.push(a),t.set(i,o)}return t}const jr=/^\d/;function Mr(e,t){return jr.test(e)?Sn(X(`^${e}`),t,`^${e}`).replace(/^\^/,``):Sn(X(e),t,e)}function Nr(e,t,n){let r=e.get(t);if(!r)return;let i=jr.test(n)?`^${n}`:n,a;for(let e of r)we(e,i)&&(!a||R(e,a))&&(a=e);return a}const Pr=Ie.map(G).join(`|`);function Fr(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[,t]=e.split(`\0`),i=r.oldOrig||r.old,a=r.new,o=G(t),s=G(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\s*${o}\\s*=\\s*\\{\\s*version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${Pr})\\.${o}\\][^\\[]*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function Ir(e){return e.split(`|`)[0]}function Lr(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Ir(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Rr=/[*?{[]/;async function zr(e,t,n,r=32){let i=new Set,a=[];for(let r of e){let e=Rr.test(r)?f(r,{cwd:t}).map(e=>u(c(t,e))):[u(c(t,r))];for(let r of e){let e=c(r,n);if(i.has(e))continue;i.add(e);let o=l(t,r);a.push({absPath:e,memberPath:`./${o.replace(/\\/g,`/`)}`})}}return(await W(a,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await b(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function Br(e){let t=[],n=e.split(`
4
+ `);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}}async function qe(e,t,n){try{await(Ge??=y(We,{recursive:!0})),await ee(c(We,`${Ke(e)}.cache`),`${t}\n${n}`)}catch{}}var Je=`17.16.2`;function Ye(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/(24*3600*1e3)>=t}const Xe=Je,Ze=5e3,q=e=>e.replace(/^v/,``),Qe=e=>e.endsWith(`/`)?e.slice(0,-1):e;function $e(e,t){return{headers:{"user-agent":`updates/${Xe}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function et(e,t){try{return await fetch(e,t)}catch(t){throw Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`)}}async function tt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}async function nt(e,t,n={}){let r=t.noCache?null:await K(e),i=n.headers,a=r?{...i,"if-none-match":r.etag}:i,o=await t.doFetch(e,{...n,headers:a,signal:AbortSignal.timeout(t.fetchTimeout)});if(!o)return{res:void 0};if(o.status===304&&r)return{body:r.body,res:o};if(!o.ok)return{res:o};let s=await tt(o),c=o.headers?.get?.(`etag`);return c&&!t.noCache&&await qe(e,c,s),{body:s,res:o}}async function rt(e,t,n={}){if(!t.noCache){let t=await K(e);if(t)return{body:t.body}}let r=await t.doFetch(e,{...n,signal:AbortSignal.timeout(t.fetchTimeout)});if(!r)return{res:void 0};if(!r.ok)return{res:r};let i=await tt(r);return t.noCache||await qe(e,`immutable`,i),{body:i,res:r}}function it(e){return(F(e)?.prerelease.length??0)>0}function at(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function ot(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=at(e)||it(e),l=it(t);return c&&!l?R(s,o)||n:!l&&he(s,o)?r===!0||a(i,r):!0}function J(e){return fe(e)?.version??``}function st(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=J(n);if(!d)return d;i=at(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let f=u??(t=>e?.time?.[t]),p=0,m=d;for(let n of t){let t=F(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let u=t.version;if(s&&!we(u,s)||!Ye(f(n),c,l))continue;let d=L(m,u);if(!(!d||!r.has(d)))if(o||!(`time`in e))(me(J(u),m)||s&&!we(m,s))&&(m=u);else{let t=Date.parse(e.time[n]);t>=0&&t>p&&(m=u,p=t)}}return m||null}function ct(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(`||`))return null;let p=[],m;if(t===`pypi`)p=Object.keys(e.releases).filter(e=>P(e)),m=t=>e.releases?.[t]?.[0]?.upload_time_iso_8601;else if(t===`npm`||t===`cargo`)p=Object.keys(e.versions).filter(e=>P(e)),m=t=>e.time?.[t];else if(t===`go`){let t=J(n);if(!t)return null;let r=a||at(n),s=e=>it(e)&&(!r||i),p={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},m=e.old||n,h=J(e.new);if(h&&!f(e.new)&&!s(e.new)){let n=L(t,h);if(n&&o.has(n)&&ot(m,e.new,p)&&Ye(e.Time,c,l))return e.new}let g=J(e.sameMajorNew);if(g&&!f(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=L(t,g);if(n&&o.has(n)&&ot(m,e.sameMajorNew,p)&&Ye(e.sameMajorTime,c,l))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}if(c&&l&&e.olderEligible&&!s(e.olderEligible.version)){let n=J(e.olderEligible.version);if(n){let r=L(t,n);if(r&&o.has(r)&&ot(m,e.olderEligible.version,p))return e.Time=e.olderEligible.time,delete e.newPath,e.olderEligible.version}}return null}let h=st(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=``;t===`pypi`?(f=e.info.version,r=J(e.info.version)):r=e[`dist-tags`].latest;let p=J(n),m=at(n),g=it(h),_=it(r),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||m&&g)return h;if(m&&!g)return ot(n,h,v)?h:null;let y=L(p,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&it(r)?h:he(r,p)&&!_?ot(n,r,v)?r:null:!m&&_&&!a||s&&!we(r,s)||c&&l&&!Ye(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[f||r]??e.time?.[r],c,l)?h:f||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))}const ut=Array.from(new Set([`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`].map(e=>t[e]).filter(Boolean))),dt=i(S);let ft;function pt(){return ut.length?Promise.resolve(ut):ft??=(async()=>{try{let{stdout:e}=await dt(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:ut}catch{return ut}})()}const mt=new Map;async function ht(e){try{let t=lt.get(new URL(e).hostname);if(t)return[t]}catch{}return pt()}async function gt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await(r?ht(e):pt()),a=AbortSignal.timeout(t.fetchTimeout),o=e=>{let t=$e(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t.signal=a,t};if(!i.length)return t.doFetch(e,o());let s=r?mt.get(r):void 0;if(s)return t.doFetch(e,o(s));for(let n of i){let i=await t.doFetch(e,o(n));if(i.status!==401&&i.status!==403)return r&&mt.set(r,n),i}return t.doFetch(e,o())}function _t(e,t,n){let r=q(t);if(!P(r))return null;if(n){let n=t,i=q(t);for(let t of e){let e=q(t);P(e)&&(!n||R(e,i))&&(n=t,i=e)}if(ge(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=q(t);if(!P(n))return null;if(ge(r,n))return t}return null}function vt(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}const yt=/^[0-9a-f]{7,}$/i;function bt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function xt(e,t){let n=t.noCache?null:await K(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=bt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&await qe(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function St(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await xt(i(1),r);if(!e)return[];let t=Array.from(e.tags),n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Number(new URL(n[1]).searchParams.get(`page`));if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>xt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function Ct(e,t,n,r){throw e?.status&&e?.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function wt(e,t,n=``){let r=t.startsWith(`v`),i=q(e),a=q(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function Tt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Et({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`])if(t[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=vt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${Tt(a)}/${e.directory}`)),a||t||``)}function Dt(e){let t=``,n=0,r=e.length;for(;n<r;){let i=e[n];if(i===`"`){for(t+=i,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(i===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
5
+ `;)n++;continue}if(i===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}t+=i,n++}return t=t.replace(/,(\s*[}\]])/g,`$1`),JSON.parse(t)}const Ot=[`renovate.json`,`renovate.json5`,...[`.github`,`.gitea`,`.forgejo`,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],kt={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 At(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=kt[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function jt(e){if(!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length)return!1;for(let t of Object.keys(e))if(t.startsWith(`match`)&&t!==`matchPackageNames`)return!1;return!0}async function Mt(e){for(let t of Ot){let n=c(e,...t.split(`/`));try{return{path:n,text:await b(n,`utf8`)}}catch{}}try{let t=await b(c(e,`package.json`),`utf8`),n=JSON.parse(t);if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:`package.json`,text:JSON.stringify(n.renovate)}}catch{}}function Nt(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function Pt(e,t){let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=At(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=[],i={};if(Array.isArray(e.ignoreDeps))for(let t of e.ignoreDeps)typeof t==`string`&&t&&r.push(t);if(Array.isArray(e.packageRules))for(let t of e.packageRules){if(!t||typeof t!=`object`||!jt(t))continue;let e=t.matchPackageNames.filter(e=>typeof e==`string`&&!!e);if(t.enabled===!1)for(let t of e)r.push(Nt(t));if(typeof t.allowedVersions==`string`&&H(t.allowedVersions))for(let n of e)i[n]=t.allowedVersions}return r.length&&(n.exclude=r),Object.keys(i).length&&(n.pin=i),n}async function Ft(e,t={}){let n=await Mt(e);if(!n)return{};let r;try{r=Dt(n.text)}catch(e){throw Error(`Unable to parse renovate config ${n.path}: ${e.message}`)}return!r||typeof r!=`object`?{}:Pt(r,t)}const It={"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 Lt(e,t){return RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Rt(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Lt(e,n):e instanceof RegExp?e:Lt(e,n)}function zt(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Re(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Bt(e){for(let[t,{short:n}]of Object.entries(It))if(t===e||n===e)return t;return``}function Vt(e){return new Set(e.map(e=>Rt(e,!1,!0)))}function Ht(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Re(e)):[]}function Ut(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&H(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&H(r)&&(t[n]=r)}return t}function Wt(e){if(typeof e==`boolean`)return e;if(!Array.isArray(e)||!e.length)return!1;let t=new Set;for(let n of e)t.add(Rt(n,!1,!1));return t}async function Gt(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=c(e,...t.split(`/`)),r=te(n);try{d(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return{...await Ft(e,n.inherit?.renovate),...n}}function Kt(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 qt(e){try{return Kt(m(e,`utf-8`))}catch{return}}function Jt(t){let n=e();for(;;){let e=c(n,t);try{return g(e),e}catch{}let r=s(n);if(r===n)break;n=r}}function Yt(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function Xt(e,r={}){let i=n===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...r}],s=[];function l(e){if(!e||s.includes(e))return;let t=qt(e);t&&(o.push(t),s.push(e))}i||(l(c(`/etc`,e,`config`)),l(c(`/etc`,`${e}rc`))),a&&(l(c(a,`.config`,e,`config`)),l(c(a,`.config`,e)),l(c(a,`.${e}`,`config`)),l(c(a,`.${e}rc`))),l(Jt(`.${e}rc`));let u=Yt(`${e}_`);return u.config&&l(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const Zt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Qt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,$t=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,en=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,tn=`https://registry.npmjs.org`;let Y=null;const nn=new Map;function rn(){return Y??=Xt(`npm`,{registry:tn})}function an(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function on(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:an(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(an(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:an(o),type:`Basic`}}function sn(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=on(`//${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:an(i),type:`Basic`}}function cn(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function ln(e,t){Y||=rn();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=nn.get(r);if(i)return i;let a=()=>({auth:sn(t,Y),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=Qe(cn(n,Y));if(e!==t)try{let t=sn(e,Y);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return nn.set(r,o),o}function un(e,t,n){Y||=rn();let r=Qe((typeof n.registry==`string`?n.registry:!1)||t.registry||Y.registry||tn);return{...ln(e,r),originalRegistry:r}}function dn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const fn=new Map,pn=new Map,mn=new Map;async function hn(e,t,n,r,i){let{auth:a,registry:s}=un(e,n,r),c=dn(s,t===`resolutions`?o(e):e),l=fn.get(c);if(!l){let t=$e(a?.type,a?.token),n={...t.headers,accept:`application/vnd.npm.install-v1+json`};t.headers=n,l=(async()=>{let r=i.noCache?null:await K(c);r&&(n[`if-none-match`]=r.etag);let a=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...t});if(a?.status===304&&r)return JSON.parse(r.body);if(a?.ok){let e=await a.text(),t=a.headers.get(`etag`);return t&&!i.noCache&&await qe(c,t,e),JSON.parse(e)}Ct(a,c,e,s)})().catch(e=>{throw fn.delete(c),e}),fn.set(c,l)}return[await l,t,s,e]}async function gn(e,t,n,r,i){let{auth:a,registry:o}=un(e,n,r),s=dn(o,e,t),c=pn.get(s);if(c)return c;let l=(async()=>{try{let n=$e(a?.type,a?.token),r=await rt(s,i,n);if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}if(!l){let r=dn(o,e),a=mn.get(r);a||(a=i.doFetch(r,{...n,signal:AbortSignal.timeout(i.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>(mn.delete(r),null)),mn.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return pn.set(s,l),l}function _n(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function vn(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 bn(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await nt(o,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in s){let r=JSON.parse(s.body),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}Ct(s.res,o,e,`JSR`)}function xn(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 Sn(e,t,n){let r=e.replace(en,t);if(n&&n!==e&&/^[\^~]/.test(r)){let e=n.substring(1).split(`.`),t=r.substring(1).split(`.`);e.length!==t.length&&(r=`${r[0]}${t.slice(0,e.length).join(`.`)}`)}if(n&&n!==e&&r.startsWith(`>=`)){let e=/^>=\s/.test(n)?`>= `:`>=`,t=n.replace(/^>=\s*/,``),i=r.replace(/^>=\s*/,``),a=t.split(`.`),o=i.split(`.`);a.length!==o.length&&(r=`${e}${o.slice(0,a.length).join(`.`)}`)}return r}function X(e){let t=e.match($t);return t?.length===1?e.replace($t,J(t[0])):e}async function Cn(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await K(r),t=await gt(r,n,e?{"if-none-match":e.etag}:void 0);if(t?.status===304&&e){let{sha:t,commit:n}=JSON.parse(e.body)[0];return{hash:t,commit:n}}if(!t?.ok)return{hash:``,commit:{}};let i=await t.text(),a=t.headers.get(`etag`);a&&!n.noCache&&await qe(r,a,i);let{sha:o,commit:s}=JSON.parse(i)[0];return{hash:o,commit:s}}catch{return{hash:``,commit:{}}}}async function wn(e,t,n){return(await St(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function Tn(e,t,n,r){let i=t.old.replace(Zt,``),[a,o,s,c]=Qt.exec(i)||[];if(!o||!s||!c)return null;if(yt.test(c)){let{hash:n,commit:i}=await Cn(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=_t(await wn(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function En(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await nt(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in i)return[JSON.parse(i.body),t,null,e];Ct(i.res,r,e,n.pypiApiUrl)}function Dn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`("${G(o)} *[<>=~]+ *)${G(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const On=i(S);function kn(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return Qe(e)}return`https://proxy.golang.org`}function An(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function jn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Mn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Nn(e){let t=/\/v(\d+)$/.exec(e);return t?Number.parseInt(t[1]):1}function Pn(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Fn(e,t){let n=t?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(e);if(!n)return null;let[,r,i,a]=n;return i.startsWith(`./`)||i.startsWith(`/`)||i.startsWith(`../`)?null:{origModule:r,targetModule:i,targetVersion:a}}function In(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Ln(n)}function Ln(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Rn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function zn(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 Bn(e,t,n,r,i,a){let o=r?.Version??i,s=r?.Time??a,c=r?.path??e;return[{name:e,old:n,new:q(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:q(i),sameMajorTime:a},t,null,e]}function Vn(e){let t={},n={},r={},i={},a=new Set,o=[],s=e.split(/\r?\n/),c=!1,l=!1,u=!1;for(let e of s){let i=e.trim();if(/^require\s*\(/.test(i)){c=!0;continue}if(/^replace\s*\(/.test(i)){l=!0;continue}if(/^tool\s*\(/.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(u){i&&!i.startsWith(`//`)&&o.push(i);continue}let s=/^tool\s+(\S+)/.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||/^replace\s+/.test(i)){let e=Fn(i,l);e&&(r[e.targetModule]=e.targetVersion,a.add(e.origModule));continue}let f=c?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);f&&((d?n:t)[f[1]]=f[2])}for(let e of a)delete t[e],delete n[e];if(o.length){let e=[...Object.keys(n),...Object.keys(t)];for(let r of o){let a=``;for(let t of e)(r===t||r.startsWith(`${t}/`))&&t.length>a.length&&(a=t);let o=a?n[a]?n:t[a]?t:null:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function Hn(e,n,r,i,a){let o=Nn(e),s=async(e,n)=>{try{let{stdout:r}=await On(`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=In(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(Pn(e,o+1),a.goProbeTimeout)]);return l?Bn(e,n,r,await zn(o,u,t=>s(Pn(e,t),a.goProbeTimeout)),l.Version,l.Time):Rn(e,r,n)}async function Un(e,t,n,r,i,a){if(jn(e,a))return Hn(e,t,n,r,i);let o=Mn(e),s=Nn(e),c=async t=>{let n=Pn(e,t);return i.doFetch(`${i.goProxyUrl}/${Mn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=In(e,t,n),[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return Rn(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Rn(e,n,t)}return Bn(e,t,n,await zn(s,d,c),f,p)}function Wn(e,t){let n=G(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function Gn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${G(s)}\\s+)v${G(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`);continue}let u=Nn(s),d=Number.parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=Pn(s,d);n=n.replace(RegExp(`${G(s)} +v${G(c)}`,`g`),`${e} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${G(s)}(/\\S+)?\\s*$`,`gm`),`$1${e}$2`)),r[s]=e}else n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`);o!==`tool`&&(n=Wn(n,s))}return[n,r]}function Kn(e,t,n){if(!Object.keys(t).length)return;let r=f(`**/*.go`,{cwd:e});for(let i of r){let r=c(e,i),a=m(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${G(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function qn(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(/^use\s*\(/.test(r)){i=!0;continue}if(/^replace\s*\(/.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=/^(\S+)/.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=/^use\s+(\S+)/.exec(r);if(o){t.push(o[1]);continue}if(a||/^replace\s+/.test(r)){let e=Fn(r,a);e&&(n[e.targetModule]=e.targetVersion);continue}}return{use:t,replace:n}}function Jn(e){let t=`https://${Yn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${Tt(t)}/${o.join(`/`)}`,n.toString()}else return t}function Yn(e){return/\/v[0-9]$/.test(e)?s(e):e}function Xn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Zn=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Qn(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:yt.test(o)}}function $n(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function er(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await K(a);if(e)return e.body}try{let e=await gt(a,i);if(!e?.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&await qe(a,`immutable`,n),n}catch{return``}}function tr(e,t){return wt(F(q(e))?.version??q(e),t)}function nr(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${G(e)}@${G(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function rr(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function ir(e){try{return h(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(c(e,t)))}catch{return[]}}const ar=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,or=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,sr=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,cr=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,lr=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function ur(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`)||t[1],repo:t[t.length-1]}}function dr(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`),n,r;if(t===-1||e.lastIndexOf(`/`)>t||(n=e.substring(0,t),r=e.substring(t+1),!r||!ar.test(r)))return null;let{registry:i,namespace:a,repo:o}=ur(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function fr(e){let t=ar.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function pr(e,t){let n=fr(t);return n?wt(e,n.version,n.suffix):t}function mr(e,t){let n=[];for(let r of e.matchAll(t)){let e=dr(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function hr(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=async e=>{try{let t=await nt(a(e),n,o);return`body`in t?JSON.parse(t.body):null}catch{return null}},c=await s(1);if(!c)return r;for(let e of c.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let l=Math.min(Math.ceil((c.count||0)/100),10);if(l<2)return r;let u=await Promise.all(Array.from({length:l-1},(e,t)=>s(t+2)));for(let e of u)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function gr(e,t,n){let{registry:r,namespace:i,repo:a}=ur(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await hr(i,a,n),name:e},t,null,e]}function _r(e,t,n,r,i){let a=fr(t);if(!a)return null;let o=fe(q(a.version))?.version;if(!o)return null;let s=o,c=``,l=``;for(let[t,o]of Object.entries(e)){let e=fr(t);if(!e||e.suffix!==a.suffix)continue;let u=fe(q(e.version))?.version;if(!u||!Ye(o,r,i))continue;let d=L(s,u);!d||!n.has(d)||me(u,s)&&(s=u,c=t,l=o)}if(!c||s===o)return null;let u=pr(s,t);return u===t?null:{newTag:u,date:l}}function vr(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let[t,a]=e.split(`\0`),o=i.oldOrig||i.old;for(let e of n)r=r.replace(e(G(a),G(o)),`$1${a}:${i.new}`)}return r}function yr(e,t){return vr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function br(e,t){return vr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function xr(e,t){return vr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const Sr=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function Cr(e){return/^docker-.+\.ya?ml$/.test(e)}function wr(e){return/^Dockerfile(\..+)?$/.test(e)}function Tr(e){return wr(e)||Cr(e)}function Er(e){return wr(e)?or:sr}function Dr(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Or=new Map;async function kr(e,t,n){let r=`${Qe(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=n.noCache?void 0:Or.get(r);return i||(i=nt(r,n,$e()).then(t=>{`body`in t||Ct(t.res,r,e,n.cratesIoUrl);let i;try{i=JSON.parse(t.body)}catch{throw Error(`Invalid JSON from ${r}`)}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 Or.delete(r),e}),Or.set(r,i)),[await i,t,null,e]}function Ar(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];if(!P(a))continue;let o=t.get(i)||[];o.push(a),t.set(i,o)}return t}const jr=/^\d/;function Mr(e,t){return jr.test(e)?Sn(X(`^${e}`),t,`^${e}`).replace(/^\^/,``):Sn(X(e),t,e)}function Nr(e,t,n){let r=e.get(t);if(!r)return;let i=jr.test(n)?`^${n}`:n,a;for(let e of r)we(e,i)&&(!a||R(e,a))&&(a=e);return a}const Pr=Ie.map(G).join(`|`);function Fr(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[,t]=e.split(`\0`),i=r.oldOrig||r.old,a=r.new,o=G(t),s=G(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\s*${o}\\s*=\\s*\\{\\s*version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${Pr})\\.${o}\\][^\\[]*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function Ir(e){return e.split(`|`)[0]}function Lr(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Ir(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Rr=/[*?{[]/;async function zr(e,t,n,r=32){let i=new Set,a=[];for(let r of e){let e=Rr.test(r)?f(r,{cwd:t}).map(e=>u(c(t,e))):[u(c(t,r))];for(let r of e){let e=c(r,n);if(i.has(e))continue;i.add(e);let o=l(t,r);a.push({absPath:e,memberPath:`./${o.replace(/\\/g,`/`)}`})}}return(await W(a,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await b(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function Br(e){let t=[],n=e.split(`
6
6
  `),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){if(/^\S/.test(e))break;let n=/^\s+-\s+['"]?([^'"#\s]+)['"]?/.exec(e);n&&t.push(n[1])}}return t}const Vr={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Hr=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),Ur=(e,t)=>typeof e==`string`?Qe(e):typeof t==`function`?t():t;function Wr(e,t){let n=new Map,r=new Set(e),i=t;for(;r.size;){for(let e of r){let t=c(i,e);try{d(t),n.set(e,t),r.delete(e)}catch{}}let e=s(i);if(e===i)break;i=e}return n}async function Gr(e,t){let n=await W(e,async e=>{try{return[e,await b(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function Z(e,t){t&&(e.date=t,e.age=ke(t,{noAffix:!0}))}function Kr(e){let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;return t}function qr(e){console.error(`${ze()} ${e}`)}function Jr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}function Q(e,t,n,r,i){if(i===`engines`&&Ne.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Yr(t){let n=new Set;if(t)for(let e of t){let t;try{t=p(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile())n.add(u(e));else if(t?.isDirectory()){for(let t of Object.keys(Vr)){let r=c(e,t),i=null;try{i=p(r)}catch{}i?.isFile()&&n.add(u(r))}try{for(let t of h(e,{withFileTypes:!0}))t.isFile()&&Tr(t.name)&&n.add(u(c(e,t.name)))}catch{}let t=u(e).replace(/\\/g,`/`),r;r=t.endsWith(`.github/workflows`)?t:t.endsWith(`.github`)?c(t,`workflows`):c(t,`.github`,`workflows`);for(let e of ir(r))n.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{let t=c(`.github`,`workflows`),r=[...Object.keys(Vr),...Sr,t];for(let[i,a]of Wr(r,e()))if(i===t)for(let e of ir(a))n.add(e);else n.add(u(a));try{for(let t of h(e(),{withFileTypes:!0}))t.isFile()&&Tr(t.name)&&!Sr.includes(t.name)&&n.add(u(c(e(),t.name)))}catch{}}for(let e of n)o(e)===`go.work`&&n.delete(c(s(e),`go.mod`));for(let e of n)o(e)===`pnpm-workspace.yaml`&&n.delete(c(s(e),`package.json`));return n}function $(e,t){n===`win32`&&_(e,0),v(e,t,n===`win32`?{flag:`r+`}:void 0)}function Xr(e){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!_n(n.oldOrig)&&(n.old=t===`go`?Xn(n.oldOrig):n.oldOrig),t===`go`&&(n.new=Xn(n.new)),t===`actions`&&(n.old=q(n.old),n.new=q(n.new)),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`),o=t.results[n]??={};(o[e]??={})[a]=i}return t}let Zr=!1;async function Qr(t={}){Zr||=(Ue(),!0);let n={...t},i=n.sockets??25,l=n.timeout??0,d=Ur(t.forgeapi,`https://api.github.com`),f=Ur(t.pypiapi,`https://pypi.org`),p=Ur(t.jsrapi,`https://jsr.io`),m=Ur(t.goproxy,kn),h=Ur(t.cargoapi,`https://crates.io`),g=Ur(t.dockerapi,`https://hub.docker.com`),_=An(),v=n.color===!0||n.noColor!==!0&&r.isTTY,y=e=>v?t=>a(e,String(t)):String,ee=y(`magenta`),x=y(`green`),S=y(`red`),C={fetchTimeout:l||5e3,goProbeTimeout:l?l/2:2500,forgeApiUrl:d,pypiApiUrl:f,jsrApiUrl:p,goProxyUrl:m,cratesIoUrl:h,dockerApiUrl:g,doFetch:async(e,t)=>{n.verbose&&qr(`${ee(t?.method||`GET`)} ${e}`);let r=await et(e,t);return n.verbose&&qr(`${r.ok?x(r.status):S(r.status)} ${e}`),r},noCache:!!n.noCache},w=Wt(n.greatest),te=Wt(n.prerelease),T=Wt(n.release),re=Wt(n.patch),ie=Wt(n.minor),ae=Wt(n.allowDowngrade),E=n.modes?.length?new Set(n.modes):Hr;E.has(`actions`)&&pt();function oe(e){return re===!0||U(e,re)?new Set([`patch`]):ie===!0||U(e,ie)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}let se=new Map;function D(e){let t=se.get(e);return t||(t={useGreatest:typeof w==`boolean`?w:U(e,w),usePre:typeof te==`boolean`?te:U(e,te),useRel:typeof T==`boolean`?T:U(e,T),semvers:oe(e)},se.set(e,t)),t}let ce=Vt(n.include??[]),le=Vt(n.exclude??[]),ue=n.pin??{},O={},k={},A={},j={},M=Date.now(),N=0,F=(e,t,n,r,i,a)=>{O[e][`${t}${n}${r}`]={old:i,oldOrig:a}},de=Yr(n.files?.length?new Set(n.files):!1),I=await Gr(Array.from(de).filter(e=>{if(rr(e))return E.has(`actions`)||E.has(`docker`);let t=o(e);if(Tr(t))return E.has(`docker`);let n=Vr[t];return!!n&&E.has(n)}),i),fe={},L={},pe=[],R=null,me=[],he=!1,ge=[],_e=!1,ve=[],z=[],B={};async function ye(t){let r=t===e()?n:await Gt(t);return{modeConfig:r,modeInclude:r!==n&&r?.include?Vt([...n.include??[],...r.include]):ce,modeExclude:r!==n&&r?.exclude?Vt([...n.exclude??[],...r.exclude]):le,pin:{...r?.pin,...ue}}}function be(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Me:e===`pypi`?Array.from(Pe):e===`go`?n.indirect?Array.from(Fe):Fe.filter(e=>e!==`indirect`):e===`cargo`?Array.from(Ie):[]}function xe(e,t,n){O.docker??={};for(let r of n)for(let{ref:n}of mr(e,r)){if(!Q(n.fullImage,`docker`,ce,le,`docker`))continue;let e=`${t}${n.fullImage}`;if(O.docker[e])continue;let r=fr(n.tag);r&&(O.docker[e]={old:r.version,oldOrig:n.tag},z.push({key:e,fullImage:n.fullImage,ref:n}))}}for(let e of de){if(rr(e)){let t=E.has(`actions`),n=E.has(`docker`);if(!t&&!n)continue;let r=I.get(e),i=Jr(e);if(fe[i]={absPath:e,content:r},t){O.actions??={};let e=Array.from(r.matchAll(Zn),e=>Qn(e[1])).filter(e=>e!==null);for(let t of e){if(!Q(t.name,`actions`,ce,le,`actions`))continue;let e=`${i}${t.name}`;O.actions[e]||(O.actions[e]={old:t.ref},ve.push({...t,key:e,apiUrl:$n(t.host,d)}))}}n&&(L[i]={absPath:e,content:r,fileType:`workflow`},xe(r,i,[sr,cr,lr]));continue}let t=o(e);if(Tr(t)){if(!E.has(`docker`))continue;let n=I.get(e),r=Jr(e);L[r]={absPath:e,content:n,fileType:wr(t)?`dockerfile`:`compose`},xe(n,r,[Er(t)]);continue}let n=Vr[t];if(!E.has(n))continue;if(t===`go.work`){O[n]??={};let t=s(u(e)),r=I.get(e);R={file:e,content:r};let a=qn(r),[o,l]=await Promise.all([ye(t),W(a.use,async e=>{let n=u(c(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await b(n,`utf8`)}}catch{return null}},{concurrency:i})]),{modeConfig:d,modeInclude:f,modeExclude:p,pin:m}=o,h=be(n,d);j[n]=e,B[n]={modeConfig:d,projectDir:t,pin:m};for(let e of l){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=Vn(i),o=s(r);pe.push({absPath:r,content:i,projectDir:o,usePath:t});let c=t===`.`?``:`|${t}`;for(let e of h){let t=a[e]||{};for(let[r,i]of Object.entries(t))Q(r,n,f,p,e)&&F(n,e,c,r,Xn(i),q(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,n,f,p,`replace`)&&F(n,`replace`,``,e,Xn(t),q(t));N+=Object.keys(O[n]).length;continue}if(t===`go.mod`&&R||t===`package.json`&&_e)continue;if(t===`Cargo.toml`){O[n]??={};let t=I.get(e),r=ne(t),a=s(u(e));j[n]=e;let o=Wr([`Cargo.lock`],a).get(`Cargo.lock`),c=r.workspace?.members,l=Array.isArray(c)&&c.length,[d,f,p]=await Promise.all([ye(a),o?b(o,`utf8`):Promise.resolve(null),l?zr(c,a,`Cargo.toml`,i):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=d,v=be(n,m);B[n]={modeConfig:m,projectDir:a,pin:_};let y=f?Ar(f):new Map,ee=(e,t)=>{for(let r of v){let i=Le(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=String(a.version);H(i)&&F(n,r,t,e,Nr(y,e,i)??X(i),i)}else typeof a==`string`&&H(a)&&F(n,r,t,e,Nr(y,e,a)??X(a),a)}}};if(l){he=!0,ee(r,``),me.push({absPath:u(e),content:t,memberPath:`.`});for(let e of p){me.push(e);try{ee(ne(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else A[n]=t,ee(r,``);N+=Object.keys(O[n]).length;continue}if(t===`pnpm-workspace.yaml`){O[n]??={};let t=s(u(e)),r=I.get(e);_e=!0;let a=Br(r),o=c(t,`package.json`),[l,d,f]=await Promise.all([ye(t),b(o,`utf8`).catch(()=>null),zr(a,t,`package.json`,i)]),{modeConfig:p,modeInclude:m,modeExclude:h,pin:g}=l,_=be(n,p);j[n]=e,B[n]={modeConfig:p,projectDir:t,pin:g};let v=(e,t)=>{for(let r of _){let i=e[r]||{};if(typeof i==`string`){let[e,a]=i.split(`@`);Q(e,n,m,h,r)&&F(n,r,t,e,X(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Q(e,n,m,h,r)&&(_n(a)?F(n,r,t,e,yn(a,e).version,a):H(a)?F(n,r,t,e,X(a),a):vn(a)?F(n,r,t,e,`0.0.0`,a):k[`${r}${t}${e}`]={old:a})}};if(d!==null){let e;try{e=JSON.parse(d)}catch(e){throw Error(`Error parsing ${o}: ${e.message}`)}ge.push({absPath:u(o),content:d,memberPath:`.`}),v(e,``)}for(let e of f){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}ge.push(e),v(t,`|${e.memberPath}`)}N+=Object.keys(O[n]).length+Object.keys(k).length;continue}j[n]=e,O[n]??={};let r=s(u(e)),{modeConfig:a,modeInclude:l,modeExclude:f,pin:p}=await ye(r),m=be(n,a),h={};A[n]=I.get(e);try{if(n===`npm`)h=JSON.parse(A[n]);else if(n===`pypi`)h=ne(A[n]);else if(n===`go`){let e=Vn(A[n]);h.deps=e.deps,h.indirect=e.indirect,h.replace=e.replace,h.tool=e.tool}}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}for(let e of m){let t;if(t=n===`npm`||n===`go`?h[e]||{}:Le(h,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of je(t))Q(r,n,l,f,e)&&F(n,e,``,r,X(i),i);else if(typeof t==`string`){let[r,i]=t.split(`@`);Q(r,n,l,f,e)&&F(n,e,``,r,X(i),i)}else for(let[r,i]of Object.entries(t))Q(r,n,l,f,e)&&(n===`npm`&&_n(i)?F(n,e,``,r,yn(i,r).version,i):n!==`go`&&H(i)?F(n,e,``,r,X(i),i):n===`npm`&&vn(i)?F(n,e,``,r,`0.0.0`,i):n===`npm`?k[`${e}${r}`]={old:i}:n===`go`&&F(n,e,``,r,Xn(i),q(i)))}N+=Object.keys(O[n]).length+Object.keys(k).length,B[n]={modeConfig:a,projectDir:r,pin:p}}if(O.actions&&(N+=Object.keys(O.actions).length),O.docker&&(N+=Object.keys(O.docker).length),N===0)return{results:{},message:`No dependencies found, nothing to do.`};let V=[],Se={registry:n.registry};for(let e of Object.keys(B)){if(!O[e]||!Object.keys(O[e]).length&&!Object.keys(k).length)continue;let{modeConfig:t,projectDir:r,pin:a}=B[e];V.push((async()=>{let o=new Map,s=n.cooldown??t.cooldown,c=s?He(String(s)):0,l=e=>{if(c)for(let[t,{date:n}]of Object.entries(e))n&&(M-Date.parse(n))/864e5<c&&delete e[t]};if(await W(Object.keys(O[e]),async n=>{let[i,s]=n.split(`\0`),l=Ir(i),u=O[e][n],d=null;if(e===`npm`){let{oldOrig:r}=u;if(r&&_n(r))d=await bn(s,l,C);else if(r&&vn(r))try{d=await hn(s,l,t,Se,C)}catch{delete O[e][n];return}else d=await hn(s,l,t,Se,C)}else d=e===`go`?await Un(s,l,u.oldOrig||u.old,r,C,_):e===`cargo`?await kr(s,l,C):await En(s,i,C);if(!d)return;let[f,,p]=d;if(f?.error)throw Error(f.error);let{useGreatest:m,usePre:h,useRel:g,semvers:v}=D(f.name),y=u.old,b=u.oldOrig,ee=a[s],x=ct(f,{usePre:h,useRel:g,useGreatest:m,semvers:v,range:y,mode:e,pinnedRange:ee,cooldownDays:c||void 0,now:c?M:void 0},{allowDowngrade:ae,matchesAny:U,isGoPseudoVersion:Ln}),S=``;if([`go`,`pypi`].includes(e)&&x)S=x;else if(e===`cargo`&&x&&b)S=Mr(b,x);else if(x)if(b&&vn(b))S=String(rn()[`save-exact`])===`true`?x:`^${x}`;else if(b&&_n(b)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(b);e?S=`${e[1]}${x}`:b.startsWith(`jsr:`)&&(S=`jsr:${x}`)}else S=Sn(y,x,b);if(!x||x===y||b&&b===S){delete O[e][n];return}let w=``;e===`pypi`&&f.releases?.[x]?.[0]?.upload_time_iso_8601?w=f.releases[x][0].upload_time_iso_8601:e===`go`&&f.Time?w=f.Time:e===`cargo`&&f.time?.[x]&&(w=f.time[x]),u.new=S,b&&_n(b)&&(u.newPrint=x),e===`npm`?o.set(n,{name:s,promise:gn(f.name,x,t,Se,C)}):e===`pypi`?u.info=Et(f,p,f.info.name):e===`go`?u.info=Jn(f.newPath||s):e===`cargo`&&(u.info=`https://crates.io/crates/${s}`),w&&Z(u,w)},{concurrency:i}),await Promise.all(Array.from(o,async([t,{name:n,promise:r}])=>{let i=await r,a=O[e][t];a&&(a.info=Et({repository:i.repository,homepage:i.homepage},null,n),i.date&&Z(a,i.date))})),Object.keys(k).length){let t=(await W(Object.entries(k),([e,t])=>{let n=e.split(`\0`)[1];return Tn(e,t,typeof w==`boolean`?w:U(n,w),C)},{concurrency:i})).filter(e=>e!==null);for(let n of t){let{key:t,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=n;O[e][t]={old:k[t].old,new:r,oldPrint:yt.test(o)?o.substring(0,7):o,newPrint:yt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Z(O[e][t],c)}}l(O[e])})())}if(ve.length&&V.push((async()=>{let e=new Map;for(let t of ve){let n=`${t.apiUrl}/${t.owner}/${t.repo}`,r=e.get(n);r||e.set(n,r={apiUrl:t.apiUrl,owner:t.owner,repo:t.repo,infos:[]}),r.infos.push(t)}let t=n.cooldown?He(String(n.cooldown)):0;await W(e.values(),async({apiUrl:e,owner:n,repo:r,infos:a})=>{let o=await St(e,n,r,C),s=[],c=new Map,l=new Map,u=new Map;for(let e of o){l.set(e.name,e);let t=q(e.name);P(t)&&(s.push(t),c.has(t)||c.set(t,e.name)),e.commitSha&&u.set(e.commitSha,e.name)}let d=new Map;async function f(t){if(d.has(t))return d.get(t);let i=await er(e,n,r,t,C);return d.set(t,i),i}async function p(e){let n=new Set;for(let r=0;r<20;r++){let r=st({},n.size?s.filter(e=>!n.has(e)):s,e);if(!r||r===e.range)return null;let i=c.get(r);if(!i){n.add(r);continue}let a=l.get(i)?.commitSha||``;if(!t)return{version:r,tag:i,commitSha:a,date:``};let o=a?await f(a):``;if(Ye(o,t,M))return{version:r,tag:i,commitSha:a,date:o};n.add(r)}return null}await W(a,async({key:e,host:t,ref:i,name:a,isHash:o})=>{let s=O.actions[e],c=`https://${t||`github.com`}/${n}/${r}`;if(o){let{usePre:t,useRel:n}=D(a),r=await p({range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:ue[a]});if(!r){delete O.actions[e];return}let{tag:o,commitSha:l,date:d}=r;if(!l||l===i||l.startsWith(i)||i.startsWith(l)){delete O.actions[e];return}let f=u.get(i);if(!f){for(let[e,t]of u)if(e.startsWith(i)){f=t;break}}s.old=i,s.new=l.substring(0,i.length),s.oldPrint=f||i.substring(0,7),s.newPrint=o,s.info=c,d&&Z(s,d)}else{let t=J(q(i));if(!t){delete O.actions[e];return}let{useGreatest:n,usePre:r,useRel:o,semvers:u}=D(a),d=await p({range:t,semvers:u,usePre:r,useRel:o,useGreatest:n||!0,pinnedRange:ue[a]});if(!d){delete O.actions[e];return}let{tag:m,commitSha:h,date:g}=d,_=tr(m,i);if(_===i){delete O.actions[e];return}if(s.new=l.has(_)?_:m,s.info=c,h&&g)Z(s,g);else if(h){let e=await f(h);e&&Z(s,e)}}},{concurrency:i})},{concurrency:i}),Object.keys(O.actions).length||delete O.actions})()),z.length&&V.push((async()=>{let e=new Map;for(let t of z){let n=e.get(t.fullImage);n||e.set(t.fullImage,n=[]),n.push(t)}let t=n.cooldown?He(String(n.cooldown)):0;await W(e.entries(),async([e,n])=>{let r;try{let[t]=await gr(e,`docker`,C);r=t}catch{for(let e of n)delete O.docker[e.key];return}for(let e of n){let n=O.docker[e.key],i=n.oldOrig||n.old,{semvers:a}=D(e.fullImage),o=_r(r.tags,i,a,t||void 0,t?M:void 0);if(!o){delete O.docker[e.key];continue}n.new=o.newTag,n.info=Dr(e.ref),Z(n,o.date)}},{concurrency:i}),Object.keys(O.docker).length||delete O.docker})()),await Promise.all(V),!Kr(O))return{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=Lr(O[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;if(O.actions)for(let[e,n]of Object.entries(O.actions)){let[r,i]=e.split(`\0`),a=t.get(r);a||t.set(r,a=[]),a.push({name:i,oldRef:n.old,newRef:n.new})}let n=new Map;if(O.docker)for(let[e,t]of Object.entries(O.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=Xr(O);for(let r of Object.keys(O)){if(!Object.keys(O[r]).length)continue;if(r===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=fe[e]||{};if(!t)continue;let i=nr(r,n);$(t,i),L[e]&&(L[e].content=i)}continue}if(r===`docker`){for(let[e,t]of n){let n=L[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?yr:a===`compose`?br:xr)(i,t))}continue}let i=A[r];if(r===`go`&&R){for(let e of pe){let t=Lr(O[r],e.usePath);if(!Object.keys(t).length)continue;let[n,i]=Gn(e.content,t);n!==e.content&&$(e.absPath,n),Kn(e.projectDir,i,$)}let e={};for(let[t,n]of Object.entries(O[r]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=Gn(R.content,e);t!==R.content&&$(R.file,t)}}else if(r===`go`){let[e,t]=Gn(i,O[r]);$(j[r],e),Kn(s(u(j[r])),t,$)}else if(r===`cargo`&&he)e(r,me,Fr);else if(r===`cargo`)$(j[r],Fr(i,O[r]));else if(r===`npm`&&_e)e(r,ge,xn);else{let e=r===`npm`?xn:Dn;$(j[r],e(i,O[r]))}}return r}return Xr(O)}export{It as a,Ut as c,Ae as d,Be as f,Gt as i,Ze as l,Yn as n,Ht as o,Bt as r,zt as s,Qr as t,Xe as u};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.16.1",
3
+ "version": "17.16.2",
4
4
  "description": "CLI dependency update tool for npm, uv, cargo, go and actions",
5
5
  "author": "silverwind",
6
6
  "repository": "silverwind/updates",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "25.6.0",
26
- "@typescript/native-preview": "7.0.0-dev.20260422.1",
26
+ "@typescript/native-preview": "7.0.0-dev.20260425.1",
27
27
  "@vitest/coverage-v8": "4.1.5",
28
28
  "eslint": "10.2.1",
29
29
  "eslint-config-silverwind": "132.0.0",