updates 17.10.1 → 17.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +4 -4
- package/package.json +8 -8
package/dist/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,versions as o}from"node:process";import{basename as s,dirname as c,join as l,resolve as u}from"node:path";import{pathToFileURL as d}from"node:url";import{accessSync as f,globSync as p,lstatSync as m,readFileSync as h,readdirSync as g,statSync as _,truncateSync as v,writeFileSync as y}from"node:fs";import{parseArgs as b,promisify as ee,stripVTControlCharacters as x,styleText as te}from"node:util";import S from"node:dns";import{execFile as ne}from"node:child_process";async function re(e,t,{concurrency:n=1/0,stopOnError:r=!0,signal:i}={}){return new Promise((a,o)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!=`function`)throw TypeError(`Mapper function is required`);if(!(Number.isSafeInteger(n)&&n>=1||n===1/0))throw TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let s=[],c=[],l=new Map,u=!1,d=!1,f=!1,p=0,m=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),g=()=>{y(i.reason)},_=()=>{i?.removeEventListener(`abort`,g)},v=e=>{a(e),_()},y=e=>{u=!0,d=!0,o(e),_()};i&&(i.aborted&&y(i.reason),i.addEventListener(`abort`,g,{once:!0}));let b=async()=>{if(d)return;let e=await h.next(),n=m;if(m++,e.done){if(f=!0,p===0&&!d){if(!r&&c.length>0){y(AggregateError(c));return}if(d=!0,l.size===0){v(s);return}let e=[];for(let[t,n]of s.entries())l.get(t)!==C&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===C&&l.set(n,i),s[n]=i,p--,await b()}catch(e){if(r)y(e);else{c.push(e),p--;try{await b()}catch(e){y(e)}}}})()};(async()=>{for(let e=0;e<n;e++){try{await b()}catch(e){y(e);break}if(f||u)break}})()})}const C=Symbol(`skip`);function ie(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e].replace(/#.*$/,``).trim();if(!i)continue;let a=/^\[([^\]]+)\]$/.exec(i);if(a){n=t;for(let e of ce(a[1]))(!(e in n)||typeof n[e]!=`object`||Array.isArray(n[e]))&&(n[e]={}),n=n[e];continue}let o=le(i);if(o<0)continue;let s=i.slice(0,o).trim(),c=i.slice(o+1).trim(),l=ce(s),u=n;for(let e=0;e<l.length-1;e++)(!(l[e]in u)||typeof u[l[e]]!=`object`||Array.isArray(u[l[e]]))&&(u[l[e]]={}),u=u[l[e]];let d=l[l.length-1];if(c.startsWith(`[`)&&!c.includes(`]`)){let t=[];w(c.slice(1),t);for(let n=e+1;n<r.length;n++){let i=r[n].replace(/#.*$/,``).trim();if(i){if(i.includes(`]`)){w(i.replace(/\].*$/,``),t),e=n;break}w(i,t)}}u[d]=t}else u[d]=T(c)}return t}function w(e,t){let n=e.trim();if(!n)return;let r=/"""([\s\S]*?)"""|'''([\s\S]*?)'''|"((?:[^"\\]|\\.)*)"|'([^']*)'|([^,\s\]]+)/g,i;for(;i=r.exec(n);){let e=i[1]??i[2]??(i[3]===void 0?void 0:E(i[3]))??i[4]??i[5];e!==void 0&&e!==``&&t.push(ae(e))}}function T(e){if(e.startsWith(`[`)){let t=[];return w(e.slice(1,e.lastIndexOf(`]`)),t),t}return e.startsWith(`{`)?oe(e):e.startsWith(`"""`)?E(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?E(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ae(e)}function ae(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+$/.test(e)||/^[+-]?\d+\.\d+$/.test(e)?Number(e):e}function oe(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of se(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 se(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function ce(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function le(e){let t=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 E(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`
|
|
3
|
-
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const ue=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,D=new Map;function O(e){if(typeof e!=`string`)return null;let t=D.get(e);if(t!==void 0)return t;let n=ue.exec(e.trim());if(!n)return D.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 D.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?1:0}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 de(e){return O(e)}const fe=new Map,pe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function me(e){if(typeof e!=`string`)return null;let t=fe.get(e);if(t!==void 0)return t;let n=pe.exec(e);if(!n)return fe.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return fe.set(e,r),r}function N(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 he(e,t){let n=O(e),r=O(t);return!n||!r?!1:j(n,r)>0}function ge(e,t){let n=O(e),r=O(t);return!n||!r?!1:j(n,r)>=0}function _e(e,t){let n=O(e),r=O(t);return!n||!r?!1:j(n,r)<0}function ve(e,t){let n=O(e),r=O(t);return!n||!r?!0:j(n,r)!==0}function ye(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 be(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 P(e,t,n){return`${e}.${t}.${n}-0`}function xe(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 <${P(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${P(a,o+1,0)}`})}function Se(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 <${P(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${P(a,s+1,0)}`:`>=${a}.${s}.0 <${P(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${P(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${P(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${P(a+1,0,0)}`})}function Ce(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${P(p+1,0,0)}`:`<${P(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function we(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 <${P(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 <${P(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 <${P(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 <${P(o+1,0,0)}`}),e)}const Te=new Map;function Ee(e){let t=Te.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=Ce(t),t=Se(t),t=xe(t),t=we(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=ye(t);if(!n)return Te.set(e,null),null;i.push(n)}if(i.length===0)return Te.set(e,null),null;r.push(i)}let i=r.length?r:null;return Te.set(e,i),i}function De(e,t){for(let n of t)if(!be(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 Oe(e,t){let n=O(e);if(!n)return!1;let r=Ee(t);if(!r)return!1;for(let e of r)if(e.length===0||De(n,e))return!0;return!1}function ke(e){if(typeof e!=`string`)return null;try{return Ee(e)?e:null}catch{return null}}const Ae=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],je={"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`},Me={sec:`second`,min:`minute`};function Ne(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Pe(e,{now:t,noAffix:n=!1,times:r=Ae,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=je,longUnits:l=!1}={}){let u=Ne(e),d=t===void 0?Date.now():Ne(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&&Me[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function Fe(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r&&!/\d/.test(e[t]);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}function Ie(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/);e&&/^[0-9.a-z]+$/.test(r)&&t.push({name:e,version:r})}return t}const Le=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Re=[`node`,`deno`,`bun`],ze=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Be=[`deps`,`indirect`,`replace`],Ve=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function F(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function He(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ue(e){return e.split(`,`).filter(Boolean)}function We(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Ge(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`)].join(``)}function Ke(e,t,n=` `){let r=``,i=Array(e[0].length).fill(0);for(let n of e)for(let[e,r]of n.entries()){let n=t(r);n>i[e]&&(i[e]=n)}for(let[a,o]of e.entries()){for(let[e,a]of o.entries()){e>0&&(r+=n);let s=` `.repeat(i[e]-t(a));r+=a+(e===o.length-1?``:s)}a<e.length-1&&(r+=`
|
|
4
|
-
`)}return r}const qe={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Je(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=qe[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}function Ye(){let e=new Map,t=new Map,n=S.lookup;S.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(S,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}const Xe=`17.10.1`,I=e=>e.replace(/^v/,``),L=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),R=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function Ze(e,t){return{headers:{"user-agent":`updates/${Xe}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function Qe(e,t,n,r,i,a,o){n&&r&&i&&r(`${i(`fetch`)} ${e}`);let s=await fetch(e,t);return n&&r&&a&&o&&r(`${s.ok?a(s.status):o(s.status)} ${e}`),s}function z(e){let t=de(e);return t?!!t.prerelease.length:!1}function $e(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function et(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=B(e),s=B(t);if(!o||!s)return!0;let c=$e(e)||z(e),l=z(t);return c&&!l?he(s,o)||n:!l&&_e(s,o)?r===!0||a(i,r):!0}function B(e){try{return me(e)?.version??``}catch{return``}}function tt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=B(n);if(!c)return c;i=$e(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let l=0,u=c;for(let n of t){let t=de(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!Oe(c,s))continue;let d=N(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))ge(B(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function nt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>M(e));else if(t===`npm`||t===`cargo`)d=Object.keys(e.versions).filter(e=>M(e));else if(t===`go`){let t=B(n);if(!t)return null;let r=a||$e(n),s=e=>z(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=B(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=N(t,p);if(n&&o.has(n)&&et(f,e.new,d))return e.new}let m=B(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=N(t,m);if(n&&o.has(n)&&et(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=tt(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=B(e.info.version)):r=e[`dist-tags`].latest;let d=B(n),p=$e(n),m=z(f),h=z(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return et(n,f,g)?f:null;let _=N(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&z(r)?f:_e(r,d)&&!h?et(n,r,g)?r:null:!p&&h&&!a||s&&!Oe(r,s)?f:u||r}}const rt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&rt.set(e.substring(0,t),e.substring(t+1))}function it(e){try{let t=rt.get(new URL(e).hostname);if(t)return t}catch{}return t.UPDATES_GITHUB_API_TOKEN||t.GITHUB_API_TOKEN||t.GH_TOKEN||t.GITHUB_TOKEN||t.HOMEBREW_GITHUB_API_TOKEN}function at(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=it(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function ot(e,t,n){let r=I(t);if(!M(r))return null;if(n){let n=t,i=I(t);for(let t of e){let e=I(t);M(e)&&(!n||he(e,i))&&(n=t,i=e)}if(ve(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=I(t);if(!M(n))return null;if(ve(r,n))return t}return null}function st(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}const ct=/^[0-9a-f]{7,}$/i;function lt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function ut(e,t,n,r){try{let i=await at(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=lt(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>at(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...lt(await e.json()))}return a}catch{return[]}}function dt(e,t,n,r){throw e?.status&&e?.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function ft(e,t,n=``){let r=t.startsWith(`v`),i=I(e),a=I(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function pt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function mt({repository:e,homepage:t,info:n},r,i){n&&(e=n.project_urls.repository||n.project_urls.Repository||n.project_urls.repo||n.project_urls.Repo||n.project_urls.source||n.project_urls.Source||n.project_urls[`source code`]||n.project_urls[`Source code`]||n.project_urls[`Source Code`]||n.project_urls.homepage||n.project_urls.Homepage||`https://pypi.org/project/${i}/`);let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=st(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${pt(a)}/${e.directory}`)),a||t||``)}function ht(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 gt(e){try{return ht(h(e,`utf-8`))}catch{return}}function _t(t){let n=e();for(;;){let e=l(n,t);try{return _(e),e}catch{}let r=c(n);if(r===n)break;n=r}}function vt(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function yt(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=gt(e);t&&(o.push(t),s.push(e))}i||(c(l(`/etc`,e,`config`)),c(l(`/etc`,`${e}rc`))),a&&(c(l(a,`.config`,e,`config`)),c(l(a,`.config`,e)),c(l(a,`.${e}`,`config`)),c(l(a,`.${e}rc`))),c(_t(`.${e}rc`));let u=vt(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const bt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,xt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,St=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Ct=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,wt=`https://registry.npmjs.org`;let V=null;const Tt=new Map;function Et(){return V||yt(`npm`,{registry:wt})}function Dt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Ot(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:Dt(n),type:`Bearer`};let r=t[`${e}:username`]||t[`${e}/:username`],i=t[`${e}:_password`]||t[`${e}/:_password`];if(r&&i){let e=Buffer.from(Dt(i),`base64`).toString(`utf8`);return{token:Buffer.from(`${r}:${e}`).toString(`base64`),type:`Basic`,username:r,password:e}}let a=t[`${e}:_auth`]||t[`${e}/:_auth`];if(a)return{token:Dt(a),type:`Basic`}}function H(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Ot(`//${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:Dt(i),type:`Basic`}}function kt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function At(e,t){V||=Et();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Tt.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:H(t,V),registry:t};else{let e=R(kt(n,V));if(e!==t)try{let n=H(e,V);a=n?.token?{auth:n,registry:e}:{auth:H(t,V),registry:t}}catch{a={auth:H(t,V),registry:t}}else a={auth:H(t,V),registry:t}}return Tt.set(r,a),a}async function jt(e,t,n,r,i){V||=Et();let{auth:a,registry:o}=At(e,R((typeof r.registry==`string`?r.registry:!1)||n.registry||V.registry||wt)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...Ze(a?.type,a?.token)});if(l?.ok)return[await l.json(),t,o,e];dt(l,c,e,o)}function U(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Mt(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Nt(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 Pt(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}dt(s,o,e,`JSR`)}function Ft(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;if(a===`packageManager`){let r=RegExp(`"${L(a)}": *"${o}@${L(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${L(o)}": *"${L(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function It(e,t,n){let r=e.replace(Ct,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 Lt(e){let t=e.match(St);return t?.length===1?e.replace(St,B(t[0])):e}async function Rt(e,t,n){try{let r=await at(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function zt(e,t,n){return(await ut(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function Bt(e,t,n,r){let i=t.old.replace(bt,``),[a,o,s,c]=xt.exec(i)||[];if(!o||!s||!c)return null;if(ct.test(c)){let{hash:n,commit:i}=await Rt(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=ot(await zt(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function Vt(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];dt(i,r,e,n.pypiApiUrl)}function Ht(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`("${L(o)} *[<>=~]+ *)${L(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const Ut=ee(ne);function Wt(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return e.endsWith(`/`)?e.substring(0,e.length-1):e}return`https://proxy.golang.org`}function Gt(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Kt(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function qt(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Jt(e){let t=/\/v(\d+)$/.exec(e);return t?Number.parseInt(t[1]):1}function Yt(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Xt(e,t){return t===`indirect`||e.startsWith(`golang.org/x/`)}function Zt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Qt(e){return`${(e.length+4).toString(16).padStart(4,`0`)}${e}`}function $t(e){let t=[Qt(`command=ls-refs
|
|
3
|
+
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const ue=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,D=new Map;function O(e){if(typeof e!=`string`)return null;let t=D.get(e);if(t!==void 0)return t;let n=ue.exec(e.trim());if(!n)return D.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 D.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?1:0}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 de(e){return O(e)}const fe=new Map,pe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function me(e){if(typeof e!=`string`)return null;let t=fe.get(e);if(t!==void 0)return t;let n=pe.exec(e);if(!n)return fe.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return fe.set(e,r),r}function N(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 he(e,t){let n=O(e),r=O(t);return!n||!r?!1:j(n,r)>0}function ge(e,t){let n=O(e),r=O(t);return!n||!r?!1:j(n,r)>=0}function _e(e,t){let n=O(e),r=O(t);return!n||!r?!1:j(n,r)<0}function ve(e,t){let n=O(e),r=O(t);return!n||!r?!0:j(n,r)!==0}function ye(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 be(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 P(e,t,n){return`${e}.${t}.${n}-0`}function xe(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 <${P(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${P(a,o+1,0)}`})}function Se(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 <${P(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${P(a,s+1,0)}`:`>=${a}.${s}.0 <${P(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${P(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${P(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${P(a+1,0,0)}`})}function Ce(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${P(p+1,0,0)}`:`<${P(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function we(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 <${P(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 <${P(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 <${P(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 <${P(o+1,0,0)}`}),e)}const Te=new Map;function Ee(e){let t=Te.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=Ce(t),t=Se(t),t=xe(t),t=we(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=ye(t);if(!n)return Te.set(e,null),null;i.push(n)}if(i.length===0)return Te.set(e,null),null;r.push(i)}let i=r.length?r:null;return Te.set(e,i),i}function De(e,t){for(let n of t)if(!be(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 Oe(e,t){let n=O(e);if(!n)return!1;let r=Ee(t);if(!r)return!1;for(let e of r)if(e.length===0||De(n,e))return!0;return!1}function ke(e){if(typeof e!=`string`)return null;try{return Ee(e)?e:null}catch{return null}}const Ae=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],je={"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`},Me={sec:`second`,min:`minute`};function Ne(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Pe(e,{now:t,noAffix:n=!1,times:r=Ae,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=je,longUnits:l=!1}={}){let u=Ne(e),d=t===void 0?Date.now():Ne(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&&Me[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function Fe(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r&&!/\d/.test(e[t]);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}function Ie(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/);e&&/^[0-9.a-z]+$/.test(r)&&t.push({name:e,version:r})}return t}const Le=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Re=[`node`,`deno`,`bun`],ze=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Be=[`deps`,`indirect`,`replace`,`tool`],Ve=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function F(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function He(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ue(e){return e.split(`,`).filter(Boolean)}function We(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Ge(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`)].join(``)}function Ke(e,t,n=` `){let r=``,i=Array(e[0].length).fill(0);for(let n of e)for(let[e,r]of n.entries()){let n=t(r);n>i[e]&&(i[e]=n)}for(let[a,o]of e.entries()){for(let[e,a]of o.entries()){e>0&&(r+=n);let s=` `.repeat(i[e]-t(a));r+=a+(e===o.length-1?``:s)}a<e.length-1&&(r+=`
|
|
4
|
+
`)}return r}const qe={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Je(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=qe[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}function Ye(){let e=new Map,t=new Map,n=S.lookup;S.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(S,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}const Xe=`17.11.0`,I=e=>e.replace(/^v/,``),L=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),R=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function Ze(e,t){return{headers:{"user-agent":`updates/${Xe}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function Qe(e,t,n,r,i,a,o){n&&r&&i&&r(`${i(`fetch`)} ${e}`);let s=await fetch(e,t);return n&&r&&a&&o&&r(`${s.ok?a(s.status):o(s.status)} ${e}`),s}function z(e){let t=de(e);return t?!!t.prerelease.length:!1}function $e(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function et(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=B(e),s=B(t);if(!o||!s)return!0;let c=$e(e)||z(e),l=z(t);return c&&!l?he(s,o)||n:!l&&_e(s,o)?r===!0||a(i,r):!0}function B(e){try{return me(e)?.version??``}catch{return``}}function tt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=B(n);if(!c)return c;i=$e(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let l=0,u=c;for(let n of t){let t=de(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!Oe(c,s))continue;let d=N(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))ge(B(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function nt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>M(e));else if(t===`npm`||t===`cargo`)d=Object.keys(e.versions).filter(e=>M(e));else if(t===`go`){let t=B(n);if(!t)return null;let r=a||$e(n),s=e=>z(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=B(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=N(t,p);if(n&&o.has(n)&&et(f,e.new,d))return e.new}let m=B(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=N(t,m);if(n&&o.has(n)&&et(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=tt(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=B(e.info.version)):r=e[`dist-tags`].latest;let d=B(n),p=$e(n),m=z(f),h=z(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return et(n,f,g)?f:null;let _=N(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&z(r)?f:_e(r,d)&&!h?et(n,r,g)?r:null:!p&&h&&!a||s&&!Oe(r,s)?f:u||r}}const rt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&rt.set(e.substring(0,t),e.substring(t+1))}function it(e){try{let t=rt.get(new URL(e).hostname);if(t)return t}catch{}return t.UPDATES_GITHUB_API_TOKEN||t.GITHUB_API_TOKEN||t.GH_TOKEN||t.GITHUB_TOKEN||t.HOMEBREW_GITHUB_API_TOKEN}function at(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=it(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function ot(e,t,n){let r=I(t);if(!M(r))return null;if(n){let n=t,i=I(t);for(let t of e){let e=I(t);M(e)&&(!n||he(e,i))&&(n=t,i=e)}if(ve(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=I(t);if(!M(n))return null;if(ve(r,n))return t}return null}function st(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}const ct=/^[0-9a-f]{7,}$/i;function lt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function ut(e,t,n,r){try{let i=await at(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=lt(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>at(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...lt(await e.json()))}return a}catch{return[]}}function dt(e,t,n,r){throw e?.status&&e?.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function ft(e,t,n=``){let r=t.startsWith(`v`),i=I(e),a=I(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function pt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function mt({repository:e,homepage:t,info:n},r,i){n&&(e=n.project_urls.repository||n.project_urls.Repository||n.project_urls.repo||n.project_urls.Repo||n.project_urls.source||n.project_urls.Source||n.project_urls[`source code`]||n.project_urls[`Source code`]||n.project_urls[`Source Code`]||n.project_urls.homepage||n.project_urls.Homepage||`https://pypi.org/project/${i}/`);let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=st(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${pt(a)}/${e.directory}`)),a||t||``)}function ht(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 gt(e){try{return ht(h(e,`utf-8`))}catch{return}}function _t(t){let n=e();for(;;){let e=l(n,t);try{return _(e),e}catch{}let r=c(n);if(r===n)break;n=r}}function vt(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function yt(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=gt(e);t&&(o.push(t),s.push(e))}i||(c(l(`/etc`,e,`config`)),c(l(`/etc`,`${e}rc`))),a&&(c(l(a,`.config`,e,`config`)),c(l(a,`.config`,e)),c(l(a,`.${e}`,`config`)),c(l(a,`.${e}rc`))),c(_t(`.${e}rc`));let u=vt(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const bt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,xt=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,St=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Ct=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,wt=`https://registry.npmjs.org`;let V=null;const Tt=new Map;function Et(){return V||yt(`npm`,{registry:wt})}function Dt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Ot(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:Dt(n),type:`Bearer`};let r=t[`${e}:username`]||t[`${e}/:username`],i=t[`${e}:_password`]||t[`${e}/:_password`];if(r&&i){let e=Buffer.from(Dt(i),`base64`).toString(`utf8`);return{token:Buffer.from(`${r}:${e}`).toString(`base64`),type:`Basic`,username:r,password:e}}let a=t[`${e}:_auth`]||t[`${e}/:_auth`];if(a)return{token:Dt(a),type:`Basic`}}function H(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Ot(`//${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:Dt(i),type:`Basic`}}function kt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function At(e,t){V||=Et();let n=e.startsWith(`@`)?(/@[a-z0-9][\w.-]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Tt.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:H(t,V),registry:t};else{let e=R(kt(n,V));if(e!==t)try{let n=H(e,V);a=n?.token?{auth:n,registry:e}:{auth:H(t,V),registry:t}}catch{a={auth:H(t,V),registry:t}}else a={auth:H(t,V),registry:t}}return Tt.set(r,a),a}async function jt(e,t,n,r,i){V||=Et();let{auth:a,registry:o}=At(e,R((typeof r.registry==`string`?r.registry:!1)||n.registry||V.registry||wt)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...Ze(a?.type,a?.token)});if(l?.ok)return[await l.json(),t,o,e];dt(l,c,e,o)}function U(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Mt(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Nt(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 Pt(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}dt(s,o,e,`JSR`)}function Ft(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;if(a===`packageManager`){let r=RegExp(`"${L(a)}": *"${o}@${L(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${L(o)}": *"${L(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function It(e,t,n){let r=e.replace(Ct,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 Lt(e){let t=e.match(St);return t?.length===1?e.replace(St,B(t[0])):e}async function Rt(e,t,n){try{let r=await at(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function zt(e,t,n){return(await ut(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function Bt(e,t,n,r){let i=t.old.replace(bt,``),[a,o,s,c]=xt.exec(i)||[];if(!o||!s||!c)return null;if(ct.test(c)){let{hash:n,commit:i}=await Rt(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=ot(await zt(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function Vt(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];dt(i,r,e,n.pypiApiUrl)}function Ht(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`("${L(o)} *[<>=~]+ *)${L(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const Ut=ee(ne);function Wt(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return e.endsWith(`/`)?e.substring(0,e.length-1):e}return`https://proxy.golang.org`}function Gt(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Kt(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function qt(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Jt(e){let t=/\/v(\d+)$/.exec(e);return t?Number.parseInt(t[1]):1}function Yt(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Xt(e,t){return t===`indirect`||e.startsWith(`golang.org/x/`)}function Zt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Qt(e){return`${(e.length+4).toString(16).padStart(4,`0`)}${e}`}function $t(e){let t=[Qt(`command=ls-refs
|
|
5
5
|
`),Qt(`object-format=sha1
|
|
6
6
|
`),`0001`,Qt(`peel
|
|
7
|
-
`),Qt(`ref-prefix refs/tags/${e}v\n`),`0000`];return new Blob([t.join(``)])}function en(e,t){let n=new TextDecoder().decode(e),r=[],i=`refs/tags/${t}`,a=0;for(;a<n.length&&!n.startsWith(`0000`,a);){let e=n.substring(a,a+4),t=Number.parseInt(e,16);if(t===0||Number.isNaN(t))break;let o=n.substring(a+4,a+t);a+=t;let s=o.indexOf(` `);if(s===-1)continue;let c=o.substring(s+1).trim();if(c.endsWith(`^{}`)||!c.startsWith(i))continue;let l=c.substring(i.length);l&&r.push(l)}return r}function tn(e,t){let n=t;for(let t of e){let e=/^v(\d+)\./.exec(t);if(e){let t=Number.parseInt(e[1]);t>n&&(n=t)}}return n}function nn(e){return e?`${e.substring(1)}/`:``}function rn(e){let t=/^((github\.com|gitea\.com|codeberg\.org|gitlab\.com|bitbucket\.org|git\.sr\.ht)\/[^/]+\/[^/]+)(\/.*)?$/.exec(e);if(t)return{repoUrl:`https://${t[1]}.git`,tagPrefix:nn(t[3])};let n=/^golang\.org\/x\/([^/]+)(\/.*)?$/.exec(e);if(n)return{repoUrl:`https://go.googlesource.com/${n[1]}`,tagPrefix:nn(n[2])};let r=/^gopkg\.in\/(?:([^/]+)\/)?([^.]+)\.v\d+(\/.*)?$/.exec(e);return r?{repoUrl:`https://github.com/${r[1]||`go-${r[2]}`}/${r[2]}.git`,tagPrefix:nn(r[3])}:null}async function an(e,t){let n=rn(e);if(n)return n;try{let n=await t.doFetch(`https://${e}?go-get=1`,{signal:AbortSignal.timeout(t.goProbeTimeout)});if(!n.ok)return null;let r=await n.text(),i=/<meta\s+name="go-import"\s+content="([^"]+)"/.exec(r)||/<meta\s+content="([^"]+)"\s+name="go-import"/.exec(r);if(!i)return null;let[a,o,s]=i[1].trim().split(/\s+/);return o===`git`?{repoUrl:s,tagPrefix:e.length>a.length?`${e.substring(a.length+1)}/`:``}:null}catch{return null}}const on=new Map;function sn(e,t){let n=on.get(e);if(n)return n;let r=(async()=>{try{let n=await an(e,t);if(!n)return null;let{repoUrl:r,tagPrefix:i}=n,a=$t(i),o=await t.doFetch(`${r}/git-upload-pack`,{method:`POST`,headers:{"Git-Protocol":`version=2`,"Content-Type":`application/x-git-upload-pack-request`},body:a,signal:AbortSignal.timeout(t.goProbeTimeout)});return o.ok?en(await o.arrayBuffer(),i):null}catch{return null}})();return on.set(e,r),r}async function cn(e,t,n){let r=await sn(e.replace(/\/v\d+$/,``),n);return r?tn(r,t):null}function ln(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function un(e,t,n){if(!t)return null;let r=t,i=e+1,a=1,o=null;for(;o===null;){let t=i+a;if(t>e+100){o=e+101;break}let s=await n(t);s?(r=s,i=t,a*=2):o=t}for(;i+1<o;){let e=Math.floor((i+o)/2),t=await n(e);t?(r=t,i=e):o=e}return r}function dn(e,t,n,r,i,a){let o=r?.Version??i,s=r?.Time??a,c=r?.path??e;return[{name:e,old:n,new:I(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:I(i),sameMajorTime:a},t,null,e]}function fn(e){let t={},n={},r={},i=new Set,a=e.split(/\r?\n/),o=!1,s=!1;for(let e of a){let a=e.trim();if(/^require\s*\(/.test(a)){o=!0;continue}if(/^replace\s*\(/.test(a)){s=!0;continue}if(a===`)`){o=!1,s=!1;continue}let c=a.includes(`// indirect`);if(s||/^replace\s+/.test(a)){let e=s?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(a):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(a);if(e){let[,t,n,a]=e;!n.startsWith(`./`)&&!n.startsWith(`/`)&&!n.startsWith(`../`)&&(r[n]=a,i.add(t))}continue}let l=o?/^(\S+)\s+(v\S+)/.exec(a):/^require\s+(\S+)\s+(v\S+)/.exec(a);l&&((c?n:t)[l[1]]=l[2])}for(let e of i)delete t[e],delete n[e];return{deps:t,indirect:n,replace:r}}async function pn(e,n,r,i,a){let o=Jt(e),s=async(e,n)=>{try{let{stdout:r}=await Ut(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},c=Xt(e,n),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(Yt(e,o+1),a.goProbeTimeout)]);return l?dn(e,n,r,c?null:await un(o,u,t=>s(Yt(e,t),a.goProbeTimeout)),l.Version,l.Time):ln(e,r,n)}async function mn(e,t,n,r,i,a){if(Kt(e,a))return pn(e,t,n,r,i);let o=qt(e),s=Jt(e),c=async t=>{let n=Yt(e,t);return i.doFetch(`${i.goProxyUrl}/${qt(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=Xt(e,t),[u,d,f]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),l?null:cn(e,s,i),l?null:c(s+1)]);if(!u.ok)return ln(e,n,t);let p,m;try{let e=await u.json();p=e.Version,m=e.Time}catch{return ln(e,n,t)}let h=null;return l||(d!==null&&d>s?d===s+1&&f?h=f:(h=await c(d),h||=await un(s,f,c)):d===null&&f!==null&&(h=await un(s,f,c))),dn(e,t,n,h,p,m)}function hn(e,t){let n=L(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function gn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${L(s)}\\s+)v${L(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${L(s)}) +v${L(c)}`,`g`),`$1 v${l}`);continue}let u=Jt(s),d=Number.parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=Yt(s,d);n=n.replace(RegExp(`${L(s)} +v${L(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${L(s)}) +v${L(c)}`,`g`),`$1 v${l}`);n=hn(n,s)}return[n,r]}function _n(e,t,n){if(!Object.keys(t).length)return;let r=p(`**/*.go`,{cwd:e});for(let i of r){let r=l(e,i),a=h(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${L(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function vn(e){let t=`https://${yn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${pt(t)}/${o.join(`/`)}`,n.toString()}else return t}function yn(e){return/\/v[0-9]$/.test(e)?c(e):e}function bn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const xn=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Sn(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:ct.test(o)}}function Cn(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function wn(e,t,n,r,i){try{let a=await at(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function Tn(e,t){return ft(de(I(e))?.version??I(e),t)}function En(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${L(e)}@${L(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function Dn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function On(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}const kn=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,An=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,jn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Mn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Nn=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function Pn(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`)||t[1],repo:t[t.length-1]}}function Fn(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`),n,r;if(t===-1||e.lastIndexOf(`/`)>t||(n=e.substring(0,t),r=e.substring(t+1),!r||!kn.test(r)))return null;let{registry:i,namespace:a,repo:o}=Pn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function In(e){let t=kn.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Ln(e,t){let n=In(t);return n?ft(e,n.version,n.suffix):t}function Rn(e,t){let n=[];for(let r of e.matchAll(t)){let e=Fn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function zn(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o=e=>{for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``},s=Array.from({length:10},(e,t)=>n.doFetch(a(t+1),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(async e=>e?.ok?e.json():null).catch(()=>null)),c=await Promise.all(s),l=c[0];if(!l)return r;let u=Math.min(Math.ceil((l.count||0)/100),10);for(let e=0;e<u;e++)c[e]&&o(c[e]);return r}async function Bn(e,t,n){let{registry:r,namespace:i,repo:a}=Pn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await zn(i,a,n),name:e},t,null,e]}function Vn(e,t,n){let r=In(t);if(!r)return null;let i=me(I(r.version))?.version;if(!i)return null;let a=i,o=``,s=``;for(let[t,i]of Object.entries(e)){let e=In(t);if(!e||e.suffix!==r.suffix)continue;let c=me(I(e.version))?.version;if(!c||!M(c))continue;let l=N(a,c);!l||!n.has(l)||ge(c,a)&&(a=c,o=t,s=i)}if(!o||a===i)return null;let c=Ln(a,t);return c===t?null:{newTag:c,date:s}}function Hn(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let[t,a]=e.split(`\0`),o=i.oldOrig||i.old;for(let e of n)r=r.replace(e(L(a),L(o)),`$1${a}:${i.new}`)}return r}function Un(e,t){return Hn(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function Wn(e,t){return Hn(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function Gn(e,t){return Hn(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const Kn=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function qn(e){return/^docker-.+\.ya?ml$/.test(e)}function Jn(e){return/^Dockerfile(\..+)?$/.test(e)}function Yn(e){return Jn(e)||qn(e)}function Xn(e){return Jn(e)?An:jn}function Zn(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}async function Qn(e,t,n){let r=`${R(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),...Ze()});i?.ok||dt(i,r,e,n.cratesIoUrl);let a;try{a=await i.json()}catch{throw Error(`Invalid JSON from ${r}`)}let o=(a.versions||[]).filter(e=>!e.yanked),s={},c={};for(let e of o)e.num&&(s[e.num]={},c[e.num]=e.created_at||``);let l=o[0]?.num??``;return[{name:e,versions:s,time:c,"dist-tags":{latest:l}},t,null,e]}const $n=Ve.map(e=>L(e)).join(`|`);function er(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=L(i),c=L(a);n=n.replace(RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`,`gm`),`$1${o}$2`),n=n.replace(RegExp(`(\\s*${s}\\s*=\\s*\\{\\s*version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`),n=n.replace(RegExp(`(\\[(?:${$n})\\.${s}\\][^\\[]*?version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`)}return n}const tr={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`,"Cargo.toml":`cargo`},nr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function W(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Ue(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function rr(e){for(let[t,{short:n}]of Object.entries(nr))if(t===e||n===e)return t;return``}const G=b({strict:!1,allowPositionals:!0,tokens:!0,options:nr}),K=G.values;for(let[e,t]of G.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=rr(t.value.substring(1)),r=G.tokens[e+1];K[t.name]=[!0],K[n]||(K[n]=[]),r?.kind===`positional`&&r.value?K[n].push(r.value):K[n].push(!0)}const q=G.values,ir=G.positionals,[ar,J,or]=[`magenta`,`red`,`green`].map(e=>q[`no-color`]?String:t=>te(e,String(t))),Y=Q(W(q.greatest)),sr=Q(W(q.prerelease)),cr=Q(W(q.release)),lr=Q(W(q.patch)),ur=Q(W(q.minor)),dr=Q(W(q[`allow-downgrade`])),fr=W(q.modes)||new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),pr=typeof q.forgeapi==`string`?R(q.forgeapi):`https://api.github.com`,mr=typeof q.pypiapi==`string`?R(q.pypiapi):`https://pypi.org`,hr=typeof q.jsrapi==`string`?R(q.jsrapi):`https://jsr.io`,gr=typeof q.goproxy==`string`?R(q.goproxy):Wt(),_r=typeof q.cargoapi==`string`?R(q.cargoapi):`https://crates.io`,vr=typeof q.dockerapi==`string`?R(q.dockerapi):`https://hub.docker.com`,yr=Gt();function br(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&ke(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&ke(r)&&(t[n]=r)}return t}function xr(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:xr(e,r)}function Sr(e){try{return h(e,`utf8`)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}}function Cr(e,t){t&&(e.date=t,e.age=Pe(t,{noAffix:!0}))}function wr(e,t,n){let r=Je(String(t));for(let[t,{date:i}]of Object.entries(e))We(i,r,n)||delete e[t]}function Tr(e){let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;return t}function Er(e){console.error(`${Ge()} ${e}`)}const Dr=typeof q.timeout==`string`?Number(q.timeout):0,X={fetchTimeout:Dr||5e3,goProbeTimeout:Dr?Dr/2:2500,forgeApiUrl:pr,pypiApiUrl:mr,jsrApiUrl:hr,goProxyUrl:gr,cratesIoUrl:_r,dockerApiUrl:vr,doFetch:(e,t)=>Qe(e,t,!!q.verbose,Er,ar,or,J),verbose:!!q.verbose};async function Or(e){console.info(q.json?JSON.stringify({message:e}):e),await kr()}async function kr(e,t){if(e){let t=e.stack??e.message,n=e.cause;q.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(J(t)),n instanceof Error?console.info(J(`Caused by: ${n.message}`)):n&&console.info(J(`Caused by: ${typeof n==`string`?n:JSON.stringify(n)}`)))}r===`win32`&&Number(o?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),n(t||e?1:0)}function Ar(e={}){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!U(n.oldOrig)&&(n.old=t===`go`?bn(n.oldOrig):n.oldOrig),t===`go`&&(n.new=bn(n.new)),t===`actions`&&(n.old=I(n.old),n.new=I(n.new)),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t=Tr(e);if(q.json){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`);t.results[n]||(t.results[n]={}),t.results[n][e]||(t.results[n][e]={}),t.results[n][e][a]=i}console.info(JSON.stringify(t))}else t&&console.info(Mr(e));return q[`error-on-outdated`]?t?2:0:q[`error-on-unchanged`]?t?0:2:0}function Z(e,t){r===`win32`&&v(e,0),y(e,t,r===`win32`?{flag:`r+`}:void 0)}const jr=e=>x(e).length;function Mr(e){let t=Object.keys(e).filter(t=>Object.keys(e[t]).length>0),n=t.length>1,r=[n?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],i=new Set;for(let a of t)for(let[t,o]of Object.entries(e[a])){let[e,s]=t.split(`\0`),c=`${a}|${s}`;if(i.has(c))continue;i.add(c);let l=[];l.push(a===`go`?yn(s):s),n&&l.push(a),l.push(Fe(o.old,o.new,J)),l.push(Fe(o.new,o.old,or)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return Ke(r,jr)}function Nr(e,t){return RegExp(`^${L(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Pr(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Nr(e,n):e instanceof RegExp?e:Nr(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(Pr(n,!0,!1));return t}return e}function Fr(e,t){let n=new Set;for(let t of e||[])n.add(Pr(t,!0,!0));for(let e of t||[])n.add(Pr(e,!1,!0));return n}function Ir(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Ue(e)):[]}function Lr(e){return lr===!0||F(e,lr)?new Set([`patch`]):ur===!0||F(e,ur)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Rr(e){return{useGreatest:typeof Y==`boolean`?Y:F(e,Y),usePre:typeof sr==`boolean`?sr:F(e,sr),useRel:typeof cr==`boolean`?cr:F(e,cr),semvers:Lr(e)}}function zr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}function $(e,t,n,r,i){if(i===`engines`&&Re.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Br(t){let n=new Set,r=new Set;if(t)for(let e of t){let t;try{t=m(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile()){let t=u(e);n.add(t),r.add(t)}else if(t?.isDirectory()){for(let t of Object.keys(tr)){let r=l(e,t),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(u(r))}try{for(let t of g(e))if(Yn(t)){let i=l(e,t);try{m(i).isFile()&&(n.add(u(i)),r.add(u(i)))}catch{}}}catch{}let t=u(e).replace(/\\/g,`/`),i;i=t.endsWith(`.github/workflows`)?t:t.endsWith(`.github`)?l(t,`workflows`):l(t,`.github`,`workflows`);for(let e of On(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(tr)){let r=xr(t,e());r&&n.add(u(r))}for(let t of Kn){let r=xr(t,e());r&&n.add(u(r))}try{for(let t of g(e()))if(Yn(t)&&!Kn.includes(t)){let r=l(e(),t);try{m(r).isFile()&&n.add(u(r))}catch{}}}catch{}let t=xr(l(`.github`,`workflows`),e());if(t)for(let e of On(t))n.add(e)}return[n,r]}async function Vr(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=l(e,...t.split(`/`)),r=d(n);try{f(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return n}async function Hr(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);Ye();let e=typeof q.sockets==`number`?q.sockets:96,{help:t,version:n,file:r,types:o,update:l,indirect:d,include:f,exclude:p,pin:m,cooldown:g}=q;t&&(a.write(`usage: updates [options] [files...]
|
|
7
|
+
`),Qt(`ref-prefix refs/tags/${e}v\n`),`0000`];return new Blob([t.join(``)])}function en(e,t){let n=new TextDecoder().decode(e),r=[],i=`refs/tags/${t}`,a=0;for(;a<n.length&&!n.startsWith(`0000`,a);){let e=n.substring(a,a+4),t=Number.parseInt(e,16);if(t===0||Number.isNaN(t))break;let o=n.substring(a+4,a+t);a+=t;let s=o.indexOf(` `);if(s===-1)continue;let c=o.substring(s+1).trim();if(c.endsWith(`^{}`)||!c.startsWith(i))continue;let l=c.substring(i.length);l&&r.push(l)}return r}function tn(e,t){let n=t;for(let t of e){let e=/^v(\d+)\./.exec(t);if(e){let t=Number.parseInt(e[1]);t>n&&(n=t)}}return n}function nn(e){return e?`${e.substring(1)}/`:``}function rn(e){let t=/^((github\.com|gitea\.com|codeberg\.org|gitlab\.com|bitbucket\.org|git\.sr\.ht)\/[^/]+\/[^/]+)(\/.*)?$/.exec(e);if(t)return{repoUrl:`https://${t[1]}.git`,tagPrefix:nn(t[3])};let n=/^golang\.org\/x\/([^/]+)(\/.*)?$/.exec(e);if(n)return{repoUrl:`https://go.googlesource.com/${n[1]}`,tagPrefix:nn(n[2])};let r=/^gopkg\.in\/(?:([^/]+)\/)?([^.]+)\.v\d+(\/.*)?$/.exec(e);return r?{repoUrl:`https://github.com/${r[1]||`go-${r[2]}`}/${r[2]}.git`,tagPrefix:nn(r[3])}:null}async function an(e,t){let n=rn(e);if(n)return n;try{let n=await t.doFetch(`https://${e}?go-get=1`,{signal:AbortSignal.timeout(t.goProbeTimeout)});if(!n.ok)return null;let r=await n.text(),i=/<meta\s+name="go-import"\s+content="([^"]+)"/.exec(r)||/<meta\s+content="([^"]+)"\s+name="go-import"/.exec(r);if(!i)return null;let[a,o,s]=i[1].trim().split(/\s+/);return o===`git`?{repoUrl:s,tagPrefix:e.length>a.length?`${e.substring(a.length+1)}/`:``}:null}catch{return null}}const on=new Map;function sn(e,t){let n=on.get(e);if(n)return n;let r=(async()=>{try{let n=await an(e,t);if(!n)return null;let{repoUrl:r,tagPrefix:i}=n,a=$t(i),o=await t.doFetch(`${r}/git-upload-pack`,{method:`POST`,headers:{"Git-Protocol":`version=2`,"Content-Type":`application/x-git-upload-pack-request`},body:a,signal:AbortSignal.timeout(t.goProbeTimeout)});return o.ok?en(await o.arrayBuffer(),i):null}catch{return null}})();return on.set(e,r),r}async function cn(e,t,n){let r=await sn(e.replace(/\/v\d+$/,``),n);return r?tn(r,t):null}function ln(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function un(e,t,n){if(!t)return null;let r=t,i=e+1,a=1,o=null;for(;o===null;){let t=i+a;if(t>e+100){o=e+101;break}let s=await n(t);s?(r=s,i=t,a*=2):o=t}for(;i+1<o;){let e=Math.floor((i+o)/2),t=await n(e);t?(r=t,i=e):o=e}return r}function dn(e,t,n,r,i,a){let o=r?.Version??i,s=r?.Time??a,c=r?.path??e;return[{name:e,old:n,new:I(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:I(i),sameMajorTime:a},t,null,e]}function fn(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=l?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i);if(e){let[,t,n,i]=e;!n.startsWith(`./`)&&!n.startsWith(`/`)&&!n.startsWith(`../`)&&(r[n]=i,a.add(t))}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 pn(e,n,r,i,a){let o=Jt(e),s=async(e,n)=>{try{let{stdout:r}=await Ut(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},c=Xt(e,n),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(Yt(e,o+1),a.goProbeTimeout)]);return l?dn(e,n,r,c?null:await un(o,u,t=>s(Yt(e,t),a.goProbeTimeout)),l.Version,l.Time):ln(e,r,n)}async function mn(e,t,n,r,i,a){if(Kt(e,a))return pn(e,t,n,r,i);let o=qt(e),s=Jt(e),c=async t=>{let n=Yt(e,t);return i.doFetch(`${i.goProxyUrl}/${qt(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},l=Xt(e,t),[u,d,f]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),l?null:cn(e,s,i),l?null:c(s+1)]);if(!u.ok)return ln(e,n,t);let p,m;try{let e=await u.json();p=e.Version,m=e.Time}catch{return ln(e,n,t)}let h=null;return l||(d!==null&&d>s?d===s+1&&f?h=f:(h=await c(d),h||=await un(s,f,c)):d===null&&f!==null&&(h=await un(s,f,c))),dn(e,t,n,h,p,m)}function hn(e,t){let n=L(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function gn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${L(s)}\\s+)v${L(c)}`,`g`),`$1v${l}`);continue}if(o===`indirect`){n=n.replace(RegExp(`(${L(s)}) +v${L(c)}`,`g`),`$1 v${l}`);continue}let u=Jt(s),d=Number.parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=Yt(s,d);n=n.replace(RegExp(`${L(s)} +v${L(c)}`,`g`),`${e} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${L(s)}(/\\S+)?\\s*$`,`gm`),`$1${e}$2`)),r[s]=e}else n=n.replace(RegExp(`(${L(s)}) +v${L(c)}`,`g`),`$1 v${l}`);o!==`tool`&&(n=hn(n,s))}return[n,r]}function _n(e,t,n){if(!Object.keys(t).length)return;let r=p(`**/*.go`,{cwd:e});for(let i of r){let r=l(e,i),a=h(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${L(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function vn(e){let t=`https://${yn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${pt(t)}/${o.join(`/`)}`,n.toString()}else return t}function yn(e){return/\/v[0-9]$/.test(e)?c(e):e}function bn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const xn=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Sn(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:ct.test(o)}}function Cn(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function wn(e,t,n,r,i){try{let a=await at(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function Tn(e,t){return ft(de(I(e))?.version??I(e),t)}function En(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${L(e)}@${L(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function Dn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function On(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}const kn=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,An=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,jn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Mn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Nn=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function Pn(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`)||t[1],repo:t[t.length-1]}}function Fn(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`),n,r;if(t===-1||e.lastIndexOf(`/`)>t||(n=e.substring(0,t),r=e.substring(t+1),!r||!kn.test(r)))return null;let{registry:i,namespace:a,repo:o}=Pn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function In(e){let t=kn.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Ln(e,t){let n=In(t);return n?ft(e,n.version,n.suffix):t}function Rn(e,t){let n=[];for(let r of e.matchAll(t)){let e=Fn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function zn(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o=e=>{for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``},s=Array.from({length:10},(e,t)=>n.doFetch(a(t+1),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(async e=>e?.ok?e.json():null).catch(()=>null)),c=await Promise.all(s),l=c[0];if(!l)return r;let u=Math.min(Math.ceil((l.count||0)/100),10);for(let e=0;e<u;e++)c[e]&&o(c[e]);return r}async function Bn(e,t,n){let{registry:r,namespace:i,repo:a}=Pn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await zn(i,a,n),name:e},t,null,e]}function Vn(e,t,n){let r=In(t);if(!r)return null;let i=me(I(r.version))?.version;if(!i)return null;let a=i,o=``,s=``;for(let[t,i]of Object.entries(e)){let e=In(t);if(!e||e.suffix!==r.suffix)continue;let c=me(I(e.version))?.version;if(!c||!M(c))continue;let l=N(a,c);!l||!n.has(l)||ge(c,a)&&(a=c,o=t,s=i)}if(!o||a===i)return null;let c=Ln(a,t);return c===t?null:{newTag:c,date:s}}function Hn(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let[t,a]=e.split(`\0`),o=i.oldOrig||i.old;for(let e of n)r=r.replace(e(L(a),L(o)),`$1${a}:${i.new}`)}return r}function Un(e,t){return Hn(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function Wn(e,t){return Hn(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function Gn(e,t){return Hn(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const Kn=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function qn(e){return/^docker-.+\.ya?ml$/.test(e)}function Jn(e){return/^Dockerfile(\..+)?$/.test(e)}function Yn(e){return Jn(e)||qn(e)}function Xn(e){return Jn(e)?An:jn}function Zn(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}async function Qn(e,t,n){let r=`${R(n.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),...Ze()});i?.ok||dt(i,r,e,n.cratesIoUrl);let a;try{a=await i.json()}catch{throw Error(`Invalid JSON from ${r}`)}let o=(a.versions||[]).filter(e=>!e.yanked),s={},c={};for(let e of o)e.num&&(s[e.num]={},c[e.num]=e.created_at||``);let l=o[0]?.num??``;return[{name:e,versions:s,time:c,"dist-tags":{latest:l}},t,null,e]}const $n=Ve.map(e=>L(e)).join(`|`);function er(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=L(i),c=L(a);n=n.replace(RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`,`gm`),`$1${o}$2`),n=n.replace(RegExp(`(\\s*${s}\\s*=\\s*\\{\\s*version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`),n=n.replace(RegExp(`(\\[(?:${$n})\\.${s}\\][^\\[]*?version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`)}return n}const tr={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`,"Cargo.toml":`cargo`},nr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function W(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Ue(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function rr(e){for(let[t,{short:n}]of Object.entries(nr))if(t===e||n===e)return t;return``}const G=b({strict:!1,allowPositionals:!0,tokens:!0,options:nr}),K=G.values;for(let[e,t]of G.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=rr(t.value.substring(1)),r=G.tokens[e+1];K[t.name]=[!0],K[n]||(K[n]=[]),r?.kind===`positional`&&r.value?K[n].push(r.value):K[n].push(!0)}const q=G.values,ir=G.positionals,[ar,J,or]=[`magenta`,`red`,`green`].map(e=>q[`no-color`]?String:t=>te(e,String(t))),Y=Q(W(q.greatest)),sr=Q(W(q.prerelease)),cr=Q(W(q.release)),lr=Q(W(q.patch)),ur=Q(W(q.minor)),dr=Q(W(q[`allow-downgrade`])),fr=W(q.modes)||new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`]),pr=typeof q.forgeapi==`string`?R(q.forgeapi):`https://api.github.com`,mr=typeof q.pypiapi==`string`?R(q.pypiapi):`https://pypi.org`,hr=typeof q.jsrapi==`string`?R(q.jsrapi):`https://jsr.io`,gr=typeof q.goproxy==`string`?R(q.goproxy):Wt(),_r=typeof q.cargoapi==`string`?R(q.cargoapi):`https://crates.io`,vr=typeof q.dockerapi==`string`?R(q.dockerapi):`https://hub.docker.com`,yr=Gt();function br(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&ke(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&ke(r)&&(t[n]=r)}return t}function xr(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:xr(e,r)}function Sr(e){try{return h(e,`utf8`)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}}function Cr(e,t){t&&(e.date=t,e.age=Pe(t,{noAffix:!0}))}function wr(e,t,n){let r=Je(String(t));for(let[t,{date:i}]of Object.entries(e))We(i,r,n)||delete e[t]}function Tr(e){let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;return t}function Er(e){console.error(`${Ge()} ${e}`)}const Dr=typeof q.timeout==`string`?Number(q.timeout):0,X={fetchTimeout:Dr||5e3,goProbeTimeout:Dr?Dr/2:2500,forgeApiUrl:pr,pypiApiUrl:mr,jsrApiUrl:hr,goProxyUrl:gr,cratesIoUrl:_r,dockerApiUrl:vr,doFetch:(e,t)=>Qe(e,t,!!q.verbose,Er,ar,or,J),verbose:!!q.verbose};async function Or(e){console.info(q.json?JSON.stringify({message:e}):e),await kr()}async function kr(e,t){if(e){let t=e.stack??e.message,n=e.cause;q.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(J(t)),n instanceof Error?console.info(J(`Caused by: ${n.message}`)):n&&console.info(J(`Caused by: ${typeof n==`string`?n:JSON.stringify(n)}`)))}r===`win32`&&Number(o?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),n(t||e?1:0)}function Ar(e={}){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!U(n.oldOrig)&&(n.old=t===`go`?bn(n.oldOrig):n.oldOrig),t===`go`&&(n.new=bn(n.new)),t===`actions`&&(n.old=I(n.old),n.new=I(n.new)),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t=Tr(e);if(q.json){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`);t.results[n]||(t.results[n]={}),t.results[n][e]||(t.results[n][e]={}),t.results[n][e][a]=i}console.info(JSON.stringify(t))}else t&&console.info(Mr(e));return q[`error-on-outdated`]?t?2:0:q[`error-on-unchanged`]?t?0:2:0}function Z(e,t){r===`win32`&&v(e,0),y(e,t,r===`win32`?{flag:`r+`}:void 0)}const jr=e=>x(e).length;function Mr(e){let t=Object.keys(e).filter(t=>Object.keys(e[t]).length>0),n=t.length>1,r=[n?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],i=new Set;for(let a of t)for(let[t,o]of Object.entries(e[a])){let[e,s]=t.split(`\0`),c=`${a}|${s}`;if(i.has(c))continue;i.add(c);let l=[];l.push(a===`go`?yn(s):s),n&&l.push(a),l.push(Fe(o.old,o.new,J)),l.push(Fe(o.new,o.old,or)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return Ke(r,jr)}function Nr(e,t){return RegExp(`^${L(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Pr(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Nr(e,n):e instanceof RegExp?e:Nr(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(Pr(n,!0,!1));return t}return e}function Fr(e,t){let n=new Set;for(let t of e||[])n.add(Pr(t,!0,!0));for(let e of t||[])n.add(Pr(e,!1,!0));return n}function Ir(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Ue(e)):[]}function Lr(e){return lr===!0||F(e,lr)?new Set([`patch`]):ur===!0||F(e,ur)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Rr(e){return{useGreatest:typeof Y==`boolean`?Y:F(e,Y),usePre:typeof sr==`boolean`?sr:F(e,sr),useRel:typeof cr==`boolean`?cr:F(e,cr),semvers:Lr(e)}}function zr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}function $(e,t,n,r,i){if(i===`engines`&&Re.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Br(t){let n=new Set,r=new Set;if(t)for(let e of t){let t;try{t=m(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile()){let t=u(e);n.add(t),r.add(t)}else if(t?.isDirectory()){for(let t of Object.keys(tr)){let r=l(e,t),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(u(r))}try{for(let t of g(e))if(Yn(t)){let i=l(e,t);try{m(i).isFile()&&(n.add(u(i)),r.add(u(i)))}catch{}}}catch{}let t=u(e).replace(/\\/g,`/`),i;i=t.endsWith(`.github/workflows`)?t:t.endsWith(`.github`)?l(t,`workflows`):l(t,`.github`,`workflows`);for(let e of On(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(tr)){let r=xr(t,e());r&&n.add(u(r))}for(let t of Kn){let r=xr(t,e());r&&n.add(u(r))}try{for(let t of g(e()))if(Yn(t)&&!Kn.includes(t)){let r=l(e(),t);try{m(r).isFile()&&n.add(u(r))}catch{}}}catch{}let t=xr(l(`.github`,`workflows`),e());if(t)for(let e of On(t))n.add(e)}return[n,r]}async function Vr(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=l(e,...t.split(`/`)),r=d(n);try{f(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return n}async function Hr(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);Ye();let e=typeof q.sockets==`number`?q.sockets:96,{help:t,version:n,file:r,types:o,update:l,indirect:d,include:f,exclude:p,pin:m,cooldown:g}=q;t&&(a.write(`usage: updates [options] [files...]
|
|
8
8
|
|
|
9
9
|
Options:
|
|
10
10
|
-u, --update Update versions and write dependency file
|
|
@@ -46,4 +46,4 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
|
|
|
46
46
|
$ updates -f .github
|
|
47
47
|
$ updates -f Dockerfile
|
|
48
48
|
$ updates -f docker-compose.yml
|
|
49
|
-
`),await kr()),n&&(console.info(Xe),await kr());let _={},v={},y={},b={},ee=Date.now(),x=0,te=W(r),S=te instanceof Set?te:ir.length?new Set:!1;if(S instanceof Set)for(let e of ir)S.add(e);let[ne,C]=Br(S),w={},T={},ae=Ir(f),oe=Ir(p),se=br(m),ce=Fr(ae,[]),le=Fr(oe,[]),E=[],ue=[],D={};function O(e,t,n){_.docker||={};for(let r of n)for(let{ref:n}of Rn(e,r)){if(!$(n.fullImage,`docker`,ce,le,`docker`))continue;let e=`${t}${n.fullImage}`;if(_.docker[e])continue;let r=In(n.tag);r&&(_.docker[e]={old:r.version,oldOrig:n.tag},ue.push({key:e,fullImage:n.fullImage,ref:n}))}}for(let e of ne){if(Dn(e)){let t=fr.has(`actions`)||C.has(e),n=fr.has(`docker`)||C.has(e);if(!t&&!n)continue;let r=Sr(e),i=zr(e);if(w[i]={absPath:e,content:r},t){_.actions||={};let e=Array.from(r.matchAll(xn),e=>Sn(e[1])).filter(e=>e!==null);for(let t of e){if(!$(t.name,`actions`,ce,le,`actions`))continue;let e=`${i}${t.name}`;_.actions[e]||(_.actions[e]={old:t.ref},E.push({...t,key:e,apiUrl:Cn(t.host,pr)}))}}n&&(T[i]={absPath:e,content:r,fileType:`workflow`},O(r,i,[jn,Mn,Nn]));continue}let t=s(e);if(Yn(t)){if(!fr.has(`docker`)&&!C.has(e))continue;let n=Sr(e),r=zr(e);T[r]={absPath:e,content:n,fileType:Jn(t)?`dockerfile`:`compose`},O(n,r,[Xn(t)]);continue}let n=tr[t];if(!fr.has(n)&&!C.has(e))continue;b[n]=e,_[n]||(_[n]={});let r=c(u(e)),i=await Vr(r),a=Fr(ae,i?.include??[]),l=Fr(oe,i?.exclude??[]),f={...i?.pin,...se},p=[];Array.isArray(o)?p=o.filter(e=>typeof e==`string`):`types`in i&&Array.isArray(i.types)?p=i.types:n===`npm`?p=Le:n===`pypi`?p=Array.from(ze):n===`go`?p=d?Array.from(Be):Be.filter(e=>e!==`indirect`):n===`cargo`&&(p=Array.from(Ve));let m={};y[n]=Sr(e);try{if(n===`npm`)m=JSON.parse(y[n]);else if(n===`pypi`||n===`cargo`)m=ie(y[n]);else if(n===`go`){let e=fn(y[n]);m.deps=e.deps,m.indirect=e.indirect,m.replace=e.replace}}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}for(let e of p){let t;if(t=n===`npm`||n===`go`?m[e]||{}:He(m,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Ie(t))$(r,n,a,l,e)&&(_[n][`${e}${r}`]={old:Lt(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,a,l,e)&&(_[n][`${e}${r}`]={old:Lt(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`cargo`&&typeof i==`object`&&i&&`version`in i&&!(`git`in i)&&!(`path`in i)&&$(r,n,a,l,e)){let t=String(i.version);ke(t)&&(_[n][`${e}${r}`]={old:Lt(t),oldOrig:t})}else if(n===`npm`&&U(i)&&$(r,n,a,l,e)){let t=Nt(i,r);_[n][`${e}${r}`]={old:t.version,oldOrig:i}}else n!==`go`&&ke(i)&&$(r,n,a,l,e)?_[n][`${e}${r}`]={old:Lt(i),oldOrig:i}:n===`npm`&&Mt(i)&&$(r,n,a,l,e)?_[n][`${e}${r}`]={old:`0.0.0`,oldOrig:i}:n===`npm`&&!U(i)&&$(r,n,a,l,e)?v[`${e}${r}`]={old:i}:n===`go`&&$(r,n,a,l,e)&&(_[n][`${e}${r}`]={old:bn(i),oldOrig:I(i)})}x+=Object.keys(_[n]).length+Object.keys(v).length,D[n]={config:i,projectDir:r,pin:f}}if(_.actions&&(x+=Object.keys(_.actions).length),_.docker&&(x+=Object.keys(_.docker).length),x===0)return Or(`No dependencies found, nothing to do.`);let k=[];for(let t of Object.keys(D)){if(!_[t]||!Object.keys(_[t]).length&&!Object.keys(v).length)continue;let{config:n,projectDir:r,pin:i}=D[t];k.push((async()=>{let a=(await re(Object.keys(_[t]),async e=>{let[i,a]=e.split(`\0`);if(t===`npm`){let{oldOrig:r}=_[t][e];if(r&&U(r))return Pt(a,i,X);if(r&&Mt(r))try{return await jt(a,i,n,q,X)}catch{return delete _[t][e],null}return jt(a,i,n,q,X)}else if(t===`go`)return mn(a,i,_[t][e].oldOrig||_[t][e].old,r,X,yr);else if(t===`cargo`)return Qn(a,i,X);else return Vt(a,i,X)},{concurrency:e})).filter(Boolean);for(let[e,n,r,o]of a){if(e?.error)throw Error(e.error);let{useGreatest:a,usePre:s,useRel:c,semvers:l}=Rr(e.name),u=`${n}${o}`,d=_[t][u].old,f=_[t][u].oldOrig,p=i[o],m=nt(e,{usePre:s,useRel:c,useGreatest:a,semvers:l,range:d,mode:t,pinnedRange:p},{allowDowngrade:dr,matchesAny:F,isGoPseudoVersion:Zt}),h=``;if([`go`,`pypi`,`cargo`].includes(t)&&m)h=m;else if(m)if(f&&Mt(f))h=String(Et()[`save-exact`])===`true`?m:`^${m}`;else if(f&&U(f))if(f.startsWith(`npm:@jsr/`)){let e=/^(npm:@jsr\/[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else if(f.startsWith(`jsr:@`)){let e=/^(jsr:@[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else f.startsWith(`jsr:`)&&(h=`jsr:${m}`);else h=It(d,m,f);if(!m||m===d||f&&f===h){delete _[t][u];continue}let g=``;if(t===`npm`&&e.time?.[m]?g=e.time[m]:t===`pypi`&&e.releases?.[m]?.[0]?.upload_time_iso_8601?g=e.releases[m][0].upload_time_iso_8601:t===`go`&&e.Time?g=e.Time:t===`cargo`&&e.time?.[m]&&(g=e.time[m]),_[t][u].new=h,f&&U(f)&&(_[t][u].newPrint=m),t===`npm`)_[t][u].info=mt(e?.versions?.[m],r,e.name);else if(t===`pypi`)_[t][u].info=mt(e,r,e.info.name);else if(t===`go`){let n=e.newPath||o;_[t][u].info=vn(n)}else t===`cargo`&&(_[t][u].info=`https://crates.io/crates/${o}`);Cr(_[t][u],g)}if(Object.keys(v).length){let n=(await re(Object.entries(v),([e,t])=>{let n=e.split(`\0`)[1];return Bt(e,t,typeof Y==`boolean`?Y:F(n,Y),X)},{concurrency:e})).filter(e=>e!==null);for(let e of n){let{key:n,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=e;_[t][n]={old:v[n].old,new:r,oldPrint:ct.test(o)?o.substring(0,7):o,newPrint:ct.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Cr(_[t][n],c)}}let o=g??n.cooldown;o&&wr(_[t],String(o),ee)})())}if(E.length&&k.push((async()=>{let t=new Map;for(let e of E){let n=`${e.apiUrl}/${e.owner}/${e.repo}`;t.has(n)||t.set(n,{apiUrl:e.apiUrl,owner:e.owner,repo:e.repo,infos:[]}),t.get(n).infos.push(e)}await re(t.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await ut(e,t,n,X),a=i.map(e=>e.name),o=a.map(e=>I(e)).filter(e=>M(e)),s=new Map;for(let e of i)e.commitSha&&s.set(e.commitSha,e.name);let c=new Map;async function l(r){if(c.has(r))return c.get(r);let i=await wn(e,t,n,r,X);return c.set(r,i),i}for(let e of r){let r=_.actions[e.key],c=`https://${e.host||`github.com`}/${t}/${n}`;if(e.isHash){let{usePre:t,useRel:n}=Rr(e.name),u=tt({},o,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:se[e.name]});if(!u){delete _.actions[e.key];continue}let d=a.find(e=>I(e)===u);if(!d){delete _.actions[e.key];continue}let f=i.find(e=>e.name===d)?.commitSha;if(!f||f===e.ref||f.startsWith(e.ref)||e.ref.startsWith(f)){delete _.actions[e.key];continue}let p=s.get(e.ref)||Array.from(s.entries()).find(([t])=>t.startsWith(e.ref))?.[1];r.old=e.ref,r.new=f.substring(0,e.ref.length),r.oldPrint=p||e.ref.substring(0,7),r.newPrint=d,r.info=c,Cr(r,await l(f))}else{let t=B(I(e.ref));if(!t){delete _.actions[e.key];continue}let{useGreatest:n,usePre:s,useRel:u,semvers:d}=Rr(e.name),f=tt({},o,{range:t,semvers:d,usePre:s,useRel:u,useGreatest:n||!0,pinnedRange:se[e.name]});if(!f||f===t){delete _.actions[e.key];continue}let p=a.find(e=>I(e)===f);if(!p){delete _.actions[e.key];continue}let m=Tn(p,e.ref);if(m===e.ref){delete _.actions[e.key];continue}r.new=m,r.info=c;let h=i.find(e=>e.name===p);h?.commitSha&&Cr(r,await l(h.commitSha))}}},{concurrency:e}),g&&wr(_.actions,String(g),ee),Object.keys(_.actions).length||delete _.actions})()),ue.length&&k.push((async()=>{let t=new Map;for(let e of ue)t.has(e.fullImage)||t.set(e.fullImage,[]),t.get(e.fullImage).push(e);await re(t.entries(),async([e,t])=>{let n;try{let[t]=await Bn(e,`docker`,X);n=t}catch{for(let e of t)delete _.docker[e.key];return}for(let e of t){let t=_.docker[e.key],r=t.oldOrig||t.old,{semvers:i}=Rr(e.fullImage),a=Vn(n.tags,r,i);if(!a){delete _.docker[e.key];continue}t.new=a.newTag,t.info=Zn(e.ref),Cr(t,a.date)}},{concurrency:e}),g&&wr(_.docker,String(g),ee),Object.keys(_.docker).length||delete _.docker})()),await Promise.all(k),!Tr(_))return Or(`All dependencies are up to date.`);let A=new Map;if(_.actions)for(let[e,t]of Object.entries(_.actions)){let[n,r]=e.split(`\0`);A.has(n)||A.set(n,[]),A.get(n).push({name:r,oldRef:t.old,newRef:t.new})}let j=new Map;if(_.docker)for(let[e,t]of Object.entries(_.docker)){let[n]=e.split(`\0`);j.has(n)||j.set(n,{}),j.get(n)[e]=t}let de=Ar(_);if(l){for(let e of Object.keys(_))if(Object.keys(_[e]).length){if(e===`actions`){for(let[e,t]of A){let{absPath:n,content:r}=w[e]||{};if(n){try{Z(n,En(r,t))}catch(e){throw Error(`Error writing ${s(n)}: ${e.message}`)}console.info(or(`✨ ${e} updated`))}}continue}if(e===`docker`){for(let[e,t]of j){let n=T[e];if(!n)continue;let{absPath:r,fileType:i}=n,a;try{a=h(r,`utf8`)}catch{continue}try{Z(r,(i===`dockerfile`?Un:i===`compose`?Wn:Gn)(a,t))}catch(e){throw Error(`Error writing ${s(r)}: ${e.message}`)}console.info(or(`✨ ${e} updated`))}continue}try{let t=y[e];if(e===`go`){let[n,r]=gn(t,_[e]);Z(b[e],n),_n(c(u(b[e])),r,Z)}else if(e===`cargo`)Z(b[e],er(t,_[e]));else{let n=e===`npm`?Ft:Ht;Z(b[e],n(t,_[e]))}}catch(t){throw Error(`Error writing ${s(b[e])}: ${t.message}`)}console.info(or(`✨ ${s(b[e])} updated`))}}await kr(void 0,de)}try{await Hr()}catch(e){await kr(e)}export{};
|
|
49
|
+
`),await kr()),n&&(console.info(Xe),await kr());let _={},v={},y={},b={},ee=Date.now(),x=0,te=W(r),S=te instanceof Set?te:ir.length?new Set:!1;if(S instanceof Set)for(let e of ir)S.add(e);let[ne,C]=Br(S),w={},T={},ae=Ir(f),oe=Ir(p),se=br(m),ce=Fr(ae,[]),le=Fr(oe,[]),E=[],ue=[],D={};function O(e,t,n){_.docker||={};for(let r of n)for(let{ref:n}of Rn(e,r)){if(!$(n.fullImage,`docker`,ce,le,`docker`))continue;let e=`${t}${n.fullImage}`;if(_.docker[e])continue;let r=In(n.tag);r&&(_.docker[e]={old:r.version,oldOrig:n.tag},ue.push({key:e,fullImage:n.fullImage,ref:n}))}}for(let e of ne){if(Dn(e)){let t=fr.has(`actions`)||C.has(e),n=fr.has(`docker`)||C.has(e);if(!t&&!n)continue;let r=Sr(e),i=zr(e);if(w[i]={absPath:e,content:r},t){_.actions||={};let e=Array.from(r.matchAll(xn),e=>Sn(e[1])).filter(e=>e!==null);for(let t of e){if(!$(t.name,`actions`,ce,le,`actions`))continue;let e=`${i}${t.name}`;_.actions[e]||(_.actions[e]={old:t.ref},E.push({...t,key:e,apiUrl:Cn(t.host,pr)}))}}n&&(T[i]={absPath:e,content:r,fileType:`workflow`},O(r,i,[jn,Mn,Nn]));continue}let t=s(e);if(Yn(t)){if(!fr.has(`docker`)&&!C.has(e))continue;let n=Sr(e),r=zr(e);T[r]={absPath:e,content:n,fileType:Jn(t)?`dockerfile`:`compose`},O(n,r,[Xn(t)]);continue}let n=tr[t];if(!fr.has(n)&&!C.has(e))continue;b[n]=e,_[n]||(_[n]={});let r=c(u(e)),i=await Vr(r),a=Fr(ae,i?.include??[]),l=Fr(oe,i?.exclude??[]),f={...i?.pin,...se},p=[];Array.isArray(o)?p=o.filter(e=>typeof e==`string`):`types`in i&&Array.isArray(i.types)?p=i.types:n===`npm`?p=Le:n===`pypi`?p=Array.from(ze):n===`go`?p=d?Array.from(Be):Be.filter(e=>e!==`indirect`):n===`cargo`&&(p=Array.from(Ve));let m={};y[n]=Sr(e);try{if(n===`npm`)m=JSON.parse(y[n]);else if(n===`pypi`||n===`cargo`)m=ie(y[n]);else if(n===`go`){let e=fn(y[n]);m.deps=e.deps,m.indirect=e.indirect,m.replace=e.replace,m.tool=e.tool}}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}for(let e of p){let t;if(t=n===`npm`||n===`go`?m[e]||{}:He(m,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Ie(t))$(r,n,a,l,e)&&(_[n][`${e}${r}`]={old:Lt(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,a,l,e)&&(_[n][`${e}${r}`]={old:Lt(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`cargo`&&typeof i==`object`&&i&&`version`in i&&!(`git`in i)&&!(`path`in i)&&$(r,n,a,l,e)){let t=String(i.version);ke(t)&&(_[n][`${e}${r}`]={old:Lt(t),oldOrig:t})}else if(n===`npm`&&U(i)&&$(r,n,a,l,e)){let t=Nt(i,r);_[n][`${e}${r}`]={old:t.version,oldOrig:i}}else n!==`go`&&ke(i)&&$(r,n,a,l,e)?_[n][`${e}${r}`]={old:Lt(i),oldOrig:i}:n===`npm`&&Mt(i)&&$(r,n,a,l,e)?_[n][`${e}${r}`]={old:`0.0.0`,oldOrig:i}:n===`npm`&&!U(i)&&$(r,n,a,l,e)?v[`${e}${r}`]={old:i}:n===`go`&&$(r,n,a,l,e)&&(_[n][`${e}${r}`]={old:bn(i),oldOrig:I(i)})}x+=Object.keys(_[n]).length+Object.keys(v).length,D[n]={config:i,projectDir:r,pin:f}}if(_.actions&&(x+=Object.keys(_.actions).length),_.docker&&(x+=Object.keys(_.docker).length),x===0)return Or(`No dependencies found, nothing to do.`);let k=[];for(let t of Object.keys(D)){if(!_[t]||!Object.keys(_[t]).length&&!Object.keys(v).length)continue;let{config:n,projectDir:r,pin:i}=D[t];k.push((async()=>{let a=(await re(Object.keys(_[t]),async e=>{let[i,a]=e.split(`\0`);if(t===`npm`){let{oldOrig:r}=_[t][e];if(r&&U(r))return Pt(a,i,X);if(r&&Mt(r))try{return await jt(a,i,n,q,X)}catch{return delete _[t][e],null}return jt(a,i,n,q,X)}else if(t===`go`)return mn(a,i,_[t][e].oldOrig||_[t][e].old,r,X,yr);else if(t===`cargo`)return Qn(a,i,X);else return Vt(a,i,X)},{concurrency:e})).filter(Boolean);for(let[e,n,r,o]of a){if(e?.error)throw Error(e.error);let{useGreatest:a,usePre:s,useRel:c,semvers:l}=Rr(e.name),u=`${n}${o}`,d=_[t][u].old,f=_[t][u].oldOrig,p=i[o],m=nt(e,{usePre:s,useRel:c,useGreatest:a,semvers:l,range:d,mode:t,pinnedRange:p},{allowDowngrade:dr,matchesAny:F,isGoPseudoVersion:Zt}),h=``;if([`go`,`pypi`,`cargo`].includes(t)&&m)h=m;else if(m)if(f&&Mt(f))h=String(Et()[`save-exact`])===`true`?m:`^${m}`;else if(f&&U(f))if(f.startsWith(`npm:@jsr/`)){let e=/^(npm:@jsr\/[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else if(f.startsWith(`jsr:@`)){let e=/^(jsr:@[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else f.startsWith(`jsr:`)&&(h=`jsr:${m}`);else h=It(d,m,f);if(!m||m===d||f&&f===h){delete _[t][u];continue}let g=``;if(t===`npm`&&e.time?.[m]?g=e.time[m]:t===`pypi`&&e.releases?.[m]?.[0]?.upload_time_iso_8601?g=e.releases[m][0].upload_time_iso_8601:t===`go`&&e.Time?g=e.Time:t===`cargo`&&e.time?.[m]&&(g=e.time[m]),_[t][u].new=h,f&&U(f)&&(_[t][u].newPrint=m),t===`npm`)_[t][u].info=mt(e?.versions?.[m],r,e.name);else if(t===`pypi`)_[t][u].info=mt(e,r,e.info.name);else if(t===`go`){let n=e.newPath||o;_[t][u].info=vn(n)}else t===`cargo`&&(_[t][u].info=`https://crates.io/crates/${o}`);Cr(_[t][u],g)}if(Object.keys(v).length){let n=(await re(Object.entries(v),([e,t])=>{let n=e.split(`\0`)[1];return Bt(e,t,typeof Y==`boolean`?Y:F(n,Y),X)},{concurrency:e})).filter(e=>e!==null);for(let e of n){let{key:n,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=e;_[t][n]={old:v[n].old,new:r,oldPrint:ct.test(o)?o.substring(0,7):o,newPrint:ct.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`},c&&Cr(_[t][n],c)}}let o=g??n.cooldown;o&&wr(_[t],String(o),ee)})())}if(E.length&&k.push((async()=>{let t=new Map;for(let e of E){let n=`${e.apiUrl}/${e.owner}/${e.repo}`;t.has(n)||t.set(n,{apiUrl:e.apiUrl,owner:e.owner,repo:e.repo,infos:[]}),t.get(n).infos.push(e)}await re(t.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await ut(e,t,n,X),a=i.map(e=>e.name),o=a.map(e=>I(e)).filter(e=>M(e)),s=new Map;for(let e of i)e.commitSha&&s.set(e.commitSha,e.name);let c=new Map;async function l(r){if(c.has(r))return c.get(r);let i=await wn(e,t,n,r,X);return c.set(r,i),i}for(let e of r){let r=_.actions[e.key],c=`https://${e.host||`github.com`}/${t}/${n}`;if(e.isHash){let{usePre:t,useRel:n}=Rr(e.name),u=tt({},o,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:se[e.name]});if(!u){delete _.actions[e.key];continue}let d=a.find(e=>I(e)===u);if(!d){delete _.actions[e.key];continue}let f=i.find(e=>e.name===d)?.commitSha;if(!f||f===e.ref||f.startsWith(e.ref)||e.ref.startsWith(f)){delete _.actions[e.key];continue}let p=s.get(e.ref)||Array.from(s.entries()).find(([t])=>t.startsWith(e.ref))?.[1];r.old=e.ref,r.new=f.substring(0,e.ref.length),r.oldPrint=p||e.ref.substring(0,7),r.newPrint=d,r.info=c,Cr(r,await l(f))}else{let t=B(I(e.ref));if(!t){delete _.actions[e.key];continue}let{useGreatest:n,usePre:s,useRel:u,semvers:d}=Rr(e.name),f=tt({},o,{range:t,semvers:d,usePre:s,useRel:u,useGreatest:n||!0,pinnedRange:se[e.name]});if(!f||f===t){delete _.actions[e.key];continue}let p=a.find(e=>I(e)===f);if(!p){delete _.actions[e.key];continue}let m=Tn(p,e.ref);if(m===e.ref){delete _.actions[e.key];continue}r.new=m,r.info=c;let h=i.find(e=>e.name===p);h?.commitSha&&Cr(r,await l(h.commitSha))}}},{concurrency:e}),g&&wr(_.actions,String(g),ee),Object.keys(_.actions).length||delete _.actions})()),ue.length&&k.push((async()=>{let t=new Map;for(let e of ue)t.has(e.fullImage)||t.set(e.fullImage,[]),t.get(e.fullImage).push(e);await re(t.entries(),async([e,t])=>{let n;try{let[t]=await Bn(e,`docker`,X);n=t}catch{for(let e of t)delete _.docker[e.key];return}for(let e of t){let t=_.docker[e.key],r=t.oldOrig||t.old,{semvers:i}=Rr(e.fullImage),a=Vn(n.tags,r,i);if(!a){delete _.docker[e.key];continue}t.new=a.newTag,t.info=Zn(e.ref),Cr(t,a.date)}},{concurrency:e}),g&&wr(_.docker,String(g),ee),Object.keys(_.docker).length||delete _.docker})()),await Promise.all(k),!Tr(_))return Or(`All dependencies are up to date.`);let A=new Map;if(_.actions)for(let[e,t]of Object.entries(_.actions)){let[n,r]=e.split(`\0`);A.has(n)||A.set(n,[]),A.get(n).push({name:r,oldRef:t.old,newRef:t.new})}let j=new Map;if(_.docker)for(let[e,t]of Object.entries(_.docker)){let[n]=e.split(`\0`);j.has(n)||j.set(n,{}),j.get(n)[e]=t}let de=Ar(_);if(l){for(let e of Object.keys(_))if(Object.keys(_[e]).length){if(e===`actions`){for(let[e,t]of A){let{absPath:n,content:r}=w[e]||{};if(n){try{Z(n,En(r,t))}catch(e){throw Error(`Error writing ${s(n)}: ${e.message}`)}console.info(or(`✨ ${e} updated`))}}continue}if(e===`docker`){for(let[e,t]of j){let n=T[e];if(!n)continue;let{absPath:r,fileType:i}=n,a;try{a=h(r,`utf8`)}catch{continue}try{Z(r,(i===`dockerfile`?Un:i===`compose`?Wn:Gn)(a,t))}catch(e){throw Error(`Error writing ${s(r)}: ${e.message}`)}console.info(or(`✨ ${e} updated`))}continue}try{let t=y[e];if(e===`go`){let[n,r]=gn(t,_[e]);Z(b[e],n),_n(c(u(b[e])),r,Z)}else if(e===`cargo`)Z(b[e],er(t,_[e]));else{let n=e===`npm`?Ft:Ht;Z(b[e],n(t,_[e]))}}catch(t){throw Error(`Error writing ${s(b[e])}: ${t.message}`)}console.info(or(`✨ ${s(b[e])} updated`))}}await kr(void 0,de)}try{await Hr()}catch(e){await kr(e)}export{};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "17.
|
|
4
|
-
"description": "CLI
|
|
3
|
+
"version": "17.11.0",
|
|
4
|
+
"description": "CLI dependency update tool for npm, uv, cargo, go and actions",
|
|
5
5
|
"author": "silverwind",
|
|
6
6
|
"repository": "silverwind/updates",
|
|
7
7
|
"license": "BSD-2-Clause",
|
|
@@ -17,18 +17,18 @@
|
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@types/node": "25.5.0",
|
|
20
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
21
|
-
"eslint": "
|
|
22
|
-
"eslint-config-silverwind": "
|
|
20
|
+
"@typescript/native-preview": "7.0.0-dev.20260323.1",
|
|
21
|
+
"eslint": "10.1.0",
|
|
22
|
+
"eslint-config-silverwind": "127.1.4",
|
|
23
23
|
"p-map": "7.0.4",
|
|
24
24
|
"timerel": "5.8.6",
|
|
25
25
|
"tsdown": "0.21.4",
|
|
26
26
|
"tsdown-config-silverwind": "2.0.2",
|
|
27
27
|
"typescript": "5.9.3",
|
|
28
28
|
"typescript-config-silverwind": "16.0.0",
|
|
29
|
-
"updates-config-silverwind": "
|
|
30
|
-
"versions": "14.2.
|
|
31
|
-
"vitest": "4.1.
|
|
29
|
+
"updates-config-silverwind": "2.0.0",
|
|
30
|
+
"versions": "14.2.4",
|
|
31
|
+
"vitest": "4.1.1",
|
|
32
32
|
"vitest-config-silverwind": "10.6.5"
|
|
33
33
|
}
|
|
34
34
|
}
|