metascope 0.8.1 → 0.8.3

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.
@@ -0,0 +1,4 @@
1
+ import{accessSync as e,globSync as t,lstatSync as n,readFileSync as r,readdirSync as i,statSync as a,truncateSync as o,writeFileSync as s}from"node:fs";import{homedir as c}from"node:os";import{basename as l,dirname as u,join as d,relative as f,resolve as p}from"node:path";import{cwd as m,env as h,platform as g,stderr as _}from"node:process";import{styleText as v}from"node:util";import{access as y,mkdir as b,readFile as x,writeFile as S}from"node:fs/promises";import{pathToFileURL as ee}from"node:url";import{createHash as C}from"node:crypto";function te(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=ie(o[1]);for(let t=0;t<r.length-1;t++){let n=e[r[t]];Array.isArray(n)?e=n[n.length-1]:((!n||typeof n!=`object`)&&(e[r[t]]={}),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let a={};e[i].push(a),n=a;continue}let s=/^\[([^[\]]+)\]$/.exec(a);if(s){n=t;for(let e of ie(s[1]))(!(e in n)||typeof n[e]!=`object`||Array.isArray(n[e]))&&(n[e]={}),n=n[e];continue}let c=se(a);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=ie(l),f=n;for(let e=0;e<d.length-1;e++)(!(d[e]in f)||typeof f[d[e]]!=`object`||Array.isArray(f[d[e]]))&&(f[d[e]]={}),f=f[d[e]];let p=d[d.length-1];if(u.startsWith(`[`)&&ae(u,`]`)<0){let t=[];w(u.slice(1),t);for(let n=e+1;n<r.length;n++){let i=D(r[n]).trim();if(!i)continue;let a=ae(i,`]`);if(a>=0){w(i.slice(0,a),t),e=n;break}w(i,t)}f[p]=t}else f[p]=T(u)}return t}function w(e,t){let n=e.trim();if(n)for(let e of re(n)){let n=e.trim();n&&t.push(T(n))}}function T(e){if(e.startsWith(`[`)){let t=[],n=oe(e,`]`);return w(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?ne(e):e.startsWith(`"""`)?ce(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ce(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):E(e)}function E(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function ne(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of re(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=T(e.slice(n+1).trim())}return t}function re(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function ie(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function D(e){let t=ae(e,`#`);return t<0?e:e.slice(0,t)}function ae(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else if(i===`"`||i===`'`)n=i;else if(i===t)return r}return-1}function oe(e,t){let n=-1,r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`){i++;continue}a===r&&(r=null)}else a===`"`||a===`'`?r=a:a===t&&(n=i)}return n}function se(e){let t=null;for(let n=0;n<e.length;n++){let r=e[n];if(t){if(r===`\\`&&t===`"`){n++;continue}r===t&&(t=null)}else if(r===`"`||r===`'`)t=r;else if(r===`=`)return n}return-1}function ce(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
2
+ `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const le=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,ue=new Map;function O(e){if(typeof e!=`string`)return null;let t=ue.get(e);if(t!==void 0)return t;let n=le.exec(e.trim());if(!n)return ue.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return ue.set(e,s),s}function de(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:+(e>t)}function k(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function A(e,t){let n=k(e,t);if(n!==0)return n;if(!e.prerelease.length&&!t.prerelease.length)return 0;if(e.prerelease.length&&!t.prerelease.length)return-1;if(!e.prerelease.length&&t.prerelease.length)return 1;let r=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<r;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=de(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function fe(e){return O(e)?.version??null}function j(e){return O(e)}const M=new Map,pe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function me(e){if(typeof e!=`string`)return null;let t=M.get(e);if(t!==void 0)return t;let n=pe.exec(e);if(!n)return M.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return M.set(e,r),r}function N(e,t){let n=O(e),r=O(t);return!n||!r?null:he(n,r)}function he(e,t){if(e.version===t.version)return null;let n=A(e,t),r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(k(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function P(e,t){let n=O(e),r=O(t);return n&&r?A(n,r):null}function F(e,t){return(P(e,t)??-1)>0}function ge(e,t){return(P(e,t)??-1)>=0}function I(e,t){return(P(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=O(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function ve(e,t){let n=A(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function L(e,t,n){return`${e}.${t}.${n}-0`}function R(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 <${L(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${L(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 <${L(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${L(a,s+1,0)}`:`>=${a}.${s}.0 <${L(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${L(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${L(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${L(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?`<${L(p+1,0,0)}`:`<${L(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+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${L(r,i+1,0)}`}),e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${L(n+1,0,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 <${L(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 <${L(o+1,0,0)}`}),e)}const z=new Map;function Se(e){let t=z.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=R(t),t=xe(t),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=_e(t);if(!n)return z.set(e,null),null;i.push(n)}if(i.length===0)return z.set(e,null),null;r.push(i)}let i=r.length?r:null;return z.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 B(e,t){let n=O(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 we(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){let t=[];for(let n of e){let e=/^([^<>=~!]+)(?:==|>=?|<=?|~=)([0-9.a-z]+)$/.exec(n.replaceAll(/\s+/g,``));if(!e)continue;let r=e[1].replace(/\[.*?\]$/,``);r&&t.push({name:r,version:e[2]})}return t}const je=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Me=[`node`,`deno`,`bun`],Ne=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Pe=[`deps`,`indirect`,`replace`,`tool`],Fe=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function V(e,t){if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function Ie(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Le(){let e=new Date,t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`),r=String(e.getHours()).padStart(2,`0`),i=String(e.getMinutes()).padStart(2,`0`),a=String(e.getSeconds()).padStart(2,`0`),o=String(e.getMilliseconds()).padStart(3,`0`);return`${e.getFullYear()}-${t}-${n} ${r}:${i}:${a}.${o}`}const Re={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function ze(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Re[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 H(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 U=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`);async function Be(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function Ve(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const He=d(g===`win32`?h.LOCALAPPDATA||d(c(),`AppData`,`Local`):h.XDG_CACHE_HOME||d(c(),`.cache`),`updates`);let Ue=null;const We=new Map;function Ge(e){let t=We.get(e);return t===void 0&&(t=C(`sha256`).update(e).digest(`hex`).substring(0,16),We.set(e,t)),t}async function Ke(e){try{let t=await x(d(He,`${Ge(e)}.cache`),`utf8`),n=t.indexOf(`
3
+ `);if(n===-1)return null;let r=t.substring(0,n),i=t.substring(n+1);return r&&i?{etag:r,body:i}:null}catch{return null}}async function qe(e,t,n){try{await(Ue??=b(He,{recursive:!0})),await S(d(He,`${Ge(e)}.cache`),`${t}\n${n}`)}catch{}}var Je=`17.17.3`;function W(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/(24*3600*1e3)>=t}const Ye=Je,G=e=>e[0]===`v`?e.substring(1):e,Xe=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Ze(e,t){return{headers:{"user-agent":`updates/${Ye}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function Qe(e,t){try{return await fetch(e,t)}catch(t){throw Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`)}}async function $e(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}async function et(e,t,n={}){let r=t.noCache?null:await Ke(e),i=n.headers,a=r?{...i,"if-none-match":r.etag}:i,o=await t.doFetch(e,{...n,headers:a,signal:AbortSignal.timeout(t.fetchTimeout)});if(!o)return{res:void 0};if(o.status===304&&r)return{body:r.body,res:o};if(!o.ok)return{res:o};let s=await $e(o),c=o.headers?.get?.(`etag`);return c&&!t.noCache&&await qe(e,c,s),{body:s,res:o}}async function tt(e,t,n={}){if(!t.noCache){let t=await Ke(e);if(t)return{body:t.body}}let r=await t.doFetch(e,{...n,signal:AbortSignal.timeout(t.fetchTimeout)});if(!r)return{res:void 0};if(!r.ok)return{res:r};let i=await $e(r);return t.noCache||await qe(e,`immutable`,i),{body:i,res:r}}function nt(e){return(j(e)?.prerelease.length??0)>0}function rt(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const it=new WeakMap;function at(e){let t=it.get(e);if(t)return t;let n=new Set(e);return n.add(`prerelease`),e.has(`patch`)&&n.add(`prepatch`),e.has(`minor`)&&n.add(`preminor`),e.has(`major`)&&n.add(`premajor`),it.set(e,n),n}function ot(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=K(e),s=K(t);if(!o||!s)return!0;let c=rt(e)||nt(e),l=nt(t);return c&&!l?F(s,o)||n:!l&&I(s,o)?r===!0||a(i,r):!0}function K(e){return me(e)?.version??``}function st(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=K(n);if(!d)return d;let f=rt(n)||i,p=f?at(r):r,m=e?.time,h=!!m,g=o||!h,_=!!(c&&l),v=0,y=!1,b=d,x=j(d);for(let e of t){let t=j(e);if(!t?.version||t.prerelease.length&&(!f||a))continue;let n=t.version;if(s&&!B(n,s))continue;let r;if(_&&(r=u?u(e):h?m[e]:void 0,!W(r,c,l)))continue;let i=he(x,t);if(!(!i||!p.has(i)))if(g){let e=k(t,x),r=y&&e===0&&t.prerelease.length>0&&x.prerelease.length===0;(e>=0&&!r||s&&!B(b,s))&&(b=n,x=t,y=!0)}else{let i=Date.parse(r??m[e]);i>=0&&i>v&&(b=n,x=t,v=i)}}return b||null}function ct(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l},{allowDowngrade:u,matchesAny:d,isGoPseudoVersion:f}){if(n===`*`||n.includes(`||`)||/\d\s/.test(n))return null;let p=[],m;if(t===`pypi`){let t=e.releases;p=[];for(let e of Object.keys(t))fe(e)&&p.push(e);m=e=>t?.[e]?.[0]?.upload_time_iso_8601}else if(t===`npm`||t===`cargo`){p=[];for(let t of Object.keys(e.versions))fe(t)&&p.push(t)}else if(t===`go`){let t=K(n);if(!t)return null;let r=a||rt(n),p=e=>nt(e)&&(!r||i),m={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},h=e.old||n,g=K(e.new);if(g&&!f(e.new)&&!p(e.new)){let n=N(t,g);if(n&&o.has(n)&&ot(h,e.new,m)&&W(e.Time,c,l)&&(!s||B(g,s)))return e.new}let _=K(e.sameMajorNew);if(_&&!f(e.sameMajorNew)&&!p(e.sameMajorNew)){let n=N(t,_);if(n&&o.has(n)&&ot(h,e.sameMajorNew,m)&&W(e.sameMajorTime,c,l)&&(!s||B(_,s)))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}if(c&&l&&e.olderEligible&&!p(e.olderEligible.version)){let n=K(e.olderEligible.version);if(n){let r=N(t,n);if(r&&o.has(r)&&ot(h,e.olderEligible.version,m)&&(!s||B(n,s)))return e.Time=e.olderEligible.time,delete e.newPath,e.olderEligible.version}}return null}let h=st(e,p,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:m});if(!h)return null;if(r)return h;{let r=``,f=``;t===`pypi`?(f=e.info.version,r=K(e.info.version)):r=e[`dist-tags`].latest;let p=K(n),m=rt(n),g=nt(h),_=nt(r),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||m&&g)return h;if(m&&!g)return ot(n,h,v)?h:null;let y=N(p,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&nt(r)?h:I(r,p)&&!_?ot(n,r,v)?r:null:!m&&_&&!a||s&&!B(r,s)||c&&l&&!W(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const lt=new Map;if(h.UPDATES_FORGE_TOKENS)for(let e of h.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&lt.set(e.substring(0,t),e.substring(t+1))}const ut=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function dt(){return Array.from(new Set(ut.map(e=>h[e]).filter(Boolean)))}let ft;function pt(){let e=dt();return e.length?Promise.resolve(e):ft??=(async()=>{try{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]),{stdout:n}=await t(e)(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),r=n.trim();return r?[r]:[]}catch{return[]}})()}const mt=new Map;async function ht(e,t){if(!e)return[];let n=lt.get(e);if(n)return[n];let r=``;try{r=new URL(t).hostname}catch{}return e===`api.github.com`||e===`github.com`||e===r?pt():[]}async function gt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await ht(r,t.forgeApiUrl),a=AbortSignal.timeout(t.fetchTimeout),o=e=>{let t=Ze(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t.signal=a,t};if(!i.length)return t.doFetch(e,o());let s=r?mt.get(r):void 0;if(s)return t.doFetch(e,o(s));for(let n of i){let i=await t.doFetch(e,o(n));if(i.status!==401&&i.status!==403)return r&&mt.set(r,n),i}return t.doFetch(e,o())}function _t(e,t){let n=G(t);if(!fe(n))return null;let r=``,i=``;for(let t of e){let e=G(t);fe(e)&&(!r||F(e,i))&&(r=t,i=e)}return r&&F(i,n)?r:null}function vt(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const yt=/^[0-9a-f]{7,}$/i;function bt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function xt(e,t){let n=t.noCache?null:await Ke(e),r=await gt(e,t,n?{"if-none-match":n.etag}:void 0);if(r?.status===304&&n)try{let e=JSON.parse(n.body);return{tags:e.tags||[],link:e.link||``}}catch{return null}if(!r?.ok)return null;let i=bt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&await qe(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function St(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await xt(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Math.min(Number(new URL(n[1]).searchParams.get(`page`)),10);if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>xt(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function Ct(e,t,n,r){throw e?.status&&e?.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function wt(e,t,n=``){let r=t.startsWith(`v`),i=G(e),a=G(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function Tt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Et({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`])if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=vt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${Tt(a)}/${e.directory}`)),a||t||``)}function Dt(e,t){return RegExp(`^${U(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Ot(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Dt(e,n):e instanceof RegExp?e:Dt(e,n)}function q(e){return new Set(e.map(e=>Ot(e,!1,!0)))}function kt(e){if(typeof e==`boolean`)return e;if(!Array.isArray(e)||!e.length)return!1;let t=new Set;for(let n of e)t.add(Ot(n,!1,!1));return t}async function At(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=d(e,n);try{await y(r)}catch{return null}try{return{configDir:e,filename:n,default:(await import(ee(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const jt=Ve(e=>Be(e,At));async function Mt(e){let t=await jt(e),n=t?.default??{},{loadRenovateConfig:r}=await import(`./renovate-RGZhd1au.js`);return{...await r(t?.configDir??e,n.inherit?.renovate),...n}}function Nt(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 Pt(e){try{return Nt(r(e,`utf-8`))}catch{return}}function Ft(e){let t=m();for(;;){let n=d(t,e);try{return a(n),n}catch{}let r=u(t);if(r===t)break;t=r}}function It(e){let t={},n=e.toLowerCase();for(let[r,i]of Object.entries(h))if(r.toLowerCase().startsWith(n)){let n=r.substring(e.length).split(`__`).filter(Boolean);if(n.length===0)continue;let a=t;for(let e=0;e<n.length;e++){let t=n[e];if(e===n.length-1)a[t]=i;else if(a[t]===void 0&&(a[t]={}),typeof a[t]==`object`)a=a[t];else break}}return t}function Lt(e,t={}){let n=g===`win32`,r=n?h.USERPROFILE:h.HOME,i=[{...t}],a=[];function o(e){if(!e||a.includes(e))return;let t=Pt(e);t&&(i.push(t),a.push(e))}n||(o(d(`/etc`,e,`config`)),o(d(`/etc`,`${e}rc`))),r&&(o(d(r,`.config`,e,`config`)),o(d(r,`.config`,e)),o(d(r,`.${e}`,`config`)),o(d(r,`.${e}rc`))),o(Ft(`.${e}rc`));let s=It(`${e}_`);return s.config&&o(s.config),Object.assign({},...i,s,a.length?{configs:a,config:a[a.length-1]}:void 0)}const Rt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,zt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Bt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Vt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,Ht=`https://registry.npmjs.org`;let J=null;const Ut=new Map;function Wt(){return J??=Lt(`npm`,{registry:Ht})}function Gt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,t)=>h[t]||``)}function Kt(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Gt(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Gt(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:Gt(o),type:`Basic`}}function qt(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Kt(`//${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:Gt(i),type:`Basic`}}function Jt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Yt(e,t){J||=Wt();let n=e.startsWith(`@`)?e.split(`/`)[0]:``,r=`${n}:${t}`,i=Ut.get(r);if(i)return i;let a=()=>({auth:qt(t,J),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=Xe(Jt(n,J));if(e!==t)try{let t=qt(e,J);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return Ut.set(r,o),o}function Xt(e,t,n){J||=Wt();let r=Xe((typeof n.registry==`string`?n.registry:!1)||t.registry||J.registry||Ht);return{...Yt(e,r),originalRegistry:r}}function Zt(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Qt=new Map,$t=new Map,en=new Map;async function tn(e,t,n,r,i){let{auth:a,registry:o}=Xt(e,n,r),s=Zt(o,t===`resolutions`?l(e):e),c=Qt.get(s);if(!c){let t=Ze(a?.type,a?.token),n={...t.headers,accept:`application/vnd.npm.install-v1+json`};t.headers=n,c=(async()=>{let r=i.noCache?null:await Ke(s);r&&(n[`if-none-match`]=r.etag);let a=await i.doFetch(s,{signal:AbortSignal.timeout(i.fetchTimeout),...t});if(a?.status===304&&r)return JSON.parse(r.body);if(a?.ok){let e=await a.text(),t=a.headers.get(`etag`);return t&&!i.noCache&&await qe(s,t,e),JSON.parse(e)}Ct(a,s,e,o)})().catch(e=>{throw Qt.delete(s),e}),Qt.set(s,c)}return[await c,t,o,e]}async function nn(e,t,n,r,i){let{auth:a,registry:o}=Xt(e,n,r),s=Zt(o,e,t),c=$t.get(s);if(c)return c;let l=(async()=>{try{let n=Ze(a?.type,a?.token),r=await tt(s,i,n);if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}if(!l){let r=Zt(o,e),a=en.get(r);a||(a=i.doFetch(r,{...n,signal:AbortSignal.timeout(i.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>(en.delete(r),null)),en.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return $t.set(s,l),l}function rn(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function an(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function on(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 sn(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 et(o,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in s){let r=JSON.parse(s.body),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}Ct(s.res,o,e,`JSR`)}function cn(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 ln(e,t,n){let r=e.replace(Vt,t);if(!n||n===e)return r;let i=/^([\^~]|>=\s*)([\d.]+)$/.exec(n);if(!i)return r;let[,a,o]=i,s=t.split(/[-+]/)[0];if(s!==t)return r;let c=o.split(`.`).length,l=s.split(`.`);return l.length===c?r:`${a}${l.slice(0,c).join(`.`)}`}function Y(e){if(/[xX*]/.test(e))return e;let t=e.match(Bt);return t?.length===1?e.replace(Bt,K(t[0])):e}async function un(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await Ke(r),t=await gt(r,n,e?{"if-none-match":e.etag}:void 0);if(t?.status===304&&e){let{sha:t,commit:n}=JSON.parse(e.body)[0];return{hash:t,commit:n}}if(!t?.ok)return{hash:``,commit:{}};let i=await t.text(),a=t.headers.get(`etag`);a&&!n.noCache&&await qe(r,a,i);let{sha:o,commit:s}=JSON.parse(i)[0];return{hash:o,commit:s}}catch{return{hash:``,commit:{}}}}async function dn(e,t,n){return(await St(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function fn(e,t,n){let r=t.old.replace(Rt,``),[,i,a,o]=zt.exec(r)||[];if(!i||!a||!o)return null;if(yt.test(o)){let{hash:r,commit:s}=await un(i,a,n);if(!r)return null;let c=s?.committer?.date??s?.author?.date,l=r.substring(0,o.length);if(o!==l)return{key:e,newRange:t.old.replace(o,l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let r=_t(await dn(i,a,n),o);if(r)return{key:e,newRange:t.old.replace(o,r),user:i,repo:a,oldRef:o,newRef:r}}return null}async function pn(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await et(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in i)return[JSON.parse(i.body),t,null,e];Ct(i.res,r,e,n.pypiApiUrl)}function mn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`("${U(a)}(?:\\[[^\\]]+\\])? *[<>=~]+ *)${U(o)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}let hn;async function gn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function _n(){return hn??=gn()}function vn(){let e=h.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return Xe(e)}return`https://proxy.golang.org`}function yn(){return(h.GONOPROXY||h.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function bn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function xn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Sn=/\/v(\d+)$/;function Cn(e){let t=Sn.exec(e);return t?Number.parseInt(t[1]):1}function wn(e,t){let n=e.replace(Sn,``);return t<=1?n:`${n}/v${t}`}function Tn(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 En(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Dn(n)}function Dn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function On(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function kn(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 An(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:G(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:G(i),sameMajorTime:a},t,null,e]}function jn(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=Tn(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 Mn(e,t,n,r,i){let a=Cn(e),o=async(e,t)=>{try{let{stdout:n}=await(await _n())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:t,cwd:r,env:h}),i=JSON.parse(n);return{Version:i.Version,Time:i.Time||``,path:e}}catch{return null}},s=En(e,t,n),[c,l]=await Promise.all([o(e,i.fetchTimeout),s?null:o(wn(e,a+1),i.goProbeTimeout)]);return c?An(e,t,n,await kn(a,l,t=>o(wn(e,t),i.goProbeTimeout)),c.Version,c.Time):On(e,n,t)}async function Nn(e,t,n,r,i,a){if(bn(e,a))return Mn(e,t,n,r,i);let o=xn(e),s=Cn(e),c=async t=>{let n=wn(e,t);return i.doFetch(`${i.goProxyUrl}/${xn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=En(e,t,n),[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return On(e,n,t);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return On(e,n,t)}return An(e,t,n,await kn(s,d,c),f,p)}function Pn(e,t){let n=U(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 Fn(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+${U(s)}\\s+)v${U(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${U(s)}) +v${U(c)}`,`g`),`$1 v${l}`);continue}let u=Cn(s),d=Number.parseInt(l.split(`.`)[0]);if(!l.includes(`+incompatible`)&&u!==d&&d>1){let e=wn(s,d);n=n.replace(RegExp(`${U(s)} +v${U(c)}`,`g`),`${e} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${U(s)}(/\\S+)?\\s*$`,`gm`),`$1${e}$2`)),r[s]=e}else n=n.replace(RegExp(`(${U(s)}) +v${U(c)}`,`g`),`$1 v${l}`);o!==`tool`&&(n=Pn(n,s))}return[n,r]}function In(e,n,i){let a=Object.entries(n);if(!a.length)return;let o=new Map(a),s=a.map(([e])=>e).sort((e,t)=>t.length-e.length),c=RegExp(`"(${s.map(U).join(`|`)})(/|")`,`g`),l=t(`**/*.go`,{cwd:e});for(let t of l){let n=d(e,t),a=r(n,`utf8`),s=a.replace(c,(e,t,n)=>`"${o.get(t)}${n}`);s!==a&&i(n,s)}}function Ln(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=Tn(r,a);e&&(n[e.targetModule]=e.targetVersion);continue}}return{use:t,replace:n}}function Rn(e){let t=`https://${zn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${Tt(t)}/${a.join(`/`)}`,n.toString()}else return t}function zn(e){return Sn.test(e)?u(e):e}function Bn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Vn=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Hn(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:yt.test(o)}}function Un(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function Wn(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Ke(a);if(e)return e.body}try{let e=await gt(a,i);if(!e?.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&await qe(a,`immutable`,n),n}catch{return``}}function Gn(e,t){return wt(j(G(e))?.version??G(e),t)}function Kn(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${U(e)}@${U(r)}(?![\\w.-])`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}const X=[`.github`,`.gitea`,`.forgejo`],qn=RegExp(`(?:${X.map(U).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function Jn(e){return qn.test(e.replace(/\\/g,`/`))}function Yn(e){let t=new Set;try{for(let n of i(d(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(p(d(e,`workflows`,n)))}catch{}try{for(let n of i(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(p(d(n.parentPath,n.name)))}catch{}return Array.from(t)}const Xn=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Zn=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,Qn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,$n=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,er=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function tr(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(`/`),repo:t[t.length-1]}}function nr(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||!Xn.test(r)))return null;let{registry:i,namespace:a,repo:o}=tr(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function rr(e){let t=Xn.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function ir(e,t){let n=rr(t);return n?wt(e,n.version,n.suffix):t}function ar(e,t){let n=[];for(let r of e.matchAll(t)){let e=nr(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function or(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o={headers:{"accept-encoding":`gzip, deflate, br`}},s=async e=>{try{let t=await et(a(e),n,o);return`body`in t?JSON.parse(t.body):null}catch{return null}},c=await s(1);if(!c)return r;for(let e of c.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let l=Math.min(Math.ceil((c.count||0)/100),10);if(l<2)return r;let u=await Promise.all(Array.from({length:l-1},(e,t)=>s(t+2)));for(let e of u)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function sr(e,t,n){let{registry:r,namespace:i,repo:a}=tr(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await or(i,a,n),name:e},t,null,e]}function cr(e,t,n,r,i,a){let o=rr(t);if(!o)return null;let s=me(G(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=rr(t);if(!e||e.suffix!==o.suffix)continue;let d=me(G(e.version))?.version;if(!d||a&&!B(d,a)||!W(s,r,i))continue;let f=N(c,d);!f||!n.has(f)||ge(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=ir(c,t);return d===t?null:{newTag:d,date:u}}function lr(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(U(t),U(a)),`$1${t}:${i.new}`)}return r}function ur(e,t){return lr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}(?![\\w.-])`,`g`)])}function dr(e,t){return lr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`)])}function fr(e,t){return lr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}(?![\\w.-])`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}(?![\\w.-])`,`g`)])}const pr=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function mr(e){return/^docker-.+\.ya?ml$/.test(e)}function hr(e){return/^Dockerfile(\..+)?$/.test(e)}function gr(e){return hr(e)||mr(e)}function _r(e){return hr(e)?Zn:Qn}function vr(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const yr=new Map;async function br(e,t,n){let r=`${Xe(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=n.noCache?void 0:yr.get(r);return i||(i=et(r,n,Ze()).then(t=>{`body`in t||Ct(t.res,r,e,n.cratesIoUrl);let i;try{i=JSON.parse(t.body)}catch{throw Error(`Invalid JSON from ${r}`)}let a=(i.versions||[]).filter(e=>!e.yanked),o={},s={};for(let e of a)e.num&&(o[e.num]={},s[e.num]=e.created_at||``);return{name:e,versions:o,time:s,"dist-tags":{latest:a[0]?.num??``}}}).catch(e=>{throw yr.delete(r),e}),yr.set(r,i)),[await i,t,null,e]}function xr(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(!fe(a))continue;let o=t.get(i);o||t.set(i,o=[]),o.push(a)}return t}const Sr=/^\d/;function Cr(e,t){return Sr.test(e)?ln(Y(`^${e}`),t,`^${e}`).replace(/^\^/,``):ln(Y(e),t,e)}function wr(e,t,n){let r=e.get(t);if(!r)return;let i=Sr.test(n)?`^${n}`:n,a;for(let e of r)B(e,i)&&(!a||F(e,a))&&(a=e);return a}const Tr=Fe.map(U).join(`|`);function Er(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=U(t),s=U(i);n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*["'])${s}(["'].*)$`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`^(\\s*${o}\\s*=\\s*\\{[^}\\n]*?\\bversion\\s*=\\s*["'])${s}(["'])`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${Tr})\\.${o}\\][^\\[]*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function Dr(e){return e.split(`|`)[0]}function Or(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Dr(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const kr=/[*?{[]/;async function Ar(e,n,r,i=32){let a=new Set,o=[];for(let i of e){let e=kr.test(i)?t(i,{cwd:n}).map(e=>p(d(n,e))):[p(d(n,i))];for(let t of e){let e=d(t,r);if(a.has(e))continue;a.add(e);let i=f(n,t);o.push({absPath:e,memberPath:`./${i.replace(/\\/g,`/`)}`})}}return(await H(o,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await x(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:i})).filter(e=>e!==null)}function jr(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){if(/^\S/.test(e))break;let n=/^\s+-\s+['"]?([^'"#\s]+)['"]?/.exec(e);n&&t.push(n[1])}}return t}const Mr={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Nr=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),Pr=(e,t)=>typeof e==`string`?Xe(e):typeof t==`function`?t():t;function Fr(t,n){let r=new Map,i=new Set(t),a=n;for(;i.size;){for(let t of i){let n=d(a,t);try{e(n),r.set(t,n),i.delete(t)}catch{}}let t=u(a);if(t===a)break;a=t}return r}async function Ir(e,t){let n=await H(e,async e=>{try{return[e,await x(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function Z(e,t){t&&(e.date=t,e.age=ke(t,{noAffix:!0}))}function Lr(e){let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;return t}function Rr(e){console.error(`${Le()} ${e}`)}function Q(e,t,n,r,i){if(i===`engines`&&Me.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?zn(e):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function zr(e){let t=new Set;if(e)for(let r of e){let e;try{e=n(r)}catch(e){throw Error(`Unable to open ${r}: ${e.message}`)}if(e?.isFile())t.add(p(r));else if(e?.isDirectory()){for(let e of Object.keys(Mr)){let i=d(r,e),a=null;try{a=n(i)}catch{}a?.isFile()&&t.add(p(i))}try{for(let e of i(r,{withFileTypes:!0}))e.isFile()&&gr(e.name)&&t.add(p(d(r,e.name)))}catch{}let e=p(r).replace(/\\/g,`/`),a=X.some(t=>e.endsWith(`${t}/workflows`)),o=!a&&X.some(t=>e.endsWith(t)),s;s=a?[u(e)]:o?[e]:X.map(t=>d(e,t));for(let e of s)for(let n of Yn(e))t.add(n)}else throw Error(`${r} is neither a file nor directory`)}else{let e=new Set(X),n=[...Object.keys(Mr),...pr,...X];for(let[r,i]of Fr(n,m()))if(e.has(r))for(let e of Yn(i))t.add(e);else t.add(p(i));try{for(let e of i(m(),{withFileTypes:!0}))e.isFile()&&gr(e.name)&&!pr.includes(e.name)&&t.add(p(d(m(),e.name)))}catch{}}for(let e of t)l(e)===`go.work`&&t.delete(d(u(e),`go.mod`));for(let e of t)l(e)===`pnpm-workspace.yaml`&&t.delete(d(u(e),`package.json`));return t}function $(e,t){g===`win32`&&o(e,0),s(e,t,g===`win32`?{flag:`r+`}:void 0)}function Br(e){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!rn(i.oldOrig)&&(i.old=n===`go`?Bn(i.oldOrig):i.oldOrig),n===`go`&&(i.new=Bn(i.new)),n===`actions`&&(i.old=G(i.old),i.new=G(i.new)),delete i.oldPrint,delete i.newPrint,delete i.oldOrig,delete i.date;let[e,a]=r.split(`\0`),o=t.results[n]??={};(o[e]??={})[a]=i}return t}let Vr=!1;async function Hr(e={}){if(!Vr){let{enableDnsCache:e}=await import(`./dns-CMo4lMFT.js`);e(),Vr=!0}let t={...e},n=t.sockets??25,r=t.timeout??0,i=Pr(e.forgeapi,`https://api.github.com`),a=Pr(e.pypiapi,`https://pypi.org`),o=Pr(e.jsrapi,`https://jsr.io`),s=Pr(e.goproxy,vn),c=Pr(e.cargoapi,`https://crates.io`),f=Pr(e.dockerapi,`https://hub.docker.com`),h=yn(),g=t.color===!0||t.noColor!==!0&&_.isTTY,y=e=>g?t=>v(e,String(t)):String,b=y(`magenta`),S=y(`green`),ee=y(`red`),C={fetchTimeout:r||5e3,goProbeTimeout:r?r/2:2500,forgeApiUrl:i,pypiApiUrl:a,jsrApiUrl:o,goProxyUrl:s,cratesIoUrl:c,dockerApiUrl:f,doFetch:async(e,n)=>{t.verbose&&Rr(`${b(n?.method||`GET`)} ${e}`);let r=await Qe(e,n);return t.verbose&&Rr(`${r.ok?S(r.status):ee(r.status)} ${e}`),r},noCache:!!t.noCache},w=kt(t.greatest),T=kt(t.prerelease),E=kt(t.release),ne=kt(t.patch),re=kt(t.minor),ie=kt(t.allowDowngrade),D=t.modes?.length?new Set(t.modes):Nr,ae=(t.overrides??[]).map(e=>({include:e.include?.length?q(e.include):void 0,exclude:e.exclude?.length?q(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:ze(String(e.cooldown))})),oe=(e,t)=>!(e.include&&!V(t,e.include)||e.exclude&&V(t,e.exclude)),se=ae.some(e=>!!e.cooldownDays);D.has(`actions`)&&pt();let ce=new Map;function le(e){let t=ce.get(e);if(!t){let n=typeof w==`boolean`?w:V(e,w),r=typeof T==`boolean`?T:V(e,T),i=typeof E==`boolean`?E:V(e,E),a=typeof ne==`boolean`?ne:V(e,ne),o=typeof re==`boolean`?re:V(e,re),s=typeof ie==`boolean`?ie:V(e,ie),c;for(let t of ae)oe(t,e)&&(t.greatest!==void 0&&(n=t.greatest),t.prerelease!==void 0&&(r=t.prerelease),t.release!==void 0&&(i=t.release),t.patch!==void 0&&(a=t.patch),t.minor!==void 0&&(o=t.minor),t.allowDowngrade!==void 0&&(s=t.allowDowngrade),t.cooldownDays!==void 0&&(c=t.cooldownDays));let l=new Set(a?[`patch`]:o?[`patch`,`minor`]:[`patch`,`minor`,`major`]);t={useGreatest:n,usePre:r,useRel:i,semvers:l,allowDowngrade:s,cooldownOverride:c},ce.set(e,t)}return t}let ue=q(t.include??[]),O=q(t.exclude??[]),de=t.pin??{},k={},A={},j={},M={},pe=Date.now(),me=e=>{let n=t.cooldown??e;return n?ze(String(n)):0},N=m(),he=e=>e.replace(`${N}/`,``).replace(`${N}\\`,``),P=0,F=(e,t,n,r,i,a)=>{k[e][`${t}${n}${r}`]={old:i,oldOrig:a}},ge=zr(t.files?.length?new Set(t.files):!1),I=await Ir(Array.from(ge).filter(e=>{if(Jn(e))return D.has(`actions`)||D.has(`docker`);let t=l(e);if(gr(t))return D.has(`docker`);let n=Mr[t];return!!n&&D.has(n)}),n),_e={},ve={},L=[],R=null,ye=[],be=!1,xe=[],z=!1,Se=[],Ce=[],B={};async function Te(e){let n=await Mt(e);return{modeConfig:n,modeInclude:n.include?.length?q([...t.include??[],...n.include]):ue,modeExclude:n.exclude?.length?q([...t.exclude??[],...n.exclude]):O,pin:{...n.pin,...de}}}function Ee(e,n){return t.types?.length?t.types:n?.types?.length?n.types:e===`npm`?je:e===`pypi`?Ne:e===`go`?t.indirect?Pe:Pe.filter(e=>e!==`indirect`):e===`cargo`?Fe:[]}function De(e,t,n,r){k.docker??={};for(let i of n)for(let{ref:n}of ar(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(k.docker[e])continue;let i=rr(n.tag);i&&(k.docker[e]={old:i.version,oldOrig:n.tag},Ce.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function Oe(e){let n=await Mt(e);return{include:n.include?.length?q([...t.include??[],...n.include]):ue,exclude:n.exclude?.length?q([...t.exclude??[],...n.exclude]):O,pin:n.pin??{},cooldownDays:me(n.cooldown)}}for(let e of ge){if(Jn(e)){let t=D.has(`actions`),n=D.has(`docker`);if(!t&&!n)continue;let r=I.get(e),a=he(e),o=await Oe(u(e));if(_e[a]={absPath:e,content:r},t){k.actions??={};let e=Array.from(r.matchAll(Vn),e=>Hn(e[1])).filter(e=>e!==null);for(let t of e){if(!Q(t.name,`actions`,o.include,o.exclude,`actions`))continue;let e=`${a}${t.name}`;k.actions[e]||(k.actions[e]={old:t.ref},Se.push({...t,key:e,apiUrl:Un(t.host,i),filePin:o.pin,fileCooldownDays:o.cooldownDays}))}}n&&(ve[a]={absPath:e,content:r,fileType:`workflow`},De(r,a,[Qn,$n,er],o));continue}let t=l(e);if(gr(t)){if(!D.has(`docker`))continue;let n=I.get(e),r=he(e),i=hr(t)?`dockerfile`:`compose`,a=await Oe(u(e));ve[r]={absPath:e,content:n,fileType:i},De(n,r,[_r(t)],a);continue}let r=Mr[t];if(!D.has(r))continue;if(t===`go.work`){k[r]??={};let t=u(p(e)),i=I.get(e);R={file:e,content:i};let a=Ln(i),[o,s]=await Promise.all([Te(t),H(a.use,async e=>{let n=p(d(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await x(n,`utf8`)}}catch{return null}},{concurrency:n})]),{modeConfig:c,modeInclude:l,modeExclude:f,pin:m}=o,h=Ee(r,c);M[r]=e,B[r]={modeConfig:c,projectDir:t,pin:m};for(let e of s){if(!e)continue;let{usePath:t,modPath:n,content:i}=e,a=jn(i),o=u(n);L.push({absPath:n,content:i,projectDir:o,usePath:t});let s=t===`.`?``:`|${t}`;for(let e of h){let t=a[e]||{};for(let[n,i]of Object.entries(t))Q(n,r,l,f,e)&&F(r,e,s,n,Bn(i),G(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,r,l,f,`replace`)&&F(r,`replace`,``,e,Bn(t),G(t));P+=Object.keys(k[r]).length;continue}if(t===`go.mod`&&R||t===`package.json`&&z)continue;if(t===`Cargo.toml`){k[r]??={};let t=I.get(e),i=te(t),a=u(p(e));M[r]=e;let o=Fr([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,c=Array.isArray(s)&&s.length,[l,d,f]=await Promise.all([Te(a),o?x(o,`utf8`):Promise.resolve(null),c?Ar(s,a,`Cargo.toml`,n):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=l,v=Ee(r,m);B[r]={modeConfig:m,projectDir:a,pin:_};let y=d?xr(d):new Map,b=(e,t)=>{for(let n of v){let i=Ie(e,n)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if(Q(e,r,h,g,n))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=String(a.version);we(i)&&F(r,n,t,e,wr(y,e,i)??Y(i),i)}else typeof a==`string`&&we(a)&&F(r,n,t,e,wr(y,e,a)??Y(a),a)}}};if(c){be=!0,b(i,``),ye.push({absPath:p(e),content:t,memberPath:`.`});for(let e of f){ye.push(e);try{b(te(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else j[r]=t,b(i,``);P+=Object.keys(k[r]).length;continue}if(t===`pnpm-workspace.yaml`){k[r]??={};let t=u(p(e)),i=I.get(e);z=!0;let a=jr(i),o=d(t,`package.json`),[s,c,l]=await Promise.all([Te(t),x(o,`utf8`).catch(()=>null),Ar(a,t,`package.json`,n)]),{modeConfig:f,modeInclude:m,modeExclude:h,pin:g}=s,_=Ee(r,f);M[r]=e,B[r]={modeConfig:f,projectDir:t,pin:g};let v=(e,t)=>{for(let n of _){let i=e[n]||{};if(typeof i==`string`){let[e,a]=i.split(`@`);Q(e,r,m,h,n)&&F(r,n,t,e,Y(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Q(e,r,m,h,n)&&(rn(a)?F(r,n,t,e,on(a,e).version,a):we(a)?F(r,n,t,e,Y(a),a):an(a)?F(r,n,t,e,`0.0.0`,a):A[`${n}${t}${e}`]={old:a})}};if(c!==null){let e;try{e=JSON.parse(c)}catch(e){throw Error(`Error parsing ${o}: ${e.message}`)}xe.push({absPath:p(o),content:c,memberPath:`.`}),v(e,``)}for(let e of l){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}xe.push(e),v(t,`|${e.memberPath}`)}P+=Object.keys(k[r]).length+Object.keys(A).length;continue}M[r]=e,k[r]??={};let a=u(p(e)),{modeConfig:o,modeInclude:s,modeExclude:c,pin:f}=await Te(a),m=Ee(r,o),h={};j[r]=I.get(e);try{if(r===`npm`)h=JSON.parse(j[r]);else if(r===`pypi`)h=te(j[r]);else if(r===`go`){let e=jn(j[r]);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=r===`npm`||r===`go`?h[e]||{}:Ie(h,e)||{},Array.isArray(t)&&r===`pypi`)for(let{name:n,version:i}of Ae(t))Q(n,r,s,c,e)&&F(r,e,``,n,Y(i),i);else if(typeof t==`string`){let[n,i]=t.split(`@`);Q(n,r,s,c,e)&&F(r,e,``,n,Y(i),i)}else for(let[n,i]of Object.entries(t))Q(n,r,s,c,e)&&(r===`npm`&&rn(i)?F(r,e,``,n,on(i,n).version,i):r!==`go`&&we(i)?F(r,e,``,n,Y(i),i):r===`npm`&&an(i)?F(r,e,``,n,`0.0.0`,i):r===`npm`?A[`${e}${n}`]={old:i}:r===`go`&&F(r,e,``,n,Bn(i),G(i)))}P+=Object.keys(k[r]).length+Object.keys(A).length,B[r]={modeConfig:o,projectDir:a,pin:f}}if(k.actions&&(P+=Object.keys(k.actions).length),k.docker&&(P+=Object.keys(k.docker).length),P===0)return{results:{},message:`No dependencies found, nothing to do.`};let ke=[],Me={registry:t.registry};for(let e of Object.keys(B)){let t=!!k[e]&&Object.keys(k[e]).length>0,r=e===`npm`&&Object.keys(A).length>0;if(!t&&!r)continue;let{modeConfig:i,projectDir:a,pin:o}=B[e],s=me(i.cooldown);ke.push((async()=>{let t=new Map,r=e=>{if(!(!s&&!se))for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let[,r]=t.split(`\0`),i=le(r).cooldownOverride??s;i&&!W(n,i,pe)&&delete e[t]}};if(await H(Object.keys(k[e]),async n=>{let[r,c]=n.split(`\0`),l=Dr(r),u=k[e][n],d=null;if(e===`npm`){let{oldOrig:t}=u;if(t&&rn(t))d=await sn(c,l,C);else if(t&&an(t))try{d=await tn(c,l,i,Me,C)}catch{delete k[e][n];return}else d=await tn(c,l,i,Me,C)}else d=e===`go`?await Nn(c,l,u.oldOrig||u.old,a,C,h):e===`cargo`?await br(c,l,C):await pn(c,l,C);if(!d)return;let[f,,p]=d;if(f?.error)throw Error(f.error);let{useGreatest:m,usePre:g,useRel:_,semvers:v,allowDowngrade:y,cooldownOverride:b}=le(f.name),x=u.old,S=u.oldOrig,ee=o[c],te=b??s,w=ct(f,{usePre:g,useRel:_,useGreatest:m,semvers:v,range:x,mode:e,pinnedRange:ee,cooldownDays:te||void 0,now:te?pe:void 0},{allowDowngrade:y,matchesAny:V,isGoPseudoVersion:Dn}),T=``;if([`go`,`pypi`].includes(e)&&w)T=w;else if(e===`cargo`&&w&&S)T=Cr(S,w);else if(w)if(S&&an(S))T=String(Wt()[`save-exact`])===`true`?w:`^${w}`;else if(S&&rn(S)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(S);e?T=`${e[1]}${w}`:S.startsWith(`jsr:`)&&(T=`jsr:${w}`)}else T=ln(x,w,S);if(!w||w===x||S&&S===T){delete k[e][n];return}let E=``;e===`pypi`&&f.releases?.[w]?.[0]?.upload_time_iso_8601?E=f.releases[w][0].upload_time_iso_8601:e===`go`&&f.Time?E=f.Time:e===`cargo`&&f.time?.[w]&&(E=f.time[w]),u.new=T,S&&rn(S)&&(u.newPrint=w),e===`npm`?t.set(n,{name:c,promise:nn(f.name,w,i,Me,C)}):e===`pypi`?u.info=Et(f,p,f.info.name):e===`go`?u.info=Rn(f.newPath||c):e===`cargo`&&(u.info=`https://crates.io/crates/${c}`),E&&Z(u,E)},{concurrency:n}),await Promise.all(Array.from(t,async([t,{name:n,promise:r}])=>{let i=await r,a=k[e][t];a&&(a.info=Et({repository:i.repository,homepage:i.homepage},null,n),i.date&&Z(a,i.date))})),e===`npm`&&Object.keys(A).length){let t=(await H(Object.entries(A),([e,t])=>fn(e,t,C),{concurrency:n})).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:yt.test(o)?o.substring(0,7):o,newPrint:yt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Z(k[e][t],c)}}r(k[e])})())}if(Se.length&&ke.push((async()=>{let e=new Map;for(let t of Se){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 H(e.values(),async({apiUrl:e,owner:t,repo:r,infos:i})=>{let a=await St(e,t,r,C),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=G(e.name);fe(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=new Map;async function d(n){if(u.has(n))return u.get(n);let i=await Wn(e,t,r,n,C);return u.set(n,i),i}async function f(e){let t=new Set;for(let n=0;n<20;n++){let n=st({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!e.cooldownDays)return{version:n,tag:r,commitSha:i,date:``};let a=i?await d(i):``;if(W(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await H(i,async({key:e,host:n,ref:i,name:a,isHash:o,filePin:s,fileCooldownDays:u})=>{let p=k.actions[e],m=`https://${n||`github.com`}/${t}/${r}`,h=de[a]??s[a];if(o){let{usePre:t,useRel:n,cooldownOverride:r}=le(a),o=r??u,s=await f({range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:h,cooldownDays:o||void 0,now:o?pe:void 0});if(!s){delete k.actions[e];return}let{tag:c,commitSha:d,date:g}=s;if(!d||d===i||d.startsWith(i)||i.startsWith(d)){delete k.actions[e];return}let _=l.get(i);if(!_){for(let[e,t]of l)if(e.startsWith(i)){_=t;break}}p.old=i,p.new=d.substring(0,i.length),p.oldPrint=_||i.substring(0,7),p.newPrint=c,p.info=m,g&&Z(p,g)}else{let t=K(G(i));if(!t){delete k.actions[e];return}let{usePre:n,useRel:r,semvers:o,cooldownOverride:s}=le(a),l=s??u,g=await f({range:t,semvers:o,usePre:n,useRel:r,useGreatest:!0,pinnedRange:h,cooldownDays:l||void 0,now:l?pe:void 0});if(!g){delete k.actions[e];return}let{tag:_,commitSha:v,date:y}=g,b=Gn(_,i);if(b===i){delete k.actions[e];return}if(p.new=c.has(b)?b:_,p.info=m,v&&y)Z(p,y);else if(v){let e=await d(v);e&&Z(p,e)}}},{concurrency:n})},{concurrency:n}),Object.keys(k.actions).length||delete k.actions})()),Ce.length&&ke.push((async()=>{let e=new Map;for(let t of Ce){let n=e.get(t.fullImage);n||e.set(t.fullImage,n=[]),n.push(t)}await H(e.entries(),async([e,t])=>{let n;try{let[t]=await sr(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,cooldownOverride:a}=le(e.fullImage),o=de[e.fullImage]??e.filePin[e.fullImage],s=a??e.fileCooldownDays,c=cr(n.tags,r,i,s||void 0,s?pe:void 0,o);if(!c){delete k.docker[e.key];continue}t.new=c.newTag,t.info=vr(e.ref),Z(t,c.date)}},{concurrency:n}),Object.keys(k.docker).length||delete k.docker})()),await Promise.all(ke),!Lr(k))return{results:{},message:`All dependencies are up to date.`};if(t.update){let e=(e,t,n)=>{for(let r of t){let t=Or(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}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}=_e[e]||{};if(!t)continue;let i=Kn(r,n);$(t,i),ve[e]&&(ve[e].content=i)}continue}if(r===`docker`){for(let[e,t]of n){let n=ve[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?ur:a===`compose`?dr:fr)(i,t))}continue}let i=j[r];if(r===`go`&&R){for(let e of L){let t=Or(k[r],e.usePath);if(!Object.keys(t).length)continue;let[n,i]=Fn(e.content,t);n!==e.content&&$(e.absPath,n),In(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]=Fn(R.content,e);t!==R.content&&$(R.file,t)}}else if(r===`go`){let[e,t]=Fn(i,k[r]);$(M[r],e),In(u(p(M[r])),t,$)}else if(r===`cargo`&&be)e(r,ye,Er);else if(r===`cargo`)$(M[r],Er(i,k[r]));else if(r===`npm`&&z)e(r,xe,cn);else{let e=r===`npm`?cn:mn;$(M[r],e(i,k[r]))}}}return Br(k)}function Ur(e){let t=``,n=0,r=e.length;for(;n<r;){let i=e[n];if(i===`"`){for(t+=i,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(i===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
4
+ `;)n++;continue}if(i===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}t+=i,n++}return t=t.replace(/,(\s*[}\]])/g,`$1`),JSON.parse(t)}export{Ur as a,Ve as i,Be as n,Hr as r,we as t};
Binary file
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
2
  var name = "metascope";
3
- var version = "0.8.1";
3
+ var version = "0.8.3";
4
4
  //#endregion
5
5
  export { name, version };
@@ -4,13 +4,17 @@ import { nonEmptyString, stringArray } from "../utilities/schema-primitives.js";
4
4
  import { resolve } from "node:path";
5
5
  import is from "@sindresorhus/is";
6
6
  import { z } from "zod";
7
- import { PBXNativeTarget, XCRemoteSwiftPackageReference, XcodeProject } from "@bacons/xcode";
7
+ import { PBXNativeTarget, XCRemoteSwiftPackageReference, XcodeProject } from "@mshibanami-org/xcode";
8
8
  //#region src/lib/sources/xcode-project-pbxproj.ts
9
9
  /**
10
10
  * Source and parser for Xcode `.pbxproj` project files.
11
11
  *
12
- * Uses the `@bacons/xcode` package to parse the binary/ASCII plist format and
13
- * navigate the Xcode project object graph.
12
+ * Uses the `@mshibanami-org/xcode` package to parse the binary/ASCII plist
13
+ * format and navigate the Xcode project object graph.
14
+ *
15
+ * The `@mshibanami-org/xcode` dependency is a temporary fork of `@bacons/xcode`
16
+ * with security fixes, pending a new release from the original author. See:
17
+ * https://github.com/EvanBacon/xcode/issues/32
14
18
  *
15
19
  * Extracts metadata from:
16
20
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "metascope",
3
- "version": "0.8.1",
3
+ "version": "0.8.3",
4
4
  "description": "A CLI tool and TypeScript library to easily extract metadata from all kinds of software repositories.",
5
5
  "keywords": [
6
6
  "metadata",
@@ -42,8 +42,8 @@
42
42
  "dist/*"
43
43
  ],
44
44
  "dependencies": {
45
- "@bacons/xcode": "1.0.0-alpha.33",
46
- "@kitschpatrol/tokei": "^2.0.1",
45
+ "@kitschpatrol/tokei": "^2.0.2",
46
+ "@mshibanami-org/xcode": "^1.0.1",
47
47
  "@sindresorhus/is": "^8.1.0",
48
48
  "@types/mdast": "^4.0.4",
49
49
  "@types/node": "~22.17.2",
@@ -65,39 +65,39 @@
65
65
  "read-pkg": "^10.1.0",
66
66
  "read-pyproject": "^0.3.3",
67
67
  "remark-parse": "^11.0.0",
68
- "semver": "^7.8.0",
68
+ "semver": "^7.8.1",
69
69
  "simple-git": "^3.36.0",
70
70
  "smol-toml": "^1.6.1",
71
71
  "spdx-license-list": "^6.11.0",
72
72
  "string-ts": "^2.3.1",
73
- "tinyexec": "^1.1.2",
74
- "tinyglobby": "^0.2.16",
73
+ "tinyexec": "^1.2.4",
74
+ "tinyglobby": "^0.2.17",
75
75
  "unified": "^11.0.5",
76
- "updates": "^17.16.12",
77
- "web-tree-sitter": "^0.26.8",
76
+ "updates": "^17.17.3",
77
+ "web-tree-sitter": "^0.26.9",
78
78
  "yaml": "^2.9.0",
79
79
  "yargs": "^18.0.0",
80
80
  "zod": "^4.4.3"
81
81
  },
82
82
  "devDependencies": {
83
- "@arethetypeswrong/core": "^0.18.2",
83
+ "@arethetypeswrong/core": "^0.18.3",
84
84
  "@fast-csv/parse": "^5.0.7",
85
- "@kitschpatrol/shared-config": "^7.6.0",
85
+ "@kitschpatrol/shared-config": "^7.6.3",
86
86
  "@types/jsonld": "^1.5.15",
87
87
  "@types/picomatch": "^4.0.3",
88
88
  "@types/semver": "^7.7.1",
89
89
  "bumpp": "^11.1.0",
90
90
  "jsonld": "^9.0.0",
91
- "mdat-plugin-cli-help": "^3.0.0",
91
+ "mdat-plugin-cli-help": "^3.0.1",
92
92
  "msw": "2.12.14",
93
93
  "publint": "^0.3.21",
94
94
  "shx": "^0.4.0",
95
95
  "tree-sitter-python": "^0.25.0",
96
96
  "tree-sitter-ruby": "^0.23.1",
97
- "tsdown": "^0.22.0",
98
- "tsx": "^4.22.1",
97
+ "tsdown": "^0.22.1",
98
+ "tsx": "^4.22.4",
99
99
  "typescript": "~5.9.3",
100
- "vitest": "^4.1.6"
100
+ "vitest": "^4.1.8"
101
101
  },
102
102
  "engines": {
103
103
  "node": ">=22.17.0"
@@ -105,7 +105,7 @@
105
105
  "devEngines": {
106
106
  "runtime": {
107
107
  "name": "node",
108
- "version": ">=22.18.0"
108
+ "version": ">=22.22.2"
109
109
  }
110
110
  },
111
111
  "scripts": {
@@ -1 +0,0 @@
1
- import{i as e,n as t,r as n,t as r}from"./shared-l-pFmS7O.js";import{join as i}from"node:path";import{readFile as a}from"node:fs/promises";const o=[`renovate.json`,`renovate.json5`,...[`.github`,`.gitea`,`.forgejo`,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],s={y:365,year:365,years:365,mo:30,month:30,months:30,w:7,week:7,weeks:7,d:1,day:1,days:1,h:1/24,hour:1/24,hours:1/24,min:1/1440,minute:1/1440,minutes:1/1440,s:1/86400,second:1/86400,seconds:1/86400};function c(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=s[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function l(e){if(!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length)return!1;for(let t of Object.keys(e))if(t.startsWith(`match`)&&t!==`matchPackageNames`)return!1;return!0}async function u(e){for(let t of o){let n=i(e,...t.split(`/`));try{return{path:n,text:await a(n,`utf8`)}}catch{}}try{let t=await a(i(e,`package.json`),`utf8`),n=JSON.parse(t);if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:`package.json`,text:JSON.stringify(n.renovate)}}catch{}}function d(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function f(e,n){let r={};if(n.cooldown&&typeof e.minimumReleaseAge==`string`){let t=c(e.minimumReleaseAge);t!==void 0&&t>0&&(r.cooldown=t)}let i=[],a={};if(Array.isArray(e.ignoreDeps))for(let t of e.ignoreDeps)typeof t==`string`&&t&&i.push(t);if(Array.isArray(e.packageRules))for(let n of e.packageRules){if(!n||typeof n!=`object`||!l(n))continue;let e=n.matchPackageNames.filter(e=>typeof e==`string`&&!!e);if(n.enabled===!1)for(let t of e)i.push(d(t));if(typeof n.allowedVersions==`string`&&t(n.allowedVersions))for(let t of e)a[t]=n.allowedVersions}return i.length&&(r.exclude=i),Object.keys(a).length&&(r.pin=a),r}const p=n(t=>r(t,async t=>{let n=await u(t);if(!n)return null;let r;try{r=e(n.text)}catch(e){throw Error(`Unable to parse renovate config ${n.path}: ${e.message}`)}return!r||typeof r!=`object`?null:{parsed:r,path:n.path}}));async function m(e,t={}){let n=await p(e);return n?f(n.parsed,t):{}}export{m as loadRenovateConfig};
@@ -1,5 +0,0 @@
1
- import{accessSync as e,globSync as t,lstatSync as n,readFileSync as r,readdirSync as i,statSync as a,truncateSync as o,writeFileSync as s}from"node:fs";import{basename as c,dirname as l,join as u,relative as d,resolve as f}from"node:path";import{homedir as p}from"node:os";import{cwd as m,env as h,platform as g,stderr as _}from"node:process";import{styleText as v}from"node:util";import{access as y,mkdir as b,readFile as x,writeFile as S}from"node:fs/promises";import{pathToFileURL as C}from"node:url";import{createHash as w}from"node:crypto";function T(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=ie(o[1]);for(let t=0;t<r.length-1;t++){let n=e[r[t]];Array.isArray(n)?e=n[n.length-1]:((!n||typeof n!=`object`)&&(e[r[t]]={}),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let a={};e[i].push(a),n=a;continue}let s=/^\[([^[\]]+)\]$/.exec(a);if(s){n=t;for(let e of ie(s[1]))(!(e in n)||typeof n[e]!=`object`||Array.isArray(n[e]))&&(n[e]={}),n=n[e];continue}let c=se(a);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=ie(l),f=n;for(let e=0;e<d.length-1;e++)(!(d[e]in f)||typeof f[d[e]]!=`object`||Array.isArray(f[d[e]]))&&(f[d[e]]={}),f=f[d[e]];let p=d[d.length-1];if(u.startsWith(`[`)&&ae(u,`]`)<0){let t=[];E(u.slice(1),t);for(let n=e+1;n<r.length;n++){let i=D(r[n]).trim();if(!i)continue;let a=ae(i,`]`);if(a>=0){E(i.slice(0,a),t),e=n;break}E(i,t)}f[p]=t}else f[p]=ee(u)}return t}function E(e,t){let n=e.trim();if(n)for(let e of re(n)){let n=e.trim();n&&t.push(ee(n))}}function ee(e){if(e.startsWith(`[`)){let t=[],n=oe(e,`]`);return E(e.slice(1,n<0?e.length:n),t),t}return e.startsWith(`{`)?ne(e):e.startsWith(`"""`)?ce(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ce(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):te(e)}function te(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function ne(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of re(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=ee(e.slice(n+1).trim())}return t}function re(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function ie(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function D(e){let t=ae(e,`#`);return t<0?e:e.slice(0,t)}function ae(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else if(i===`"`||i===`'`)n=i;else if(i===t)return r}return-1}function oe(e,t){let n=-1,r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`){i++;continue}a===r&&(r=null)}else a===`"`||a===`'`?r=a:a===t&&(n=i)}return n}function se(e){let t=null;for(let n=0;n<e.length;n++){let r=e[n];if(t){if(r===`\\`&&t===`"`){n++;continue}r===t&&(t=null)}else if(r===`"`||r===`'`)t=r;else if(r===`=`)return n}return-1}function ce(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
2
- `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const le=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,ue=new Map;function O(e){if(typeof e!=`string`)return null;let t=ue.get(e);if(t!==void 0)return t;let n=le.exec(e.trim());if(!n)return ue.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return ue.set(e,s),s}function k(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 A(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function j(e,t){let n=A(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=k(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function M(e){return O(e)?.version??null}function N(e){return O(e)}const P=new Map,de=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function fe(e){if(typeof e!=`string`)return null;let t=P.get(e);if(t!==void 0)return t;let n=de.exec(e);if(!n)return P.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return P.set(e,r),r}function F(e,t){let n=O(e),r=O(t);if(!n||!r||n.version===r.version)return null;let i=j(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(A(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 I(e,t){let n=O(e),r=O(t);return n&&r?j(n,r):null}function pe(e,t){return(I(e,t)??-1)>0}function L(e,t){return(I(e,t)??-1)>=0}function me(e,t){return(I(e,t)??1)<0}function R(e,t){return(I(e,t)??1)!==0}function he(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=O(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function z(e,t){let n=j(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function B(e,t,n){return`${e}.${t}.${n}-0`}function ge(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${B(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${B(a,o+1,0)}`})}function _e(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${B(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${B(a,s+1,0)}`:`>=${a}.${s}.0 <${B(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${B(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${B(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${B(a+1,0,0)}`})}function ve(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${B(p+1,0,0)}`:`<${B(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function ye(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${B(n+1,0,0)}`}),e=e.replace(/v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${B(r,i+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)\.(\d+)(?=\s|$)/g,(t,n,r,i,a)=>{let o=e.substring(0,a).trimEnd();if(/[<>=]$/.test(o))return t;let s=Number(r),c=Number(i);return`${n}>=${s}.${c}.0 <${B(s,c+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)(?=\s|$)/g,(t,n,r,i)=>{let a=e.substring(0,i).trimEnd();if(/[<>=]$/.test(a))return t;let o=Number(r);return`${n}>=${o}.0.0 <${B(o+1,0,0)}`}),e)}const V=new Map;function H(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=ve(t),t=_e(t),t=ge(t),t=ye(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=he(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 be(e,t){for(let n of t)if(!z(e,n))return!1;if(e.prerelease.length>0){for(let n of t)if(n.semver.prerelease.length>0&&n.semver.major===e.major&&n.semver.minor===e.minor&&n.semver.patch===e.patch)return!0;return!1}return!0}function U(e,t){let n=O(e);if(!n)return!1;let r=H(t);if(!r)return!1;for(let e of r)if(e.length===0||be(n,e))return!0;return!1}function xe(e){return typeof e==`string`&&H(e)?e:null}const Se=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ce={"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`},we={sec:`second`,min:`minute`};function Te(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Ee(e,{now:t,noAffix:n=!1,times:r=Se,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ce,longUnits:l=!1}={}){let u=Te(e),d=t===void 0?Date.now():Te(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&&we[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function De(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/),i=e?.replace(/\[.*?\]$/,``);i&&typeof r==`string`&&/^[0-9.a-z]+$/.test(r)&&t.push({name:i,version:r})}return t}const Oe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],ke=[`node`,`deno`,`bun`],Ae=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],je=[`deps`,`indirect`,`replace`,`tool`],Me=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function Ne(e,t){if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function Pe(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Fe(){let e=new Date,t=String(e.getMonth()+1).padStart(2,`0`),n=String(e.getDate()).padStart(2,`0`),r=String(e.getHours()).padStart(2,`0`),i=String(e.getMinutes()).padStart(2,`0`),a=String(e.getSeconds()).padStart(2,`0`),o=String(e.getMilliseconds()).padStart(3,`0`);return`${e.getFullYear()}-${t}-${n} ${r}:${i}:${a}.${o}`}const Ie={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Le(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ie[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}async function 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,`\\$&`);async function Re(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=l(n);if(r===n)return null;n=r}}function ze(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const Be=u(g===`win32`?h.LOCALAPPDATA||u(p(),`AppData`,`Local`):h.XDG_CACHE_HOME||u(p(),`.cache`),`updates`);let Ve=null;function He(e){return w(`sha256`).update(e).digest(`hex`).substring(0,16)}async function Ue(e){try{let t=await x(u(Be,`${He(e)}.cache`),`utf8`),n=t.indexOf(`
3
- `);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 We(e,t,n){try{await(Ve??=b(Be,{recursive:!0})),await S(u(Be,`${He(e)}.cache`),`${t}\n${n}`)}catch{}}var Ge=`17.16.12`;function K(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/(24*3600*1e3)>=t}const Ke=Ge,q=e=>e[0]===`v`?e.substring(1):e,qe=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Je(e,t){return{headers:{"user-agent":`updates/${Ke}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function Ye(e,t){try{return await fetch(e,t)}catch(t){throw Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`)}}async function Xe(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}async function Ze(e,t,n={}){let r=t.noCache?null:await Ue(e),i=n.headers,a=r?{...i,"if-none-match":r.etag}:i,o=await t.doFetch(e,{...n,headers:a,signal:AbortSignal.timeout(t.fetchTimeout)});if(!o)return{res:void 0};if(o.status===304&&r)return{body:r.body,res:o};if(!o.ok)return{res:o};let s=await Xe(o),c=o.headers?.get?.(`etag`);return c&&!t.noCache&&await We(e,c,s),{body:s,res:o}}async function Qe(e,t,n={}){if(!t.noCache){let t=await Ue(e);if(t)return{body:t.body}}let r=await t.doFetch(e,{...n,signal:AbortSignal.timeout(t.fetchTimeout)});if(!r)return{res:void 0};if(!r.ok)return{res:r};let i=await Xe(r);return t.noCache||await We(e,`immutable`,i),{body:i,res:r}}function $e(e){return(N(e)?.prerelease.length??0)>0}function et(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function tt(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=J(e),s=J(t);if(!o||!s)return!0;let c=et(e)||$e(e),l=$e(t);return c&&!l?pe(s,o)||n:!l&&me(s,o)?r===!0||a(i,r):!0}function J(e){return fe(e)?.version??``}function nt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=J(n);if(!d)return d;i=et(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let f=u??(t=>e?.time?.[t]),p=0,m=d;for(let n of t){let t=N(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let u=t.version;if(s&&!U(u,s)||!K(f(n),c,l))continue;let d=F(m,u);if(!(!d||!r.has(d)))if(o||!(`time`in e))(L(`${t.major}.${t.minor}.${t.patch}`,m)||s&&!U(m,s))&&(m=u);else{let t=Date.parse(e.time[n]);t>=0&&t>p&&(m=u,p=t)}}return m||null}function rt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l},{allowDowngrade:u,matchesAny:d,isGoPseudoVersion:f}){if(n===`*`||n.includes(`||`))return null;let p=[],m;if(t===`pypi`)p=Object.keys(e.releases).filter(e=>M(e)),m=t=>e.releases?.[t]?.[0]?.upload_time_iso_8601;else if(t===`npm`||t===`cargo`)p=Object.keys(e.versions).filter(e=>M(e)),m=t=>e.time?.[t];else if(t===`go`){let t=J(n);if(!t)return null;let r=a||et(n),p=e=>$e(e)&&(!r||i),m={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d},h=e.old||n,g=J(e.new);if(g&&!f(e.new)&&!p(e.new)){let n=F(t,g);if(n&&o.has(n)&&tt(h,e.new,m)&&K(e.Time,c,l)&&(!s||U(g,s)))return e.new}let _=J(e.sameMajorNew);if(_&&!f(e.sameMajorNew)&&!p(e.sameMajorNew)){let n=F(t,_);if(n&&o.has(n)&&tt(h,e.sameMajorNew,m)&&K(e.sameMajorTime,c,l)&&(!s||U(_,s)))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}if(c&&l&&e.olderEligible&&!p(e.olderEligible.version)){let n=J(e.olderEligible.version);if(n){let r=F(t,n);if(r&&o.has(r)&&tt(h,e.olderEligible.version,m)&&(!s||U(n,s)))return e.Time=e.olderEligible.time,delete e.newPath,e.olderEligible.version}}return null}let h=nt(e,p,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:m});if(!h)return null;if(r)return h;{let r=``,f=``;t===`pypi`?(f=e.info.version,r=J(e.info.version)):r=e[`dist-tags`].latest;let p=J(n),m=et(n),g=$e(h),_=$e(r),v={useRel:i,allowDowngrade:u,name:e.name,matchesAny:d};if(!i&&a||m&&g)return h;if(m&&!g)return tt(n,h,v)?h:null;let y=F(p,r);return y&&y!==`prerelease`&&!o.has(y.replace(/^pre/,``))||i&&$e(r)?h:me(r,p)&&!_?tt(n,r,v)?r:null:!m&&_&&!a||s&&!U(r,s)||c&&l&&!K(t===`pypi`?e.releases?.[f||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?h:f||r}}const it=new Map;if(h.UPDATES_FORGE_TOKENS)for(let e of h.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&it.set(e.substring(0,t),e.substring(t+1))}const at=Array.from(new Set([`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`].map(e=>h[e]).filter(Boolean)));let ot;function st(){return at.length?Promise.resolve(at):ot??=(async()=>{try{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]),{stdout:n}=await t(e)(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),r=n.trim();return r?[r]:at}catch{return at}})()}const ct=new Map;async function lt(e){try{let t=it.get(new URL(e).hostname);if(t)return[t]}catch{}return st()}async function ut(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await(r?lt(e):st()),a=AbortSignal.timeout(t.fetchTimeout),o=e=>{let t=Je(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t.signal=a,t};if(!i.length)return t.doFetch(e,o());let s=r?ct.get(r):void 0;if(s)return t.doFetch(e,o(s));for(let n of i){let i=await t.doFetch(e,o(n));if(i.status!==401&&i.status!==403)return r&&ct.set(r,n),i}return t.doFetch(e,o())}function dt(e,t,n){let r=q(t);if(!M(r))return null;if(n){let n=t,i=q(t);for(let t of e){let e=q(t);M(e)&&(!n||pe(e,i))&&(n=t,i=e)}if(R(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=q(t);if(!M(n))return null;if(R(r,n))return t}return null}function ft(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(e)?`https://github.com/${e}`:e}const pt=/^[0-9a-f]{7,}$/i;function mt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function ht(e,t){let n=t.noCache?null:await Ue(e),r=await ut(e,t,n?{"if-none-match":n.etag}:void 0);if(r?.status===304&&n)try{let e=JSON.parse(n.body);return{tags:e.tags||[],link:e.link||``}}catch{return null}if(!r?.ok)return null;let i=mt(await r.json()),a=r.headers.get(`link`)||``,o=r.headers.get(`etag`);return o&&!t.noCache&&await We(e,o,JSON.stringify({link:a,tags:i})),{tags:i,link:a}}async function gt(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await ht(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Number(new URL(n[1]).searchParams.get(`page`));if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>ht(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function _t(e,t,n,r){throw e?.status&&e?.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function vt(e,t,n=``){let r=t.startsWith(`v`),i=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 yt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function bt({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`])if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=ft(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${yt(a)}/${e.directory}`)),a||t||``)}function xt(e,t){return RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function St(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):xt(e,n):e instanceof RegExp?e:xt(e,n)}function Ct(e){return new Set(e.map(e=>St(e,!1,!0)))}function wt(e){if(typeof e==`boolean`)return e;if(!Array.isArray(e)||!e.length)return!1;let t=new Set;for(let n of e)t.add(St(n,!1,!1));return t}async function Tt(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await y(r)}catch{return null}try{return{configDir:e,filename:n,default:(await import(C(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const Et=ze(e=>Re(e,Tt));async function Dt(e){let t=await Et(e),n=t?.default??{},{loadRenovateConfig:r}=await import(`./renovate-DY3Fbjs4.js`);return{...await r(t?.configDir??e,n.inherit?.renovate),...n}}function Ot(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 kt(e){try{return Ot(r(e,`utf-8`))}catch{return}}function At(e){let t=m();for(;;){let n=u(t,e);try{return a(n),n}catch{}let r=l(t);if(r===t)break;t=r}}function jt(e){let t={},n=e.toLowerCase();for(let[r,i]of Object.entries(h))if(r.toLowerCase().startsWith(n)){let n=r.substring(e.length).split(`__`).filter(Boolean);if(n.length===0)continue;let a=t;for(let e=0;e<n.length;e++){let t=n[e];if(e===n.length-1)a[t]=i;else if(a[t]===void 0&&(a[t]={}),typeof a[t]==`object`)a=a[t];else break}}return t}function Mt(e,t={}){let n=g===`win32`,r=n?h.USERPROFILE:h.HOME,i=[{...t}],a=[];function o(e){if(!e||a.includes(e))return;let t=kt(e);t&&(i.push(t),a.push(e))}n||(o(u(`/etc`,e,`config`)),o(u(`/etc`,`${e}rc`))),r&&(o(u(r,`.config`,e,`config`)),o(u(r,`.config`,e)),o(u(r,`.${e}`,`config`)),o(u(r,`.${e}rc`))),o(At(`.${e}rc`));let s=jt(`${e}_`);return s.config&&o(s.config),Object.assign({},...i,s,a.length?{configs:a,config:a[a.length-1]}:void 0)}const Nt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Pt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Ft=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,It=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,Lt=`https://registry.npmjs.org`;let Y=null;const Rt=new Map;function zt(){return Y??=Mt(`npm`,{registry:Lt})}function Bt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,t)=>h[t]||``)}function Vt(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Bt(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Bt(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:Bt(o),type:`Basic`}}function Ht(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Vt(`//${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:Bt(i),type:`Basic`}}function Ut(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Wt(e,t){Y||=zt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Rt.get(r);if(i)return i;let a=()=>({auth:Ht(t,Y),registry:t}),o;if(!e.startsWith(`@`))o=a();else{let e=qe(Ut(n,Y));if(e!==t)try{let t=Ht(e,Y);o=t?.token?{auth:t,registry:e}:a()}catch{o=a()}else o=a()}return Rt.set(r,o),o}function Gt(e,t,n){Y||=zt();let r=qe((typeof n.registry==`string`?n.registry:!1)||t.registry||Y.registry||Lt);return{...Wt(e,r),originalRegistry:r}}function Kt(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const qt=new Map,Jt=new Map,Yt=new Map;async function Xt(e,t,n,r,i){let{auth:a,registry:o}=Gt(e,n,r),s=Kt(o,t===`resolutions`?c(e):e),l=qt.get(s);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 Ue(s);r&&(n[`if-none-match`]=r.etag);let a=await i.doFetch(s,{signal:AbortSignal.timeout(i.fetchTimeout),...t});if(a?.status===304&&r)return JSON.parse(r.body);if(a?.ok){let e=await a.text(),t=a.headers.get(`etag`);return t&&!i.noCache&&await We(s,t,e),JSON.parse(e)}_t(a,s,e,o)})().catch(e=>{throw qt.delete(s),e}),qt.set(s,l)}return[await l,t,o,e]}async function Zt(e,t,n,r,i){let{auth:a,registry:o}=Gt(e,n,r),s=Kt(o,e,t),c=Jt.get(s);if(c)return c;let l=(async()=>{try{let n=Je(a?.type,a?.token),r=await Qe(s,i,n);if(!(`body`in r))return{};let c=JSON.parse(r.body),l=``,u=c?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}if(!l){let r=Kt(o,e),a=Yt.get(r);a||(a=i.doFetch(r,{...n,signal:AbortSignal.timeout(i.fetchTimeout)}).then(e=>e?.ok?e.json():null).catch(()=>(Yt.delete(r),null)),Yt.set(r,a)),l=(await a)?.time?.[t]||``}return{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})();return Jt.set(s,l),l}function Qt(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function $t(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function en(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 tn(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await Ze(o,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in s){let r=JSON.parse(s.body),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}_t(s.res,o,e,`JSR`)}function nn(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 rn(e,t,n){let r=e.replace(It,t);if(n&&n!==e&&/^[\^~]/.test(r)){let e=n.substring(1).split(`.`),t=r.substring(1).split(`.`);e.length!==t.length&&(r=`${r[0]}${t.slice(0,e.length).join(`.`)}`)}if(n&&n!==e&&r.startsWith(`>=`)){let e=/^>=\s/.test(n)?`>= `:`>=`,t=n.replace(/^>=\s*/,``),i=r.replace(/^>=\s*/,``),a=t.split(`.`),o=i.split(`.`);a.length!==o.length&&(r=`${e}${o.slice(0,a.length).join(`.`)}`)}return r}function X(e){let t=e.match(Ft);return t?.length===1?e.replace(Ft,J(t[0])):e}async function an(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=n.noCache?null:await Ue(r),t=await ut(r,n,e?{"if-none-match":e.etag}:void 0);if(t?.status===304&&e){let{sha:t,commit:n}=JSON.parse(e.body)[0];return{hash:t,commit:n}}if(!t?.ok)return{hash:``,commit:{}};let i=await t.text(),a=t.headers.get(`etag`);a&&!n.noCache&&await We(r,a,i);let{sha:o,commit:s}=JSON.parse(i)[0];return{hash:o,commit:s}}catch{return{hash:``,commit:{}}}}async function on(e,t,n){return(await gt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function sn(e,t,n,r){let i=t.old.replace(Nt,``),[,a,o,s]=Pt.exec(i)||[];if(!a||!o||!s)return null;if(pt.test(s)){let{hash:n,commit:i}=await an(a,o,r);if(!n)return null;let c=i?.committer?.date??i?.author?.date,l=n.substring(0,s.length);if(s!==l)return{key:e,newRange:t.old.replace(s,l),user:a,repo:o,oldRef:s,newRef:l,newDate:c}}else{let t=dt(await on(a,o,r),s,n);if(t)return{key:e,newRange:t,user:a,repo:o,oldRef:s,newRef:t}}return null}async function cn(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await Ze(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}});if(`body`in i)return[JSON.parse(i.body),t,null,e];_t(i.res,r,e,n.pypiApiUrl)}function ln(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`("${G(a)} *[<>=~]+ *)${G(o)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}let un;async function dn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function fn(){return un??=dn()}function pn(){let e=h.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(h.GONOPROXY||h.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()}`)}const _n=/\/v(\d+)$/;function vn(e){let t=_n.exec(e);return t?Number.parseInt(t[1]):1}function yn(e,t){let n=e.replace(_n,``);return t<=1?n:`${n}/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:q(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:q(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,t,n,r,i){let a=vn(e),o=async(e,t)=>{try{let{stdout:n}=await(await fn())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:t,cwd:r,env:h}),i=JSON.parse(n);return{Version:i.Version,Time:i.Time||``,path:e}}catch{return null}},s=xn(e,t,n),[c,l]=await Promise.all([o(e,i.fetchTimeout),s?null:o(yn(e,a+1),i.goProbeTimeout)]);return c?Tn(e,t,n,await wn(a,l,t=>o(yn(e,t),i.goProbeTimeout)),c.Version,c.Time):Cn(e,n,t)}async function On(e,t,n,r,i,a){if(hn(e,a))return Dn(e,t,n,r,i);let o=gn(e),s=vn(e),c=async t=>{let n=yn(e,t);return i.doFetch(`${i.goProxyUrl}/${gn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=xn(e,t,n),[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return 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,n,i){let a=Object.entries(n);if(!a.length)return;let o=new Map(a),s=a.map(([e])=>e).sort((e,t)=>t.length-e.length),c=RegExp(`"(${s.map(G).join(`|`)})(/|")`,`g`),l=t(`**/*.go`,{cwd:e});for(let t of l){let n=u(e,t),a=r(n,`utf8`),s=a.replace(c,(e,t,n)=>`"${o.get(t)}${n}`);s!==a&&i(n,s)}}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]=r;return n.pathname=`/${e}/${i}/${yt(t)}/${a.join(`/`)}`,n.toString()}else return t}function Pn(e){return _n.test(e)?l(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:pt.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){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Ue(a);if(e)return e.body}try{let e=await ut(a,i);if(!e?.ok)return``;let t=await e.json(),n=t?.committer?.date||t?.author?.date||``;return n&&!i.noCache&&await We(a,`immutable`,n),n}catch{return``}}function Bn(e,t){return vt(N(q(e))?.version??q(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}const Hn=[`.github`,`.gitea`,`.forgejo`];function Un(e){return RegExp(`(?:${Hn.map(G).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`).test(e.replace(/\\/g,`/`))}function Wn(e){let t=new Set;try{for(let n of i(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of i(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const Gn=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Kn=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,qn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Jn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Yn=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function Xn(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(`/`),repo:t[t.length-1]}}function Zn(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||!Gn.test(r)))return null;let{registry:i,namespace:a,repo:o}=Xn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Qn(e){let t=Gn.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function $n(e,t){let n=Qn(t);return n?vt(e,n.version,n.suffix):t}function er(e,t){let n=[];for(let r of e.matchAll(t)){let e=Zn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function tr(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o={headers:{"accept-encoding":`gzip, deflate, br`}},s=async e=>{try{let t=await Ze(a(e),n,o);return`body`in t?JSON.parse(t.body):null}catch{return null}},c=await s(1);if(!c)return r;for(let e of c.results||[])r[e.name]=e.tag_last_pushed||e.last_updated||``;let l=Math.min(Math.ceil((c.count||0)/100),10);if(l<2)return r;let u=await Promise.all(Array.from({length:l-1},(e,t)=>s(t+2)));for(let e of u)if(e)for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function nr(e,t,n){let{registry:r,namespace:i,repo:a}=Xn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await tr(i,a,n),name:e},t,null,e]}function rr(e,t,n,r,i,a){let o=Qn(t);if(!o)return null;let s=fe(q(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=Qn(t);if(!e||e.suffix!==o.suffix)continue;let d=fe(q(e.version))?.version;if(!d||a&&!U(d,a)||!K(s,r,i))continue;let f=F(c,d);!f||!n.has(f)||L(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=$n(c,t);return d===t?null:{newTag:d,date:u}}function ir(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(G(t),G(a)),`$1${t}:${i.new}`)}return r}function ar(e,t){return ir(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function or(e,t){return ir(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function sr(e,t){return ir(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const cr=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function lr(e){return/^docker-.+\.ya?ml$/.test(e)}function ur(e){return/^Dockerfile(\..+)?$/.test(e)}function dr(e){return ur(e)||lr(e)}function fr(e){return ur(e)?Kn:qn}function pr(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const mr=new Map;async function hr(e,t,n){let r=`${qe(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=n.noCache?void 0:mr.get(r);return i||(i=Ze(r,n,Je()).then(t=>{`body`in t||_t(t.res,r,e,n.cratesIoUrl);let i;try{i=JSON.parse(t.body)}catch{throw Error(`Invalid JSON from ${r}`)}let a=(i.versions||[]).filter(e=>!e.yanked),o={},s={};for(let e of a)e.num&&(o[e.num]={},s[e.num]=e.created_at||``);return{name:e,versions:o,time:s,"dist-tags":{latest:a[0]?.num??``}}}).catch(e=>{throw mr.delete(r),e}),mr.set(r,i)),[await i,t,null,e]}function gr(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(!M(a))continue;let o=t.get(i);o||t.set(i,o=[]),o.push(a)}return t}const _r=/^\d/;function vr(e,t){return _r.test(e)?rn(X(`^${e}`),t,`^${e}`).replace(/^\^/,``):rn(X(e),t,e)}function yr(e,t,n){let r=e.get(t);if(!r)return;let i=_r.test(n)?`^${n}`:n,a;for(let e of r)U(e,i)&&(!a||pe(e,a))&&(a=e);return a}const br=Me.map(G).join(`|`);function xr(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(`(\\[(?:${br})\\.${o}\\][^\\[]*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function Sr(e){return e.split(`|`)[0]}function Cr(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Sr(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const wr=/[*?{[]/;async function Tr(e,n,r,i=32){let a=new Set,o=[];for(let i of e){let e=wr.test(i)?t(i,{cwd:n}).map(e=>f(u(n,e))):[f(u(n,i))];for(let t of e){let e=u(t,r);if(a.has(e))continue;a.add(e);let i=d(n,t);o.push({absPath:e,memberPath:`./${i.replace(/\\/g,`/`)}`})}}return(await W(o,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await x(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:i})).filter(e=>e!==null)}function Er(e){let t=[],n=e.split(`
4
- `),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 Dr={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Or=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),kr=(e,t)=>typeof e==`string`?qe(e):typeof t==`function`?t():t;function Ar(t,n){let r=new Map,i=new Set(t),a=n;for(;i.size;){for(let t of i){let n=u(a,t);try{e(n),r.set(t,n),i.delete(t)}catch{}}let t=l(a);if(t===a)break;a=t}return r}async function jr(e,t){let n=await W(e,async e=>{try{return[e,await x(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function Z(e,t){t&&(e.date=t,e.age=Ee(t,{noAffix:!0}))}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(`${Fe()} ${e}`)}function Q(e,t,n,r,i){if(i===`engines`&&ke.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?Pn(e):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Pr(e){let t=new Set;if(e)for(let r of e){let e;try{e=n(r)}catch(e){throw Error(`Unable to open ${r}: ${e.message}`)}if(e?.isFile())t.add(f(r));else if(e?.isDirectory()){for(let e of Object.keys(Dr)){let i=u(r,e),a=null;try{a=n(i)}catch{}a?.isFile()&&t.add(f(i))}try{for(let e of i(r,{withFileTypes:!0}))e.isFile()&&dr(e.name)&&t.add(f(u(r,e.name)))}catch{}let e=f(r).replace(/\\/g,`/`),a=Hn.some(t=>e.endsWith(`${t}/workflows`)),o=!a&&Hn.some(t=>e.endsWith(t)),s;s=a?[l(e)]:o?[e]:Hn.map(t=>u(e,t));for(let e of s)for(let n of Wn(e))t.add(n)}else throw Error(`${r} is neither a file nor directory`)}else{let e=new Set(Hn),n=[...Object.keys(Dr),...cr,...Hn];for(let[r,i]of Ar(n,m()))if(e.has(r))for(let e of Wn(i))t.add(e);else t.add(f(i));try{for(let e of i(m(),{withFileTypes:!0}))e.isFile()&&dr(e.name)&&!cr.includes(e.name)&&t.add(f(u(m(),e.name)))}catch{}}for(let e of t)c(e)===`go.work`&&t.delete(u(l(e),`go.mod`));for(let e of t)c(e)===`pnpm-workspace.yaml`&&t.delete(u(l(e),`package.json`));return t}function $(e,t){g===`win32`&&o(e,0),s(e,t,g===`win32`?{flag:`r+`}:void 0)}function Fr(e){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!Qt(i.oldOrig)&&(i.old=n===`go`?Fn(i.oldOrig):i.oldOrig),n===`go`&&(i.new=Fn(i.new)),n===`actions`&&(i.old=q(i.old),i.new=q(i.new)),delete i.oldPrint,delete i.newPrint,delete i.oldOrig,delete i.date;let[e,a]=r.split(`\0`),o=t.results[n]??={};(o[e]??={})[a]=i}return t}let Ir=!1;async function Lr(e={}){if(!Ir){let{enableDnsCache:e}=await import(`./dns-CUigd8AG.js`);e(),Ir=!0}let t={...e},n=t.sockets??25,r=t.timeout??0,i=kr(e.forgeapi,`https://api.github.com`),a=kr(e.pypiapi,`https://pypi.org`),o=kr(e.jsrapi,`https://jsr.io`),s=kr(e.goproxy,pn),d=kr(e.cargoapi,`https://crates.io`),p=kr(e.dockerapi,`https://hub.docker.com`),h=mn(),g=t.color===!0||t.noColor!==!0&&_.isTTY,y=e=>g?t=>v(e,String(t)):String,b=y(`magenta`),S=y(`green`),C=y(`red`),w={fetchTimeout:r||5e3,goProbeTimeout:r?r/2:2500,forgeApiUrl:i,pypiApiUrl:a,jsrApiUrl:o,goProxyUrl:s,cratesIoUrl:d,dockerApiUrl:p,doFetch:async(e,n)=>{t.verbose&&Nr(`${b(n?.method||`GET`)} ${e}`);let r=await Ye(e,n);return t.verbose&&Nr(`${r.ok?S(r.status):C(r.status)} ${e}`),r},noCache:!!t.noCache},E=wt(t.greatest),ee=wt(t.prerelease),te=wt(t.release),ne=wt(t.patch),re=wt(t.minor),ie=wt(t.allowDowngrade),D=t.modes?.length?new Set(t.modes):Or;D.has(`actions`)&&st();function ae(e){return ne===!0||Ne(e,ne)?new Set([`patch`]):re===!0||Ne(e,re)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}let oe=new Map;function se(e){let t=oe.get(e);return t||(t={useGreatest:typeof E==`boolean`?E:Ne(e,E),usePre:typeof ee==`boolean`?ee:Ne(e,ee),useRel:typeof te==`boolean`?te:Ne(e,te),semvers:ae(e)},oe.set(e,t)),t}let ce=Ct(t.include??[]),le=Ct(t.exclude??[]),ue=t.pin??{},O={},k={},A={},j={},N=Date.now(),P=t.cooldown?Le(String(t.cooldown)):0,de=m(),fe=e=>e.replace(`${de}/`,``).replace(`${de}\\`,``),F=0,I=(e,t,n,r,i,a)=>{O[e][`${t}${n}${r}`]={old:i,oldOrig:a}},pe=Pr(t.files?.length?new Set(t.files):!1),L=await jr(Array.from(pe).filter(e=>{if(Un(e))return D.has(`actions`)||D.has(`docker`);let t=c(e);if(dr(t))return D.has(`docker`);let n=Dr[t];return!!n&&D.has(n)}),n),me={},R={},he=[],z=null,B=[],ge=!1,_e=[],ve=!1,ye=[],V=[],H={};async function be(e){let n=await Dt(e);return{modeConfig:n,modeInclude:n.include?.length?Ct([...t.include??[],...n.include]):ce,modeExclude:n.exclude?.length?Ct([...t.exclude??[],...n.exclude]):le,pin:{...n.pin,...ue}}}function U(e,n){return t.types?.length?t.types:n?.types?.length?n.types:e===`npm`?Oe:e===`pypi`?Ae:e===`go`?t.indirect?je:je.filter(e=>e!==`indirect`):e===`cargo`?Me:[]}function Se(e,t,n,r){O.docker??={};for(let i of n)for(let{ref:n}of er(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(O.docker[e])continue;let i=Qn(n.tag);i&&(O.docker[e]={old:i.version,oldOrig:n.tag},V.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin}))}}async function Ce(e){let n=await Dt(e);return{include:n.include?.length?Ct([...t.include??[],...n.include]):ce,exclude:n.exclude?.length?Ct([...t.exclude??[],...n.exclude]):le,pin:n.pin??{}}}for(let e of pe){if(Un(e)){let t=D.has(`actions`),n=D.has(`docker`);if(!t&&!n)continue;let r=L.get(e),a=fe(e),o=await Ce(l(e));if(me[a]={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`,o.include,o.exclude,`actions`))continue;let e=`${a}${t.name}`;O.actions[e]||(O.actions[e]={old:t.ref},ye.push({...t,key:e,apiUrl:Rn(t.host,i),filePin:o.pin}))}}n&&(R[a]={absPath:e,content:r,fileType:`workflow`},Se(r,a,[qn,Jn,Yn],o));continue}let t=c(e);if(dr(t)){if(!D.has(`docker`))continue;let n=L.get(e),r=fe(e),i=ur(t)?`dockerfile`:`compose`,a=await Ce(l(e));R[r]={absPath:e,content:n,fileType:i},Se(n,r,[fr(t)],a);continue}let r=Dr[t];if(!D.has(r))continue;if(t===`go.work`){O[r]??={};let t=l(f(e)),i=L.get(e);z={file:e,content:i};let a=Mn(i),[o,s]=await Promise.all([be(t),W(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await x(n,`utf8`)}}catch{return null}},{concurrency:n})]),{modeConfig:c,modeInclude:d,modeExclude:p,pin:m}=o,h=U(r,c);j[r]=e,H[r]={modeConfig:c,projectDir:t,pin:m};for(let e of s){if(!e)continue;let{usePath:t,modPath:n,content:i}=e,a=En(i),o=l(n);he.push({absPath:n,content:i,projectDir:o,usePath:t});let s=t===`.`?``:`|${t}`;for(let e of h){let t=a[e]||{};for(let[n,i]of Object.entries(t))Q(n,r,d,p,e)&&I(r,e,s,n,Fn(i),q(i))}}for(let[e,t]of Object.entries(a.replace))Q(e,r,d,p,`replace`)&&I(r,`replace`,``,e,Fn(t),q(t));F+=Object.keys(O[r]).length;continue}if(t===`go.mod`&&z||t===`package.json`&&ve)continue;if(t===`Cargo.toml`){O[r]??={};let t=L.get(e),i=T(t),a=l(f(e));j[r]=e;let o=Ar([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,c=Array.isArray(s)&&s.length,[u,d,p]=await Promise.all([be(a),o?x(o,`utf8`):Promise.resolve(null),c?Tr(s,a,`Cargo.toml`,n):Promise.resolve([])]),{modeConfig:m,modeInclude:h,modeExclude:g,pin:_}=u,v=U(r,m);H[r]={modeConfig:m,projectDir:a,pin:_};let y=d?gr(d):new Map,b=(e,t)=>{for(let n of v){let i=Pe(e,n)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if(Q(e,r,h,g,n))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=String(a.version);xe(i)&&I(r,n,t,e,yr(y,e,i)??X(i),i)}else typeof a==`string`&&xe(a)&&I(r,n,t,e,yr(y,e,a)??X(a),a)}}};if(c){ge=!0,b(i,``),B.push({absPath:f(e),content:t,memberPath:`.`});for(let e of p){B.push(e);try{b(T(e.content),`|${e.memberPath}`)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}}}else A[r]=t,b(i,``);F+=Object.keys(O[r]).length;continue}if(t===`pnpm-workspace.yaml`){O[r]??={};let t=l(f(e)),i=L.get(e);ve=!0;let a=Er(i),o=u(t,`package.json`),[s,c,d]=await Promise.all([be(t),x(o,`utf8`).catch(()=>null),Tr(a,t,`package.json`,n)]),{modeConfig:p,modeInclude:m,modeExclude:h,pin:g}=s,_=U(r,p);j[r]=e,H[r]={modeConfig:p,projectDir:t,pin:g};let v=(e,t)=>{for(let n of _){let i=e[n]||{};if(typeof i==`string`){let[e,a]=i.split(`@`);Q(e,r,m,h,n)&&I(r,n,t,e,X(a),a)}else if(typeof i==`object`&&!Array.isArray(i))for(let[e,a]of Object.entries(i))Q(e,r,m,h,n)&&(Qt(a)?I(r,n,t,e,en(a,e).version,a):xe(a)?I(r,n,t,e,X(a),a):$t(a)?I(r,n,t,e,`0.0.0`,a):k[`${n}${t}${e}`]={old:a})}};if(c!==null){let e;try{e=JSON.parse(c)}catch(e){throw Error(`Error parsing ${o}: ${e.message}`)}_e.push({absPath:f(o),content:c,memberPath:`.`}),v(e,``)}for(let e of d){let t;try{t=JSON.parse(e.content)}catch(t){throw Error(`Error parsing ${e.absPath}: ${t.message}`)}_e.push(e),v(t,`|${e.memberPath}`)}F+=Object.keys(O[r]).length+Object.keys(k).length;continue}j[r]=e,O[r]??={};let a=l(f(e)),{modeConfig:o,modeInclude:s,modeExclude:d,pin:p}=await be(a),m=U(r,o),h={};A[r]=L.get(e);try{if(r===`npm`)h=JSON.parse(A[r]);else if(r===`pypi`)h=T(A[r]);else if(r===`go`){let e=En(A[r]);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=r===`npm`||r===`go`?h[e]||{}:Pe(h,e)||{},Array.isArray(t)&&r===`pypi`)for(let{name:n,version:i}of De(t))Q(n,r,s,d,e)&&I(r,e,``,n,X(i),i);else if(typeof t==`string`){let[n,i]=t.split(`@`);Q(n,r,s,d,e)&&I(r,e,``,n,X(i),i)}else for(let[n,i]of Object.entries(t))Q(n,r,s,d,e)&&(r===`npm`&&Qt(i)?I(r,e,``,n,en(i,n).version,i):r!==`go`&&xe(i)?I(r,e,``,n,X(i),i):r===`npm`&&$t(i)?I(r,e,``,n,`0.0.0`,i):r===`npm`?k[`${e}${n}`]={old:i}:r===`go`&&I(r,e,``,n,Fn(i),q(i)))}F+=Object.keys(O[r]).length+Object.keys(k).length,H[r]={modeConfig:o,projectDir:a,pin:p}}if(O.actions&&(F+=Object.keys(O.actions).length),O.docker&&(F+=Object.keys(O.docker).length),F===0)return{results:{},message:`No dependencies found, nothing to do.`};let we=[],Te={registry:t.registry};for(let e of Object.keys(H)){let r=!!O[e]&&Object.keys(O[e]).length>0,i=e===`npm`&&Object.keys(k).length>0;if(!r&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=H[e];we.push((async()=>{let r=new Map,i=t.cooldown??a.cooldown,c=i?Le(String(i)):0,l=e=>{if(c)for(let[t,{date:n}]of Object.entries(e))n&&!K(n,c,N)&&delete e[t]};if(await W(Object.keys(O[e]),async t=>{let[n,i]=t.split(`\0`),l=Sr(n),u=O[e][t],d=null;if(e===`npm`){let{oldOrig:n}=u;if(n&&Qt(n))d=await tn(i,l,w);else if(n&&$t(n))try{d=await Xt(i,l,a,Te,w)}catch{delete O[e][t];return}else d=await Xt(i,l,a,Te,w)}else d=e===`go`?await On(i,l,u.oldOrig||u.old,o,w,h):e===`cargo`?await hr(i,l,w):await cn(i,l,w);if(!d)return;let[f,,p]=d;if(f?.error)throw Error(f.error);let{useGreatest:m,usePre:g,useRel:_,semvers:v}=se(f.name),y=u.old,b=u.oldOrig,x=s[i],S=rt(f,{usePre:g,useRel:_,useGreatest:m,semvers:v,range:y,mode:e,pinnedRange:x,cooldownDays:c||void 0,now:c?N:void 0},{allowDowngrade:ie,matchesAny:Ne,isGoPseudoVersion:Sn}),C=``;if([`go`,`pypi`].includes(e)&&S)C=S;else if(e===`cargo`&&S&&b)C=vr(b,S);else if(S)if(b&&$t(b))C=String(zt()[`save-exact`])===`true`?S:`^${S}`;else if(b&&Qt(b)){let e=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/.exec(b);e?C=`${e[1]}${S}`:b.startsWith(`jsr:`)&&(C=`jsr:${S}`)}else C=rn(y,S,b);if(!S||S===y||b&&b===C){delete O[e][t];return}let T=``;e===`pypi`&&f.releases?.[S]?.[0]?.upload_time_iso_8601?T=f.releases[S][0].upload_time_iso_8601:e===`go`&&f.Time?T=f.Time:e===`cargo`&&f.time?.[S]&&(T=f.time[S]),u.new=C,b&&Qt(b)&&(u.newPrint=S),e===`npm`?r.set(t,{name:i,promise:Zt(f.name,S,a,Te,w)}):e===`pypi`?u.info=bt(f,p,f.info.name):e===`go`?u.info=Nn(f.newPath||i):e===`cargo`&&(u.info=`https://crates.io/crates/${i}`),T&&Z(u,T)},{concurrency:n}),await Promise.all(Array.from(r,async([t,{name:n,promise:r}])=>{let i=await r,a=O[e][t];a&&(a.info=bt({repository:i.repository,homepage:i.homepage},null,n),i.date&&Z(a,i.date))})),e===`npm`&&Object.keys(k).length){let t=(await W(Object.entries(k),([e,t])=>{let n=e.split(`\0`)[1];return sn(e,t,se(n).useGreatest,w)},{concurrency:n})).filter(e=>e!==null);for(let n of t){let{key:t,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=n;O[e][t]={old:k[t].old,new:r,oldPrint:pt.test(o)?o.substring(0,7):o,newPrint:pt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Z(O[e][t],c)}}l(O[e])})())}if(ye.length&&we.push((async()=>{let e=new Map;for(let t of ye){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:r,infos:i})=>{let a=await gt(e,t,r,w),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=q(e.name);M(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=new Map;async function d(n){if(u.has(n))return u.get(n);let i=await zn(e,t,r,n,w);return u.set(n,i),i}async function f(e){let t=new Set;for(let n=0;n<20;n++){let n=nt({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!P)return{version:n,tag:r,commitSha:i,date:``};let a=i?await d(i):``;if(K(a,P,N))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await W(i,async({key:e,host:n,ref:i,name:a,isHash:o,filePin:s})=>{let u=O.actions[e],p=`https://${n||`github.com`}/${t}/${r}`,m=ue[a]??s[a];if(o){let{usePre:t,useRel:n}=se(a),r=await f({range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:m});if(!r){delete O.actions[e];return}let{tag:o,commitSha:s,date:c}=r;if(!s||s===i||s.startsWith(i)||i.startsWith(s)){delete O.actions[e];return}let d=l.get(i);if(!d){for(let[e,t]of l)if(e.startsWith(i)){d=t;break}}u.old=i,u.new=s.substring(0,i.length),u.oldPrint=d||i.substring(0,7),u.newPrint=o,u.info=p,c&&Z(u,c)}else{let t=J(q(i));if(!t){delete O.actions[e];return}let{usePre:n,useRel:r,semvers:o}=se(a),s=await f({range:t,semvers:o,usePre:n,useRel:r,useGreatest:!0,pinnedRange:m});if(!s){delete O.actions[e];return}let{tag:l,commitSha:h,date:g}=s,_=Bn(l,i);if(_===i){delete O.actions[e];return}if(u.new=c.has(_)?_:l,u.info=p,h&&g)Z(u,g);else if(h){let e=await d(h);e&&Z(u,e)}}},{concurrency:n})},{concurrency:n}),Object.keys(O.actions).length||delete O.actions})()),V.length&&we.push((async()=>{let e=new Map;for(let t of V){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 nr(e,`docker`,w);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}=se(e.fullImage),a=ue[e.fullImage]??e.filePin[e.fullImage],o=rr(n.tags,r,i,P||void 0,P?N:void 0,a);if(!o){delete O.docker[e.key];continue}t.new=o.newTag,t.info=pr(e.ref),Z(t,o.date)}},{concurrency:n}),Object.keys(O.docker).length||delete O.docker})()),await Promise.all(we),!Mr(O))return{results:{},message:`All dependencies are up to date.`};if(t.update){let e=(e,t,n)=>{for(let r of t){let t=Cr(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=Fr(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}=me[e]||{};if(!t)continue;let i=Vn(r,n);$(t,i),R[e]&&(R[e].content=i)}continue}if(r===`docker`){for(let[e,t]of n){let n=R[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?ar:a===`compose`?or:sr)(i,t))}continue}let i=A[r];if(r===`go`&&z){for(let e of he){let t=Cr(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(z.content,e);t!==z.content&&$(z.file,t)}}else if(r===`go`){let[e,t]=An(i,O[r]);$(j[r],e),jn(l(f(j[r])),t,$)}else if(r===`cargo`&&ge)e(r,B,xr);else if(r===`cargo`)$(j[r],xr(i,O[r]));else if(r===`npm`&&ve)e(r,_e,nn);else{let e=r===`npm`?nn:ln;$(j[r],e(i,O[r]))}}return r}return Fr(O)}function Rr(e){let t=``,n=0,r=e.length;for(;n<r;){let i=e[n];if(i===`"`){for(t+=i,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(i===`/`&&n+1<r&&e[n+1]===`/`){for(n+=2;n<r&&e[n]!==`
5
- `;)n++;continue}if(i===`/`&&n+1<r&&e[n+1]===`*`){for(n+=2;n<r&&(e[n]!==`*`||e[n+1]!==`/`);)n++;n+=2;continue}t+=i,n++}return t=t.replace(/,(\s*[}\]])/g,`$1`),JSON.parse(t)}export{Lr as a,Rr as i,xe as n,ze as r,Re as t};
File without changes