updates 17.22.1 → 18.0.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
@@ -170,7 +170,7 @@ const output = await updates({
170
170
  //=> "old": "18.0.0",
171
171
  //=> "new": "19.2.0",
172
172
  //=> "info": "https://github.com/facebook/react",
173
- //=> "age": "2 days"
173
+ //=> "age": "2d"
174
174
  //=> }
175
175
  //=> }
176
176
  //=> }
package/dist/index.js CHANGED
@@ -44,4 +44,4 @@ import{V as e,a as t,at as n,i as r,n as i,o as a,r as o,rt as s,s as c,v as l}f
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 r(_,v);!t.noColor&&(t.color||p.isTTY)&&(y=e=>g(`red`,String(e),{validateStream:!1}),b=e=>g(`green`,String(e),{validateStream:!1})),x=!!t.json;let n=await a(t),i=Object.keys(n.results).length>0,o=n.errors??[];if(t.json?console.info(JSON.stringify({...n.message&&{message:n.message},...i&&{results:n.results},...o.length&&{errors:o}})):n.message?console.info(n.message):i&&console.info(T(n)),t.update&&i&&!t.json)for(let[e,t]of Object.entries(n.results))Object.values(t).some(e=>Object.keys(e).length)&&console.info(b(`✨ ${e} updated`));if(!t.json)for(let{mode:e,name:t,error:n}of o)console.info(y(`${e} ${t}: ${n}`));o.length?await S(void 0,1):t.errorOnOutdated?await S(void 0,i?2:0):t.errorOnUnchanged?await S(void 0,i?0:2):await S()}const w=e=>h(e).length;function T(e){let t=Object.keys(e.results),r=t.length>1,i=[r?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],a=new Set;for(let n of t){let t=Object.values(e.results[n]).flatMap(e=>Object.entries(e));for(let[e,o]of t.sort(([e],[t])=>e.localeCompare(t))){let t=`${n}|${e}|${o.old}|${o.new}`;a.has(t)||(a.add(t),i.push([n===`go`?c(e):e,...r?[n]:[],s(o.old,o.new,y),s(o.new,o.old,b),o.age||``,o.info||``]))}}return n(i,w)}try{await C()}catch(e){await S(e)}export{};
47
+ `),await S()),_.version&&(console.info(e),await S());let t=await r(_,v);!t.noColor&&(t.color||p.isTTY)&&(y=e=>g(`red`,String(e),{validateStream:!1}),b=e=>g(`green`,String(e),{validateStream:!1})),x=!!t.json;let n=await a(t),i=Object.keys(n.results).length>0,o=n.errors??[];if(t.json?console.info(JSON.stringify({...n.message&&{message:n.message},...i&&{results:n.results},...o.length&&{errors:o}})):n.message?console.info(n.message):i&&console.info(T(n)),t.update&&i&&!t.json)for(let[e,t]of Object.entries(n.results))Object.values(t).some(e=>Object.keys(e).length)&&console.info(b(`✨ ${e} updated`));if(!t.json)for(let{mode:e,name:t,error:n}of o)console.info(y(`${e} ${t}: ${n}`));o.length?await S(void 0,1):t.errorOnOutdated?await S(void 0,i?2:0):t.errorOnUnchanged?await S(void 0,i?0:2):await S()}const w=e=>h(e).length;function T(e){let t=Object.keys(e.results),r=t.length>1,i=[r?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],a=new Set;for(let n of t){let t=Object.values(e.results[n]).flatMap(e=>Object.entries(e));for(let[e,o]of t.sort(([e],[t])=>e<t?-1:+(e>t))){let t=`${n}|${e}|${o.old}|${o.new}`;a.has(t)||(a.add(t),i.push([n===`go`?c(e):e,...r?[n]:[],s(o.old,o.new,y),s(o.new,o.old,b),o.age||``,o.info||``]))}}return n(i,w)}try{await C()}catch(e){await S(e)}export{};
package/dist/renovate.js CHANGED
@@ -1 +1 @@
1
- import{$ as e,L as t,Q as n,et as r,it as i,nt as a,ot as o,t as s,tt as c}from"./shared.js";import{join as l}from"node:path";import{readFile as u}from"node:fs/promises";const d=[`renovate.json`,`renovate.jsonc`,`renovate.json5`,...[...c,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.jsonc`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.jsonc`,`.renovaterc.json5`],f={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 p(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=f[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}const m={matchPackageNames:e=>e,packageNames:e=>e,matchPackagePatterns:e=>e===`*`?`*`:`/${e}/`,packagePatterns:e=>e===`*`?`*`:`/${e}/`,matchPackagePrefixes:e=>`${e}*`,excludePackageNames:e=>`!${e}`,excludePackagePatterns:e=>`!/${e}/`,excludePackagePrefixes:e=>`!${e}*`},h=[`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`],g=new Set([`*`,`**`]);function _(e){let t=[];for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(m,n)?m[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||h.includes(n))return;continue}let i=typeof r==`string`?[r]:r;if(!Array.isArray(i))return;for(let n of i){if(typeof n!=`string`||!n)return;t.push(e(n))}}return t}function v(e){let t=Object.groupBy(e,e=>e.startsWith(`!`)&&e.length>1?`negated`:`positive`);return{positive:t.positive??[],negated:t.negated?.map(e=>e.substring(1))??[]}}function y(e,t){return e instanceof RegExp&&t instanceof RegExp?e.source===t.source&&e.flags===t.flags:e===t}async function b(e){let t=(await Promise.all(d.map(async t=>{let n=l(e,...t.split(`/`));try{return{path:n,text:await u(n,`utf8`)}}catch{return null}}))).find(e=>e!==null);if(t)return t;try{let t=l(e,`package.json`),n=JSON.parse(await u(t,`utf8`));if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:t,text:JSON.stringify(n.renovate)}}catch{}}function x(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function S(e){return/[*?[\]{}!()|+]/.test(e)}function C(e){let t=null,n=[],i={};for(let a of e){if(!a||typeof a!=`object`)continue;let e=_(a);if(!e)continue;let{positive:o,negated:s}=v(e);if(a.enabled===!1&&!(o.length&&s.length))if(!e.length||o.some(e=>g.has(e)))t=[];else if(!o.length)t===null&&(t=s.map(x));else for(let e of o)n.push(x(e));else if(a.enabled===!0&&(t!==null||n.length)){if(!e.length)t=null,n=[];else if(o.length&&!s.length)for(let e of o){let r=x(e);n=n.filter(e=>!y(e,r)),t?.push(r)}}if(typeof a.allowedVersions==`string`&&r(a.allowedVersions))for(let e of o)!S(e)&&typeof x(e)==`string`&&(i[e]=a.allowedVersions)}return{allowed:t,disabled:n,pin:i}}function w(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=p(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=Array.isArray(e.ignoreDeps)?e.ignoreDeps.filter(e=>typeof e==`string`&&!!e):[],{allowed:i,disabled:a,pin:o}=C(Array.isArray(e.packageRules)?e.packageRules:[]),s=[...r,...a];return i?.length&&(n.include=i),i&&!i.length&&s.push(`*`),s.length&&(n.exclude=s),Object.keys(o).length&&(n.pin=o,n.pinNoDowngrade=!0),n}const T={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 E(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(T,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 D=[`default.json`,`default.json5`,`renovate.json`,`renovate.json5`,`.renovaterc.json`,`.renovaterc`];function O(e){return/\.json[5c]?$/.test(e)?[e]:[`${e}.json`,`${e}.json5`]}function k(e,t){if(e===null)return null;let n;try{n=s(e)}catch{throw Error(`invalid JSON in ${t}`)}if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`invalid preset in ${t}`);return n}async function A(e,t){if(e.kind===`http`)return k(await t(e.url),e.url);let n=T[e.forge],r=async r=>{for(let i of r){let r=n(e.slug,e.ref,i),a=k(await t(r),r);if(a)return a}return null};if(e.subpath)return r(O(e.subpath));if(!e.name)return r(D);let[i,...a]=e.name.split(`/`),o=await r(O(i));for(let e of a){let t=o&&Object.hasOwn(o,e)?o[e]:void 0;if(!t||typeof t!=`object`)throw Error(`no preset ${e} in ${i}`);o=t}return o}function j(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 M(e,t,n,r){let i={},a=typeof e.extends==`string`?[e.extends]:Array.isArray(e.extends)?e.extends:[];for(let e of a){if(typeof e!=`string`||r>=10||n.has(e))continue;let a=E(e);if(!a)continue;let o;try{o=await A(a,t)}catch(t){throw Error(`Unable to resolve renovate preset ${e}: ${t.message}`)}if(!o)throw Error(`Unable to resolve renovate preset ${e}: not found`);i=j(i,await M(o,t,new Set(n).add(e),r+1))}let{extends:o,...s}=e;return j(i,s)}async function N(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 P({noCache:r=!1,timeout:i=1e4}={}){return async a=>{let o=r?null:await n(a),s=await N(a,o?.etag),c;for(let e=0;;e++)try{c=await fetch(a,{headers:s,signal:AbortSignal.timeout(i)});break}catch(n){if(e<2&&t(n))continue;if(o)return o.body;throw Error(`${a}: ${n.message}`)}if(c.status===304&&o)return o.body;if(c.status===404)return null;if(!c.ok){if(o)return o.body;throw Error(`${a}: HTTP ${c.status}`)}let l;try{l=await c.text()}catch(e){if(o)return o.body;throw Error(`${a}: ${e.message}`)}let u=c.headers.get(`etag`);return u&&!r&&e(a,u,l),l}}const F=i(e=>o(e,async e=>{let t=await b(e);if(!t)return null;let n;try{n=s(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}})),I=new Map,L=new Map;async function R(e,t={},n=P()){let r=await F(e);if(!r)return{};let i=a(I,r.path,()=>M(r.parsed,n,new Set,0));return a(L,`${+!!t.cooldown}${r.path}`,async()=>w(await i,t))}export{R as loadRenovateConfig,P as makePresetFetcher};
1
+ import{$ as e,L as t,Q as n,et as r,it as i,nt as a,ot as o,t as s,tt as c}from"./shared.js";import{join as l}from"node:path";import{readFile as u}from"node:fs/promises";const d=[`renovate.json`,`renovate.jsonc`,`renovate.json5`,...[...c,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.jsonc`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.jsonc`,`.renovaterc.json5`],f={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 p(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=f[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}const m={matchPackageNames:e=>e,packageNames:e=>e,matchPackagePatterns:e=>e===`*`?`*`:`/${e}/`,packagePatterns:e=>e===`*`?`*`:`/${e}/`,matchPackagePrefixes:e=>`${e}*`,excludePackageNames:e=>`!${e}`,excludePackagePatterns:e=>`!/${e}/`,excludePackagePrefixes:e=>`!${e}*`},h=[`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`],g=new Set([`*`,`**`]);function _(e){let t=[];for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(m,n)?m[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||h.includes(n))return;continue}let i=typeof r==`string`?[r]:r;if(!Array.isArray(i))return;for(let n of i){if(typeof n!=`string`||!n)return;t.push(e(n))}}return t}function v(e){let t=Object.groupBy(e,e=>e.startsWith(`!`)&&e.length>1?`negated`:`positive`);return{positive:t.positive??[],negated:t.negated?.map(e=>e.substring(1))??[]}}function y(e,t){return e instanceof RegExp&&t instanceof RegExp?e.source===t.source&&e.flags===t.flags:e===t}async function b(e){let t=(await Promise.all(d.map(async t=>{let n=l(e,...t.split(`/`));try{return{path:n,text:await u(n,`utf8`)}}catch{return null}}))).find(e=>e!==null);if(t)return t;try{let t=l(e,`package.json`),n=JSON.parse(await u(t,`utf8`));if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:t,text:JSON.stringify(n.renovate)}}catch{}}function x(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function S(e){return/[*?[\]{}!()|+]/.test(e)}function C(e){let t=null,n=[],i={};for(let a of e){if(!a||typeof a!=`object`)continue;let e=_(a);if(!e)continue;let{positive:o,negated:s}=v(e);if(a.enabled===!1&&!(o.length&&s.length)){if(!e.length||o.some(e=>g.has(e)))t=[];else if(!o.length)t===null&&(t=s.map(x));else for(let e of o)n.push(x(e))}else if(a.enabled===!0&&(t!==null||n.length)){if(!e.length)t=null,n=[];else if(o.length&&!s.length)for(let e of o){let r=x(e);n=n.filter(e=>!y(e,r)),t?.push(r)}}if(typeof a.allowedVersions==`string`&&r(a.allowedVersions))for(let e of o)!S(e)&&typeof x(e)==`string`&&(i[e]=a.allowedVersions)}return{allowed:t,disabled:n,pin:i}}function w(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=p(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=Array.isArray(e.ignoreDeps)?e.ignoreDeps.filter(e=>typeof e==`string`&&!!e):[],{allowed:i,disabled:a,pin:o}=C(Array.isArray(e.packageRules)?e.packageRules:[]),s=[...r,...a];return i?.length&&(n.include=i),i&&!i.length&&s.push(`*`),s.length&&(n.exclude=s),Object.keys(o).length&&(n.pin=o,n.pinNoDowngrade=!0),n}const T={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 E(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(T,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 D=[`default.json`,`default.json5`,`renovate.json`,`renovate.json5`,`.renovaterc.json`,`.renovaterc`];function O(e){return/\.json[5c]?$/.test(e)?[e]:[`${e}.json`,`${e}.json5`]}function k(e,t){if(e===null)return null;let n;try{n=s(e)}catch{throw Error(`invalid JSON in ${t}`)}if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`invalid preset in ${t}`);return n}async function A(e,t){if(e.kind===`http`)return k(await t(e.url),e.url);let n=T[e.forge],r=async r=>{for(let i of r){let r=n(e.slug,e.ref,i),a=k(await t(r),r);if(a)return a}return null};if(e.subpath)return r(O(e.subpath));if(!e.name)return r(D);let[i,...a]=e.name.split(`/`),o=await r(O(i));for(let e of a){let t=o&&Object.hasOwn(o,e)?o[e]:void 0;if(!t||typeof t!=`object`)throw Error(`no preset ${e} in ${i}`);o=t}return o}function j(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 M(e,t,n,r){let i={},a=typeof e.extends==`string`?[e.extends]:Array.isArray(e.extends)?e.extends:[];for(let e of a){if(typeof e!=`string`||r>=10||n.has(e))continue;let a=E(e);if(!a)continue;let o;try{o=await A(a,t)}catch(t){throw Error(`Unable to resolve renovate preset ${e}: ${t.message}`)}if(!o)throw Error(`Unable to resolve renovate preset ${e}: not found`);i=j(i,await M(o,t,new Set(n).add(e),r+1))}let{extends:o,...s}=e;return j(i,s)}async function N(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 P({noCache:r=!1,timeout:i=1e4}={}){return async a=>{let o=r?null:await n(a),s=await N(a,o?.etag),c;for(let e=0;;e++)try{c=await fetch(a,{headers:s,signal:AbortSignal.timeout(i)});break}catch(n){if(e<2&&t(n))continue;if(o)return o.body;throw Error(`${a}: ${n.message}`)}if(c.status===304&&o)return o.body;if(c.status===404)return null;if(!c.ok){if(o)return o.body;throw Error(`${a}: HTTP ${c.status}`)}let l;try{l=await c.text()}catch(e){if(o)return o.body;throw Error(`${a}: ${e.message}`)}let u=c.headers.get(`etag`);return u&&!r&&e(a,u,l),l}}const F=i(e=>o(e,async e=>{let t=await b(e);if(!t)return null;let n;try{n=s(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}})),I=new Map,L=new Map;async function R(e,t={},n=P()){let r=await F(e);if(!r)return{};let i=a(I,r.path,()=>M(r.parsed,n,new Set,0));return a(L,`${+!!t.cooldown}${r.path}`,async()=>w(await i,t))}export{R as loadRenovateConfig,P as makePresetFetcher};
package/dist/shared.js CHANGED
@@ -1,19 +1,19 @@
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 _,realpathSync as v,statSync as y,truncateSync as b,writeFileSync as x}from"node:fs";import{access as ee,mkdir as te,readFile as S,rename as ne,writeFile as C}from"node:fs/promises";import{AsyncLocalStorage as w}from"node:async_hooks";import{Buffer as T}from"node:buffer";import{createHash as E}from"node:crypto";import{homedir as re}from"node:os";import{pathToFileURL as ie}from"node:url";const ae=/^\[\[([^\]]+)\]\]$/,D=/^\[([^[\]]+)\]$/;function O(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=ae.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=D.exec(a);if(s){n=he(t,de(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=de(l),f=he(n,d.slice(0,-1)),p=d[d.length-1],m=oe(u);if((u.startsWith(`[`)||u.startsWith(`{`))&&!k(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${fe(r[n])}`,!k(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?`
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,readFile as g,readFileSync as _,readdirSync as v,realpathSync as y,statSync as b,truncateSync as x,writeFileSync as ee}from"node:fs";import{access as te,mkdir as ne,readFile as S,rename as C,writeFile as w}from"node:fs/promises";import{AsyncLocalStorage as T}from"node:async_hooks";import{Buffer as E}from"node:buffer";import{createHash as re}from"node:crypto";import{homedir as ie}from"node:os";import{pathToFileURL as ae}from"node:url";const D=/^\[\[([^\]]+)\]\]$/,O=/^\[([^[\]]+)\]$/;function oe(e){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=pe(i).trim();if(!a)continue;let o=D.exec(a);if(o){let e=t,r=fe(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=O.exec(a);if(s){n=he(t,fe(s[1]));continue}let c=j(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=fe(l),f=he(n,d.slice(0,-1)),p=d[d.length-1],m=se(u);if((u.startsWith(`[`)||u.startsWith(`{`))&&!ue(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${pe(r[n])}`,!ue(t));n++);e=n,f[p]=ce(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]=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=me(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(`"""`)?ge(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ge(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 k(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=A(e,`#`);return t<0?e:e.slice(0,t)}function*pe(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 pe(e,t).next().value??-1}function me(e,t){let n=-1;for(let r of pe(e,t))n=r;return n}function he(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 ge(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}})}function _e(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 ve=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,ye=/^(\s*\()([^)]*)(\)\s*)$/,be=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,j=new Set([`===`,`==`,`>=`,`~=`]),xe=/^v?\d[0-9a-z.!+_-]*$/i;function Se(e){let t=[];for(let n of e.split(`,`)){let e=be.exec(n);if(!e)return null;let[,r,i,a,o,s]=e;t.push({lead:r,op:i,sep:a,version:o,trail:s})}return t}function Ce(e){let t=e.indexOf(`;`),n=ve.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[,r,i,a,o,s,c]=n,l=ye.exec(c);return{name:i,extras:o,specifiers:Se(l?l[2]:c),marker:t===-1?``:e.slice(t),head:`${r}${i}${a}${o}${s}`,open:l?.[1]??``,close:l?.[3]??``}}function we({head:e,open:t,close:n,marker:r},i){return`${e}${t}${i.map(({lead:e,op:t,sep:n,version:r,trail:i})=>`${e}${t}${n}${r}${i}`).join(`,`)}${n}${r}`}function M(e){return e.find(({op:e,version:t})=>j.has(e)&&xe.test(t))}function Te(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=Ce(n);if(!e?.specifiers)continue;let r=M(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const Ee=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],De=[`node`,`deno`,`bun`],N=[`.github`,`.gitea`,`.forgejo`],Oe={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},ke=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],Ae=[`deps`,`indirect`,`replace`,`tool`],je=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Me=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function Ne(e,t){let n=[],r=(e,t,i,a)=>{if(t===e.length){a!==void 0&&n.push([i,a]);return}if(!a||typeof a!=`object`)return;let o=e[t],s=o===`*`?Array.isArray(a)?[]:Object.keys(a):[o];for(let n of s)r(e,t+1,i?`${i}.${n}`:n,a[n])};for(let n of e)r(n.split(`.`),0,``,t);return n}function Pe(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 Fe(e){return e.split(`,`).filter(Boolean)}function Ie(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function P(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 Le={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Re(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Le[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function ze(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function F(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 Be(e){try{return await e}catch{return null}}const I=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Ve(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(I).join(`|`)}function He(e){return e instanceof RegExp?/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e:RegExp(`^${I(e).replaceAll(`\\*`,`.*`)}$`,`i`)}async function L(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 Ue(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function R(e,t,n){return e.has(t)||e.set(t,n()),e.get(t)}function We(e){let t=new Map;return n=>R(t,n,()=>e(n))}const Ge=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,Ke=new Map;function z(e){return typeof e==`string`?R(Ke,e,()=>{let t=Ge.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function qe(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 B(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function V(e,t){let n=B(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=qe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function Je(e){return z(e)?.version??null}function H(e){return z(e)}const Ye=new Map,Xe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function U(e){return typeof e==`string`?R(Ye,e,()=>{let t=Xe.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function Ze(e,t){let n=z(e),r=z(t);return!n||!r?null:Qe(n,r)}function Qe(e,t){if(e.version===t.version)return null;let n=V(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(B(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 $e(e,t){let n=z(e),r=z(t);return n&&r?V(n,r):null}function W(e,t){return($e(e,t)??-1)>0}function et(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=z(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function tt(e,t){let n=V(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 G(e,t,n){return`${e}.${t}.${n}-0`}function nt(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?G(o+1,0,0):t===`~`?G(o,s+1,0):o===0?i!==void 0&&s===0?G(0,0,c+1):G(0,s+1,0):G(o+1,0,0),`>=${o}.${s}.${c}${l} <${u}`})}function rt(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?`<${G(p+1,0,0)}`:`<${G(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function it(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${G(t+1,0,0)}`:`>=${t}.${n}.0 <${G(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${G(t+1,0,0)}`:`<${G(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function at(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>it(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>it(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${it(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${it(n,Number(r),0,!0)}`),e)}const ot=new Map;function st(e){return R(ot,e,()=>{let t=e.split(`||`).map(e=>e.trim()),n=[];for(let e of t){if(!e){n.push([]);continue}e=rt(e),e=nt(e),e=at(e),e=e.replace(/(>=|<=|>|<|=)\s+/g,`$1`),e=e.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let t=[];for(let n of e.split(/\s+/).filter(Boolean)){let e=et(n);if(!e)return null;t.push(e)}if(t.length===0)return null;n.push(t)}return n.length?n:null})}function ct(e,t){return t.some(t=>!tt(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 K(e,t){let n=z(e);if(!n)return!1;let r=st(t);if(!r)return!1;for(let e of r)if(e.length===0||ct(n,e))return!0;return!1}function lt(e){return typeof e==`string`&&st(e)?e:null}const ut=`v?(?:(\\d+)!)?(\\d+(?:\\.\\d+)*)(?:[-_.]?(a|b|c|rc|alpha|beta|pre|preview)[-_.]?(\\d+)?)?(?:-(\\d+)|[-_.]?(post|rev|r)[-_.]?(\\d+)?)?(?:[-_.]?(dev)[-_.]?(\\d+)?)?(?:\\+([a-z0-9]+(?:[-_.][a-z0-9]+)*))?`,dt=RegExp(`^${ut}$`,`i`),ft=RegExp(ut,`i`),pt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},mt=new Map;function q(e){return typeof e==`string`?R(mt,e,()=>{let t=dt.exec(e.trim());if(!t)return null;let n=t[3]?.toLowerCase();return{epoch:t[1]?Number(t[1]):0,release:t[2].split(`.`).map(Number),pre:n?[pt[n]??n,Number(t[4]??0)]:null,post:t[5]===void 0?t[6]===void 0?null:Number(t[7]??0):Number(t[5]),dev:t[8]===void 0?null:Number(t[9]??0),local:t[10]?t[10].toLowerCase().split(/[._-]/).map(e=>/^\d+$/.test(e)?Number(e):e):null,version:e.trim()}}):null}function ht(e){return q(e)??q(ft.exec(e)?.[0]??``)}const gt=e=>!!(e.pre||e.dev);function _t(e,t){if(!e||!t)return e?1:t?-1:0;let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=typeof e[r]==`number`;if(n!==(typeof t[r]==`number`))return n?1:-1;if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length-t.length}function vt(e,t){if(e.epoch!==t.epoch)return e.epoch-t.epoch;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++){let n=(e.release[r]??0)-(t.release[r]??0);if(n)return n}let r=e.pre?0:e.post===null&&e.dev!==null?-1:1,i=t.pre?0:t.post===null&&t.dev!==null?-1:1;if(r!==i)return r-i;if(e.pre&&t.pre){if(e.pre[0]!==t.pre[0])return e.pre[0]<t.pre[0]?-1:1;if(e.pre[1]!==t.pre[1])return e.pre[1]-t.pre[1]}if((e.post??-1)!==(t.post??-1))return(e.post??-1)-(t.post??-1);let a=e.dev??1/0,o=t.dev??1/0;return a===o?_t(e.local,t.local):a<o?-1:1}function yt(e,t){if(e.epoch!==t.epoch)return`major`;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++)if((e.release[r]??0)!==(t.release[r]??0))return r===0?`major`:r===1?`minor`:`patch`;return null}function bt(e,t){let n=vt(e,t);if(n===0)return null;let r=yt(e,t);return gt(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const xt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,St={parse:H,parseRange:e=>H(xt.exec(e)?.[0]??``)??H(U(e)?.version??``),compare:V,diff:Qe,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:(e,t)=>K(e.version,t)};function Ct(e){let t=e.trim().replace(/^v/i,``);return(H(t)??H(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?H(U(t)?.version??``):null)}const wt={...St,parse:Ct,parseRange:Ct,isRangePrerelease:e=>!!Ct(e)?.prerelease.length},Tt={parse:q,parseRange:ht,compare:vt,diff:bt,isPrerelease:gt,isRangePrerelease:e=>{let t=ht(e);return!!(t&&gt(t))},satisfiesRange:({release:e},t)=>K(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Et=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Dt={"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`},Ot={sec:`second`,min:`minute`};function kt(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function At(e,{now:t,noAffix:n=!1,times:r=Et,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Dt,longUnits:l=!1}={}){let u=(t===void 0?Date.now():kt(t))-kt(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&&Ot[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}const jt=u(r===`win32`?t.LOCALAPPDATA||u(re(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(re(),`.cache`),`updates`);let Mt=null;const Nt=new Map;function Pt(e){return R(Nt,e,()=>E(`sha256`).update(e).digest(`hex`).substring(0,16))}async function Ft(e){try{let t=await S(u(jt,`${Pt(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 It=new Set;let Lt=0;function Rt(e,t,r){let i=(async()=>{try{await(Mt??=te(jt,{recursive:!0}))}catch{Mt=null;return}try{let i=u(jt,`${Pt(e)}.cache`),a=`${i}.${n}-${Lt++}.tmp`;await C(a,`${t}\n${r}`),await ne(a,i)}catch{}})();It.add(i),(async()=>{await i,It.delete(i)})()}async function zt(){for(;It.size;)await Promise.all(It)}var Bt=`17.22.1`;function Vt(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Ht=Bt,Ut=5e3,Wt=2500,Gt=`https://api.github.com`,J={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:Gt,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,Kt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function qt(e,t){return{headers:{"user-agent":`updates/${Ht}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const Jt=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`&&Jt.has(t)}async function Xt(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 Zt(e,t,n={}){let r=un(e);for(let i=0;;i++)try{return await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)}))}catch(e){if(i>=2||!e?.transient)throw e}}async function Qt(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}const $t=e=>t=>JSON.stringify(e(JSON.parse(t)));function en(e,t){if(!t||e.length<16384)return e;try{return t(e)}catch{return e}}async function tn(e,t,n,r,i){let a=en(await Qt(t),r);return i&&!n.noCache&&Rt(e,i,a),{body:a,res:t}}async function nn(e,t,n={},r,i=e){let a=t.noCache?null:await Ft(i),o=n.headers,s=a?{...o,"if-none-match":a.etag}:o,c=await Zt(t,e,{...n,headers:s});return c?c.status===304&&a?{body:a.body,res:c}:c.ok?tn(i,c,t,r,c.headers?.get?.(`etag`)):{res:c}:{res:void 0}}async function rn(e,t,n={},r){if(!t.noCache){let t=await Ft(e);if(t)return{body:t.body}}let i=await Zt(t,e,n);return i?i.ok?tn(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function an(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}const on=new w;function sn(e){let t=0,n=0,r=[];return async i=>{if(on.getStore())return i();t<e?t++:await new Promise(e=>{r.push(e)});try{return await on.run(!0,i)}finally{n<r.length?(r[n++](),n===r.length&&(r=[],n=0)):t--}}}const cn=e=>Math.max(e.concurrency||25,1),ln=new WeakMap;function un(e){let t=ln.get(e);return t||ln.set(e,t=sn(cn(e))),t}function dn(e,t=St){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}function fn(e,t,n){let r=e.get(t);if(r)return r;let i=new Set(t);return n(i),e.set(t,i),i}const pn=new WeakMap,mn=new WeakMap;function hn(e,t,n,r){return t?{effectiveUsePre:!0,effectiveSemvers:fn(pn,n,e=>{e.add(`prerelease`),n.has(`patch`)&&e.add(`prepatch`),n.has(`minor`)&&e.add(`preminor`),n.has(`major`)&&e.add(`premajor`)})}:r.isRangePrerelease(e)?{effectiveUsePre:!0,effectiveSemvers:fn(mn,n,e=>e.add(`prerelease`))}:{effectiveUsePre:!1,effectiveSemvers:n}}function gn(e,t,{useRel:n,allowDowngrade:r,name:i},a=St){let o=a.parseRange(e),s=a.parse(t);if(!o||!s)return!0;let c=a.isRangePrerelease(e)||a.isPrerelease(o),l=a.isPrerelease(s);return c&&!l?a.compare(s,o)>=0||n:!l&&a.compare(s,o)<0?Pe(i,r):!0}function _n(e){return U(e)?.version??``}function vn(e,t,{range:n,semvers:r,usePre:i,useRel:a,pinnedRange:o,pinNoDowngrade:s,cooldownDays:c,now:l,getVersionDate:u,versioning:d=St}){let f=d.parseRange(n);if(!f)return null;let{effectiveUsePre:p,effectiveSemvers:m}=hn(n,i,r,d),h=e?.time,g=!!(c&&l),_=!!o&&!s&&!d.satisfiesRange(f,o)||a&&d.isPrerelease(f),v=null;for(let e of t){let t=d.parse(e);if(!t||d.isPrerelease(t)&&(!p||a)||!_&&d.compare(t,f)<=0||v&&d.compare(t,v)<=0||o&&!d.satisfiesRange(t,o)||g&&!Vt(u?u(e):h?.[e],c,l))continue;let n=d.diff(f,t),r=n&&!d.isPrerelease(t)?n.replace(/^pre/,``):n;!r||!m.has(r)||(v=t)}return v?.version??null}function yn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function bn(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?Tt:St,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;m=Object.keys(t).filter(e=>!t[e]?.some(e=>e?.yanked)),g=e=>t[e]?.[0]?.upload_time_iso_8601,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``}else if(t===`go`){let t=_n(p);if(!t)return null;let{effectiveUsePre:n,effectiveSemvers:r}=hn(p,a,o,f),c=e=>dn(e)&&(!n||i),m={useRel:i,allowDowngrade:d,name:e.name},h=e.old||p,g=(e,n)=>{let i=_n(e);if(!i||yn(e)||c(e))return!1;let a=Ze(h,e)??Ze(t,i);return!a||!r.has(a)||!gn(h,e,m)||!Vt(n,l,u)?!1:!s||K(i,s)};return g(e.new,e.Time)?e.new:g(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}let _=vn(e,m,{range:p,semvers:o,usePre:a,useRel:i,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,getVersionDate:g,versioning:f});if(r)return _;{let t=m.includes(h)?f.parse(h):null,n=f.parseRange(p);if(!t||!n)return _;let r=_?f.parse(_):null,c=f.isPrerelease(t),v=f.isRangePrerelease(p),y=!!(r&&f.isPrerelease(r)),b={useRel:i,allowDowngrade:d,name:e.name};if(!i&&a||v&&y)return _;if(v&&!y)return _&&gn(p,_,b,f)?_:null;let x=f.diff(n,t);return x&&x!==`prerelease`&&!o.has(x.replace(/^pre/,``))||i&&c?_:f.compare(t,n)<0&&!c?gn(p,h,b,f)?h:r&&f.compare(r,n)>0?_:null:!v&&c&&!a||s&&!f.satisfiesRange(t,s)||l&&u&&!Vt(g?g(h):e.time?.[h],l,u)?_:h}}function xn(e){try{return new URL(e).host}catch{return``}}function Sn(e){for(let n of Fe(t.UPDATES_FORGE_TOKENS??``)){let t=n.lastIndexOf(`:`);if(t>0&&n.slice(0,t)===e)return n.slice(t+1)}return null}let Cn;async function wn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function Tn(){return Cn??=wn()}const En=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function Dn(){return Array.from(new Set(En.map(e=>t[e]).filter(e=>!!e)))}let On;function kn(){let e=Dn();return e.length?Promise.resolve(e):On??=(async()=>{try{let{stdout:e}=await(await Tn())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const An=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function jn(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=An.exec(n);if(!e)continue;let r=xn(e[1]),i=T.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let Mn;function Nn(){return Mn??=(async()=>{try{let{stdout:e}=await(await Tn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return jn(e)}catch{return new Map}})()}const Pn=new Map;async function Fn(e,t){if(!e)return[];let n=Sn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===xn(t),[a,o]=await Promise.all([i?kn():[],Nn()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}var In=class extends Error{name=`ForgeError`;kind;host;status;reset;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),this.kind=e,this.host=t,this.status=r,this.reset=i}};async function Ln(e){if(e.status!==403&&e.status!==429)return null;let t=()=>Number(e.headers?.get?.(`x-ratelimit-reset`))||0;if(e.headers?.get?.(`x-ratelimit-remaining`)===`0`||e.headers?.get?.(`retry-after`))return t();try{let{message:n}=await(typeof e.clone==`function`?e.clone():e).json();if(typeof n!=`string`)return null;if(n.includes(`rate limit exceeded`)||n.includes(`abuse detection mechanism`)||n.startsWith(`You have exceeded a secondary rate limit`))return t()}catch{}return null}async function Rn(e,t,n,r){if(e.status>=500)throw new In(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Ln(e);if(i===null)return e;throw new In(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS`}${i?`, resets at ${new Date(i*1e3).toISOString()}`:``}`,{status:e.status,reset:i})}async function zn(e,t,n){let r=xn(e),i=await Fn(r,t.forgeApiUrl),a=e=>{let t=qt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t},o=async n=>Rn(await Zt(t,e,a(n)),e,r,i.length>0);try{if(!i.length)return await o();let e=Pn.get(r);if(e)return await o(e);for(let e of i){let t=await o(e);if(t.status!==401&&t.status!==403)return Pn.set(r,e),t}return await o()}catch(e){throw e instanceof In?e:new In(`network`,r,e?.message??String(e),{cause:e})}}function Bn(e,t){let n=Y(t);if(!Je(n))return null;let r=``,i=``;for(let t of e){let e=Y(t);Je(e)&&(!r||W(e,i))&&(r=t,i=e)}return r&&W(i,n)?r:null}function Vn(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 Hn=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function Un(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Wn(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function Gn(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Kn(e,t,n){let r=t.noCache?null:await Ft(e),i=await zn(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&&Rt(e,o,a),a}async function qn(e,t){let n=await Kn(e,t,async e=>JSON.stringify({link:e.headers.get(`link`)||``,tags:Gn(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 Jn(e,t,n,r,i=[]){let a=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,o=[],s=new Set(i.filter(Boolean)),c=s.size>0,l=e=>{for(let t of e?.tags??[]){for(let e of s)(e===t.name||t.commitSha.startsWith(e))&&s.delete(e);o.push(t)}return c&&!s.size};try{let e=await qn(a(1),r);if(!e)return o;let t=/<([^>]+)>;\s*rel="last"/.exec(e.link),n=t?Math.min(Number(new URL(t[1]).searchParams.get(`page`)),100):0,i=cn(r);for(let t=2,o=1,s=l(e);t<=n&&!s;t+=o,o=Math.min(o*2,i)){let e=await Promise.all(Array.from({length:Math.min(o,n-t+1)},(e,n)=>qn(a(t+n),r)));for(let t of e)s=l(t)}return o}catch(e){if(e instanceof In)throw e;return[]}}function X(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 Yn=e=>Number(e[0])>=2e7;function Xn(e,t){let n=Y(e).split(`.`),r=Y(t).split(`.`);return n.length<r.length?!1:!Yn(n)||Yn(r)}function Zn(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 Qn(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const $n=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function er({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of $n)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=Vn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Qn(a)}/${e.directory}`)),a||t||``)}const tr={"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 nr(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(Fe)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function rr(e){for(let[t,{short:n}]of Object.entries(tr))if(t===e||n===e)return t;return``}function ir(e){return new Set(e.map(He))}function ar(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(Fe):[]}function or(e){for(let[t,n]of Object.entries(e??{}))if(!lt(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function sr(e){let t={};for(let n of Array.isArray(e)?e:[e]){if(typeof n!=`string`)continue;let e=n.indexOf(`=`);if(e<1)throw Error(`Invalid pin: ${n}, expected <dep>=<range>`);t[n.slice(0,e)]=n.slice(e+1)}return or(t),t}function cr(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:ir(e)}async function lr(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await ee(r)}catch{return null}try{return{configDir:e,default:(await import(ie(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 ur=We(e=>L(e,lr));async function dr(e,t={}){let n=await ur(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t),s=await i(n?.configDir??e,r.inherit?.renovate,o),c={...s,...r};return s.pin&&(c.pin={...s.pin,...r.pin},c.pinNoDowngrade=Object.keys(s.pin).filter(e=>!r.pin?.[e])),or(c.pin),c}function fr(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 pr(e){try{return fr(g(e,`utf-8`))}catch{return}}function mr(e,t){let n=t;for(;;){let t=u(n,e);try{if(y(t).isFile())return t}catch{}let r=c(n);if(r===n)break;n=r}}function hr(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 gr(n,i={},a=e()){let o=r===`win32`,s=o?t.USERPROFILE:t.HOME,c=[{...i}],l=[];function d(e){if(!e||l.includes(e))return;let t=pr(e);t&&(c.push(t),l.push(e))}o||(d(u(`/etc`,n,`config`)),d(u(`/etc`,`${n}rc`))),s&&(d(u(s,`.config`,n,`config`)),d(u(s,`.config`,n)),d(u(s,`.${n}`,`config`)),d(u(s,`.${n}rc`))),d(mr(`.${n}rc`,a));let f=hr(`${n}_`);return f.config&&d(f.config),Object.assign({},...c,f,l.length?{configs:l,config:l[l.length-1]}:void 0)}const _r=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,vr=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,yr=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,br=/(@[^/]+\/)?([^/]+)/g,xr=/^(?:@[^/]+\/)?[^@]+/;function Sr(e){let t=e.match(br),n=t?t[t.length-1]:e;return xr.exec(n)?.[0]??n}const Cr=J.registry,wr=new Map,Tr=new Map;function Er(e){return R(wr,e??``,()=>gr(`npm`,{registry:Cr},e))}function Dr(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Or(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Dr(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Dr(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:Dr(o),type:`Basic`}}function kr(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Or(`//${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:Dr(i),type:`Basic`}}function Ar(e,t){let n=t[`${e}:registry`]||``;return!n||n.endsWith(`/`)?n:`${n}/`}function jr(e,t,n){let r=Er(n),i=e.startsWith(`@`)?e.split(`/`)[0]:``;return R(Tr,`${n??``}${i}:${t}`,()=>{let e,n=i&&Ar(i,r);if(n)try{let i=Kt(n);i!==t&&(e={auth:kr(i,r),registry:i})}catch{}return e??{auth:kr(t,r),registry:t}})}function Mr(e,t,n,r){let i=Kt(typeof n.registry==`string`&&n.registry||t.registry||Er(r).registry||Cr);return{...jr(e,i,r),originalRegistry:i}}function Nr(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Pr=new Map,Fr=new Map,Ir=new Map;function Lr(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 Rr(e,t,n,r,i,a){let{auth:o,registry:s}=Mr(e,n,r,a),c=Nr(s,t===`resolutions`?Sr(e):e),l=r.needsDates?`${c}\0dates`:c;return[await an(Pr,l,async()=>{let t=qt(o?.type,o?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await nn(c,i,t,$t(Lr),l);return`body`in n||X(n.res,c,e,s),JSON.parse(n.body)}),s]}async function zr(e,t,n,r,i,a){let{auth:o,registry:s}=Mr(e,n,r,a),c=Nr(s,e,t);return an(Fr,c,async()=>{try{let n=qt(o?.type,o?.token),r=await rn(c,i,n,$t(e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})));if(!(`body`in r))return{};let a=JSON.parse(r.body),l=``,u=a?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}let d=Nr(s,e);return l||=(await Pr.get(d))?.time?.[t]||``,l||=(await Be(an(Ir,d,async()=>{let e=await Zt(i,d,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:a.repository,homepage:a.homepage,date:l}}catch{return{}}})}function Br(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Vr(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Hr(e){return e.startsWith(`catalog:`)}const Ur=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function Wr(e){let t=Ur.exec(e);return t&&lt(t[2])?{name:t[1],range:t[2]}:null}const Gr=[/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/,/^jsr:@([^/]+)\/([^@]+)@(.+)$/],Kr=/^@([^/]+)\/(.+)$/;function qr(e,t){for(let t of Gr){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=Kr.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function Jr(e,t){if(!Kr.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`,r=await nn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},$t(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||X(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]}const Yr=new Set([32,9,10,13]);function Xr(e){let t=new Map,n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o===34){let t=a;for(;e.charCodeAt(++a)!==34&&a<e.length;)e.charCodeAt(a)===92&&a++;n===1&&r===null&&(r=e.slice(t+1,a),i=t)}else o===123||o===91?n++:o===125||o===93?(--n===0&&r!==null&&t.set(r,{start:i,end:a}),n===0&&(r=null)):o===44&&n===1&&r!==null&&(t.set(r,{start:i,end:a}),r=null)}return t}function Zr(e,t,n,r){for(let i=e.indexOf(n,t);i!==-1;i=e.indexOf(n,i+1)){let t=i+n.length;for(;Yr.has(e.charCodeAt(t));)t++;if(e.charCodeAt(t)===58){for(t++;Yr.has(e.charCodeAt(t));)t++;if(e.startsWith(r,t))return t}}return-1}function Qr(e,t){let n;try{n=JSON.parse(e)}catch{return e}let r=Xr(e),i=new Map,a=[];for(let[o,{old:s,oldOrig:c,new:l}]of Object.entries(t)){let[t,u]=o.split(`\0`),d=n[t],f=typeof d==`string`,p=f?`${u}@${c||s}`:c||s,m=r.get(t);if(!m||(f?d:d?.[u])!==p)continue;let h=JSON.stringify(f?t:u),g=JSON.stringify(p),_=Zr(e,i.get(t)??m.start,h,g);(_===-1||_>=m.end)&&(_=Zr(e,m.start,h,g)),!(_===-1||_>=m.end)&&(i.set(t,_+g.length),a.push({index:_,length:g.length,text:JSON.stringify(f?`${u}@${l}`:l)}))}if(!a.length)return e;a.sort((e,t)=>e.index-t.index);let o=[],s=0;for(let{index:t,length:n,text:r}of a)t<s||(o.push(e.slice(s,t),r),s=t+n);return o.push(e.slice(s)),o.join(``)}const $r=String.raw`[<>]=?|[\^~=]`,ei=new RegExp(String.raw`^(${$r})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),ti=RegExp(`^(?:${$r})$`),ni=/^[xX*]$/,ri=/\+[0-9A-Za-z.-]+/g,ii=/\|\||[\dxX*]\s+\S/;function ai(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&ti.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function oi(e,t){let n=ei.exec(e);if(!n)return e;let[,r=``,i,a,o,s=``]=n,c=o.split(`.`);if(r===`<`&&!a&&c.length<=3&&!/[xX*]/.test(o)&&(!s||s===`-0`)){let{major:e,minor:n,patch:a}=H(t);return`${r}${i}${s?`${e+1}.0.0-0`:c.length===1?`${e+1}`:c.length===2?`${e}.${n+1}`:o.endsWith(`.0.0`)?`${e+1}.0.0`:`${e}.${n}.${a+1}`}`}if(r===`>`||r===`<`)return e;let l=t.split(`-`)[0].split(`.`);return l.join(`.`)===t?`${r}${i}${a}${c.map((e,t)=>ni.test(e)?e:l[t]??`0`).join(`.`)}`:`${r}${i}${a}${t}`}function si(e,t){return e===`peerDependencies`||ii.test(t)}function ci(e,t){if(K(t,e))return e;let n=ai(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=oi(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=oi(r,t),n.join(` `)}function li(e,t,n,r){let i=(n||e).replace(ri,``),a=si(r,i)?ci(i,t):oi(i,t);return K(t,a)?a:i}function Z(e){if(/[xX*]/.test(e))return e;let t=e.match(yr);return t?.length===1?e.replace(yr,_n(t[0])):e}async function ui(e,t,n){let r=await Kn(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,async e=>{let[t]=JSON.parse(await e.text());return JSON.stringify(t?[{sha:t.sha,commit:{committer:t.commit?.committer,author:t.commit?.author}}]:[])}),[i]=r?JSON.parse(r):[];return i?{hash:i.sha,commit:i.commit}:{hash:``,commit:{}}}async function di(e,t,n,r){return(await Jn(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}async function fi(e,t,n){let r=t.old.replace(_r,``),[,i,a,o]=vr.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(Hn.test(o)){let{hash:t,commit:r}=await ui(i,a,n);if(!t)return null;let c=Wn(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=Bn(await di(i,a,o,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function pi(e){let t={};for(let[n,r]of Object.entries(e.releases??{})){let e=r??[];t[n]=e.slice(0,1).map(t=>({...t.upload_time_iso_8601&&{upload_time_iso_8601:t.upload_time_iso_8601},...e.some(e=>e?.yanked)&&{yanked:!0}}))}let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function mi(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await nn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},$t(pi));if(`body`in r)return[JSON.parse(r.body),null];X(r.res,n,e,t.pypiApiUrl)}function hi(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=q(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=q(n);if(!r)return!1;let i=vt(e,r);if(t===`==`)return i===0;if(t===`!=`)return i!==0;if(t===`>=`)return i>=0;let a=e.epoch===r.epoch&&Array.from({length:Math.max(e.release.length,r.release.length)}).every((t,n)=>(e.release[n]??0)===(r.release[n]??0));return t===`>`?i>0&&!(a&&e.post!==null&&r.post===null):t===`<=`?i<=0:t===`<`?i<0&&!(a&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function gi(e,t){let n=e.release.length-1;return e.release.map((e,r)=>(t.release[r]??0)+ +(r===n)).join(`.`)}function _i(e,t){return e.release.length===t.release.length?t.version:Array.from({length:e.release.length},(e,n)=>t.release[n]??0).join(`.`)}function vi(e,t,n){let r=Ce(e),i=r?.specifiers,a=q(t),o=q(n);if(!r||!i||!a||!o)return null;let s=M(i);if(s?.version!==t)return null;for(let e of i){if(e===s){e.version=e.op===`~=`?_i(a,o):n;continue}if(hi(o,e))continue;let t=q(e.version);e.op===`<`&&t?e.version=gi(t,o):e.op===`<=`&&(e.version=n)}return i.some(e=>!hi(o,e))?null:we(r,i)}function yi(e,t){let n=e;for(let[e,{old:r,oldOrig:i,new:a}]of Object.entries(t)){let t=e.split(`\0`)[1],o=i||r,s=RegExp(`(['"])( *${I(t)}(?![\\w.-]).*?)(?=\\1)`,`g`);n=n.replace(s,(e,t,n)=>`${t}${vi(n,o,a)??n}`)}return n}function bi(e){let t=e.includes(`:/`)||e.startsWith(`/`);return Kt(!t&&/[.:/]/.test(e)?`https://${e}`:e)}function xi(e){let t=[],n=e;for(;n;){let e=n.search(/[,|]/),r=(e===-1?n:n.slice(0,e)).trim(),i=e!==-1&&n[e]===`|`?`|`:`,`;if(n=e===-1?``:n.slice(e+1),r){if(r===`off`||r===`direct`){t.push({url:r,fallback:i});break}t.push({url:bi(r),fallback:i})}}return t}function Si(e){if(typeof e==`string`)return[{url:Kt(e),fallback:`,`}];let n=xi(t.GOPROXY||`${J.goproxy},direct`);return n.length?n:[{url:J.goproxy,fallback:`,`}]}function Ci(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const wi=new Map;function Ti(e){return R(wi,e,()=>{let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(r===`*`)t+=`[^/]*`;else if(r===`?`)t+=`[^/]`;else if(r===`[`&&e.includes(`]`,n+1)){let r=e.indexOf(`]`,n+1);t+=`[${e.slice(n+1,r).replace(/\\/g,`\\\\`)}]`,n=r}else t+=I(r)}return RegExp(`^${t}(?:/.*)?$`)})}function Ei(e,t){return t.some(t=>Ti(t).test(e))}function Di(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Oi=/\/v(\d+)$/,ki=/^gopkg\.in\/.*?\.v(\d+)$/;function Ai(e){let t=ki.exec(e)??Oi.exec(e);return t?Number.parseInt(t[1]):1}function ji(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Oi,``);return t<=1?n:`${n}/v${t}`}function Mi(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Y(t).split(`.`)[0]);return Number.isNaN(n)||n===Ai(e)?e:ji(e,n)}const Ni=/^require\s*\(/,Pi=/^replace\s*\(/,Fi=/^tool\s*\(/,Ii=/^use\s*\(/,Li=/^replace\s+/,Ri=/^(\S+)\s+(v\S+)/,zi=/^require\s+(\S+)\s+(v\S+)/,Bi=/^tool\s+(\S+)/,Vi=/^use\s+(\S+)/,Hi=/^(\S+)/,Ui=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Wi=/^replace\s+(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Gi=/^"(.*)"$/,Ki=e=>Gi.exec(e)?.[1]??e;function qi(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Ji(e,t){let n=(t?Ui:Wi).exec(e);if(!n)return null;let[,r,i,a,o]=n;return{origModule:Ki(r),origVersion:i??``,targetModule:Ki(a),targetVersion:o??``}}function Yi(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||yn(n)}async function Xi(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 Zi(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 Qi(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(Ni.test(i)){c=!0;continue}if(Pi.test(i)){l=!0;continue}if(Fi.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&o.push(Ki(i));continue}let s=Bi.exec(i);if(s){o.push(Ki(s[1]));continue}let d=i.includes(`// indirect`);if(l||Li.test(i)){let e=Ji(i,l);e&&(e.targetVersion&&!qi(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||a.add(e.origModule));continue}let f=(c?Ri:zi).exec(i);f&&((d?n:t)[Ki(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 $i(e,n,r,i,a){let o=Ai(e),s=async(e,n)=>{try{let{stdout:r}=await(await Tn())(`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(t){let n=String(t?.stderr??``).trim().split(`
7
- `)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}},c=e=>Be(s(e,a.goProbeTimeout)),l=Yi(e,n,r),[u,d]=await Promise.all([s(e,a.fetchTimeout),l?null:c(ji(e,o+1))]);return Zi(e,r,await Xi(o,d,t=>c(ji(e,t))),u.Version,u.Time)}const ea={"accept-encoding":`gzip, deflate, br`},ta=e=>e===404||e===410;async function na(e,t,n){try{let t=await e.json();if(t?.Version)return{Version:t.Version,Time:t.Time||``,path:n}}catch{}throw Error(`Invalid response from ${t}`)}const ra=async(e,t,n)=>{let r=`${t}/${Di(n)}/@latest`,i=await e(r);if(i.ok)return na(i,r,n);if(ta(i.status))return null;X(i,r,n,t)},ia=new WeakMap;function aa(e,t,n,r){return an(R(ia,e,()=>new Map),`${n}/${r}`,()=>ra(t,n,r))}function oa(e,t){let n=dn(e);return n===dn(t)?W(e,t):!n}function sa(e,t=0){let n=null;for(let r of e.split(`
8
- `)){let[e,i]=r.trim().split(/\s+/);!e||!Je(e)||t&&Number.parseInt(Y(e))!==t||n&&!oa(e,n.Version)||(n={Version:e,Time:i??``})}return n}function ca(e){return Oi.test(e)||ki.test(e)?Ai(e):0}const la=async(e,t,n)=>{let r=Di(n),i=`${t}/${r}/@v/list`,a=await e(i);if(!a.ok){if(ta(a.status))return null;X(a,i,n,t)}let o=sa(await a.text(),ca(n));if(!o)return null;if(o.Time)return{...o,path:n};let s=`${t}/${r}/@v/${Di(o.Version)}.info`;try{let t=await e(s);if(t.ok)return na(t,s,n)}catch{}return{...o,path:n}};async function ua(e,t,n,r,i){let a=Ai(t),o=(e,t,n)=>aa(i,e,t,n),s=e=>Zt(i,e,{headers:ea}),c=e=>i.doFetch(e,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:ea}),l=t=>async n=>{try{return await t(c,e,n)}catch{return null}},u=Yi(t,n,r),d=ji(t,a+1),[f,p]=await Promise.all([o(s,e,t),u?null:l(o)(d)]),m=f??await la(s,e,t);if(!m)return null;let h=l(f?o:la);return Zi(t,r,await Xi(a,u||f?p:await l(la)(d),e=>h(ji(t,e))),m.Version,m.Time)}async function da(e,t,n,r,i,a){if(Ei(e,a))return $i(e,t,n,r,i);for(let{url:a,fallback:o}of i.goProxyChain){if(a===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);if(a===`direct`)return $i(e,t,n,r,i);try{let r=await ua(a,e,t,n,i);if(r)return r}catch(e){if(o===`,`)throw e}}throw Error(`Unable to find ${e} on any GOPROXY entry`)}const fa=(e,t)=>`("?)${I(e)}\\${t}`;function pa(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,u=Mi(s,l);if(o===`replace`){if(u!==s){let e=n;if(n=n.replace(RegExp(`(^\\s*(?:replace\\s+)?)${fa(s,2)}(\\s+=>\\s+)${fa(s,4)}(\\s+)v${I(c)}`,`gm`),`$1$2${u}$2$3$4${u}$4$5v${l}`),n!==e){let e=n;n=n.replace(RegExp(`(^\\s*(?:require\\s+)?)${fa(s,2)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`,`gm`),`$1$2${u}$2$3v${l}`),n!==e&&(r[s]=u)}}n=n.replace(RegExp(`(=>\\s+)${fa(s,2)}(\\s+)v${I(c)}`,`g`),`$1$2${u}$2$3v${l}`);continue}u!==s&&o!==`indirect`?(n=n.replace(RegExp(`${fa(s,1)} +v${I(c)}`,`g`),`$1${u}$1 v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)("?)${I(s)}((?:/[^"\\s]+)?)\\2\\s*$`,`gm`),`$1$2${u}$3$2`)),r[s]=u):n=n.replace(RegExp(`(${fa(s,2)}) +v${I(c)}`,`g`),`$1 v${l}`)}return[n,r]}function ma(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=RegExp(`"(${Ve(i.keys())})(/|")`,`g`),o=m(`**/*.go`,{cwd:e});for(let t of o){let r=u(e,t),o=g(r,`utf8`),s=o.replace(a,(e,t,n)=>`"${i.get(t)}${n}`);s!==o&&n(r,s)}}function ha(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(Ii.test(r)){i=!0;continue}if(Pi.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=Hi.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=Vi.exec(r);if(o){t.push(o[1]);continue}if(a||Li.test(r)){let e=Ji(r,a);e?.targetVersion&&!qi(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function ga(e){let t=`https://${_a(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${Qn(t)}/${a.join(`/`)}`,n.href}return t}function _a(e){return Oi.test(e)?c(e):e}function va(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function ya(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:Hn.test(o)}}function ba(e,t){return e?e===`github.com`?Gt:`https://${e}/api/v1`:t}async function xa(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Ft(a);if(e)return e.body}try{let e=await zn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=Wn(await e.json());return t&&!i.noCache&&Rt(a,`immutable`,t),t}catch(e){if(e instanceof In)throw e;return}}function Sa(e,t){return Zn(H(Y(e))?.version??Y(e),t)}const Ca=/^(\s*(?:-\s*)?uses:\s*)([^\n]*)$/,wa=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function Ta(e){let t=Ca.exec(e);if(!t)return null;let[,n,r]=t,i=r[0]===`'`||r[0]===`"`?r[0]:``,a=i?r.indexOf(i,1):0;if(a===-1)return null;let o=i?r.slice(1,a):/^[^\s#]*/.exec(r)[0];if(!o)return null;let s=r.slice(i?a+1:o.length),c=s.indexOf(`#`),l=c===-1?``:s.slice(c),u=l?wa.exec(l.slice(1)):null;return{prefix:n,quote:i,value:o,gap:c===-1?s:s.slice(0,c),comment:l,pinnedVersion:u?.[1]??``,pinnedEnd:u?u[0].length+1:0}}const Ea=/^https?:\/\//;function Da(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}`,e]));return e.split(`
9
- `).map(e=>{let t=Ta(e);if(!t)return e;let{prefix:r,quote:i,value:a,gap:o,comment:s,pinnedVersion:c,pinnedEnd:l}=t,u=Ea.exec(a)?.[0]??``,d=n.get(a.slice(u.length));if(!d)return e;let f=d.newComment&&c?`# ${d.newComment}${s.slice(l)}`:s;return`${r}${i}${u}${d.name}@${d.newRef}${i}${o}${f}`}).join(`
10
- `)}const Oa=RegExp(`(?:^|/)(?:${Ve(N)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function ka(e){return Oa.test(e.replace(/\\/g,`/`))}function Aa(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 ja=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Ma=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gim,Na=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Pa=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Fa=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm,Ia=/^(?:index\.)?docker\.io$/;function La(e){let t=e.split(`/`);return t.length>1&&Ia.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 Ra(e){let{registry:t,namespace:n,repo:r}=La(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 za(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||!ja.test(r))return null;let{registry:i,namespace:a,repo:o}=La(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Ba(e){let t=ja.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Va(e,t){let n=Ba(t);return n?Zn(e,n.version,n.suffix):t}function Ha(e,t){let n=[];for(let r of e.matchAll(t)){let e=za(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Ua=new WeakMap;function Wa(e,t,n){return an(R(Ua,n,()=>new Map),`${e}/${t}`,()=>qa(e,t,n))}const Ga=new Set([401,403,404]),Ka=e=>e.tag_last_pushed||e.last_updated||``;async function qa(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 r=>{let i=a(r),c=await nn(i,n,o,$t(s));return`body`in c?JSON.parse(c.body):(Ga.has(c.res?.status)||X(c.res,i,`${e}/${t}`,n.dockerApiUrl),null)},l=e=>{for(let t of e?.results||[])r[t.name]=Ka(t)},u=un(n),d=await u(()=>c(1));if(!d)return r;l(d);let f=Math.min(Math.ceil((d.count||0)/100),100),p=cn(n);for(let e=2,t=1;e<=f;e+=t,t=Math.min(t*2,p)){let n=await Promise.all(Array.from({length:Math.min(t,f-e+1)},(t,n)=>u(()=>c(e+n))));for(let e of n)l(e)}return r}async function Ja(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await nn(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},$t(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}}const Ya=/^\d?[02468]\.04$/;function Xa(e,t){if(!Ya.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const Za={ubuntu:Xa};function Qa(e,t,n=Date.now()){let r=Za[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=Ba(e)?.version;return!t||r(t,n)})):t}async function $a(e,t){let{registry:n,namespace:r,repo:i}=La(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:Qa(i,await Wa(r,i,t)),name:e},null]}function eo(e,t,n,r,i,a){let o=Ba(t);if(!o)return null;let s=U(Y(o.version))?.version;if(!s)return null;let c=Y(o.version).split(`.`).length,l=s,u=``,d=``;for(let[t,s]of Object.entries(e)){let e=Ba(t);if(!e||e.suffix!==o.suffix||Y(e.version).split(`.`).length!==c||!Xn(e.version,o.version))continue;let f=U(Y(e.version))?.version;if(!f||a&&!K(f,a)||!Vt(s,r,i))continue;if(f===l){u&&Date.parse(s)>Date.parse(d)&&(u=t,d=s);continue}let p=Ze(l,f);!p||!n.has(p)||W(f,l)&&(l=f,u=t,d=s)}if(!u||l===s)return null;let f=Va(l,t),p=f in e?f:u;return p===t?null:{newTag:p,date:d}}const to=`(?![\\w.@+-])`;function no(e,t,n){let r=new Map;for(let[e,n]of Object.entries(t)){let t=e.split(`\0`)[1];r.set(`${t}:${n.oldOrig||n.old}`,`${t}:${n.new}`)}if(!r.size)return e;let i=Ve(r.keys()),a=e;for(let e of n)a=a.replace(e(i),(e,t,n)=>`${t}${r.get(n)??n}`);return a}function ro(e,t){return no(e,t,[e=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)(${e})${to}`,`gi`)])}function io(e,t){return no(e,t,[e=>RegExp(`(image:\\s*['"]?)(${e})${to}`,`g`)])}function ao(e,t){return no(e,t,[e=>RegExp(`((?:container|image):\\s*['"]?)(${e})${to}`,`g`),e=>RegExp(`(uses:\\s*['"]?docker://)(${e})${to}`,`g`)])}const oo=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function so(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function co(e){return/^Dockerfile(\..+)?$/.test(e)}function lo(e){return co(e)||so(e)}function uo(e){return co(e)?Ma:Na}function fo(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const po=[`Makefile`,`makefile`,`GNUmakefile`];function mo(e){return po.includes(e)||e.endsWith(`.mk`)}const ho=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,go=RegExp(`${ho}${String.raw`(\S+)@(v\d\S*)\s*$`}`),_o=/^[^/\s]+\.[^/\s]+\//;function vo(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function yo(e){let t=[];for(let n of e.split(/\r?\n/)){let e=vo(n),r=go.exec(e);if(!r)continue;let[,i,a]=r;_o.test(i)&&t.push({installPath:i,version:a})}return t}const bo=RegExp(`${ho}${String.raw`(\S+)\s*$`}`),xo=/@(sha256:[0-9a-f]{64})$/;function So(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Co(e){let t=null,n=e,r=xo.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=za(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function wo(e){let t=[];for(let n of e.split(/\r?\n/)){let e=bo.exec(vo(n));if(!e)continue;let r=Co(e[1]);r&&t.push(r)}return t}const To=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function Eo(e){let t=To.exec(e);return t?e.slice(0,t.index+t[0].length):null}async function Do(e,n,r,i){return i?await Be((await Tn())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:t}))!==null:!!await aa(r,e=>Zt(r,e,{headers:ea}),r.goProxyUrl,e)}async function Oo(e,t,n,r){let i=Eo(e);if(i)return i;let a=n.goProxyUrl===`direct`||Ei(e,r);if(!a&&n.goProxyUrl===`off`)return null;let o=e.split(`/`),s=Array.from({length:o.length-1},(e,t)=>o.slice(0,o.length-t).join(`/`));if(a){for(let e of s)if(await Do(e,t,n,!0))return e;return null}let c=await Promise.allSettled(s.map(e=>Do(e,t,n,!1)));for(let[e,t]of c.entries()){if(t.status===`rejected`)throw t.reason;if(t.value)return s[e]}return null}async function ko(e,t,n,r,i,a){let o=await Oo(e,n,r,i);if(!o)return null;let[s]=await da(o,`tool`,Y(t),n,r,i),c=bn(s,{...a,mode:`go`,range:Y(t)});if(!c)return null;let l=s.newPath??Mi(o,c),u=`${l}${e.slice(o.length)}`,d=Zn(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:ga(l)}}async function Ao(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await $a(a,t),c=eo(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await Ja(r,i,c.newTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:fo(e.ref)}}function jo(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Ve(n.keys()),i=RegExp(`(?<![\\w./@:-])(${r})(?=[\\s#]|$)`,`g`);return e.replace(/^[^#\n]*/gm,e=>e.replace(i,e=>n.get(e)))}const Mo=new Map;function No(e){let t=e.toLowerCase();return t.length<=2?`${t.length}/${t}`:t.length===3?`3/${t[0]}/${t}`:`${t.slice(0,2)}/${t.slice(2,4)}/${t}`}function Po(e,t){let n=Kt(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${No(t)}`}function Fo(e){return e.split(`
3
+ `:``)+r[n]}e=n,f[p]=ce(m+t+m)}else f[p]=ce(u)}return t}function se(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function ce(e){if(e.startsWith(`[`)){let t=[],n=me(e,`]`);for(let r of de(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(ce(e))}return t}return e.startsWith(`{`)?k(e):e.startsWith(`"""`)?ge(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ge(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):le(e)}function le(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function k(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of de(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=ce(e.slice(n+1).trim())}return t}function ue(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 de(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 fe(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 pe(e){let t=j(e,`#`);return t<0?e:e.slice(0,t)}function*A(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 j(e,t){return A(e,t).next().value??-1}function me(e,t){let n=-1;for(let r of A(e,t))n=r;return n}function he(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 ge(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}})}function _e(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 ve=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,ye=/^(\s*\()([^)]*)(\)\s*)$/,M=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,be=new Set([`===`,`==`,`>=`,`~=`]),xe=/^v?\d[0-9a-z.!+_-]*$/i;function Se(e){let t=[];for(let n of e.split(`,`)){let e=M.exec(n);if(!e)return null;let[,r,i,a,o,s]=e;t.push({lead:r,op:i,sep:a,version:o,trail:s})}return t}function Ce(e){let t=e.indexOf(`;`),n=ve.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[,r,i,a,o,s,c]=n,l=ye.exec(c);return{name:i,extras:o,specifiers:Se(l?l[2]:c),marker:t===-1?``:e.slice(t),head:`${r}${i}${a}${o}${s}`,open:l?.[1]??``,close:l?.[3]??``}}function N({head:e,open:t,close:n,marker:r},i){return`${e}${t}${i.map(({lead:e,op:t,sep:n,version:r,trail:i})=>`${e}${t}${n}${r}${i}`).join(`,`)}${n}${r}`}function we(e){return e.find(({op:e,version:t})=>be.has(e)&&xe.test(t))}function Te(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=Ce(n);if(!e?.specifiers)continue;let r=we(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const Ee=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],De=[`node`,`deno`,`bun`],P=[`.github`,`.gitea`,`.forgejo`],Oe={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},ke=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],Ae=[`deps`,`indirect`,`replace`,`tool`],je=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Me=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function Ne(e,t){let n=[],r=(e,t,i,a)=>{if(t===e.length){a!==void 0&&n.push([i,a]);return}if(!a||typeof a!=`object`)return;let o=e[t],s=o===`*`?Array.isArray(a)?[]:Object.keys(a):[o];for(let n of s)r(e,t+1,i?`${i}.${n}`:n,a[n])};for(let n of e)r(n.split(`.`),0,``,t);return n}function Pe(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 F(e){return e.split(`,`).filter(Boolean)}function Fe(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function Ie(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 Le={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Re(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Le[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function ze(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function I(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 Be(e){try{return await e}catch{return null}}const L=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Ve(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(L).join(`|`)}function He(e){return e instanceof RegExp?/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e:RegExp(`^${L(e).replaceAll(`\\*`,`.*`)}$`,`i`)}async function Ue(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 We(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function R(e,t,n){let r=e.get(t);if(r!==void 0||e.has(t))return r;let i=n();return e.set(t,i),i}function Ge(e){let t=new Map;return n=>R(t,n,()=>e(n))}const Ke=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,qe=new Map;function z(e){return typeof e==`string`?R(qe,e,()=>{let t=Ke.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function Je(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 B(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function Ye(e,t){let n=B(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=Je(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function Xe(e){return z(e)?.version??null}function V(e){return z(e)}const Ze=new Map,Qe=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function H(e){return typeof e==`string`?R(Ze,e,()=>{let t=Qe.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function $e(e,t){let n=z(e),r=z(t);return!n||!r?null:et(n,r)}function et(e,t){if(e.version===t.version)return null;let n=Ye(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(B(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 tt(e,t){let n=z(e),r=z(t);return n&&r?Ye(n,r):null}function U(e,t){return(tt(e,t)??-1)>0}function nt(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=z(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function rt(e,t){let n=Ye(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 W(e,t,n){return`${e}.${t}.${n}-0`}function it(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?W(o+1,0,0):t===`~`?W(o,s+1,0):o===0?i!==void 0&&s===0?W(0,0,c+1):W(0,s+1,0):W(o+1,0,0),`>=${o}.${s}.${c}${l} <${u}`})}function at(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?`<${W(p+1,0,0)}`:`<${W(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function ot(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${W(t+1,0,0)}`:`>=${t}.${n}.0 <${W(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${W(t+1,0,0)}`:`<${W(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function st(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>ot(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>ot(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${ot(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${ot(n,Number(r),0,!0)}`),e)}const ct=new Map;function lt(e){return R(ct,e,()=>{let t=e.split(`||`).map(e=>e.trim()),n=[];for(let e of t){if(!e){n.push([]);continue}e=at(e),e=it(e),e=st(e),e=e.replace(/(>=|<=|>|<|=)\s+/g,`$1`),e=e.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let t=[];for(let n of e.split(/\s+/).filter(Boolean)){let e=nt(n);if(!e)return null;t.push(e)}if(t.length===0)return null;n.push(t)}return n.length?n:null})}function ut(e,t){return t.some(t=>!rt(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 G(e,t){let n=z(e);if(!n)return!1;let r=lt(t);if(!r)return!1;for(let e of r)if(e.length===0||ut(n,e))return!0;return!1}function K(e){return typeof e==`string`&&lt(e)?e:null}const dt=`v?(?:(\\d+)!)?(\\d+(?:\\.\\d+)*)(?:[-_.]?(a|b|c|rc|alpha|beta|pre|preview)[-_.]?(\\d+)?)?(?:-(\\d+)|[-_.]?(post|rev|r)[-_.]?(\\d+)?)?(?:[-_.]?(dev)[-_.]?(\\d+)?)?(?:\\+([a-z0-9]+(?:[-_.][a-z0-9]+)*))?`,ft=RegExp(`^${dt}$`,`i`),pt=RegExp(dt,`i`),mt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},ht=new Map;function q(e){return typeof e==`string`?R(ht,e,()=>{let t=ft.exec(e.trim());if(!t)return null;let n=t[3]?.toLowerCase();return{epoch:t[1]?Number(t[1]):0,release:t[2].split(`.`).map(Number),pre:n?[mt[n]??n,Number(t[4]??0)]:null,post:t[5]===void 0?t[6]===void 0?null:Number(t[7]??0):Number(t[5]),dev:t[8]===void 0?null:Number(t[9]??0),local:t[10]?t[10].toLowerCase().split(/[._-]/).map(e=>/^\d+$/.test(e)?Number(e):e):null,version:e.trim()}}):null}function gt(e){return q(e)??q(pt.exec(e)?.[0]??``)}const _t=e=>!!(e.pre||e.dev);function vt(e,t){if(!e||!t)return e?1:t?-1:0;let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=typeof e[r]==`number`;if(n!==(typeof t[r]==`number`))return n?1:-1;if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length-t.length}function yt(e,t){if(e.epoch!==t.epoch)return e.epoch-t.epoch;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++){let n=(e.release[r]??0)-(t.release[r]??0);if(n)return n}let r=e.pre?0:e.post===null&&e.dev!==null?-1:1,i=t.pre?0:t.post===null&&t.dev!==null?-1:1;if(r!==i)return r-i;if(e.pre&&t.pre){if(e.pre[0]!==t.pre[0])return e.pre[0]<t.pre[0]?-1:1;if(e.pre[1]!==t.pre[1])return e.pre[1]-t.pre[1]}if((e.post??-1)!==(t.post??-1))return(e.post??-1)-(t.post??-1);let a=e.dev??1/0,o=t.dev??1/0;return a===o?vt(e.local,t.local):a<o?-1:1}function bt(e,t){if(e.epoch!==t.epoch)return`major`;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++)if((e.release[r]??0)!==(t.release[r]??0))return r===0?`major`:r===1?`minor`:`patch`;return null}function xt(e,t){let n=yt(e,t);if(n===0)return null;let r=bt(e,t);return _t(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const St=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Ct={parse:V,parseRange:e=>V(St.exec(e)?.[0]??``)??V(H(e)?.version??``),compare:Ye,diff:et,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:(e,t)=>G(e.version,t)},wt=new Map;function Tt(e){return R(wt,e,()=>{let t=e.trim().replace(/^v/i,``);return(V(t)??V(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?V(H(t)?.version??``):null)})}const Et={...Ct,parse:Tt,parseRange:Tt,isRangePrerelease:e=>!!Tt(e)?.prerelease.length},Dt={parse:q,parseRange:gt,compare:yt,diff:xt,isPrerelease:_t,isRangePrerelease:e=>{let t=gt(e);return!!(t&&_t(t))},satisfiesRange:({release:e},t)=>G(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Ot=[[1e3,6e4,`sec`,`s`,`second`],[6e4,36e5,`min`,`m`,`minute`],[36e5,864e5,`hour`,`h`],[864e5,6048e5,`day`,`d`],[6048e5,2628e6,`week`,`w`],[2628e6,31536e6,`month`,`mo`],[31536e6,1/0,`year`,`y`]],kt={"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`};function At(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function jt(e,{now:t,noAffix:n=!1,times:r=Ot,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=kt,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():At(t))-At(e);if(Number.isNaN(d))return o||String(e);let f=d<0;if(f&&(d=-d),d<i)return a;let p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(d>=t[1])continue;let n=Math.trunc(d/t[0]);p=u?`${n}${t[3]||t[2]}`:`${n} ${l&&t[4]||t[2]}${n>1?`s`:``}`;break}let m=n?p:f?`in ${p}`:`${p} ago`;return s?c[m]??m:m}function Mt(e){return new Promise((t,n)=>{g(e,`utf8`,(e,r)=>e?n(e):t(r))})}const Nt=u(r===`win32`?t.LOCALAPPDATA||u(ie(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(ie(),`.cache`),`updates`);let Pt=null;const Ft=new Map;function It(e){return R(Ft,e,()=>re(`sha256`).update(e).digest(`hex`).substring(0,16))}async function Lt(e){try{let t=await Mt(u(Nt,`${It(e)}.cache`)),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 Rt=new Set;let zt=0;function Bt(e,t,r){let i=(async()=>{try{await(Pt??=ne(Nt,{recursive:!0}))}catch{Pt=null;return}try{let i=u(Nt,`${It(e)}.cache`),a=`${i}.${n}-${zt++}.tmp`;await w(a,`${t}\n${r}`),await C(a,i)}catch{}})();Rt.add(i),(async()=>{await i,Rt.delete(i)})()}async function Vt(){for(;Rt.size;)await Promise.all(Rt)}var Ht=`18.0.0`;function J(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Ut=Ht,Wt=5e3,Gt=2500,Kt=`https://api.github.com`,Y={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:Kt,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},X=e=>e[0]===`v`?e.substring(1):e,qt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Jt(e,t){return{headers:{"user-agent":`updates/${Ut}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const Yt=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`&&Yt.has(t)}async function Zt(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 Qt(e,t,n={}){let r=dn(e);for(let i=0;;i++)try{return await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)}))}catch(e){if(i>=2||!e?.transient)throw e}}async function $t(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}const en=e=>t=>JSON.stringify(e(JSON.parse(t)));function tn(e,t){if(!t||e.length<16384)return e;try{return t(e)}catch{return e}}async function nn(e,t,n,r,i){let a=tn(await $t(t),r);return i&&!n.noCache&&Bt(e,i,a),{body:a,res:t}}async function rn(e,t,n={},r,i=e){let a=t.noCache?null:await Lt(i),o=n.headers,s=a?{...o,"if-none-match":a.etag}:o,c=await Qt(t,e,{...n,headers:s});return c?c.status===304&&a?{body:a.body,res:c}:c.ok?nn(i,c,t,r,c.headers?.get?.(`etag`)):{res:c}:{res:void 0}}async function an(e,t,n={},r){if(!t.noCache){let t=await Lt(e);if(t)return{body:t.body}}let i=await Qt(t,e,n);return i?i.ok?nn(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function on(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}const sn=new T;function cn(e){let t=0,n=0,r=[];return async i=>{if(sn.getStore())return i();t<e?t++:await new Promise(e=>{r.push(e)});try{return await sn.run(!0,i)}finally{n<r.length?(r[n++](),n===r.length&&(r=[],n=0)):t--}}}const ln=e=>Math.max(e.concurrency||25,1),un=new WeakMap;function dn(e){let t=un.get(e);return t||un.set(e,t=cn(ln(e))),t}function fn(e,t=Ct){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}function pn(e,t,n){let r=e.get(t);if(r)return r;let i=new Set(t);return n(i),e.set(t,i),i}const mn=new WeakMap,hn=new WeakMap;function gn(e,t,n,r){return t?{effectiveUsePre:!0,effectiveSemvers:pn(mn,n,e=>{e.add(`prerelease`),n.has(`patch`)&&e.add(`prepatch`),n.has(`minor`)&&e.add(`preminor`),n.has(`major`)&&e.add(`premajor`)})}:r.isRangePrerelease(e)?{effectiveUsePre:!0,effectiveSemvers:pn(hn,n,e=>e.add(`prerelease`))}:{effectiveUsePre:!1,effectiveSemvers:n}}function _n(e,t,{useRel:n,allowDowngrade:r,name:i},a=Ct){let o=a.parseRange(e),s=a.parse(t);if(!o||!s)return!0;let c=a.isRangePrerelease(e)||a.isPrerelease(o),l=a.isPrerelease(s);return c&&!l?a.compare(s,o)>=0||n:!l&&a.compare(s,o)<0?Pe(i,r):!0}function vn(e){return H(e)?.version??``}function yn(e,t,{range:n,semvers:r,usePre:i,useRel:a,pinnedRange:o,pinNoDowngrade:s,cooldownDays:c,now:l,getVersionDate:u,versioning:d=Ct}){let f=d.parseRange(n);if(!f)return null;let{effectiveUsePre:p,effectiveSemvers:m}=gn(n,i,r,d),h=e?.time,g=!!(c&&l),_=!!o&&!s&&!d.satisfiesRange(f,o)||a&&d.isPrerelease(f),v=null;for(let e of t){let t=d.parse(e);if(!t||d.isPrerelease(t)&&(!p||a)||!_&&d.compare(t,f)<=0||v&&d.compare(t,v)<=0||o&&!d.satisfiesRange(t,o)||g&&!J(u?u(e):h?.[e],c,l))continue;let n=d.diff(f,t),r=n&&!d.isPrerelease(t)?n.replace(/^pre/,``):n;!r||!m.has(r)||(v=t)}return v?.version??null}function bn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function xn(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?Dt:Ct,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;m=Object.keys(t).filter(e=>!t[e]?.some(e=>e?.yanked)),g=e=>t[e]?.[0]?.upload_time_iso_8601,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``}else if(t===`go`){let t=vn(p);if(!t)return null;let{effectiveUsePre:n,effectiveSemvers:r}=gn(p,a,o,f),c=e=>fn(e)&&(!n||i),m={useRel:i,allowDowngrade:d,name:e.name},h=e.old||p,g=(e,n)=>{let i=vn(e);if(!i||bn(e)||c(e))return!1;let a=$e(h,e)??$e(t,i);return!a||!r.has(a)||!_n(h,e,m)||!J(n,l,u)?!1:!s||G(i,s)};return g(e.new,e.Time)?e.new:g(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}let _=yn(e,m,{range:p,semvers:o,usePre:a,useRel:i,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,getVersionDate:g,versioning:f});if(r)return _;{let t=m.includes(h)?f.parse(h):null,n=f.parseRange(p);if(!t||!n)return _;let r=_?f.parse(_):null,c=f.isPrerelease(t),v=f.isRangePrerelease(p),y=!!(r&&f.isPrerelease(r)),b={useRel:i,allowDowngrade:d,name:e.name};if(!i&&a||v&&y)return _;if(v&&!y)return _&&_n(p,_,b,f)?_:null;let x=f.diff(n,t);return x&&x!==`prerelease`&&!o.has(x.replace(/^pre/,``))||i&&c?_:f.compare(t,n)<0&&!c?_n(p,h,b,f)?h:r&&f.compare(r,n)>0?_:null:!v&&c&&!a||s&&!f.satisfiesRange(t,s)||l&&u&&!J(g?g(h):e.time?.[h],l,u)?_:h}}function Sn(e){try{return new URL(e).host}catch{return``}}function Cn(e){for(let n of F(t.UPDATES_FORGE_TOKENS??``)){let t=n.lastIndexOf(`:`);if(t>0&&n.slice(0,t)===e)return n.slice(t+1)}return null}let wn;async function Tn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function En(){return wn??=Tn()}const Dn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function On(){return Array.from(new Set(Dn.map(e=>t[e]).filter(e=>!!e)))}let kn;function An(){let e=On();return e.length?Promise.resolve(e):kn??=(async()=>{try{let{stdout:e}=await(await En())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const jn=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function Mn(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=jn.exec(n);if(!e)continue;let r=Sn(e[1]),i=E.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let Nn;function Pn(){return Nn??=(async()=>{try{let{stdout:e}=await(await En())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return Mn(e)}catch{return new Map}})()}const Fn=new Map;async function In(e,t){if(!e)return[];let n=Cn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===Sn(t),[a,o]=await Promise.all([i?An():[],Pn()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}var Ln=class extends Error{name=`ForgeError`;kind;host;status;reset;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),this.kind=e,this.host=t,this.status=r,this.reset=i}};async function Rn(e){if(e.status!==403&&e.status!==429)return null;let t=()=>Number(e.headers?.get?.(`x-ratelimit-reset`))||0;if(e.headers?.get?.(`x-ratelimit-remaining`)===`0`||e.headers?.get?.(`retry-after`))return t();try{let{message:n}=await(typeof e.clone==`function`?e.clone():e).json();if(typeof n!=`string`)return null;if(n.includes(`rate limit exceeded`)||n.includes(`abuse detection mechanism`)||n.startsWith(`You have exceeded a secondary rate limit`))return t()}catch{}return null}async function zn(e,t,n,r){if(e.status>=500)throw new Ln(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Rn(e);if(i===null)return e;throw new Ln(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS`}${i?`, resets at ${new Date(i*1e3).toISOString()}`:``}`,{status:e.status,reset:i})}async function Bn(e,t,n){let r=Sn(e),i=await In(r,t.forgeApiUrl),a=e=>{let t=Jt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t},o=async n=>zn(await Qt(t,e,a(n)),e,r,i.length>0);try{if(!i.length)return await o();let e=Fn.get(r);if(e)return await o(e);for(let e of i){let t=await o(e);if(t.status!==401&&t.status!==403)return Fn.set(r,e),t}return await o()}catch(e){throw e instanceof Ln?e:new Ln(`network`,r,e?.message??String(e),{cause:e})}}function Vn(e,t){let n=X(t);if(!Xe(n))return null;let r=``,i=``;for(let t of e){let e=X(t);Xe(e)&&(!r||U(e,i))&&(r=t,i=e)}return r&&U(i,n)?r:null}function Hn(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 Un=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function Wn(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Gn(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function Kn(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function qn(e,t,n){let r=t.noCache?null:await Lt(e),i=await Bn(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&&Bt(e,o,a),a}async function Jn(e,t){let n=await qn(e,t,async e=>JSON.stringify({link:e.headers.get(`link`)||``,tags:Kn(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 Yn(e,t,n,r,i=[]){let a=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,o=[],s=new Set(i.filter(Boolean)),c=s.size>0,l=e=>{for(let t of e?.tags??[]){for(let e of s)(e===t.name||t.commitSha.startsWith(e))&&s.delete(e);o.push(t)}return c&&!s.size};try{let e=await Jn(a(1),r);if(!e)return o;let t=/<([^>]+)>;\s*rel="last"/.exec(e.link),n=t?Math.min(Number(new URL(t[1]).searchParams.get(`page`)),100):0,i=ln(r);for(let t=2,o=1,s=l(e);t<=n&&!s;t+=o,o=Math.min(o*2,i)){let e=await Promise.all(Array.from({length:Math.min(o,n-t+1)},(e,n)=>Jn(a(t+n),r)));for(let t of e)s=l(t)}return o}catch(e){if(e instanceof Ln)throw e;return[]}}function Z(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 Xn=e=>Number(e[0])>=2e7;function Zn(e,t){let n=X(e).split(`.`),r=X(t).split(`.`);return n.length<r.length?!1:!Xn(n)||Xn(r)}function Qn(e,t,n=``){let r=X(e),i=X(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 $n(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const er=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function tr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of er)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=Hn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${$n(a)}/${e.directory}`)),a||t||``)}const nr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-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 rr(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(F)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function ir(e){for(let[t,{short:n}]of Object.entries(nr))if(t===e||n===e)return t;return``}function ar(e){return new Set(e.map(He))}function or(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(F):[]}function sr(e){for(let[t,n]of Object.entries(e??{}))if(!K(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function cr(e){let t={};for(let n of Array.isArray(e)?e:[e]){if(typeof n!=`string`)continue;let e=n.indexOf(`=`);if(e<1)throw Error(`Invalid pin: ${n}, expected <dep>=<range>`);t[n.slice(0,e)]=n.slice(e+1)}return sr(t),t}function lr(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:ar(e)}async function ur(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(ae(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 dr=Ge(e=>Ue(e,ur));async function fr(e,t={}){let n=await dr(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t),s=await i(n?.configDir??e,r.inherit?.renovate,o),c={...s,...r};return s.pin&&(c.pin={...s.pin,...r.pin},c.pinNoDowngrade=Object.keys(s.pin).filter(e=>!r.pin?.[e])),sr(c.pin),c}function pr(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 mr(e){try{return pr(_(e,`utf-8`))}catch{return}}function hr(e,t){let n=t;for(;;){let t=u(n,e);try{if(b(t).isFile())return t}catch{}let r=c(n);if(r===n)break;n=r}}function gr(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 _r(n,i={},a=e()){let o=r===`win32`,s=o?t.USERPROFILE:t.HOME,c=[{...i}],l=[];function d(e){if(!e||l.includes(e))return;let t=mr(e);t&&(c.push(t),l.push(e))}o||(d(u(`/etc`,n,`config`)),d(u(`/etc`,`${n}rc`))),s&&(d(u(s,`.config`,n,`config`)),d(u(s,`.config`,n)),d(u(s,`.${n}`,`config`)),d(u(s,`.${n}rc`))),d(hr(`.${n}rc`,a));let f=gr(`${n}_`);return f.config&&d(f.config),Object.assign({},...c,f,l.length?{configs:l,config:l[l.length-1]}:void 0)}const vr=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,yr=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,br=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,xr=/(@[^/]+\/)?([^/]+)/g,Sr=/^(?:@[^/]+\/)?[^@]+/;function Cr(e){let t=e.match(xr),n=t?t[t.length-1]:e;return Sr.exec(n)?.[0]??n}const wr=Y.registry,Tr=new Map,Er=new Map;function Dr(e){return R(Tr,e??``,()=>_r(`npm`,{registry:wr},e))}function Or(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function kr(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:Or(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(Or(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:Or(o),type:`Basic`}}function Ar(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=kr(`//${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:Or(i),type:`Basic`}}function jr(e,t){let n=t[`${e}:registry`]||``;return!n||n.endsWith(`/`)?n:`${n}/`}function Mr(e,t,n){let r=Dr(n),i=e.startsWith(`@`)?e.split(`/`)[0]:``;return R(Er,`${n??``}${i}:${t}`,()=>{let e,n=i&&jr(i,r);if(n)try{let i=qt(n);i!==t&&(e={auth:Ar(i,r),registry:i})}catch{}return e??{auth:Ar(t,r),registry:t}})}function Nr(e,t,n,r){let i=qt(typeof n.registry==`string`&&n.registry||t.registry||Dr(r).registry||wr);return{...Mr(e,i,r),originalRegistry:i}}function Pr(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Fr=new Map,Ir=new Map,Lr=new Map;function Rr(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 zr(e,t,n,r,i,a){let{auth:o,registry:s}=Nr(e,n,r,a),c=Pr(s,t===`resolutions`?Cr(e):e),l=r.needsDates?`${c}\0dates`:c;return[await on(Fr,l,async()=>{let t=Jt(o?.type,o?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await rn(c,i,t,en(Rr),l);return`body`in n||Z(n.res,c,e,s),JSON.parse(n.body)}),s]}async function Br(e,t,n,r,i,a){let{auth:o,registry:s}=Nr(e,n,r,a),c=Pr(s,e,t);return on(Ir,c,async()=>{try{let n=Jt(o?.type,o?.token),r=await an(c,i,n,en(e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})));if(!(`body`in r))return{};let a=JSON.parse(r.body),l=``,u=a?._npmOperationalInternal?.tmp;if(u){let e=/(\d{13})/.exec(u);e&&(l=new Date(Number(e[1])).toISOString())}let d=Pr(s,e);return l||=(await Fr.get(d))?.time?.[t]||``,l||=(await Be(on(Lr,d,async()=>{let e=await Qt(i,d,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:a.repository,homepage:a.homepage,date:l}}catch{return{}}})}function Vr(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Hr(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Ur(e){return e.startsWith(`catalog:`)}const Wr=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function Gr(e){let t=Wr.exec(e);return t&&K(t[2])?{name:t[1],range:t[2]}:null}const Kr=[/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/,/^jsr:@([^/]+)\/([^@]+)@(.+)$/],qr=/^@([^/]+)\/(.+)$/;function Jr(e,t){for(let t of Kr){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=qr.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function Yr(e,t){if(!qr.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`,r=await rn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},en(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||Z(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]}const Xr=new Set([32,9,10,13]);function Zr(e){let t=new Map,n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o===34){let t=a;for(;e.charCodeAt(++a)!==34&&a<e.length;)e.charCodeAt(a)===92&&a++;n===1&&r===null&&(r=e.slice(t+1,a),i=t)}else o===123||o===91?n++:o===125||o===93?(--n===0&&r!==null&&t.set(r,{start:i,end:a}),n===0&&(r=null)):o===44&&n===1&&r!==null&&(t.set(r,{start:i,end:a}),r=null)}return t}function Qr(e,t,n,r){for(let i=e.indexOf(n,t);i!==-1;i=e.indexOf(n,i+1)){let t=i+n.length;for(;Xr.has(e.charCodeAt(t));)t++;if(e.charCodeAt(t)===58){for(t++;Xr.has(e.charCodeAt(t));)t++;if(e.startsWith(r,t))return t}}return-1}function $r(e,t){let n;try{n=JSON.parse(e)}catch{return e}let r=Zr(e),i=new Map,a=[];for(let[o,{old:s,oldOrig:c,new:l}]of Object.entries(t)){let[t,u]=o.split(`\0`),d=n[t],f=typeof d==`string`,p=f?`${u}@${c||s}`:c||s,m=r.get(t);if(!m||(f?d:d?.[u])!==p)continue;let h=JSON.stringify(f?t:u),g=JSON.stringify(p),_=Qr(e,i.get(t)??m.start,h,g);(_===-1||_>=m.end)&&(_=Qr(e,m.start,h,g)),!(_===-1||_>=m.end)&&(i.set(t,_+g.length),a.push({index:_,length:g.length,text:JSON.stringify(f?`${u}@${l}`:l)}))}if(!a.length)return e;a.sort((e,t)=>e.index-t.index);let o=[],s=0;for(let{index:t,length:n,text:r}of a)t<s||(o.push(e.slice(s,t),r),s=t+n);return o.push(e.slice(s)),o.join(``)}const ei=String.raw`[<>]=?|[\^~=]`,ti=new RegExp(String.raw`^(${ei})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),ni=RegExp(`^(?:${ei})$`),ri=/^[xX*]$/,ii=/\+[0-9A-Za-z.-]+/g,ai=/\|\||[\dxX*]\s+\S/;function oi(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&ni.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function si(e,t){let n=ti.exec(e);if(!n)return e;let[,r=``,i,a,o,s=``]=n,c=o.split(`.`);if(r===`<`&&!a&&c.length<=3&&!/[xX*]/.test(o)&&(!s||s===`-0`)){let{major:e,minor:n,patch:a}=V(t);return`${r}${i}${s?`${e+1}.0.0-0`:c.length===1?`${e+1}`:c.length===2?`${e}.${n+1}`:o.endsWith(`.0.0`)?`${e+1}.0.0`:`${e}.${n}.${a+1}`}`}if(r===`>`||r===`<`)return e;let l=t.split(`-`)[0].split(`.`);return l.join(`.`)===t?`${r}${i}${a}${c.map((e,t)=>ri.test(e)?e:l[t]??`0`).join(`.`)}`:`${r}${i}${a}${t}`}function ci(e,t){return e===`peerDependencies`||ai.test(t)}function li(e,t){if(G(t,e))return e;let n=oi(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=si(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=si(r,t),n.join(` `)}function ui(e,t,n,r){let i=(n||e).replace(ii,``),a=ci(r,i)?li(i,t):si(i,t);return G(t,a)?a:i}function Q(e){if(/[xX*]/.test(e))return e;let t=e.match(br);return t?.length===1?e.replace(br,vn(t[0])):e}async function di(e,t,n){let r=await qn(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,async e=>{let[t]=JSON.parse(await e.text());return JSON.stringify(t?[{sha:t.sha,commit:{committer:t.commit?.committer,author:t.commit?.author}}]:[])}),[i]=r?JSON.parse(r):[];return i?{hash:i.sha,commit:i.commit}:{hash:``,commit:{}}}async function fi(e,t,n,r){return(await Yn(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}async function pi(e,t,n){let r=t.old.replace(vr,``),[,i,a,o]=yr.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(Un.test(o)){let{hash:t,commit:r}=await di(i,a,n);if(!t)return null;let c=Gn(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=Vn(await fi(i,a,o,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function mi(e){let t={};for(let[n,r]of Object.entries(e.releases??{})){let e=r??[];t[n]=e.slice(0,1).map(t=>({...t.upload_time_iso_8601&&{upload_time_iso_8601:t.upload_time_iso_8601},...e.some(e=>e?.yanked)&&{yanked:!0}}))}let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function hi(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await rn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},en(mi));if(`body`in r)return[JSON.parse(r.body),null];Z(r.res,n,e,t.pypiApiUrl)}function gi(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=q(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=q(n);if(!r)return!1;let i=yt(e,r);if(t===`==`)return i===0;if(t===`!=`)return i!==0;if(t===`>=`)return i>=0;let a=e.epoch===r.epoch&&Array.from({length:Math.max(e.release.length,r.release.length)}).every((t,n)=>(e.release[n]??0)===(r.release[n]??0));return t===`>`?i>0&&!(a&&e.post!==null&&r.post===null):t===`<=`?i<=0:t===`<`?i<0&&!(a&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function _i(e,t){let n=e.release.length-1;return e.release.map((e,r)=>(t.release[r]??0)+ +(r===n)).join(`.`)}function vi(e,t){return e.release.length===t.release.length?t.version:Array.from({length:e.release.length},(e,n)=>t.release[n]??0).join(`.`)}function yi(e,t,n){let r=Ce(e),i=r?.specifiers,a=q(t),o=q(n);if(!r||!i||!a||!o)return null;let s=we(i);if(s?.version!==t)return null;for(let e of i){if(e===s){e.version=e.op===`~=`?vi(a,o):n;continue}if(gi(o,e))continue;let t=q(e.version);e.op===`<`&&t?e.version=_i(t,o):e.op===`<=`&&(e.version=n)}return i.some(e=>!gi(o,e))?null:N(r,i)}function bi(e,t){let n=e;for(let[e,{old:r,oldOrig:i,new:a}]of Object.entries(t)){let t=e.split(`\0`)[1],o=i||r,s=RegExp(`(['"])( *${L(t)}(?![\\w.-]).*?)(?=\\1)`,`g`);n=n.replace(s,(e,t,n)=>`${t}${yi(n,o,a)??n}`)}return n}function xi(e){let t=e.includes(`:/`)||e.startsWith(`/`);return qt(!t&&/[.:/]/.test(e)?`https://${e}`:e)}function Si(e){let t=[],n=e;for(;n;){let e=n.search(/[,|]/),r=(e===-1?n:n.slice(0,e)).trim(),i=e!==-1&&n[e]===`|`?`|`:`,`;if(n=e===-1?``:n.slice(e+1),r){if(r===`off`||r===`direct`){t.push({url:r,fallback:i});break}t.push({url:xi(r),fallback:i})}}return t}function Ci(e){if(typeof e==`string`)return[{url:qt(e),fallback:`,`}];let n=Si(t.GOPROXY||`${Y.goproxy},direct`);return n.length?n:[{url:Y.goproxy,fallback:`,`}]}function wi(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Ti=new Map;function Ei(e){return R(Ti,e,()=>{let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(r===`*`)t+=`[^/]*`;else if(r===`?`)t+=`[^/]`;else if(r===`[`&&e.includes(`]`,n+1)){let r=e.indexOf(`]`,n+1);t+=`[${e.slice(n+1,r).replace(/\\/g,`\\\\`)}]`,n=r}else t+=L(r)}return RegExp(`^${t}(?:/.*)?$`)})}function Di(e,t){return t.some(t=>Ei(t).test(e))}function Oi(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const ki=/\/v(\d+)$/,Ai=/^gopkg\.in\/.*?\.v(\d+)$/;function ji(e){let t=Ai.exec(e)??ki.exec(e);return t?Number.parseInt(t[1]):1}function Mi(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(ki,``);return t<=1?n:`${n}/v${t}`}function Ni(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(X(t).split(`.`)[0]);return Number.isNaN(n)||n===ji(e)?e:Mi(e,n)}const Pi=/^require\s*\(/,Fi=/^replace\s*\(/,Ii=/^tool\s*\(/,Li=/^use\s*\(/,Ri=/^replace\s+/,zi=/^(\S+)\s+(v\S+)/,Bi=/^require\s+(\S+)\s+(v\S+)/,Vi=/^tool\s+(\S+)/,Hi=/^use\s+(\S+)/,Ui=/^(\S+)/,Wi=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Gi=/^replace\s+(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Ki=/^"(.*)"$/,qi=e=>Ki.exec(e)?.[1]??e;function Ji(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Yi(e,t){let n=(t?Wi:Gi).exec(e);if(!n)return null;let[,r,i,a,o]=n;return{origModule:qi(r),origVersion:i??``,targetModule:qi(a),targetVersion:o??``}}function Xi(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||bn(n)}async function Zi(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 Qi(e,t,n,r,i){let a=n?.Version??r,o=n?.Time??i,s=n?.path??e;return[{name:e,old:t,new:X(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:X(r),sameMajorTime:i},null]}function $i(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(Pi.test(i)){c=!0;continue}if(Fi.test(i)){l=!0;continue}if(Ii.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&o.push(qi(i));continue}let s=Vi.exec(i);if(s){o.push(qi(s[1]));continue}let d=i.includes(`// indirect`);if(l||Ri.test(i)){let e=Yi(i,l);e&&(e.targetVersion&&!Ji(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||a.add(e.origModule));continue}let f=(c?zi:Bi).exec(i);f&&((d?n:t)[qi(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 ea(e,n,r,i,a){let o=ji(e),s=async(e,n)=>{try{let{stdout:r}=await(await En())(`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(t){let n=String(t?.stderr??``).trim().split(`
7
+ `)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}},c=e=>Be(s(e,a.goProbeTimeout)),l=Xi(e,n,r),[u,d]=await Promise.all([s(e,a.fetchTimeout),l?null:c(Mi(e,o+1))]);return Qi(e,r,await Zi(o,d,t=>c(Mi(e,t))),u.Version,u.Time)}const ta={"accept-encoding":`gzip, deflate, br`},na=e=>e===404||e===410;async function ra(e,t,n){try{let t=await e.json();if(t?.Version)return{Version:t.Version,Time:t.Time||``,path:n}}catch{}throw Error(`Invalid response from ${t}`)}const ia=async(e,t,n)=>{let r=`${t}/${Oi(n)}/@latest`,i=await e(r);if(i.ok)return ra(i,r,n);if(na(i.status))return null;Z(i,r,n,t)},aa=new WeakMap;function oa(e,t,n,r){return on(R(aa,e,()=>new Map),`${n}/${r}`,()=>ia(t,n,r))}function sa(e,t){let n=fn(e);return n===fn(t)?U(e,t):!n}function ca(e,t=0){let n=null;for(let r of e.split(`
8
+ `)){let[e,i]=r.trim().split(/\s+/);!e||!Xe(e)||t&&Number.parseInt(X(e))!==t||n&&!sa(e,n.Version)||(n={Version:e,Time:i??``})}return n}function la(e){return ki.test(e)||Ai.test(e)?ji(e):0}const ua=async(e,t,n)=>{let r=Oi(n),i=`${t}/${r}/@v/list`,a=await e(i);if(!a.ok){if(na(a.status))return null;Z(a,i,n,t)}let o=ca(await a.text(),la(n));if(!o)return null;if(o.Time)return{...o,path:n};let s=`${t}/${r}/@v/${Oi(o.Version)}.info`;try{let t=await e(s);if(t.ok)return ra(t,s,n)}catch{}return{...o,path:n}};async function da(e,t,n,r,i){let a=ji(t),o=(e,t,n)=>oa(i,e,t,n),s=e=>Qt(i,e,{headers:ta}),c=e=>i.doFetch(e,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:ta}),l=t=>async n=>{try{return await t(c,e,n)}catch{return null}},u=Xi(t,n,r),d=Mi(t,a+1),[f,p]=await Promise.all([o(s,e,t),u?null:l(o)(d)]),m=f??await ua(s,e,t);if(!m)return null;let h=l(f?o:ua);return Qi(t,r,await Zi(a,u||f?p:await l(ua)(d),e=>h(Mi(t,e))),m.Version,m.Time)}async function fa(e,t,n,r,i,a){if(Di(e,a))return ea(e,t,n,r,i);for(let{url:a,fallback:o}of i.goProxyChain){if(a===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);if(a===`direct`)return ea(e,t,n,r,i);try{let r=await da(a,e,t,n,i);if(r)return r}catch(e){if(o===`,`)throw e}}throw Error(`Unable to find ${e} on any GOPROXY entry`)}const pa=(e,t)=>`("?)${L(e)}\\${t}`;function ma(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,u=Ni(s,l);if(o===`replace`){if(u!==s){let e=n;if(n=n.replace(RegExp(`(^\\s*(?:replace\\s+)?)${pa(s,2)}(\\s+=>\\s+)${pa(s,4)}(\\s+)v${L(c)}`,`gm`),`$1$2${u}$2$3$4${u}$4$5v${l}`),n!==e){let e=n;n=n.replace(RegExp(`(^\\s*(?:require\\s+)?)${pa(s,2)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`,`gm`),`$1$2${u}$2$3v${l}`),n!==e&&(r[s]=u)}}n=n.replace(RegExp(`(=>\\s+)${pa(s,2)}(\\s+)v${L(c)}`,`g`),`$1$2${u}$2$3v${l}`);continue}u!==s&&o!==`indirect`?(n=n.replace(RegExp(`${pa(s,1)} +v${L(c)}`,`g`),`$1${u}$1 v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)("?)${L(s)}((?:/[^"\\s]+)?)\\2\\s*$`,`gm`),`$1$2${u}$3$2`)),r[s]=u):n=n.replace(RegExp(`(${pa(s,2)}) +v${L(c)}`,`g`),`$1 v${l}`)}return[n,r]}function ha(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=RegExp(`"(${Ve(i.keys())})(/|")`,`g`),o=m(`**/*.go`,{cwd:e});for(let t of o){let r=u(e,t),o=_(r,`utf8`),s=o.replace(a,(e,t,n)=>`"${i.get(t)}${n}`);s!==o&&n(r,s)}}function ga(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(Li.test(r)){i=!0;continue}if(Fi.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=Ui.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=Hi.exec(r);if(o){t.push(o[1]);continue}if(a||Ri.test(r)){let e=Yi(r,a);e?.targetVersion&&!Ji(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function _a(e){let t=`https://${va(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${$n(t)}/${a.join(`/`)}`,n.href}return t}function va(e){return ki.test(e)?c(e):e}function ya(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function ba(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:Un.test(o)}}function xa(e,t){return e?e===`github.com`?Kt:`https://${e}/api/v1`:t}async function Sa(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Lt(a);if(e)return e.body}try{let e=await Bn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=Gn(await e.json());return t&&!i.noCache&&Bt(a,`immutable`,t),t}catch(e){if(e instanceof Ln)throw e;return}}function Ca(e,t){return Qn(V(X(e))?.version??X(e),t)}const wa=/^(\s*(?:-\s*)?uses:\s*)([^\n]*)$/,Ta=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function Ea(e){let t=wa.exec(e);if(!t)return null;let[,n,r]=t,i=r[0]===`'`||r[0]===`"`?r[0]:``,a=i?r.indexOf(i,1):0;if(a===-1)return null;let o=i?r.slice(1,a):/^[^\s#]*/.exec(r)[0];if(!o)return null;let s=r.slice(i?a+1:o.length),c=s.indexOf(`#`),l=c===-1?``:s.slice(c),u=l?Ta.exec(l.slice(1)):null;return{prefix:n,quote:i,value:o,gap:c===-1?s:s.slice(0,c),comment:l,pinnedVersion:u?.[1]??``,pinnedEnd:u?u[0].length+1:0}}const Da=/^https?:\/\//;function Oa(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}`,e]));return e.split(`
9
+ `).map(e=>{let t=Ea(e);if(!t)return e;let{prefix:r,quote:i,value:a,gap:o,comment:s,pinnedVersion:c,pinnedEnd:l}=t,u=Da.exec(a)?.[0]??``,d=n.get(a.slice(u.length));if(!d)return e;let f=d.newComment&&c?`# ${d.newComment}${s.slice(l)}`:s;return`${r}${i}${u}${d.name}@${d.newRef}${i}${o}${f}`}).join(`
10
+ `)}const ka=RegExp(`(?:^|/)(?:${Ve(P)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Aa(e){return ka.test(e.replace(/\\/g,`/`))}function ja(e){let t=new Set;try{for(let n of v(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of v(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 Ma=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Na=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gim,Pa=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Fa=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Ia=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm,La=/^(?:index\.)?docker\.io$/;function Ra(e){let t=e.split(`/`);return t.length>1&&La.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 za(e){let{registry:t,namespace:n,repo:r}=Ra(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 Ba(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||!Ma.test(r))return null;let{registry:i,namespace:a,repo:o}=Ra(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Va(e){let t=Ma.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Ha(e,t){let n=Va(t);return n?Qn(e,n.version,n.suffix):t}function Ua(e,t){let n=[];for(let r of e.matchAll(t)){let e=Ba(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Wa=new WeakMap;function Ga(e,t,n){return on(R(Wa,n,()=>new Map),`${e}/${t}`,()=>Ja(e,t,n))}const Ka=new Set([401,403,404]),qa=e=>e.tag_last_pushed||e.last_updated||``;async function Ja(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 r=>{let i=a(r),c=await rn(i,n,o,en(s));return`body`in c?JSON.parse(c.body):(Ka.has(c.res?.status)||Z(c.res,i,`${e}/${t}`,n.dockerApiUrl),null)},l=e=>{for(let t of e?.results||[])r[t.name]=qa(t)},u=dn(n),d=await u(()=>c(1));if(!d)return r;l(d);let f=Math.min(Math.ceil((d.count||0)/100),100),p=ln(n);for(let e=2,t=1;e<=f;e+=t,t=Math.min(t*2,p)){let n=await Promise.all(Array.from({length:Math.min(t,f-e+1)},(t,n)=>u(()=>c(e+n))));for(let e of n)l(e)}return r}async function Ya(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await rn(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},en(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}}const Xa=/^\d?[02468]\.04$/;function Za(e,t){if(!Xa.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const Qa={ubuntu:Za};function $a(e,t,n=Date.now()){let r=Qa[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=Va(e)?.version;return!t||r(t,n)})):t}async function eo(e,t){let{registry:n,namespace:r,repo:i}=Ra(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:$a(i,await Ga(r,i,t)),name:e},null]}function to(e,t,n,r,i,a){let o=Va(t);if(!o)return null;let s=H(X(o.version))?.version;if(!s)return null;let c=X(o.version).split(`.`).length,l=s,u=``,d=``;for(let[t,s]of Object.entries(e)){let e=Va(t);if(!e||e.suffix!==o.suffix||X(e.version).split(`.`).length!==c||!Zn(e.version,o.version))continue;let f=H(X(e.version))?.version;if(!f||a&&!G(f,a)||!J(s,r,i))continue;if(f===l){u&&Date.parse(s)>Date.parse(d)&&(u=t,d=s);continue}let p=$e(l,f);!p||!n.has(p)||U(f,l)&&(l=f,u=t,d=s)}if(!u||l===s)return null;let f=Ha(l,t),p=f in e?f:u;return p===t?null:{newTag:p,date:d}}const no=`(?![\\w.@+-])`;function ro(e,t,n){let r=new Map;for(let[e,n]of Object.entries(t)){let t=e.split(`\0`)[1];r.set(`${t}:${n.oldOrig||n.old}`,`${t}:${n.new}`)}if(!r.size)return e;let i=Ve(r.keys()),a=e;for(let e of n)a=a.replace(e(i),(e,t,n)=>`${t}${r.get(n)??n}`);return a}function io(e,t){return ro(e,t,[e=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)(${e})${no}`,`gi`)])}function ao(e,t){return ro(e,t,[e=>RegExp(`(image:\\s*['"]?)(${e})${no}`,`g`)])}function oo(e,t){return ro(e,t,[e=>RegExp(`((?:container|image):\\s*['"]?)(${e})${no}`,`g`),e=>RegExp(`(uses:\\s*['"]?docker://)(${e})${no}`,`g`)])}const so=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function co(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function lo(e){return/^Dockerfile(\..+)?$/.test(e)}function uo(e){return lo(e)||co(e)}function fo(e){return lo(e)?Na:Pa}function po(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const mo=[`Makefile`,`makefile`,`GNUmakefile`];function ho(e){return mo.includes(e)||e.endsWith(`.mk`)}const go=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,_o=RegExp(`${go}${String.raw`(\S+)@(v\d\S*)\s*$`}`),vo=/^[^/\s]+\.[^/\s]+\//;function yo(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function bo(e){let t=[];for(let n of e.split(/\r?\n/)){let e=yo(n),r=_o.exec(e);if(!r)continue;let[,i,a]=r;vo.test(i)&&t.push({installPath:i,version:a})}return t}const xo=RegExp(`${go}${String.raw`(\S+)\s*$`}`),So=/@(sha256:[0-9a-f]{64})$/;function Co(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function wo(e){let t=null,n=e,r=So.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=Ba(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function To(e){let t=[];for(let n of e.split(/\r?\n/)){let e=xo.exec(yo(n));if(!e)continue;let r=wo(e[1]);r&&t.push(r)}return t}const Eo=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function Do(e){let t=Eo.exec(e);return t?e.slice(0,t.index+t[0].length):null}async function Oo(e,n,r,i){return i?await Be((await En())(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:t}))!==null:!!await oa(r,e=>Qt(r,e,{headers:ta}),r.goProxyUrl,e)}async function ko(e,t,n,r){let i=Do(e);if(i)return i;let a=n.goProxyUrl===`direct`||Di(e,r);if(!a&&n.goProxyUrl===`off`)return null;let o=e.split(`/`),s=Array.from({length:o.length-1},(e,t)=>o.slice(0,o.length-t).join(`/`));if(a){for(let e of s)if(await Oo(e,t,n,!0))return e;return null}let c=await Promise.allSettled(s.map(e=>Oo(e,t,n,!1)));for(let[e,t]of c.entries()){if(t.status===`rejected`)throw t.reason;if(t.value)return s[e]}return null}async function Ao(e,t,n,r,i,a){let o=await ko(e,n,r,i);if(!o)return null;let[s]=await fa(o,`tool`,X(t),n,r,i),c=xn(s,{...a,mode:`go`,range:X(t)});if(!c)return null;let l=s.newPath??Ni(o,c),u=`${l}${e.slice(o.length)}`,d=Qn(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:_a(l)}}async function jo(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await eo(a,t),c=to(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange);if(!c)return null;let l=null;return e.digest&&(l=await Ya(r,i,c.newTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:po(e.ref)}}function Mo(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Ve(n.keys()),i=RegExp(`(?<![\\w./@:-])(${r})(?=[\\s#]|$)`,`g`);return e.replace(/^[^#\n]*/gm,e=>e.replace(i,e=>n.get(e)))}const No=new Map;function Po(e){let t=e.toLowerCase();return t.length<=2?`${t.length}/${t}`:t.length===3?`3/${t[0]}/${t}`:`${t.slice(0,2)}/${t.slice(2,4)}/${t}`}function Fo(e,t){let n=qt(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${Po(t)}`}function Io(e){return e.split(`
11
11
  `).map(e=>{if(!e)return e;try{let{vers:t,yanked:n,pubtime:r}=JSON.parse(e);return JSON.stringify({vers:t,yanked:n,pubtime:r})}catch{return e}}).join(`
12
- `)}async function Io(e,t){let n=Po(t.cratesIoUrl,e);return[await an(Mo,n,async()=>{let r=await nn(n,t,qt(),Fo);`body`in r||X(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
13
- `)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers;i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=H(n);r&&(r.prerelease.length?(!s||W(n,s))&&(s=n):(!o||W(n,o))&&(o=n))}if(!c&&r.body.trim())throw Error(`Invalid JSON from ${n}`);return{name:e,versions:i,time:a,"dist-tags":{latest:o||s}}}),null]}function Lo(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];Je(a)&&Ue(t,i,a)}return t}const Ro=/^\d/,zo=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Bo=/\s*,\s*/g,Vo=/(\s*,\s*)/,Ho=e=>e.includes(`,`)?e.replace(Bo,` `):e,Uo=e=>Ho(Ro.test(e)&&!zo.test(e)?`^${e}`:e);function Wo(e,t){if(e.startsWith(`<`)&&K(t,e))return e;let n=zo.exec(e);if(n){let[,e,r]=n;return`${t.split(/[-+]/)[0].split(`.`).slice(0,e.split(`.`).length).join(`.`)}${r}`}return Ro.test(e)?li(Z(`^${e}`),t,`^${e}`).replace(/^\^/,``):li(Z(e),t,e)}function Go(e,t){if(!e.includes(`,`))return Wo(e,t);let n=e.split(Vo);for(let e=0;e<n.length;e+=2)n[e]=Wo(n[e],t);return n.join(``)}function Ko(e,t,n){let r=e.get(t);if(!r)return;let i=Uo(n),a;for(let e of r)K(e,i)&&(!a||W(e,a))&&(a=e);return a}const qo=e=>`(?:${I(e)}|"${I(e)}"|'${I(e)}')`;function Jo(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=qo(i),c=I(a),l=t.split(`|`)[0].split(`.`).map(qo).join(`\\.`);n=n.replace(RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`,`gm`),`$1${o}$2`),n=n.replace(RegExp(`^(\\s*${s}\\s*=\\s*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${c}(["'])`,`gm`),`$1${o}$2`),n=n.replace(RegExp(`(\\[${l}\\.${s}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`)}return n}function Yo(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}function Xo(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Yo(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Zo=/[*?{[]/;async function Qo(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=Zo.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 F(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await S(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const $o=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#][^:#]*?))\s*:(?:\s+(.*))?$/,es=/\s#/;function ts(e){let t=$o.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.search(es),l=(c===-1?o:o.slice(0,c)).trimEnd(),u=l[0];return(u===`"`||u===`'`)&&l.length>1&&l.endsWith(u)&&(l=l.slice(1,-1),s+=1),{indent:n.length,key:r??i??a,value:l,valueIndex:s}}function*ns(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
14
- `).entries()){let e=ts(a);if(!e)continue;let{indent:o,key:s,value:c,valueIndex:l}=e;o===0?(t=s===`catalog`||s===`catalogs`?s:``,n=``,r=-1):t===`catalog`?c&&(yield{type:`catalog`,name:s,value:c,lineIndex:i,valueIndex:l}):t===`catalogs`&&(r===-1||o<=r?(n=s,r=o):c&&(yield{type:`catalogs.${n}`,name:s,value:c,lineIndex:i,valueIndex:l}))}}function rs(e,t){let n=e.split(`
15
- `),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of ns(e)){let e=t[`${i}${a}`];if(!e||(e.oldOrig||e.old)!==o)continue;let l=n[s];n[s]=l.slice(0,c)+e.new+l.slice(c+o.length),r=!0}return r?n.join(`
16
- `):e}function is(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 as=[...new Set(Object.values(Oe)),`actions`,`docker`,`make`],os=new Set(as),ss={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},cs={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},ls=(e,t)=>typeof e==`string`?Kt(e):typeof t==`function`?t():t,us=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function ds(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 fs(e,t){let n=await F(e,async e=>{try{return[e,await S(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function ps(e,t){t&&(e.date=t,e.age=At(t,{noAffix:!0}))}const ms=(e,t,n)=>`${e}${t}${n}`,hs=e=>Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0);function gs(e,t){return t===`go`?[e,_a(e)]:t===`docker`?Ra(e):[e]}const _s=(e,t)=>t.find(t=>e[t]);function Q(e,t,n,r,i,a=t){if(i===`engines`&&De.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let o=gs(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 vs(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(Oe,t.name)||lo(t.name)||mo(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=N.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&N.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:N.map(e=>u(t,e));for(let e of a)for(let t of Aa(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(N),r=[...Object.keys(Oe),...oo,...po,...N],i=new Set;for(let[a,o]of ds(r,e())){if(t.has(a)){for(let e of Aa(o))n.add(e);continue}let e=f(o);try{e=v.native(o)}catch{}i.has(e)||(i.add(e),n.add(f(o)))}try{for(let t of _(e(),{withFileTypes:!0})){let r=lo(t.name)&&!oo.includes(t.name),i=mo(t.name)&&!po.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(cs,t)&&n.delete(u(c(e),cs[t].supersedes))}return n}function $(e,t){r===`win32`&&b(e,0),x(e,t,r===`win32`?{flag:`r+`}:void 0)}const ys=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function bs(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>as.indexOf(e)-as.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=ys(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,a]of Object.entries(i)){typeof a.oldPrint==`string`&&(a.old=a.oldPrint),typeof a.newPrint==`string`&&(a.new=a.newPrint),typeof a.oldOrig==`string`&&!Br(a.oldOrig)&&(a.old=e===`go`?va(a.oldOrig):a.oldOrig),e===`go`?a.new=va(a.new):e===`actions`&&(a.old=Y(a.old),a.new=Y(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get(ys(e,r))>1?`${o}${e===`actions`?`@`:`:`}${s}`:o,l=t.results[e]??={};(l[i]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e.localeCompare(t)));return t}let xs=!1;async function Ss(t={}){if(!xs){let{enableDnsCache:e}=await import(`./dns.js`);e(),xs=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=ze(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=ls(t.forgeapi,J.forgeapi),d=ls(t.pypiapi,J.pypiapi),p=ls(t.jsrapi,J.jsrapi),m=Si(t.goproxy),h=m[0].url,g=ls(t.cargoapi,J.cargoapi),_=ls(t.dockerapi,J.dockerapi),v=Ci(),y=!n.noColor&&(n.color||i.isTTY),b=e=>y?t=>o(e,String(t),{validateStream:!1}):String,x=b(`magenta`),ee=b(`green`),te=b(`red`),ne,C={fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):Wt,concurrency:r,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:h,goProxyChain:m,cratesIoUrl:g,dockerApiUrl:_,doFetch:(e,t)=>(ne??=un(C))(async()=>{n.verbose&&console.error(`${Ie()} ${x(t?.method||`GET`)} ${e}`);let r=await Xt(e,t);return n.verbose&&console.error(`${Ie()} ${r.ok?ee(r.status):te(r.status)} ${e}`),r}),noCache:!!n.noCache},w=cr(n.greatest),T=cr(n.prerelease),E=cr(n.release),re=cr(n.patch),ie=cr(n.minor),ae=cr(n.allowDowngrade),D=n.modes?.length?new Set(n.modes):os,oe=(n.overrides??[]).map(e=>({include:e.include?.length?ir(e.include):void 0,exclude:e.exclude?.length?ir(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:Re(String(e.cooldown))})),se=(e,t)=>e.include&&t.every(t=>!Pe(t,e.include))?!1:!e.exclude||t.every(t=>!Pe(t,e.exclude)),ce=oe.some(e=>e.cooldownDays);D.has(`actions`)&&kn();let le=new Map;function k(e,t){let n=le.get(e);if(!n){let r=t??[e],i=e=>r.some(t=>Pe(t,e)),a=i(w),o=i(T),s=i(E),c=i(re),l=i(ie),u=i(ae),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?ss.patch:l?ss.minor:ss.major;n={useGreatest:a,usePre:o,useRel:s,semvers:f,allowDowngrade:u,cooldownOverride:d},le.set(e,n)}return n}let ue=ir(n.include??[]),de=ir(n.exclude??[]);or(n.pin);let fe=n.pin??{},pe=(e,t,n)=>{let r=_s(fe,e);if(r)return{pinnedRange:fe[r],pinNoDowngrade:!1};let i=_s(t,e);return{pinnedRange:i?t[i]:void 0,pinNoDowngrade:!!(i&&Array.isArray(n)&&n.includes(i))}},A={},me={},he=new Map,ge=new Map,_e=new Map,ve=[],ye=(e,t,n,r)=>{ve.push({mode:e,type:t,name:n,error:r?.message||String(r)})},be=(e,t,n)=>{let[r,i]=t.split(`\0`);ye(e,r,i,n)},j={},xe=Date.now(),Se=e=>{let t=n.cooldown??e;return t?Re(String(t)):0},Ce=e(),we=e=>e.replace(`${Ce}/`,``).replace(`${Ce}\\`,``),M=(e,t,n,r,i,a)=>{A[e][ms(t,n,r)]={old:i,oldOrig:a}},De=(e,t,n,r)=>{if(Hr(r))return;let i=Wr(r);Br(r)?M(`npm`,e,t,n,qr(r,n).version,r):lt(r)?M(`npm`,e,t,n,Z(r),r):i?(ge.set(ms(e,t,n),i),M(`npm`,e,t,n,Z(i.range),r)):Vr(r)?M(`npm`,e,t,n,`0.0.0`,r):me[ms(e,t,n)]={old:r}},N=(e,t,n,r,i,a)=>{let o=(t,r)=>{for(let{name:o,version:s,spec:c}of Te(t))Q(o,e,i,a,r)&&(M(e,r,n,o,Z(s),s),_e.set(ms(r,n,o),c))};for(let[s,c]of Ne(r,t)){let t=c||{};if(Array.isArray(t)){if(e!==`pypi`)continue;o(t,s)}else if(typeof t==`string`){let[r,o]=t.split(`@`);Q(r,e,i,a,s)&&M(e,s,n,r,Z(o),o)}else for(let[r,c]of Object.entries(t)){if(e===`pypi`&&Array.isArray(c)){o(c,`${s}.${r}`);continue}Q(r,e,i,a,s)&&(e===`npm`?De(s,n,r,c):e===`go`?M(e,s,n,r,va(c),Y(c)):lt(c)&&M(e,s,n,r,Z(c),c))}}},Fe=vs(n.files?.length?new Set(n.files):!1),P=await fs(Array.from(Fe).filter(e=>{if(ka(e))return D.has(`actions`)||D.has(`docker`);let t=s(e);if(lo(t))return D.has(`docker`);if(mo(t))return D.has(`make`);let n=Oe[t];return!!n&&D.has(n)}),r),Le={},I={},Ve={},He=[],L=null,R=[],Ge=[],Ke=[],z=[],qe=[],B=[],V={},Je={noCache:n.noCache,timeout:n.timeout||5e3},H=We(async e=>{let t=await dr(e,Je);return{dirConfig:t,include:t.include?.length?ir([...n.include??[],...t.include]):ue,exclude:t.exclude?.length?ir([...n.exclude??[],...t.exclude]):de}});async function Ye(e){let{dirConfig:t,include:n,exclude:r}=await H(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:t.pin??{}}}function Xe(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Ee:e===`pypi`?ke:e===`go`?n.indirect?Ae:Ae.filter(e=>e!==`indirect`):e===`cargo`?[...je,...Me]:[]}function U(e,t,n,r){A.docker??={};for(let i of n)for(let{ref:n}of Ha(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}${n.tag}`;if(A.docker[e])continue;let i=Ba(n.tag);i&&(A.docker[e]={old:i.version,oldOrig:n.tag},qe.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function Ze(e){let{dirConfig:t,include:n,exclude:r}=await H(e);return{include:n,exclude:r,pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:Se(t.cooldown)}}let Qe=new Set,$e=new Map;for(let e of Fe){let t=s(e);if(Object.hasOwn(cs,t))Qe.add(cs[t].mode);else if(t===`Cargo.toml`){let t=P.get(e);if(!t)continue;try{let n=O(t);$e.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&Qe.add(`cargo`)}catch{}}}let W=(e,t,n,r,i,a)=>{let o=j[e]??=[],s=!o.length&&!Qe.has(e),c=s?`.`:we(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:Se(i.cooldown)}),s&&(V[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},et=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of P.keys()){if(ka(e)){let t=D.has(`actions`),n=D.has(`docker`),r=P.get(e),i=we(e),a=await Ze(c(e));if(Le[i]={absPath:e,content:r},t){A.actions??={};for(let e of r.split(`
17
- `)){let t=Ta(e),n=t&&ya(t.value);if(!n||!Q(n.name,`actions`,a.include,a.exclude,`actions`))continue;let r=`${i}${n.name}${n.ref}`;A.actions[r]||(A.actions[r]={old:n.ref},z.push({...n,key:r,comment:t.pinnedVersion,apiUrl:ba(n.host,l),filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}n&&(I[i]={absPath:e,content:r,fileType:`workflow`},U(r,i,[Na,Pa,Fa],a));continue}let t=s(e);if(lo(t)){let n=P.get(e),r=we(e),i=co(t)?`dockerfile`:`compose`,a=await Ze(c(e));I[r]={absPath:e,content:n,fileType:i},U(n,r,[uo(t)],a);continue}if(mo(t)){let t=P.get(e),n=we(e),r=await Ze(c(e));Ve[n]={absPath:e,content:t},A.make??={};let i={projectDir:c(e),filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of yo(t)){if(!Q(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=`${n}${e}${a}`;A.make[t]||(A.make[t]={old:Y(a),oldOrig:a},B.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of wo(t)){if(!Q(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=`${n}${e.writtenImage}${e.ref.tag}`;if(A.make[t])continue;let a=Ba(e.ref.tag);if(!a)continue;let o=So(e.writtenImage,e.ref.tag,e.digest);A.make[t]={old:a.version,oldOrig:e.ref.tag},B.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=Oe[t];if(t===`go.work`){A[n]??={};let t=c(f(e)),i=P.get(e);L={file:e,content:i};let a=ha(i),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p]=await Promise.all([Ye(t),F(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await S(n,`utf8`)}}catch{return null}},{concurrency:r})]),m=Xe(n,o);V[n]={modeConfig:o,projectDir:t,pin:d};for(let e of p){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=Qi(i),o=c(r);He.push({absPath:r,content:i,projectDir:o,memberPath:t}),N(n,a,t===`.`?``:`|${t}`,m,s,l)}for(let[e,t]of Object.entries(a.replace))Q(e,n,s,l,`replace`)&&M(n,`replace`,``,e,va(t),Y(t));continue}if(t===`go.mod`&&He.some(t=>t.absPath===f(e))||t===`package.json`&&Ge.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){A[n]??={};let t=P.get(e),i=$e.get(e)??O(t),a=c(f(e)),o=ds([`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([Ye(a),o?S(o,`utf8`):Promise.resolve(null),l?Qo(s,a,`Cargo.toml`,r):Promise.resolve([])]),_=Xe(n,u),v=h?Lo(h):new Map,y=(e,t)=>{for(let[r,i]of Ne(_,e)){let e=i||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[i,a]of Object.entries(e))if(Q(i,n,d,p,r))if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||i;lt(Ho(e))&&(o!==i&&he.set(ms(r,t,i),o),M(n,r,t,i,Ko(v,o,e)??Z(Ho(e)),e))}else typeof a==`string`&&lt(Ho(a))&&M(n,r,t,i,Ko(v,i,a)??Z(Ho(a)),a)}}};if(l){V[n]={modeConfig:u,projectDir:a,pin:m},y(i,``),R.push({absPath:f(e),content:t,memberPath:`.`});for(let e of g)R.push(e),y(et(e.absPath,()=>O(e.content)),`|${e.memberPath}`)}else y(i,W(n,e,t,a,u,m));continue}if(t===`pnpm-workspace.yaml`){A[n]??={};let i=c(f(e)),a=P.get(e),o=is(a),s=u(i,`package.json`),[{modeConfig:l,modeInclude:d,modeExclude:p,pin:m},h,g]=await Promise.all([Ye(i),Be(S(s,`utf8`)),Qo(o,i,`package.json`,r)]),_=Xe(n,l);V[n]={modeConfig:l,projectDir:i,pin:m},Ke.push({absPath:f(e),content:a,memberPath:t});for(let{type:e,name:r,value:i}of ns(a))Q(r,n,d,p,e)&&De(e,`|${t}`,r,i);if(h!==null){let e=et(s,()=>JSON.parse(h));Ge.push({absPath:f(s),content:h,memberPath:`.`}),N(n,e,``,_,d,p)}for(let e of g){let t=et(e.absPath,()=>JSON.parse(e.content));Ge.push(e),N(n,t,`|${e.memberPath}`,_,d,p)}continue}A[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await Ye(i),m=Xe(n,a),h=P.get(e),g=W(n,e,h,i,a,p);N(n,et(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?O(h):n===`go`?Qi(h):{}),g,m,o,d)}if(!hs(A)&&!Object.keys(me).length)return{results:{},message:`No dependencies found, nothing to do.`};let tt=[],G=!!Se(V.npm?.modeConfig.cooldown)||(j.npm??[]).some(e=>e.modeCooldownDays)||Object.keys(A.npm??{}).some(e=>k(e.split(`\0`)[1]).cooldownOverride),nt={registry:n.registry,needsDates:G};for(let[e,t]of Object.entries(V)){let i=A[e]&&Object.keys(A[e]).length>0,a=e===`npm`&&Object.keys(me).length>0;if(!i&&!a)continue;let{modeConfig:o,projectDir:s,pin:c}=t,l=Se(o.cooldown);tt.push((async()=>{let t=new Map;for(let n of j[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let i={modeConfig:o,projectDir:s,pin:c,modeCooldownDays:l},a=e=>{let n=e.indexOf(`|`);return n!==-1&&t.get(e.slice(n))||i},u=new Map,d=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let[r,i]=t.split(`\0`),{modeCooldownDays:o}=a(r);if(!o&&!ce)continue;let s=k(i).cooldownOverride??o;s&&!Vt(n,s,xe)&&delete e[t]}},f=A[e],p=async(t,r,i)=>{let o=Yo(r),{modeConfig:s,projectDir:c,pin:l,modeCooldownDays:d}=a(r),p=f[t],m=ge.get(t),h;if(e===`npm`)if(p.oldOrig&&Br(p.oldOrig))h=await Jr(i,C);else if(p.oldOrig&&Vr(p.oldOrig)){let e=await Be(Rr(i,o,s,nt,C,c));if(!e){delete f[t];return}h=e}else h=await Rr(m?.name??i,o,s,nt,C,c);else h=e===`go`?await da(i,o,p.oldOrig||p.old,c,C,v):e===`cargo`?await Io(he.get(t)??i,C):await mi(i,C);let[g,_]=h;if(g.error)throw Error(g.error);let y=gs(g.name,e),{useGreatest:b,usePre:ee,useRel:te,semvers:S,allowDowngrade:ne,cooldownOverride:w}=k(g.name,y),{old:T,oldOrig:E}=p,{pinnedRange:re,pinNoDowngrade:ie}=pe(y,l,s.pinNoDowngrade),ae=w??d,D=bn(g,{usePre:ee,useRel:te,useGreatest:b,semvers:S,range:T,mode:e,pinnedRange:re,pinNoDowngrade:ie,allowDowngrade:ne,cooldownDays:ae||void 0,now:ae?xe:void 0}),O=``;if((e===`go`||e===`pypi`)&&D)O=D;else if(e===`cargo`&&D&&E)O=Go(E,D);else if(D)if(E&&Vr(E))O=String(Er(c)[`save-exact`])===`true`?D:`^${D}`;else if(E&&Br(E)){let e=us.exec(E);e?O=`${e[1]}${D}`:E.startsWith(`jsr:`)&&(O=`jsr:${D}`)}else O=m?`npm:${m.name}@${li(T,D,m.range,o)}`:li(T,D,E,o);let oe=_e.get(t);if(!D||D===T||E&&E===O||oe&&!vi(oe,E||T,O)){n.verbose&&D&&D!==T&&console.error(`${Ie()} ${x(`SKIP`)} ${i}: ${E||T} can not be rewritten to ${D}`),delete f[t];return}let se=(e===`pypi`?g.releases?.[D]?.[0]?.upload_time_iso_8601:e===`go`?g.Time:e===`cargo`?g.time?.[D]:``)||``;p.new=O,E&&Br(E)&&(p.newPrint=D),e===`npm`?u.set(t,{name:m?.name??i,promise:zr(g.name,D,s,nt,C,c)}):e===`pypi`?p.info=er(g,_,g.info.name):e===`go`?p.info=ga(g.newPath||i):e===`cargo`&&(p.info=`https://crates.io/crates/${g.name}`),ps(p,se)};if(await F(Object.keys(f),async t=>{let[n,r]=t.split(`\0`);try{await p(t,n,r)}catch(i){delete f[t],ye(e,n,r,i)}},{concurrency:r}),await Promise.all(Array.from(u,async([e,{name:t,promise:n}])=>{let r=await n,i=f[e];i&&(i.info=er({repository:r.repository,homepage:r.homepage},null,t),r.date&&ps(i,r.date))})),e===`npm`&&Object.keys(me).length){let e=(await F(Object.entries(me),async([e,t])=>{try{return await fi(e,t,C)}catch(t){return be(`npm`,e,t),null}},{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=f[t]={old:me[t].old,new:n,oldPrint:Hn.test(a)?a.substring(0,7):a,newPrint:Hn.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&ps(e,s)}}d(f)})())}z.length&&tt.push((async()=>{await F(Map.groupBy(z,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a;try{a=await Jn(t,n,i,C,e.map(e=>e.ref))}catch(t){for(let n of e)delete A.actions[n.key],be(`actions`,n.key,t);return}let o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=wt.parse(e.name)?.version;if(t){let n=s.get(t);n||o.push(t),(!n||e.name.length>n.length)&&s.set(t,e.name)}e.commitSha&&l.set(e.commitSha,e.name)}let u=We(e=>xa(t,n,i,e,C));async function d(e){let t={...e,cooldownDays:void 0,now:void 0},r=new Set;for(let a=0;a<20;a++){let a=vn({},r.size?o.filter(e=>!r.has(e)):o,t);if(!a)return null;let l=s.get(a),d=c.get(l)?.commitSha||``;if(!e.cooldownDays)return{version:a,tag:l,commitSha:d,date:``};let f=d?await u(d):``;if(f===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${l}`);if(Vt(f,e.cooldownDays,e.now))return{version:a,tag:l,commitSha:d,date:f};r.add(a)}return null}let f=async({key:e,host:t,ref:r,comment:a,name:o,isHash:s,filePin:f,filePinNoDowngrade:p,fileCooldownDays:m})=>{let h=A.actions[e],g=`https://${t||`github.com`}/${n}/${i}`,{pinnedRange:_,pinNoDowngrade:v}=pe([o],f,p),y=r;if(s?y=a||l.get(r)||l.entries().find(([e])=>e.startsWith(r))?.[1]||``:Un(r)||(y=``),!y){delete A.actions[e];return}let{usePre:b,useRel:x,semvers:ee,cooldownOverride:te}=k(o),S=te??m,ne=await d({range:y,semvers:ee,usePre:b,useRel:x,versioning:wt,pinnedRange:_,pinNoDowngrade:v,cooldownDays:S||void 0,now:S?xe:void 0});if(!ne){delete A.actions[e];return}let{tag:C,commitSha:w,date:T}=ne;if(s){if(!w||w.startsWith(r)||r.startsWith(w)){delete A.actions[e];return}h.old=r,h.new=w.substring(0,r.length),h.oldPrint=y,h.newPrint=C}else{let t=Sa(C,r);if(t===r){delete A.actions[e];return}h.new=c.has(t)?t:C}h.info=g;let E=T||(w?await Be(u(w)):``);E&&ps(h,E)};await F(e,async e=>{try{await f(e)}catch(t){delete A.actions[e.key],be(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(A.actions).length||delete A.actions})()),qe.length&&tt.push((async()=>{await F(Map.groupBy(qe,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete A.docker[e.key];return}let n;try{let[t]=await $a(e,C);n=t}catch(e){for(let n of t)delete A.docker[n.key],be(`docker`,n.key,e);return}let r=gs(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),{pinnedRange:c}=pe(r,i.filePin),l=s??i.fileCooldownDays,u=eo(n.tags,a,o,l||void 0,l?xe:void 0,c);if(!u){delete A.docker[i.key];continue}t.new=u.newTag,t.info=fo(i.ref),ps(t,u.date)}},{concurrency:r}),Object.keys(A.docker).length||delete A.docker})()),B.length&&tt.push((async()=>{await F(B,async e=>{let t=gs(e.name,e.kind),{useGreatest:n,usePre:r,useRel:i,semvers:a,allowDowngrade:o,cooldownOverride:s}=k(e.name,t),{pinnedRange:c,pinNoDowngrade:l}=pe(t,e.filePin,e.filePinNoDowngrade),u=s??e.fileCooldownDays,d={semvers:a,useGreatest:n,usePre:r,useRel:i,allowDowngrade:o,pinnedRange:c,pinNoDowngrade:l,cooldownDays:u||void 0,now:u?xe:void 0},f=A.make[e.key];try{let t;if(e.kind===`go`){let n=await ko(e.installPath,e.version,e.projectDir,C,v,d);if(!n){delete A.make[e.key];return}e.newSpec=`${n.newInstallPath}@${n.newVersion}`,f.new=n.newVersion,t=n}else{let n=await Ao(e.image,C,d);if(!n){delete A.make[e.key];return}e.newSpec=So(e.image.writtenImage,n.newTag,e.image.digest?n.newDigest:null),f.new=n.newTag,t=n}f.info=t.info,t.date&&ps(f,t.date)}catch(t){delete A.make[e.key],be(`make`,e.key,t)}},{concurrency:r}),Object.keys(A.make).length||delete A.make})());try{await Promise.all(tt)}finally{await zt()}if(!hs(A))return ve.length?{results:{},errors:ve}:{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=Xo(A[e],r.memberPath);Object.keys(t).length&&$(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=Hn.test(n.old)?n.newPrint:void 0;Ue(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 B)!e.newSpec||!A.make?.[e.key]||Ue(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}=Le[e]||{};if(!t)continue;let i=Da(r,n);$(t,i),I[e]&&(I[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=I[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?ro:a===`compose`?io:ao)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=Ve[e];n&&$(n.absPath,jo(n.content,t))}continue}if(a===`go`){for(let e of[...He,...j.go??[]]){let t=Xo(A[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=pa(e.content,t);n!==e.content&&$(e.absPath,n),ma(e.projectDir,r,$)}if(L){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]=pa(L.content,e);t!==L.content&&$(L.file,t)}}}else a===`cargo`?(e(a,R,Jo),e(a,j.cargo??[],Jo)):a===`npm`?(e(a,Ke,rs),e(a,Ge,Qr),e(a,j.npm??[],Qr)):e(a,j[a]??[],yi)}}let rt=bs(A);return ve.length&&(rt.errors=ve),rt}function Cs(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function ws(e){let t=nr(e);if(t!==!1)return t===!0||Array.from(t).map(Cs)}function Ts(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=y(n).isDirectory()}catch{}return r?n:c(n)}function Es(e,t){let n=nr(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Ts(r[0])}}function Ds(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:tr,...e!==void 0&&{args:e}}),n=t.values,r=new Set,i=0;for(let[e,a]of t.tokens.entries()){if(a.kind===`positional`&&i++,a.kind!==`option`||!a.value?.startsWith(`-`))continue;let o=a.value.startsWith(`--`)?2:1,s=rr(a.value.substring(o));if(!s)continue;let c=t.tokens[e+1],l=n[a.name];if(Array.isArray(l)){let e=l.indexOf(a.value);e!==-1&&l.splice(e,1)}else n[a.name]=!0;let u=c?.kind===`positional`&&c.value?c.value:!0;typeof u==`string`&&r.add(i),tr[s]?.multiple?(n[s]??=[]).push(u):n[s]=u}return{args:n,positionals:t.positionals.filter((e,t)=>!r.has(t))}}async function Os(e,t){let{filesList:n,startDir:r}=Es(e,t),i=typeof e.timeout==`string`?ze(e.timeout,`timeout`):void 0,a={...await dr(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=ze(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=ar(e.include).map(Cs),s=ar(e.exclude).map(Cs);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=ar(e.types);c.length&&(a.types=c);let l=sr(e.pin);Object.keys(l).length&&(a.pin=l);let u=nr(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=ws(e[t]);n!==void 0&&(a[t]=n)}let d=ws(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 ks(e){try{return fr(g(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function As(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const js={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function Ms(e){if(Oe[e])return Oe[e];if(lo(e))return`docker`;if(mo(e))return`make`}function Ns(e,t){let n=new Set;try{for(let t of _(e,{withFileTypes:!0}))if(t.isFile()){let e=Ms(t.name);e&&n.add(e)}else t.isDirectory()&&N.some(e=>e===t.name)&&n.add(`actions`)}catch{}let r=new Set;for(let i of n)for(let n of js[i]??[]){let i=As(n===`registry`&&typeof t.registry!=`string`?ks(e):t[n],n===`goproxy`?Si()[0].url:J[n]);i&&r.add(i)}return Array.from(r)}const Ps=/[A-Za-z_$]/,Fs=/[A-Za-z0-9_$]/;function Is(e){let t=``,n=0,r=e.length,i=-1;function a(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
12
+ `)}async function Lo(e,t){let n=Fo(t.cratesIoUrl,e);return[await on(No,n,async()=>{let r=await rn(n,t,Jt(),Io);`body`in r||Z(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
13
+ `)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers;i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=V(n);r&&(r.prerelease.length?(!s||U(n,s))&&(s=n):(!o||U(n,o))&&(o=n))}if(!c&&r.body.trim())throw Error(`Invalid JSON from ${n}`);return{name:e,versions:i,time:a,"dist-tags":{latest:o||s}}}),null]}function Ro(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];Xe(a)&&We(t,i,a)}return t}const zo=/^\d/,Bo=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Vo=/\s*,\s*/g,Ho=/(\s*,\s*)/,Uo=e=>e.includes(`,`)?e.replace(Vo,` `):e,Wo=e=>Uo(zo.test(e)&&!Bo.test(e)?`^${e}`:e);function Go(e,t){if(e.startsWith(`<`)&&G(t,e))return e;let n=Bo.exec(e);if(n){let[,e,r]=n;return`${t.split(/[-+]/)[0].split(`.`).slice(0,e.split(`.`).length).join(`.`)}${r}`}return zo.test(e)?ui(Q(`^${e}`),t,`^${e}`).replace(/^\^/,``):ui(Q(e),t,e)}function Ko(e,t){if(!e.includes(`,`))return Go(e,t);let n=e.split(Ho);for(let e=0;e<n.length;e+=2)n[e]=Go(n[e],t);return n.join(``)}function qo(e,t,n){let r=e.get(t);if(!r)return;let i=Wo(n),a;for(let e of r)G(e,i)&&(!a||U(e,a))&&(a=e);return a}const Jo=e=>`(?:${L(e)}|"${L(e)}"|'${L(e)}')`;function Yo(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Jo(i),c=L(a),l=t.split(`|`)[0].split(`.`).map(Jo).join(`\\.`);n=n.replace(RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`,`gm`),`$1${o}$2`),n=n.replace(RegExp(`^(\\s*${s}\\s*=\\s*\\{(?:"[^"]*"|'[^']*'|[^}\\n])*?\\bversion\\s*=\\s*["'])${c}(["'])`,`gm`),`$1${o}$2`),n=n.replace(RegExp(`(\\[${l}\\.${s}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`)}return n}function Xo(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}function Zo(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=Xo(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const Qo=/[*?{[]/;async function $o(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=Qo.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 I(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await S(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const es=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#][^:#]*?))\s*:(?:\s+(.*))?$/,ts=/\s#/;function ns(e){let t=es.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.search(ts),l=(c===-1?o:o.slice(0,c)).trimEnd(),u=l[0];return(u===`"`||u===`'`)&&l.length>1&&l.endsWith(u)&&(l=l.slice(1,-1),s+=1),{indent:n.length,key:r??i??a,value:l,valueIndex:s}}function*rs(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
14
+ `).entries()){let e=ns(a);if(!e)continue;let{indent:o,key:s,value:c,valueIndex:l}=e;o===0?(t=s===`catalog`||s===`catalogs`?s:``,n=``,r=-1):t===`catalog`?c&&(yield{type:`catalog`,name:s,value:c,lineIndex:i,valueIndex:l}):t===`catalogs`&&(r===-1||o<=r?(n=s,r=o):c&&(yield{type:`catalogs.${n}`,name:s,value:c,lineIndex:i,valueIndex:l}))}}function is(e,t){let n=e.split(`
15
+ `),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of rs(e)){let e=t[`${i}${a}`];if(!e||(e.oldOrig||e.old)!==o)continue;let l=n[s];n[s]=l.slice(0,c)+e.new+l.slice(c+o.length),r=!0}return r?n.join(`
16
+ `):e}function as(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 os=[...new Set(Object.values(Oe)),`actions`,`docker`,`make`],ss=new Set(os),cs={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},ls={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},us=(e,t)=>typeof e==`string`?qt(e):typeof t==`function`?t():t,ds=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function fs(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 ps(e,t){let n=await I(e,async e=>{try{return[e,await S(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function ms(e,t){t&&(e.date=t,e.age=jt(t,{noAffix:!0,shortUnits:!0}))}const hs=(e,t,n)=>`${e}${t}${n}`,gs=e=>Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0);function _s(e,t){return t===`go`?[e,va(e)]:t===`docker`?za(e):[e]}const vs=(e,t)=>t.find(t=>e[t]);function $(e,t,n,r,i,a=t){if(i===`engines`&&De.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let o=_s(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 ys(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 v(e,{withFileTypes:!0}))t.isFile()&&(Object.hasOwn(Oe,t.name)||uo(t.name)||ho(t.name))&&n.add(f(u(e,t.name)))}catch{}let t=f(e).replace(/\\/g,`/`),r=P.some(e=>t.endsWith(`/${e}/workflows`)),i=!r&&P.some(e=>t.endsWith(`/${e}`)),a=r?[c(t)]:i?[t]:P.map(e=>u(t,e));for(let e of a)for(let t of ja(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(P),r=[...Object.keys(Oe),...so,...mo,...P],i=new Set;for(let[a,o]of fs(r,e())){if(t.has(a)){for(let e of ja(o))n.add(e);continue}let e=f(o);try{e=y.native(o)}catch{}i.has(e)||(i.add(e),n.add(f(o)))}try{for(let t of v(e(),{withFileTypes:!0})){let r=uo(t.name)&&!so.includes(t.name),i=ho(t.name)&&!mo.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(ls,t)&&n.delete(u(c(e),ls[t].supersedes))}return n}function bs(e,t){r===`win32`&&x(e,0),ee(e,t,r===`win32`?{flag:`r+`}:void 0)}const xs=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function Ss(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>os.indexOf(e)-os.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=xs(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,a]of Object.entries(i)){typeof a.oldPrint==`string`&&(a.old=a.oldPrint),typeof a.newPrint==`string`&&(a.new=a.newPrint),typeof a.oldOrig==`string`&&!Vr(a.oldOrig)&&(a.old=e===`go`?ya(a.oldOrig):a.oldOrig),e===`go`?a.new=ya(a.new):e===`actions`&&(a.old=X(a.old),a.new=X(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get(xs(e,r))>1?`${o}${e===`actions`?`@`:`:`}${s}`:o,l=t.results[e]??={};(l[i]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}let Cs=!1;async function ws(t={}){if(!Cs){let{enableDnsCache:e}=await import(`./dns.js`);e(),Cs=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=ze(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=us(t.forgeapi,Y.forgeapi),d=us(t.pypiapi,Y.pypiapi),p=us(t.jsrapi,Y.jsrapi),m=Ci(t.goproxy),h=m[0].url,g=us(t.cargoapi,Y.cargoapi),_=us(t.dockerapi,Y.dockerapi),v=wi(),y=!n.noColor&&(n.color||i.isTTY),b=e=>y?t=>o(e,String(t),{validateStream:!1}):String,x=b(`magenta`),ee=b(`green`),te=b(`red`),ne,C={fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):Gt,concurrency:r,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:h,goProxyChain:m,cratesIoUrl:g,dockerApiUrl:_,doFetch:(e,t)=>(ne??=dn(C))(async()=>{n.verbose&&console.error(`${Fe()} ${x(t?.method||`GET`)} ${e}`);let r=await Zt(e,t);return n.verbose&&console.error(`${Fe()} ${r.ok?ee(r.status):te(r.status)} ${e}`),r}),noCache:!!n.noCache},w=lr(n.greatest),T=lr(n.prerelease),E=lr(n.release),re=lr(n.patch),ie=lr(n.minor),ae=lr(n.allowDowngrade),D=n.modes?.length?new Set(n.modes):ss,O=(n.overrides??[]).map(e=>({include:e.include?.length?ar(e.include):void 0,exclude:e.exclude?.length?ar(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:Re(String(e.cooldown))})),se=(e,t)=>e.include&&t.every(t=>!Pe(t,e.include))?!1:!e.exclude||t.every(t=>!Pe(t,e.exclude)),ce=O.some(e=>e.cooldownDays);D.has(`actions`)&&An();let le=new Map;function k(e,t){let n=le.get(e);if(!n){let r=t??[e],i=e=>r.some(t=>Pe(t,e)),a=i(w),o=i(T),s=i(E),c=i(re),l=i(ie),u=i(ae),d;for(let e of O)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?cs.patch:l?cs.minor:cs.major;n={useGreatest:a,usePre:o,useRel:s,semvers:f,allowDowngrade:u,cooldownOverride:d},le.set(e,n)}return n}let ue=ar(n.include??[]),de=ar(n.exclude??[]);sr(n.pin);let fe=n.pin??{},pe=(e,t,n)=>{let r=vs(fe,e);if(r)return{pinnedRange:fe[r],pinNoDowngrade:!1};let i=vs(t,e);return{pinnedRange:i?t[i]:void 0,pinNoDowngrade:!!(i&&Array.isArray(n)&&n.includes(i))}},A={},j={},me=new Map,he=new Map,ge=new Map,_e=[],ve=(e,t,n,r)=>{_e.push({mode:e,type:t,name:n,error:r?.message||String(r)})},ye=(e,t,n)=>{let[r,i]=t.split(`\0`);ve(e,r,i,n)},M={},be=Date.now(),xe=e=>{let t=n.cooldown??e;return t?Re(String(t)):0},Se=e(),Ce=e=>e.replace(`${Se}/`,``).replace(`${Se}\\`,``),N=(e,t,n,r,i,a)=>{A[e][hs(t,n,r)]={old:i,oldOrig:a}},we=(e,t,n,r)=>{if(Ur(r))return;let i=Gr(r);Vr(r)?N(`npm`,e,t,n,Jr(r,n).version,r):K(r)?N(`npm`,e,t,n,Q(r),r):i?(he.set(hs(e,t,n),i),N(`npm`,e,t,n,Q(i.range),r)):Hr(r)?N(`npm`,e,t,n,`0.0.0`,r):j[hs(e,t,n)]={old:r}},De=(e,t,n,r,i,a)=>{let o=(t,r)=>{for(let{name:o,version:s,spec:c}of Te(t))$(o,e,i,a,r)&&(N(e,r,n,o,Q(s),s),ge.set(hs(r,n,o),c))};for(let[s,c]of Ne(r,t)){let t=c||{};if(Array.isArray(t)){if(e!==`pypi`)continue;o(t,s)}else if(typeof t==`string`){let[r,o]=t.split(`@`);$(r,e,i,a,s)&&N(e,s,n,r,Q(o),o)}else for(let[r,c]of Object.entries(t)){if(e===`pypi`&&Array.isArray(c)){o(c,`${s}.${r}`);continue}$(r,e,i,a,s)&&(e===`npm`?we(s,n,r,c):e===`go`?N(e,s,n,r,ya(c),X(c)):K(c)&&N(e,s,n,r,Q(c),c))}}},P=ys(n.files?.length?new Set(n.files):!1),F=await ps(Array.from(P).filter(e=>{if(Aa(e))return D.has(`actions`)||D.has(`docker`);let t=s(e);if(uo(t))return D.has(`docker`);if(ho(t))return D.has(`make`);let n=Oe[t];return!!n&&D.has(n)}),r),Ie={},Le={},L={},Ve=[],He=null,Ue=[],R=[],Ke=[],qe=[],z=[],Je=[],B={},Ye={noCache:n.noCache,timeout:n.timeout||5e3},Xe=Ge(async e=>{let t=await fr(e,Ye);return{dirConfig:t,include:t.include?.length?ar([...n.include??[],...t.include]):ue,exclude:t.exclude?.length?ar([...n.exclude??[],...t.exclude]):de}});async function V(e){let{dirConfig:t,include:n,exclude:r}=await Xe(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:t.pin??{}}}function Ze(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Ee:e===`pypi`?ke:e===`go`?n.indirect?Ae:Ae.filter(e=>e!==`indirect`):e===`cargo`?[...je,...Me]:[]}function Qe(e,t,n,r){A.docker??={};for(let i of n)for(let{ref:n}of Ua(e,i)){if(!$(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}${n.tag}`;if(A.docker[e])continue;let i=Va(n.tag);i&&(A.docker[e]={old:i.version,oldOrig:n.tag},z.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function H(e){let{dirConfig:t,include:n,exclude:r}=await Xe(e);return{include:n,exclude:r,pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:xe(t.cooldown)}}let $e=new Set,et=new Map;for(let e of P){let t=s(e);if(Object.hasOwn(ls,t))$e.add(ls[t].mode);else if(t===`Cargo.toml`){let t=F.get(e);if(!t)continue;try{let n=oe(t);et.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&$e.add(`cargo`)}catch{}}}let tt=(e,t,n,r,i,a)=>{let o=M[e]??=[],s=!o.length&&!$e.has(e),c=s?`.`:Ce(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:xe(i.cooldown)}),s&&(B[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},U=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of F.keys()){if(Aa(e)){let t=D.has(`actions`),n=D.has(`docker`),r=F.get(e),i=Ce(e),a=await H(c(e));if(Ie[i]={absPath:e,content:r},t){A.actions??={};for(let e of r.split(`
17
+ `)){let t=Ea(e),n=t&&ba(t.value);if(!n||!$(n.name,`actions`,a.include,a.exclude,`actions`))continue;let r=`${i}${n.name}${n.ref}`;A.actions[r]||(A.actions[r]={old:n.ref},qe.push({...n,key:r,comment:t.pinnedVersion,apiUrl:xa(n.host,l),filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}n&&(Le[i]={absPath:e,content:r,fileType:`workflow`},Qe(r,i,[Pa,Fa,Ia],a));continue}let t=s(e);if(uo(t)){let n=F.get(e),r=Ce(e),i=lo(t)?`dockerfile`:`compose`,a=await H(c(e));Le[r]={absPath:e,content:n,fileType:i},Qe(n,r,[fo(t)],a);continue}if(ho(t)){let t=F.get(e),n=Ce(e),r=await H(c(e));L[n]={absPath:e,content:t},A.make??={};let i={projectDir:c(e),filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of bo(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=`${n}${e}${a}`;A.make[t]||(A.make[t]={old:X(a),oldOrig:a},Je.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of To(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=`${n}${e.writtenImage}${e.ref.tag}`;if(A.make[t])continue;let a=Va(e.ref.tag);if(!a)continue;let o=Co(e.writtenImage,e.ref.tag,e.digest);A.make[t]={old:a.version,oldOrig:e.ref.tag},Je.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=Oe[t];if(t===`go.work`){A[n]??={};let t=c(f(e)),i=F.get(e);He={file:e,content:i};let a=ga(i),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p]=await Promise.all([V(t),I(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await S(n,`utf8`)}}catch{return null}},{concurrency:r})]),m=Ze(n,o);B[n]={modeConfig:o,projectDir:t,pin:d};for(let e of p){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=$i(i),o=c(r);Ve.push({absPath:r,content:i,projectDir:o,memberPath:t}),De(n,a,t===`.`?``:`|${t}`,m,s,l)}for(let[e,t]of Object.entries(a.replace))$(e,n,s,l,`replace`)&&N(n,`replace`,``,e,ya(t),X(t));continue}if(t===`go.mod`&&Ve.some(t=>t.absPath===f(e))||t===`package.json`&&R.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){A[n]??={};let t=F.get(e),i=et.get(e)??oe(t),a=c(f(e)),o=fs([`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([V(a),o?S(o,`utf8`):Promise.resolve(null),l?$o(s,a,`Cargo.toml`,r):Promise.resolve([])]),_=Ze(n,u),v=h?Ro(h):new Map,y=(e,t)=>{for(let[r,i]of Ne(_,e)){let e=i||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[i,a]of Object.entries(e))if($(i,n,d,p,r)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||i;K(Uo(e))&&(o!==i&&me.set(hs(r,t,i),o),N(n,r,t,i,qo(v,o,e)??Q(Uo(e)),e))}else typeof a==`string`&&K(Uo(a))&&N(n,r,t,i,qo(v,i,a)??Q(Uo(a)),a)}}}};if(l){B[n]={modeConfig:u,projectDir:a,pin:m},y(i,``),Ue.push({absPath:f(e),content:t,memberPath:`.`});for(let e of g)Ue.push(e),y(U(e.absPath,()=>oe(e.content)),`|${e.memberPath}`)}else y(i,tt(n,e,t,a,u,m));continue}if(t===`pnpm-workspace.yaml`){A[n]??={};let i=c(f(e)),a=F.get(e),o=as(a),s=u(i,`package.json`),[{modeConfig:l,modeInclude:d,modeExclude:p,pin:m},h,g]=await Promise.all([V(i),Be(S(s,`utf8`)),$o(o,i,`package.json`,r)]),_=Ze(n,l);B[n]={modeConfig:l,projectDir:i,pin:m},Ke.push({absPath:f(e),content:a,memberPath:t});for(let{type:e,name:r,value:i}of rs(a))$(r,n,d,p,e)&&we(e,`|${t}`,r,i);if(h!==null){let e=U(s,()=>JSON.parse(h));R.push({absPath:f(s),content:h,memberPath:`.`}),De(n,e,``,_,d,p)}for(let e of g){let t=U(e.absPath,()=>JSON.parse(e.content));R.push(e),De(n,t,`|${e.memberPath}`,_,d,p)}continue}A[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await V(i),m=Ze(n,a),h=F.get(e),g=tt(n,e,h,i,a,p);De(n,U(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?oe(h):n===`go`?$i(h):{}),g,m,o,d)}if(!gs(A)&&!Object.keys(j).length)return{results:{},message:`No dependencies found, nothing to do.`};let nt=[],rt=!!xe(B.npm?.modeConfig.cooldown)||(M.npm??[]).some(e=>e.modeCooldownDays)||Object.keys(A.npm??{}).some(e=>k(e.split(`\0`)[1]).cooldownOverride),W={registry:n.registry,needsDates:rt};for(let[e,t]of Object.entries(B)){let i=A[e]&&Object.keys(A[e]).length>0,a=e===`npm`&&Object.keys(j).length>0;if(!i&&!a)continue;let{modeConfig:o,projectDir:s,pin:c}=t,l=xe(o.cooldown);nt.push((async()=>{let t=new Map;for(let n of M[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let i={modeConfig:o,projectDir:s,pin:c,modeCooldownDays:l},a=e=>{let n=e.indexOf(`|`);return n!==-1&&t.get(e.slice(n))||i},u=new Map,d=e=>{for(let[t,{date:n}]of Object.entries(e)){if(!n)continue;let[r,i]=t.split(`\0`),{modeCooldownDays:o}=a(r);if(!o&&!ce)continue;let s=k(i).cooldownOverride??o;s&&!J(n,s,be)&&delete e[t]}},f=A[e],p=async(t,r,i)=>{let o=Xo(r),{modeConfig:s,projectDir:c,pin:l,modeCooldownDays:d}=a(r),p=f[t],m=he.get(t),h;if(e===`npm`){if(p.oldOrig&&Vr(p.oldOrig))h=await Yr(i,C);else if(p.oldOrig&&Hr(p.oldOrig)){let e=await Be(zr(i,o,s,W,C,c));if(!e){delete f[t];return}h=e}else h=await zr(m?.name??i,o,s,W,C,c)}else h=e===`go`?await fa(i,o,p.oldOrig||p.old,c,C,v):e===`cargo`?await Lo(me.get(t)??i,C):await hi(i,C);let[g,_]=h;if(g.error)throw Error(g.error);let y=_s(g.name,e),{useGreatest:b,usePre:ee,useRel:te,semvers:ne,allowDowngrade:S,cooldownOverride:w}=k(g.name,y),{old:T,oldOrig:E}=p,{pinnedRange:re,pinNoDowngrade:ie}=pe(y,l,s.pinNoDowngrade),ae=w??d,D=xn(g,{usePre:ee,useRel:te,useGreatest:b,semvers:ne,range:T,mode:e,pinnedRange:re,pinNoDowngrade:ie,allowDowngrade:S,cooldownDays:ae||void 0,now:ae?be:void 0}),O=``;if((e===`go`||e===`pypi`)&&D)O=D;else if(e===`cargo`&&D&&E)O=Ko(E,D);else if(D){if(E&&Hr(E))O=String(Dr(c)[`save-exact`])===`true`?D:`^${D}`;else if(E&&Vr(E)){let e=ds.exec(E);e?O=`${e[1]}${D}`:E.startsWith(`jsr:`)&&(O=`jsr:${D}`)}else O=m?`npm:${m.name}@${ui(T,D,m.range,o)}`:ui(T,D,E,o)}let oe=ge.get(t);if(!D||D===T||E&&E===O||oe&&!yi(oe,E||T,O)){n.verbose&&D&&D!==T&&console.error(`${Fe()} ${x(`SKIP`)} ${i}: ${E||T} can not be rewritten to ${D}`),delete f[t];return}let se=(e===`pypi`?g.releases?.[D]?.[0]?.upload_time_iso_8601:e===`go`?g.Time:e===`cargo`?g.time?.[D]:``)||``;p.new=O,E&&Vr(E)&&(p.newPrint=D),e===`npm`?u.set(t,{name:m?.name??i,promise:Br(g.name,D,s,W,C,c)}):e===`pypi`?p.info=tr(g,_,g.info.name):e===`go`?p.info=_a(g.newPath||i):e===`cargo`&&(p.info=`https://crates.io/crates/${g.name}`),ms(p,se)};if(await I(Object.keys(f),async t=>{let[n,r]=t.split(`\0`);try{await p(t,n,r)}catch(i){delete f[t],ve(e,n,r,i)}},{concurrency:r}),await Promise.all(Array.from(u,async([e,{name:t,promise:n}])=>{let r=await n,i=f[e];i&&(i.info=tr({repository:r.repository,homepage:r.homepage},null,t),r.date&&ms(i,r.date))})),e===`npm`&&Object.keys(j).length){let e=(await I(Object.entries(j),async([e,t])=>{try{return await pi(e,t,C)}catch(t){return ye(`npm`,e,t),null}},{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=f[t]={old:j[t].old,new:n,oldPrint:Un.test(a)?a.substring(0,7):a,newPrint:Un.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&ms(e,s)}}d(f)})())}qe.length&&nt.push((async()=>{await I(Map.groupBy(qe,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a;try{a=await Yn(t,n,i,C,e.map(e=>e.ref))}catch(t){for(let n of e)delete A.actions[n.key],ye(`actions`,n.key,t);return}let o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=Et.parse(e.name)?.version;if(t){let n=s.get(t);n||o.push(t),(!n||e.name.length>n.length)&&s.set(t,e.name)}e.commitSha&&l.set(e.commitSha,e.name)}let u=Ge(e=>Sa(t,n,i,e,C));async function d(e){let t={...e,cooldownDays:void 0,now:void 0},r=new Set;for(let a=0;a<20;a++){let a=yn({},r.size?o.filter(e=>!r.has(e)):o,t);if(!a)return null;let l=s.get(a),d=c.get(l)?.commitSha||``;if(!e.cooldownDays)return{version:a,tag:l,commitSha:d,date:``};let f=d?await u(d):``;if(f===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${l}`);if(J(f,e.cooldownDays,e.now))return{version:a,tag:l,commitSha:d,date:f};r.add(a)}return null}let f=async({key:e,host:t,ref:r,comment:a,name:o,isHash:s,filePin:f,filePinNoDowngrade:p,fileCooldownDays:m})=>{let h=A.actions[e],g=`https://${t||`github.com`}/${n}/${i}`,{pinnedRange:_,pinNoDowngrade:v}=pe([o],f,p),y=r;if(s?y=a||l.get(r)||l.entries().find(([e])=>e.startsWith(r))?.[1]||``:Wn(r)||(y=``),!y){delete A.actions[e];return}let{usePre:b,useRel:x,semvers:ee,cooldownOverride:te}=k(o),ne=te??m,S=await d({range:y,semvers:ee,usePre:b,useRel:x,versioning:Et,pinnedRange:_,pinNoDowngrade:v,cooldownDays:ne||void 0,now:ne?be:void 0});if(!S){delete A.actions[e];return}let{tag:C,commitSha:w,date:T}=S;if(s){if(!w||w.startsWith(r)||r.startsWith(w)){delete A.actions[e];return}h.old=r,h.new=w.substring(0,r.length),h.oldPrint=y,h.newPrint=C}else{let t=Ca(C,r);if(t===r){delete A.actions[e];return}h.new=c.has(t)?t:C}h.info=g;let E=T||(w?await Be(u(w)):``);E&&ms(h,E)};await I(e,async e=>{try{await f(e)}catch(t){delete A.actions[e.key],ye(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(A.actions).length||delete A.actions})()),z.length&&nt.push((async()=>{await I(Map.groupBy(z,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete A.docker[e.key];return}let n;try{let[t]=await eo(e,C);n=t}catch(e){for(let n of t)delete A.docker[n.key],ye(`docker`,n.key,e);return}let r=_s(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),{pinnedRange:c}=pe(r,i.filePin),l=s??i.fileCooldownDays,u=to(n.tags,a,o,l||void 0,l?be:void 0,c);if(!u){delete A.docker[i.key];continue}t.new=u.newTag,t.info=po(i.ref),ms(t,u.date)}},{concurrency:r}),Object.keys(A.docker).length||delete A.docker})()),Je.length&&nt.push((async()=>{await I(Je,async e=>{let t=_s(e.name,e.kind),{useGreatest:n,usePre:r,useRel:i,semvers:a,allowDowngrade:o,cooldownOverride:s}=k(e.name,t),{pinnedRange:c,pinNoDowngrade:l}=pe(t,e.filePin,e.filePinNoDowngrade),u=s??e.fileCooldownDays,d={semvers:a,useGreatest:n,usePre:r,useRel:i,allowDowngrade:o,pinnedRange:c,pinNoDowngrade:l,cooldownDays:u||void 0,now:u?be:void 0},f=A.make[e.key];try{let t;if(e.kind===`go`){let n=await Ao(e.installPath,e.version,e.projectDir,C,v,d);if(!n){delete A.make[e.key];return}e.newSpec=`${n.newInstallPath}@${n.newVersion}`,f.new=n.newVersion,t=n}else{let n=await jo(e.image,C,d);if(!n){delete A.make[e.key];return}e.newSpec=Co(e.image.writtenImage,n.newTag,e.image.digest?n.newDigest:null),f.new=n.newTag,t=n}f.info=t.info,t.date&&ms(f,t.date)}catch(t){delete A.make[e.key],ye(`make`,e.key,t)}},{concurrency:r}),Object.keys(A.make).length||delete A.make})());try{await Promise.all(nt)}finally{await Vt()}if(!gs(A))return _e.length?{results:{},errors:_e}:{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=Zo(A[e],r.memberPath);Object.keys(t).length&&bs(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=Un.test(n.old)?n.newPrint:void 0;We(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 Je)!e.newSpec||!A.make?.[e.key]||We(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}=Ie[e]||{};if(!t)continue;let i=Oa(r,n);bs(t,i),Le[e]&&(Le[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=Le[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;bs(r,(a===`dockerfile`?io:a===`compose`?ao:oo)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=L[e];n&&bs(n.absPath,Mo(n.content,t))}continue}if(a===`go`){for(let e of[...Ve,...M.go??[]]){let t=Zo(A[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=ma(e.content,t);n!==e.content&&bs(e.absPath,n),ha(e.projectDir,r,bs)}if(He){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]=ma(He.content,e);t!==He.content&&bs(He.file,t)}}}else a===`cargo`?(e(a,Ue,Yo),e(a,M.cargo??[],Yo)):a===`npm`?(e(a,Ke,is),e(a,R,$r),e(a,M.npm??[],$r)):e(a,M[a]??[],bi)}}let it=Ss(A);return _e.length&&(it.errors=_e),it}function Ts(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Es(e){let t=rr(e);if(t!==!1)return t===!0||Array.from(t).map(Ts)}function Ds(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=b(n).isDirectory()}catch{}return r?n:c(n)}function Os(e,t){let n=rr(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Ds(r[0])}}function ks(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:nr,...e!==void 0&&{args:e}}),n=t.values,r=new Set,i=0;for(let[e,a]of t.tokens.entries()){if(a.kind===`positional`&&i++,a.kind!==`option`||!a.value?.startsWith(`-`))continue;let o=a.value.startsWith(`--`)?2:1,s=ir(a.value.substring(o));if(!s)continue;let c=t.tokens[e+1],l=n[a.name];if(Array.isArray(l)){let e=l.indexOf(a.value);e!==-1&&l.splice(e,1)}else n[a.name]=!0;let u=c?.kind===`positional`&&c.value?c.value:!0;typeof u==`string`&&r.add(i),nr[s]?.multiple?(n[s]??=[]).push(u):n[s]=u}return{args:n,positionals:t.positionals.filter((e,t)=>!r.has(t))}}async function As(e,t){let{filesList:n,startDir:r}=Os(e,t),i=typeof e.timeout==`string`?ze(e.timeout,`timeout`):void 0,a={...await fr(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=ze(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=or(e.include).map(Ts),s=or(e.exclude).map(Ts);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=or(e.types);c.length&&(a.types=c);let l=cr(e.pin);Object.keys(l).length&&(a.pin=l);let u=rr(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Es(e[t]);n!==void 0&&(a[t]=n)}let d=Es(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 js(e){try{return pr(_(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function Ms(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const Ns={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function Ps(e){if(Oe[e])return Oe[e];if(uo(e))return`docker`;if(ho(e))return`make`}function Fs(e,t){let n=new Set;try{for(let t of v(e,{withFileTypes:!0}))if(t.isFile()){let e=Ps(t.name);e&&n.add(e)}else t.isDirectory()&&P.some(e=>e===t.name)&&n.add(`actions`)}catch{}let r=new Set;for(let i of n)for(let n of Ns[i]??[]){let i=Ms(n===`registry`&&typeof t.registry!=`string`?js(e):t[n],n===`goproxy`?Ci()[0].url:Y[n]);i&&r.add(i)}return Array.from(r)}const Is=/[A-Za-z_$]/,Ls=/[A-Za-z0-9_$]/;function Rs(e){let t=``,n=0,r=e.length,i=-1;function a(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
18
18
  `;)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===`
19
- `){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(Ps.test(s)){i=-1;let a=``;for(;n<r&&Fs.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{Rt as $,Qn as A,Kt as B,Zn as C,kn as D,Fn as E,yn as F,Vt as G,Wn as H,Xn as I,Bn as J,$t as K,Yt as L,Wt as M,Hn as N,er as O,gn as P,Ft as Q,Un as R,vn as S,qt as T,jn as U,Ht as V,Gn as W,X,Y,xn as Z,rn as _,Es as a,P as at,Zt as b,In as c,J as d,lt as et,Xt as f,Kn as g,zn as h,Os as i,We as it,Gt as j,un as k,_n as l,Jn as m,Ns as n,R as nt,Ss as o,L as ot,cn as p,Vn as q,Ds as r,_e as rt,_a as s,Is as t,N as tt,an as u,Ut as v,Tn as w,bn as x,nn as y,dn as z};
19
+ `){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(Is.test(s)){i=-1;let a=``;for(;n<r&&Ls.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{Bt as $,$n as A,qt as B,Qn as C,An as D,In as E,bn as F,J as G,Gn as H,Zn as I,Vn as J,en as K,Xt as L,Gt as M,Un as N,tr as O,_n as P,Lt as Q,Wn as R,yn as S,Jt as T,Mn as U,Ut as V,Kn as W,Z as X,X as Y,Sn as Z,an as _,Os as a,Ie as at,Qt as b,Ln as c,Y as d,K as et,Zt as f,qn as g,Bn as h,As as i,Ge as it,Kt as j,dn as k,vn as l,Yn as m,Fs as n,R as nt,ws as o,Ue as ot,ln as p,Hn as q,ks as r,_e as rt,va as s,Rs as t,P as tt,on as u,Wt as v,En as w,xn as x,rn as y,fn as z};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.22.1",
3
+ "version": "18.0.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.1.0",
50
- "timerel": "5.8.8",
49
+ "eslint-config-silverwind": "144.0.0",
50
+ "timerel": "5.9.0",
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
55
  "updates-config-silverwind": "4.0.5",
56
- "versions": "15.3.0",
56
+ "versions": "15.3.1",
57
57
  "vitest": "4.1.10",
58
58
  "vitest-config-silverwind": "11.5.0"
59
59
  },