updates 17.15.5 → 17.15.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 +5 -5
  2. package/package.json +14 -14
package/dist/shared.js CHANGED
@@ -1,5 +1,5 @@
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 ee}from"node:fs";import{mkdir as v,readFile as y,writeFile as b}from"node:fs/promises";import x from"node:dns";import{execFile as S,execFileSync as te}from"node:child_process";import{pathToFileURL as C}from"node:url";import{createHash as w}from"node:crypto";import{homedir as ne}from"node:os";function re(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=D(i).trim();if(!a)continue;let o=/^\[\[([^\]]+)\]\]$/.exec(a);if(o){let e=t,r=se(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 se(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=se(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(`[`)&&O(u,`]`)<0){let t=[];T(u.slice(1),t);for(let n=e+1;n<r.length;n++){let i=D(r[n]).trim();if(!i)continue;let a=O(i,`]`);if(a>=0){T(i.slice(0,a),t),e=n;break}T(i,t)}f[p]=t}else f[p]=ie(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(ie(n))}}function ie(e){if(e.startsWith(`[`)){let t=[],n=ce(e,`]`);return T(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?oe(e):e.startsWith(`"""`)?k(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?k(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ae(e)}function ae(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function oe(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of E(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=ie(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 se(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 D(e){let t=O(e,`#`);return t<0?e:e.slice(0,t)}function O(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 k(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
- `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const A=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,j=new Map;function M(e){if(typeof e!=`string`)return null;let t=j.get(e);if(t!==void 0)return t;let n=A.exec(e.trim());if(!n)return j.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 j.set(e,s),s}function ue(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 N(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function P(e,t){let n=N(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=ue(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function F(e){return M(e)?.version??null}function de(e){return M(e)}const I=new Map,fe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function L(e){if(typeof e!=`string`)return null;let t=I.get(e);if(t!==void 0)return t;let n=fe.exec(e);if(!n)return I.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return I.set(e,r),r}function R(e,t){let n=M(e),r=M(t);if(!n||!r||n.version===r.version)return null;let i=P(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(N(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 z(e,t){let n=M(e),r=M(t);return n&&r?P(n,r):null}function B(e,t){return(z(e,t)??-1)>0}function pe(e,t){return(z(e,t)??-1)>=0}function me(e,t){return(z(e,t)??1)<0}function he(e,t){return(z(e,t)??1)!==0}function ge(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=M(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function _e(e,t){let n=P(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function V(e,t,n){return`${e}.${t}.${n}-0`}function ve(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 <${V(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${V(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 <${V(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${V(a,s+1,0)}`:`>=${a}.${s}.0 <${V(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${V(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${V(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${V(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?`<${V(p+1,0,0)}`:`<${V(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 <${V(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 <${V(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 <${V(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 <${V(o+1,0,0)}`}),e)}const H=new Map;function Se(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=be(t),t=ye(t),t=ve(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=ge(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 Ce(e,t){for(let n of t)if(!_e(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=M(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 U(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 W(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(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Be(){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 Ve(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
- `)}return r}const He={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ue(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=He[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 G(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(n,r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}const K=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`);function We(){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 Ge=`17.15.5`,Ke=5e3,q=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}`:``}`)}}function J(e){return(de(e)?.prerelease.length??0)>0}function Xe(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function Ze(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=Y(e),s=Y(t);if(!o||!s)return!0;let c=Xe(e)||J(e),l=J(t);return c&&!l?B(s,o)||n:!l&&me(s,o)?r===!0||a(i,r):!0}function Y(e){return L(e)?.version??``}function Qe(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=Y(n);if(!c)return c;i=Xe(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 l=0,u=c;for(let n of t){let t=de(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!we(c,s))continue;let d=R(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))(pe(Y(c),u)||s&&!we(u,s))&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function $e(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>F(e));else if(t===`npm`||t===`cargo`)d=Object.keys(e.versions).filter(e=>F(e));else if(t===`go`){let t=Y(n);if(!t)return null;let r=a||Xe(n),s=e=>J(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=Y(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=R(t,p);if(n&&o.has(n)&&Ze(f,e.new,d))return e.new}let m=Y(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=R(t,m);if(n&&o.has(n)&&Ze(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=Qe(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=Y(e.info.version)):r=e[`dist-tags`].latest;let d=Y(n),p=Xe(n),m=J(f),h=J(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return Ze(n,f,g)?f:null;let _=R(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&J(r)?f:me(r,d)&&!h?Ze(n,r,g)?r:null:!p&&h&&!a||s&&!we(r,s)?f:u||r}}const et=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&et.set(e.substring(0,t),e.substring(t+1))}const tt=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)));try{let e=te(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3,stdio:[`ignore`,`pipe`,`pipe`]}).trim();e&&!tt.includes(e)&&tt.push(e)}catch{}function nt(){return tt}const rt=new Map;function it(e){try{let t=et.get(new URL(e).hostname);if(t)return[t]}catch{}return nt()}async function at(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=e=>({...n,headers:{...n.headers,Authorization:`Bearer ${e}`}}),i;try{i=new URL(e).hostname}catch{i=``}let a=i?it(e):nt();if(!a.length)return t.doFetch(e,n);let o=i?rt.get(i):void 0;if(o)return t.doFetch(e,r(o));for(let n of a){let a=await t.doFetch(e,r(n));if(a.status!==401&&a.status!==403)return i&&rt.set(i,n),a}return t.doFetch(e,n)}function ot(e,t,n){let r=q(t);if(!F(r))return null;if(n){let n=t,i=q(t);for(let t of e){let e=q(t);F(e)&&(!n||B(e,i))&&(n=t,i=e)}if(he(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=q(t);if(!F(n))return null;if(he(r,n))return t}return null}function st(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 ct=/^[0-9a-f]{7,}$/i;function lt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function ut(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let[a,o]=await Promise.all([at(`${e}/repos/${t}/${n}/tags?per_page=100`,r),at(i(2),r).catch(()=>null)]);if(!a?.ok)return[];let s=lt(await a.json()),c=a.headers.get(`link`)||``,l=/<([^>]+)>;\s*rel="last"/.exec(c);if(!l)return s;let u=Number(new URL(l[1]).searchParams.get(`page`));if(u>=2&&o?.ok&&s.push(...lt(await o.json())),u>2){let e=await Promise.all(Array.from({length:u-2},(e,t)=>at(i(t+3),r)));for(let t of e)t?.ok&&s.push(...lt(await t.json()))}return s}catch{return[]}}function dt(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 ft(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 pt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function mt({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=st(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${pt(a)}/${e.directory}`)),a||t||``)}const ht={"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 gt(e,t){return RegExp(`^${K(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function _t(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):gt(e,n):e instanceof RegExp?e:gt(e,n)}function vt(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 yt(e){for(let[t,{short:n}]of Object.entries(ht))if(t===e||n===e)return t;return``}function bt(e){return new Set(e.map(e=>_t(e,!1,!0)))}function xt(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Re(e)):[]}function St(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&U(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&U(r)&&(t[n]=r)}return t}function Ct(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(_t(n,!1,!1));return t}async function wt(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=C(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}function Tt(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 Et(e){try{return Tt(m(e,`utf-8`))}catch{return}}function Dt(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 Ot(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 kt(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=Et(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(Dt(`.${e}rc`));let u=Ot(`${e}_`);return u.config&&l(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const At=c(n===`win32`?t.LOCALAPPDATA||c(ne(),`AppData`,`Local`):t.XDG_CACHE_HOME||c(ne(),`.cache`),`updates`);let jt=null;function Mt(e){return w(`sha256`).update(e).digest(`hex`).substring(0,16)}async function Nt(e){try{let t=await y(c(At,`${Mt(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 Pt(e,t,n){try{await(jt??=v(At,{recursive:!0})),await b(c(At,`${Mt(e)}.cache`),`${t}\n${n}`)}catch{}}const Ft=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,It=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Lt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Rt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,zt=`https://registry.npmjs.org`;let X=null;const Bt=new Map;function Vt(){return X||kt(`npm`,{registry:zt})}function Ht(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Ut(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Ht(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Ht(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:Ht(o),type:`Basic`}}function Wt(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Ut(`//${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:Ht(i),type:`Basic`}}function Gt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Kt(e,t){X||=Vt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Bt.get(r);if(i)return i;let a=()=>({auth:Wt(t,X),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=qe(Gt(n,X));if(e!==t)try{let t=Wt(e,X);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return Bt.set(r,o),o}function qt(e,t,n){X||=Vt();let r=qe((typeof n.registry==`string`?n.registry:!1)||t.registry||X.registry||zt);return{...Kt(e,r),originalRegistry:r}}function Jt(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Yt=new Map,Xt=new Map,Zt=new Map;async function Qt(e,t,n,r,i){let{auth:a,registry:s}=qt(e,n,r),c=Jt(s,t===`resolutions`?o(e):e),l=Yt.get(c);if(!l){let t=Je(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 Nt(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&&Pt(c,t,e),JSON.parse(e)}dt(a,c,e,s)})().catch(e=>{throw Yt.delete(c),e}),Yt.set(c,l)}return[await l,t,s,e]}async function $t(e,t,n,r,i){let{auth:a,registry:o}=qt(e,n,r),s=Jt(o,e,t),c=Xt.get(s);if(c)return c;let l=(async()=>{try{let n=Je(a?.type,a?.token),r=await i.doFetch(s,{signal:AbortSignal.timeout(i.fetchTimeout),...n});if(!r?.ok)return{};let c=await r.json(),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=Jt(o,e),a=Zt.get(r);a||(a=i.doFetch(r,{signal:AbortSignal.timeout(i.fetchTimeout),...n}).then(e=>e?.ok?e.json():null).catch(()=>(Zt.delete(r),null)),Zt.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return Xt.set(s,l),l}function en(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function tn(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function nn(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 rn(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 n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),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]}dt(s,o,e,`JSR`)}function an(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;if(a===`packageManager`){let r=RegExp(`"${K(a)}": *"${o}@${K(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${K(o)}": *"${K(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function on(e,t,n){let r=e.replace(Rt,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(Lt);return t?.length===1?e.replace(Lt,Y(t[0])):e}async function sn(e,t,n){try{let r=await at(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function cn(e,t,n){return(await ut(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function ln(e,t,n,r){let i=t.old.replace(Ft,``),[a,o,s,c]=It.exec(i)||[];if(!o||!s||!c)return null;if(ct.test(c)){let{hash:n,commit:i}=await sn(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=ot(await cn(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function un(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];dt(i,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(`("${K(o)} *[<>=~]+ *)${K(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const fn=i(S);function pn(){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 mn(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function hn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function gn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function _n(e){let t=/\/v(\d+)$/.exec(e);return t?Number.parseInt(t[1]):1}function vn(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function yn(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 bn(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||xn(n)}function xn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Sn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function Cn(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 wn(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 Tn(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=yn(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 En(e,n,r,i,a){let o=_n(e),s=async(e,n)=>{try{let{stdout:r}=await fn(`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=bn(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(vn(e,o+1),a.goProbeTimeout)]);return l?wn(e,n,r,await Cn(o,u,t=>s(vn(e,t),a.goProbeTimeout)),l.Version,l.Time):Sn(e,r,n)}async function Dn(e,t,n,r,i,a){if(hn(e,a))return En(e,t,n,r,i);let o=gn(e),s=_n(e),c=async t=>{let n=vn(e,t);return i.doFetch(`${i.goProxyUrl}/${gn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=bn(e,t,n),[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),l?null:c(s+1)]);if(!u.ok)return Sn(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Sn(e,n,t)}return wn(e,t,n,await Cn(s,d,c),f,p)}function On(e,t){let n=K(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 kn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${K(s)}\\s+)v${K(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${K(s)}) +v${K(c)}`,`g`),`$1 v${l}`);continue}let u=_n(s),d=Number.parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=vn(s,d);n=n.replace(RegExp(`${K(s)} +v${K(c)}`,`g`),`${e} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${K(s)}(/\\S+)?\\s*$`,`gm`),`$1${e}$2`)),r[s]=e}else n=n.replace(RegExp(`(${K(s)}) +v${K(c)}`,`g`),`$1 v${l}`);o!==`tool`&&(n=On(n,s))}return[n,r]}function An(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(`"${K(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function jn(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=yn(r,a);e&&(n[e.targetModule]=e.targetVersion);continue}}return{use:t,replace:n}}function Mn(e){let t=`https://${Nn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${pt(t)}/${o.join(`/`)}`,n.toString()}else return t}function Nn(e){return/\/v[0-9]$/.test(e)?s(e):e}function Pn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Fn=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function In(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:ct.test(o)}}function Ln(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function Rn(e,t,n,r,i){try{let a=await at(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function zn(e,t){return ft(de(q(e))?.version??q(e),t)}function Bn(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${K(e)}@${K(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function Vn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function Hn(e){try{return h(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(c(e,t)))}catch{return[]}}const Un=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Wn=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,Gn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Kn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,qn=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function Jn(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 Yn(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||!Un.test(r)))return null;let{registry:i,namespace:a,repo:o}=Jn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Xn(e){let t=Un.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Zn(e,t){let n=Xn(t);return n?ft(e,n.version,n.suffix):t}function Qn(e,t){let n=[];for(let r of e.matchAll(t)){let e=Yn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function $n(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=e=>{for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``},[s,c]=await Promise.all([n.doFetch(a(1),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>null),n.doFetch(a(2),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>null)]);if(!s)return r;o(s);let l=Math.min(Math.ceil((s.count||0)/100),10);if(l>=2&&c&&o(c),l>2){let e=await Promise.all(Array.from({length:l-2},(e,t)=>n.doFetch(a(t+3),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>null)));for(let t of e)t&&o(t)}return r}async function er(e,t,n){let{registry:r,namespace:i,repo:a}=Jn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await $n(i,a,n),name:e},t,null,e]}function tr(e,t,n){let r=Xn(t);if(!r)return null;let i=L(q(r.version))?.version;if(!i)return null;let a=i,o=``,s=``;for(let[t,i]of Object.entries(e)){let e=Xn(t);if(!e||e.suffix!==r.suffix)continue;let c=L(q(e.version))?.version;if(!c)continue;let l=R(a,c);!l||!n.has(l)||pe(c,a)&&(a=c,o=t,s=i)}if(!o||a===i)return null;let c=Zn(a,t);return c===t?null:{newTag:c,date:s}}function nr(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(K(a),K(o)),`$1${a}:${i.new}`)}return r}function rr(e,t){return nr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function ir(e,t){return nr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function ar(e,t){return nr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const or=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function sr(e){return/^docker-.+\.ya?ml$/.test(e)}function cr(e){return/^Dockerfile(\..+)?$/.test(e)}function lr(e){return cr(e)||sr(e)}function ur(e){return cr(e)?Wn:Gn}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 fr=new Map;async function pr(e,t,n){let r=`${qe(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=n.noCache?void 0:fr.get(r);return i||(i=n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),...Je()}).then(async t=>{t?.ok||dt(t,r,e,n.cratesIoUrl);let i;try{i=await t.json()}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 fr.delete(r),e}),fr.set(r,i)),[await i,t,null,e]}function mr(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(!F(a))continue;let o=t.get(i)||[];o.push(a),t.set(i,o)}return t}const hr=/^\d/;function gr(e,t){return hr.test(e)?on(Z(`^${e}`),t,`^${e}`).replace(/^\^/,``):on(Z(e),t,e)}function _r(e,t,n){let r=e.get(t);if(!r)return;let i=hr.test(n)?`^${n}`:n,a;for(let e of r)we(e,i)&&(!a||B(e,a))&&(a=e);return a}const vr=Ie.map(K).join(`|`);function yr(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[,t]=e.split(`\0`),i=r.oldOrig||r.old,a=r.new,o=K(t),s=K(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\s*${o}\\s*=\\s*\\{\\s*version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${vr})\\.${o}\\][^\\[]*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function br(e){return e.split(`|`)[0]}function xr(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=br(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Sr=/[*?{[]/;async function Cr(e,t,n,r=32){let i=new Set,a=[];for(let r of e){let e=Sr.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 G(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 wr(e){let t=[],n=e.split(`
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 Tr={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Er=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),Dr=(e,t)=>typeof e==`string`?qe(e):typeof t==`function`?t():t;function Or(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 kr(e,t){let n=await G(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 Ar(e,t){t&&(e.date=t,e.age=ke(t,{noAffix:!0}))}function jr(e,t,n){let r=Ue(String(t));for(let[t,{date:i}]of Object.entries(e))ze(i,r,n)||delete e[t]}function Mr(e){let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;return t}function Nr(e){console.error(`${Be()} ${e}`)}function Pr(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 Fr(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(Tr)){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))if(lr(t)){let r=c(e,t);try{p(r).isFile()&&n.add(u(r))}catch{}}}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 Hn(r))n.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{let t=c(`.github`,`workflows`),r=[...Object.keys(Tr),...or,t];for(let[i,a]of Or(r,e()))if(i===t)for(let e of Hn(a))n.add(e);else n.add(u(a));try{for(let t of h(e()))if(lr(t)&&!or.includes(t)){let r=c(e(),t);try{p(r).isFile()&&n.add(u(r))}catch{}}}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),ee(e,t,n===`win32`?{flag:`r+`}:void 0)}function Ir(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`&&!en(n.oldOrig)&&(n.old=t===`go`?Pn(n.oldOrig):n.oldOrig),t===`go`&&(n.new=Pn(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 Lr=!1;async function Rr(t={}){Lr||=(We(),!0);let n={...t},i=n.sockets??25,l=n.timeout??0,d=Dr(t.forgeapi,`https://api.github.com`),f=Dr(t.pypiapi,`https://pypi.org`),p=Dr(t.jsrapi,`https://jsr.io`),h=Dr(t.goproxy,pn),g=Dr(t.cargoapi,`https://crates.io`),_=Dr(t.dockerapi,`https://hub.docker.com`),ee=mn(),v=n.color===!0||n.noColor!==!0&&r.isTTY,b=e=>v?t=>a(e,String(t)):String,x=b(`magenta`),S=b(`green`),te=b(`red`),C={fetchTimeout:l||5e3,goProbeTimeout:l?l/2:2500,forgeApiUrl:d,pypiApiUrl:f,jsrApiUrl:p,goProxyUrl:h,cratesIoUrl:g,dockerApiUrl:_,doFetch:async(e,t)=>{n.verbose&&Nr(`${x(t?.method||`GET`)} ${e}`);let r=await Ye(e,t);return n.verbose&&Nr(`${r.ok?S(r.status):te(r.status)} ${e}`),r},noCache:!!n.noCache},w=Ct(n.greatest),ne=Ct(n.prerelease),T=Ct(n.release),ie=Ct(n.patch),ae=Ct(n.minor),oe=Ct(n.allowDowngrade),E=n.modes?.length?new Set(n.modes):Er;function se(e){return ie===!0||W(e,ie)?new Set([`patch`]):ae===!0||W(e,ae)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function D(e){return{useGreatest:typeof w==`boolean`?w:W(e,w),usePre:typeof ne==`boolean`?ne:W(e,ne),useRel:typeof T==`boolean`?T:W(e,T),semvers:se(e)}}let O=bt(n.include??[]),ce=bt(n.exclude??[]),le=n.pin??{},k={},A={},j={},M={},ue=Date.now(),N=0,P=(e,t,n,r,i,a)=>{k[e][`${t}${n}${r}`]={old:i,oldOrig:a}},de=Fr(n.files?.length?new Set(n.files):!1),I=await kr(Array.from(de).filter(e=>{if(Vn(e))return E.has(`actions`)||E.has(`docker`);let t=o(e);if(lr(t))return E.has(`docker`);let n=Tr[t];return!!n&&E.has(n)}),i),fe={},L={},R=[],z=null,B=[],pe=!1,me=[],he=!1,ge=[],_e=[],V={};async function ve(t){let r=t===e()?n:await wt(t);return{modeConfig:r,modeInclude:r!==n&&r?.include?bt([...n.include??[],...r.include]):O,modeExclude:r!==n&&r?.exclude?bt([...n.exclude??[],...r.exclude]):ce,pin:{...r?.pin,...le}}}function ye(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 be(e,t,n){k.docker??={};for(let r of n)for(let{ref:n}of Qn(e,r)){if(!Q(n.fullImage,`docker`,O,ce,`docker`))continue;let e=`${t}${n.fullImage}`;if(k.docker[e])continue;let r=Xn(n.tag);r&&(k.docker[e]={old:r.version,oldOrig:n.tag},_e.push({key:e,fullImage:n.fullImage,ref:n}))}}for(let e of de){if(Vn(e)){let t=E.has(`actions`),n=E.has(`docker`);if(!t&&!n)continue;let r=I.get(e),i=Pr(e);if(fe[i]={absPath:e,content:r},t){k.actions??={};let e=Array.from(r.matchAll(Fn),e=>In(e[1])).filter(e=>e!==null);for(let t of e){if(!Q(t.name,`actions`,O,ce,`actions`))continue;let e=`${i}${t.name}`;k.actions[e]||(k.actions[e]={old:t.ref},ge.push({...t,key:e,apiUrl:Ln(t.host,d)}))}}n&&(L[i]={absPath:e,content:r,fileType:`workflow`},be(r,i,[Gn,Kn,qn]));continue}let t=o(e);if(lr(t)){if(!E.has(`docker`))continue;let n=I.get(e),r=Pr(e);L[r]={absPath:e,content:n,fileType:cr(t)?`dockerfile`:`compose`},be(n,r,[ur(t)]);continue}let n=Tr[t];if(!E.has(n))continue;if(t===`go.work`){k[n]??={};let t=s(u(e)),r=I.get(e);z={file:e,content:r};let a=jn(r),[o,l]=await Promise.all([ve(t),G(a.use,async e=>{let n=u(c(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await y(n,`utf8`)}}catch{return null}},{concurrency:i})]),{modeConfig:d,modeInclude:f,modeExclude:p,pin:m}=o,h=ye(n,d);M[n]=e,V[n]={modeConfig:d,projectDir:t,pin:m};for(let e of l){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=Tn(i),o=s(r);R.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)&&P(n,e,c,r,Pn(i),q(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,n,f,p,`replace`)&&P(n,`replace`,``,e,Pn(t),q(t));N+=Object.keys(k[n]).length;continue}if(t===`go.mod`&&z||t===`package.json`&&he)continue;if(t===`Cargo.toml`){k[n]??={};let t=I.get(e),r=re(t),a=s(u(e));M[n]=e;let o=Or([`Cargo.lock`],a).get(`Cargo.lock`),c=r.workspace?.members,l=Array.isArray(c)&&c.length,[d,f,p]=await Promise.all([ve(a),o?y(o,`utf8`):Promise.resolve(null),l?Cr(c,a,`Cargo.toml`,i):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=d,ee=ye(n,m);V[n]={modeConfig:m,projectDir:a,pin:_};let v=f?mr(f):new Map,b=(e,t)=>{for(let r of ee){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);U(i)&&P(n,r,t,e,_r(v,e,i)??Z(i),i)}else typeof a==`string`&&U(a)&&P(n,r,t,e,_r(v,e,a)??Z(a),a)}}};if(l){pe=!0,b(r,``),B.push({absPath:u(e),content:t,memberPath:`.`});for(let e of p){B.push(e);try{b(re(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else j[n]=t,b(r,``);N+=Object.keys(k[n]).length;continue}if(t===`pnpm-workspace.yaml`){k[n]??={};let t=s(u(e)),r=I.get(e);he=!0;let a=wr(r),o=c(t,`package.json`),[l,d,f]=await Promise.all([ve(t),y(o,`utf8`).catch(()=>null),Cr(a,t,`package.json`,i)]),{modeConfig:p,modeInclude:m,modeExclude:h,pin:g}=l,_=ye(n,p);M[n]=e,V[n]={modeConfig:p,projectDir:t,pin:g};let ee=(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)&&P(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)&&(en(a)?P(n,r,t,e,nn(a,e).version,a):U(a)?P(n,r,t,e,Z(a),a):tn(a)?P(n,r,t,e,`0.0.0`,a):A[`${r}${t}${e}`]={old:a})}};if(d!==null){let e;try{e=JSON.parse(d)}catch(e){throw Error(`Error parsing ${o}: ${e.message}`)}me.push({absPath:u(o),content:d,memberPath:`.`}),ee(e,``)}for(let e of f){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}me.push(e),ee(t,`|${e.memberPath}`)}N+=Object.keys(k[n]).length+Object.keys(A).length;continue}M[n]=e,k[n]??={};let r=s(u(e)),{modeConfig:a,modeInclude:l,modeExclude:f,pin:p}=await ve(r),m=ye(n,a),h={};j[n]=I.get(e);try{if(n===`npm`)h=JSON.parse(j[n]);else if(n===`pypi`)h=re(j[n]);else if(n===`go`){let e=Tn(j[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)&&P(n,e,``,r,Z(i),i);else if(typeof t==`string`){let[r,i]=t.split(`@`);Q(r,n,l,f,e)&&P(n,e,``,r,Z(i),i)}else for(let[r,i]of Object.entries(t))Q(r,n,l,f,e)&&(n===`npm`&&en(i)?P(n,e,``,r,nn(i,r).version,i):n!==`go`&&U(i)?P(n,e,``,r,Z(i),i):n===`npm`&&tn(i)?P(n,e,``,r,`0.0.0`,i):n===`npm`?A[`${e}${r}`]={old:i}:n===`go`&&P(n,e,``,r,Pn(i),q(i)))}N+=Object.keys(k[n]).length+Object.keys(A).length,V[n]={modeConfig:a,projectDir:r,pin:p}}if(k.actions&&(N+=Object.keys(k.actions).length),k.docker&&(N+=Object.keys(k.docker).length),N===0)return{results:{},message:`No dependencies found, nothing to do.`};let xe=[],H={registry:n.registry};for(let e of Object.keys(V)){if(!k[e]||!Object.keys(k[e]).length&&!Object.keys(A).length)continue;let{modeConfig:t,projectDir:r,pin:a}=V[e];xe.push((async()=>{let o=new Map;if(await G(Object.keys(k[e]),async n=>{let[i,s]=n.split(`\0`),c=br(i),l=k[e][n],u=null;if(e===`npm`){let{oldOrig:r}=l;if(r&&en(r))u=await rn(s,c,C);else if(r&&tn(r))try{u=await Qt(s,c,t,H,C)}catch{delete k[e][n];return}else u=await Qt(s,c,t,H,C)}else u=e===`go`?await Dn(s,c,l.oldOrig||l.old,r,C,ee):e===`cargo`?await pr(s,c,C):await un(s,i,C);if(!u)return;let[d,,f]=u;if(d?.error)throw Error(d.error);let{useGreatest:p,usePre:m,useRel:h,semvers:g}=D(d.name),_=l.old,v=l.oldOrig,y=a[s],b=$e(d,{usePre:m,useRel:h,useGreatest:p,semvers:g,range:_,mode:e,pinnedRange:y},{allowDowngrade:oe,matchesAny:W,isGoPseudoVersion:xn}),x=``;if([`go`,`pypi`].includes(e)&&b)x=b;else if(e===`cargo`&&b&&v)x=gr(v,b);else if(b)if(v&&tn(v))x=String(Vt()[`save-exact`])===`true`?b:`^${b}`;else if(v&&en(v)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(v);e?x=`${e[1]}${b}`:v.startsWith(`jsr:`)&&(x=`jsr:${b}`)}else x=on(_,b,v);if(!b||b===_||v&&v===x){delete k[e][n];return}let S=``;e===`pypi`&&d.releases?.[b]?.[0]?.upload_time_iso_8601?S=d.releases[b][0].upload_time_iso_8601:e===`go`&&d.Time?S=d.Time:e===`cargo`&&d.time?.[b]&&(S=d.time[b]),l.new=x,v&&en(v)&&(l.newPrint=b),e===`npm`?o.set(n,{name:s,promise:$t(d.name,b,t,H,C)}):e===`pypi`?l.info=mt(d,f,d.info.name):e===`go`?l.info=Mn(d.newPath||s):e===`cargo`&&(l.info=`https://crates.io/crates/${s}`),S&&Ar(l,S)},{concurrency:i}),await Promise.all(Array.from(o,async([t,{name:n,promise:r}])=>{let i=await r,a=k[e][t];a&&(a.info=mt({repository:i.repository,homepage:i.homepage},null,n),i.date&&Ar(a,i.date))})),Object.keys(A).length){let t=(await G(Object.entries(A),([e,t])=>{let n=e.split(`\0`)[1];return ln(e,t,typeof w==`boolean`?w:W(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;k[e][t]={old:A[t].old,new:r,oldPrint:ct.test(o)?o.substring(0,7):o,newPrint:ct.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Ar(k[e][t],c)}}let s=n.cooldown??t.cooldown;s&&jr(k[e],s,ue)})())}if(ge.length&&xe.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)}await G(e.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await ut(e,t,n,C),a=i.map(e=>e.name),o=a.map(q).filter(e=>F(e)),s=new Map;for(let e of i)e.commitSha&&s.set(e.commitSha,e.name);let c=new Map;async function l(r){if(c.has(r))return c.get(r);let i=await Rn(e,t,n,r,C);return c.set(r,i),i}let u=[];for(let{key:e,host:c,ref:l,name:d,isHash:f}of r){let r=k.actions[e],p=`https://${c||`github.com`}/${t}/${n}`;if(f){let{usePre:t,useRel:n}=D(d),c=Qe({},o,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:le[d]});if(!c){delete k.actions[e];continue}let f=a.find(e=>q(e)===c);if(!f){delete k.actions[e];continue}let m=i.find(e=>e.name===f)?.commitSha;if(!m||m===l||m.startsWith(l)||l.startsWith(m)){delete k.actions[e];continue}let h=s.get(l)||Array.from(s.entries()).find(([e])=>e.startsWith(l))?.[1];r.old=l,r.new=m.substring(0,l.length),r.oldPrint=h||l.substring(0,7),r.newPrint=f,r.info=p,u.push({key:e,commitSha:m})}else{let t=Y(q(l));if(!t){delete k.actions[e];continue}let{useGreatest:n,usePre:s,useRel:c,semvers:f}=D(d),m=Qe({},o,{range:t,semvers:f,usePre:s,useRel:c,useGreatest:n||!0,pinnedRange:le[d]});if(!m||m===t){delete k.actions[e];continue}let h=a.find(e=>q(e)===m);if(!h){delete k.actions[e];continue}let g=zn(h,l);if(g===l){delete k.actions[e];continue}r.new=a.includes(g)?g:h,r.info=p;let _=i.find(e=>e.name===h);_?.commitSha&&u.push({key:e,commitSha:_.commitSha})}}let d=await Promise.all(u.map(({commitSha:e})=>l(e)));for(let[e,{key:t}]of u.entries()){let n=k.actions[t];n&&d[e]&&Ar(n,d[e])}},{concurrency:i}),n.cooldown&&jr(k.actions,n.cooldown,ue),Object.keys(k.actions).length||delete k.actions})()),_e.length&&xe.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)}await G(e.entries(),async([e,t])=>{let n;try{let[t]=await er(e,`docker`,C);n=t}catch{for(let e of t)delete k.docker[e.key];return}for(let e of t){let t=k.docker[e.key],r=t.oldOrig||t.old,{semvers:i}=D(e.fullImage),a=tr(n.tags,r,i);if(!a){delete k.docker[e.key];continue}t.new=a.newTag,t.info=dr(e.ref),Ar(t,a.date)}},{concurrency:i}),n.cooldown&&jr(k.docker,n.cooldown,ue),Object.keys(k.docker).length||delete k.docker})()),await Promise.all(xe),!Mr(k))return{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=xr(k[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;if(k.actions)for(let[e,n]of Object.entries(k.actions)){let[r,i]=e.split(`\0`),a=t.get(r);a||t.set(r,a=[]),a.push({name:i,oldRef:n.old,newRef:n.new})}let n=new Map;if(k.docker)for(let[e,t]of Object.entries(k.docker)){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=Ir(k);for(let r of Object.keys(k)){if(!Object.keys(k[r]).length)continue;if(r===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=fe[e]||{};t&&$(t,Bn(r,n))}continue}if(r===`docker`){for(let[e,t]of n){let n=L[e];if(!n)continue;let{absPath:r,fileType:i}=n,a;try{a=m(r,`utf8`)}catch{continue}$(r,(i===`dockerfile`?rr:i===`compose`?ir:ar)(a,t))}continue}let i=j[r];if(r===`go`&&z){for(let e of R){let t=xr(k[r],e.usePath);if(!Object.keys(t).length)continue;let[n,i]=kn(e.content,t);n!==e.content&&$(e.absPath,n),An(e.projectDir,i,$)}let e={};for(let[t,n]of Object.entries(k[r]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=kn(z.content,e);t!==z.content&&$(z.file,t)}}else if(r===`go`){let[e,t]=kn(i,k[r]);$(M[r],e),An(s(u(M[r])),t,$)}else if(r===`cargo`&&pe)e(r,B,yr);else if(r===`cargo`)$(M[r],yr(i,k[r]));else if(r===`npm`&&he)e(r,me,an);else{let e=r===`npm`?an:dn;$(M[r],e(i,k[r]))}}return r}return Ir(k)}export{ht as a,St as c,Ae as d,Ve as f,wt as i,Ke as l,Nn as n,xt as o,yt as r,vt as s,Rr as t,Ge as u};
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 ee}from"node:fs";import{mkdir as v,readFile as y,writeFile as b}from"node:fs/promises";import x from"node:dns";import{execFile as S}from"node:child_process";import{pathToFileURL as te}from"node:url";import{createHash as C}from"node:crypto";import{homedir as w}from"node:os";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=E(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 E(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=E(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 oe(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 oe(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 oe(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 E(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
+ `;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 de(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function M(e,t){let n=de(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 N(e){return A(e)?.version??null}function P(e){return A(e)}const fe=new Map,F=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function pe(e){if(typeof e!=`string`)return null;let t=fe.get(e);if(t!==void 0)return t;let n=F.exec(e);if(!n)return fe.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return fe.set(e,r),r}function I(e,t){let n=A(e),r=A(t);if(!n||!r||n.version===r.version)return null;let i=M(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(de(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=A(e),r=A(t);return n&&r?M(n,r):null}function R(e,t){return(L(e,t)??-1)>0}function me(e,t){return(L(e,t)??-1)>=0}function he(e,t){return(L(e,t)??1)<0}function ge(e,t){return(L(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=M(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(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Be(){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 Ve(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
+ `)}return r}const He={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ue(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=He[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 We(){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 Ge=`17.15.6`,Ke=5e3,K=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}`:``}`)}}function q(e){return(P(e)?.prerelease.length??0)>0}function Xe(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function Ze(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=Xe(e)||q(e),l=q(t);return c&&!l?R(s,o)||n:!l&&he(s,o)?r===!0||a(i,r):!0}function J(e){return pe(e)?.version??``}function Qe(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=J(n);if(!c)return c;i=Xe(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 l=0,u=c;for(let n of t){let t=P(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!we(c,s))continue;let d=I(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))(me(J(c),u)||s&&!we(u,s))&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function $e(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>N(e));else if(t===`npm`||t===`cargo`)d=Object.keys(e.versions).filter(e=>N(e));else if(t===`go`){let t=J(n);if(!t)return null;let r=a||Xe(n),s=e=>q(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=J(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=I(t,p);if(n&&o.has(n)&&Ze(f,e.new,d))return e.new}let m=J(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=I(t,m);if(n&&o.has(n)&&Ze(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=Qe(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=J(e.info.version)):r=e[`dist-tags`].latest;let d=J(n),p=Xe(n),m=q(f),h=q(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return Ze(n,f,g)?f:null;let _=I(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&q(r)?f:he(r,d)&&!h?Ze(n,r,g)?r:null:!p&&h&&!a||s&&!we(r,s)?f:u||r}}const et=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&et.set(e.substring(0,t),e.substring(t+1))}const tt=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))),nt=i(S);let rt;function it(){return tt.length?Promise.resolve(tt):rt??=(async()=>{try{let{stdout:e}=await nt(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:tt}catch{return tt}})()}const at=new Map;async function ot(e){try{let t=et.get(new URL(e).hostname);if(t)return[t]}catch{}return it()}async function st(e,t){let n;try{n=new URL(e).hostname}catch{n=``}let r=await(n?ot(e):it()),i=AbortSignal.timeout(t.fetchTimeout),a=e=>({...Je(`Bearer`,e),signal:i});if(!r.length)return t.doFetch(e,a());let o=n?at.get(n):void 0;if(o)return t.doFetch(e,a(o));for(let i of r){let r=await t.doFetch(e,a(i));if(r.status!==401&&r.status!==403)return n&&at.set(n,i),r}return t.doFetch(e,a())}function ct(e,t,n){let r=K(t);if(!N(r))return null;if(n){let n=t,i=K(t);for(let t of e){let e=K(t);N(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=K(t);if(!N(n))return null;if(ge(r,n))return t}return null}function lt(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 ut=/^[0-9a-f]{7,}$/i;function dt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function ft(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let[a,o]=await Promise.all([st(`${e}/repos/${t}/${n}/tags?per_page=100`,r),st(i(2),r).catch(()=>null)]);if(!a?.ok)return[];let s=dt(await a.json()),c=a.headers.get(`link`)||``,l=/<([^>]+)>;\s*rel="last"/.exec(c);if(!l)return s;let u=Number(new URL(l[1]).searchParams.get(`page`));if(u>=2&&o?.ok&&s.push(...dt(await o.json())),u>2){let e=await Promise.all(Array.from({length:u-2},(e,t)=>st(i(t+3),r)));for(let t of e)t?.ok&&s.push(...dt(await t.json()))}return s}catch{return[]}}function pt(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 mt(e,t,n=``){let r=t.startsWith(`v`),i=K(e),a=K(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function ht(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function gt({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=lt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${ht(a)}/${e.directory}`)),a||t||``)}const _t={"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 vt(e,t){return RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function yt(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):vt(e,n):e instanceof RegExp?e:vt(e,n)}function bt(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 xt(e){for(let[t,{short:n}]of Object.entries(_t))if(t===e||n===e)return t;return``}function St(e){return new Set(e.map(e=>yt(e,!1,!0)))}function Ct(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Re(e)):[]}function wt(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 Tt(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(yt(n,!1,!1));return t}async function Et(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 n}function Dt(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 Ot(e){try{return Dt(m(e,`utf-8`))}catch{return}}function kt(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 At(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 jt(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=Ot(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(kt(`.${e}rc`));let u=At(`${e}_`);return u.config&&l(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const Mt=c(n===`win32`?t.LOCALAPPDATA||c(w(),`AppData`,`Local`):t.XDG_CACHE_HOME||c(w(),`.cache`),`updates`);let Nt=null;function Pt(e){return C(`sha256`).update(e).digest(`hex`).substring(0,16)}async function Ft(e){try{let t=await y(c(Mt,`${Pt(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 It(e,t,n){try{await(Nt??=v(Mt,{recursive:!0})),await b(c(Mt,`${Pt(e)}.cache`),`${t}\n${n}`)}catch{}}const Lt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Rt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,zt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Bt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,Vt=`https://registry.npmjs.org`;let Y=null;const Ht=new Map;function Ut(){return Y??=jt(`npm`,{registry:Vt})}function Wt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Gt(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Wt(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Wt(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:Wt(o),type:`Basic`}}function Kt(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Gt(`//${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:Wt(i),type:`Basic`}}function qt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Jt(e,t){Y||=Ut();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Ht.get(r);if(i)return i;let a=()=>({auth:Kt(t,Y),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=qe(qt(n,Y));if(e!==t)try{let t=Kt(e,Y);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return Ht.set(r,o),o}function Yt(e,t,n){Y||=Ut();let r=qe((typeof n.registry==`string`?n.registry:!1)||t.registry||Y.registry||Vt);return{...Jt(e,r),originalRegistry:r}}function Xt(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Zt=new Map,Qt=new Map,$t=new Map;async function en(e,t,n,r,i){let{auth:a,registry:s}=Yt(e,n,r),c=Xt(s,t===`resolutions`?o(e):e),l=Zt.get(c);if(!l){let t=Je(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 Ft(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&&It(c,t,e),JSON.parse(e)}pt(a,c,e,s)})().catch(e=>{throw Zt.delete(c),e}),Zt.set(c,l)}return[await l,t,s,e]}async function tn(e,t,n,r,i){let{auth:a,registry:o}=Yt(e,n,r),s=Xt(o,e,t),c=Qt.get(s);if(c)return c;let l=(async()=>{try{let n=Je(a?.type,a?.token),r=await i.doFetch(s,{signal:AbortSignal.timeout(i.fetchTimeout),...n});if(!r?.ok)return{};let c=await r.json(),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=Xt(o,e),a=$t.get(r);a||(a=i.doFetch(r,{signal:AbortSignal.timeout(i.fetchTimeout),...n}).then(e=>e?.ok?e.json():null).catch(()=>($t.delete(r),null)),$t.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return Qt.set(s,l),l}function X(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 n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),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]}pt(s,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(Bt,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(zt);return t?.length===1?e.replace(zt,J(t[0])):e}async function cn(e,t,n){try{let r=await st(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function ln(e,t,n){return(await ft(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function un(e,t,n,r){let i=t.old.replace(Lt,``),[a,o,s,c]=Rt.exec(i)||[];if(!o||!s||!c)return null;if(ut.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=ct(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 n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];pt(i,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(`("${G(o)} *[<>=~]+ *)${G(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const pn=i(S);function mn(){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 hn(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function gn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function _n(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function vn(e){let t=/\/v(\d+)$/.exec(e);return t?Number.parseInt(t[1]):1}function yn(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function bn(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 xn(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Sn(n)}function Sn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Cn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function wn(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 Tn(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:K(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:K(i),sameMajorTime:a},t,null,e]}function En(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=bn(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 Dn(e,n,r,i,a){let o=vn(e),s=async(e,n)=>{try{let{stdout:r}=await pn(`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=xn(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(yn(e,o+1),a.goProbeTimeout)]);return l?Tn(e,n,r,await wn(o,u,t=>s(yn(e,t),a.goProbeTimeout)),l.Version,l.Time):Cn(e,r,n)}async function On(e,t,n,r,i,a){if(gn(e,a))return Dn(e,t,n,r,i);let o=_n(e),s=vn(e),c=async t=>{let n=yn(e,t);return i.doFetch(`${i.goProxyUrl}/${_n(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=xn(e,t,n),[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),l?null:c(s+1)]);if(!u.ok)return Cn(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Cn(e,n,t)}return Tn(e,t,n,await wn(s,d,c),f,p)}function kn(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 An(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=vn(s),d=Number.parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=yn(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=kn(n,s))}return[n,r]}function jn(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 Mn(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=bn(r,a);e&&(n[e.targetModule]=e.targetVersion);continue}}return{use:t,replace:n}}function Nn(e){let t=`https://${Pn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${ht(t)}/${o.join(`/`)}`,n.toString()}else return t}function Pn(e){return/\/v[0-9]$/.test(e)?s(e):e}function Fn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const In=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Ln(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:ut.test(o)}}function Rn(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function zn(e,t,n,r,i){try{let a=await st(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function Bn(e,t){return mt(P(K(e))?.version??K(e),t)}function Vn(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 Hn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function Un(e){try{return h(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(c(e,t)))}catch{return[]}}const Wn=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Gn=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,Kn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,qn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Jn=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function Yn(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 Xn(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||!Wn.test(r)))return null;let{registry:i,namespace:a,repo:o}=Yn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Zn(e){let t=Wn.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Qn(e,t){let n=Zn(t);return n?mt(e,n.version,n.suffix):t}function $n(e,t){let n=[];for(let r of e.matchAll(t)){let e=Xn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function er(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=e=>{for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``},[s,c]=await Promise.all([n.doFetch(a(1),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>null),n.doFetch(a(2),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>null)]);if(!s)return r;o(s);let l=Math.min(Math.ceil((s.count||0)/100),10);if(l>=2&&c&&o(c),l>2){let e=await Promise.all(Array.from({length:l-2},(e,t)=>n.doFetch(a(t+3),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>null)));for(let t of e)t&&o(t)}return r}async function tr(e,t,n){let{registry:r,namespace:i,repo:a}=Yn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await er(i,a,n),name:e},t,null,e]}function nr(e,t,n){let r=Zn(t);if(!r)return null;let i=pe(K(r.version))?.version;if(!i)return null;let a=i,o=``,s=``;for(let[t,i]of Object.entries(e)){let e=Zn(t);if(!e||e.suffix!==r.suffix)continue;let c=pe(K(e.version))?.version;if(!c)continue;let l=I(a,c);!l||!n.has(l)||me(c,a)&&(a=c,o=t,s=i)}if(!o||a===i)return null;let c=Qn(a,t);return c===t?null:{newTag:c,date:s}}function rr(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 ir(e,t){return rr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function ar(e,t){return rr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function or(e,t){return rr(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 lr(e){return/^Dockerfile(\..+)?$/.test(e)}function ur(e){return lr(e)||cr(e)}function dr(e){return lr(e)?Gn:Kn}function fr(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const pr=new Map;async function mr(e,t,n){let r=`${qe(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=n.noCache?void 0:pr.get(r);return i||(i=n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),...Je()}).then(async t=>{t?.ok||pt(t,r,e,n.cratesIoUrl);let i;try{i=await t.json()}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 pr.delete(r),e}),pr.set(r,i)),[await i,t,null,e]}function hr(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(!N(a))continue;let o=t.get(i)||[];o.push(a),t.set(i,o)}return t}const gr=/^\d/;function _r(e,t){return gr.test(e)?sn(Z(`^${e}`),t,`^${e}`).replace(/^\^/,``):sn(Z(e),t,e)}function vr(e,t,n){let r=e.get(t);if(!r)return;let i=gr.test(n)?`^${n}`:n,a;for(let e of r)we(e,i)&&(!a||R(e,a))&&(a=e);return a}const yr=Ie.map(G).join(`|`);function br(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(`(\\[(?:${yr})\\.${o}\\][^\\[]*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function xr(e){return e.split(`|`)[0]}function Sr(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=xr(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Cr=/[*?{[]/;async function wr(e,t,n,r=32){let i=new Set,a=[];for(let r of e){let e=Cr.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 y(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function Tr(e){let t=[],n=e.split(`
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 Er={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Dr=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),Or=(e,t)=>typeof e==`string`?qe(e):typeof t==`function`?t():t;function kr(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 Ar(e,t){let n=await W(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 jr(e,t){t&&(e.date=t,e.age=ke(t,{noAffix:!0}))}function Mr(e,t,n){let r=Ue(String(t));for(let[t,{date:i}]of Object.entries(e))ze(i,r,n)||delete e[t]}function Nr(e){let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;return t}function Pr(e){console.error(`${Be()} ${e}`)}function Fr(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 Ir(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(Er)){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()&&ur(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 Un(r))n.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{let t=c(`.github`,`workflows`),r=[...Object.keys(Er),...sr,t];for(let[i,a]of kr(r,e()))if(i===t)for(let e of Un(a))n.add(e);else n.add(u(a));try{for(let t of h(e(),{withFileTypes:!0}))t.isFile()&&ur(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),ee(e,t,n===`win32`?{flag:`r+`}:void 0)}function Lr(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`&&!X(n.oldOrig)&&(n.old=t===`go`?Fn(n.oldOrig):n.oldOrig),t===`go`&&(n.new=Fn(n.new)),t===`actions`&&(n.old=K(n.old),n.new=K(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 Rr=!1;async function zr(t={}){Rr||=(We(),!0);let n={...t},i=n.sockets??25,l=n.timeout??0,d=Or(t.forgeapi,`https://api.github.com`),f=Or(t.pypiapi,`https://pypi.org`),p=Or(t.jsrapi,`https://jsr.io`),h=Or(t.goproxy,mn),g=Or(t.cargoapi,`https://crates.io`),_=Or(t.dockerapi,`https://hub.docker.com`),ee=hn(),v=n.color===!0||n.noColor!==!0&&r.isTTY,b=e=>v?t=>a(e,String(t)):String,x=b(`magenta`),S=b(`green`),te=b(`red`),C={fetchTimeout:l||5e3,goProbeTimeout:l?l/2:2500,forgeApiUrl:d,pypiApiUrl:f,jsrApiUrl:p,goProxyUrl:h,cratesIoUrl:g,dockerApiUrl:_,doFetch:async(e,t)=>{n.verbose&&Pr(`${x(t?.method||`GET`)} ${e}`);let r=await Ye(e,t);return n.verbose&&Pr(`${r.ok?S(r.status):te(r.status)} ${e}`),r},noCache:!!n.noCache},w=Tt(n.greatest),T=Tt(n.prerelease),re=Tt(n.release),ie=Tt(n.patch),ae=Tt(n.minor),oe=Tt(n.allowDowngrade),E=n.modes?.length?new Set(n.modes):Dr;function se(e){return ie===!0||U(e,ie)?new Set([`patch`]):ae===!0||U(e,ae)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function D(e){return{useGreatest:typeof w==`boolean`?w:U(e,w),usePre:typeof T==`boolean`?T:U(e,T),useRel:typeof re==`boolean`?re:U(e,re),semvers:se(e)}}let ce=St(n.include??[]),le=St(n.exclude??[]),ue=n.pin??{},O={},k={},A={},j={},de=Date.now(),M=0,P=(e,t,n,r,i,a)=>{O[e][`${t}${n}${r}`]={old:i,oldOrig:a}},fe=Ir(n.files?.length?new Set(n.files):!1),F=await Ar(Array.from(fe).filter(e=>{if(Hn(e))return E.has(`actions`)||E.has(`docker`);let t=o(e);if(ur(t))return E.has(`docker`);let n=Er[t];return!!n&&E.has(n)}),i),pe={},I={},L=[],R=null,me=[],he=!1,ge=[],_e=!1,ve=[],z=[],B={};async function ye(t){let r=t===e()?n:await Et(t);return{modeConfig:r,modeInclude:r!==n&&r?.include?St([...n.include??[],...r.include]):ce,modeExclude:r!==n&&r?.exclude?St([...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 $n(e,r)){if(!Q(n.fullImage,`docker`,ce,le,`docker`))continue;let e=`${t}${n.fullImage}`;if(O.docker[e])continue;let r=Zn(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 fe){if(Hn(e)){let t=E.has(`actions`),n=E.has(`docker`);if(!t&&!n)continue;let r=F.get(e),i=Fr(e);if(pe[i]={absPath:e,content:r},t){O.actions??={};let e=Array.from(r.matchAll(In),e=>Ln(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:Rn(t.host,d)}))}}n&&(I[i]={absPath:e,content:r,fileType:`workflow`},xe(r,i,[Kn,qn,Jn]));continue}let t=o(e);if(ur(t)){if(!E.has(`docker`))continue;let n=F.get(e),r=Fr(e);I[r]={absPath:e,content:n,fileType:lr(t)?`dockerfile`:`compose`},xe(n,r,[dr(t)]);continue}let n=Er[t];if(!E.has(n))continue;if(t===`go.work`){O[n]??={};let t=s(u(e)),r=F.get(e);R={file:e,content:r};let a=Mn(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 y(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=En(i),o=s(r);L.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)&&P(n,e,c,r,Fn(i),K(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,n,f,p,`replace`)&&P(n,`replace`,``,e,Fn(t),K(t));M+=Object.keys(O[n]).length;continue}if(t===`go.mod`&&R||t===`package.json`&&_e)continue;if(t===`Cargo.toml`){O[n]??={};let t=F.get(e),r=ne(t),a=s(u(e));j[n]=e;let o=kr([`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?y(o,`utf8`):Promise.resolve(null),l?wr(c,a,`Cargo.toml`,i):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=d,ee=be(n,m);B[n]={modeConfig:m,projectDir:a,pin:_};let v=f?hr(f):new Map,b=(e,t)=>{for(let r of ee){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)&&P(n,r,t,e,vr(v,e,i)??Z(i),i)}else typeof a==`string`&&H(a)&&P(n,r,t,e,vr(v,e,a)??Z(a),a)}}};if(l){he=!0,b(r,``),me.push({absPath:u(e),content:t,memberPath:`.`});for(let e of p){me.push(e);try{b(ne(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else A[n]=t,b(r,``);M+=Object.keys(O[n]).length;continue}if(t===`pnpm-workspace.yaml`){O[n]??={};let t=s(u(e)),r=F.get(e);_e=!0;let a=Tr(r),o=c(t,`package.json`),[l,d,f]=await Promise.all([ye(t),y(o,`utf8`).catch(()=>null),wr(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 ee=(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)&&P(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)&&(X(a)?P(n,r,t,e,rn(a,e).version,a):H(a)?P(n,r,t,e,Z(a),a):nn(a)?P(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:`.`}),ee(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),ee(t,`|${e.memberPath}`)}M+=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]=F.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=En(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)&&P(n,e,``,r,Z(i),i);else if(typeof t==`string`){let[r,i]=t.split(`@`);Q(r,n,l,f,e)&&P(n,e,``,r,Z(i),i)}else for(let[r,i]of Object.entries(t))Q(r,n,l,f,e)&&(n===`npm`&&X(i)?P(n,e,``,r,rn(i,r).version,i):n!==`go`&&H(i)?P(n,e,``,r,Z(i),i):n===`npm`&&nn(i)?P(n,e,``,r,`0.0.0`,i):n===`npm`?k[`${e}${r}`]={old:i}:n===`go`&&P(n,e,``,r,Fn(i),K(i)))}M+=Object.keys(O[n]).length+Object.keys(k).length,B[n]={modeConfig:a,projectDir:r,pin:p}}if(O.actions&&(M+=Object.keys(O.actions).length),O.docker&&(M+=Object.keys(O.docker).length),M===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;if(await W(Object.keys(O[e]),async n=>{let[i,s]=n.split(`\0`),c=xr(i),l=O[e][n],u=null;if(e===`npm`){let{oldOrig:r}=l;if(r&&X(r))u=await an(s,c,C);else if(r&&nn(r))try{u=await en(s,c,t,Se,C)}catch{delete O[e][n];return}else u=await en(s,c,t,Se,C)}else u=e===`go`?await On(s,c,l.oldOrig||l.old,r,C,ee):e===`cargo`?await mr(s,c,C):await dn(s,i,C);if(!u)return;let[d,,f]=u;if(d?.error)throw Error(d.error);let{useGreatest:p,usePre:m,useRel:h,semvers:g}=D(d.name),_=l.old,v=l.oldOrig,y=a[s],b=$e(d,{usePre:m,useRel:h,useGreatest:p,semvers:g,range:_,mode:e,pinnedRange:y},{allowDowngrade:oe,matchesAny:U,isGoPseudoVersion:Sn}),x=``;if([`go`,`pypi`].includes(e)&&b)x=b;else if(e===`cargo`&&b&&v)x=_r(v,b);else if(b)if(v&&nn(v))x=String(Ut()[`save-exact`])===`true`?b:`^${b}`;else if(v&&X(v)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(v);e?x=`${e[1]}${b}`:v.startsWith(`jsr:`)&&(x=`jsr:${b}`)}else x=sn(_,b,v);if(!b||b===_||v&&v===x){delete O[e][n];return}let S=``;e===`pypi`&&d.releases?.[b]?.[0]?.upload_time_iso_8601?S=d.releases[b][0].upload_time_iso_8601:e===`go`&&d.Time?S=d.Time:e===`cargo`&&d.time?.[b]&&(S=d.time[b]),l.new=x,v&&X(v)&&(l.newPrint=b),e===`npm`?o.set(n,{name:s,promise:tn(d.name,b,t,Se,C)}):e===`pypi`?l.info=gt(d,f,d.info.name):e===`go`?l.info=Nn(d.newPath||s):e===`cargo`&&(l.info=`https://crates.io/crates/${s}`),S&&jr(l,S)},{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=gt({repository:i.repository,homepage:i.homepage},null,n),i.date&&jr(a,i.date))})),Object.keys(k).length){let t=(await W(Object.entries(k),([e,t])=>{let n=e.split(`\0`)[1];return un(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:ut.test(o)?o.substring(0,7):o,newPrint:ut.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&jr(O[e][t],c)}}let s=n.cooldown??t.cooldown;s&&Mr(O[e],s,de)})())}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)}await W(e.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await ft(e,t,n,C),a=[],o=new Map,s=new Map,c=new Map;for(let e of i){s.set(e.name,e);let t=K(e.name);N(t)&&(a.push(t),o.has(t)||o.set(t,e.name)),e.commitSha&&c.set(e.commitSha,e.name)}let l=new Map;async function u(r){if(l.has(r))return l.get(r);let i=await zn(e,t,n,r,C);return l.set(r,i),i}let d=[];for(let{key:e,host:i,ref:l,name:u,isHash:f}of r){let r=O.actions[e],p=`https://${i||`github.com`}/${t}/${n}`;if(f){let{usePre:t,useRel:n}=D(u),i=Qe({},a,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:ue[u]});if(!i){delete O.actions[e];continue}let f=o.get(i);if(!f){delete O.actions[e];continue}let m=s.get(f)?.commitSha;if(!m||m===l||m.startsWith(l)||l.startsWith(m)){delete O.actions[e];continue}let h=c.get(l);if(!h){for(let[e,t]of c)if(e.startsWith(l)){h=t;break}}r.old=l,r.new=m.substring(0,l.length),r.oldPrint=h||l.substring(0,7),r.newPrint=f,r.info=p,d.push({key:e,commitSha:m})}else{let t=J(K(l));if(!t){delete O.actions[e];continue}let{useGreatest:n,usePre:i,useRel:c,semvers:f}=D(u),m=Qe({},a,{range:t,semvers:f,usePre:i,useRel:c,useGreatest:n||!0,pinnedRange:ue[u]});if(!m||m===t){delete O.actions[e];continue}let h=o.get(m);if(!h){delete O.actions[e];continue}let g=Bn(h,l);if(g===l){delete O.actions[e];continue}r.new=s.has(g)?g:h,r.info=p;let _=s.get(h)?.commitSha;_&&d.push({key:e,commitSha:_})}}let f=await Promise.all(d.map(({commitSha:e})=>u(e)));for(let[e,{key:t}]of d.entries()){let n=O.actions[t];n&&f[e]&&jr(n,f[e])}},{concurrency:i}),n.cooldown&&Mr(O.actions,n.cooldown,de),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)}await W(e.entries(),async([e,t])=>{let n;try{let[t]=await tr(e,`docker`,C);n=t}catch{for(let e of t)delete O.docker[e.key];return}for(let e of t){let t=O.docker[e.key],r=t.oldOrig||t.old,{semvers:i}=D(e.fullImage),a=nr(n.tags,r,i);if(!a){delete O.docker[e.key];continue}t.new=a.newTag,t.info=fr(e.ref),jr(t,a.date)}},{concurrency:i}),n.cooldown&&Mr(O.docker,n.cooldown,de),Object.keys(O.docker).length||delete O.docker})()),await Promise.all(V),!Nr(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=Sr(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=Lr(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}=pe[e]||{};t&&$(t,Vn(r,n))}continue}if(r===`docker`){for(let[e,t]of n){let n=I[e];if(!n)continue;let{absPath:r,fileType:i}=n,a;try{a=m(r,`utf8`)}catch{continue}$(r,(i===`dockerfile`?ir:i===`compose`?ar:or)(a,t))}continue}let i=A[r];if(r===`go`&&R){for(let e of L){let t=Sr(O[r],e.usePath);if(!Object.keys(t).length)continue;let[n,i]=An(e.content,t);n!==e.content&&$(e.absPath,n),jn(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]=An(R.content,e);t!==R.content&&$(R.file,t)}}else if(r===`go`){let[e,t]=An(i,O[r]);$(j[r],e),jn(s(u(j[r])),t,$)}else if(r===`cargo`&&he)e(r,me,br);else if(r===`cargo`)$(j[r],br(i,O[r]));else if(r===`npm`&&_e)e(r,ge,on);else{let e=r===`npm`?on:fn;$(j[r],e(i,O[r]))}}return r}return Lr(O)}export{_t as a,wt as c,Ae as d,Ve as f,Et as i,Ke as l,Pn as n,Ct as o,xt as r,bt as s,zr as t,Ge as u};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.15.5",
3
+ "version": "17.15.6",
4
4
  "description": "CLI dependency update tool for npm, uv, cargo, go and actions",
5
5
  "author": "silverwind",
6
6
  "repository": "silverwind/updates",
@@ -23,19 +23,19 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "25.6.0",
26
- "@typescript/native-preview": "7.0.0-dev.20260415.1",
27
- "@vitest/coverage-v8": "4.1.4",
28
- "eslint": "10.2.0",
29
- "eslint-config-silverwind": "131.0.4",
26
+ "@typescript/native-preview": "7.0.0-dev.20260422.1",
27
+ "@vitest/coverage-v8": "4.1.5",
28
+ "eslint": "10.2.1",
29
+ "eslint-config-silverwind": "132.0.0",
30
30
  "jest-extended": "7.0.0",
31
- "timerel": "5.8.6",
32
- "tsdown": "0.21.8",
33
- "tsdown-config-silverwind": "2.0.6",
34
- "typescript": "6.0.2",
35
- "typescript-config-silverwind": "17.0.0",
36
- "updates-config-silverwind": "2.1.0",
37
- "versions": "15.0.0",
38
- "vitest": "4.1.4",
39
- "vitest-config-silverwind": "11.1.4"
31
+ "timerel": "5.8.7",
32
+ "tsdown": "0.21.10",
33
+ "tsdown-config-silverwind": "2.1.0",
34
+ "typescript": "6.0.3",
35
+ "typescript-config-silverwind": "18.0.0",
36
+ "updates-config-silverwind": "2.1.1",
37
+ "versions": "15.0.1",
38
+ "vitest": "4.1.5",
39
+ "vitest-config-silverwind": "11.3.1"
40
40
  }
41
41
  }