updates 17.20.4 → 17.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -161,7 +161,7 @@ The `updates()` function accepts all [config options](#config-options).
161
161
 
162
162
  |Variable|Description|
163
163
  |:-|:-|
164
- |`UPDATES_FORGE_TOKENS`|Comma-separated list of `host:token` pairs for authenticating against forge APIs (e.g. `github.com:ghp_xxx,gitea.example.com:tok_xxx`)|
164
+ |`UPDATES_FORGE_TOKENS`|Comma-separated list of `host:token` pairs for authenticating against forge APIs (e.g. `github.com:ghp_xxx,localhost:3500:tok_xxx`). The host must match the URL exactly, port included|
165
165
  |`UPDATES_GITHUB_API_TOKEN`|GitHub API token for authenticating forge API requests|
166
166
  |`GITHUB_API_TOKEN`|Fallback GitHub API token|
167
167
  |`GH_TOKEN`|Fallback GitHub API token|
@@ -171,6 +171,6 @@ The `updates()` function accepts all [config options](#config-options).
171
171
  |`GONOPROXY`|Comma-separated list of Go module patterns to fetch directly, bypassing the proxy|
172
172
  |`GOPRIVATE`|Fallback for `GONOPROXY` when not set|
173
173
 
174
- Token resolution order for forge APIs: `UPDATES_FORGE_TOKENS` (matched by hostname) > `UPDATES_GITHUB_API_TOKEN` > `GITHUB_API_TOKEN` > `GH_TOKEN` > `GITHUB_TOKEN` > `HOMEBREW_GITHUB_API_TOKEN`. The GitHub token fallback is only sent to GitHub itself; any other forge host (e.g. one referenced in a workflow `uses:`) is authenticated only with a matching `UPDATES_FORGE_TOKENS` entry, and otherwise receives no credentials.
174
+ Token resolution order for forge APIs: `UPDATES_FORGE_TOKENS` (matched by host) > `UPDATES_GITHUB_API_TOKEN` > `GITHUB_API_TOKEN` > `GH_TOKEN` > `GITHUB_TOKEN` > `HOMEBREW_GITHUB_API_TOKEN`. The GitHub token fallback is only sent to GitHub itself; any other forge host (e.g. one referenced in a workflow `uses:`) is authenticated only with a matching `UPDATES_FORGE_TOKENS` entry, and otherwise receives no credentials.
175
175
 
176
176
  © [silverwind](https://github.com/silverwind), distributed under BSD licence
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{R as e,Y as t,Z as n,a as r,g as i,i as a,n as o,o as s,r as c,s as l}from"./shared.js";import{exit as u,platform as d,stderr as f,stdout as p,versions as m}from"node:process";import{stripVTControlCharacters as h,styleText as g}from"node:util";const{args:_,positionals:v}=c();if(!_.help&&!_.version)for(let e of o(r(_,v).startDir,_))(async()=>{try{await fetch(e,{method:`HEAD`})}catch{}})();let y=String,b=String,x=!1;async function S(e,t){if(e){let t=e.message??String(e);console.info(x?JSON.stringify({error:t}):y(t))}d===`win32`&&Number(m.node.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),u(t??+!!e)}async function C(){for(let e of[p,f])e?._handle?.setBlocking?.(!0);_.help&&(p.write(`usage: updates [options] [files...]
2
+ import{$ as e,R as t,Z as n,a as r,g as i,i as a,n as o,o as s,r as c,s as l}from"./shared.js";import{exit as u,platform as d,stderr as f,stdout as p,versions as m}from"node:process";import{stripVTControlCharacters as h,styleText as g}from"node:util";const{args:_,positionals:v}=c();if(!_.help&&!_.version)for(let e of o(r(_,v).startDir,_))(async()=>{try{await fetch(e,{method:`HEAD`})}catch{}})();let y=String,b=String,x=!1;async function S(e,t){if(e){let t=e.message??String(e);console.info(x?JSON.stringify({error:t}):y(t))}d===`win32`&&Number(m.node.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),u(t??+!!e)}async function C(){for(let e of[p,f])e?._handle?.setBlocking?.(!0);_.help&&(p.write(`usage: updates [options] [files...]
3
3
 
4
4
  Options:
5
5
  -u, --update Update versions and write dependency file
@@ -44,4 +44,4 @@ import{R as e,Y as t,Z as n,a as r,g as i,i as a,n as o,o as s,r as c,s as l}fro
44
44
  $ updates -f Dockerfile
45
45
  $ updates -f docker-compose.yml
46
46
  $ updates -f Makefile
47
- `),await S()),_.version&&(console.info(e),await S());let t=await a(_,v);!t.noColor&&(t.color||p.isTTY)&&(y=e=>g(`red`,String(e)),b=e=>g(`green`,String(e))),x=!!t.json;let n=await s(t),r=Object.keys(n.results).length>0;if(n.message)console.info(t.json?JSON.stringify({message:n.message}):n.message);else if(r&&(t.json?console.info(JSON.stringify({results:n.results})):console.info(T(n)),t.update))for(let[e,t]of Object.entries(n.results))Object.values(t).some(e=>Object.keys(e).length)&&console.info(b(`✨ ${e} updated`));t.errorOnOutdated?await S(void 0,r?2:0):t.errorOnUnchanged?await S(void 0,r?0:2):await S()}const w=e=>h(e).length;function T(e){let r=Object.keys(e.results),i=r.length>1,a=[i?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],o=new Set;for(let n of r)for(let r of Object.values(e.results[n]))for(let[e,s]of Object.entries(r)){let r=`${n}|${e}|${s.old}|${s.new}`;o.has(r)||(o.add(r),a.push([n===`go`?l(e):e,...i?[n]:[],t(s.old,s.new,y),t(s.new,s.old,b),s.age||``,s.info||``]))}return n(a,w)}try{await C()}catch(e){await S(e)}export{};
47
+ `),await S()),_.version&&(console.info(t),await S());let e=await a(_,v);!e.noColor&&(e.color||p.isTTY)&&(y=e=>g(`red`,String(e)),b=e=>g(`green`,String(e))),x=!!e.json;let n=await s(e),r=Object.keys(n.results).length>0;if(n.message)console.info(e.json?JSON.stringify({message:n.message}):n.message);else if(r&&(e.json?console.info(JSON.stringify({results:n.results})):console.info(T(n)),e.update))for(let[e,t]of Object.entries(n.results))Object.values(t).some(e=>Object.keys(e).length)&&console.info(b(`✨ ${e} updated`));e.errorOnOutdated?await S(void 0,r?2:0):e.errorOnUnchanged?await S(void 0,r?0:2):await S()}const w=e=>h(e).length;function T(t){let r=Object.keys(t.results),i=r.length>1,a=[i?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],o=new Set;for(let e of r)for(let r of Object.values(t.results[e]))for(let[t,s]of Object.entries(r)){let r=`${e}|${t}|${s.old}|${s.new}`;o.has(r)||(o.add(r),a.push([e===`go`?l(t):t,...i?[e]:[],n(s.old,s.new,y),n(s.new,s.old,b),s.age||``,s.info||``]))}return e(a,w)}try{await C()}catch(e){await S(e)}export{};
package/dist/renovate.js CHANGED
@@ -1 +1 @@
1
- import{$ as e,J as t,K as n,Q as r,X as i,q as a,t as o}from"./shared.js";import{join as s}from"node:path";import{readFile as c}from"node:fs/promises";const l=[`renovate.json`,`renovate.json5`,...[...t,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],u={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 d(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=u[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function f(e){return!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length?!1:Object.keys(e).every(e=>!e.startsWith(`match`)||e===`matchPackageNames`)}async function p(e){let t=(await Promise.all(l.map(async t=>{let n=s(e,...t.split(`/`));try{return{path:n,text:await c(n,`utf8`)}}catch{return null}}))).find(e=>e!==null);if(t)return t;try{let t=s(e,`package.json`),n=JSON.parse(await c(t,`utf8`));if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:t,text:JSON.stringify(n.renovate)}}catch{}}function m(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function h(e){return/[*?[\]{}!()|+]/.test(e)}function g(t,n){let r={};if(n.cooldown&&typeof t.minimumReleaseAge==`string`){let e=d(t.minimumReleaseAge);e!==void 0&&e>0&&(r.cooldown=e)}let i=[],a=[],o={};if(Array.isArray(t.ignoreDeps)&&a.push(...t.ignoreDeps.filter(e=>typeof e==`string`&&!!e)),Array.isArray(t.packageRules))for(let n of t.packageRules){if(!n||typeof n!=`object`||!f(n))continue;let t=n.matchPackageNames.filter(e=>typeof e==`string`&&!!e),r=Object.groupBy(t,e=>e.startsWith(`!`)&&e.length>1?`negated`:`positive`),s=r.positive??[],c=r.negated?.map(e=>e.substring(1))??[];if(n.enabled===!1)if(s.length)for(let e of s)a.push(m(e));else for(let e of c)i.push(m(e));if(typeof n.allowedVersions==`string`&&e(n.allowedVersions))for(let e of s)!h(e)&&typeof m(e)==`string`&&(o[e]=n.allowedVersions)}return i.length&&(r.include=i),a.length&&(r.exclude=a),Object.keys(o).length&&(r.pin=o),r}const _={github:(e,t,n)=>`https://raw.githubusercontent.com/${e}/${t}/${n}`,gitlab:(e,t,n)=>`https://gitlab.com/${e}/-/raw/${t}/${n}`,gitea:(e,t,n)=>`https://gitea.com/api/v1/repos/${e}/raw/${n}?ref=${t}`,forgejo:(e,t,n)=>`https://code.forgejo.org/api/v1/repos/${e}/raw/${n}?ref=${t}`};function v(e){if(/^https?:\/\//i.test(e))return{kind:`http`,url:e};let t=e.indexOf(`>`);if(t===-1)return null;let n=e.slice(0,t);if(!Object.hasOwn(_,n))return null;let r=e.slice(t+1).replace(/\([^)]*\)\s*$/,``),i=`HEAD`,a=r.indexOf(`#`);a!==-1&&(i=r.slice(a+1)||`HEAD`,r=r.slice(0,a));let o,s,c=r.indexOf(`//`);if(c!==-1)o=r.slice(c+2),r=r.slice(0,c);else{let e=r.indexOf(`:`);e!==-1&&(s=r.slice(e+1),r=r.slice(0,e))}let l=r.replace(/\/+$/,``);return l.includes(`/`)?{kind:`forge`,forge:n,slug:l,ref:i,name:s,subpath:o}:null}const y=[`default.json`,`default.json5`,`renovate.json`,`renovate.json5`,`.renovaterc.json`,`.renovaterc`];function b(e){return/\.json5?$/.test(e)?[e]:[`${e}.json`,`${e}.json5`]}function x(e){if(e===null)return null;try{let t=o(e);return t&&typeof t==`object`?t:null}catch{return null}}async function S(e,t){if(e.kind===`http`)return x(await t(e.url));let n=_[e.forge],r=async r=>x(await t(n(e.slug,e.ref,r)));if(e.subpath){for(let t of b(e.subpath)){let e=await r(t);if(e)return e}return null}let i=e.name??`default`;for(let t of y){let n=await r(t);if(!n)continue;let a=n.presets?.[i];return a&&typeof a==`object`?a:e.name?null:n}return null}function C(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=Array.isArray(r)&&Array.isArray(t)?[...t,...r]:r}return n}async function w(e,t,n,r){let i={},a=Array.isArray(e.extends)?e.extends:[];for(let e of a){if(typeof e!=`string`||r>=10||n.has(e))continue;let a=v(e);if(!a)continue;let o=await S(a,t);o&&(i=C(i,await w(o,t,new Set(n).add(e),r+1)))}let{extends:o,...s}=e;return C(i,s)}async function T(e,t){let n=``;try{n=new URL(e).hostname}catch{}let{getForgeTokens:r,getFetchOpts:i,githubApiUrl:a}=await import(`./shared2.js`),[o]=n?await r(n,a):[],s={...i(`Bearer`,o).headers};return t&&(s[`if-none-match`]=t),s}function E({noCache:e=!1,timeout:t=1e4}={}){return async r=>{let i=e?null:await n(r),o=await T(r,i?.etag),s;try{s=await fetch(r,{headers:o,signal:AbortSignal.timeout(t)})}catch{return i?.body??null}if(s.status===304&&i)return i.body;if(!s.ok)return i?.body??null;let c;try{c=await s.text()}catch{return i?.body??null}let l=s.headers.get(`etag`);return l&&!e&&a(r,l,c),c}}const D=i(e=>r(e,async e=>{let t=await p(e);if(!t)return null;let n;try{n=o(t.text)}catch(e){throw Error(`Unable to parse renovate config ${t.path}: ${e.message}`)}return!n||typeof n!=`object`?null:{parsed:n,path:t.path}})),O=new Map;async function k(e,t={},n=E()){let r=await D(e);if(!r)return{};let i=O.get(r.path);return i||(i=w(r.parsed,n,new Set,0),O.set(r.path,i)),g(await i,t)}export{k as loadRenovateConfig,E as makePresetFetcher};
1
+ import{J as e,Q as t,X as n,Y as r,et as i,t as a,tt as o}from"./shared.js";import{join as s}from"node:path";import{readFile as c}from"node:fs/promises";const l=[`renovate.json`,`renovate.json5`,...[...n,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.json5`],u={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 d(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=u[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}function f(e){return!Array.isArray(e.matchPackageNames)||!e.matchPackageNames.length?!1:Object.keys(e).every(e=>!e.startsWith(`match`)||e===`matchPackageNames`)}async function p(e){let t=(await Promise.all(l.map(async t=>{let n=s(e,...t.split(`/`));try{return{path:n,text:await c(n,`utf8`)}}catch{return null}}))).find(e=>e!==null);if(t)return t;try{let t=s(e,`package.json`),n=JSON.parse(await c(t,`utf8`));if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:t,text:JSON.stringify(n.renovate)}}catch{}}function m(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function h(e){return/[*?[\]{}!()|+]/.test(e)}function g(e,t){let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=d(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=[],i=[],a={};if(Array.isArray(e.ignoreDeps)&&i.push(...e.ignoreDeps.filter(e=>typeof e==`string`&&!!e)),Array.isArray(e.packageRules))for(let t of e.packageRules){if(!t||typeof t!=`object`||!f(t))continue;let e=t.matchPackageNames.filter(e=>typeof e==`string`&&!!e),n=Object.groupBy(e,e=>e.startsWith(`!`)&&e.length>1?`negated`:`positive`),s=n.positive??[],c=n.negated?.map(e=>e.substring(1))??[];if(t.enabled===!1)if(s.length)for(let e of s)i.push(m(e));else for(let e of c)r.push(m(e));if(typeof t.allowedVersions==`string`&&o(t.allowedVersions))for(let e of s)!h(e)&&typeof m(e)==`string`&&(a[e]=t.allowedVersions)}return r.length&&(n.include=r),i.length&&(n.exclude=i),Object.keys(a).length&&(n.pin=a),n}const _={github:(e,t,n)=>`https://raw.githubusercontent.com/${e}/${t}/${n}`,gitlab:(e,t,n)=>`https://gitlab.com/${e}/-/raw/${t}/${n}`,gitea:(e,t,n)=>`https://gitea.com/api/v1/repos/${e}/raw/${n}?ref=${t}`,forgejo:(e,t,n)=>`https://code.forgejo.org/api/v1/repos/${e}/raw/${n}?ref=${t}`};function v(e){if(/^https?:\/\//i.test(e))return{kind:`http`,url:e};let t=e.indexOf(`>`);if(t===-1)return null;let n=e.slice(0,t);if(!Object.hasOwn(_,n))return null;let r=e.slice(t+1).replace(/\([^)]*\)\s*$/,``),i=`HEAD`,a=r.indexOf(`#`);a!==-1&&(i=r.slice(a+1)||`HEAD`,r=r.slice(0,a));let o,s,c=r.indexOf(`//`);if(c!==-1)o=r.slice(c+2),r=r.slice(0,c);else{let e=r.indexOf(`:`);e!==-1&&(s=r.slice(e+1),r=r.slice(0,e))}let l=r.replace(/\/+$/,``);return l.includes(`/`)?{kind:`forge`,forge:n,slug:l,ref:i,name:s,subpath:o}:null}const y=[`default.json`,`default.json5`,`renovate.json`,`renovate.json5`,`.renovaterc.json`,`.renovaterc`];function b(e){return/\.json5?$/.test(e)?[e]:[`${e}.json`,`${e}.json5`]}function x(e){if(e===null)return null;try{let t=a(e);return t&&typeof t==`object`?t:null}catch{return null}}async function S(e,t){if(e.kind===`http`)return x(await t(e.url));let n=_[e.forge],r=async r=>x(await t(n(e.slug,e.ref,r)));if(e.subpath){for(let t of b(e.subpath)){let e=await r(t);if(e)return e}return null}let i=e.name??`default`;for(let t of y){let n=await r(t);if(!n)continue;let a=n.presets?.[i];return a&&typeof a==`object`?a:e.name?null:n}return null}function C(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=Array.isArray(r)&&Array.isArray(t)?[...t,...r]:r}return n}async function w(e,t,n,r){let i={},a=Array.isArray(e.extends)?e.extends:[];for(let e of a){if(typeof e!=`string`||r>=10||n.has(e))continue;let a=v(e);if(!a)continue;let o=await S(a,t);o&&(i=C(i,await w(o,t,new Set(n).add(e),r+1)))}let{extends:o,...s}=e;return C(i,s)}async function T(e,t){let{getForgeTokens:n,getFetchOpts:r,githubApiUrl:i,urlHost:a}=await import(`./shared2.js`),o=a(e),[s]=o?await n(o,i):[],c={...r(`Bearer`,s).headers};return t&&(c[`if-none-match`]=t),c}function E({noCache:t=!1,timeout:n=1e4}={}){return async i=>{let a=t?null:await e(i),o=await T(i,a?.etag),s;try{s=await fetch(i,{headers:o,signal:AbortSignal.timeout(n)})}catch{return a?.body??null}if(s.status===304&&a)return a.body;if(!s.ok)return a?.body??null;let c;try{c=await s.text()}catch{return a?.body??null}let l=s.headers.get(`etag`);return l&&!t&&r(i,l,c),c}}const D=t(e=>i(e,async e=>{let t=await p(e);if(!t)return null;let n;try{n=a(t.text)}catch(e){throw Error(`Unable to parse renovate config ${t.path}: ${e.message}`)}return!n||typeof n!=`object`?null:{parsed:n,path:t.path}})),O=new Map;async function k(e,t={},n=E()){let r=await D(e);if(!r)return{};let i=O.get(r.path);return i||(i=w(r.parsed,n,new Set,0),O.set(r.path,i)),g(await i,t)}export{k as loadRenovateConfig,E as makePresetFetcher};
package/dist/shared.js CHANGED
@@ -1,8 +1,8 @@
1
- import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{parseArgs as a,styleText as o}from"node:util";import{basename as s,dirname as c,isAbsolute as l,join as u,relative as d,resolve as f}from"node:path";import{accessSync as p,globSync as m,lstatSync as h,readFileSync as g,readdirSync as _,statSync as v,truncateSync as y,writeFileSync as ee}from"node:fs";import{access as te,mkdir as b,readFile as x,rename as S,writeFile as C}from"node:fs/promises";import{createHash as ne}from"node:crypto";import{homedir as w}from"node:os";import{pathToFileURL as T}from"node:url";const E=/^\[\[([^\]]+)\]\]$/,re=/^\[([^[\]]+)\]$/;function ie(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=le(i).trim();if(!a)continue;let o=E.exec(a);if(o){let e=t,r=ce(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=re.exec(a);if(s){n=M(t,ce(s[1]));continue}let c=A(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=ce(l),f=M(n,d.slice(0,-1)),p=d[d.length-1],m=D(u);if((u.startsWith(`[`)||u.startsWith(`{`))&&!se(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${le(r[n])}`,!se(t));n++);e=n,f[p]=O(t)}else if(m){let t=u.slice(3),n=e+1;for(;n<r.length;n++){let e=r[n].indexOf(m);if(e>=0){t+=(t?`
1
+ import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{parseArgs as a,styleText as o}from"node:util";import{basename as s,dirname as c,isAbsolute as l,join as u,relative as d,resolve as f}from"node:path";import{accessSync as p,globSync as m,lstatSync as h,readFileSync as g,readdirSync as _,statSync as v,truncateSync as y,writeFileSync as ee}from"node:fs";import{access as te,mkdir as b,readFile as x,rename as S,writeFile as C}from"node:fs/promises";import{Buffer as ne}from"node:buffer";import{createHash as re}from"node:crypto";import{homedir as w}from"node:os";import{pathToFileURL as T}from"node:url";const ie=/^\[\[([^\]]+)\]\]$/,E=/^\[([^[\]]+)\]$/;function ae(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=fe(i).trim();if(!a)continue;let o=ie.exec(a);if(o){let e=t,r=de(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=E.exec(a);if(s){n=j(t,de(s[1]));continue}let c=k(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=de(l),f=j(n,d.slice(0,-1)),p=d[d.length-1],m=oe(u);if((u.startsWith(`[`)||u.startsWith(`{`))&&!D(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${fe(r[n])}`,!D(t));n++);e=n,f[p]=se(t)}else if(m){let t=u.slice(3),n=e+1;for(;n<r.length;n++){let e=r[n].indexOf(m);if(e>=0){t+=(t?`
2
2
  `:``)+r[n].slice(0,e);break}t+=(t?`
3
- `:``)+r[n]}e=n,f[p]=O(m+t+m)}else f[p]=O(u)}return t}function D(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function O(e){if(e.startsWith(`[`)){let t=[],n=j(e,`]`);for(let r of k(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(O(e))}return t}return e.startsWith(`{`)?oe(e):e.startsWith(`"""`)?N(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?N(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ae(e)}function ae(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function oe(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of k(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=O(e.slice(n+1).trim())}return t}function se(e){let t=0,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===`{`||i===`[`)t++;else if((i===`}`||i===`]`)&&(t--,t===0))return!0}return!1}function k(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function ce(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function le(e){let t=A(e,`#`);return t<0?e:e.slice(0,t)}function*ue(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 i===`"`||i===`'`?n=i:i===t&&(yield r)}}function A(e,t){return ue(e,t).next().value??-1}function j(e,t){let n=-1;for(let r of ue(e,t))n=r;return n}function M(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]={}),e=e[n];return e}function N(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`
4
- `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const de=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,fe=new Map;function P(e){if(typeof e!=`string`)return null;let t=fe.get(e);if(t!==void 0)return t;let n=de.exec(e.trim());if(!n)return fe.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 fe.set(e,s),s}function F(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 pe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function I(e,t){let n=pe(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=F(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function me(e){return P(e)?.version??null}function L(e){return P(e)}const R=new Map,he=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function z(e){if(typeof e!=`string`)return null;let t=R.get(e);if(t!==void 0)return t;let n=he.exec(e);if(!n)return R.set(e,null),null;let r={version:`${n[1]}.${n[2]||`0`}.${n[3]||`0`}`};return R.set(e,r),r}function ge(e,t){let n=P(e),r=P(t);return!n||!r?null:_e(n,r)}function _e(e,t){if(e.version===t.version)return null;let n=I(e,t),r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(pe(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function B(e,t){let n=P(e),r=P(t);return n&&r?I(n,r):null}function V(e,t){return(B(e,t)??-1)>0}function ve(e,t){return(B(e,t)??-1)>=0}function ye(e,t){return(B(e,t)??1)<0}function be(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=P(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function xe(e,t){let n=I(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 H(e,t,n){return`${e}.${t}.${n}-0`}function Se(e){return e.replace(/([~^])\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a)=>{let o=Number(n),s=r===void 0?0:Number(r),c=i===void 0?0:Number(i),l=(t===`~`?r:i)===void 0?``:a,u;return u=r===void 0?H(o+1,0,0):t===`~`?H(o,s+1,0):o===0?i!==void 0&&s===0?H(0,0,c+1):H(0,s+1,0):H(o+1,0,0),`>=${o}.${s}.${c}${l} <${u}`})}function Ce(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${H(p+1,0,0)}`:`<${H(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function U(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${H(t+1,0,0)}`:`>=${t}.${n}.0 <${H(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${H(t+1,0,0)}`:`<${H(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function we(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>U(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>U(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${U(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${U(n,Number(r),0,!0)}`),e)}const Te=new Map;function Ee(e){let t=Te.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=Ce(t),t=Se(t),t=we(t),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=be(t);if(!n)return Te.set(e,null),null;i.push(n)}if(i.length===0)return Te.set(e,null),null;r.push(i)}let i=r.length?r:null;return Te.set(e,i),i}function De(e,t){return t.some(t=>!xe(e,t))?!1:e.prerelease.length>0?t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch):!0}function W(e,t){let n=P(e);if(!n)return!1;let r=Ee(t);if(!r)return!1;for(let e of r)if(e.length===0||De(n,e))return!0;return!1}function Oe(e){return typeof e==`string`&&Ee(e)?e:null}const ke=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ae={"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`},je={sec:`second`,min:`minute`};function Me(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Ne(e,{now:t,noAffix:n=!1,times:r=ke,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ae,longUnits:l=!1}={}){let u=(t===void 0?Date.now():Me(t))-Me(e);if(Number.isNaN(u))return o||String(e);let d=u<0;if(d&&(u=-u),u<i)return a;let f=0,p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(u>=t[1])){f=Math.trunc(u/t[0]),p=(l&&je[t[2]]||t[2])+(f>1?`s`:``);break}}let m=`${f} ${p}`,h=n?m:d?`in ${m}`:`${m} ago`;return s?c[h]??h:h}function Pe(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;){let n=e.charCodeAt(t);if(n>=48&&n<=57)break;t++}r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const Fe=/^([^<>=~!]+)(?:==|>=?|<=?|~=)([0-9.a-z]+)$/;function Ie(e){let t=[];for(let n of e){let e=Fe.exec(n.replaceAll(/\s+/g,``));if(!e)continue;let r=e[1].replace(/\[.*?\]$/,``);r&&t.push({name:r,version:e[2]})}return t}const Le=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Re=[`node`,`deno`,`bun`],G=[`.github`,`.gitea`,`.forgejo`],ze={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Be=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Ve=[`deps`,`indirect`,`replace`,`tool`],He=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function Ue(e,t){if(t===!0)return!0;if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function We(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ge(e){return e.split(`,`).filter(Boolean)}function Ke(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function qe(e,t,n=` `){let r=Array(e[0].length).fill(0),i=Array(e.length);for(let n=0;n<e.length;n++){let a=e[n],o=Array(a.length);for(let e=0;e<a.length;e++){let n=t(a[e]);o[e]=n,n>r[e]&&(r[e]=n)}i[n]=o}let a=``;for(let t=0;t<e.length;t++){let o=e[t],s=o.length-1;for(let e=0;e<=s;e++)if(e>0&&(a+=n),a+=o[e],e!==s){let n=r[e]-i[t][e];n>0&&(a+=` `.repeat(n))}t<e.length-1&&(a+=`
5
- `)}return a}const Je={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ye(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Je[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Xe(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${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(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function Ze(e){try{return await e}catch{return null}}const q=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);async function Qe(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=c(n);if(r===n)return null;n=r}}function $e(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function et(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const tt=u(r===`win32`?t.LOCALAPPDATA||u(w(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(w(),`.cache`),`updates`);let nt=null;const rt=new Map;function it(e){let t=rt.get(e);return t===void 0&&(t=ne(`sha256`).update(e).digest(`hex`).substring(0,16),rt.set(e,t)),t}async function at(e){try{let t=await x(u(tt,`${it(e)}.cache`),`utf8`),n=t.indexOf(`
6
- `);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}}const ot=new Set;let st=0;function ct(e,t,r){let i=(async()=>{try{await(nt??=b(tt,{recursive:!0}))}catch{nt=null;return}try{let i=u(tt,`${it(e)}.cache`),a=`${i}.${n}-${st++}.tmp`;await C(a,`${t}\n${r}`),await S(a,i)}catch{}})();ot.add(i),(async()=>{await i,ot.delete(i)})()}async function lt(){for(;ot.size;)await Promise.all(ot)}var ut=`17.20.4`;function dt(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/864e5>=t}const ft=ut,pt=5e3,mt=2500,ht=`https://api.github.com`,J={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:ht,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},Y=e=>e[0]===`v`?e.substring(1):e,gt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function _t(e,t){return{headers:{"user-agent":`updates/${ft}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const vt=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function yt(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&vt.has(t)}async function bt(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=yt(t),n}}async function X(e,t,n={}){for(let r=0;;r++)try{return await e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})}catch(e){if(r>=2||!e?.transient)throw e}}async function xt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function St(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function Ct(e,t,n,r,i){let a=St(await xt(t),r);return i&&!n.noCache&&ct(e,i,a),{body:a,res:t}}async function wt(e,t,n={},r){let i=t.noCache?null:await at(e),a=n.headers,o=i?{...a,"if-none-match":i.etag}:a,s=await X(t,e,{...n,headers:o});return s?s.status===304&&i?{body:i.body,res:s}:s.ok?Ct(e,s,t,r,s.headers?.get?.(`etag`)):{res:s}:{res:void 0}}async function Tt(e,t,n={},r){if(!t.noCache){let t=await at(e);if(t)return{body:t.body}}let i=await X(t,e,n);return i?i.ok?Ct(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function Et(e,t,n){let r=e.get(t);return r||e.set(t,r=(async()=>{try{return await n()}catch(n){throw e.delete(t),n}})()),r}function Dt(e){return(L(e)?.prerelease.length??0)>0}function Ot(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const kt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,At=new WeakMap;function jt(e){let t=At.get(e);if(t)return t;let n=new Set(e);return n.add(`prerelease`),e.has(`patch`)&&n.add(`prepatch`),e.has(`minor`)&&n.add(`preminor`),e.has(`major`)&&n.add(`premajor`),At.set(e,n),n}function Mt(e,t,n){let r=Ot(e)||t;return{effectiveUsePre:r,effectiveSemvers:r?jt(n):n}}function Nt(e,t,{useRel:n,allowDowngrade:r,name:i}){let a=Z(e),o=Z(t);if(!a||!o)return!0;let s=Ot(e)||Dt(e),c=Dt(t);return s&&!c?ve(o,a)||n:!c&&ye(o,a)?Ue(i,r):!0}function Z(e){return z(e)?.version??``}function Pt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:u}){let d=Z(n);if(!d)return null;let f=L(kt.exec(n)?.[0]??``)??L(d),{effectiveUsePre:p,effectiveSemvers:m}=Mt(n,i,r),h=e?.time,g=!!h,_=o||!g,v=!!(c&&l),y=!!s&&!W(f.version,s)||a&&f.prerelease.length>0,ee=0,te=!1,b=f;for(let e of t){let t=L(e);if(!t?.version||t.prerelease.length&&(!p||a)||!y&&I(t,f)<=0||s&&!W(t.version,s))continue;let n;if(v&&(n=u?u(e):g?h[e]:void 0,!dt(n,c,l)))continue;let r=_e(f,t);if(!(!r||!m.has(r))){if(_){if(te&&I(t,b)<=0)continue}else{let t=Date.parse(n??h[e]);if(!(t>=0&&t>ee))continue;ee=t}b=t,te=!0}}return b.version}function Ft(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function It(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l,allowDowngrade:u}){if(n===`*`||n.includes(`||`)||/\d\s/.test(n))return null;let d=[],f;if(t===`pypi`){let t=e.releases;d=Object.keys(t),f=e=>t?.[e]?.[0]?.upload_time_iso_8601}else if(t===`npm`||t===`cargo`)d=Object.keys(e.versions);else if(t===`go`){let t=Z(n);if(!t)return null;let{effectiveUsePre:r,effectiveSemvers:d}=Mt(n,a,o),f=e=>Dt(e)&&(!r||i),p={useRel:i,allowDowngrade:u,name:e.name},m=e.old||n,h=(e,n)=>{let r=Z(e);if(!r||Ft(e)||f(e))return!1;let i=ge(m,e)??ge(t,r);return!i||!d.has(i)||!Nt(m,e,p)||!dt(n,c,l)?!1:!s||W(r,s)};return h(e.new,e.Time)?e.new:h(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}let p=Pt(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:f});if(!p)return null;if(r)return p;{let r=``,d=``,f=!1;t===`pypi`?(d=e.info.version,r=Z(e.info.version),f=Dt(d)):(r=e[`dist-tags`].latest,f=Dt(r));let m=Z(n),h=Ot(n),g=Dt(p),_={useRel:i,allowDowngrade:u,name:e.name};if(!i&&a||h&&g)return p;if(h&&!g)return Nt(n,p,_)?p:null;let v=ge(m,r);return v&&v!==`prerelease`&&!o.has(v.replace(/^pre/,``))||i&&f?p:ye(r,m)&&!f?Nt(n,r,_)?r:V(p,m)?p:null:!h&&f&&!a||s&&!W(r,s)||c&&l&&!dt(t===`pypi`?e.releases?.[d||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?p:d||r}}const Lt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&Lt.set(e.substring(0,t),e.substring(t+1))}let Rt;async function zt(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function Bt(){return Rt??=zt()}const Vt=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function Ht(){return Array.from(new Set(Vt.map(e=>t[e]).filter(e=>!!e)))}let Ut;function Wt(){let e=Ht();return e.length?Promise.resolve(e):Ut??=(async()=>{try{let{stdout:e}=await(await Bt())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const Gt=new Map;async function Kt(e,t){if(!e)return[];let n=Lt.get(e);if(n)return[n];let r=``;try{r=new URL(t).hostname}catch{}return e===`api.github.com`||e===`github.com`||e===r?Wt():[]}async function qt(e,t,n){let r;try{r=new URL(e).hostname}catch{r=``}let i=await Kt(r,t.forgeApiUrl),a=e=>{let t=_t(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return X(t,e,a());let o=r?Gt.get(r):void 0;if(o)return X(t,e,a(o));for(let n of i){let i=await X(t,e,a(n));if(i.status!==401&&i.status!==403)return r&&Gt.set(r,n),i}return X(t,e,a())}function Jt(e,t){let n=Y(t);if(!me(n))return null;let r=``,i=``;for(let t of e){let e=Y(t);me(e)&&(!r||V(e,i))&&(r=t,i=e)}return r&&V(i,n)?r:null}function Yt(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Xt=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function Zt(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Qt(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function $t(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function en(e,t,n){let r=t.noCache?null:await at(e),i=await qt(e,t,r?{"if-none-match":r.etag}:void 0);if(i?.status===304&&r)return r.body;if(!i?.ok)return null;let a=await n(i),o=i.headers.get(`etag`);return o&&!t.noCache&&ct(e,o,a),a}async function tn(e,t){let n=await en(e,t,async e=>JSON.stringify({link:e.headers.get(`link`)||``,tags:$t(await e.json())}));if(!n)return null;try{let e=JSON.parse(n);return{tags:e.tags||[],link:e.link||``}}catch{return null}}async function nn(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await tn(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Math.min(Number(new URL(n[1]).searchParams.get(`page`)),10);if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>tn(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function rn(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}const an=e=>Number(e[0])>=2e7;function on(e,t){let n=Y(e).split(`.`),r=Y(t).split(`.`);return n.length<r.length?!1:!an(n)||an(r)}function sn(e,t,n=``){let r=Y(e),i=Y(t).split(`.`).length,a=r.split(`.`),o=i>=3?r:Array.from({length:i},(e,t)=>a[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${o}${n}`}function cn(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const ln=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function un({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of ln)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=Yt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${cn(a)}/${e.directory}`)),a||t||``)}const dn={"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 fn(e){return e instanceof RegExp?/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e:RegExp(`^${q(e).replaceAll(`\\*`,`.*`)}$`,`i`)}function pn(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(Ge)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function mn(e){for(let[t,{short:n}]of Object.entries(dn))if(t===e||n===e)return t;return``}function hn(e){return new Set(e.map(fn))}function gn(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(Ge):[]}function _n(e){let t={},n=Array.isArray(e)?e:[e];for(let e of n){if(typeof e!=`string`)continue;let n=e.indexOf(`=`);if(n===-1)continue;let r=e.slice(0,n),i=e.slice(n+1);r&&i&&Oe(i)&&(t[r]=i)}return t}function vn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:hn(e)}async function yn(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await te(r)}catch{return null}try{return{configDir:e,default:(await import(T(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const bn=et(e=>Qe(e,yn));async function xn(e,t={}){let n=await bn(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t);return{...await i(n?.configDir??e,r.inherit?.renovate,o),...r}}function Sn(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();/^(["']).*\1$/s.test(i)&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function Cn(e){try{return Sn(g(e,`utf-8`))}catch{return}}function wn(t){let n=e();for(;;){let e=u(n,t);try{if(v(e).isFile())return e}catch{}let r=c(n);if(r===n)break;n=r}}function Tn(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function En(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=Cn(e);t&&(o.push(t),s.push(e))}i||(c(u(`/etc`,e,`config`)),c(u(`/etc`,`${e}rc`))),a&&(c(u(a,`.config`,e,`config`)),c(u(a,`.config`,e)),c(u(a,`.${e}`,`config`)),c(u(a,`.${e}rc`))),c(wn(`.${e}rc`));let l=Tn(`${e}_`);return l.config&&c(l.config),Object.assign({},...o,l,s.length?{configs:s,config:s[s.length-1]}:void 0)}const Dn=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,On=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,kn=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,An=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,jn=/(@[^/]+\/)?([^/]+)/g;function Mn(e){let t=e.match(jn);return t?t[t.length-1]:e}const Nn=J.registry;let Pn=null;const Fn=new Map;function In(){return Pn??=En(`npm`,{registry:Nn})}function Ln(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Rn(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Ln(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Ln(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:Ln(o),type:`Basic`}}function zn(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Rn(`//${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:Ln(i),type:`Basic`}}function Bn(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Vn(e,t){let n=In(),r=e.startsWith(`@`)?e.split(`/`)[0]:``,i=`${r}:${t}`,a=Fn.get(i);if(a)return a;let o;if(r){let e=gt(Bn(r,n));if(e!==t)try{let t=zn(e,n);t?.token&&(o={auth:t,registry:e})}catch{}}return o??={auth:zn(t,n),registry:t},Fn.set(i,o),o}function Hn(e,t,n){let r=gt(typeof n.registry==`string`&&n.registry||t.registry||In().registry||Nn);return{...Vn(e,r),originalRegistry:r}}function Un(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Wn=new Map,Gn=new Map,Kn=new Map;function qn(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]={};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function Jn(e,t,n,r,i){let{auth:a,registry:o}=Hn(e,n,r),s=Un(o,t===`resolutions`?Mn(e):e);return[await Et(Wn,s,async()=>{let t=_t(a?.type,a?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await wt(s,i,t,qn);return`body`in n||rn(n.res,s,e,o),JSON.parse(n.body)}),o]}async function Yn(e,t,n,r,i){let{auth:a,registry:o}=Hn(e,n,r),s=Un(o,e,t);return Et(Gn,s,async()=>{try{let n=_t(a?.type,a?.token),r=await Tt(s,i,n,e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0}));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())}let d=Un(o,e);return l||=(await Wn.get(d))?.time?.[t]||``,l||=(await Ze(Et(Kn,d,async()=>{let e=await X(i,d,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})}function Xn(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Zn(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}const Qn=[/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/,/^jsr:@([^/]+)\/([^@]+)@(.+)$/],$n=/^@([^/]+)\/(.+)$/;function er(e,t){for(let t of Qn){let n=t.exec(e);if(n)return{scope:n[1],name:n[2],version:n[3]}}if(e.startsWith(`jsr:`)&&!e.startsWith(`jsr:@`)){let n=$n.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function tr(e,t){if(!$n.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`,r=await wt(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))}));`body`in r||rn(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return[{name:e,"dist-tags":{latest:i.latest},versions:a,time:o},t.jsrApiUrl]}function nr(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 rr(e,t){let n=/^(<\s*)(\d+(?:\.\d+){0,2})$/.exec(e);if(!n)return null;let[,r,i]=n,{major:a,minor:o,patch:s}=L(t),c=i.split(`.`).length,l;return l=c===1?`${a+1}`:c===2?`${a}.${o+1}`:i.endsWith(`.0.0`)?`${a+1}.0.0`:`${a}.${o}.${s+1}`,`${r}${l}`}function ir(e,t,n){let r=n||e;if(/^>\s*\d/.test(r))return e;let i=rr(r,t);if(i)return i;let a=e.replace(An,t);if(!n||n===e)return a;let o=/^([\^~]|>=\s*)([\d.]+)$/.exec(n);if(!o)return a;let[,s,c]=o,l=t.split(/[-+]/)[0];if(l!==t)return a;let u=c.split(`.`).length,d=l.split(`.`);return d.length===u?a:`${s}${d.slice(0,u).join(`.`)}`}function Q(e){if(/[xX*]/.test(e))return e;let t=e.match(kn);return t?.length===1?e.replace(kn,Z(t[0])):e}async function ar(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=await en(r,n,async e=>{let{sha:t,commit:n}=JSON.parse(await e.text())[0];return JSON.stringify([{sha:t,commit:{committer:n?.committer,author:n?.author}}])});if(!e)return{hash:``,commit:{}};let{sha:t,commit:i}=JSON.parse(e)[0];return{hash:t,commit:i}}catch{return{hash:``,commit:{}}}}async function or(e,t,n){return(await nn(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function sr(e,t,n){let r=t.old.replace(Dn,``),[,i,a,o]=On.exec(r)||[];if(!i||!a||!o)return null;let s=e=>{let n=t.old.lastIndexOf(o);return t.old.slice(0,n)+e+t.old.slice(n+o.length)};if(Xt.test(o)){let{hash:t,commit:r}=await ar(i,a,n);if(!t)return null;let c=Qt(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:s(l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let t=Jt(await or(i,a,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function cr(e){let t={};for(let[n,r]of Object.entries(e.releases??{}))t[n]=(r??[]).slice(0,1).map(e=>e.upload_time_iso_8601?{upload_time_iso_8601:e.upload_time_iso_8601}:{});let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function lr(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await wt(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},cr);if(`body`in r)return[JSON.parse(r.body),null];rn(r.res,n,e,t.pypiApiUrl)}function ur(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`(['"])(${q(a)} *(?:\\[[^\\]]+\\])? *[<>=~]+ *)${q(o)}\\1`,`g`),(n,r,i)=>`${r}${i}${t[e].new}${r}`)}return n}function dr(){let e=t.GOPROXY||`${J.goproxy},direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return gt(e)}return J.goproxy}function fr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const pr=new Map;function mr(e){let t=pr.get(e);if(t)return t;let n=``;for(let t=0;t<e.length;t++){let r=e[t];if(r===`*`)n+=`[^/]*`;else if(r===`?`)n+=`[^/]`;else if(r===`[`&&e.includes(`]`,t+1)){let r=e.indexOf(`]`,t+1);n+=`[${e.slice(t+1,r).replace(/\\/g,`\\\\`)}]`,t=r}else n+=q(r)}return pr.set(e,t=RegExp(`^${n}(?:/.*)?$`)),t}function hr(e,t){return t.some(t=>mr(t).test(e))}function gr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const _r=/\/v(\d+)$/,vr=/^gopkg\.in\/.*?\.v(\d+)$/;function yr(e){let t=vr.exec(e)??_r.exec(e);return t?Number.parseInt(t[1]):1}function br(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(_r,``);return t<=1?n:`${n}/v${t}`}function xr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Y(t).split(`.`)[0]);return Number.isNaN(n)||n===yr(e)?e:br(e,n)}const Sr=/^require\s*\(/,Cr=/^replace\s*\(/,wr=/^tool\s*\(/,Tr=/^use\s*\(/,Er=/^replace\s+/,Dr=/^(\S+)\s+(v\S+)/,Or=/^require\s+(\S+)\s+(v\S+)/,kr=/^tool\s+(\S+)/,Ar=/^use\s+(\S+)/,jr=/^(\S+)/,Mr=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Nr=/^replace\s+(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/;function Pr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Fr(e,t){let n=(t?Mr:Nr).exec(e);if(!n)return null;let[,r,i,a,o]=n;return{origModule:r,origVersion:i??``,targetModule:a,targetVersion:o??``}}function Ir(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Ft(n)}function Lr(e,t){return[{name:e,old:t,new:t},null]}async function Rr(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 zr(e,t,n,r,i){let a=n?.Version??r,o=n?.Time??i,s=n?.path??e;return[{name:e,old:t,new:Y(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:Y(r),sameMajorTime:i},null]}function Br(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(Sr.test(i)){c=!0;continue}if(Cr.test(i)){l=!0;continue}if(wr.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&o.push(i);continue}let s=kr.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||Er.test(i)){let e=Fr(i,l);e&&(e.targetVersion&&!Pr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||a.add(e.origModule));continue}let f=(c?Dr:Or).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=n[a]?n:t[a]?t:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function Vr(e,n,r,i,a){let o=yr(e),s=async(e,n)=>{try{let{stdout:r}=await(await Bt())(`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=Ir(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(br(e,o+1),a.goProbeTimeout)]);return l?zr(e,r,await Rr(o,u,t=>s(br(e,t),a.goProbeTimeout)),l.Version,l.Time):Lr(e,r)}async function Hr(e,t,n,r,i,a){if(hr(e,a))return Vr(e,t,n,r,i);let o=gr(e),s=yr(e),c=async t=>{let n=br(e,t);try{let e=await i.doFetch(`${i.goProxyUrl}/${gr(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});return e.ok?{...await e.json(),path:n}:null}catch{return null}},l=Ir(e,t,n),[u,d]=await Promise.all([X(i,`${i.goProxyUrl}/${o}/@latest`,{headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return Lr(e,n);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Lr(e,n)}return zr(e,n,await Rr(s,d,c),f,p)}function Ur(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=xr(s,l);u===s?n=n.replace(RegExp(`(${q(s)}) +v${q(c)}`,`g`),`$1 v${l}`):(n=n.replace(RegExp(`${q(s)} +v${q(c)}`,`g`),`${u} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${q(s)}(/\\S+)?\\s*$`,`gm`),`$1${u}$2`)),r[s]=u)}return[n,r]}function Wr(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=r.map(([e])=>e).sort((e,t)=>t.length-e.length),o=RegExp(`"(${a.map(q).join(`|`)})(/|")`,`g`),s=m(`**/*.go`,{cwd:e});for(let t of s){let r=u(e,t),a=g(r,`utf8`),s=a.replace(o,(e,t,n)=>`"${i.get(t)}${n}`);s!==a&&n(r,s)}}function Gr(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(Tr.test(r)){i=!0;continue}if(Cr.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=jr.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=Ar.exec(r);if(o){t.push(o[1]);continue}if(a||Er.test(r)){let e=Fr(r,a);e?.targetVersion&&!Pr(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function Kr(e){let t=`https://${qr(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${cn(t)}/${a.join(`/`)}`,n.href}return t}function qr(e){return _r.test(e)?c(e):e}function Jr(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Yr=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Xr(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:Xt.test(o)}}function Zr(e,t){return e?e===`github.com`?ht:`https://${e}/api/v1`:t}async function Qr(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await at(a);if(e)return e.body}try{let e=await qt(a,i);if(!e.ok)return``;let t=Qt(await e.json());return t&&!i.noCache&&ct(a,`immutable`,t),t}catch{return``}}function $r(e,t){return sn(L(Y(e))?.version??Y(e),t)}function ei(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i,newComment:a}of t){let t=`(uses:\\s*['"]?(?:https?:\\/\\/)?)${q(e)}@${q(r)}(?![\\w.-])`;a&&(n=n.replace(RegExp(`${t}([ \\t]*#[ \\t]*)v?\\d\\S*`,`g`),`$1${e}@${i}$2${a}`)),n=n.replace(new RegExp(t,`g`),`$1${e}@${i}`)}return n}const ti=RegExp(`(?:^|/)(?:${G.map(q).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function ni(e){return ti.test(e.replace(/\\/g,`/`))}function ri(e){let t=new Set;try{for(let n of _(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of _(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const ii=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,ai=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gim,oi=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,si=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,ci=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm,li=/^(?:index\.)?docker\.io$/;function ui(e){let t=e.split(`/`);return t.length>1&&li.test(t[0])&&t.shift(),t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`),repo:t[t.length-1]}}function di(e){let{registry:t,namespace:n,repo:r}=ui(e);if(t)return[e];let i=n===`library`?[r,`library/${r}`]:[`${n}/${r}`];return[...new Set([e,...i,...i.map(e=>`docker.io/${e}`)])]}function fi(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`);if(t===-1||e.lastIndexOf(`/`)>t)return null;let n=e.substring(0,t),r=e.substring(t+1);if(!r||!ii.test(r))return null;let{registry:i,namespace:a,repo:o}=ui(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function pi(e){let t=ii.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function mi(e,t){let n=pi(t);return n?sn(e,n.version,n.suffix):t}function hi(e,t){let n=[];for(let r of e.matchAll(t)){let e=fi(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const gi=new WeakMap;function _i(e,t,n){let r=gi.get(n);return r||gi.set(n,r=new Map),Et(r,`${e}/${t}`,()=>vi(e,t,n))}async function vi(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=e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated}))}),c=async e=>{try{let t=await wt(a(e),n,o,s);return`body`in t?JSON.parse(t.body):null}catch{return null}},l=await c(1);if(!l)return r;let u=Math.min(Math.ceil((l.count||0)/100),10),d=u<2?[]:await Promise.all(Array.from({length:u-1},(e,t)=>c(t+2)));for(let e of[l,...d])for(let t of e?.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function yi(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await wt(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({digest:e.digest}));if(!(`body`in e))return null;let t=JSON.parse(e.body).digest;return typeof t==`string`?t:null}catch{return null}}async function bi(e,t){let{registry:n,namespace:r,repo:i}=ui(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:await _i(r,i,t),name:e},null]}function xi(e,t,n,r,i,a){let o=pi(t);if(!o)return null;let s=z(Y(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=pi(t);if(!e||e.suffix!==o.suffix||!on(e.version,o.version))continue;let d=z(Y(e.version))?.version;if(!d||a&&!W(d,a)||!dt(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=ge(c,d);!f||!n.has(f)||V(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=mi(c,t),f=d in e?d:l;return f===t?null:{newTag:f,date:u}}const Si=`(?![\\w.@+-])`;function Ci(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(q(t),q(a)),`$1${t}:${i.new}`)}return r}function wi(e,t){return Ci(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}${Si}`,`gi`)])}function Ti(e,t){return Ci(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}${Si}`,`g`)])}function Ei(e,t){return Ci(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}${Si}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}${Si}`,`g`)])}const Di=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function Oi(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function ki(e){return/^Dockerfile(\..+)?$/.test(e)}function Ai(e){return ki(e)||Oi(e)}function ji(e){return ki(e)?ai:oi}function Mi(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Ni=[`Makefile`,`makefile`,`GNUmakefile`];function Pi(e){return Ni.includes(e)||e.endsWith(`.mk`)}const Fi=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,Ii=RegExp(`${Fi}${String.raw`(\S+)@(v\d\S*)\s*$`}`),Li=/^[^/\s]+\.[^/\s]+\//;function Ri(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function zi(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Ri(n),r=Ii.exec(e);if(!r)continue;let[,i,a]=r;Li.test(i)&&t.push({installPath:i,version:a})}return t}const Bi=RegExp(`${Fi}${String.raw`(\S+)\s*$`}`),Vi=/@(sha256:[0-9a-f]{64})$/;function Hi(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Ui(e){let t=null,n=e,r=Vi.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=fi(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function Wi(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Bi.exec(Ri(n));if(!e)continue;let r=Ui(e[1]);r&&t.push(r)}return t}const Gi=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function Ki(e){let t=Gi.exec(e);return t?e.slice(0,t.index+t[0].length):null}async function qi(e,t){let n=Ki(e);if(n)return n;let r=e.split(`/`);return(await Promise.all(Array.from({length:r.length-1},async(e,n)=>{let i=r.slice(0,r.length-n).join(`/`);try{return(await t.doFetch(`${t.goProxyUrl}/${gr(i)}/@latest`,{signal:AbortSignal.timeout(t.goProbeTimeout)})).ok?i:null}catch{return null}}))).find(Boolean)??null}async function Ji(e,t,n,r,i,a){let o=await qi(e,r);if(!o)return null;let[s]=await Hr(o,`tool`,Y(t),n,r,i),c=It(s,{...a,mode:`go`,range:Y(t)});if(!c)return null;let l=s.newPath??xr(o,c),u=`${l}${e.slice(o.length)}`,d=sn(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:Kr(l)}}async function Yi(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await bi(a,t),c=xi(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await yi(r,i,c.newTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:Mi(e.ref)}}function Xi(e,t){for(let{oldSpec:n,newSpec:r}of t){let t=RegExp(`^([^#\\n]*?)${q(n)}(?=[\\s#]|$)`,`gm`);e=e.replace(t,`$1${r}`)}return e}const Zi=new Map,Qi=e=>({versions:(e.versions||[]).filter(e=>!e.yanked).map(e=>({num:e.num,created_at:e.created_at}))});async function $i(e,t){let n=`${gt(t.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`;return[await Et(Zi,n,async()=>{let r=await wt(n,t,_t(),Qi);`body`in r||rn(r.res,n,e,t.cratesIoUrl);let i;try{i=JSON.parse(r.body)}catch{throw Error(`Invalid JSON from ${n}`)}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??``}}}),null]}function ea(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];me(a)&&$e(t,i,a)}return t}const ta=/^\d/;function na(e,t){return ta.test(e)?ir(Q(`^${e}`),t,`^${e}`).replace(/^\^/,``):ir(Q(e),t,e)}function ra(e,t,n){let r=e.get(t);if(!r)return;let i=ta.test(n)?`^${n}`:n,a;for(let e of r)W(e,i)&&(!a||V(e,a))&&(a=e);return a}const ia=He.map(q).join(`|`);function aa(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*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${s}(["'])`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${ia})\\.${o}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function oa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}function sa(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=oa(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const ca=/[*?{[]/;async function la(e,t,n,r=32){let i=e.filter(e=>!e.startsWith(`!`)),a=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),o=new Set(a.flatMap(e=>m(e,{cwd:t})).map(e=>e.replace(/\\/g,`/`))),s=new Set,c=[];for(let e of i){let r=ca.test(e)?m(e,{cwd:t}).map(e=>f(u(t,e))):[f(u(t,e))];for(let e of r){let r=d(t,e).replace(/\\/g,`/`);if(o.has(r))continue;let i=u(e,n);s.has(i)||(s.add(i),c.push({absPath:i,memberPath:`./${r}`}))}}return(await K(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await x(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function ua(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){let n=e.trim();if(!n||n.startsWith(`#`))continue;if(!n.startsWith(`-`))break;let r=/^\s*-\s+['"]?([^'"#\s]+)['"]?/.exec(e);r&&t.push(r[1])}}return t}const da=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`,`make`]),fa={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},pa={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},ma=(e,t)=>typeof e==`string`?gt(e):typeof t==`function`?t():t,ha=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function ga(e,t){let n=new Map,r=new Set(e),i=t;for(;r.size;){for(let e of r){let t=u(i,e);try{p(t),n.set(e,t),r.delete(e)}catch{}}let e=c(i);if(e===i)break;i=e}return n}async function _a(e,t){let n=await K(e,async e=>{try{return[e,await x(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function va(e,t){t&&(e.date=t,e.age=Ne(t,{noAffix:!0}))}const ya=(e,t,n)=>`${e}${t}${n}`,ba=e=>Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0);function xa(e,t){return t===`go`?[e,qr(e)]:t===`docker`?di(e):[e]}const Sa=(e,t)=>t.map(t=>e[t]).find(Boolean);function $(e,t,n,r,i,a=t){if(i===`engines`&&Re.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let o=xa(e,a);for(let e of r)if(o.some(t=>e.test(t)))return!1;for(let e of n)if(o.some(t=>e.test(t)))return!0;return!n.size}function Ca(t){let n=new Set;if(t)for(let e of t){let t;try{t=h(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t.isFile())n.add(f(e));else if(t.isDirectory()){try{for(let t of _(e,{withFileTypes:!0}))t.isFile()&&(Object.hasOwn(ze,t.name)||Ai(t.name)||Pi(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=G.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&G.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:G.map(e=>u(t,e));for(let e of a)for(let t of ri(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(G),r=[...Object.keys(ze),...Di,...Ni,...G];for(let[i,a]of ga(r,e()))if(t.has(i))for(let e of ri(a))n.add(e);else n.add(f(a));try{for(let t of _(e(),{withFileTypes:!0})){let r=Ai(t.name)&&!Di.includes(t.name),i=Pi(t.name)&&!Ni.includes(t.name);t.isFile()&&(r||i)&&n.add(f(u(e(),t.name)))}}catch{}}for(let e of Array.from(n)){let t=s(e);Object.hasOwn(pa,t)&&n.delete(u(c(e),pa[t].supersedes))}return n}function wa(e,t){r===`win32`&&y(e,0),ee(e,t,r===`win32`?{flag:`r+`}:void 0)}function Ta(e){let t={results:{}};for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r)){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!Xn(i.oldOrig)&&(i.old=n===`go`?Jr(i.oldOrig):i.oldOrig),n===`go`?i.new=Jr(i.new):n===`actions`&&(i.old=Y(i.old),i.new=Y(i.new)),delete i.oldPrint,delete i.newPrint,delete i.oldOrig,delete i.date;let[r,a]=e.split(`\0`),o=t.results[n]??={};(o[r]??={})[a]=i}return t}let Ea=!1;async function Da(t={}){if(!Ea){let{enableDnsCache:e}=await import(`./dns.js`);e(),Ea=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=Xe(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=ma(t.forgeapi,J.forgeapi),d=ma(t.pypiapi,J.pypiapi),p=ma(t.jsrapi,J.jsrapi),m=ma(t.goproxy,dr),h=ma(t.cargoapi,J.cargoapi),g=ma(t.dockerapi,J.dockerapi),_=fr(),v=!n.noColor&&(n.color||i.isTTY),y=e=>v?t=>o(e,String(t)):String,ee=y(`magenta`),te=y(`green`),b=y(`red`),S={fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):mt,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:m,cratesIoUrl:h,dockerApiUrl:g,doFetch:async(e,t)=>{n.verbose&&console.error(`${Ke()} ${ee(t?.method||`GET`)} ${e}`);let r=await bt(e,t);return n.verbose&&console.error(`${Ke()} ${r.ok?te(r.status):b(r.status)} ${e}`),r},noCache:!!n.noCache},C=vn(n.greatest),ne=vn(n.prerelease),w=vn(n.release),T=vn(n.patch),E=vn(n.minor),re=vn(n.allowDowngrade),D=n.modes?.length?new Set(n.modes):da,O=(n.overrides??[]).map(e=>({include:e.include?.length?hn(e.include):void 0,exclude:e.exclude?.length?hn(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Ye(String(e.cooldown))})),ae=(e,t)=>e.include&&t.every(t=>!Ue(t,e.include))?!1:!e.exclude||t.every(t=>!Ue(t,e.exclude)),oe=O.some(e=>e.cooldownDays);D.has(`actions`)&&Wt();let se=new Map;function k(e,t){let n=se.get(e);if(!n){let r=t??[e],i=e=>r.some(t=>Ue(t,e)),a=i(C),o=i(ne),s=i(w),c=i(T),l=i(E),u=i(re),d;for(let e of O)ae(e,r)&&(e.greatest!==void 0&&(a=e.greatest),e.prerelease!==void 0&&(o=e.prerelease),e.release!==void 0&&(s=e.release),e.patch!==void 0&&(c=e.patch),e.minor!==void 0&&(l=e.minor),e.allowDowngrade!==void 0&&(u=e.allowDowngrade),e.cooldownDays!==void 0&&(d=e.cooldownDays));let f=c?fa.patch:l?fa.minor:fa.major;n={useGreatest:a,usePre:o,useRel:s,semvers:f,allowDowngrade:u,cooldownOverride:d},se.set(e,n)}return n}let ce=hn(n.include??[]),le=hn(n.exclude??[]),ue=n.pin??{},A={},j={},M={},N=Date.now(),de=e=>{let t=n.cooldown??e;return t?Ye(String(t)):0},fe=e(),P=e=>e.replace(`${fe}/`,``).replace(`${fe}\\`,``),F=(e,t,n,r,i,a)=>{A[e][ya(t,n,r)]={old:i,oldOrig:a}},pe=(e,t,n,r)=>{Xn(r)?F(`npm`,e,t,n,er(r,n).version,r):Oe(r)?F(`npm`,e,t,n,Q(r),r):Zn(r)?F(`npm`,e,t,n,`0.0.0`,r):j[ya(e,t,n)]={old:r}},I=(e,t,n,r,i,a)=>{for(let o of r){let r=(e===`npm`||e===`go`?t[o]:We(t,o))||{};if(Array.isArray(r)){if(e!==`pypi`)continue;for(let{name:t,version:s}of Ie(r))$(t,e,i,a,o)&&F(e,o,n,t,Q(s),s)}else if(typeof r==`string`){let[t,s]=r.split(`@`);$(t,e,i,a,o)&&F(e,o,n,t,Q(s),s)}else for(let[t,s]of Object.entries(r))$(t,e,i,a,o)&&(e===`npm`?pe(o,n,t,s):e===`go`?F(e,o,n,t,Jr(s),Y(s)):Oe(s)&&F(e,o,n,t,Q(s),s))}},L=Ca(n.files?.length?new Set(n.files):!1),R=await _a(Array.from(L).filter(e=>{if(ni(e))return D.has(`actions`)||D.has(`docker`);let t=s(e);if(Ai(t))return D.has(`docker`);if(Pi(t))return D.has(`make`);let n=ze[t];return!!n&&D.has(n)}),r),he={},z={},ge={},_e=[],B=null,V=[],ve=[],ye=[],be=[],xe=[],H={},Se={noCache:n.noCache,timeout:n.timeout||5e3},Ce=et(async e=>{let t=await xn(e,Se);return{dirConfig:t,include:t.include?.length?hn([...n.include??[],...t.include]):ce,exclude:t.exclude?.length?hn([...n.exclude??[],...t.exclude]):le}});async function U(e){let{dirConfig:t,include:n,exclude:r}=await Ce(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:{...t.pin,...ue}}}function we(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Le:e===`pypi`?Be:e===`go`?n.indirect?Ve:Ve.filter(e=>e!==`indirect`):e===`cargo`?He:[]}function Te(e,t,n,r){A.docker??={};for(let i of n)for(let{ref:n}of hi(e,i)){if(!$(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(A.docker[e])continue;let i=pi(n.tag);i&&(A.docker[e]={old:i.version,oldOrig:n.tag},be.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function Ee(e){let{dirConfig:t,include:n,exclude:r}=await Ce(e);return{include:n,exclude:r,pin:t.pin??{},cooldownDays:de(t.cooldown)}}let De=new Set,W=new Map;for(let e of L){let t=s(e);if(Object.hasOwn(pa,t))De.add(pa[t].mode);else if(t===`Cargo.toml`){let t=R.get(e);if(!t)continue;try{let n=ie(t);W.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&De.add(`cargo`)}catch{}}}let ke=(e,t,n,r,i,a)=>{let o=M[e]??=[],s=!o.length&&!De.has(e),c=s?`.`:P(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:de(i.cooldown)}),s&&(H[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},Ae=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of R.keys()){if(ni(e)){let t=D.has(`actions`),n=D.has(`docker`),r=R.get(e),i=P(e),a=await Ee(c(e));if(he[i]={absPath:e,content:r},t){A.actions??={};let e=Array.from(r.matchAll(Yr),e=>Xr(e[1])).filter(e=>e!==null);for(let t of e){if(!$(t.name,`actions`,a.include,a.exclude,`actions`))continue;let e=`${i}${t.name}`;A.actions[e]||(A.actions[e]={old:t.ref},ye.push({...t,key:e,apiUrl:Zr(t.host,l),filePin:a.pin,fileCooldownDays:a.cooldownDays}))}}n&&(z[i]={absPath:e,content:r,fileType:`workflow`},Te(r,i,[oi,si,ci],a));continue}let t=s(e);if(Ai(t)){let n=R.get(e),r=P(e),i=ki(t)?`dockerfile`:`compose`,a=await Ee(c(e));z[r]={absPath:e,content:n,fileType:i},Te(n,r,[ji(t)],a);continue}if(Pi(t)){let t=R.get(e),n=P(e),r=await Ee(c(e));ge[n]={absPath:e,content:t},A.make??={};let i={projectDir:c(e),filePin:r.pin,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of zi(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=`${n}${e}`;A.make[t]||(A.make[t]={old:Y(a),oldOrig:a},xe.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Wi(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=`${n}${e.writtenImage}`;if(A.make[t])continue;let a=pi(e.ref.tag);if(!a)continue;let o=Hi(e.writtenImage,e.ref.tag,e.digest);A.make[t]={old:a.version,oldOrig:e.ref.tag},xe.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=ze[t];if(t===`go.work`){A[n]??={};let t=c(f(e)),i=R.get(e);B={file:e,content:i};let a=Gr(i),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p]=await Promise.all([U(t),K(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await x(n,`utf8`)}}catch{return null}},{concurrency:r})]),m=we(n,o);H[n]={modeConfig:o,projectDir:t,pin:d};for(let e of p){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=Br(i),o=c(r);_e.push({absPath:r,content:i,projectDir:o,memberPath:t}),I(n,a,t===`.`?``:`|${t}`,m,s,l)}for(let[e,t]of Object.entries(a.replace))$(e,n,s,l,`replace`)&&F(n,`replace`,``,e,Jr(t),Y(t));continue}if(t===`go.mod`&&_e.some(t=>t.absPath===f(e))||t===`package.json`&&ve.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){A[n]??={};let t=R.get(e),i=W.get(e)??ie(t),a=c(f(e)),o=ga([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,l=Array.isArray(s)&&s.length,[{modeConfig:u,modeInclude:d,modeExclude:p,pin:m},h,g]=await Promise.all([U(a),o?x(o,`utf8`):Promise.resolve(null),l?la(s,a,`Cargo.toml`,r):Promise.resolve([])]),_=we(n,u),v=h?ea(h):new Map,y=(e,t)=>{for(let r of _){let i=We(e,r)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if($(e,n,d,p,r))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=a.version;Oe(i)&&F(n,r,t,e,ra(v,e,i)??Q(i),i)}else typeof a==`string`&&Oe(a)&&F(n,r,t,e,ra(v,e,a)??Q(a),a)}}};if(l){H[n]={modeConfig:u,projectDir:a,pin:m},y(i,``),V.push({absPath:f(e),content:t,memberPath:`.`});for(let e of g)V.push(e),y(Ae(e.absPath,()=>ie(e.content)),`|${e.memberPath}`)}else y(i,ke(n,e,t,a,u,m));continue}if(t===`pnpm-workspace.yaml`){A[n]??={};let t=c(f(e)),i=ua(R.get(e)),a=u(t,`package.json`),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p,m]=await Promise.all([U(t),Ze(x(a,`utf8`)),la(i,t,`package.json`,r)]),h=we(n,o);if(H[n]={modeConfig:o,projectDir:t,pin:d},p!==null){let e=Ae(a,()=>JSON.parse(p));ve.push({absPath:f(a),content:p,memberPath:`.`}),I(n,e,``,h,s,l)}for(let e of m){let t=Ae(e.absPath,()=>JSON.parse(e.content));ve.push(e),I(n,t,`|${e.memberPath}`,h,s,l)}continue}A[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await U(i),m=we(n,a),h=R.get(e),g=ke(n,e,h,i,a,p);I(n,Ae(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?ie(h):n===`go`?Br(h):{}),g,m,o,d)}if(!ba(A)&&!Object.keys(j).length)return{results:{},message:`No dependencies found, nothing to do.`};let je=[],Me=!!de(H.npm?.modeConfig.cooldown)||(M.npm??[]).some(e=>e.modeCooldownDays)||Object.keys(A.npm??{}).some(e=>k(e.split(`\0`)[1]).cooldownOverride),Ne={registry:n.registry,needsDates:Me};for(let[e,t]of Object.entries(H)){let n=A[e]&&Object.keys(A[e]).length>0,i=e===`npm`&&Object.keys(j).length>0;if(!n&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=t,c=de(a.cooldown);je.push((async()=>{let t=new Map;for(let n of M[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let n={modeConfig:a,projectDir:o,pin:s,modeCooldownDays:c},i=e=>{let r=e.indexOf(`|`);return r!==-1&&t.get(e.slice(r))||n},l=new Map,u=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let[r,a]=t.split(`\0`),{modeCooldownDays:o}=i(r);if(!o&&!oe)continue;let s=k(a).cooldownOverride??o;s&&!dt(n,s,N)&&delete e[t]}},d=A[e];if(await K(Object.keys(d),async t=>{let[n,r]=t.split(`\0`),a=oa(n),{modeConfig:o,projectDir:s,pin:c,modeCooldownDays:u}=i(n),f=d[t],p;if(e===`npm`)if(f.oldOrig&&Xn(f.oldOrig))p=await tr(r,S);else if(f.oldOrig&&Zn(f.oldOrig)){let e=await Ze(Jn(r,a,o,Ne,S));if(!e){delete d[t];return}p=e}else p=await Jn(r,a,o,Ne,S);else p=e===`go`?await Hr(r,a,f.oldOrig||f.old,s,S,_):e===`cargo`?await $i(r,S):await lr(r,S);let[m,h]=p;if(m.error)throw Error(m.error);let{useGreatest:g,usePre:v,useRel:y,semvers:ee,allowDowngrade:te,cooldownOverride:b}=k(m.name),{old:x,oldOrig:C}=f,ne=c[r],w=b??u,T=It(m,{usePre:v,useRel:y,useGreatest:g,semvers:ee,range:x,mode:e,pinnedRange:ne,allowDowngrade:te,cooldownDays:w||void 0,now:w?N:void 0}),E=``;if((e===`go`||e===`pypi`)&&T)E=T;else if(e===`cargo`&&T&&C)E=na(C,T);else if(T)if(C&&Zn(C))E=String(In()[`save-exact`])===`true`?T:`^${T}`;else if(C&&Xn(C)){let e=ha.exec(C);e?E=`${e[1]}${T}`:C.startsWith(`jsr:`)&&(E=`jsr:${T}`)}else E=ir(x,T,C);if(!T||T===x||C&&C===E){delete d[t];return}let re=(e===`pypi`?m.releases?.[T]?.[0]?.upload_time_iso_8601:e===`go`?m.Time:e===`cargo`?m.time?.[T]:``)||``;f.new=E,C&&Xn(C)&&(f.newPrint=T),e===`npm`?l.set(t,{name:r,promise:Yn(m.name,T,o,Ne,S)}):e===`pypi`?f.info=un(m,h,m.info.name):e===`go`?f.info=Kr(m.newPath||r):e===`cargo`&&(f.info=`https://crates.io/crates/${r}`),va(f,re)},{concurrency:r}),await Promise.all(Array.from(l,async([e,{name:t,promise:n}])=>{let r=await n,i=d[e];i&&(i.info=un({repository:r.repository,homepage:r.homepage},null,t),r.date&&va(i,r.date))})),e===`npm`&&Object.keys(j).length){let e=(await K(Object.entries(j),([e,t])=>sr(e,t,S),{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:s}of e){let e=d[t]={old:j[t].old,new:n,oldPrint:Xt.test(a)?a.substring(0,7):a,newPrint:Xt.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&va(e,s)}}u(d)})())}ye.length&&je.push((async()=>{await K(Map.groupBy(ye,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a=await nn(t,n,i,S),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=Y(e.name);me(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=et(e=>Qr(t,n,i,e,S));async function d(e){let t=new Set;for(let n=0;n<20;n++){let n=Pt({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!e.cooldownDays)return{version:n,tag:r,commitSha:i,date:``};let a=i?await u(i):``;if(dt(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await K(e,async({key:e,host:t,ref:r,name:a,isHash:o,filePin:s,fileCooldownDays:f})=>{let p=A.actions[e],m=`https://${t||`github.com`}/${n}/${i}`,h=ue[a]??s[a],g=r;o?g=l.get(r)??l.entries().find(([e])=>e.startsWith(r))?.[1]??``:Zt(r)||(g=``);let _=g?Z(Y(g)):``;if(!_){delete A.actions[e];return}let{usePre:v,useRel:y,semvers:ee,cooldownOverride:te}=k(a),b=te??f,x=await d({range:_,semvers:ee,usePre:v,useRel:y,useGreatest:!0,pinnedRange:h,cooldownDays:b||void 0,now:b?N:void 0});if(!x){delete A.actions[e];return}let{tag:S,commitSha:C,date:ne}=x;if(o){if(!C||C.startsWith(r)||r.startsWith(C)){delete A.actions[e];return}p.old=r,p.new=C.substring(0,r.length),p.oldPrint=g,p.newPrint=S}else{let t=$r(S,r);if(t===r){delete A.actions[e];return}p.new=c.has(t)?t:S}p.info=m;let w=ne||(C?await u(C):``);w&&va(p,w)},{concurrency:r})},{concurrency:r}),Object.keys(A.actions).length||delete A.actions})()),be.length&&je.push((async()=>{await K(Map.groupBy(be,e=>e.fullImage).entries(),async([e,t])=>{let n;try{let[t]=await bi(e,S);n=t}catch{for(let e of t)delete A.docker[e.key];return}let r=xa(e,`docker`);for(let i of t){let t=A.docker[i.key],a=t.oldOrig||t.old,{semvers:o,cooldownOverride:s}=k(e,r),c=Sa(ue,r)??Sa(i.filePin,r),l=s??i.fileCooldownDays,u=xi(n.tags,a,o,l||void 0,l?N:void 0,c);if(!u){delete A.docker[i.key];continue}t.new=u.newTag,t.info=Mi(i.ref),va(t,u.date)}},{concurrency:r}),Object.keys(A.docker).length||delete A.docker})()),xe.length&&je.push((async()=>{await K(xe,async e=>{let t=xa(e.name,e.kind),{useGreatest:n,usePre:r,useRel:i,semvers:a,allowDowngrade:o,cooldownOverride:s}=k(e.name,t),c=Sa(ue,t)??Sa(e.filePin,t),l=s??e.fileCooldownDays,u={semvers:a,useGreatest:n,usePre:r,useRel:i,allowDowngrade:o,pinnedRange:c,cooldownDays:l||void 0,now:l?N:void 0},d=A.make[e.key],f;if(e.kind===`go`){let t=await Ze(Ji(e.installPath,e.version,e.projectDir,S,_,u));if(!t){delete A.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,d.new=t.newVersion,f=t}else{let t=await Ze(Yi(e.image,S,u));if(!t){delete A.make[e.key];return}e.newSpec=Hi(e.image.writtenImage,t.newTag,e.image.digest?t.newDigest:null),d.new=t.newTag,f=t}d.info=f.info,f.date&&va(d,f.date)},{concurrency:r}),Object.keys(A.make).length||delete A.make})());try{await Promise.all(je)}finally{await lt()}if(!ba(A))return{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=sa(A[e],r.memberPath);Object.keys(t).length&&wa(r.absPath,n(r.content,t))}},t=new Map;for(let[e,n]of Object.entries(A.actions??{})){let[r,i]=e.split(`\0`),a=Xt.test(n.old)?n.newPrint:void 0;$e(t,r,{name:i,oldRef:n.old,newRef:n.new,newComment:a})}let n=new Map;for(let[e,t]of Object.entries(A.docker??{})){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;for(let e of xe)!e.newSpec||!A.make?.[e.key]||$e(r,e.key.split(`\0`)[0],{oldSpec:e.oldSpec,newSpec:e.newSpec});let i=Object.keys(A).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(A[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=he[e]||{};if(!t)continue;let i=ei(r,n);wa(t,i),z[e]&&(z[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=z[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;wa(r,(a===`dockerfile`?wi:a===`compose`?Ti:Ei)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=ge[e];n&&wa(n.absPath,Xi(n.content,t))}continue}if(a===`go`){for(let e of[..._e,...M.go??[]]){let t=sa(A[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=Ur(e.content,t);n!==e.content&&wa(e.absPath,n),Wr(e.projectDir,r,wa)}if(B){let e={};for(let[t,n]of Object.entries(A[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=Ur(B.content,e);t!==B.content&&wa(B.file,t)}}}else a===`cargo`?(e(a,V,aa),e(a,M.cargo??[],aa)):a===`npm`?(e(a,ve,nr),e(a,M.npm??[],nr)):e(a,M[a]??[],ur)}}return Ta(A)}function Oa(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function ka(e){let t=pn(e);if(t!==!1)return t===!0||Array.from(t).map(Oa)}function Aa(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=v(n).isDirectory()}catch{}return r?n:c(n)}function ja(e,t){let n=pn(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Aa(r[0])}}function Ma(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:dn,...e!==void 0&&{args:e}}),n=t.values;for(let[e,r]of t.tokens.entries()){if(r.kind!==`option`||!r.value?.startsWith(`-`))continue;let i=r.value.startsWith(`--`)?2:1,a=mn(r.value.substring(i));if(!a)continue;let o=t.tokens[e+1],s=n[r.name];if(Array.isArray(s)){let e=s.indexOf(r.value);e!==-1&&s.splice(e,1)}else n[r.name]=!0;let c=o?.kind===`positional`&&o.value?o.value:!0;dn[a]?.multiple?(n[a]??=[]).push(c):n[a]=c}return{args:n,positionals:t.positionals}}async function Na(e,t){let{filesList:n,startDir:r}=ja(e,t),i=typeof e.timeout==`string`?Xe(e.timeout,`timeout`):void 0,a={...await xn(r,{noCache:!!e[`no-cache`],timeout:i??5e3}),pin:void 0};e.json&&(a.json=!0),e.verbose&&(a.verbose=!0),e[`no-cache`]&&(a.noCache=!0),e.update&&(a.update=!0),e.indirect&&(a.indirect=!0),e[`error-on-outdated`]&&(a.errorOnOutdated=!0),e[`error-on-unchanged`]&&(a.errorOnUnchanged=!0),e.color&&(a.color=!0,a.noColor=!1),e[`no-color`]&&(a.color=!1,a.noColor=!0),i!==void 0&&(a.timeout=i),typeof e.sockets==`string`&&(a.sockets=Number(e.sockets)||void 0),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=gn(e.include).map(Oa),s=gn(e.exclude).map(Oa);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=gn(e.types);c.length&&(a.types=c);let l=_n(e.pin);Object.keys(l).length&&(a.pin=l);let u=pn(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=ka(e[t]);n!==void 0&&(a[t]=n)}let d=ka(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);return a}function Pa(e){try{return Sn(g(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function Fa(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const Ia={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function La(e){if(ze[e])return ze[e];if(Ai(e))return`docker`;if(Pi(e))return`make`}function Ra(e,t){let n=new Set;try{for(let t of _(e,{withFileTypes:!0}))if(t.isFile()){let e=La(t.name);e&&n.add(e)}else t.isDirectory()&&G.some(e=>e===t.name)&&n.add(`actions`)}catch{}let r=new Set;for(let i of n)for(let n of Ia[i]??[]){let i=Fa(n===`registry`&&typeof t.registry!=`string`?Pa(e):t[n],J[n]);i&&r.add(i)}return Array.from(r)}const za=/[A-Za-z_$]/,Ba=/[A-Za-z0-9_$]/;function Va(e){let t=``,n=0,r=e.length,i=-1;function a(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
3
+ `:``)+r[n]}e=n,f[p]=se(m+t+m)}else f[p]=se(u)}return t}function oe(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function se(e){if(e.startsWith(`[`)){let t=[],n=A(e,`]`);for(let r of ue(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(se(e))}return t}return e.startsWith(`{`)?le(e):e.startsWith(`"""`)?pe(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?pe(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ce(e)}function ce(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function le(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of ue(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=se(e.slice(n+1).trim())}return t}function D(e){let t=0,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===`{`||i===`[`)t++;else if((i===`}`||i===`]`)&&(t--,t===0))return!0}return!1}function ue(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 de(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 fe(e){let t=k(e,`#`);return t<0?e:e.slice(0,t)}function*O(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else i===`"`||i===`'`?n=i:i===t&&(yield r)}}function k(e,t){return O(e,t).next().value??-1}function A(e,t){let n=-1;for(let r of O(e,t))n=r;return n}function j(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]={}),e=e[n];return e}function pe(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`
4
+ `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const me=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,M=new Map;function N(e){if(typeof e!=`string`)return null;let t=M.get(e);if(t!==void 0)return t;let n=me.exec(e.trim());if(!n)return M.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 M.set(e,s),s}function he(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 ge(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function _e(e,t){let n=ge(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=he(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function ve(e){return N(e)?.version??null}function P(e){return N(e)}const ye=new Map,be=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function xe(e){if(typeof e!=`string`)return null;let t=ye.get(e);if(t!==void 0)return t;let n=be.exec(e);if(!n)return ye.set(e,null),null;let r={version:`${n[1]}.${n[2]||`0`}.${n[3]||`0`}`};return ye.set(e,r),r}function F(e,t){let n=N(e),r=N(t);return!n||!r?null:I(n,r)}function I(e,t){if(e.version===t.version)return null;let n=_e(e,t),r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(ge(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function Se(e,t){let n=N(e),r=N(t);return n&&r?_e(n,r):null}function L(e,t){return(Se(e,t)??-1)>0}function Ce(e,t){return(Se(e,t)??-1)>=0}function we(e,t){return(Se(e,t)??1)<0}function Te(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=N(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function R(e,t){let n=_e(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function z(e,t,n){return`${e}.${t}.${n}-0`}function Ee(e){return e.replace(/([~^])\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a)=>{let o=Number(n),s=r===void 0?0:Number(r),c=i===void 0?0:Number(i),l=(t===`~`?r:i)===void 0?``:a,u;return u=r===void 0?z(o+1,0,0):t===`~`?z(o,s+1,0):o===0?i!==void 0&&s===0?z(0,0,c+1):z(0,s+1,0):z(o+1,0,0),`>=${o}.${s}.${c}${l} <${u}`})}function De(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${z(p+1,0,0)}`:`<${z(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function B(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${z(t+1,0,0)}`:`>=${t}.${n}.0 <${z(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${z(t+1,0,0)}`:`<${z(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function Oe(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>B(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>B(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${B(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${B(n,Number(r),0,!0)}`),e)}const V=new Map;function ke(e){let t=V.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=De(t),t=Ee(t),t=Oe(t),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=Te(t);if(!n)return V.set(e,null),null;i.push(n)}if(i.length===0)return V.set(e,null),null;r.push(i)}let i=r.length?r:null;return V.set(e,i),i}function Ae(e,t){return t.some(t=>!R(e,t))?!1:e.prerelease.length>0?t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch):!0}function H(e,t){let n=N(e);if(!n)return!1;let r=ke(t);if(!r)return!1;for(let e of r)if(e.length===0||Ae(n,e))return!0;return!1}function je(e){return typeof e==`string`&&ke(e)?e:null}const Me=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ne={"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`},Pe={sec:`second`,min:`minute`};function Fe(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Ie(e,{now:t,noAffix:n=!1,times:r=Me,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ne,longUnits:l=!1}={}){let u=(t===void 0?Date.now():Fe(t))-Fe(e);if(Number.isNaN(u))return o||String(e);let d=u<0;if(d&&(u=-u),u<i)return a;let f=0,p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(u>=t[1])){f=Math.trunc(u/t[0]),p=(l&&Pe[t[2]]||t[2])+(f>1?`s`:``);break}}let m=`${f} ${p}`,h=n?m:d?`in ${m}`:`${m} ago`;return s?c[h]??h:h}function Le(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;){let n=e.charCodeAt(t);if(n>=48&&n<=57)break;t++}r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const Re=/^([^<>=~!]+)(?:==|>=?|<=?|~=)([0-9.a-z]+)$/;function ze(e){let t=[];for(let n of e){let e=Re.exec(n.replaceAll(/\s+/g,``));if(!e)continue;let r=e[1].replace(/\[.*?\]$/,``);r&&t.push({name:r,version:e[2]})}return t}const Be=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ve=[`node`,`deno`,`bun`],U=[`.github`,`.gitea`,`.forgejo`],He={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Ue=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],We=[`deps`,`indirect`,`replace`,`tool`],Ge=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`];function Ke(e,t){if(t===!0)return!0;if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function qe(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Je(e){return e.split(`,`).filter(Boolean)}function Ye(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function Xe(e,t,n=` `){let r=Array(e[0].length).fill(0),i=Array(e.length);for(let n=0;n<e.length;n++){let a=e[n],o=Array(a.length);for(let e=0;e<a.length;e++){let n=t(a[e]);o[e]=n,n>r[e]&&(r[e]=n)}i[n]=o}let a=``;for(let t=0;t<e.length;t++){let o=e[t],s=o.length-1;for(let e=0;e<=s;e++)if(e>0&&(a+=n),a+=o[e],e!==s){let n=r[e]-i[t][e];n>0&&(a+=` `.repeat(n))}t<e.length-1&&(a+=`
5
+ `)}return a}const Ze={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Qe(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}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function $e(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${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(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function et(e){try{return await e}catch{return null}}const G=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);async function tt(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=c(n);if(r===n)return null;n=r}}function nt(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function rt(e){let t=new Map;return n=>{let r=t.get(n);return r||(r=e(n),t.set(n,r)),r}}const it=u(r===`win32`?t.LOCALAPPDATA||u(w(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(w(),`.cache`),`updates`);let at=null;const ot=new Map;function st(e){let t=ot.get(e);return t===void 0&&(t=re(`sha256`).update(e).digest(`hex`).substring(0,16),ot.set(e,t)),t}async function ct(e){try{let t=await x(u(it,`${st(e)}.cache`),`utf8`),n=t.indexOf(`
6
+ `);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}}const lt=new Set;let ut=0;function dt(e,t,r){let i=(async()=>{try{await(at??=b(it,{recursive:!0}))}catch{at=null;return}try{let i=u(it,`${st(e)}.cache`),a=`${i}.${n}-${ut++}.tmp`;await C(a,`${t}\n${r}`),await S(a,i)}catch{}})();lt.add(i),(async()=>{await i,lt.delete(i)})()}async function ft(){for(;lt.size;)await Promise.all(lt)}var pt=`17.21.0`;function K(e,t,n){if(!t||!n||!e)return!0;let r=Date.parse(e);return Number.isNaN(r)?!0:(n-r)/864e5>=t}const mt=pt,ht=5e3,gt=2500,_t=`https://api.github.com`,q={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:_t,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},J=e=>e[0]===`v`?e.substring(1):e,vt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function yt(e,t){return{headers:{"user-agent":`updates/${mt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const bt=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function xt(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&bt.has(t)}async function St(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=xt(t),n}}async function Y(e,t,n={}){for(let r=0;;r++)try{return await e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})}catch(e){if(r>=2||!e?.transient)throw e}}async function Ct(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}function wt(e,t){if(!t||e.length<16384)return e;try{return JSON.stringify(t(JSON.parse(e)))}catch{return e}}async function Tt(e,t,n,r,i){let a=wt(await Ct(t),r);return i&&!n.noCache&&dt(e,i,a),{body:a,res:t}}async function Et(e,t,n={},r){let i=t.noCache?null:await ct(e),a=n.headers,o=i?{...a,"if-none-match":i.etag}:a,s=await Y(t,e,{...n,headers:o});return s?s.status===304&&i?{body:i.body,res:s}:s.ok?Tt(e,s,t,r,s.headers?.get?.(`etag`)):{res:s}:{res:void 0}}async function Dt(e,t,n={},r){if(!t.noCache){let t=await ct(e);if(t)return{body:t.body}}let i=await Y(t,e,n);return i?i.ok?Tt(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function Ot(e,t,n){let r=e.get(t);return r||e.set(t,r=(async()=>{try{return await n()}catch(n){throw e.delete(t),n}})()),r}function kt(e){return(P(e)?.prerelease.length??0)>0}function At(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}const jt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Mt=new WeakMap;function Nt(e){let t=Mt.get(e);if(t)return t;let n=new Set(e);return n.add(`prerelease`),e.has(`patch`)&&n.add(`prepatch`),e.has(`minor`)&&n.add(`preminor`),e.has(`major`)&&n.add(`premajor`),Mt.set(e,n),n}function Pt(e,t,n){let r=At(e)||t;return{effectiveUsePre:r,effectiveSemvers:r?Nt(n):n}}function Ft(e,t,{useRel:n,allowDowngrade:r,name:i}){let a=X(e),o=X(t);if(!a||!o)return!0;let s=At(e)||kt(e),c=kt(t);return s&&!c?Ce(o,a)||n:!c&&we(o,a)?Ke(i,r):!0}function X(e){return xe(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=X(n);if(!d)return null;let f=P(jt.exec(n)?.[0]??``)??P(d),{effectiveUsePre:p,effectiveSemvers:m}=Pt(n,i,r),h=e?.time,g=!!h,_=o||!g,v=!!(c&&l),y=!!s&&!H(f.version,s)||a&&f.prerelease.length>0,ee=0,te=!1,b=f;for(let e of t){let t=P(e);if(!t?.version||t.prerelease.length&&(!p||a)||!y&&_e(t,f)<=0||s&&!H(t.version,s))continue;let n;if(v&&(n=u?u(e):g?h[e]:void 0,!K(n,c,l)))continue;let r=I(f,t);if(!(!r||!m.has(r))){if(_){if(te&&_e(t,b)<=0)continue}else{let t=Date.parse(n??h[e]);if(!(t>=0&&t>ee))continue;ee=t}b=t,te=!0}}return b.version}function Lt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Rt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,cooldownDays:c,now:l,allowDowngrade:u}){if(n===`*`||n.includes(`||`)||/\d\s/.test(n))return null;let d=[],f;if(t===`pypi`){let t=e.releases;d=Object.keys(t),f=e=>t?.[e]?.[0]?.upload_time_iso_8601}else if(t===`npm`||t===`cargo`)d=Object.keys(e.versions);else if(t===`go`){let t=X(n);if(!t)return null;let{effectiveUsePre:r,effectiveSemvers:d}=Pt(n,a,o),f=e=>kt(e)&&(!r||i),p={useRel:i,allowDowngrade:u,name:e.name},m=e.old||n,h=(e,n)=>{let r=X(e);if(!r||Lt(e)||f(e))return!1;let i=F(m,e)??F(t,r);return!i||!d.has(i)||!Ft(m,e,p)||!K(n,c,l)?!1:!s||H(r,s)};return h(e.new,e.Time)?e.new:h(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}let p=It(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s,cooldownDays:c,now:l,getVersionDate:f});if(!p)return null;if(r)return p;{let r=``,d=``,f=!1;t===`pypi`?(d=e.info.version,r=X(e.info.version),f=kt(d)):(r=e[`dist-tags`].latest,f=kt(r));let m=X(n),h=At(n),g=kt(p),_={useRel:i,allowDowngrade:u,name:e.name};if(!i&&a||h&&g)return p;if(h&&!g)return Ft(n,p,_)?p:null;let v=F(m,r);return v&&v!==`prerelease`&&!o.has(v.replace(/^pre/,``))||i&&f?p:we(r,m)&&!f?Ft(n,r,_)?r:L(p,m)?p:null:!h&&f&&!a||s&&!H(r,s)||c&&l&&!K(t===`pypi`?e.releases?.[d||r]?.[0]?.upload_time_iso_8601:e.time?.[r],c,l)?p:d||r}}function zt(e){try{return new URL(e).host}catch{return``}}function Bt(e){for(let n of Je(t.UPDATES_FORGE_TOKENS??``)){let t=n.lastIndexOf(`:`);if(t>0&&n.slice(0,t)===e)return n.slice(t+1)}return null}let Vt;async function Ht(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function Ut(){return Vt??=Ht()}const Wt=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function Gt(){return Array.from(new Set(Wt.map(e=>t[e]).filter(e=>!!e)))}let Kt;function qt(){let e=Gt();return e.length?Promise.resolve(e):Kt??=(async()=>{try{let{stdout:e}=await(await Ut())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const Jt=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function Yt(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=Jt.exec(n);if(!e)continue;let r=zt(e[1]),i=ne.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let Xt;function Zt(){return Xt??=(async()=>{try{let{stdout:e}=await(await Ut())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return Yt(e)}catch{return new Map}})()}const Qt=new Map;async function $t(e,t){if(!e)return[];let n=Bt(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===zt(t),[a,o]=await Promise.all([i?qt():[],Zt()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}async function en(e,t,n){let r=zt(e),i=await $t(r,t.forgeApiUrl),a=e=>{let t=yt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t};if(!i.length)return Y(t,e,a());let o=Qt.get(r);if(o)return Y(t,e,a(o));for(let n of i){let i=await Y(t,e,a(n));if(i.status!==401&&i.status!==403)return Qt.set(r,n),i}return Y(t,e,a())}function tn(e,t){let n=J(t);if(!ve(n))return null;let r=``,i=``;for(let t of e){let e=J(t);ve(e)&&(!r||L(e,i))&&(r=t,i=e)}return r&&L(i,n)?r:null}function nn(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const rn=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function an(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function on(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function sn(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function cn(e,t,n){let r=t.noCache?null:await ct(e),i=await en(e,t,r?{"if-none-match":r.etag}:void 0);if(i?.status===304&&r)return r.body;if(!i?.ok)return null;let a=await n(i),o=i.headers.get(`etag`);return o&&!t.noCache&&dt(e,o,a),a}async function ln(e,t){let n=await cn(e,t,async e=>JSON.stringify({link:e.headers.get(`link`)||``,tags:sn(await e.json())}));if(!n)return null;try{let e=JSON.parse(n);return{tags:e.tags||[],link:e.link||``}}catch{return null}}async function un(e,t,n,r){let i=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`;try{let e=await ln(i(1),r);if(!e)return[];let t=e.tags,n=/<([^>]+)>;\s*rel="last"/.exec(e.link);if(!n)return t;let a=Math.min(Number(new URL(n[1]).searchParams.get(`page`)),10);if(a<2)return t;let o=await Promise.all(Array.from({length:a-1},(e,t)=>ln(i(t+2),r)));for(let e of o)e&&t.push(...e.tags);return t}catch{return[]}}function dn(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}const fn=e=>Number(e[0])>=2e7;function pn(e,t){let n=J(e).split(`.`),r=J(t).split(`.`);return n.length<r.length?!1:!fn(n)||fn(r)}function mn(e,t,n=``){let r=J(e),i=J(t).split(`.`).length,a=r.split(`.`),o=i>=3?r:Array.from({length:i},(e,t)=>a[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${o}${n}`}function hn(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const gn=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function _n({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of gn)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=nn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${hn(a)}/${e.directory}`)),a||t||``)}const vn={"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 yn(e){return e instanceof RegExp?/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e:RegExp(`^${G(e).replaceAll(`\\*`,`.*`)}$`,`i`)}function bn(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(Je)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function xn(e){for(let[t,{short:n}]of Object.entries(vn))if(t===e||n===e)return t;return``}function Sn(e){return new Set(e.map(yn))}function Cn(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(Je):[]}function wn(e){let t={},n=Array.isArray(e)?e:[e];for(let e of n){if(typeof e!=`string`)continue;let n=e.indexOf(`=`);if(n===-1)continue;let r=e.slice(0,n),i=e.slice(n+1);r&&i&&je(i)&&(t[r]=i)}return t}function Tn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:Sn(e)}async function En(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await te(r)}catch{return null}try{return{configDir:e,default:(await import(T(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const Dn=rt(e=>tt(e,En));async function On(e,t={}){let n=await Dn(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t);return{...await i(n?.configDir??e,r.inherit?.renovate,o),...r}}function kn(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();/^(["']).*\1$/s.test(i)&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function An(e){try{return kn(g(e,`utf-8`))}catch{return}}function jn(t){let n=e();for(;;){let e=u(n,t);try{if(v(e).isFile())return e}catch{}let r=c(n);if(r===n)break;n=r}}function Mn(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function Nn(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=An(e);t&&(o.push(t),s.push(e))}i||(c(u(`/etc`,e,`config`)),c(u(`/etc`,`${e}rc`))),a&&(c(u(a,`.config`,e,`config`)),c(u(a,`.config`,e)),c(u(a,`.${e}`,`config`)),c(u(a,`.${e}rc`))),c(jn(`.${e}rc`));let l=Mn(`${e}_`);return l.config&&c(l.config),Object.assign({},...o,l,s.length?{configs:s,config:s[s.length-1]}:void 0)}const Pn=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,Fn=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,In=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Ln=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,Rn=/(@[^/]+\/)?([^/]+)/g;function zn(e){let t=e.match(Rn);return t?t[t.length-1]:e}const Bn=q.registry;let Vn=null;const Hn=new Map;function Un(){return Vn??=Nn(`npm`,{registry:Bn})}function Wn(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Gn(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Wn(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Wn(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:Wn(o),type:`Basic`}}function Kn(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Gn(`//${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:Wn(i),type:`Basic`}}function qn(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Jn(e,t){let n=Un(),r=e.startsWith(`@`)?e.split(`/`)[0]:``,i=`${r}:${t}`,a=Hn.get(i);if(a)return a;let o;if(r){let e=vt(qn(r,n));if(e!==t)try{let t=Kn(e,n);t?.token&&(o={auth:t,registry:e})}catch{}}return o??={auth:Kn(t,n),registry:t},Hn.set(i,o),o}function Yn(e,t,n){let r=vt(typeof n.registry==`string`&&n.registry||t.registry||Un().registry||Bn);return{...Jn(e,r),originalRegistry:r}}function Xn(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Zn=new Map,Qn=new Map,$n=new Map;function er(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]={};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function tr(e,t,n,r,i){let{auth:a,registry:o}=Yn(e,n,r),s=Xn(o,t===`resolutions`?zn(e):e);return[await Ot(Zn,s,async()=>{let t=yt(a?.type,a?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await Et(s,i,t,er);return`body`in n||dn(n.res,s,e,o),JSON.parse(n.body)}),o]}async function nr(e,t,n,r,i){let{auth:a,registry:o}=Yn(e,n,r),s=Xn(o,e,t);return Ot(Qn,s,async()=>{try{let n=yt(a?.type,a?.token),r=await Dt(s,i,n,e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0}));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())}let d=Xn(o,e);return l||=(await Zn.get(d))?.time?.[t]||``,l||=(await et(Ot($n,d,async()=>{let e=await Y(i,d,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:c.repository,homepage:c.homepage,date:l}}catch{return{}}})}function rr(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function ir(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}const ar=[/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/,/^jsr:@([^/]+)\/([^@]+)@(.+)$/],or=/^@([^/]+)\/(.+)$/;function sr(e,t){for(let t of ar){let n=t.exec(e);if(n)return{scope:n[1],name:n[2],version:n[3]}}if(e.startsWith(`jsr:`)&&!e.startsWith(`jsr:@`)){let n=or.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function cr(e,t){if(!or.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`,r=await Et(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))}));`body`in r||dn(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return[{name:e,"dist-tags":{latest:i.latest},versions:a,time:o},t.jsrApiUrl]}function lr(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 ur(e,t){let n=/^(<\s*)(\d+(?:\.\d+){0,2})$/.exec(e);if(!n)return null;let[,r,i]=n,{major:a,minor:o,patch:s}=P(t),c=i.split(`.`).length,l;return l=c===1?`${a+1}`:c===2?`${a}.${o+1}`:i.endsWith(`.0.0`)?`${a+1}.0.0`:`${a}.${o}.${s+1}`,`${r}${l}`}function dr(e,t,n){let r=n||e;if(/^>\s*\d/.test(r))return e;let i=ur(r,t);if(i)return i;let a=e.replace(Ln,t);if(!n||n===e)return a;let o=/^([\^~]|>=\s*)([\d.]+)$/.exec(n);if(!o)return a;let[,s,c]=o,l=t.split(/[-+]/)[0];if(l!==t)return a;let u=c.split(`.`).length,d=l.split(`.`);return d.length===u?a:`${s}${d.slice(0,u).join(`.`)}`}function Z(e){if(/[xX*]/.test(e))return e;let t=e.match(In);return t?.length===1?e.replace(In,X(t[0])):e}async function fr(e,t,n){let r=`${n.forgeApiUrl}/repos/${e}/${t}/commits`;try{let e=await cn(r,n,async e=>{let{sha:t,commit:n}=JSON.parse(await e.text())[0];return JSON.stringify([{sha:t,commit:{committer:n?.committer,author:n?.author}}])});if(!e)return{hash:``,commit:{}};let{sha:t,commit:i}=JSON.parse(e)[0];return{hash:t,commit:i}}catch{return{hash:``,commit:{}}}}async function pr(e,t,n){return(await un(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function mr(e,t,n){let r=t.old.replace(Pn,``),[,i,a,o]=Fn.exec(r)||[];if(!i||!a||!o)return null;let s=e=>{let n=t.old.lastIndexOf(o);return t.old.slice(0,n)+e+t.old.slice(n+o.length)};if(rn.test(o)){let{hash:t,commit:r}=await fr(i,a,n);if(!t)return null;let c=on(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:s(l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let t=tn(await pr(i,a,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function hr(e){let t={};for(let[n,r]of Object.entries(e.releases??{}))t[n]=(r??[]).slice(0,1).map(e=>e.upload_time_iso_8601?{upload_time_iso_8601:e.upload_time_iso_8601}:{});let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function gr(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await Et(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},hr);if(`body`in r)return[JSON.parse(r.body),null];dn(r.res,n,e,t.pypiApiUrl)}function _r(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let a=e.split(`\0`)[1],o=i||r;n=n.replace(RegExp(`(['"])(${G(a)} *(?:\\[[^\\]]+\\])? *[<>=~]+ *)${G(o)}\\1`,`g`),(n,r,i)=>`${r}${i}${t[e].new}${r}`)}return n}function vr(){let e=t.GOPROXY||`${q.goproxy},direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return vt(e)}return q.goproxy}function yr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const br=new Map;function xr(e){let t=br.get(e);if(t)return t;let n=``;for(let t=0;t<e.length;t++){let r=e[t];if(r===`*`)n+=`[^/]*`;else if(r===`?`)n+=`[^/]`;else if(r===`[`&&e.includes(`]`,t+1)){let r=e.indexOf(`]`,t+1);n+=`[${e.slice(t+1,r).replace(/\\/g,`\\\\`)}]`,t=r}else n+=G(r)}return br.set(e,t=RegExp(`^${n}(?:/.*)?$`)),t}function Sr(e,t){return t.some(t=>xr(t).test(e))}function Cr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const wr=/\/v(\d+)$/,Tr=/^gopkg\.in\/.*?\.v(\d+)$/;function Er(e){let t=Tr.exec(e)??wr.exec(e);return t?Number.parseInt(t[1]):1}function Dr(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(wr,``);return t<=1?n:`${n}/v${t}`}function Or(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(J(t).split(`.`)[0]);return Number.isNaN(n)||n===Er(e)?e:Dr(e,n)}const kr=/^require\s*\(/,Ar=/^replace\s*\(/,jr=/^tool\s*\(/,Mr=/^use\s*\(/,Nr=/^replace\s+/,Pr=/^(\S+)\s+(v\S+)/,Fr=/^require\s+(\S+)\s+(v\S+)/,Ir=/^tool\s+(\S+)/,Lr=/^use\s+(\S+)/,Rr=/^(\S+)/,zr=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Br=/^replace\s+(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/;function Vr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Hr(e,t){let n=(t?zr:Br).exec(e);if(!n)return null;let[,r,i,a,o]=n;return{origModule:r,origVersion:i??``,targetModule:a,targetVersion:o??``}}function Ur(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||Lt(n)}function Wr(e,t){return[{name:e,old:t,new:t},null]}async function Gr(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 Kr(e,t,n,r,i){let a=n?.Version??r,o=n?.Time??i,s=n?.path??e;return[{name:e,old:t,new:J(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:J(r),sameMajorTime:i},null]}function qr(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(kr.test(i)){c=!0;continue}if(Ar.test(i)){l=!0;continue}if(jr.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&o.push(i);continue}let s=Ir.exec(i);if(s){o.push(s[1]);continue}let d=i.includes(`// indirect`);if(l||Nr.test(i)){let e=Hr(i,l);e&&(e.targetVersion&&!Vr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||a.add(e.origModule));continue}let f=(c?Pr:Fr).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=n[a]?n:t[a]?t:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function Jr(e,n,r,i,a){let o=Er(e),s=async(e,n)=>{try{let{stdout:r}=await(await Ut())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},c=Ur(e,n,r),[l,u]=await Promise.all([s(e,a.fetchTimeout),c?null:s(Dr(e,o+1),a.goProbeTimeout)]);return l?Kr(e,r,await Gr(o,u,t=>s(Dr(e,t),a.goProbeTimeout)),l.Version,l.Time):Wr(e,r)}async function Yr(e,t,n,r,i,a){if(Sr(e,a))return Jr(e,t,n,r,i);let o=Cr(e),s=Er(e),c=async t=>{let n=Dr(e,t);try{let e=await i.doFetch(`${i.goProxyUrl}/${Cr(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});return e.ok?{...await e.json(),path:n}:null}catch{return null}},l=Ur(e,t,n),[u,d]=await Promise.all([Y(i,`${i.goProxyUrl}/${o}/@latest`,{headers:{"accept-encoding":`gzip, deflate, br`}}),l?null:c(s+1)]);if(!u.ok)return Wr(e,n);let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return Wr(e,n)}return Kr(e,n,await Gr(s,d,c),f,p)}function Xr(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=Or(s,l);u===s?n=n.replace(RegExp(`(${G(s)}) +v${G(c)}`,`g`),`$1 v${l}`):(n=n.replace(RegExp(`${G(s)} +v${G(c)}`,`g`),`${u} v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)${G(s)}(/\\S+)?\\s*$`,`gm`),`$1${u}$2`)),r[s]=u)}return[n,r]}function Zr(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=r.map(([e])=>e).sort((e,t)=>t.length-e.length),o=RegExp(`"(${a.map(G).join(`|`)})(/|")`,`g`),s=m(`**/*.go`,{cwd:e});for(let t of s){let r=u(e,t),a=g(r,`utf8`),s=a.replace(o,(e,t,n)=>`"${i.get(t)}${n}`);s!==a&&n(r,s)}}function Qr(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(Mr.test(r)){i=!0;continue}if(Ar.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=Rr.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=Lr.exec(r);if(o){t.push(o[1]);continue}if(a||Nr.test(r)){let e=Hr(r,a);e?.targetVersion&&!Vr(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function $r(e){let t=`https://${ei(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${hn(t)}/${a.join(`/`)}`,n.href}return t}function ei(e){return wr.test(e)?c(e):e}function ti(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const ni=/^\s*(?:-\s*)?uses:\s*['"]?([^'"#\s]+)['"]?/gm;function ri(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:rn.test(o)}}function ii(e,t){return e?e===`github.com`?_t:`https://${e}/api/v1`:t}async function ai(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await ct(a);if(e)return e.body}try{let e=await en(a,i);if(!e.ok)return``;let t=on(await e.json());return t&&!i.noCache&&dt(a,`immutable`,t),t}catch{return``}}function oi(e,t){return mn(P(J(e))?.version??J(e),t)}function si(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i,newComment:a}of t){let t=`(uses:\\s*['"]?(?:https?:\\/\\/)?)${G(e)}@${G(r)}(?![\\w.-])`;a&&(n=n.replace(RegExp(`${t}([ \\t]*#[ \\t]*)v?\\d\\S*`,`g`),`$1${e}@${i}$2${a}`)),n=n.replace(new RegExp(t,`g`),`$1${e}@${i}`)}return n}const ci=RegExp(`(?:^|/)(?:${U.map(G).join(`|`)})\\/(?:workflows\\/[^/]+|(?:[^/]+\\/)*action)\\.ya?ml$`);function li(e){return ci.test(e.replace(/\\/g,`/`))}function ui(e){let t=new Set;try{for(let n of _(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of _(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const di=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,fi=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gim,pi=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,mi=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,hi=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm,gi=/^(?:index\.)?docker\.io$/;function _i(e){let t=e.split(`/`);return t.length>1&&gi.test(t[0])&&t.shift(),t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`),repo:t[t.length-1]}}function vi(e){let{registry:t,namespace:n,repo:r}=_i(e);if(t)return[e];let i=n===`library`?[r,`library/${r}`]:[`${n}/${r}`];return[...new Set([e,...i,...i.map(e=>`docker.io/${e}`)])]}function yi(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`);if(t===-1||e.lastIndexOf(`/`)>t)return null;let n=e.substring(0,t),r=e.substring(t+1);if(!r||!di.test(r))return null;let{registry:i,namespace:a,repo:o}=_i(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function bi(e){let t=di.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function xi(e,t){let n=bi(t);return n?mn(e,n.version,n.suffix):t}function Si(e,t){let n=[];for(let r of e.matchAll(t)){let e=yi(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Ci=new WeakMap;function wi(e,t,n){let r=Ci.get(n);return r||Ci.set(n,r=new Map),Ot(r,`${e}/${t}`,()=>Ti(e,t,n))}async function Ti(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=e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated}))}),c=async e=>{try{let t=await Et(a(e),n,o,s);return`body`in t?JSON.parse(t.body):null}catch{return null}},l=await c(1);if(!l)return r;let u=Math.min(Math.ceil((l.count||0)/100),10),d=u<2?[]:await Promise.all(Array.from({length:u-1},(e,t)=>c(t+2)));for(let e of[l,...d])for(let t of e?.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``;return r}async function Ei(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await Et(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},e=>({digest:e.digest}));if(!(`body`in e))return null;let t=JSON.parse(e.body).digest;return typeof t==`string`?t:null}catch{return null}}async function Di(e,t){let{registry:n,namespace:r,repo:i}=_i(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:await wi(r,i,t),name:e},null]}function Oi(e,t,n,r,i,a){let o=bi(t);if(!o)return null;let s=xe(J(o.version))?.version;if(!s)return null;let c=s,l=``,u=``;for(let[t,s]of Object.entries(e)){let e=bi(t);if(!e||e.suffix!==o.suffix||!pn(e.version,o.version))continue;let d=xe(J(e.version))?.version;if(!d||a&&!H(d,a)||!K(s,r,i))continue;if(d===c){l&&Date.parse(s)>Date.parse(u)&&(l=t,u=s);continue}let f=F(c,d);!f||!n.has(f)||L(d,c)&&(c=d,l=t,u=s)}if(!l||c===s)return null;let d=xi(c,t),f=d in e?d:l;return f===t?null:{newTag:f,date:u}}const ki=`(?![\\w.@+-])`;function Ai(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let t=e.split(`\0`)[1],a=i.oldOrig||i.old;for(let e of n)r=r.replace(e(G(t),G(a)),`$1${t}:${i.new}`)}return r}function ji(e,t){return Ai(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}${ki}`,`gi`)])}function Mi(e,t){return Ai(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}${ki}`,`g`)])}function Ni(e,t){return Ai(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}${ki}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}${ki}`,`g`)])}const Pi=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function Fi(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function Ii(e){return/^Dockerfile(\..+)?$/.test(e)}function Li(e){return Ii(e)||Fi(e)}function Ri(e){return Ii(e)?fi:pi}function zi(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Bi=[`Makefile`,`makefile`,`GNUmakefile`];function Vi(e){return Bi.includes(e)||e.endsWith(`.mk`)}const Hi=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,Ui=RegExp(`${Hi}${String.raw`(\S+)@(v\d\S*)\s*$`}`),Wi=/^[^/\s]+\.[^/\s]+\//;function Gi(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function Ki(e){let t=[];for(let n of e.split(/\r?\n/)){let e=Gi(n),r=Ui.exec(e);if(!r)continue;let[,i,a]=r;Wi.test(i)&&t.push({installPath:i,version:a})}return t}const qi=RegExp(`${Hi}${String.raw`(\S+)\s*$`}`),Ji=/@(sha256:[0-9a-f]{64})$/;function Yi(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Xi(e){let t=null,n=e,r=Ji.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=yi(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function Zi(e){let t=[];for(let n of e.split(/\r?\n/)){let e=qi.exec(Gi(n));if(!e)continue;let r=Xi(e[1]);r&&t.push(r)}return t}const Qi=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function $i(e){let t=Qi.exec(e);return t?e.slice(0,t.index+t[0].length):null}async function ea(e,t){let n=$i(e);if(n)return n;let r=e.split(`/`);return(await Promise.all(Array.from({length:r.length-1},async(e,n)=>{let i=r.slice(0,r.length-n).join(`/`);try{return(await t.doFetch(`${t.goProxyUrl}/${Cr(i)}/@latest`,{signal:AbortSignal.timeout(t.goProbeTimeout)})).ok?i:null}catch{return null}}))).find(Boolean)??null}async function ta(e,t,n,r,i,a){let o=await ea(e,r);if(!o)return null;let[s]=await Yr(o,`tool`,J(t),n,r,i),c=Rt(s,{...a,mode:`go`,range:J(t)});if(!c)return null;let l=s.newPath??Or(o,c),u=`${l}${e.slice(o.length)}`,d=mn(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:$r(l)}}async function na(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await Di(a,t),c=Oi(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await Ei(r,i,c.newTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:zi(e.ref)}}function ra(e,t){for(let{oldSpec:n,newSpec:r}of t){let t=RegExp(`^([^#\\n]*?)${G(n)}(?=[\\s#]|$)`,`gm`);e=e.replace(t,`$1${r}`)}return e}const ia=new Map,aa=e=>({versions:(e.versions||[]).filter(e=>!e.yanked).map(e=>({num:e.num,created_at:e.created_at}))});async function oa(e,t){let n=`${vt(t.cratesIoUrl)}/api/v1/crates/${encodeURIComponent(e)}/versions?per_page=100`;return[await Ot(ia,n,async()=>{let r=await Et(n,t,yt(),aa);`body`in r||dn(r.res,n,e,t.cratesIoUrl);let i;try{i=JSON.parse(r.body)}catch{throw Error(`Invalid JSON from ${n}`)}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??``}}}),null]}function sa(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];ve(a)&&nt(t,i,a)}return t}const ca=/^\d/;function la(e,t){return ca.test(e)?dr(Z(`^${e}`),t,`^${e}`).replace(/^\^/,``):dr(Z(e),t,e)}function ua(e,t,n){let r=e.get(t);if(!r)return;let i=ca.test(n)?`^${n}`:n,a;for(let e of r)H(e,i)&&(!a||L(e,a))&&(a=e);return a}const da=Ge.map(G).join(`|`);function fa(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*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${s}(["'])`,`gm`),`$1${a}$2`),n=n.replace(RegExp(`(\\[(?:${da})\\.${o}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${s}(["'])`,`g`),`$1${a}$2`)}return n}function pa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}function ma(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=pa(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const ha=/[*?{[]/;async function ga(e,t,n,r=32){let i=e.filter(e=>!e.startsWith(`!`)),a=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),o=new Set(a.flatMap(e=>m(e,{cwd:t})).map(e=>e.replace(/\\/g,`/`))),s=new Set,c=[];for(let e of i){let r=ha.test(e)?m(e,{cwd:t}).map(e=>f(u(t,e))):[f(u(t,e))];for(let e of r){let r=d(t,e).replace(/\\/g,`/`);if(o.has(r))continue;let i=u(e,n);s.has(i)||(s.add(i),c.push({absPath:i,memberPath:`./${r}`}))}}return(await W(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await x(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}function _a(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){let n=e.trim();if(!n||n.startsWith(`#`))continue;if(!n.startsWith(`-`))break;let r=/^\s*-\s+['"]?([^'"#\s]+)['"]?/.exec(e);r&&t.push(r[1])}}return t}const va=new Set([`npm`,`pypi`,`go`,`cargo`,`actions`,`docker`,`make`]),ya={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},ba={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},xa=(e,t)=>typeof e==`string`?vt(e):typeof t==`function`?t():t,Sa=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function Ca(e,t){let n=new Map,r=new Set(e),i=t;for(;r.size;){for(let e of r){let t=u(i,e);try{p(t),n.set(e,t),r.delete(e)}catch{}}let e=c(i);if(e===i)break;i=e}return n}async function wa(e,t){let n=await W(e,async e=>{try{return[e,await x(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function Ta(e,t){t&&(e.date=t,e.age=Ie(t,{noAffix:!0}))}const Ea=(e,t,n)=>`${e}${t}${n}`,Da=e=>Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0);function Oa(e,t){return t===`go`?[e,ei(e)]:t===`docker`?vi(e):[e]}const ka=(e,t)=>t.map(t=>e[t]).find(Boolean);function Q(e,t,n,r,i,a=t){if(i===`engines`&&Ve.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let o=Oa(e,a);for(let e of r)if(o.some(t=>e.test(t)))return!1;for(let e of n)if(o.some(t=>e.test(t)))return!0;return!n.size}function Aa(t){let n=new Set;if(t)for(let e of t){let t;try{t=h(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t.isFile())n.add(f(e));else if(t.isDirectory()){try{for(let t of _(e,{withFileTypes:!0}))t.isFile()&&(Object.hasOwn(He,t.name)||Li(t.name)||Vi(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=U.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&U.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:U.map(e=>u(t,e));for(let e of a)for(let t of ui(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(U),r=[...Object.keys(He),...Pi,...Bi,...U];for(let[i,a]of Ca(r,e()))if(t.has(i))for(let e of ui(a))n.add(e);else n.add(f(a));try{for(let t of _(e(),{withFileTypes:!0})){let r=Li(t.name)&&!Pi.includes(t.name),i=Vi(t.name)&&!Bi.includes(t.name);t.isFile()&&(r||i)&&n.add(f(u(e(),t.name)))}}catch{}}for(let e of Array.from(n)){let t=s(e);Object.hasOwn(ba,t)&&n.delete(u(c(e),ba[t].supersedes))}return n}function $(e,t){r===`win32`&&y(e,0),ee(e,t,r===`win32`?{flag:`r+`}:void 0)}function ja(e){let t={results:{}};for(let[n,r]of Object.entries(e))for(let[e,i]of Object.entries(r)){typeof i.oldPrint==`string`&&(i.old=i.oldPrint),typeof i.newPrint==`string`&&(i.new=i.newPrint),typeof i.oldOrig==`string`&&!rr(i.oldOrig)&&(i.old=n===`go`?ti(i.oldOrig):i.oldOrig),n===`go`?i.new=ti(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[r,a]=e.split(`\0`),o=t.results[n]??={};(o[r]??={})[a]=i}return t}let Ma=!1;async function Na(t={}){if(!Ma){let{enableDnsCache:e}=await import(`./dns.js`);e(),Ma=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=$e(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=xa(t.forgeapi,q.forgeapi),d=xa(t.pypiapi,q.pypiapi),p=xa(t.jsrapi,q.jsrapi),m=xa(t.goproxy,vr),h=xa(t.cargoapi,q.cargoapi),g=xa(t.dockerapi,q.dockerapi),_=yr(),v=!n.noColor&&(n.color||i.isTTY),y=e=>v?t=>o(e,String(t)):String,ee=y(`magenta`),te=y(`green`),b=y(`red`),S={fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):gt,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:m,cratesIoUrl:h,dockerApiUrl:g,doFetch:async(e,t)=>{n.verbose&&console.error(`${Ye()} ${ee(t?.method||`GET`)} ${e}`);let r=await St(e,t);return n.verbose&&console.error(`${Ye()} ${r.ok?te(r.status):b(r.status)} ${e}`),r},noCache:!!n.noCache},C=Tn(n.greatest),ne=Tn(n.prerelease),re=Tn(n.release),w=Tn(n.patch),T=Tn(n.minor),ie=Tn(n.allowDowngrade),E=n.modes?.length?new Set(n.modes):va,oe=(n.overrides??[]).map(e=>({include:e.include?.length?Sn(e.include):void 0,exclude:e.exclude?.length?Sn(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Qe(String(e.cooldown))})),se=(e,t)=>e.include&&t.every(t=>!Ke(t,e.include))?!1:!e.exclude||t.every(t=>!Ke(t,e.exclude)),ce=oe.some(e=>e.cooldownDays);E.has(`actions`)&&qt();let le=new Map;function D(e,t){let n=le.get(e);if(!n){let r=t??[e],i=e=>r.some(t=>Ke(t,e)),a=i(C),o=i(ne),s=i(re),c=i(w),l=i(T),u=i(ie),d;for(let e of oe)se(e,r)&&(e.greatest!==void 0&&(a=e.greatest),e.prerelease!==void 0&&(o=e.prerelease),e.release!==void 0&&(s=e.release),e.patch!==void 0&&(c=e.patch),e.minor!==void 0&&(l=e.minor),e.allowDowngrade!==void 0&&(u=e.allowDowngrade),e.cooldownDays!==void 0&&(d=e.cooldownDays));let f=c?ya.patch:l?ya.minor:ya.major;n={useGreatest:a,usePre:o,useRel:s,semvers:f,allowDowngrade:u,cooldownOverride:d},le.set(e,n)}return n}let ue=Sn(n.include??[]),de=Sn(n.exclude??[]),fe=n.pin??{},O={},k={},A={},j=Date.now(),pe=e=>{let t=n.cooldown??e;return t?Qe(String(t)):0},me=e(),M=e=>e.replace(`${me}/`,``).replace(`${me}\\`,``),N=(e,t,n,r,i,a)=>{O[e][Ea(t,n,r)]={old:i,oldOrig:a}},he=(e,t,n,r)=>{rr(r)?N(`npm`,e,t,n,sr(r,n).version,r):je(r)?N(`npm`,e,t,n,Z(r),r):ir(r)?N(`npm`,e,t,n,`0.0.0`,r):k[Ea(e,t,n)]={old:r}},ge=(e,t,n,r,i,a)=>{for(let o of r){let r=(e===`npm`||e===`go`?t[o]:qe(t,o))||{};if(Array.isArray(r)){if(e!==`pypi`)continue;for(let{name:t,version:s}of ze(r))Q(t,e,i,a,o)&&N(e,o,n,t,Z(s),s)}else if(typeof r==`string`){let[t,s]=r.split(`@`);Q(t,e,i,a,o)&&N(e,o,n,t,Z(s),s)}else for(let[t,s]of Object.entries(r))Q(t,e,i,a,o)&&(e===`npm`?he(o,n,t,s):e===`go`?N(e,o,n,t,ti(s),J(s)):je(s)&&N(e,o,n,t,Z(s),s))}},_e=Aa(n.files?.length?new Set(n.files):!1),P=await wa(Array.from(_e).filter(e=>{if(li(e))return E.has(`actions`)||E.has(`docker`);let t=s(e);if(Li(t))return E.has(`docker`);if(Vi(t))return E.has(`make`);let n=He[t];return!!n&&E.has(n)}),r),ye={},be={},xe={},F=[],I=null,Se=[],L=[],Ce=[],we=[],Te=[],R={},z={noCache:n.noCache,timeout:n.timeout||5e3},Ee=rt(async e=>{let t=await On(e,z);return{dirConfig:t,include:t.include?.length?Sn([...n.include??[],...t.include]):ue,exclude:t.exclude?.length?Sn([...n.exclude??[],...t.exclude]):de}});async function De(e){let{dirConfig:t,include:n,exclude:r}=await Ee(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:{...t.pin,...fe}}}function B(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Be:e===`pypi`?Ue:e===`go`?n.indirect?We:We.filter(e=>e!==`indirect`):e===`cargo`?Ge:[]}function Oe(e,t,n,r){O.docker??={};for(let i of n)for(let{ref:n}of Si(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}`;if(O.docker[e])continue;let i=bi(n.tag);i&&(O.docker[e]={old:i.version,oldOrig:n.tag},we.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function V(e){let{dirConfig:t,include:n,exclude:r}=await Ee(e);return{include:n,exclude:r,pin:t.pin??{},cooldownDays:pe(t.cooldown)}}let ke=new Set,Ae=new Map;for(let e of _e){let t=s(e);if(Object.hasOwn(ba,t))ke.add(ba[t].mode);else if(t===`Cargo.toml`){let t=P.get(e);if(!t)continue;try{let n=ae(t);Ae.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&ke.add(`cargo`)}catch{}}}let H=(e,t,n,r,i,a)=>{let o=A[e]??=[],s=!o.length&&!ke.has(e),c=s?`.`:M(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:pe(i.cooldown)}),s&&(R[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},Me=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of P.keys()){if(li(e)){let t=E.has(`actions`),n=E.has(`docker`),r=P.get(e),i=M(e),a=await V(c(e));if(ye[i]={absPath:e,content:r},t){O.actions??={};let e=Array.from(r.matchAll(ni),e=>ri(e[1])).filter(e=>e!==null);for(let t of e){if(!Q(t.name,`actions`,a.include,a.exclude,`actions`))continue;let e=`${i}${t.name}`;O.actions[e]||(O.actions[e]={old:t.ref},Ce.push({...t,key:e,apiUrl:ii(t.host,l),filePin:a.pin,fileCooldownDays:a.cooldownDays}))}}n&&(be[i]={absPath:e,content:r,fileType:`workflow`},Oe(r,i,[pi,mi,hi],a));continue}let t=s(e);if(Li(t)){let n=P.get(e),r=M(e),i=Ii(t)?`dockerfile`:`compose`,a=await V(c(e));be[r]={absPath:e,content:n,fileType:i},Oe(n,r,[Ri(t)],a);continue}if(Vi(t)){let t=P.get(e),n=M(e),r=await V(c(e));xe[n]={absPath:e,content:t},O.make??={};let i={projectDir:c(e),filePin:r.pin,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of Ki(t)){if(!Q(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=`${n}${e}`;O.make[t]||(O.make[t]={old:J(a),oldOrig:a},Te.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Zi(t)){if(!Q(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=`${n}${e.writtenImage}`;if(O.make[t])continue;let a=bi(e.ref.tag);if(!a)continue;let o=Yi(e.writtenImage,e.ref.tag,e.digest);O.make[t]={old:a.version,oldOrig:e.ref.tag},Te.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=He[t];if(t===`go.work`){O[n]??={};let t=c(f(e)),i=P.get(e);I={file:e,content:i};let a=Qr(i),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p]=await Promise.all([De(t),W(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await x(n,`utf8`)}}catch{return null}},{concurrency:r})]),m=B(n,o);R[n]={modeConfig:o,projectDir:t,pin:d};for(let e of p){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=qr(i),o=c(r);F.push({absPath:r,content:i,projectDir:o,memberPath:t}),ge(n,a,t===`.`?``:`|${t}`,m,s,l)}for(let[e,t]of Object.entries(a.replace))Q(e,n,s,l,`replace`)&&N(n,`replace`,``,e,ti(t),J(t));continue}if(t===`go.mod`&&F.some(t=>t.absPath===f(e))||t===`package.json`&&L.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){O[n]??={};let t=P.get(e),i=Ae.get(e)??ae(t),a=c(f(e)),o=Ca([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,l=Array.isArray(s)&&s.length,[{modeConfig:u,modeInclude:d,modeExclude:p,pin:m},h,g]=await Promise.all([De(a),o?x(o,`utf8`):Promise.resolve(null),l?ga(s,a,`Cargo.toml`,r):Promise.resolve([])]),_=B(n,u),v=h?sa(h):new Map,y=(e,t)=>{for(let r of _){let i=qe(e,r)||{};if(!(typeof i!=`object`||Array.isArray(i))){for(let[e,a]of Object.entries(i))if(Q(e,n,d,p,r))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)){let i=a.version;je(i)&&N(n,r,t,e,ua(v,e,i)??Z(i),i)}else typeof a==`string`&&je(a)&&N(n,r,t,e,ua(v,e,a)??Z(a),a)}}};if(l){R[n]={modeConfig:u,projectDir:a,pin:m},y(i,``),Se.push({absPath:f(e),content:t,memberPath:`.`});for(let e of g)Se.push(e),y(Me(e.absPath,()=>ae(e.content)),`|${e.memberPath}`)}else y(i,H(n,e,t,a,u,m));continue}if(t===`pnpm-workspace.yaml`){O[n]??={};let t=c(f(e)),i=_a(P.get(e)),a=u(t,`package.json`),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p,m]=await Promise.all([De(t),et(x(a,`utf8`)),ga(i,t,`package.json`,r)]),h=B(n,o);if(R[n]={modeConfig:o,projectDir:t,pin:d},p!==null){let e=Me(a,()=>JSON.parse(p));L.push({absPath:f(a),content:p,memberPath:`.`}),ge(n,e,``,h,s,l)}for(let e of m){let t=Me(e.absPath,()=>JSON.parse(e.content));L.push(e),ge(n,t,`|${e.memberPath}`,h,s,l)}continue}O[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await De(i),m=B(n,a),h=P.get(e),g=H(n,e,h,i,a,p);ge(n,Me(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?ae(h):n===`go`?qr(h):{}),g,m,o,d)}if(!Da(O)&&!Object.keys(k).length)return{results:{},message:`No dependencies found, nothing to do.`};let Ne=[],Pe=!!pe(R.npm?.modeConfig.cooldown)||(A.npm??[]).some(e=>e.modeCooldownDays)||Object.keys(O.npm??{}).some(e=>D(e.split(`\0`)[1]).cooldownOverride),Fe={registry:n.registry,needsDates:Pe};for(let[e,t]of Object.entries(R)){let n=O[e]&&Object.keys(O[e]).length>0,i=e===`npm`&&Object.keys(k).length>0;if(!n&&!i)continue;let{modeConfig:a,projectDir:o,pin:s}=t,c=pe(a.cooldown);Ne.push((async()=>{let t=new Map;for(let n of A[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let n={modeConfig:a,projectDir:o,pin:s,modeCooldownDays:c},i=e=>{let r=e.indexOf(`|`);return r!==-1&&t.get(e.slice(r))||n},l=new Map,u=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let[r,a]=t.split(`\0`),{modeCooldownDays:o}=i(r);if(!o&&!ce)continue;let s=D(a).cooldownOverride??o;s&&!K(n,s,j)&&delete e[t]}},d=O[e];if(await W(Object.keys(d),async t=>{let[n,r]=t.split(`\0`),a=pa(n),{modeConfig:o,projectDir:s,pin:c,modeCooldownDays:u}=i(n),f=d[t],p;if(e===`npm`)if(f.oldOrig&&rr(f.oldOrig))p=await cr(r,S);else if(f.oldOrig&&ir(f.oldOrig)){let e=await et(tr(r,a,o,Fe,S));if(!e){delete d[t];return}p=e}else p=await tr(r,a,o,Fe,S);else p=e===`go`?await Yr(r,a,f.oldOrig||f.old,s,S,_):e===`cargo`?await oa(r,S):await gr(r,S);let[m,h]=p;if(m.error)throw Error(m.error);let{useGreatest:g,usePre:v,useRel:y,semvers:ee,allowDowngrade:te,cooldownOverride:b}=D(m.name),{old:x,oldOrig:C}=f,ne=c[r],re=b??u,w=Rt(m,{usePre:v,useRel:y,useGreatest:g,semvers:ee,range:x,mode:e,pinnedRange:ne,allowDowngrade:te,cooldownDays:re||void 0,now:re?j:void 0}),T=``;if((e===`go`||e===`pypi`)&&w)T=w;else if(e===`cargo`&&w&&C)T=la(C,w);else if(w)if(C&&ir(C))T=String(Un()[`save-exact`])===`true`?w:`^${w}`;else if(C&&rr(C)){let e=Sa.exec(C);e?T=`${e[1]}${w}`:C.startsWith(`jsr:`)&&(T=`jsr:${w}`)}else T=dr(x,w,C);if(!w||w===x||C&&C===T){delete d[t];return}let ie=(e===`pypi`?m.releases?.[w]?.[0]?.upload_time_iso_8601:e===`go`?m.Time:e===`cargo`?m.time?.[w]:``)||``;f.new=T,C&&rr(C)&&(f.newPrint=w),e===`npm`?l.set(t,{name:r,promise:nr(m.name,w,o,Fe,S)}):e===`pypi`?f.info=_n(m,h,m.info.name):e===`go`?f.info=$r(m.newPath||r):e===`cargo`&&(f.info=`https://crates.io/crates/${r}`),Ta(f,ie)},{concurrency:r}),await Promise.all(Array.from(l,async([e,{name:t,promise:n}])=>{let r=await n,i=d[e];i&&(i.info=_n({repository:r.repository,homepage:r.homepage},null,t),r.date&&Ta(i,r.date))})),e===`npm`&&Object.keys(k).length){let e=(await W(Object.entries(k),([e,t])=>mr(e,t,S),{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:s}of e){let e=d[t]={old:k[t].old,new:n,oldPrint:rn.test(a)?a.substring(0,7):a,newPrint:rn.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&Ta(e,s)}}u(d)})())}Ce.length&&Ne.push((async()=>{await W(Map.groupBy(Ce,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a=await un(t,n,i,S),o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=J(e.name);ve(t)&&(o.push(t),s.has(t)||s.set(t,e.name)),e.commitSha&&l.set(e.commitSha,e.name)}let u=rt(e=>ai(t,n,i,e,S));async function d(e){let t=new Set;for(let n=0;n<20;n++){let n=It({},t.size?o.filter(e=>!t.has(e)):o,e);if(!n||n===e.range)return null;let r=s.get(n);if(!r){t.add(n);continue}let i=c.get(r)?.commitSha||``;if(!e.cooldownDays)return{version:n,tag:r,commitSha:i,date:``};let a=i?await u(i):``;if(K(a,e.cooldownDays,e.now))return{version:n,tag:r,commitSha:i,date:a};t.add(n)}return null}await W(e,async({key:e,host:t,ref:r,name:a,isHash:o,filePin:s,fileCooldownDays:f})=>{let p=O.actions[e],m=`https://${t||`github.com`}/${n}/${i}`,h=fe[a]??s[a],g=r;o?g=l.get(r)??l.entries().find(([e])=>e.startsWith(r))?.[1]??``:an(r)||(g=``);let _=g?X(J(g)):``;if(!_){delete O.actions[e];return}let{usePre:v,useRel:y,semvers:ee,cooldownOverride:te}=D(a),b=te??f,x=await d({range:_,semvers:ee,usePre:v,useRel:y,useGreatest:!0,pinnedRange:h,cooldownDays:b||void 0,now:b?j:void 0});if(!x){delete O.actions[e];return}let{tag:S,commitSha:C,date:ne}=x;if(o){if(!C||C.startsWith(r)||r.startsWith(C)){delete O.actions[e];return}p.old=r,p.new=C.substring(0,r.length),p.oldPrint=g,p.newPrint=S}else{let t=oi(S,r);if(t===r){delete O.actions[e];return}p.new=c.has(t)?t:S}p.info=m;let re=ne||(C?await u(C):``);re&&Ta(p,re)},{concurrency:r})},{concurrency:r}),Object.keys(O.actions).length||delete O.actions})()),we.length&&Ne.push((async()=>{await W(Map.groupBy(we,e=>e.fullImage).entries(),async([e,t])=>{let n;try{let[t]=await Di(e,S);n=t}catch{for(let e of t)delete O.docker[e.key];return}let r=Oa(e,`docker`);for(let i of t){let t=O.docker[i.key],a=t.oldOrig||t.old,{semvers:o,cooldownOverride:s}=D(e,r),c=ka(fe,r)??ka(i.filePin,r),l=s??i.fileCooldownDays,u=Oi(n.tags,a,o,l||void 0,l?j:void 0,c);if(!u){delete O.docker[i.key];continue}t.new=u.newTag,t.info=zi(i.ref),Ta(t,u.date)}},{concurrency:r}),Object.keys(O.docker).length||delete O.docker})()),Te.length&&Ne.push((async()=>{await W(Te,async e=>{let t=Oa(e.name,e.kind),{useGreatest:n,usePre:r,useRel:i,semvers:a,allowDowngrade:o,cooldownOverride:s}=D(e.name,t),c=ka(fe,t)??ka(e.filePin,t),l=s??e.fileCooldownDays,u={semvers:a,useGreatest:n,usePre:r,useRel:i,allowDowngrade:o,pinnedRange:c,cooldownDays:l||void 0,now:l?j:void 0},d=O.make[e.key],f;if(e.kind===`go`){let t=await et(ta(e.installPath,e.version,e.projectDir,S,_,u));if(!t){delete O.make[e.key];return}e.newSpec=`${t.newInstallPath}@${t.newVersion}`,d.new=t.newVersion,f=t}else{let t=await et(na(e.image,S,u));if(!t){delete O.make[e.key];return}e.newSpec=Yi(e.image.writtenImage,t.newTag,e.image.digest?t.newDigest:null),d.new=t.newTag,f=t}d.info=f.info,f.date&&Ta(d,f.date)},{concurrency:r}),Object.keys(O.make).length||delete O.make})());try{await Promise.all(Ne)}finally{await ft()}if(!Da(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=ma(O[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;for(let[e,n]of Object.entries(O.actions??{})){let[r,i]=e.split(`\0`),a=rn.test(n.old)?n.newPrint:void 0;nt(t,r,{name:i,oldRef:n.old,newRef:n.new,newComment:a})}let n=new Map;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=new Map;for(let e of Te)!e.newSpec||!O.make?.[e.key]||nt(r,e.key.split(`\0`)[0],{oldSpec:e.oldSpec,newSpec:e.newSpec});let i=Object.keys(O).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(O[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=ye[e]||{};if(!t)continue;let i=si(r,n);$(t,i),be[e]&&(be[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=be[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?ji:a===`compose`?Mi:Ni)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=xe[e];n&&$(n.absPath,ra(n.content,t))}continue}if(a===`go`){for(let e of[...F,...A.go??[]]){let t=ma(O[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=Xr(e.content,t);n!==e.content&&$(e.absPath,n),Zr(e.projectDir,r,$)}if(I){let e={};for(let[t,n]of Object.entries(O[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=Xr(I.content,e);t!==I.content&&$(I.file,t)}}}else a===`cargo`?(e(a,Se,fa),e(a,A.cargo??[],fa)):a===`npm`?(e(a,L,lr),e(a,A.npm??[],lr)):e(a,A[a]??[],_r)}}return ja(O)}function Pa(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Fa(e){let t=bn(e);if(t!==!1)return t===!0||Array.from(t).map(Pa)}function Ia(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=v(n).isDirectory()}catch{}return r?n:c(n)}function La(e,t){let n=bn(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Ia(r[0])}}function Ra(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:vn,...e!==void 0&&{args:e}}),n=t.values;for(let[e,r]of t.tokens.entries()){if(r.kind!==`option`||!r.value?.startsWith(`-`))continue;let i=r.value.startsWith(`--`)?2:1,a=xn(r.value.substring(i));if(!a)continue;let o=t.tokens[e+1],s=n[r.name];if(Array.isArray(s)){let e=s.indexOf(r.value);e!==-1&&s.splice(e,1)}else n[r.name]=!0;let c=o?.kind===`positional`&&o.value?o.value:!0;vn[a]?.multiple?(n[a]??=[]).push(c):n[a]=c}return{args:n,positionals:t.positionals}}async function za(e,t){let{filesList:n,startDir:r}=La(e,t),i=typeof e.timeout==`string`?$e(e.timeout,`timeout`):void 0,a={...await On(r,{noCache:!!e[`no-cache`],timeout:i??5e3}),pin:void 0};e.json&&(a.json=!0),e.verbose&&(a.verbose=!0),e[`no-cache`]&&(a.noCache=!0),e.update&&(a.update=!0),e.indirect&&(a.indirect=!0),e[`error-on-outdated`]&&(a.errorOnOutdated=!0),e[`error-on-unchanged`]&&(a.errorOnUnchanged=!0),e.color&&(a.color=!0,a.noColor=!1),e[`no-color`]&&(a.color=!1,a.noColor=!0),i!==void 0&&(a.timeout=i),typeof e.sockets==`string`&&(a.sockets=Number(e.sockets)||void 0),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=Cn(e.include).map(Pa),s=Cn(e.exclude).map(Pa);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=Cn(e.types);c.length&&(a.types=c);let l=wn(e.pin);Object.keys(l).length&&(a.pin=l);let u=bn(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Fa(e[t]);n!==void 0&&(a[t]=n)}let d=Fa(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);return a}function Ba(e){try{return kn(g(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function Va(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const Ha={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function Ua(e){if(He[e])return He[e];if(Li(e))return`docker`;if(Vi(e))return`make`}function Wa(e,t){let n=new Set;try{for(let t of _(e,{withFileTypes:!0}))if(t.isFile()){let e=Ua(t.name);e&&n.add(e)}else t.isDirectory()&&U.some(e=>e===t.name)&&n.add(`actions`)}catch{}let r=new Set;for(let i of n)for(let n of Ha[i]??[]){let i=Va(n===`registry`&&typeof t.registry!=`string`?Ba(e):t[n],q[n]);i&&r.add(i)}return Array.from(r)}const Ga=/[A-Za-z_$]/,Ka=/[A-Za-z0-9_$]/;function qa(e){let t=``,n=0,r=e.length,i=-1;function a(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
7
7
  `;)t++;return t}for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;return t+2}function o(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&(e[t+1]===`/`||e[t+1]===`*`)){t=a(t);continue}break}return t}for(;n<r;){let s=e[n];if(s===`"`){for(i=-1,t+=s,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(s===`'`){for(i=-1,t+=`"`,n++;n<r;){let i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
8
- `){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(s===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=a(n);continue}if(s===`,`){i=t.length,t+=s,n++;continue}if(s===`}`||s===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=s,n++;continue}if(za.test(s)){i=-1;let a=``;for(;n<r&&Ba.test(e[n]);)a+=e[n],n++;t+=e[o(n)]===`:`?JSON.stringify(a):a;continue}/\s/.test(s)||(i=-1),t+=s,n++}return JSON.parse(t)}export{Oe as $,Xt as A,$t as B,_t as C,cn as D,un as E,Zt as F,rn as G,Yt as H,Dt as I,G as J,at as K,gt as L,Ft as M,Ot as N,ht as O,on as P,Qe as Q,ft as R,Bt as S,Wt as T,Jt as U,dt as V,Y as W,et as X,Pe as Y,qe as Z,wt as _,ja as a,Pt as b,Z as c,bt as d,nn as f,pt as g,Tt as h,Na as i,Nt as j,mt as k,Et as l,en as m,Ra as n,Da as o,qt as p,ct as q,Ma as r,qr as s,Va as t,J as u,X as v,Kt as w,sn as x,It as y,Qt as z};
8
+ `){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(s===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=a(n);continue}if(s===`,`){i=t.length,t+=s,n++;continue}if(s===`}`||s===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=s,n++;continue}if(Ga.test(s)){i=-1;let a=``;for(;n<r&&Ka.test(e[n]);)a+=e[n],n++;t+=e[o(n)]===`:`?JSON.stringify(a):a;continue}/\s/.test(s)||(i=-1),t+=s,n++}return JSON.parse(t)}export{Xe as $,rn as A,Yt as B,yt as C,hn as D,_n as E,an as F,J as G,K as H,kt as I,ct as J,dn as K,vt as L,Lt as M,At as N,_t as O,pn as P,rt as Q,mt as R,Ut as S,qt as T,nn as U,sn as V,tn as W,U as X,dt as Y,Le as Z,Et as _,La as a,It as b,X as c,St as d,tt as et,un as f,ht as g,Dt as h,za as i,Ft as j,gt as k,Ot as l,cn as m,Wa as n,Na as o,en as p,zt as q,Ra as r,ei as s,qa as t,je as tt,q as u,Y as v,$t as w,mn as x,Rt as y,on as z};
package/dist/shared2.js CHANGED
@@ -1 +1 @@
1
- import{C as e,O as t,w as n}from"./shared.js";export{e as getFetchOpts,n as getForgeTokens,t as githubApiUrl};
1
+ import{C as e,O as t,q as n,w as r}from"./shared.js";export{e as getFetchOpts,r as getForgeTokens,t as githubApiUrl,n as urlHost};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.20.4",
3
+ "version": "17.21.0",
4
4
  "description": "CLI dependency update tool for npm, uv, cargo, go, actions, docker and make",
5
5
  "author": "silverwind",
6
6
  "repository": {
@@ -46,14 +46,14 @@
46
46
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
47
47
  "@vitest/coverage-v8": "4.1.10",
48
48
  "eslint": "10.8.0",
49
- "eslint-config-silverwind": "143.0.0",
49
+ "eslint-config-silverwind": "143.1.0",
50
50
  "timerel": "5.8.8",
51
51
  "tsdown": "0.22.14",
52
52
  "tsdown-config-silverwind": "4.0.3",
53
53
  "typescript": "6.0.3",
54
54
  "typescript-config-silverwind": "20.0.3",
55
- "updates-config-silverwind": "4.0.4",
56
- "versions": "15.1.4",
55
+ "updates-config-silverwind": "4.0.5",
56
+ "versions": "15.3.0",
57
57
  "vitest": "4.1.10",
58
58
  "vitest-config-silverwind": "11.5.0"
59
59
  },