updates 17.16.6 → 17.16.7

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