updates 17.16.5 → 17.16.6

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