updates 19.2.2 → 19.4.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
@@ -11,7 +11,7 @@
11
11
  - `pyproject.toml` - uv dependencies, including `build-system.requires` and `tool.uv.dev-dependencies`
12
12
  - `go.mod`, `go.work` - go dependencies
13
13
  - `Cargo.toml` - rust dependencies, including workspaces
14
- - `.{github,gitea,forgejo}/{workflows,actions}`, `workflow-templates`, `action.{yml,yaml}` - actions and docker images
14
+ - `.{github,gitea,forgejo}/{workflows,actions}`, `workflow-templates`, `action.{yml,yaml}` - actions, including Gitea's `self:owner/repo@ref`, and docker images
15
15
  - `{Docker,Container}file*`, `*.{Docker,Container}file`, `compose*.{yml,yaml}`, `docker-*.{yml,yaml}` - docker images
16
16
  - `Makefile`, `*.mk`, `*.sh` - go tool versions in `go install` paths and docker image tags, of any registry in variables named `*_IMAGE`
17
17
 
@@ -156,12 +156,15 @@ const output = await updates({
156
156
  |:-|:-|
157
157
  |`UPDATES_FORGE_TOKENS`|Comma-separated list of `host:token` pairs for forge APIs, e.g. `github.com:ghp_xxx,localhost:3500:tok_xxx`. The host must match the URL exactly, port included|
158
158
  |`UPDATES_GITHUB_API_TOKEN`|GitHub API token, with `GITHUB_API_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN` and `HOMEBREW_GITHUB_API_TOKEN` as fallbacks, in that order. Only ever sent to GitHub itself|
159
+ |`UPDATES_GITEA_API_TOKEN`|Gitea or Forgejo API token, with `GITEA_API_TOKEN`, `GITEA_AUTH_TOKEN`, `GITEA_TOKEN` and `FORGEJO_TOKEN` as fallbacks, in that order. Only ever sent to the instance in `GITEA_URL`|
160
+ |`GITEA_SERVER_URL`|URL of the Gitea instance `self:` actions resolve against, e.g. `https://gitea.example.com`. Falls back to `GITHUB_SERVER_URL` unless it is github.com, then to the `origin` remote|
161
+ |`GITEA_URL`|URL of the Gitea or Forgejo instance the Gitea tokens belong to, e.g. `https://gitea.example.com`|
159
162
  |`pnpm_config__auth`|npm registry credentials as [pnpm](https://pnpm.io/npmrc#_auth) reads them, e.g. `{"https://registry.npmjs.org":{"@":{"authToken":"npm-token"},"@org":{"authToken":"org-token"}}}`. `@` is the registry-wide token, `@org` binds a token and registry to that scope. The `_auth` key of pnpm's global `config.yaml` is read the same way|
160
163
  |`GOPROXY`|Go module proxy list, honored as go itself does. Default: `https://proxy.golang.org,direct`|
161
164
  |`GONOPROXY`|Comma-separated list of Go module patterns to fetch directly, bypassing the proxy|
162
165
  |`GOPRIVATE`|Fallback for `GONOPROXY` when not set|
163
166
 
164
- `updates --login <host>` reads a token from stdin or a prompt and stores it for that forge, `updates --logout <host>` removes it. A host in `UPDATES_FORGE_TOKENS` wins over a stored token, which wins over the GitHub tokens.
167
+ `updates --login <host>` reads a token from stdin or a prompt and stores it for that forge, `updates --logout <host>` removes it. A host in `UPDATES_FORGE_TOKENS` wins over a stored token, which wins over the GitHub and Gitea tokens.
165
168
 
166
169
  npm registries resolve in pnpm's order: `--registry`, then `pnpm_config__auth`, `pnpm-workspace.yaml`, the global `config.yaml`, its `_auth` routes, and finally `.npmrc`. A scope-specific token wins over a registry-wide one.
167
170
 
package/dist/api.d.ts CHANGED
@@ -1,9 +1,6 @@
1
- //#region utils/renovate.d.ts
2
1
  type RenovateImportOptions = {
3
2
  cooldown?: boolean;
4
3
  };
5
- //#endregion
6
- //#region config.d.ts
7
4
  type Config = {
8
5
  /** Array of dependencies to include */
9
6
  include?: Array<string | RegExp>;
@@ -92,8 +89,6 @@ type Override = {
92
89
  allowDowngrade?: boolean;
93
90
  };
94
91
  declare const cliBaseConfig: unique symbol;
95
- //#endregion
96
- //#region modes/shared.d.ts
97
92
  type Dep = {
98
93
  old: string;
99
94
  new: string;
@@ -122,12 +117,8 @@ type Output$1 = {
122
117
  };
123
118
  message?: string;
124
119
  };
125
- //#endregion
126
- //#region utils/files.d.ts
127
120
  /** renovate's `:ignoreModulesAndTests` preset from its `config:recommended` */
128
121
  export declare const defaultExcludePaths: string[];
129
- //#endregion
130
- //#region api.d.ts
131
122
  /** A dependency whose lookup failed. Every other dependency is still resolved and written. */
132
123
  export type DepError = {
133
124
  mode: string;
@@ -149,5 +140,4 @@ export type UpdatesOptions = Config & {
149
140
  dockerapi?: string;
150
141
  };
151
142
  export declare function updates(opts?: UpdatesOptions): Promise<Output>;
152
- //#endregion
153
143
  export { type Config, type Dep, type Deps, type DepsByMode, type Override, cliBaseConfig as cliConfigBaseDir };
package/dist/shared.js CHANGED
@@ -1,17 +1,17 @@
1
- import{cwd as e,env as t,exit as n,pid as r,platform as i,stderr as a,stdin as o}from"node:process";import{parseArgs as s,promisify as c,stripVTControlCharacters as l,styleText as u}from"node:util";import{basename as d,dirname as f,isAbsolute as p,join as m,relative as h,resolve as g,sep as _}from"node:path";import{accessSync as v,existsSync as y,globSync as b,lstatSync as x,readFile as S,readFileSync as C,readdirSync as w,realpathSync as T,statSync as E,truncateSync as D,writeFileSync as O}from"node:fs";import{text as ee}from"node:stream/consumers";import{pathToFileURL as te}from"node:url";import{access as ne,mkdir as k,readFile as re,readdir as ie,realpath as A,rename as ae,stat as oe,unlink as j,utimes as se,writeFile as M}from"node:fs/promises";import{AsyncLocalStorage as ce}from"node:async_hooks";import{Buffer as le}from"node:buffer";import{setTimeout as ue}from"node:timers/promises";import{createHash as N}from"node:crypto";import{homedir as P}from"node:os";import{execFile as de}from"node:child_process";function fe(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r&&(e.charCodeAt(t)<48||e.charCodeAt(t)>57);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const pe=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,me=/^(\s*\()([^)]*)(\)\s*)$/,he=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,F=/* @__PURE__ */ new Set([`===`,`==`,`>=`,`~=`]),ge=/^v?\d[0-9a-z.!+_-]*$/i;function _e(e){let t=[];for(let n of e.split(`,`)){let e=he.exec(n);if(!e)return null;let[r,i,a,o,s,c]=e;t.push({lead:i,op:a,sep:o,version:s,trail:c})}return t}function ve(e){let t=e.indexOf(`;`),n=pe.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[r,i,a,o,s,c,l]=n,u=me.exec(l);return{name:a,extras:s,specifiers:_e(u?u[2]:l),marker:t===-1?``:e.slice(t),head:`${i}${a}${o}${s}${c}`,open:u?.[1]??``,close:u?.[3]??``}}function ye({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 be(e){return e.find(({op:e,version:t})=>F.has(e)&&ge.test(t))}function xe(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=ve(n);if(!e?.specifiers)continue;let r=be(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const Se=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],Ce=[`node`,`deno`,`bun`],I=[`.github`,`.gitea`,`.forgejo`],we={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Te=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`,`build-system.requires`,`tool.uv.dev-dependencies`],Ee=[`deps`,`indirect`,`replace`,`tool`],De=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Oe=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function ke(e,t){let n=[],r=(e,t,i,a,o)=>{if(t===e.length){a!==void 0&&n.push([o?JSON.stringify(i):i.join(`.`),a]);return}if(!a||typeof a!=`object`)return;let s=e[t],c=s===`*`?Array.isArray(a)?[]:Object.keys(a):[s];for(let n of c)r(e,t+1,[...i,n],a[n],o)};for(let n of e)r(n.split(`.`),0,[],t,n.startsWith(`target.*.`));return n}function Ae(e,t){if(typeof t==`boolean`)return t;for(let n of t)if(n.test(e))return!0;return!1}function je(e){return e.split(`,`).filter(Boolean)}function Me(){let e=/* @__PURE__ */ new Date;return(/* @__PURE__ */ new Date(e.getTime()-e.getTimezoneOffset()*6e4)).toISOString().replace(`T`,` `).slice(0,-1)}function Ne(e,t){let n=Array(e[0].length).fill(0),r=Array(e.length);for(let i=0;i<e.length;i++){let a=e[i],o=Array(a.length);for(let e=0;e<a.length;e++){let r=t(a[e]);o[e]=r,r>n[e]&&(n[e]=r)}r[i]=o}let i=``;for(let t=0;t<e.length;t++){let a=e[t],o=a.length-1;for(let e=0;e<=o;e++)if(e>0&&(i+=` `),i+=a[e],e!==o){let a=n[e]-r[t][e];a>0&&(i+=` `.repeat(a))}t<e.length-1&&(i+=`
2
- `)}return i}const Pe={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Fe(e){let[t,n,r]=/^(\d+(?:\.\d+)?)(?:\s*([a-z]))?$/i.exec(e)??[],i=r?Pe[r.toLowerCase()]:1;if(!n||!i)throw Error(`Invalid cooldown value: ${e}`);return Number(n)*i}function Ie(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function L(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 R(e){try{return await e}catch{return null}}const z=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Le(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(z).join(`|`)}var B=class extends RegExp{#e;constructor(e,t,n){super(e,n),this.#e=t}test(e){return this.#e(e)}};function Re(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++)e[i]===`(`||e[i]===`{`?n++:e[i]===`)`||e[i]===`}`?n--:(e[i]===`|`||e[i]===`,`)&&n===0&&(t.push(e.slice(r,i)),r=i+1);return t.push(e.slice(r)),t}function ze(e,t,n,r){let i=0;for(let a=t;a<e.length;a++)if(e[a]===n)i++;else if(e[a]===r&&--i===0)return a;return-1}function Be(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Re(e);let n=/^-?\d+$/.test(t[1])&&/^-?\d+$/.test(t[2]),r=n?Number(t[1]):t[1].codePointAt(0),i=n?Number(t[2]):t[2].codePointAt(0),a=Math.abs(Number(t[3])||1)*(r<=i?1:-1),o=[];for(;(a>0?r<=i:r>=i)&&o.length<1e3;)o.push(n?String(r):String.fromCodePoint(r)),r+=a;return o}function V(e){let t=``,n=[],r=e=>{t+=e,n.push({kind:`char`,matcher:RegExp(`^(?:${e})$`,`i`)})};for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length)r(z(e[++i]));else if(a===`*`&&e[i+1]!==`(`){let r=e[i+1]===`*`;for(;e[i+1]===`*`;)i++;r&&e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else if(a===`?`&&e[i+1]!==`(`)r(`[^/]`);else if(a===`[`){let t=e.indexOf(`]`,i+1);if(t===-1)r(`\\[`);else{let n=e.slice(i+1,t);n.startsWith(`!`)&&(n=`^${n.slice(1)}`),r(`[${n.replaceAll(`\\`,`\\\\`)}]`),i=t}}else if(a===`{`||`@+?*!`.includes(a)&&e[i+1]===`(`){let o=a===`{`,s=o?i:i+1,c=ze(e,s,e[s],o?`}`:`)`);if(c===-1)r(z(a));else{let r=e.slice(s+1,c),l=(o?Be(r):Re(r)).map(V),u=l.map(e=>e.source).join(`|`);t+=a===`!`?`(?!(?:${u})(?:/|$))[^/]*`:`(?:${u})${o||a===`@`?``:a}`;let d=l.map(e=>e.tokens);n.push(a===`!`?{kind:`negative`,alternatives:d}:{kind:`alternatives`,alternatives:d,minimum:a===`?`||a===`*`?0:1,repeat:a===`+`||a===`*`}),i=c}}else r(z(a))}return{source:t,tokens:n}}function Ve(e,t){let n=/* @__PURE__ */ new WeakMap,r=(e,n,r)=>{if(!e.has(n))for(let i=n;e.add(i),!(i===t.length||!r&&t[i]===`/`);i++);},i=(e,a)=>{let o=U(n,e,()=>/* @__PURE__ */ new Map),s=o.get(a);if(s)return s;let c=/* @__PURE__ */ new Set([a]);o.set(a,c);for(let n of e){let e=/* @__PURE__ */ new Set;for(let a of c)if(n.kind===`char`)a<t.length&&n.matcher.test(t[a])&&e.add(a+1);else if(n.kind===`span`)r(e,a,n.slash);else if(n.kind===`globstarSlash`){e.add(a);for(let n=a;n<t.length;n++)t[n]===`/`&&e.add(n+1)}else if(n.kind===`negative`)n.alternatives.some(e=>[...i(e,a)].some(e=>e===t.length||t[e]===`/`))||r(e,a,!1);else{n.minimum===0&&e.add(a);for(let t of n.alternatives)for(let n of i(t,a))e.add(n);if(n.repeat)for(let t of e)for(let r of n.alternatives)for(let n of i(r,t))e.add(n)}if(c=e,!c.size)break}return o.set(a,c),c};return i(e,0).has(t.length)}function He(e){if(e instanceof RegExp)return/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e;let t=/^(!?)\/(.*)\/(i?)$/.exec(e);if(t)try{let n=new RegExp(t[2],t[3]);return t[1]?new B(e,e=>!n.test(e)):n}catch{}let n=0;for(;e[n]===`!`&&e[n+1]!==`(`;)n++;let r=n%2==1,{source:i,tokens:a}=V(e.slice(n));return new B(`^${i}$`,e=>r!==Ve(a,e),`i`)}async function Ue(e,t){for(let n=e;;n=f(n)){let e=await t(n);if(e)return e;if(f(n)===n)return null}}function We(e,t){for(let n=e;;n=f(n)){let e=t(n);if(e)return e;if(f(n)===n)return null}}function H(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function U(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=/* @__PURE__ */ new Map;return n=>U(t,n,()=>e(n))}const Ke=`0|[1-9]\\d*`,qe=/^(?:0|[1-9]\d*)$/,Je=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,Ye=RegExp(`^v?(${Ke})\\.(${Ke})\\.(${Ke})(?:-((?:${Je})(?:\\.(?:${Je}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Xe=/* @__PURE__ */ new Map;function W(e){return typeof e==`string`?U(Xe,e,()=>{let t=Ye.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||!Number.isSafeInteger(i))return null;let a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)&&Number(e)<2**53-1?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,raw:e,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function Ze(e,t){let n=typeof e==`number`||/^\d+$/.test(e),r=typeof t==`number`||/^\d+$/.test(t);if(n&&r){let n=String(e),r=String(t);return n.length-r.length||(n<r?-1:+(n>r))}return n?-1:r?1:e<t?-1:+(e>t)}function Qe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function $e(e,t){let n=Qe(e,t);if(n!==0)return n;let r=e.prerelease.length,i=t.prerelease.length;if(!r||!i)return i-r;for(let n=0;n<r&&n<i;n++){let r=Ze(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return r-i}function et(e){return W(e)?.version??null}const tt=/* @__PURE__ */ new Map,nt=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function rt(e){return typeof e==`string`?U(tt,e,()=>{let t=nt.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function it(e,t){let n=$e(e,t);if(n===0)return null;let 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(Qe(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 at(e,t){let n=W(e),r=W(t);return!!(n&&r&&$e(n,r)>0)}function ot(e){let t=/^v?([^.+-]+(?:\.[^.+-]+){0,2})(-[0-9a-zA-Z.-]+)?(\+[0-9a-zA-Z.-]+)?$/.exec(e);if(!t)return null;let n=[];for(let e of t[1].split(`.`))if(/^[xX*]$/.test(e))n.push(null);else if(n.includes(null)||!qe.test(e)||!Number.isSafeInteger(Number(e)))return null;else n.push(Number(e));for(;n.length<3;)n.push(null);let r=`${t[2]??``}${t[3]??``}`;return r&&(n.includes(null)||!W(`${n.join(`.`)}${r}`))?null:{major:n[0],minor:n[1],patch:n[2],suffix:r}}function st(e,t,n,r,i=``){let a=W(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function ct(...e){return e.every(e=>e!==null)?e:null}function lt(e,t){let n=$e(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return!1}}function ut(e,t,n){return st(`<`,e,t,n,`-0`)}function dt(e,t){if(e.major===null)return t===`>`||t===`<`?ct(ut(0,0,0)):[];let{major:n,suffix:r}=e,i=e.minor??0,a=e.patch??0,[o,s]=e.minor===null?[n+1,0]:[n,i+1];if(t===`^`||t===`~`){let c=st(`>=`,n,i,a,r);return t===`^`&&n!==0?ct(c,ut(n+1,0,0)):t===`^`&&e.patch!==null&&i===0?ct(c,ut(0,0,a+1)):ct(c,ut(o,s,0))}return e.patch===null?!t||t===`=`?ct(st(`>=`,n,i,0),ut(o,s,0)):ct(t===`>`?st(`>=`,o,s,0):t===`<=`?ut(o,s,0):t===`<`?ut(n,i,0):st(`>=`,n,i,0)):ct(st(t||`=`,n,i,a,r))}function ft(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t){let e=ot(t[1]),n=ot(t[2]),r=e&&dt(e,`>=`),i=n&&dt(n,`<=`);return r&&i?[...r,...i]:null}let n=e.replace(/~\s*>\s*/g,`~`).replace(/(>=|<=|>|<|=|~|\^)\s+/g,`$1`),r=[];for(let e of n.split(/\s+/).filter(Boolean)){let t=/^(>=|<=|>|<|=|~|\^)?(.+)$/.exec(e),n=t&&ot(t[2]),i=n?dt(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const pt=/* @__PURE__ */ new Map;function mt(e){return U(pt,e,()=>{let t=e.split(`||`).map(e=>ft(e.trim()));return t.every(e=>e!==null)?t:null})}function ht(e,t){return t.some(t=>!lt(e,t))?!1:!e.prerelease.length||t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch)}function gt(e,t){return!!mt(t)?.some(t=>ht(e,t))}function G(e,t){let n=W(e);return!!(n&&gt(n,t))}function K(e){return typeof e==`string`&&mt(e)?e:null}const _t=`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]+)*))?`,vt=RegExp(`^${_t}$`,`i`),yt=RegExp(_t,`i`),bt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},xt=/* @__PURE__ */ new Map;function q(e){return typeof e==`string`?U(xt,e,()=>{let t=vt.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?[bt[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 St(e){return q(e)??q(yt.exec(e)?.[0]??``)}const Ct=e=>!!e.pre||e.dev!==null;function wt(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 Tt(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?wt(e.local,t.local):a<o?-1:1}function Et(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 Dt(e,t){let n=Tt(e,t);if(n===0)return null;let r=Et(e,t);return Ct(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Ot=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,J={parse:W,parseRange:e=>W(Ot.exec(e)?.[0]??``)??W(rt(e)?.version??``),compare:$e,diff:it,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:gt},kt=/* @__PURE__ */ new Map;function At(e){return U(kt,e,()=>{let t=e.trim().replace(/^v/i,``);return W(t)??W(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`))??(/^\d/.test(t)?W(rt(t)?.version??``):null)})}const jt={...J,parse:At,parseRange:At,isRangePrerelease:e=>!!At(e)?.prerelease.length},Mt={parse:q,parseRange:St,compare:Tt,diff:Dt,isPrerelease:Ct,isRangePrerelease:e=>{let t=St(e);return!!(t&&Ct(t))},satisfiesRange:({release:e},t)=>G(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Nt=/[A-Za-z_$][A-Za-z0-9_$]*/y;function Pt(e){let t=``,n=0,r=e.length;function i(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
1
+ import{cwd as e,env as t,exit as n,pid as r,platform as i,stderr as a,stdin as o}from"node:process";import{parseArgs as s,promisify as c,stripVTControlCharacters as l,styleText as u}from"node:util";import{basename as d,dirname as f,isAbsolute as p,join as m,relative as h,resolve as g,sep as _}from"node:path";import{accessSync as v,existsSync as y,globSync as b,lstatSync as x,readFile as S,readFileSync as C,readdirSync as w,realpathSync as T,statSync as E,truncateSync as D,writeFileSync as O}from"node:fs";import{text as ee}from"node:stream/consumers";import{pathToFileURL as te}from"node:url";import{access as ne,mkdir as k,readFile as re,readdir as ie,realpath as ae,rename as oe,stat as se,unlink as A,utimes as ce,writeFile as j}from"node:fs/promises";import{AsyncLocalStorage as le}from"node:async_hooks";import{Buffer as ue}from"node:buffer";import{setTimeout as de}from"node:timers/promises";import{createHash as M}from"node:crypto";import{homedir as N}from"node:os";import{execFile as fe}from"node:child_process";function pe(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r&&(e.charCodeAt(t)<48||e.charCodeAt(t)>57);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const me=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,he=/^(\s*\()([^)]*)(\)\s*)$/,ge=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,_e=/* @__PURE__ */ new Set([`===`,`==`,`>=`,`~=`]),ve=/^v?\d[0-9a-z.!+_-]*$/i;function ye(e){let t=[];for(let n of e.split(`,`)){let e=ge.exec(n);if(!e)return null;let[r,i,a,o,s,c]=e;t.push({lead:i,op:a,sep:o,version:s,trail:c})}return t}function be(e){let t=e.indexOf(`;`),n=me.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[r,i,a,o,s,c,l]=n,u=he.exec(l);return{name:a,extras:s,specifiers:ye(u?u[2]:l),marker:t===-1?``:e.slice(t),head:`${i}${a}${o}${s}${c}`,open:u?.[1]??``,close:u?.[3]??``}}function xe({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 Se(e){return e.find(({op:e,version:t})=>_e.has(e)&&ve.test(t))}function Ce(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=be(n);if(!e?.specifiers)continue;let r=Se(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const we=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],Te=[`node`,`deno`,`bun`],P=[`.github`,`.gitea`,`.forgejo`],Ee={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},De=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`,`build-system.requires`,`tool.uv.dev-dependencies`],Oe=[`deps`,`indirect`,`replace`,`tool`],ke=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Ae=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function je(e,t){let n=[],r=(e,t,i,a,o)=>{if(t===e.length){a!==void 0&&n.push([o?JSON.stringify(i):i.join(`.`),a]);return}if(!a||typeof a!=`object`)return;let s=e[t],c=s===`*`?Array.isArray(a)?[]:Object.keys(a):[s];for(let n of c)r(e,t+1,[...i,n],a[n],o)};for(let n of e)r(n.split(`.`),0,[],t,n.startsWith(`target.*.`));return n}function Me(e,t){if(typeof t==`boolean`)return t;for(let n of t)if(n.test(e))return!0;return!1}function Ne(e){return e.split(`,`).filter(Boolean)}function Pe(){let e=/* @__PURE__ */ new Date;return(/* @__PURE__ */ new Date(e.getTime()-e.getTimezoneOffset()*6e4)).toISOString().replace(`T`,` `).slice(0,-1)}function Fe(e,t){let n=Array(e[0].length).fill(0),r=Array(e.length);for(let i=0;i<e.length;i++){let a=e[i],o=Array(a.length);for(let e=0;e<a.length;e++){let r=t(a[e]);o[e]=r,r>n[e]&&(n[e]=r)}r[i]=o}let i=``;for(let t=0;t<e.length;t++){let a=e[t],o=a.length-1;for(let e=0;e<=o;e++)if(e>0&&(i+=` `),i+=a[e],e!==o){let a=n[e]-r[t][e];a>0&&(i+=` `.repeat(a))}t<e.length-1&&(i+=`
2
+ `)}return i}const Ie={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Le(e){let[t,n,r]=/^(\d+(?:\.\d+)?)(?:\s*([a-z]))?$/i.exec(e)??[],i=r?Ie[r.toLowerCase()]:1;if(!n||!i)throw Error(`Invalid cooldown value: ${e}`);return Number(n)*i}function Re(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 I(e){try{return await e}catch{return null}}const L=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function ze(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(L).join(`|`)}var R=class extends RegExp{#e;constructor(e,t,n){super(e,n),this.#e=t}test(e){return this.#e(e)}};function Be(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++)e[i]===`(`||e[i]===`{`?n++:e[i]===`)`||e[i]===`}`?n--:(e[i]===`|`||e[i]===`,`)&&n===0&&(t.push(e.slice(r,i)),r=i+1);return t.push(e.slice(r)),t}function Ve(e,t,n,r){let i=0;for(let a=t;a<e.length;a++)if(e[a]===n)i++;else if(e[a]===r&&--i===0)return a;return-1}function He(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Be(e);let n=/^-?\d+$/.test(t[1])&&/^-?\d+$/.test(t[2]),r=n?Number(t[1]):t[1].codePointAt(0),i=n?Number(t[2]):t[2].codePointAt(0),a=Math.abs(Number(t[3])||1)*(r<=i?1:-1),o=[];for(;(a>0?r<=i:r>=i)&&o.length<1e3;)o.push(n?String(r):String.fromCodePoint(r)),r+=a;return o}function Ue(e){let t=``,n=[],r=e=>{t+=e,n.push({kind:`char`,matcher:RegExp(`^(?:${e})$`,`i`)})};for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length)r(L(e[++i]));else if(a===`*`&&e[i+1]!==`(`){let r=e[i+1]===`*`;for(;e[i+1]===`*`;)i++;r&&e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else if(a===`?`&&e[i+1]!==`(`)r(`[^/]`);else if(a===`[`){let t=e.indexOf(`]`,i+1);if(t===-1)r(`\\[`);else{let n=e.slice(i+1,t);n.startsWith(`!`)&&(n=`^${n.slice(1)}`),r(`[${n.replaceAll(`\\`,`\\\\`)}]`),i=t}}else if(a===`{`||`@+?*!`.includes(a)&&e[i+1]===`(`){let o=a===`{`,s=o?i:i+1,c=Ve(e,s,e[s],o?`}`:`)`);if(c===-1)r(L(a));else{let r=e.slice(s+1,c),l=(o?He(r):Be(r)).map(Ue),u=l.map(e=>e.source).join(`|`);t+=a===`!`?`(?!(?:${u})(?:/|$))[^/]*`:`(?:${u})${o||a===`@`?``:a}`;let d=l.map(e=>e.tokens);n.push(a===`!`?{kind:`negative`,alternatives:d}:{kind:`alternatives`,alternatives:d,minimum:a===`?`||a===`*`?0:1,repeat:a===`+`||a===`*`}),i=c}}else r(L(a))}return{source:t,tokens:n}}function z(e,t){let n=/* @__PURE__ */ new WeakMap,r=(e,n,r)=>{if(!e.has(n))for(let i=n;e.add(i),!(i===t.length||!r&&t[i]===`/`);i++);},i=(e,a)=>{let o=V(n,e,()=>/* @__PURE__ */ new Map),s=o.get(a);if(s)return s;let c=/* @__PURE__ */ new Set([a]);o.set(a,c);for(let n of e){let e=/* @__PURE__ */ new Set;for(let a of c)if(n.kind===`char`)a<t.length&&n.matcher.test(t[a])&&e.add(a+1);else if(n.kind===`span`)r(e,a,n.slash);else if(n.kind===`globstarSlash`){e.add(a);for(let n=a;n<t.length;n++)t[n]===`/`&&e.add(n+1)}else if(n.kind===`negative`)n.alternatives.some(e=>[...i(e,a)].some(e=>e===t.length||t[e]===`/`))||r(e,a,!1);else{n.minimum===0&&e.add(a);for(let t of n.alternatives)for(let n of i(t,a))e.add(n);if(n.repeat)for(let t of e)for(let r of n.alternatives)for(let n of i(r,t))e.add(n)}if(c=e,!c.size)break}return o.set(a,c),c};return i(e,0).has(t.length)}function We(e){if(e instanceof RegExp)return/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e;let t=/^(!?)\/(.*)\/(i?)$/.exec(e);if(t)try{let n=new RegExp(t[2],t[3]);return t[1]?new R(e,e=>!n.test(e)):n}catch{}let n=0;for(;e[n]===`!`&&e[n+1]!==`(`;)n++;let r=n%2==1,{source:i,tokens:a}=Ue(e.slice(n));return new R(`^${i}$`,e=>r!==z(a,e),`i`)}async function Ge(e,t){for(let n=e;;n=f(n)){let e=await t(n);if(e)return e;if(f(n)===n)return null}}function Ke(e,t){for(let n=e;;n=f(n)){let e=t(n);if(e)return e;if(f(n)===n)return null}}function B(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function V(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 qe(e){let t=/* @__PURE__ */ new Map;return n=>V(t,n,()=>e(n))}const H=`0|[1-9]\\d*`,Je=/^(?:0|[1-9]\d*)$/,Ye=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,Xe=RegExp(`^v?(${H})\\.(${H})\\.(${H})(?:-((?:${Ye})(?:\\.(?:${Ye}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Ze=/* @__PURE__ */ new Map;function U(e){return typeof e==`string`?V(Ze,e,()=>{let t=Xe.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||!Number.isSafeInteger(i))return null;let a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)&&Number(e)<2**53-1?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,raw:e,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function Qe(e,t){let n=typeof e==`number`||/^\d+$/.test(e),r=typeof t==`number`||/^\d+$/.test(t);if(n&&r){let n=String(e),r=String(t);return n.length-r.length||(n<r?-1:+(n>r))}return n?-1:r?1:e<t?-1:+(e>t)}function $e(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function et(e,t){let n=$e(e,t);if(n!==0)return n;let r=e.prerelease.length,i=t.prerelease.length;if(!r||!i)return i-r;for(let n=0;n<r&&n<i;n++){let r=Qe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return r-i}function tt(e){return U(e)?.version??null}const nt=/* @__PURE__ */ new Map,rt=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function it(e){return typeof e==`string`?V(nt,e,()=>{let t=rt.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function at(e,t){let n=et(e,t);if(n===0)return null;let 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($e(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 ot(e,t){let n=U(e),r=U(t);return!!(n&&r&&et(n,r)>0)}function st(e){let t=/^v?([^.+-]+(?:\.[^.+-]+){0,2})(-[0-9a-zA-Z.-]+)?(\+[0-9a-zA-Z.-]+)?$/.exec(e);if(!t)return null;let n=[];for(let e of t[1].split(`.`))if(/^[xX*]$/.test(e))n.push(null);else if(n.includes(null)||!Je.test(e)||!Number.isSafeInteger(Number(e)))return null;else n.push(Number(e));for(;n.length<3;)n.push(null);let r=`${t[2]??``}${t[3]??``}`;return r&&(n.includes(null)||!U(`${n.join(`.`)}${r}`))?null:{major:n[0],minor:n[1],patch:n[2],suffix:r}}function ct(e,t,n,r,i=``){let a=U(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function lt(...e){return e.every(e=>e!==null)?e:null}function ut(e,t){let n=et(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!1}}function dt(e,t,n){return ct(`<`,e,t,n,`-0`)}function ft(e,t){if(e.major===null)return t===`>`||t===`<`?lt(dt(0,0,0)):[];let{major:n,suffix:r}=e,i=e.minor??0,a=e.patch??0,[o,s]=e.minor===null?[n+1,0]:[n,i+1];if(t===`^`||t===`~`){let c=ct(`>=`,n,i,a,r);return t===`^`&&n!==0?lt(c,dt(n+1,0,0)):t===`^`&&e.patch!==null&&i===0?lt(c,dt(0,0,a+1)):lt(c,dt(o,s,0))}return e.patch===null?!t||t===`=`?lt(ct(`>=`,n,i,0),dt(o,s,0)):lt(t===`>`?ct(`>=`,o,s,0):t===`<=`?dt(o,s,0):t===`<`?dt(n,i,0):ct(`>=`,n,i,0)):lt(ct(t||`=`,n,i,a,r))}function pt(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t){let e=st(t[1]),n=st(t[2]),r=e&&ft(e,`>=`),i=n&&ft(n,`<=`);return r&&i?[...r,...i]:null}let n=e.replace(/~\s*>\s*/g,`~`).replace(/(>=|<=|>|<|=|~|\^)\s+/g,`$1`),r=[];for(let e of n.split(/\s+/).filter(Boolean)){let t=/^(>=|<=|>|<|=|~|\^)?(.+)$/.exec(e),n=t&&st(t[2]),i=n?ft(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const mt=/* @__PURE__ */ new Map;function ht(e){return V(mt,e,()=>{let t=e.split(`||`).map(e=>pt(e.trim()));return t.every(e=>e!==null)?t:null})}function gt(e,t){return t.some(t=>!ut(e,t))?!1:!e.prerelease.length||t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch)}function _t(e,t){return!!ht(t)?.some(t=>gt(e,t))}function W(e,t){let n=U(e);return!!(n&&_t(n,t))}function G(e){return typeof e==`string`&&ht(e)?e:null}const vt=`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]+)*))?`,yt=RegExp(`^${vt}$`,`i`),bt=RegExp(vt,`i`),xt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},St=/* @__PURE__ */ new Map;function K(e){return typeof e==`string`?V(St,e,()=>{let t=yt.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?[xt[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 Ct(e){return K(e)??K(bt.exec(e)?.[0]??``)}const wt=e=>!!e.pre||e.dev!==null;function Tt(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 Et(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?Tt(e.local,t.local):a<o?-1:1}function Dt(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 Ot(e,t){let n=Et(e,t);if(n===0)return null;let r=Dt(e,t);return wt(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const kt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,q={parse:U,parseRange:e=>U(kt.exec(e)?.[0]??``)??U(it(e)?.version??``),compare:et,diff:at,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:_t},At=/* @__PURE__ */ new Map;function jt(e){return V(At,e,()=>{let t=e.trim().replace(/^v/i,``);return U(t)??U(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`))??(/^\d/.test(t)?U(it(t)?.version??``):null)})}const Mt={...q,parse:jt,parseRange:jt,isRangePrerelease:e=>!!jt(e)?.prerelease.length},Nt={parse:K,parseRange:Ct,compare:Et,diff:Ot,isPrerelease:wt,isRangePrerelease:e=>{let t=Ct(e);return!!(t&&wt(t))},satisfiesRange:({release:e},t)=>W(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Pt=/[A-Za-z_$][A-Za-z0-9_$]*/y;function Ft(e){let t=``,n=0,r=e.length;function i(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
3
3
  `&&e[t]!==`\r`;)t++;return t}let n=e.indexOf(`*/`,t+2);if(n===-1)throw SyntaxError(`Unterminated block comment`);return n+2}function a(t){for(;t<r;)if(/\s/.test(e[t]))t++;else if(e[t]===`/`&&(e[t+1]===`/`||e[t+1]===`*`))t=i(t);else break;return t}for(;n<r;){let o=e[n];if(o===`"`){let i=n++;for(;n<r;){let t=e[n++];if(t===`\\`)n++;else if(t===`"`)break}t+=e.slice(i,n);continue}if(o===`'`){for(t+=`"`,n++;n<r;){let r=e[n];if(r===`\\`)e[n+1]===`'`?t+=`'`:e[n+1]!==`
4
- `&&(t+=e.slice(n,n+2)),n+=2;else{if(n++,r===`'`){t+=`"`;break}t+=r===`"`?`\\"`:r}}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];r!==`}`&&r!==`]`&&(t+=o),n++;continue}Nt.lastIndex=n;let s=Nt.exec(e);s?(n=Nt.lastIndex,t+=e[a(n)]===`:`?`"${s[0]}"`:s[0]):(t+=o,n++)}return JSON.parse(t.trim())}function Ft(e){return new Promise((t,n)=>{S(e,`utf8`,(e,r)=>e?n(e):t(r))})}const It=m(i===`win32`?t.LOCALAPPDATA||m(P(),`AppData`,`Local`):t.XDG_CACHE_HOME||m(P(),`.cache`),`updates`),Lt=/* @__PURE__ */ new Map,Rt=(e,t)=>m(t,`${N(`sha256`).update(e).digest(`hex`)}.cache`),zt=6048e5;async function Bt(e,t=It){try{let n=Rt(e,t);if(Date.now()-(await oe(n)).mtimeMs>zt)return await j(n),null;let r=await Ft(n),i=r.indexOf(`
5
- `),a=r.substring(0,i),o=r.substring(i+1);if(!a||!o)return null;let s=/* @__PURE__ */ new Date;return await R(se(n,s,s)),{etag:a,body:o}}catch{return null}}const Vt=/* @__PURE__ */ new Set;let Ht=0;function Ut(e,t,n,i=It){let a=(async()=>{let a;try{await U(Lt,i,()=>k(i,{recursive:!0}));let o=Rt(e,i);a=`${o}.${r}-${Ht++}.tmp`,await M(a,`${t}\n${n}`),await ae(a,o)}catch{a?await R(j(a)):Lt.delete(i)}})();Vt.add(a),(async()=>{await a,Vt.delete(a)})()}async function Wt(e=It,t=4096){for(;Vt.size;)await Promise.all(Vt);try{let n=(await ie(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=m(e,t);try{return{path:n,mtime:(await oe(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-zt;await Promise.all(r.filter((e,n)=>n>=t||e.mtime<i).map(e=>R(j(e.path))))}catch{}}const Gt=/* @__PURE__ */ new Map;function Kt(){let e=t.XDG_CONFIG_HOME||(i===`win32`?t.APPDATA||m(P(),`AppData`,`Roaming`):m(P(),`.config`));return m(e,`updates`,`tokens.json`)}async function qt(e){let t;try{t=await re(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return{};throw e}try{return JSON.parse(t)}catch(t){throw Error(`Could not parse ${e}: ${t.message}`)}}function Jt(){let e=Kt();return U(Gt,e,()=>qt(e))}async function Yt(e){let t=Kt();await k(f(t),{recursive:!0,mode:448}),await M(`${t}.tmp`,`${JSON.stringify(e,null,2)}\n`,{mode:384}),await ae(`${t}.tmp`,t),Gt.set(t,Promise.resolve(e))}async function Xt(e,t){await Yt({...await Jt(),[e]:t})}async function Zt(e){let t={...await Jt()};return Object.hasOwn(t,e)?(delete t[e],await Yt(t),!0):!1}var Qt=`19.2.2`;function Y(e,t,n){return!t||!n||(n-Date.parse(e||``))/864e5>=t}const $t=Qt,en=`https://api.github.com`,X={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:en,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},Z=e=>e[0]===`v`?e.substring(1):e,tn=e=>e.endsWith(`/`)?e.slice(0,-1):e;function nn(e,t){return{headers:{"user-agent":`updates/${$t}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const rn=/* @__PURE__ */ new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function an(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&rn.has(t)}const on=e=>e.replace(/([a-z][a-z\d+.-]*:\/\/)[^/?#\s]*@/gi,`$1`);async function sn(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=an(t),n}}async function cn(e,t,n={}){let r=_n(e);for(let i=0;;i++)try{let a=await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})),o=a?.headers?.get?.(`retry-after`)?.trim()??``,s=/^\d+$/.test(o)?Number(o)*1e3:Math.max(Date.parse(o)-Date.now(),0),c=Number.isNaN(s)?null:s,l=e.fetchTimeout,u=a.status>=500&&a.status<600?c!==null&&c<=l?c:0:(a.status===429||a.status===403&&c!==null)&&(c===null||c<=l)?c??0:null;if(u===null||i>=2)return a;a.body&&await a.body.cancel(),u&&await ue(u)}catch(e){if(i>=2||!e?.transient)throw e}}const ln=e=>t=>JSON.stringify(e(JSON.parse(t))),un=/* @__PURE__ */ new WeakMap;function dn(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()),n.body??null,r?.toString()]),s=U(un,t,()=>/* @__PURE__ */ new Map);return U(s,o,async()=>{try{let o=t.noCache?null:await Bt(i);if(a&&o)return{body:o.body};let s=o?{...n.headers,"if-none-match":o.etag}:n.headers,c=await cn(t,e,{...n,headers:s});if(c.status===304&&o)return{body:o.body,res:c};if(!c.ok)return{res:c};let l=await c.text();if(r&&l.length>=16384)try{l=r(l)}catch{}let u=a?`immutable`:c.headers.get(`etag`);return u&&!t.noCache&&Ut(i,u,l),{body:l,res:c}}finally{s.delete(o)}})}function fn(e,t,n={},r,i=e){return dn(e,t,n,r,i,!1)}function pn(e,t,n={},r,i=e){return dn(e,t,n,r,i,!0)}async function Q(e,t,n,r,i=!0){let a=U(e,t,()=>/* @__PURE__ */ new Map),o=a.get(n);if(o)return o;let s=r();a.set(n,s);try{let e=await s;return i||a.delete(n),e}catch(e){throw a.delete(n),e}}const mn=new ce,hn=e=>Math.max(e.concurrency||50,1),gn=/* @__PURE__ */ new WeakMap;function _n(e){return U(gn,e,()=>{let t=hn(e),n=0,r=0,i=[];return async e=>{if(mn.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await mn.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function vn(e,t=J){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const yn=/* @__PURE__ */ new WeakMap,bn=/* @__PURE__ */ new WeakMap;function xn(e,t,n,r,i=J){let a=t||i.isRangePrerelease(e);return{effectiveSemvers:a?U(t?yn:bn,r,()=>{let e=new Set(r).add(`prerelease`);if(t)for(let t of r)e.add(`pre${t}`);return e}):r,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function Sn(e){return rt(e)?.version??``}function Cn(e,t,{range:n,semvers:r,useGreatest:i,usePre:a,useRel:o,latest:s,pinnedRange:c,pinNoDowngrade:l,allowDowngrade:u,cooldownDays:d,now:f,getVersionDate:p,versioning:m=J}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=xn(n,a,o,r,m),v=s?m.parse(s):null,y=i||a&&!o||v&&c&&!m.satisfiesRange(v,c)?null:v,b=!!(y&&m.compare(h,y)>0),x=!!c&&!l&&!m.satisfiesRange(h,c),S=!!u&&(!!y||m.isPrerelease(h)),C=e?.time,w=!!(d&&f),T=null;for(let e of t){let t=m.parse(e);if(!t||_(t)||T&&m.compare(t,T)<=0)continue;let n=m.compare(t,h)<=0;if(n&&!x&&!S||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||w&&!Y(p?p(e):C?.[e],d,f))continue;let r=m.diff(h,t),i=r&&!m.isPrerelease(t)?r.replace(/^pre/,``):r;i&&g.has(i)&&(T=t)}return T?.raw??T?.version??null}function wn(e){return/\d{14}-[0-9a-f]{12}(?:\+incompatible)?$/.test(e)}function Tn({pinnedRange:e,pinNoDowngrade:t},n){let r=Sn(n);return!(!e||t||!r||G(r,e))}const En=/* @__PURE__ */ new Map;function Dn({range:e,usePre:t,useRel:n,semvers:r,pinnedRange:i,pinNoDowngrade:a,allowDowngrade:o},s=e){let c=JSON.stringify([e,s,[...r].sort(),t,n,i||``,a,o]);return U(En,c,()=>{let c=J.parse(Sn(e));if(!c)return()=>!1;let{effectiveSemvers:l,skipsPrerelease:u}=xn(e,t,n,r),d=J.parse(s),f=d||J.parseRange(s),p=!!o||Tn({pinnedRange:i,pinNoDowngrade:a},s);return e=>{let t=J.parse(Sn(e)),n=J.parse(e),r=wn(e);if(!t||!r&&u(n))return!1;let a=(d&&n?J.diff(d,n):null)??J.diff(c,t),o=r?a===`prerelease`?`patch`:a?.replace(/^pre/,``):a;return!o||!l.has(o)||!p&&n&&f&&J.compare(n,f)<0?!1:!i||G(t.version,i)}})}function On(e){return e.reduce((e,t)=>{let n=t?.upload_time_iso_8601,r=t&&!t.yanked&&typeof n==`string`?Date.parse(n):NaN;return r<e.time?{date:n,time:r}:e},{time:1/0}).date}function kn(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d,acceptsGoVersion:f}){if(n===`*`)return null;let p=t===`pypi`?Mt:J,m=n.includes(`||`)?n.split(`||`).pop().trim():n,h=[],g=``,_;if(t===`pypi`){let t=e?.releases;if(!t)return null;h=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(e=>e&&!e.yanked)),_=e=>On(t[e]),g=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(h=Object.keys(e.versions),g=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[Sn(m)]?.deprecated){let t=h.filter(t=>!e.versions[t]?.deprecated);h=t.length?t:h}}else if(t===`go`){let t=f||Dn({range:m,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d},e.old||m);return t(e.new)&&Y(e.Time,l,u)?e.new:t(e.sameMajorNew)&&Y(e.sameMajorTime,l,u)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return Cn(e,h,{range:m,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:g,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:_,versioning:p})}function An(e){try{return new URL(e).host}catch{return``}}let jn;function Mn(){return jn??=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})()}const Nn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`],Pn=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function Fn(e){let t=/* @__PURE__ */ new Map;for(let n of e.split(/\r?\n/)){let e=Pn.exec(n);if(!e)continue;let r=An(e[1]),i=le.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let In;function Ln(){return In??=(async()=>{try{let{stdout:e}=await(await Mn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return Fn(e)}catch{return/* @__PURE__ */ new Map}})()}const Rn=/* @__PURE__ */ new Map,zn=/* @__PURE__ */ new Set;function Bn(e){return e===`api.github.com`?`github.com`:e}async function Vn(e,n){if(!e)return[];let r=je(t.UPDATES_FORGE_TOKENS??``).find(t=>t.lastIndexOf(`:`)===e.length&&t.startsWith(e))?.slice(e.length+1);if(r)return[r];let i=Bn(e),a=(await Jt())[i],o=i===`github.com`||e===An(n)?Nn.map(e=>t[e]):[],s=(await Ln()).get(i);return Array.from(new Set([a,...o,s].filter(Boolean)))}async function Hn(e,t,n=en){let r=await sn(e===`github.com`?`${n}/user`:`https://${e}/api/v1/user`,{...nn(`Bearer`,t),signal:AbortSignal.timeout(5e3)});if(r.status===401)throw Error(`token for ${e} was rejected`);if(!r.ok)throw Error(`token verification for ${e} failed with status ${r.status}`);return(await r.json()).login}var Un=class extends Error{name=`ForgeError`;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),Object.assign(this,{kind:e,host:t,status:r,reset:i})}};async function Wn(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 Gn(e,t,n,r){if(e.status>=500)throw new Un(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Wn(e);if(i===null)return e;throw new Un(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS or run "updates --login ${Bn(n)}"`}${i?`, resets at ${(/* @__PURE__ */ new Date(i*1e3)).toISOString()}`:``}`,{status:e.status,reset:i})}async function Kn(e,t,n){let r=An(e),i=(await Vn(r,t.forgeApiUrl)).filter(e=>!zn.has(e)),a=async a=>{let o=nn(`Bearer`,a);return o.headers={...o.headers,...n},Gn(await cn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=Rn.get(r);for(let t of e&&i.includes(e)?[e,...i.filter(t=>t!==e)]:i){let n=await a(t);if(n.status!==401&&n.status!==403)return Rn.set(r,t),n;if(n.status===401&&!zn.has(t)){zn.add(t);let e=Bn(r);(await Jt())[e]===t&&console.error(`stored token for ${e} was rejected, run "updates --login ${e}" to replace it`)}t===e&&Rn.delete(r)}return await a()}catch(e){throw e instanceof Un?e:new Un(`network`,r,e?.message??String(e),{cause:e})}}function qn(e,t){let n=J.parse(Z(t));if(!n)return null;let r=``;for(let t of e){let e=J.parse(Z(t));e&&J.compare(e,n)>0&&(r=t,n=e)}return r||null}function Jn(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,`https://$1.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Yn=/^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$/i,Xn=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function Zn(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Qn(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function $n(e,t){let n=t?`cached Forge`:`Forge`;if(!Array.isArray(e))throw TypeError(`Invalid ${n} tags response`);return e.map(e=>{let r=t?typeof e?.commitSha==`string`&&(e.isStable===void 0||typeof e.isStable==`boolean`):e?.commit?.sha===void 0||typeof e.commit.sha==`string`;if(typeof e?.name!=`string`||!r)throw TypeError(`Invalid ${n} tag entry`);return t?e:{name:e.name,commitSha:e.commit?.sha||``}})}const er=/* @__PURE__ */ new WeakMap;function tr(e,t,n,r){let i=`${n}${e}`;return Q(er,t,i,async()=>{let n=t.noCache?null:await Bt(e),a=await Kn(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return er.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&Ut(e,s,o),o})}function nr(e,t=!1){if(!Array.isArray(e))throw TypeError(`Invalid ${t?`cached `:``}Forge releases response`);return e.map(e=>{let n=t?e?.name:e?.tag_name,r=t?e?.isStable:!e?.prerelease&&e?.draft!==!0,i=t?e?.releaseTimestamp:e?.published_at;if(typeof n!=`string`||(t?typeof r!=`boolean`:typeof e?.prerelease!=`boolean`||e.draft!==void 0&&typeof e.draft!=`boolean`))throw TypeError(`Invalid ${t?`cached `:``}Forge release entry`);return{name:n,isStable:r,...i&&{releaseTimestamp:i}}})}async function rr(e,t,n,r){let i=await tr(e,t,n,async e=>JSON.stringify({link:e.headers.get(`link`)||``,total:Number(e.headers.get(`x-total-count`))||0,[n]:r(await e.json(),!1)}));if(!i)return null;let a=JSON.parse(i);if(typeof a?.link!=`string`)throw TypeError(`Invalid cached Forge ${n} response`);return{entries:r(a[n],!0),link:a.link,total:Number(a.total)||0}}function ir(e){let t=/<([^>]+)>;\s*rel="last"/.exec(e);if(!t)return 0;let n=Number(new URL(t[1]).searchParams.get(`page`));if(!Number.isSafeInteger(n)||n<1)throw TypeError(`Invalid Forge pagination URL`);return Math.min(n,100)}async function ar(e,t,n,r,i){let a=await rr(e(1),t,n,r);if(!a)return;let o=a.total>0?Math.min(Math.ceil(a.total/(a.entries.length||1)),100):ir(a.link),s=hn(t);for(let c=2,l=1,u=i(a.entries);c<=o&&!u;c+=l,l=Math.min(l*2,s)){let a=await Promise.all(Array.from({length:Math.min(l,o-c+1)},(i,a)=>rr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function or(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await ar(r=>`${e}/repos/${t}/${n}/tags?${e.endsWith(`/api/v1`)?`limit`:`per_page`}=100&page=${r}`,r,`tags`,$n,e=>{for(let t of e){for(let e of o)(e===t.name||t.commitSha.startsWith(e))&&o.delete(e);a.push(t)}return s&&!o.size}),a}async function sr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return or(e,t,n,r,i);let o=/* @__PURE__ */ new Map,[s,c]=await Promise.allSettled([or(e,t,n,r,i),ar(e=>`${en}/repos/${t}/${n}/releases?per_page=100&page=${e}`,r,`releases`,nr,e=>{for(let t of e)o.set(t.name,t);return!1})]);if(s.status===`rejected`)throw s.reason;if(c.status===`rejected`&&!(c.reason instanceof Un))throw c.reason;if(c.status===`fulfilled`)for(let e of s.value){let t=o.get(e.name);t&&(e.isStable=t.isStable,t.releaseTimestamp&&(e.releaseTimestamp=t.releaseTimestamp))}return s.value}function $(e,t,n,r){throw Error(e?.status&&e.statusText?`Received ${e.status} ${e.statusText} from ${t}`:`Unable to fetch ${n} from ${r}`)}function cr(e,t,n=``){let r=Z(e),i=Z(t).split(`.`).length,a=i>=3?r:Array.from({length:i},(e,t)=>r.split(`.`)[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${a}${n}`}function lr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const ur=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function dr({repository:e,homepage:t,info:n},r,i){if(r===`https://npm.pkg.github.com`)return`https://github.com/${i.replace(/^@/,``)}`;if(n){let t=ur.find(e=>n.project_urls?.[e]);e=t?n.project_urls[t]:e??`https://pypi.org/project/${i}/`}if(!e)return t||``;let a=Jn(typeof e==`string`?e:e.url);return a&&typeof e!=`string`&&e.directory?`${a}/${lr(a)}/${e.directory}`:a||t||``}const fr=/^\[\[([^\]]+)\]\]$/,pr=/^\[([^[\]]+)\]$/,mr=()=>Object.create(null);function hr(e){let t=mr(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=xr(r[e]).trim();if(!i)continue;let a=fr.exec(i);if(a){let e=t,r=br(a[1]),i=r.pop();for(let t of r){let n=e[t],r=Array.isArray(n)?n.at(-1):void 0;e=typeof r==`object`&&!Array.isArray(r)?r:Cr(e,[t])}Array.isArray(e[i])||(e[i]=[]),n=mr(),e[i].push(n);continue}let o=pr.exec(i);if(o){n=Cr(t,br(o[1]));continue}let s=Sr(i,`=`);if(s<0)continue;let c=i.slice(s+1).trim(),l=br(i.slice(0,s)),u=l.pop(),d=Cr(n,l),f=c.startsWith(`"""`)&&!c.includes(`"""`,3)?`"""`:c.startsWith(`'''`)&&!c.includes(`'''`,3)?`'''`:``,p={depth:0,inStr:null};if((c.startsWith(`[`)||c.startsWith(`{`))&&!vr(c,p)){let t=[c];for(e++;e<r.length;e++){let n=xr(r[e]);if(t.push(n),vr(n,p))break}d[u]=gr(t.join(`
4
+ `&&(t+=e.slice(n,n+2)),n+=2;else{if(n++,r===`'`){t+=`"`;break}t+=r===`"`?`\\"`:r}}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];r!==`}`&&r!==`]`&&(t+=o),n++;continue}Pt.lastIndex=n;let s=Pt.exec(e);s?(n=Pt.lastIndex,t+=e[a(n)]===`:`?`"${s[0]}"`:s[0]):(t+=o,n++)}return JSON.parse(t.trim())}function It(e){return new Promise((t,n)=>{S(e,`utf8`,(e,r)=>e?n(e):t(r))})}const Lt=m(i===`win32`?t.LOCALAPPDATA||m(N(),`AppData`,`Local`):t.XDG_CACHE_HOME||m(N(),`.cache`),`updates`),Rt=/* @__PURE__ */ new Map,zt=(e,t)=>m(t,`${M(`sha256`).update(e).digest(`hex`)}.cache`),Bt=6048e5;async function Vt(e,t=Lt){try{let n=zt(e,t);if(Date.now()-(await se(n)).mtimeMs>Bt)return await A(n),null;let r=await It(n),i=r.indexOf(`
5
+ `),a=r.substring(0,i),o=r.substring(i+1);if(!a||!o)return null;let s=/* @__PURE__ */ new Date;return await I(ce(n,s,s)),{etag:a,body:o}}catch{return null}}const Ht=/* @__PURE__ */ new Set;let Ut=0;function Wt(e,t,n,i=Lt){let a=(async()=>{let a;try{await V(Rt,i,()=>k(i,{recursive:!0}));let o=zt(e,i);a=`${o}.${r}-${Ut++}.tmp`,await j(a,`${t}\n${n}`),await oe(a,o)}catch{a?await I(A(a)):Rt.delete(i)}})();Ht.add(a),(async()=>{await a,Ht.delete(a)})()}async function Gt(e=Lt,t=4096){for(;Ht.size;)await Promise.all(Ht);try{let n=(await ie(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=m(e,t);try{return{path:n,mtime:(await se(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-Bt;await Promise.all(r.filter((e,n)=>n>=t||e.mtime<i).map(e=>I(A(e.path))))}catch{}}const Kt=/* @__PURE__ */ new Map;function qt(){let e=t.XDG_CONFIG_HOME||(i===`win32`?t.APPDATA||m(N(),`AppData`,`Roaming`):m(N(),`.config`));return m(e,`updates`,`tokens.json`)}async function Jt(e){let t;try{t=await re(e,`utf8`)}catch(e){if(e.code===`ENOENT`)return{};throw e}try{return JSON.parse(t)}catch(t){throw Error(`Could not parse ${e}: ${t.message}`)}}function Yt(){let e=qt();return V(Kt,e,()=>Jt(e))}async function Xt(e){let t=qt();await k(f(t),{recursive:!0,mode:448}),await j(`${t}.tmp`,`${JSON.stringify(e,null,2)}\n`,{mode:384}),await oe(`${t}.tmp`,t),Kt.set(t,Promise.resolve(e))}async function Zt(e,t){await Xt({...await Yt(),[e]:t})}async function Qt(e){let t={...await Yt()};return Object.hasOwn(t,e)?(delete t[e],await Xt(t),!0):!1}var $t=`19.4.0`;function J(e,t,n){return!t||!n||(n-Date.parse(e||``))/864e5>=t}const en=$t,tn=`https://api.github.com`,Y={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:tn,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,nn=e=>e.endsWith(`/`)?e.slice(0,-1):e;function rn(e,t){return{headers:{"user-agent":`updates/${en}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const an=/* @__PURE__ */ new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function on(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&an.has(t)}const sn=e=>e.replace(/([a-z][a-z\d+.-]*:\/\/)[^/?#\s]*@/gi,`$1`);async function cn(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=on(t),n}}async function ln(e,t,n={}){let r=vn(e);for(let i=0;;i++)try{let a=await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})),o=a?.headers?.get?.(`retry-after`)?.trim()??``,s=/^\d+$/.test(o)?Number(o)*1e3:Math.max(Date.parse(o)-Date.now(),0),c=Number.isNaN(s)?null:s,l=e.fetchTimeout,u=a.status>=500&&a.status<600?c!==null&&c<=l?c:0:(a.status===429||a.status===403&&c!==null)&&(c===null||c<=l)?c??0:null;if(u===null||i>=2)return a;a.body&&await a.body.cancel(),u&&await de(u)}catch(e){if(i>=2||!e?.transient)throw e}}const un=e=>t=>JSON.stringify(e(JSON.parse(t))),dn=/* @__PURE__ */ new WeakMap;function fn(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()),n.body??null,r?.toString()]),s=V(dn,t,()=>/* @__PURE__ */ new Map);return V(s,o,async()=>{try{let o=t.noCache?null:await Vt(i);if(a&&o)return{body:o.body};let s=o?{...n.headers,"if-none-match":o.etag}:n.headers,c=await ln(t,e,{...n,headers:s});if(c.status===304&&o)return{body:o.body,res:c};if(!c.ok)return{res:c};let l=await c.text();if(r&&l.length>=16384)try{l=r(l)}catch{}let u=a?`immutable`:c.headers.get(`etag`);return u&&!t.noCache&&Wt(i,u,l),{body:l,res:c}}finally{s.delete(o)}})}function pn(e,t,n={},r,i=e){return fn(e,t,n,r,i,!1)}function mn(e,t,n={},r,i=e){return fn(e,t,n,r,i,!0)}async function Z(e,t,n,r,i=!0){let a=V(e,t,()=>/* @__PURE__ */ new Map),o=a.get(n);if(o)return o;let s=r();a.set(n,s);try{let e=await s;return i||a.delete(n),e}catch(e){throw a.delete(n),e}}const hn=new le,gn=e=>Math.max(e.concurrency||50,1),_n=/* @__PURE__ */ new WeakMap;function vn(e){return V(_n,e,()=>{let t=gn(e),n=0,r=0,i=[];return async e=>{if(hn.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await hn.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function yn(e,t=q){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const bn=/* @__PURE__ */ new WeakMap,xn=/* @__PURE__ */ new WeakMap;function Sn(e,t,n,r,i=q){let a=t||i.isRangePrerelease(e);return{effectiveSemvers:a?V(t?bn:xn,r,()=>{let e=new Set(r).add(`prerelease`);if(t)for(let t of r)e.add(`pre${t}`);return e}):r,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function Q(e){return it(e)?.version??``}function Cn(e,t,{range:n,semvers:r,useGreatest:i,usePre:a,useRel:o,latest:s,pinnedRange:c,pinNoDowngrade:l,allowDowngrade:u,cooldownDays:d,now:f,getVersionDate:p,versioning:m=q}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=Sn(n,a,o,r,m),v=s?m.parse(s):null,y=i||a&&!o||v&&c&&!m.satisfiesRange(v,c)?null:v,b=!!(y&&m.compare(h,y)>0),x=!!c&&!l&&!m.satisfiesRange(h,c),S=!!u&&(!!y||m.isPrerelease(h)),C=e?.time,w=!!(d&&f),T=null;for(let e of t){let t=m.parse(e);if(!t||_(t)||T&&m.compare(t,T)<=0)continue;let n=m.compare(t,h)<=0;if(n&&!x&&!S||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||w&&!J(p?p(e):C?.[e],d,f))continue;let r=m.diff(h,t),i=r&&!m.isPrerelease(t)?r.replace(/^pre/,``):r;i&&g.has(i)&&(T=t)}return T?.raw??T?.version??null}function wn(e){return/\d{14}-[0-9a-f]{12}(?:\+incompatible)?$/.test(e)}function Tn({pinnedRange:e,pinNoDowngrade:t},n){let r=Q(n);return!(!e||t||!r||W(r,e))}const En=/* @__PURE__ */ new Map;function Dn({range:e,usePre:t,useRel:n,semvers:r,pinnedRange:i,pinNoDowngrade:a,allowDowngrade:o},s=e){let c=JSON.stringify([e,s,[...r].sort(),t,n,i||``,a,o]);return V(En,c,()=>{let c=q.parse(Q(e));if(!c)return()=>!1;let{effectiveSemvers:l,skipsPrerelease:u}=Sn(e,t,n,r),d=q.parse(s),f=d||q.parseRange(s),p=!!o||Tn({pinnedRange:i,pinNoDowngrade:a},s);return e=>{let t=q.parse(Q(e)),n=q.parse(e),r=wn(e);if(!t||!r&&u(n))return!1;let a=(d&&n?q.diff(d,n):null)??q.diff(c,t),o=r?a===`prerelease`?`patch`:a?.replace(/^pre/,``):a;return!o||!l.has(o)||!p&&n&&f&&q.compare(n,f)<0?!1:!i||W(t.version,i)}})}function On(e){return e.reduce((e,t)=>{let n=t?.upload_time_iso_8601,r=t&&!t.yanked&&typeof n==`string`?Date.parse(n):NaN;return r<e.time?{date:n,time:r}:e},{time:1/0}).date}function kn(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d,acceptsGoVersion:f}){if(n===`*`)return null;let p=t===`pypi`?Nt:q,m=n.includes(`||`)?n.split(`||`).pop().trim():n,h=[],g=``,_;if(t===`pypi`){let t=e?.releases;if(!t)return null;h=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(e=>e&&!e.yanked)),_=e=>On(t[e]),g=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(h=Object.keys(e.versions),g=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[Q(m)]?.deprecated){let t=h.filter(t=>!e.versions[t]?.deprecated);h=t.length?t:h}}else if(t===`go`){let t=f||Dn({range:m,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d},e.old||m);return t(e.new)&&J(e.Time,l,u)?e.new:t(e.sameMajorNew)&&J(e.sameMajorTime,l,u)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return Cn(e,h,{range:m,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:g,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:_,versioning:p})}function An(e){try{return new URL(e).host}catch{return``}}let jn;function Mn(){return jn??=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})()}const Nn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`],Pn=[`UPDATES_GITEA_API_TOKEN`,`GITEA_API_TOKEN`,`GITEA_AUTH_TOKEN`,`GITEA_TOKEN`,`FORGEJO_TOKEN`],Fn=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function In(e){let t=/* @__PURE__ */ new Map;for(let n of e.split(/\r?\n/)){let e=Fn.exec(n);if(!e)continue;let r=An(e[1]),i=ue.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let Ln;function Rn(){return Ln??=(async()=>{try{let{stdout:e}=await(await Mn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return In(e)}catch{return/* @__PURE__ */ new Map}})()}const zn=/* @__PURE__ */ new Map,Bn=/* @__PURE__ */ new Set;function Vn(e){return e===`api.github.com`?`github.com`:e}function Hn(e){return`set a token for ${Vn(e)} in UPDATES_FORGE_TOKENS or run "updates --login ${Vn(e)}"`}async function Un(e,n){if(!e)return[];let r=Ne(t.UPDATES_FORGE_TOKENS??``).find(t=>t.lastIndexOf(`:`)===e.length&&t.slice(0,e.length).toLowerCase()===e)?.slice(e.length+1);if(r)return[r];let i=Vn(e),a=(await Yt())[i],o=(i===`github.com`||e===An(n)?Nn:e===An(t.GITEA_URL??``)?Pn:[]).map(e=>t[e]),s=(await Rn()).get(i);return Array.from(new Set([a,...o,s].filter(Boolean)))}async function Wn(e,t,n=tn){let r=await cn(e===`github.com`?`${n}/user`:`https://${e}/api/v1/user`,{...rn(`Bearer`,t),signal:AbortSignal.timeout(5e3)});if(r.status===401)throw Error(`token for ${e} was rejected`);if(!r.ok)throw Error(`token verification for ${e} failed with status ${r.status}`);return(await r.json()).login}var Gn=class extends Error{name=`ForgeError`;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),Object.assign(this,{kind:e,host:t,status:r,reset:i})}};async function Kn(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 qn(e,t,n,r){if(e.status>=500)throw new Gn(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Kn(e);if(i===null)return e;throw new Gn(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, ${Hn(n)}`}${i?`, resets at ${(/* @__PURE__ */ new Date(i*1e3)).toISOString()}`:``}`,{status:e.status,reset:i})}async function Jn(e,t,n){let r=An(e),i=(await Un(r,t.forgeApiUrl)).filter(e=>!Bn.has(e)),a=async a=>{let o=rn(`Bearer`,a);return o.headers={...o.headers,...n},qn(await ln(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=zn.get(r);for(let t of e&&i.includes(e)?[e,...i.filter(t=>t!==e)]:i){let n=await a(t);if(n.status!==401&&n.status!==403)return zn.set(r,t),n;if(n.status===401&&!Bn.has(t)){Bn.add(t);let e=Vn(r);(await Yt())[e]===t&&console.error(`stored token for ${e} was rejected, run "updates --login ${e}" to replace it`)}t===e&&zn.delete(r)}return await a()}catch(e){throw e instanceof Gn?e:new Gn(`network`,r,e?.message??String(e),{cause:e})}}function Yn(e,t){let n=q.parse(X(t));if(!n)return null;let r=``;for(let t of e){let e=q.parse(X(t));e&&q.compare(e,n)>0&&(r=t,n=e)}return r||null}function Xn(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,`https://$1.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Zn=/^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$/i,Qn=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function $n(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function er(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function tr(e,t){let n=t?`cached Forge`:`Forge`;if(!Array.isArray(e))throw TypeError(`Invalid ${n} tags response`);return e.map(e=>{let r=t?typeof e?.commitSha==`string`&&(e.isStable===void 0||typeof e.isStable==`boolean`):e?.commit?.sha===void 0||typeof e.commit.sha==`string`;if(typeof e?.name!=`string`||!r)throw TypeError(`Invalid ${n} tag entry`);return t?e:{name:e.name,commitSha:e.commit?.sha||``}})}const nr=/* @__PURE__ */ new WeakMap;function rr(e,t,n,r){let i=`${n}${e}`;return Z(nr,t,i,async()=>{let n=t.noCache?null:await Vt(e),a=await Jn(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return nr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&Wt(e,s,o),o})}function ir(e,t=!1){if(!Array.isArray(e))throw TypeError(`Invalid ${t?`cached `:``}Forge releases response`);return e.map(e=>{let n=t?e?.name:e?.tag_name,r=t?e?.isStable:!e?.prerelease&&e?.draft!==!0,i=t?e?.releaseTimestamp:e?.published_at;if(typeof n!=`string`||(t?typeof r!=`boolean`:typeof e?.prerelease!=`boolean`||e.draft!==void 0&&typeof e.draft!=`boolean`))throw TypeError(`Invalid ${t?`cached `:``}Forge release entry`);return{name:n,isStable:r,...i&&{releaseTimestamp:i}}})}async function ar(e,t,n,r){let i=await rr(e,t,n,async e=>JSON.stringify({link:e.headers.get(`link`)||``,total:Number(e.headers.get(`x-total-count`))||0,[n]:r(await e.json(),!1)}));if(!i)return null;let a=JSON.parse(i);if(typeof a?.link!=`string`)throw TypeError(`Invalid cached Forge ${n} response`);return{entries:r(a[n],!0),link:a.link,total:Number(a.total)||0}}function or(e){let t=/<([^>]+)>;\s*rel="last"/.exec(e);if(!t)return 0;let n=Number(new URL(t[1]).searchParams.get(`page`));if(!Number.isSafeInteger(n)||n<1)throw TypeError(`Invalid Forge pagination URL`);return Math.min(n,100)}async function sr(e,t,n,r,i){let a=await ar(e(1),t,n,r);if(!a)return;let o=a.total>0?Math.min(Math.ceil(a.total/(a.entries.length||1)),100):or(a.link),s=gn(t);for(let c=2,l=1,u=i(a.entries);c<=o&&!u;c+=l,l=Math.min(l*2,s)){let a=await Promise.all(Array.from({length:Math.min(l,o-c+1)},async(i,a)=>{let o=e(c+a),s=await ar(o,t,n,r);if(!s)throw new Gn(`server`,An(o),`Unable to fetch ${o}`);return s}));for(let e of a)u=i(e.entries)}}async function cr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await sr(r=>`${e}/repos/${t}/${n}/tags?${e.endsWith(`/api/v1`)?`limit`:`per_page`}=100&page=${r}`,r,`tags`,tr,e=>{for(let t of e){for(let e of o)(e===t.name||t.commitSha.startsWith(e))&&o.delete(e);a.push(t)}return s&&!o.size}),a}async function lr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return cr(e,t,n,r,i);let o=/* @__PURE__ */ new Map,[s,c]=await Promise.allSettled([cr(e,t,n,r,i),sr(e=>`${tn}/repos/${t}/${n}/releases?per_page=100&page=${e}`,r,`releases`,ir,e=>{for(let t of e)o.set(t.name,t);return!1})]);if(s.status===`rejected`)throw s.reason;if(c.status===`rejected`&&!(c.reason instanceof Gn))throw c.reason;for(let e of s.value){let t=o.get(e.name);t&&(e.isStable=t.isStable,t.releaseTimestamp&&(e.releaseTimestamp=t.releaseTimestamp))}return s.value}function $(e,t,n,r){throw Error(e?.status&&e.statusText?`Received ${e.status} ${e.statusText} from ${t}`:`Unable to fetch ${n} from ${r}`)}function ur(e,t,n=``){let r=X(e),i=X(t).split(`.`).length,a=i>=3?r:Array.from({length:i},(e,t)=>r.split(`.`)[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${a}${n}`}function dr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const fr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function pr({repository:e,homepage:t,info:n},r,i){if(r===`https://npm.pkg.github.com`)return`https://github.com/${i.replace(/^@/,``)}`;if(n){let t=fr.find(e=>n.project_urls?.[e]);e=t?n.project_urls[t]:e??`https://pypi.org/project/${i}/`}if(!e)return t||``;let a=Xn(typeof e==`string`?e:e.url);return a&&typeof e!=`string`&&e.directory?`${a}/${dr(a)}/${e.directory}`:a||t||``}const mr=/^\[\[([^\]]+)\]\]$/,hr=/^\[([^[\]]+)\]$/,gr=()=>Object.create(null);function _r(e){let t=gr(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=Cr(r[e]).trim();if(!i)continue;let a=mr.exec(i);if(a){let e=t,r=Sr(a[1]),i=r.pop();for(let t of r){let n=e[t],r=Array.isArray(n)?n.at(-1):void 0;e=typeof r==`object`&&!Array.isArray(r)?r:Tr(e,[t])}Array.isArray(e[i])||(e[i]=[]),n=gr(),e[i].push(n);continue}let o=hr.exec(i);if(o){n=Tr(t,Sr(o[1]));continue}let s=wr(i,`=`);if(s<0)continue;let c=i.slice(s+1).trim(),l=Sr(i.slice(0,s)),u=l.pop(),d=Tr(n,l),f=c.startsWith(`"""`)&&!c.includes(`"""`,3)?`"""`:c.startsWith(`'''`)&&!c.includes(`'''`,3)?`'''`:``,p={depth:0,inStr:null};if((c.startsWith(`[`)||c.startsWith(`{`))&&!br(c,p)){let t=[c];for(e++;e<r.length;e++){let n=Cr(r[e]);if(t.push(n),br(n,p))break}d[u]=vr(t.join(`
6
6
  `))}else if(f){let t=c.slice(3);for(e++;e<r.length;e++){let n=r[e].indexOf(f);if(t+=(t?`
7
- `:``)+(n<0?r[e]:r[e].slice(0,n)),n>=0)break}d[u]=gr(f+t+f)}else d[u]=gr(c)}return t}function gr(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of yr(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(gr(e))}return t}return e.startsWith(`{`)?_r(e):e.startsWith(`"""`)?Tr(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?Tr(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function _r(e){let t=mr();for(let n of yr(e.slice(1,e.lastIndexOf(`}`)))){let e=n.indexOf(`=`);e>=0&&(t[n.slice(0,e).trim().replace(/^["']|["']$/g,``)]=gr(n.slice(e+1).trim()))}return t}function vr(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t.inStr){if(r===`\\`&&t.inStr===`"`){n++;continue}r===t.inStr&&(t.inStr=null)}else if(r===`"`||r===`'`)t.inStr=r;else if(r===`{`||r===`[`)t.depth++;else if((r===`}`||r===`]`)&&(t.depth--,!t.depth))return!0}return!1}function yr(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 br(e){let t=[],n=``,r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`&&i+1<e.length){n+=a+e[++i];continue}if(a===r){r===`"`&&(n=Tr(n)),r=null;continue}n+=a}else a===`"`||a===`'`?r=a:a===`.`?(t.push(n.trim()),n=``):n+=a}return n.trim()&&t.push(n.trim()),t}function xr(e){let t=Sr(e,`#`);return t<0?e:e.slice(0,t)}function Sr(e,t,n){let r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`){i++;continue}a===r&&(r=null)}else if(a===`"`||a===`'`)r=a;else if(a===t)return i;else if(a===n)return-1}return-1}function Cr(e,t){for(let n of t)(typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=mr()),e=e[n];return e}const wr={b:`\b`,f:`\f`,n:`
8
- `,r:`\r`,t:` `};function Tr(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>t.length>1?String.fromCodePoint(Number.parseInt(t.slice(1),16)):wr[t]??t)}const Er=/[-_.]+/g,Dr=/* @__PURE__ */ new WeakMap;function Or(e){let t={};for(let[n,r]of Object.entries(e??{}))t[n]=(r??[]).map(e=>({...e.upload_time_iso_8601&&{upload_time_iso_8601:e.upload_time_iso_8601},...e.yanked&&{yanked:!0}}));return t}async function kr(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(Er,`-`)}/json`;return[{...await Q(Dr,t,n,async()=>{let r=await fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},ln(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:Or(e.releases)}}));`body`in r||$(r.res,n,e,t.pypiApiUrl);let i=JSON.parse(r.body);return{...i,releases:Or(i.releases)}}),name:e},null]}function Ar(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=q(n.slice(0,-2));if(!r||r.dev!==null||r.local||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||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Tt(e.local?{...e,local:null}:e,r),a=r.local?Tt(e,r):i;if(t===`==`)return a===0;if(t===`!=`)return a!==0;if(t===`>=`)return i>=0;if(t===`<=`)return i<=0;let o=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&&!(o&&e.post!==null&&r.post===null):t===`<`?i<0&&!(o&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.epoch===e.epoch&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function jr(e,t=e.release.length){if(!e.local&&t===e.release.length)return e.version;let n=Array.from({length:t},(t,n)=>e.release[n]??0),r=e.epoch||/^[vV]?\d+!/.test(e.version)?`${e.epoch}!`:``,i=e.pre?`${e.pre[0]}${e.pre[1]}`:``,a=e.post===null?``:`.post${e.post}`,o=e.dev===null?``:`.dev${e.dev}`;return`${r}${n.join(`.`)}${i}${a}${o}`}function Mr(e,t,n){let r=e.release.findIndex((e,n)=>e>t.release[n]);r===0&&e.release[1]===0?r=1:r===-1&&(r=e.release.length-1);let i=e.release.map((e,t)=>t>r?0:(n.release[t]??0)+Number(t===r));return`${n.epoch?`${n.epoch}!`:``}${i.join(`.`)}`}function Nr(e){let t=ve(`x${e.trim()}`);return!!(q(e.trim())||t?.specifiers?.length&&!t.extras&&!t.marker&&t.specifiers.every(({op:e,version:t})=>{let n=q(t.replace(/\.\*$/,``));return n?t.endsWith(`.*`)?(e===`==`||e===`!=`)&&n.dev===null&&!n.local:(e!==`~=`||n.release.length>1)&&(!n.local||[`==`,`!=`,`===`].includes(e)):!1}))}function Pr(e,t){let n=q(e);if(!n)return!1;let r=t.trim();if(!r)return!0;let i=q(r);if(i)return Tt(n,i)===0;let a=ve(`x${r}`);return!a?.specifiers?.length||a.extras||a.marker?!1:a.specifiers.every(e=>Ar(n,e))}function Fr(e,t,n){let r=ve(e),i=q(t),a=q(n);if(!r?.specifiers||!i||!a)return null;let o=r.specifiers,s=be(o);if(s?.version!==t)return null;for(let e of o){if(e===s){let t=e.op===`~=`?i.release.length:a.release.length;e.version=e.op===`==`||e.op===`===`?n:jr(a,t)}else if(Ar(a,e))continue;else{let t=q(e.version);if(e.op===`<`&&t)e.version=Mr(t,i,a);else if(e.op===`<=`)e.version=jr(a);else if(e.op===`~=`&&t?.epoch===a.epoch)e.version=jr(a,t.release.length);else return null}if(!Ar(a,e))return null}return ye(r,o)}function Ir(e){let t=[],n=/\s*(?:"((?:\\.|[^"\\])*)"|'([^']*)'|([\w-]+))\s*(?:\.|$)/gy;try{for(;n.lastIndex<e.length;){let r=n.exec(e);if(!r)return[];t.push(r[1]===void 0?r[2]??r[3]:JSON.parse(`"${r[1]}"`))}}catch{return[]}return t}function Lr(e,t){let n=e.indexOf(`[`,t);if(n===-1||e.slice(t,n).trim())return-1;let r=0,i=``,a=!1;for(let t=n;t<e.length;t++){let n=e[t];if(a)n===`
9
- `&&(a=!1);else if(i)i===`"`&&n===`\\`?t++:n===i&&(i=``);else if(n===`"`||n===`'`)i=n;else if(n===`#`)a=!0;else if(n===`[`)r++;else if(n===`]`&&--r===0)return t+1}return-1}function Rr(e,t){let n=/* @__PURE__ */ new Map,r=[],i=0;for(let a of e.split(/(?<=\n)/)){let o=/^\[([^\]]+)\](?:\s*#.*)?$/.exec(a.trim());if(o)r=Ir(o[1]);else{let o=Sr(a,`=`,`#`),s=o===-1?``:[...r,...Ir(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=Lr(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function zr(e,t){let n=/* @__PURE__ */ new Map;for(let[e,r]of Object.entries(t)){let t=e.split(`\0`);U(n,t[0],()=>/* @__PURE__ */ new Map).set(t[2],r)}let r=Rr(e,n),i=e;for(let[e,t]of Array.from(r).reverse()){let r=n.get(e),a=i.slice(...t).replace(/#.*|"""[\s\S]*?"""|'''[\s\S]*?'''|"(?:\\.|[^"\\])*"|'[^']*'/g,e=>{if(e.startsWith(`#`))return e;let t=gr(e),n=r.get(t);if(!n)return e;let i=Fr(t,n.oldOrig||n.old,n.new);return i?e[0]===`"`&&e.includes(`\\`)?JSON.stringify(i):e.replace(t,()=>i):e});i=`${i.slice(0,t[0])}${a}${i.slice(t[1])}`}return i}const Br={y:365.25,w:7,d:1,h:1/24,m:1/1440,s:1/86400,ms:1/864e5};function Vr(e){if(e===null)return 0;if(typeof e!=`string`)return;let t=e.split(/(.*?[a-z]+)/).map(e=>e.trim()).filter(Boolean);if(!t.length)return;let n=0;for(let e of t){let t=e.replace(/^(\d+)\s*(?:months?|M)$/,(e,t)=>`${Number(t)*30} days`);if(t.length>100)return;let r=/^(-?\d*\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!r)return;let i=(r[2]??`ms`).toLowerCase();n+=Number(r[1])*Br[/^m(?:s|il)/.test(i)?`ms`:i[0]]}return n}const Hr=/^(?:(?:match|exclude)(?:Package|Dep)(?:Names|Patterns|Prefixes)|package(?:Name|Pattern)s?|excludedPackageNames)$/;function Ur(e,t){let n=e.startsWith(`exclude`)?`!`:``;return e.endsWith(`Prefixes`)?`${n}${t}{/,}**`:/Patterns?$/.test(e)?t===`*`&&!n&&!e.includes(`Dep`)?`*`:`${n}/${t}/`:`${n}${t}`}const Wr=/* @__PURE__ */ new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function Gr(e){let t={};for(let[n,r]of Object.entries(e)){if(!Hr.test(n)){if(n.startsWith(`match`)||n.startsWith(`exclude`)||Wr.has(n))return;continue}let e=typeof r==`string`||n===`packageName`||n===`packagePattern`?[r]:r;if(!Array.isArray(e))return;let i=t[n.includes(`Dep`)?`Dep`:`Package`]??=[];for(let t of e){if(typeof t!=`string`||!t)return;i.push(Ur(n,t))}}let n={},r=[];for(let e of[`Package`,`Dep`]){if(t[e]?.length===0)return;let i=[],a=[];for(let n of t[e]??[]){let e=n.startsWith(`!`),t=e?n.slice(1):n,o=Kr(t);(e?a:i).push(o??t),!e&&!o&&!/[*?[\]{}!()|+]/.test(t)&&r.push(t)}i.length&&(n[`match${e}Names`]=i),a.length&&(n[`exclude${e}Names`]=a)}return{matchers:n,literals:r}}function Kr(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const qr=/* @__PURE__ */ new Map,Jr=e=>U(qr,e,()=>He(e)),Yr=(e,t,n)=>(!t?.length||t.some(t=>Jr(t).test(e)))&&(!n?.length||n.every(t=>!Jr(t).test(e)));function Xr(e,t,n){return Yr(t,e.matchPackageNames,e.excludePackageNames)&&Yr(n,e.matchDepNames,e.excludeDepNames)}var Zr=class extends RegExp{#e;constructor(e,t){super(e),this.#e=t}testNames(e,t){return this.#e(e,t)}test(e){return this.testNames(e,e)}};function Qr(e,t,n,r){return e instanceof Zr?e.testNames(n,r):e.test(t)}function $r(e,t){let n=[],r={},i=/* @__PURE__ */ new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=Gr(r);if(!e)continue;let{matchers:o,literals:s}=e;typeof r.enabled==`boolean`&&n.push({enabled:r.enabled,matchers:o});let c={...o},l=t?Vr(r.minimumReleaseAge):void 0;if(l!==void 0&&(c.cooldownDays=l),typeof r.allowedVersions==`string`){let e=K(r.allowedVersions);if(!e&&!Kr(r.allowedVersions)&&!Nr(r.allowedVersions))throw Error(`Invalid renovate allowedVersions: ${r.allowedVersions}`);if(c.allowedVersions=r.allowedVersions,e)for(let e of s)i.add(e)}(c.allowedVersions||c.cooldownDays!==void 0)&&a.push(c)}for(let e of i){let t=a.findLast(t=>t.allowedVersions!==void 0&&Xr(t,e,e))?.allowedVersions;t&&K(t)&&(r[e]=t)}return{disabled:n.some(e=>!e.enabled)?new Zr(`renovate-package-rules`,(e,t)=>n.findLast(n=>Xr(n.matchers,e,t))?.enabled===!1):void 0,pin:r,versionRules:a}}function ei(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={},r=t.cooldown?Vr(e.minimumReleaseAge):void 0;r&&r>0&&(n.cooldown=r);let i=Array.isArray(e.ignoreDeps)?e.ignoreDeps.filter(e=>typeof e==`string`&&!!e).map(e=>new Zr(`^${z(e)}$`,(t,n)=>n===e)):[],{disabled:a,pin:o,versionRules:s}=$r(Array.isArray(e.packageRules)?e.packageRules:[],!!t.cooldown),c=a?[...i,a]:i;c.length&&(n.exclude=c),Object.keys(o).length&&(n.pin=o,n.pinNoDowngrade=!0),s.length&&(n.renovateVersionRules=s);let l=e[`github-actions`],u=[...Array.isArray(l?.managerFilePatterns)?l.managerFilePatterns:[],...Array.isArray(l?.fileMatch)?l.fileMatch.filter(e=>typeof e==`string`).map(e=>`/${e}/`):[]].filter(e=>typeof e==`string`&&!!e&&!e.startsWith(`!`)).map(e=>Kr(e)??e);return u.length&&(n.filePatterns={actions:u}),n}async function ti(e,t={}){let n=await Ue(e,async e=>{for(let t of[`renovate.json`,`renovate.jsonc`,`renovate.json5`]){let n=m(e,t),r=await R(re(n,`utf8`));if(r===null)continue;let i;try{i=Pt(r)}catch(e){throw Error(`Unable to parse renovate config ${n}: ${e.message}`)}if(i&&typeof i==`object`)return i}return null});return n?ei(n,t):{}}const ni=Symbol(`cliBaseConfig`),ri={"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},"include-paths":{short:`N`,type:`string`,multiple:!0},"exclude-paths":{short:`X`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},login:{short:`L`,type:`string`},logout:{short:`O`,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`}},ii=/* @__PURE__ */ new Set([`greatest`,`prerelease`,`release`,`patch`,`minor`,`allow-downgrade`]);function ai(e){return Array.isArray(e)?!e.length||e.includes(!0)||new Set(ci(e)):e===!0}function oi(e){for(let[t,{short:n}]of Object.entries(ri))if(t===e||n===e)return t;return``}function si(e){return new Set(e.map(He))}function ci(e,t=je){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(t):[]}function li(e){for(let[t,n]of Object.entries(e??{}))if(!K(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function ui(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 li(t),t}function di(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:si(e)}const fi=Ge(e=>Ue(e,async e=>{for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=`updates.config.${t}`,r=m(e,n);try{await ne(r)}catch(e){if(e.code===`ENOENT`)continue;throw Error(`Unable to load config file ${n}: ${e.message}`)}try{return(await import(te(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null})),pi=Ge(async e=>{let t=await fi(e)??{},n=await ti(e,t.inherit?.renovate),r={...n,...t};return n.pin&&(r.pin={...n.pin,...t.pin},r.pinNoDowngrade=Object.keys(n.pin).filter(e=>!t.pin?.[e])),n.overrides?.length&&(r.overrides=[...n.overrides,...t.overrides??[]]),n.filePatterns&&(r.filePatterns={...n.filePatterns,...t.filePatterns}),li(r.pin),r});function mi(e){let t=[];for(let n of e.matchAll(/([^,|]*)([,|]?)/g)){let e=n[1].trim();if(!e)continue;let r=n[2]===`|`?`|`:`,`;if(e===`off`||e===`direct`){t.push({url:e,fallback:r});break}let i=e.includes(`:/`)||e.startsWith(`/`);t.push({url:tn(!i&&/[.:/]/.test(e)?`https://${e}`:e),fallback:r})}return t}function hi(e){if(typeof e==`string`)return[{url:tn(e),fallback:`,`}];let n=mi(t.GOPROXY||`${X.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function gi(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const _i=/* @__PURE__ */ new Map;function vi(e,t){return t.some(t=>U(_i,t,()=>{let e=``;for(let[n,r]of t.matchAll(/\[([^\]]*)\]|./gs))e+=r===void 0?n===`*`?`[^/]*`:n===`?`?`[^/]`:z(n):`[${r.replace(/\\/g,`\\\\`)}]`;return RegExp(`^${e}(?:/.*)?$`)}).test(e))}function yi(e,t,n){return vi(e,n)?[{url:`direct`,fallback:`,`}]:t.goProxyChain}function bi(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const xi=/\/v(\d+)$/,Si=/^gopkg\.in\/.*?\.v(\d+)$/;function Ci(e,t=1){let n=Si.exec(e)??xi.exec(e);return n?Number.parseInt(n[1]):t}function wi(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(xi,``);return t<=1?n:`${n}/v${t}`}function Ti(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Z(t));return Number.isNaN(n)||n===Ci(e)?e:wi(e,n)}const Ei=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,Di=/^(\S+)\s+(v\S+)/,Oi=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,ki=e=>e.replace(/^"(.*)"$/,`$1`),Ai=/^v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[a-z-][\da-z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-z-][\da-z-]*))*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?$/i,ji=e=>Ai.test(e)&&!e.endsWith(`-00010101000000-000000000000`),Mi=e=>e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`);function Ni(e){let t=Oi.exec(e);return t&&{origModule:ki(t[1]),origVersion:t[2]??``,targetModule:ki(t[3]),targetVersion:t[4]??``}}function*Pi(e){let t=null;for(let[n,r]of e.entries()){let e=r.trim();if(!e||e.startsWith(`//`))continue;if(t){/^\)\s*(?:\/\/.*)?$/.test(e)?t=null:yield{kind:t,value:e,lineNumber:n};continue}let i=Ei.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function Fi(e){for(let{kind:t,value:n}of Pi(e.split(/\r?\n/)))if(t===`module`)return ki(n.split(/\s/,1)[0]);return``}function Ii(e){let t={},n={},r={},i={},a={},o=/* @__PURE__ */ new Set,s=[];for(let{kind:i,value:c}of Pi(e.split(/\r?\n/)))if(i===`tool`)s.push(ki(c.split(/\s/,1)[0]));else if(i===`replace`){let e=Ni(c);e&&ji(e.targetVersion)&&!Mi(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e&&!e.origVersion&&o.add(e.origModule)}else if(i===`exclude`||i===`require`){let e=Di.exec(c);if(!e)continue;i===`exclude`?(a[ki(e[1])]??=[]).push(e[2]):ji(e[2])&&((c.includes(`// indirect`)?n:t)[ki(e[1])]=e[2])}for(let e of o)delete t[e],delete n[e];let c=/* @__PURE__ */ new Set([...Object.keys(n),...Object.keys(t)]);for(let e of s){let r=e;for(;r&&!c.has(r);)r=r.includes(`/`)?r.slice(0,r.lastIndexOf(`/`)):``;let a=n[r]?n:t;a[r]&&(i[r]=a[r],delete a[r])}return{deps:t,indirect:n,replace:r,tool:i,...Object.keys(a).length&&{exclude:a}}}const Li=/* @__PURE__ */ new WeakMap;function Ri(e,t,n){let r=/\|(?:[^:]*:)?(.*)/s.exec(t)?.[1]??``,i=U(Li,n,()=>/* @__PURE__ */ new Map);for(let t of r?[m(e,r,`go.mod`),m(e,`go.mod`)]:[m(e,`go.mod`)]){let e=g(t),n=U(i,e,()=>{try{return new Map(Object.entries(Ii(C(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return/* @__PURE__ */ new Map}async function zi(e,t,n,r,i){let a=async(e,a)=>{let{latest:o,fallback:s}=await r(e,a),c=o&&!n.get(e)?.has(o.Version)?o:await s();return!c||!i||i.accepts(Z(c.Version))||!i.pinAllowsDowngrade&&!at(c.Version,t)?c:await R(s(i))??(a===`probe`?{...c,accepted:!1}:c)},o=Ci(e),s=async t=>{let n=await R(a(wi(e,t),`probe`));return n&&Number.parseInt(Z(n.Version))===t?n:null},[c,l]=await Promise.all([a(e,`primary`),e.startsWith(`golang.org/x/`)||i?.allowMajor===!1?null:s(o+1)]);if(!c)return null;let u=[],d=l;for(let e=o+2;d;e++)d.accepted!==!1&&u.push(d),d=await s(e);let f=u.findLast(e=>!vn(e.Version))??u.at(-1)??c;return[{name:e,old:t,new:Z(f.Version),Time:f.Time,...f.path!==e&&{newPath:f.path},sameMajorNew:Z(c.Version),sameMajorTime:c.Time},null]}function Bi(e,t){return/* @__PURE__ */ Error(`go list -m ${e} failed: ${String(t?.stderr??``).trim().split(`
10
- `)[0]||t?.message||String(t)}`)}function Vi(e,n,r,i,a,o){let s=async(e,n,a)=>{let o=`${e}@${a??`latest`}`;try{let s=[`list`,`-m`,`-mod=readonly`,...a?[]:[`-versions`],`-json`,o],{stdout:c}=await i.execFile(`go`,s,{timeout:n,cwd:r,env:{...t,GOPROXY:`direct`}}),l=JSON.parse(c);return{Version:l.Version,Time:l.Time||``,path:e,Versions:l.Versions}}catch(e){throw Bi(o,e)}};return zi(e,n,a,async(e,t)=>{let n=t===`probe`?i.goProbeTimeout:i.fetchTimeout,r=await s(e,n);return{latest:r,fallback:async t=>{let i=Yi((r.Versions??[]).join(`
11
- `),Ci(e,0),a.get(e),t);if(!i&&!t)throw Error(`No non-excluded versions found for ${e}`);return i&&s(e,n,i.Version)}}},o)}async function Hi(e,t,n,r,i){let a=new URL(n),{username:o,password:s}=a,{headers:c}=nn(`Basic`,o||s?le.from(`${decodeURIComponent(o)}:${decodeURIComponent(s)}`).toString(`base64`):``),l=on(a.href),u=await(t===`primary`?cn(e,l,{headers:c}):e.doFetch(l,{signal:AbortSignal.timeout(e.goProbeTimeout),headers:c}));if(u.ok)return u;if(u.status===404||u.status===410)return null;$(u,l,r,on(new URL(i).href))}async function Ui(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 ${on(new URL(t).href)}`)}const Wi=/* @__PURE__ */ new WeakMap,Gi=/* @__PURE__ */ new WeakMap;function Ki(e,t,n,r){return Q(Wi,e,`latest${t}${n}/${r}`,async()=>{let i=`${n}/${bi(r)}/@latest`,a=await Hi(e,t,i,r,n);return a&&Ui(a,i,r)})}function qi(e){let t=[];for(let n of e.split(`
12
- `)){let[e,r]=n.trim().split(/\s+/);e&&et(e)&&t.push({Version:e,Time:r??``})}return t}function Ji(e,t,n,r){let i=null;for(let a of e)if(!(n.has(a.Version)||r&&!r.accepts(Z(a.Version)))&&!(t&&Number.parseInt(Z(a.Version))!==t)){if(i){let e=vn(a.Version);if(r||e===vn(i.Version)?!at(a.Version,i.Version):e)continue}i=a}return i}function Yi(e,t=0,n=/* @__PURE__ */ new Set,r){return Ji(qi(e),t,n,r)}async function Xi(e,t,n,r,i=/* @__PURE__ */ new Set,a){let o=bi(r),s=await Q(Gi,e,`${t}${n}/${r}`,async()=>{let i=await Hi(e,t,`${n}/${o}/@v/list`,r,n);return i&&{versions:qi(await i.text()),picks:/* @__PURE__ */ new Map}}),c=s&&U(U(s.picks,a?.accepts,()=>/* @__PURE__ */ new Map),Array.from(i).sort().join(`\0`),()=>Ji(s.versions,Ci(r,0),i,a));if(!c)return null;if(c.Time)return{...c,path:r};let l=`${n}/${o}/@v/${bi(c.Version)}.info`;try{let i=await Q(Wi,e,`info${t}${l}`,async()=>{let i=await Hi(e,t,l,r,n);return i&&Ui(i,l,r)});if(i)return i}catch{}return{...c,path:r}}function Zi(e,t,n,r,i,a){let o=Ki(r,`primary`,e,t);return zi(t,n,i,async(t,n)=>{let[a,s]=await Promise.all([Ki(r,n,e,t),o]);return{latest:a,fallback:o=>!a&&s?Promise.resolve(null):Xi(r,n,e,t,i.get(t),o)}},a)}async function Qi(e,t,n,r,i,a,o){let s=Ri(r,t,i);for(let{url:t,fallback:c}of yi(e,i,a))try{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);let a=t===`direct`?await Vi(e,n,r,i,s,o):await Zi(t,e,n,i,s,o);if(a)return a}catch(e){if(c===`,`)throw e}throw Error(`Unable to find ${e} on any GOPROXY entry`)}const $i=e=>`("?)${z(e)}\\2`,ea=(e,t,n)=>RegExp(`(${e})${$i(t)}(\\s+)v${n}(?=\\s*(?://.*)?$)`);function ta(e,t){let n={},r=Object.entries(t);if(!r.length)return[e,n];let i=e.match(/\r?\n/g)??[],a=e.split(/\r?\n/),o=(e=[],t,n)=>{let r=!1;for(let i of e){let e=a[i];a[i]=e.replace(t,(e,t,r,i)=>n(t,r,i)),r||=a[i]!==e}return r},s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map;for(let{kind:e,value:t,lineNumber:n}of Pi(a))if(e===`require`){let e=Di.exec(t);e&&H(s,ki(e[1]),n)}else if(e===`replace`){let e=Ni(t);e&&H(c,e.targetModule,{...e,lineNumber:n})}else if(e===`tool`){let e=ki(t.split(/\s/,1)[0]);for(;e;)H(l,e,n),e=e.includes(`/`)?e.slice(0,e.lastIndexOf(`/`)):``}for(let[e,{old:t,oldOrig:i,new:a}]of r){let[r,u]=e.split(`\0`),d=i||t,f=Ti(u,a),p=(e,t,n)=>`${e}${t}${f}${t}${n}v${a}`,m=z(d);if(r===`replace`){m=null;for(let{targetVersion:e,origModule:t,origVersion:n,lineNumber:r}of c.get(u)??[])Z(e)===d&&(o([r],ea(`=>\\s+`,u,z(d)),p),!(f===u||t!==u||n)&&(o([r],RegExp(`(^\\s*(?:replace\\s+)?)${$i(u)}(?=\\s+=>)`),(e,t)=>`${e}${t}${f}${t}`),m=`\\S+`))}m!==null&&o(s.get(u),ea(`^\\s*(?:require\\s+)?`,u,m),p)&&f!==u&&(n[u]=f),r===`tool`&&f!==u&&o(l.get(u),RegExp(`(^\\s*(?:tool\\s+)?)("?)${z(u)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),(e,t,n)=>`${e}${t}${f}${n}${t}`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const na=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function ra(e,t){let n=Object.entries(t).sort(([e],[t])=>t.length-e.length);if(!n.length)return e;let r=[],i=(e,t)=>{if(!`"'\``.includes(e[0]))return!1;if(e[0]===`'`)return!0;let i=e.slice(1,-1),a=n.find(([e])=>i===e||i.startsWith(`${e}/`));return a&&r.push({start:t+1,end:t+e.length-1,value:`${a[1]}${i.slice(a[0].length)}`}),!0},a=!1,o=0;for(let t of e.matchAll(na)){let e=t[0];/^\s/.test(e)||e.startsWith(`//`)||e.startsWith(`/*`)||(a?e===`)`?a=!1:i(e,t.index):e===`import`?o=2:o&&e===`(`?(a=!0,o=0):o&&(i(e,t.index)||--o===0)&&(o=0))}let s=e;for(let e of r.reverse())s=`${s.slice(0,e.start)}${e.value}${s.slice(e.end)}`;return s}const ia=e=>{let t=d(e);return t===`vendor`||t===`testdata`||t[0]===`_`};function aa(e,t,n){if(!Object.keys(t).length)return;let r=/* @__PURE__ */ new Map,i=t=>t.length>e.length&&U(r,t,()=>y(m(t,`go.mod`))||i(f(t)));for(let r of b(`**/*.go`,{cwd:e,exclude:ia})){let a=m(e,r);if(i(f(a)))continue;let o=C(a,`utf8`),s=ra(o,t);s!==o&&n(a,s)}}function oa(e){let t=[],n={};for(let{kind:r,value:i}of Pi(e.split(/\r?\n/)))if(r===`use`)t.push(i.split(/\s/,1)[0]);else if(r===`replace`){let e=Ni(i);e&&ji(e.targetVersion)&&!Mi(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function sa(e,t){try{return T(m(T(g(e)),t,`go.mod`))}catch{return null}}function ca(e){let t=`https://${la(e)}`,n=new URL(t),[r,i,a,...o]=n.pathname.split(`/`);return o.length?(n.pathname=`/${i}/${a}/${lr(t)}/${o.join(`/`)}`,n.href):t}function la(e){return xi.test(e)?f(e):e}function ua(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function da(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function fa(e){return e.replace(/-(.)/g,(e,t)=>t.toUpperCase())}function pa(t){if(!t)return e();let n=g(t);try{if(E(n).isDirectory())return n}catch{}return f(n)}function ma(e){let{tokens:t}=s({args:e,strict:!1,allowPositionals:!0,tokens:!0,options:ri}),n=Object.create(null),r=/* @__PURE__ */ new Set,i=(e,t)=>{ri[e]?.multiple?(n[e]??=[]).push(t):n[e]=t};for(let[e,a]of t.entries()){if(a.kind!==`option`)continue;if(!oi(a.name))throw Error(`Unknown option: ${a.rawName}`);if(ri[a.name]?.type===`string`&&a.value===void 0&&!ii.has(a.name))throw Error(`Missing value for --${a.name}`);if(a.inlineValue||!a.value?.startsWith(`-`)){i(a.name,a.value??!0);continue}let o=a.value.startsWith(`--`),s=t[e+1],c=s?.kind===`positional`?s.value:void 0,l=[],u=a.value.substring(o?2:1),d=!1;for(let[e,t]of(o?[u]:u.split(``)).entries()){let n=oi(t);if(!n){l.length=0;break}if(ri[n].type===`boolean`){l.push({key:n,value:!0});continue}let r=o?``:u.substring(e+1);d=!r&&c!==void 0,l.push({key:n,value:r||!d||c});break}if(!l.length)i(a.name,a.value);else{!ri[a.name]?.multiple||ii.has(a.name)?i(a.name,!0):n[a.name]??=[],d&&r.add(e+1);for(let{key:e,value:t}of l)i(e,t)}}return{args:n,positionals:t.flatMap((e,t)=>e.kind===`positional`&&!r.has(t)?e.value:[])}}function ha(e,t){let n={},r=(e,t)=>{t.length&&(n[e]=t)};for(let t of[`json`,`verbose`,`no-cache`,`update`,`indirect`,`error-on-outdated`,`error-on-unchanged`])e[t]&&(n[fa(t)]=!0);e.color&&(n.color=!0,n.noColor=!1),e[`no-color`]&&(n.color=!1,n.noColor=!0),typeof e.timeout==`string`&&(n.timeout=Ie(e.timeout,`timeout`)),typeof e.sockets==`string`&&(n.sockets=Ie(e.sockets,`sockets`));for(let t of[`registry`,`cooldown`,`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(n[t]=e[t]);for(let t of[`include`,`exclude`])r(t,ci(e[t]).map(da));r(`types`,ci(e.types));let i=ui(e.pin);Object.keys(i).length&&(n.pin=i),r(`modes`,ci(e.modes));for(let t of ii){let r=ai(e[t]);r!==!1&&(n[fa(t)]=r===!0||Array.from(r,da))}r(`files`,t);for(let t of[`include-paths`,`exclude-paths`])r(fa(t),ci(e[t],Re));return n}async function ga(e,t){let n=[...ci(e.file),...t],r=await pi(pa(n[0])),i=ha(e,n);return Object.defineProperty({...r,pin:void 0,...i},ni,{value:{cliKeys:Object.keys(i)}})}function _a(e,t,n){return e.some(e=>e===`--${t}`||/^-[^-]/.test(e)&&e.includes(n)&&Array.from(e.slice(1,e.indexOf(n))).every(e=>ri[oi(e)]?.type!==`string`))}async function va(e,t){let n=ci(e.file),r=pa(n[0]??t[0]),i=await fi(r)??{},{prewarmOrigins:a}=await import(`./prewarm.js`);for(let t of a(r,{...i,...ha(e,n)})){let e=t.endsWith(`/rate_limit`)?`GET`:`HEAD`;(async()=>{try{await(await fetch(t,{method:e})).arrayBuffer()}catch{}})()}}function ya(e,t){if(typeof e!=`string`)throw Error(`Missing value for --${t}`);return Bn(new URL(e.includes(`://`)?e:`https://${e}`).host)}function ba(e,t){return e.setEncoding(`utf8`),e.setRawMode(!0),a.write(t),new Promise(t=>{let r=``,i=o=>{for(let s of o)if(!`\r
7
+ `:``)+(n<0?r[e]:r[e].slice(0,n)),n>=0)break}d[u]=vr(f+t+f)}else d[u]=vr(c)}return t}function vr(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of xr(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(vr(e))}return t}return e.startsWith(`{`)?yr(e):e.startsWith(`"""`)?Dr(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?Dr(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function yr(e){let t=gr();for(let n of xr(e.slice(1,e.lastIndexOf(`}`)))){let e=n.indexOf(`=`);e>=0&&(t[n.slice(0,e).trim().replace(/^["']|["']$/g,``)]=vr(n.slice(e+1).trim()))}return t}function br(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t.inStr){if(r===`\\`&&t.inStr===`"`){n++;continue}r===t.inStr&&(t.inStr=null)}else if(r===`"`||r===`'`)t.inStr=r;else if(r===`{`||r===`[`)t.depth++;else if((r===`}`||r===`]`)&&(t.depth--,!t.depth))return!0}return!1}function xr(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 Sr(e){let t=[],n=``,r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`&&i+1<e.length){n+=a+e[++i];continue}if(a===r){r===`"`&&(n=Dr(n)),r=null;continue}n+=a}else a===`"`||a===`'`?r=a:a===`.`?(t.push(n.trim()),n=``):n+=a}return n.trim()&&t.push(n.trim()),t}function Cr(e){let t=wr(e,`#`);return t<0?e:e.slice(0,t)}function wr(e,t,n){let r=null;for(let i=0;i<e.length;i++){let a=e[i];if(r){if(a===`\\`&&r===`"`){i++;continue}a===r&&(r=null)}else if(a===`"`||a===`'`)r=a;else if(a===t)return i;else if(a===n)return-1}return-1}function Tr(e,t){for(let n of t)(typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=gr()),e=e[n];return e}const Er={b:`\b`,f:`\f`,n:`
8
+ `,r:`\r`,t:` `};function Dr(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>t.length>1?String.fromCodePoint(Number.parseInt(t.slice(1),16)):Er[t]??t)}const Or=/[-_.]+/g,kr=/* @__PURE__ */ new WeakMap;function Ar(e){let t={};for(let[n,r]of Object.entries(e??{}))t[n]=(r??[]).map(e=>({...e.upload_time_iso_8601&&{upload_time_iso_8601:e.upload_time_iso_8601},...e.yanked&&{yanked:!0}}));return t}async function jr(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(Or,`-`)}/json`;return[{...await Z(kr,t,n,async()=>{let r=await pn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},un(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:Ar(e.releases)}}));`body`in r||$(r.res,n,e,t.pypiApiUrl);let i=JSON.parse(r.body);return{...i,releases:Ar(i.releases)}}),name:e},null]}function Mr(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=K(n.slice(0,-2));if(!r||r.dev!==null||r.local||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=K(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Et(e.local?{...e,local:null}:e,r),a=r.local?Et(e,r):i;if(t===`==`)return a===0;if(t===`!=`)return a!==0;if(t===`>=`)return i>=0;if(t===`<=`)return i<=0;let o=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&&!(o&&e.post!==null&&r.post===null):t===`<`?i<0&&!(o&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.epoch===e.epoch&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function Nr(e,t=e.release.length){if(!e.local&&t===e.release.length)return e.version;let n=Array.from({length:t},(t,n)=>e.release[n]??0),r=e.epoch||/^[vV]?\d+!/.test(e.version)?`${e.epoch}!`:``,i=e.pre?`${e.pre[0]}${e.pre[1]}`:``,a=e.post===null?``:`.post${e.post}`,o=e.dev===null?``:`.dev${e.dev}`;return`${r}${n.join(`.`)}${i}${a}${o}`}function Pr(e,t,n){let r=e.release.findIndex((e,n)=>e>t.release[n]);r===0&&e.release[1]===0?r=1:r===-1&&(r=e.release.length-1);let i=e.release.map((e,t)=>t>r?0:(n.release[t]??0)+Number(t===r));return`${n.epoch?`${n.epoch}!`:``}${i.join(`.`)}`}function Fr(e){let t=be(`x${e.trim()}`);return!!(K(e.trim())||t?.specifiers?.length&&!t.extras&&!t.marker&&t.specifiers.every(({op:e,version:t})=>{let n=K(t.replace(/\.\*$/,``));return n?t.endsWith(`.*`)?(e===`==`||e===`!=`)&&n.dev===null&&!n.local:(e!==`~=`||n.release.length>1)&&(!n.local||[`==`,`!=`,`===`].includes(e)):!1}))}function Ir(e,t){let n=K(e);if(!n)return!1;let r=t.trim();if(!r)return!0;let i=K(r);if(i)return Et(n,i)===0;let a=be(`x${r}`);return!a?.specifiers?.length||a.extras||a.marker?!1:a.specifiers.every(e=>Mr(n,e))}function Lr(e,t,n){let r=be(e),i=K(t),a=K(n);if(!r?.specifiers||!i||!a)return null;let o=r.specifiers,s=Se(o);if(s?.version!==t)return null;for(let e of o){if(e===s){let t=e.op===`~=`?i.release.length:a.release.length;e.version=e.op===`==`||e.op===`===`?n:Nr(a,t)}else if(Mr(a,e))continue;else{let t=K(e.version);if(e.op===`<`&&t)e.version=Pr(t,i,a);else if(e.op===`<=`)e.version=Nr(a);else if(e.op===`~=`&&t?.epoch===a.epoch)e.version=Nr(a,t.release.length);else return null}if(!Mr(a,e))return null}return xe(r,o)}function Rr(e){let t=[],n=/\s*(?:"((?:\\.|[^"\\])*)"|'([^']*)'|([\w-]+))\s*(?:\.|$)/gy;try{for(;n.lastIndex<e.length;){let r=n.exec(e);if(!r)return[];t.push(r[1]===void 0?r[2]??r[3]:JSON.parse(`"${r[1]}"`))}}catch{return[]}return t}function zr(e,t){let n=e.indexOf(`[`,t);if(n===-1||e.slice(t,n).trim())return-1;let r=0,i=``,a=!1;for(let t=n;t<e.length;t++){let n=e[t];if(a)n===`
9
+ `&&(a=!1);else if(i)i===`"`&&n===`\\`?t++:n===i&&(i=``);else if(n===`"`||n===`'`)i=n;else if(n===`#`)a=!0;else if(n===`[`)r++;else if(n===`]`&&--r===0)return t+1}return-1}function Br(e,t){let n=/* @__PURE__ */ new Map,r=[],i=0;for(let a of e.split(/(?<=\n)/)){let o=/^\[([^\]]+)\](?:\s*#.*)?$/.exec(a.trim());if(o)r=Rr(o[1]);else{let o=wr(a,`=`,`#`),s=o===-1?``:[...r,...Rr(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=zr(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function Vr(e,t){let n=/* @__PURE__ */ new Map;for(let[e,r]of Object.entries(t)){let t=e.split(`\0`);V(n,t[0],()=>/* @__PURE__ */ new Map).set(t[2],r)}let r=Br(e,n),i=e;for(let[e,t]of Array.from(r).reverse()){let r=n.get(e),a=i.slice(...t).replace(/#.*|"""[\s\S]*?"""|'''[\s\S]*?'''|"(?:\\.|[^"\\])*"|'[^']*'/g,e=>{if(e.startsWith(`#`))return e;let t=vr(e),n=r.get(t);if(!n)return e;let i=Lr(t,n.oldOrig||n.old,n.new);return i?e[0]===`"`&&e.includes(`\\`)?JSON.stringify(i):e.replace(t,()=>i):e});i=`${i.slice(0,t[0])}${a}${i.slice(t[1])}`}return i}const Hr={y:365.25,w:7,d:1,h:1/24,m:1/1440,s:1/86400,ms:1/864e5};function Ur(e){if(e===null)return 0;if(typeof e!=`string`)return;let t=e.split(/(.*?[a-z]+)/).map(e=>e.trim()).filter(Boolean);if(!t.length)return;let n=0;for(let e of t){let t=e.replace(/^(\d+)\s*(?:months?|M)$/,(e,t)=>`${Number(t)*30} days`);if(t.length>100)return;let r=/^(-?\d*\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(!r)return;let i=(r[2]??`ms`).toLowerCase();n+=Number(r[1])*Hr[/^m(?:s|il)/.test(i)?`ms`:i[0]]}return n}const Wr=/^(?:(?:match|exclude)(?:Package|Dep)(?:Names|Patterns|Prefixes)|package(?:Name|Pattern)s?|excludedPackageNames)$/;function Gr(e,t){let n=e.startsWith(`exclude`)?`!`:``;return e.endsWith(`Prefixes`)?`${n}${t}{/,}**`:/Patterns?$/.test(e)?t===`*`&&!n&&!e.includes(`Dep`)?`*`:`${n}/${t}/`:`${n}${t}`}const Kr=/* @__PURE__ */ new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function qr(e){let t={};for(let[n,r]of Object.entries(e)){if(!Wr.test(n)){if(n.startsWith(`match`)||n.startsWith(`exclude`)||Kr.has(n))return;continue}let e=typeof r==`string`||n===`packageName`||n===`packagePattern`?[r]:r;if(!Array.isArray(e))return;let i=t[n.includes(`Dep`)?`Dep`:`Package`]??=[];for(let t of e){if(typeof t!=`string`||!t)return;i.push(Gr(n,t))}}let n={},r=[];for(let e of[`Package`,`Dep`]){if(t[e]?.length===0)return;let i=[],a=[];for(let n of t[e]??[]){let e=n.startsWith(`!`),t=e?n.slice(1):n,o=Jr(t);(e?a:i).push(o??t),e||o||/[*?[\]{}!()|+]/.test(t)||r.push(t)}i.length&&(n[`match${e}Names`]=i),a.length&&(n[`exclude${e}Names`]=a)}return{matchers:n,literals:r}}function Jr(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Yr=/* @__PURE__ */ new Map,Xr=e=>V(Yr,e,()=>We(e)),Zr=(e,t,n)=>(!t?.length||t.some(t=>Xr(t).test(e)))&&(!n?.length||n.every(t=>!Xr(t).test(e)));function Qr(e,t,n){return Zr(t,e.matchPackageNames,e.excludePackageNames)&&Zr(n,e.matchDepNames,e.excludeDepNames)}var $r=class extends RegExp{#e;constructor(e,t){super(e),this.#e=t}testNames(e,t){return this.#e(e,t)}test(e){return this.testNames(e,e)}};function ei(e,t,n,r){return e instanceof $r?e.testNames(n,r):e.test(t)}function ti(e,t){let n=[],r={},i=/* @__PURE__ */ new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=qr(r);if(!e)continue;let{matchers:o,literals:s}=e;typeof r.enabled==`boolean`&&n.push({enabled:r.enabled,matchers:o});let c={...o},l=t?Ur(r.minimumReleaseAge):void 0;if(l!==void 0&&(c.cooldownDays=l),typeof r.allowedVersions==`string`){let e=G(r.allowedVersions);if(!e&&!Jr(r.allowedVersions)&&!Fr(r.allowedVersions))throw Error(`Invalid renovate allowedVersions: ${r.allowedVersions}`);if(c.allowedVersions=r.allowedVersions,e)for(let e of s)i.add(e)}(c.allowedVersions||c.cooldownDays!==void 0)&&a.push(c)}for(let e of i){let t=a.findLast(t=>t.allowedVersions!==void 0&&Qr(t,e,e))?.allowedVersions;t&&G(t)&&(r[e]=t)}return{disabled:n.some(e=>!e.enabled)?new $r(`renovate-package-rules`,(e,t)=>n.findLast(n=>Qr(n.matchers,e,t))?.enabled===!1):void 0,pin:r,versionRules:a}}function ni(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={},r=t.cooldown?Ur(e.minimumReleaseAge):void 0;r&&r>0&&(n.cooldown=r);let i=Array.isArray(e.ignoreDeps)?e.ignoreDeps.filter(e=>typeof e==`string`&&!!e).map(e=>new $r(`^${L(e)}$`,(t,n)=>n===e)):[],{disabled:a,pin:o,versionRules:s}=ti(Array.isArray(e.packageRules)?e.packageRules:[],!!t.cooldown),c=a?[...i,a]:i;c.length&&(n.exclude=c),Object.keys(o).length&&(n.pin=o,n.pinNoDowngrade=!0),s.length&&(n.renovateVersionRules=s);let l=e[`github-actions`],u=[...Array.isArray(l?.managerFilePatterns)?l.managerFilePatterns:[],...Array.isArray(l?.fileMatch)?l.fileMatch.filter(e=>typeof e==`string`).map(e=>`/${e}/`):[]].filter(e=>typeof e==`string`&&!!e&&!e.startsWith(`!`)).map(e=>Jr(e)??e);return u.length&&(n.filePatterns={actions:u}),n}async function ri(e,t={}){let n=await Ge(e,async e=>{for(let t of[`renovate.json`,`renovate.jsonc`,`renovate.json5`]){let n=m(e,t),r=await I(re(n,`utf8`));if(r===null)continue;let i;try{i=Ft(r)}catch(e){throw Error(`Unable to parse renovate config ${n}: ${e.message}`)}if(i&&typeof i==`object`)return i}return null});return n?ni(n,t):{}}const ii=Symbol(`cliBaseConfig`),ai={"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},"include-paths":{short:`N`,type:`string`,multiple:!0},"exclude-paths":{short:`X`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},login:{short:`L`,type:`string`},logout:{short:`O`,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`}},oi=/* @__PURE__ */ new Set([`greatest`,`prerelease`,`release`,`patch`,`minor`,`allow-downgrade`]);function si(e){return Array.isArray(e)?!e.length||e.includes(!0)||new Set(ui(e)):e===!0}function ci(e){for(let[t,{short:n}]of Object.entries(ai))if(t===e||n===e)return t;return``}function li(e){return new Set(e.map(We))}function ui(e,t=Ne){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(t):[]}function di(e){for(let[t,n]of Object.entries(e??{}))if(!G(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function fi(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 di(t),t}function pi(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:li(e)}const mi=qe(e=>Ge(e,async e=>{for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=`updates.config.${t}`,r=m(e,n);try{await ne(r)}catch(e){if(e.code===`ENOENT`)continue;throw Error(`Unable to load config file ${n}: ${e.message}`)}try{return(await import(te(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null})),hi=qe(async e=>{let t=await mi(e)??{},n=await ri(e,t.inherit?.renovate),r={...n,...t};return n.pin&&(r.pin={...n.pin,...t.pin},r.pinNoDowngrade=Object.keys(n.pin).filter(e=>!t.pin?.[e])),n.overrides?.length&&(r.overrides=[...n.overrides,...t.overrides??[]]),n.filePatterns&&(r.filePatterns={...n.filePatterns,...t.filePatterns}),di(r.pin),r});function gi(e){let t=[];for(let n of e.matchAll(/([^,|]*)([,|]?)/g)){let e=n[1].trim();if(!e)continue;let r=n[2]===`|`?`|`:`,`;if(e===`off`||e===`direct`){t.push({url:e,fallback:r});break}let i=e.includes(`:/`)||e.startsWith(`/`);t.push({url:nn(!i&&/[.:/]/.test(e)?`https://${e}`:e),fallback:r})}return t}function _i(e){if(typeof e==`string`)return[{url:nn(e),fallback:`,`}];let n=gi(t.GOPROXY||`${Y.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function vi(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const yi=/* @__PURE__ */ new Map;function bi(e,t){return t.some(t=>V(yi,t,()=>{let e=``;for(let[n,r]of t.matchAll(/\[([^\]]*)\]|./gs))e+=r===void 0?n===`*`?`[^/]*`:n===`?`?`[^/]`:L(n):`[${r.replace(/\\/g,`\\\\`)}]`;return RegExp(`^${e}(?:/.*)?$`)}).test(e))}function xi(e,t,n){return bi(e,n)?[{url:`direct`,fallback:`,`}]:t.goProxyChain}function Si(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Ci=/\/v(\d+)$/,wi=/^gopkg\.in\/.*?\.v(\d+)$/;function Ti(e,t=1){let n=wi.exec(e)??Ci.exec(e);return n?Number.parseInt(n[1]):t}function Ei(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Ci,``);return t<=1?n:`${n}/v${t}`}function Di(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(X(t));return Number.isNaN(n)||n===Ti(e)?e:Ei(e,n)}const Oi=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,ki=/^(\S+)\s+(v\S+)/,Ai=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,ji=e=>e.replace(/^"(.*)"$/,`$1`),Mi=/^v(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(?:0|[1-9]\d*|\d*[a-z-][\da-z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-z-][\da-z-]*))*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?$/i,Ni=e=>Mi.test(e)&&!e.endsWith(`-00010101000000-000000000000`),Pi=e=>e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`);function Fi(e){let t=Ai.exec(e);return t&&{origModule:ji(t[1]),origVersion:t[2]??``,targetModule:ji(t[3]),targetVersion:t[4]??``}}function*Ii(e){let t=null;for(let[n,r]of e.entries()){let e=r.trim();if(!e||e.startsWith(`//`))continue;if(t){/^\)\s*(?:\/\/.*)?$/.test(e)?t=null:yield{kind:t,value:e,lineNumber:n};continue}let i=Oi.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function Li(e){for(let{kind:t,value:n}of Ii(e.split(/\r?\n/)))if(t===`module`)return ji(n.split(/\s/,1)[0]);return``}function Ri(e){let t={},n={},r={},i={},a={},o=/* @__PURE__ */ new Set,s=[];for(let{kind:i,value:c}of Ii(e.split(/\r?\n/)))if(i===`tool`)s.push(ji(c.split(/\s/,1)[0]));else if(i===`replace`){let e=Fi(c);e&&Ni(e.targetVersion)&&!Pi(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e&&!e.origVersion&&o.add(e.origModule)}else if(i===`exclude`||i===`require`){let e=ki.exec(c);if(!e)continue;i===`exclude`?(a[ji(e[1])]??=[]).push(e[2]):Ni(e[2])&&((c.includes(`// indirect`)?n:t)[ji(e[1])]=e[2])}for(let e of o)delete t[e],delete n[e];let c=/* @__PURE__ */ new Set([...Object.keys(n),...Object.keys(t)]);for(let e of s){let r=e;for(;r&&!c.has(r);)r=r.includes(`/`)?r.slice(0,r.lastIndexOf(`/`)):``;let a=n[r]?n:t;a[r]&&(i[r]=a[r],delete a[r])}return{deps:t,indirect:n,replace:r,tool:i,...Object.keys(a).length&&{exclude:a}}}const zi=/* @__PURE__ */ new WeakMap;function Bi(e,t,n){let r=/\|(?:[^:]*:)?(.*)/s.exec(t)?.[1]??``,i=V(zi,n,()=>/* @__PURE__ */ new Map);for(let t of r?[m(e,r,`go.mod`),m(e,`go.mod`)]:[m(e,`go.mod`)]){let e=g(t),n=V(i,e,()=>{try{return new Map(Object.entries(Ri(C(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return/* @__PURE__ */ new Map}async function Vi(e,t,n,r,i){let a=({Version:e,Time:t})=>J(t,i?.cooldownDays,i?.now)||!i.accepts(X(e)),o=async(e,o)=>{let{latest:s,fallback:c}=await r(e,o),l=n.get(e),u=s&&!l?.has(s.Version)?s:await c(l),d=!u||!i||i.accepts(X(u.Version))||!i.pinAllowsDowngrade&&!ot(u.Version,t)?u:await I(c(l,i))??(o===`probe`?{...u,accepted:!1}:u);if(!d||a(d))return d;let f=new Set(l);for(let e=d,t=0;e&&t<3;t++)if(f.add(e.Version),e=await c(f,i),e&&a(e))return e;return d},s=Ti(e),c=async t=>{let n=await I(o(Ei(e,t),`probe`));return n&&Number.parseInt(X(n.Version))===t?n:null},[l,u]=await Promise.all([o(e,`primary`),e.startsWith(`golang.org/x/`)||i?.allowMajor===!1?null:c(s+1)]);if(!l)return null;let d=[],f=u;for(let e=s+2;f;e++)f.accepted!==!1&&d.push(f),f=await c(e);let p=d.findLast(e=>!yn(e.Version))??d.at(-1)??l;return[{name:e,old:t,new:X(p.Version),Time:p.Time,...p.path!==e&&{newPath:p.path},sameMajorNew:X(l.Version),sameMajorTime:l.Time},null]}function Hi(e,t){return/* @__PURE__ */ Error(`go list -m ${e} failed: ${String(t?.stderr??``).trim().split(`
10
+ `)[0]||t?.message||String(t)}`)}function Ui(e,n,r,i,a,o){let s=async(e,n,a)=>{let o=`${e}@${a??`latest`}`;try{let s=[`list`,`-m`,`-mod=readonly`,...a?[]:[`-versions`],`-json`,o],{stdout:c}=await i.execFile(`go`,s,{timeout:n,cwd:r,env:{...t,GOPROXY:`direct`}}),l=JSON.parse(c);return{Version:l.Version,Time:l.Time||``,path:e,Versions:l.Versions}}catch(e){throw Hi(o,e)}};return Vi(e,n,a,async(e,t)=>{let n=t===`probe`?i.goProbeTimeout:i.fetchTimeout,r=await s(e,n);return{latest:r,fallback:async(t,i)=>{let a=Zi((r.Versions??[]).join(`
11
+ `),Ti(e,0),t,i);if(!a&&!i)throw Error(`No non-excluded versions found for ${e}`);return a&&s(e,n,a.Version)}}},o)}async function Wi(e,t,n,r,i){let a=new URL(n),{username:o,password:s}=a,{headers:c}=rn(`Basic`,o||s?ue.from(`${decodeURIComponent(o)}:${decodeURIComponent(s)}`).toString(`base64`):``),l=sn(a.href),u=await(t===`primary`?ln(e,l,{headers:c}):e.doFetch(l,{signal:AbortSignal.timeout(e.goProbeTimeout),headers:c}));if(u.ok)return u;if(u.status===404||u.status===410)return null;$(u,l,r,sn(new URL(i).href))}async function Gi(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 ${sn(new URL(t).href)}`)}const Ki=/* @__PURE__ */ new WeakMap,qi=/* @__PURE__ */ new WeakMap;function Ji(e,t,n,r){return Z(Ki,e,`latest${t}${n}/${r}`,async()=>{let i=`${n}/${Si(r)}/@latest`,a=await Wi(e,t,i,r,n);return a&&Gi(a,i,r)})}function Yi(e){let t=[];for(let n of e.split(`
12
+ `)){let[e,r]=n.trim().split(/\s+/);e&&tt(e)&&t.push({Version:e,Time:r??``})}return t}function Xi(e,t,n,r){let i=null;for(let a of e)if(!(n.has(a.Version)||r&&!r.accepts(X(a.Version)))&&!(t&&Number.parseInt(X(a.Version))!==t)){if(i){let e=yn(a.Version);if(r||e===yn(i.Version)?!ot(a.Version,i.Version):e)continue}i=a}return i}function Zi(e,t=0,n=/* @__PURE__ */ new Set,r){return Xi(Yi(e),t,n,r)}async function Qi(e,t,n,r,i=/* @__PURE__ */ new Set,a){let o=Si(r),s=await Z(qi,e,`${t}${n}/${r}`,async()=>{let i=await Wi(e,t,`${n}/${o}/@v/list`,r,n);return i&&{versions:Yi(await i.text()),picks:/* @__PURE__ */ new Map}}),c=s&&V(V(s.picks,a?.accepts,()=>/* @__PURE__ */ new Map),Array.from(i).sort().join(`\0`),()=>Xi(s.versions,Ti(r,0),i,a));if(!c)return null;if(c.Time)return{...c,path:r};let l=`${n}/${o}/@v/${Si(c.Version)}.info`;return await Z(Ki,e,`info${t}${l}`,async()=>{let i=await Wi(e,t,l,r,n);return i&&Gi(i,l,r)})??{...c,path:r}}function $i(e,t,n,r,i,a){let o=Ji(r,`primary`,e,t);return Vi(t,n,i,async(t,n)=>{let[i,a]=await Promise.all([Ji(r,n,e,t),o]);return{latest:i,fallback:(o,s)=>!i&&a?Promise.resolve(null):Qi(r,n,e,t,o,s)}},a)}async function ea(e,t,n,r,i,a,o){let s=Bi(r,t,i);for(let{url:t,fallback:c}of xi(e,i,a))try{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);let a=t===`direct`?await Ui(e,n,r,i,s,o):await $i(t,e,n,i,s,o);if(a)return a}catch(e){if(c===`,`)throw e}throw Error(`Unable to find ${e} on any GOPROXY entry`)}const ta=e=>`("?)${L(e)}\\2`,na=(e,t,n)=>RegExp(`(${e})${ta(t)}(\\s+)v${n}(?=\\s*(?://.*)?$)`);function ra(e,t){let n={},r=Object.entries(t);if(!r.length)return[e,n];let i=e.match(/\r?\n/g)??[],a=e.split(/\r?\n/),o=(e=[],t,n)=>{let r=!1;for(let i of e){let e=a[i];a[i]=e.replace(t,(e,t,r,i)=>n(t,r,i)),r||=a[i]!==e}return r},s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map;for(let{kind:e,value:t,lineNumber:n}of Ii(a))if(e===`require`){let e=ki.exec(t);e&&B(s,ji(e[1]),n)}else if(e===`replace`){let e=Fi(t);e&&B(c,e.targetModule,{...e,lineNumber:n})}else if(e===`tool`){let e=ji(t.split(/\s/,1)[0]);for(;e;)B(l,e,n),e=e.includes(`/`)?e.slice(0,e.lastIndexOf(`/`)):``}for(let[e,{old:t,oldOrig:i,new:a}]of r){let[r,u]=e.split(`\0`),d=i||t,f=Di(u,a),p=(e,t,n)=>`${e}${t}${f}${t}${n}v${a}`,m=L(d);if(r===`replace`){m=null;for(let{targetVersion:e,origModule:t,origVersion:n,lineNumber:r}of c.get(u)??[])X(e)===d&&(o([r],na(`=>\\s+`,u,L(d)),p),!(f===u||t!==u||n)&&(o([r],RegExp(`(^\\s*(?:replace\\s+)?)${ta(u)}(?=\\s+=>)`),(e,t)=>`${e}${t}${f}${t}`),m=`\\S+`))}m!==null&&o(s.get(u),na(`^\\s*(?:require\\s+)?`,u,m),p)&&f!==u&&(n[u]=f),r===`tool`&&f!==u&&o(l.get(u),RegExp(`(^\\s*(?:tool\\s+)?)("?)${L(u)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),(e,t,n)=>`${e}${t}${f}${n}${t}`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const ia=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function aa(e,t){let n=Object.entries(t).sort(([e],[t])=>t.length-e.length);if(!n.length)return e;let r=[],i=(e,t)=>{if(!`"'\``.includes(e[0]))return!1;if(e[0]===`'`)return!0;let i=e.slice(1,-1),a=n.find(([e])=>i===e||i.startsWith(`${e}/`));return a&&r.push({start:t+1,end:t+e.length-1,value:`${a[1]}${i.slice(a[0].length)}`}),!0},a=!1,o=0;for(let t of e.matchAll(ia)){let e=t[0];/^\s/.test(e)||e.startsWith(`//`)||e.startsWith(`/*`)||(a?e===`)`?a=!1:i(e,t.index):e===`import`?o=2:o&&e===`(`?(a=!0,o=0):o&&(i(e,t.index)||--o===0)&&(o=0))}let s=e;for(let e of r.reverse())s=`${s.slice(0,e.start)}${e.value}${s.slice(e.end)}`;return s}const oa=e=>{let t=d(e);return t===`vendor`||t===`testdata`||t[0]===`_`};function sa(e,t,n){if(!Object.keys(t).length)return;let r=/* @__PURE__ */ new Map,i=t=>t.length>e.length&&V(r,t,()=>y(m(t,`go.mod`))||i(f(t)));for(let r of b(`**/*.go`,{cwd:e,exclude:oa})){let a=m(e,r);if(i(f(a)))continue;let o=C(a,`utf8`),s=aa(o,t);s!==o&&n(a,s)}}function ca(e){let t=[],n={};for(let{kind:r,value:i}of Ii(e.split(/\r?\n/)))if(r===`use`)t.push(i.split(/\s/,1)[0]);else if(r===`replace`){let e=Fi(i);e&&Ni(e.targetVersion)&&!Pi(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function la(e,t){try{return T(m(T(g(e)),t,`go.mod`))}catch{return null}}function ua(e){let t=`https://${da(e)}`,n=new URL(t),[r,i,a,...o]=n.pathname.split(`/`);return o.length?(n.pathname=`/${i}/${a}/${dr(t)}/${o.join(`/`)}`,n.href):t}function da(e){return Ci.test(e)?f(e):e}function fa(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function pa(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function ma(e){return e.replace(/-(.)/g,(e,t)=>t.toUpperCase())}function ha(t){if(!t)return e();let n=g(t);try{if(E(n).isDirectory())return n}catch{}return f(n)}function ga(e){let{tokens:t}=s({args:e,strict:!1,allowPositionals:!0,tokens:!0,options:ai}),n=Object.create(null),r=/* @__PURE__ */ new Set,i=(e,t)=>{ai[e]?.multiple?(n[e]??=[]).push(t):n[e]=t};for(let[e,a]of t.entries()){if(a.kind!==`option`)continue;if(!ci(a.name))throw Error(`Unknown option: ${a.rawName}`);if(ai[a.name]?.type===`string`&&a.value===void 0&&!oi.has(a.name))throw Error(`Missing value for --${a.name}`);if(a.inlineValue||!a.value?.startsWith(`-`)){i(a.name,a.value??!0);continue}let o=a.value.startsWith(`--`),s=t[e+1],c=s?.kind===`positional`?s.value:void 0,l=[],u=a.value.substring(o?2:1),d=!1;for(let[e,t]of(o?[u]:u.split(``)).entries()){let n=ci(t);if(!n){l.length=0;break}if(ai[n].type===`boolean`){l.push({key:n,value:!0});continue}let r=o?``:u.substring(e+1);d=!r&&c!==void 0,l.push({key:n,value:r||!d||c});break}if(!l.length)i(a.name,a.value);else{!ai[a.name]?.multiple||oi.has(a.name)?i(a.name,!0):n[a.name]??=[],d&&r.add(e+1);for(let{key:e,value:t}of l)i(e,t)}}return{args:n,positionals:t.flatMap((e,t)=>e.kind===`positional`&&!r.has(t)?e.value:[])}}function _a(e,t){let n={},r=(e,t)=>{t.length&&(n[e]=t)};for(let t of[`json`,`verbose`,`no-cache`,`update`,`indirect`,`error-on-outdated`,`error-on-unchanged`])e[t]&&(n[ma(t)]=!0);e.color&&(n.color=!0,n.noColor=!1),e[`no-color`]&&(n.color=!1,n.noColor=!0),typeof e.timeout==`string`&&(n.timeout=Re(e.timeout,`timeout`)),typeof e.sockets==`string`&&(n.sockets=Re(e.sockets,`sockets`));for(let t of[`registry`,`cooldown`,`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(n[t]=e[t]);for(let t of[`include`,`exclude`])r(t,ui(e[t]).map(pa));r(`types`,ui(e.types));let i=fi(e.pin);Object.keys(i).length&&(n.pin=i),r(`modes`,ui(e.modes));for(let t of oi){let r=si(e[t]);r!==!1&&(n[ma(t)]=r===!0||Array.from(r,pa))}r(`files`,t);for(let t of[`include-paths`,`exclude-paths`])r(ma(t),ui(e[t],Be));return n}async function va(e,t){let n=[...ui(e.file),...t],r=await hi(ha(n[0])),i=_a(e,n);return Object.defineProperty({...r,pin:void 0,...i},ii,{value:{cliKeys:Object.keys(i)}})}function ya(e,t,n){return e.some(e=>e===`--${t}`||/^-[^-]/.test(e)&&e.includes(n)&&Array.from(e.slice(1,e.indexOf(n))).every(e=>ai[ci(e)]?.type!==`string`))}async function ba(e,t){let n=ui(e.file),r=ha(n[0]??t[0]),i=await mi(r)??{},{prewarmOrigins:a}=await import(`./prewarm.js`);for(let t of a(r,{...i,..._a(e,n)})){let e=t.endsWith(`/rate_limit`)?`GET`:`HEAD`;(async()=>{try{await(await fetch(t,{method:e})).arrayBuffer()}catch{}})()}}function xa(e,t){if(typeof e!=`string`)throw Error(`Missing value for --${t}`);return Vn(new URL(e.includes(`://`)?e:`https://${e}`).host)}function Sa(e,t){return e.setEncoding(`utf8`),e.setRawMode(!0),a.write(t),new Promise(t=>{let r=``,i=o=>{for(let s of o)if(!`\r
13
13
  `.includes(s))r=s===`\b`||s===``?r.slice(0,-1):r+s;else return e.off(`data`,i),e.setRawMode(!1),e.pause(),a.write(`
14
- `),(s===``||s===``)&&n(130),t(r)};e.on(`data`,i)})}async function xa(e,t){let n=(`isTTY`in e&&e.isTTY?await ba(e,`token for ${t}: `):await ee(e)).trim();if(!n)throw Error(`token for ${t} is empty`);if(/[\s\p{C}]/u.test(n))throw Error(`token for ${t} contains invalid characters`);return n}async function Sa(e,t,n=!0){let r=String,i=String,a=_a(e,`json`,`j`),s=e=>t.stdout(`${e}\n`);try{if(_a(e,`help`,`h`))return t.stdout(`usage: updates [options] [files...]
14
+ `),(s===``||s===``)&&n(130),t(r)};e.on(`data`,i)})}async function Ca(e,t){let n=(`isTTY`in e&&e.isTTY?await Sa(e,`token for ${t}: `):await ee(e)).trim();if(!n)throw Error(`token for ${t} is empty`);if(/[\s\p{C}]/u.test(n))throw Error(`token for ${t} contains invalid characters`);return n}async function wa(e,t,n=!0){let r=String,i=String,a=ya(e,`json`,`j`),s=e=>t.stdout(`${e}\n`);try{if(ya(e,`help`,`h`))return t.stdout(`usage: updates [options] [files...]
15
15
 
16
16
  Options:
17
17
  -u, --update Update versions and write dependency file
@@ -61,18 +61,18 @@ import{cwd as e,env as t,exit as n,pid as r,platform as i,stderr as a,stdin as o
61
61
  $ updates -f docker-compose.yml
62
62
  $ updates -f Makefile
63
63
  $ updates -f build.sh
64
- `),0;if(_a(e,`version`,`v`)){let e;try{e=C(new URL(`package.json`,t.moduleUrl),`utf8`)}catch{e=C(new URL(`../package.json`,t.moduleUrl),`utf8`)}return s(JSON.parse(e).version),0}let{args:c,positionals:l}=ma(e);if(c.login!==void 0){let e=ya(c.login,`login`),n=await xa(t.stdin??o,e),r=await Hn(e,n,typeof c.forgeapi==`string`?tn(c.forgeapi):void 0);return await Xt(e,n),s(`stored token for ${e} (${r})`),0}if(c.logout!==void 0){let e=ya(c.logout,`logout`);if(!await Zt(e))throw Error(`no stored token for ${e}`);return s(`removed token for ${e}`),0}try{n&&await va(c,l)}catch{}let d=await ga(c,l),{updates:f}=await import(`./api.js`);!d.noColor&&(d.color||t.stdoutIsTTY)&&(r=e=>u(`red`,e,{validateStream:!1}),i=e=>u(`green`,e,{validateStream:!1})),a=!!d.json;let p=await f(d),m=Object.keys(p.results),h=m.length>0,g=p.errors??[];if(d.json)s(JSON.stringify({...p.message&&{message:p.message},...h&&{results:p.results},...g.length&&{errors:g}}));else{if(p.message?s(p.message):h&&s(Ca(p,r,i)),d.update)for(let e of m)s(i(`✨ ${e} updated`));for(let{mode:e,name:t,error:n}of g)s(r(`${e} ${t}: ${n}`))}return g.length?1:d.errorOnOutdated?h?2:0:d.errorOnUnchanged?h?0:2:0}catch(e){let t=on(e.message??String(e));return s(a?JSON.stringify({error:t}):r(t)),1}}function Ca(e,t,n){let r=Object.keys(e.results),i=r.length>1,a=[[`NAME`,...i?[`MODE`]:[],`OLD`,`NEW`,`AGE`,`INFO`]],o=/* @__PURE__ */ new Set;for(let s of r){let r=Object.values(e.results[s]).flatMap(e=>Object.entries(e));for(let[e,c]of r.sort(([e],[t])=>e<t?-1:+(e>t))){let r=`${s}|${e}|${c.old}|${c.new}`;o.has(r)||(o.add(r),a.push([s===`go`?la(e):e,...i?[s]:[],fe(c.old,c.new,t),fe(c.new,c.old,n),c.age||``,c.info||``]))}}return Ne(a,e=>l(e).length)}const wa=[[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`]],Ta={"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 Ea(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Da(e,{now:t,noAffix:n=!1,times:r=wa,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o,aliases:s=!1,aliasesMap:c=Ta,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():Ea(t))-Ea(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 Oa(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/[\r\n]+/)){let e=n.trim(),r=e.indexOf(`=`);if(r===-1||e.startsWith(`#`)||e.startsWith(`;`))continue;let i=e.slice(r+1).trim();if(/^'.*'$/s.test(i))i=i.slice(1,-1);else if(/^".*"$/s.test(i))try{i=JSON.parse(i)}catch{}else i=i.replace(/\\([\\;#])|[;#].*$/g,`$1`).trim();t[e.slice(0,r).trim()]=i}return t}function ka(e){try{return Oa(C(e,`utf-8`))}catch{return}}function Aa(e,t){return We(t,t=>{let n=m(t,e);try{if(E(n).isFile())return n}catch{}return null})}function ja(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),o=t.pop();if(!o)continue;let s=n;for(let e of t)s[e]??={},s=typeof s[e]==`object`?s[e]:{};s[o]=a}return n}function Ma(n,r={},a=e()){let o=i===`win32`?t.USERPROFILE:t.HOME,s=ja(`${n}_`),c=/* @__PURE__ */ new Set([...i===`win32`?[]:[m(`/etc`,n,`config`),m(`/etc`,`${n}rc`)],...o?[m(o,`.config`,n,`config`),m(o,`.config`,n),m(o,`.${n}`,`config`),m(o,`.${n}rc`)]:[],Aa(`.${n}rc`,a),s.config]);return Object.assign({},r,...Array.from(c).filter(Boolean).map(ka),s)}function Na(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const Pa=/* @__PURE__ */ new WeakMap;function Fa(e,t){let n=U(Pa,e,()=>{let t=/* @__PURE__ */ new Map;for(let[n,r]of Object.entries(e)){let e=n.split(`\0`,1)[0],i=e.indexOf(`|`);H(t,i===-1?`.`:e.slice(i+1),[`${Na(e)}${n.slice(e.length)}`,r])}return t});return Object.fromEntries(n.get(t)??[])}const Ia=/[*?{[]/,La=/* @__PURE__ */ new Set([`node_modules`,`bower_components`]);function Ra(e,t){return b(e,{cwd:t,exclude:e=>La.has(e.name),withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>g(e.parentPath,e.name))}async function za(e,t,n,r=32){let i=await A(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>Ra(e.slice(1),t)).map(e=>h(t,e).replace(/\\/g,`/`))),o=/* @__PURE__ */ new Map;for(let n of e)if(!n.startsWith(`!`))for(let e of Ia.test(n)?Ra(n,t):[g(m(t,n))]){let n=h(t,e).replace(/\\/g,`/`);!a.has(n)&&!o.has(e)&&o.set(e,`./${n}`)}return(await L(o,async([e,t])=>{try{let r=await A(m(e,n)),a=h(i,r);return a===`..`||a.startsWith(`..${_}`)||p(a)?null:{absPath:r,content:await re(r,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const Ba=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#](?:[^:#]|:(?=\S))*?))\s*:(?:\s+(.*))?$/,Va=/\s#/;function Ha(e){let t=Ba.exec(e);if(!t)return null;let[n,r,i,a,o,s=``]=t,c=e.length-s.length,l=s.startsWith(`#`)?0:s.search(Va),u=(l===-1?s:s.slice(0,l)).trimEnd(),d=u[0];return(d===`"`||d===`'`)&&u.length>1&&u.endsWith(d)&&(u=u.slice(1,-1),c+=1),{indent:r.length,key:i??a??o,value:u,valueIndex:c}}function Ua(e){let t=[],n=1,r=-1,i=0,a=``;for(let o=1;o<e.length-1;o++){let s=e[o];if(a)s===`\\`&&a===`"`||s===a&&a===`'`&&e[o+1]===`'`?o++:s===a&&(a=``);else if(s===`"`||s===`'`)a=s;else if(s===`{`||s===`[`)i++;else if(s===`}`||s===`]`){if(i===0)return[];i--}else s===`:`&&i===0&&r===-1?r=o-n:s===`,`&&i===0&&(t.push({colon:r,start:n,text:e.slice(n,o)}),n=o+1,r=-1)}return a||i!==0?[]:(t.push({colon:r,start:n,text:e.slice(n,-1)}),t)}function Wa(e){let t=e.length-e.trimStart().length,n=e.trim();if(!n)return null;let r=n[0];if(r===`"`||r===`'`){let e=n.indexOf(r,1);return e===-1?null:{value:n.slice(1,e),valueIndex:t+1}}let i=n.search(Va);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function Ga(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return[];let n=[];for(let r of Ua(e)){if(r.colon===-1)return[];let e=Wa(r.text.slice(0,r.colon)),i=Wa(r.text.slice(r.colon+1));if(!e||!i)return[];n.push({key:e.value,value:i.value,valueIndex:t+r.start+r.colon+1+i.valueIndex})}return n}function Ka(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=Ha(i);if(e?.indent===0){if(r=e.key===`registries`,e.key===`registry`&&e.value&&(t=e.value),r)for(let t of Ga(e.value,e.valueIndex))n[t.key]=t.value}else r&&e?.value&&(n[e.key]=e.value)}return{registry:t,registries:Object.fromEntries(Object.entries(n).filter(([e,t])=>!t.includes("${")))}}function qa(e){try{return{content:C(e,`utf8`)}}catch(e){if(e.code!==`ENOENT`)throw e;return null}}function Ja(e){let t={},n=[{indent:-1,map:t}];for(let t of e.split(/\r?\n/)){let e=Ha(t);if(!e)continue;for(;e.indent<=n.at(-1).indent;)n.pop();let r=n.at(-1).map;r[e.key]=e.value||{},e.value||n.push({indent:e.indent,map:r[e.key]})}return t}function Ya(e,t){let n={tokens:{},registries:{}};try{let t=typeof e==`string`?JSON.parse(e):e??{};for(let[e,r]of Object.entries(t)){let{host:t,pathname:i,href:a}=new URL(e);for(let[e,{authToken:o}]of Object.entries(r))typeof o==`string`&&(n.tokens[`//${t}${i.replace(/\/$/,``)}/:${e===`@`?``:`${e}:`}_authToken`]=o,n.registries[e===`@`?`default`:e]=a)}}catch(e){throw Error(`Invalid _auth in ${t}: ${e.message}`)}return n}const Xa=/* @__PURE__ */ new Map;function Za(e){return U(Xa,e,()=>Ka(We(g(e),e=>qa(m(e,`pnpm-workspace.yaml`)))?.content??``))}const Qa=/* @__PURE__ */ new Map;function $a(){return t.XDG_CONFIG_HOME?m(t.XDG_CONFIG_HOME,`pnpm`):i===`darwin`?m(P(),`Library/Preferences/pnpm`):i===`win32`&&t.LOCALAPPDATA?m(t.LOCALAPPDATA,`pnpm/config`):m(P(),`.config/pnpm`)}function eo(){let e=$a();return U(Qa,e,()=>{let t=qa(m(e,`config.yaml`))?.content??``;return{...Ka(t),auth:Ya(Ja(t)._auth,`config.yaml`)}})}const to=(e,{value:t,valueIndex:n},r)=>Ga(t,n).map(t=>({type:e,name:t.key,value:t.value,lineIndex:r,valueIndex:t.valueIndex}));function*no(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
65
- `).entries()){let e=Ha(a);if(!e)continue;let{indent:o,key:s,value:c,valueIndex:l}=e;if(o===0){if(t=s,n=s,r=-1,s===`catalog`)yield*to(s,e,i);else if(s===`catalogs`)for(let e of Ga(c,l))yield*to(`catalogs.${e.key}`,e,i)}else t===`catalogs`&&(r===-1||o<=r)?(n=`catalogs.${s}`,r=o,yield*to(n,e,i)):c&&(t===`catalog`||t===`catalogs`)&&(yield{type:n,name:s,value:c,lineIndex:i,valueIndex:l})}}function ro(e,t){let n;for(let{type:r,name:i,value:a,lineIndex:o,valueIndex:s}of Array.from(no(e)).reverse()){let c=t[`${r}${i}`];if(!c||(c.oldOrig||c.old)!==a)continue;let l=(n??=e.split(`
64
+ `),0;if(ya(e,`version`,`v`)){let e;try{e=C(new URL(`package.json`,t.moduleUrl),`utf8`)}catch{e=C(new URL(`../package.json`,t.moduleUrl),`utf8`)}return s(JSON.parse(e).version),0}let{args:c,positionals:l}=ga(e);if(c.login!==void 0){let e=xa(c.login,`login`),n=await Ca(t.stdin??o,e),r=await Wn(e,n,typeof c.forgeapi==`string`?nn(c.forgeapi):void 0);return await Zt(e,n),s(`stored token for ${e} (${r})`),0}if(c.logout!==void 0){let e=xa(c.logout,`logout`);if(!await Qt(e))throw Error(`no stored token for ${e}`);return s(`removed token for ${e}`),0}try{n&&await ba(c,l)}catch{}let d=await va(c,l),{updates:f}=await import(`./api.js`);!d.noColor&&(d.color||t.stdoutIsTTY)&&(r=e=>u(`red`,e,{validateStream:!1}),i=e=>u(`green`,e,{validateStream:!1})),a=!!d.json;let p=await f(d),m=Object.keys(p.results),h=m.length>0,g=p.errors??[];if(d.json)s(JSON.stringify({...p.message&&{message:p.message},...h&&{results:p.results},...g.length&&{errors:g}}));else{if(p.message?s(p.message):h&&s(Ta(p,r,i)),d.update)for(let e of m)s(i(`✨ ${e} updated`));for(let e of new Set(g.map(({mode:e,name:t,error:n})=>`${e} ${t}: ${n}`)))s(r(e))}return g.length?1:d.errorOnOutdated?h?2:0:d.errorOnUnchanged?h?0:2:0}catch(e){let t=sn(e.message??String(e));return s(a?JSON.stringify({error:t}):r(t)),1}}function Ta(e,t,n){let r=Object.keys(e.results),i=r.length>1,a=[[`NAME`,...i?[`MODE`]:[],`OLD`,`NEW`,`AGE`,`INFO`]],o=/* @__PURE__ */ new Set;for(let s of r){let r=Object.values(e.results[s]).flatMap(e=>Object.entries(e));for(let[e,c]of r.sort(([e],[t])=>e<t?-1:+(e>t))){let r=`${s}|${e}|${c.old}|${c.new}`;o.has(r)||(o.add(r),a.push([s===`go`?da(e):e,...i?[s]:[],pe(c.old,c.new,t),pe(c.new,c.old,n),c.age||``,c.info||``]))}}return Fe(a,e=>l(e).length)}const Ea=[[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`]],Da={"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 Oa(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function ka(e,{now:t,noAffix:n=!1,times:r=Ea,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o,aliases:s=!1,aliasesMap:c=Da,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():Oa(t))-Oa(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 Aa(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/[\r\n]+/)){let e=n.trim(),r=e.indexOf(`=`);if(r===-1||e.startsWith(`#`)||e.startsWith(`;`))continue;let i=e.slice(r+1).trim();if(/^'.*'$/s.test(i))i=i.slice(1,-1);else if(/^".*"$/s.test(i))try{i=JSON.parse(i)}catch{}else i=i.replace(/\\([\\;#])|[;#].*$/g,`$1`).trim();t[e.slice(0,r).trim()]=i}return t}function ja(e){try{return Aa(C(e,`utf-8`))}catch{return}}function Ma(e,t){return Ke(t,t=>{let n=m(t,e);try{if(E(n).isFile())return n}catch{}return null})}function Na(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),o=t.pop();if(!o)continue;let s=n;for(let e of t)s[e]??={},s=typeof s[e]==`object`?s[e]:{};s[o]=a}return n}function Pa(n,r={},a=e()){let o=i===`win32`?t.USERPROFILE:t.HOME,s=Na(`${n}_`),c=/* @__PURE__ */ new Set([...i===`win32`?[]:[m(`/etc`,n,`config`),m(`/etc`,`${n}rc`)],...o?[m(o,`.config`,n,`config`),m(o,`.config`,n),m(o,`.${n}`,`config`),m(o,`.${n}rc`)]:[],Ma(`.${n}rc`,a),s.config]);return Object.assign({},r,...Array.from(c).filter(Boolean).map(ja),s)}function Fa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const Ia=/* @__PURE__ */ new WeakMap;function La(e,t){let n=V(Ia,e,()=>{let t=/* @__PURE__ */ new Map;for(let[n,r]of Object.entries(e)){let e=n.split(`\0`,1)[0],i=e.indexOf(`|`);B(t,i===-1?`.`:e.slice(i+1),[`${Fa(e)}${n.slice(e.length)}`,r])}return t});return Object.fromEntries(n.get(t)??[])}const Ra=/[*?{[]/,za=/* @__PURE__ */ new Set([`node_modules`,`bower_components`]);function Ba(e,t){return b(e,{cwd:t,exclude:e=>za.has(e.name),withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>g(e.parentPath,e.name))}async function Va(e,t,n,r=32){let i=await ae(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>Ba(e.slice(1),t)).map(e=>h(t,e).replace(/\\/g,`/`))),o=/* @__PURE__ */ new Map;for(let n of e)if(!n.startsWith(`!`))for(let e of Ra.test(n)?Ba(n,t):[g(m(t,n))]){let n=h(t,e).replace(/\\/g,`/`);!a.has(n)&&!o.has(e)&&o.set(e,`./${n}`)}return(await F(o,async([e,t])=>{try{let r=await ae(m(e,n)),a=h(i,r);return a===`..`||a.startsWith(`..${_}`)||p(a)?null:{absPath:r,content:await re(r,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const Ha=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#](?:[^:#]|:(?=\S))*?))\s*:(?:\s+(.*))?$/,Ua=/\s#/;function Wa(e){let t=Ha.exec(e);if(!t)return null;let[n,r,i,a,o,s=``]=t,c=e.length-s.length,l=s.startsWith(`#`)?0:s.search(Ua),u=(l===-1?s:s.slice(0,l)).trimEnd(),d=u[0];return(d===`"`||d===`'`)&&u.length>1&&u.endsWith(d)&&(u=u.slice(1,-1),c+=1),{indent:r.length,key:i??a??o,value:u,valueIndex:c}}function Ga(e){let t=[],n=1,r=-1,i=0,a=``;for(let o=1;o<e.length-1;o++){let s=e[o];if(a)s===`\\`&&a===`"`||s===a&&a===`'`&&e[o+1]===`'`?o++:s===a&&(a=``);else if(s===`"`||s===`'`)a=s;else if(s===`{`||s===`[`)i++;else if(s===`}`||s===`]`){if(i===0)return[];i--}else s===`:`&&i===0&&r===-1?r=o-n:s===`,`&&i===0&&(t.push({colon:r,start:n,text:e.slice(n,o)}),n=o+1,r=-1)}return a||i!==0?[]:(t.push({colon:r,start:n,text:e.slice(n,-1)}),t)}function Ka(e){let t=e.length-e.trimStart().length,n=e.trim();if(!n)return null;let r=n[0];if(r===`"`||r===`'`){let e=n.indexOf(r,1);return e===-1?null:{value:n.slice(1,e),valueIndex:t+1}}let i=n.search(Ua);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function qa(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return[];let n=[];for(let r of Ga(e)){if(r.colon===-1)return[];let e=Ka(r.text.slice(0,r.colon)),i=Ka(r.text.slice(r.colon+1));if(!e||!i)return[];n.push({key:e.value,value:i.value,valueIndex:t+r.start+r.colon+1+i.valueIndex})}return n}function Ja(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=Wa(i);if(e?.indent===0){if(r=e.key===`registries`,e.key===`registry`&&e.value&&(t=e.value),r)for(let t of qa(e.value,e.valueIndex))n[t.key]=t.value}else r&&e?.value&&(n[e.key]=e.value)}return{registry:t,registries:Object.fromEntries(Object.entries(n).filter(([e,t])=>!t.includes("${")))}}function Ya(e){try{return{content:C(e,`utf8`)}}catch(e){if(e.code!==`ENOENT`)throw e;return null}}function Xa(e){let t={},n=[{indent:-1,map:t}];for(let t of e.split(/\r?\n/)){let e=Wa(t);if(!e)continue;for(;e.indent<=n.at(-1).indent;)n.pop();let r=n.at(-1).map;r[e.key]=e.value||{},e.value||n.push({indent:e.indent,map:r[e.key]})}return t}function Za(e,t){let n={tokens:{},registries:{}};try{let t=typeof e==`string`?JSON.parse(e):e??{};for(let[e,r]of Object.entries(t)){let{host:t,pathname:i,href:a}=new URL(e);for(let[e,{authToken:o}]of Object.entries(r))typeof o==`string`&&(n.tokens[`//${t}${i.replace(/\/$/,``)}/:${e===`@`?``:`${e}:`}_authToken`]=o,n.registries[e===`@`?`default`:e]=a)}}catch(e){throw Error(`Invalid _auth in ${t}: ${e.message}`)}return n}const Qa=/* @__PURE__ */ new Map;function $a(e){return V(Qa,e,()=>Ja(Ke(g(e),e=>Ya(m(e,`pnpm-workspace.yaml`)))?.content??``))}const eo=/* @__PURE__ */ new Map;function to(){return t.XDG_CONFIG_HOME?m(t.XDG_CONFIG_HOME,`pnpm`):i===`darwin`?m(N(),`Library/Preferences/pnpm`):i===`win32`&&t.LOCALAPPDATA?m(t.LOCALAPPDATA,`pnpm/config`):m(N(),`.config/pnpm`)}function no(){let e=to();return V(eo,e,()=>{let t=Ya(m(e,`config.yaml`))?.content??``;return{...Ja(t),auth:Za(Xa(t)._auth,`config.yaml`)}})}const ro=(e,{value:t,valueIndex:n},r)=>qa(t,n).map(t=>({type:e,name:t.key,value:t.value,lineIndex:r,valueIndex:t.valueIndex}));function*io(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
65
+ `).entries()){let e=Wa(a);if(!e)continue;let{indent:o,key:s,value:c,valueIndex:l}=e;if(o===0){if(t=s,n=s,r=-1,s===`catalog`)yield*ro(s,e,i);else if(s===`catalogs`)for(let e of qa(c,l))yield*ro(`catalogs.${e.key}`,e,i)}else t===`catalogs`&&(r===-1||o<=r)?(n=`catalogs.${s}`,r=o,yield*ro(n,e,i)):c&&(t===`catalog`||t===`catalogs`)&&(yield{type:n,name:s,value:c,lineIndex:i,valueIndex:l})}}function ao(e,t){let n;for(let{type:r,name:i,value:a,lineIndex:o,valueIndex:s}of Array.from(io(e)).reverse()){let c=t[`${r}${i}`];if(!c||(c.oldOrig||c.old)!==a)continue;let l=(n??=e.split(`
66
66
  `))[o];n[o]=l.slice(0,s)+c.new+l.slice(s+a.length)}return n?n.join(`
67
- `):e}function io(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=Ha(r);if(e?.indent===0&&e.key===`packages`)n=!0,e.value.startsWith(`[`)&&e.value.endsWith(`]`)&&t.push(...Ua(e.value).map(e=>e.text));else if(n){let e=r.trim();if(e.startsWith(`-`))t.push(e.slice(1));else if(e&&!e.startsWith(`#`))break}}return t.map(e=>Wa(e)?.value).filter(e=>e!==void 0)}const ao=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,oo=/* @__PURE__ */ new Set([`resolutions`,`overrides`]);function so(e){let t=e.replace(/^.*?[^ |@]>/,``).trim();return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(t)?.[1]??(t||e)}const co=X.registry,lo=/* @__PURE__ */ new Map,uo=/* @__PURE__ */ new Map,fo=e=>e.replace(/^\$\{?([^}]*)\}?$|\$\{([^}]*)\}/g,(e,n,r)=>t[n||r]||``);function po(e){let t=new URL(e.startsWith(`//`)?`http:${e}`:e),n=[],r;for(;r!==`/`&&t.pathname!==r;)r=t.pathname||`/`,n.push(`//${t.host}${r.replace(/\/$/,``)}`),t.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname;return n}function mo(e,t,n){let r=po(e),i=(e,n)=>t[`${e}:${n}`]||t[`${e}/:${n}`],a=n&&r.map(e=>i(e,`${n}:_authToken`)).find(Boolean);if(a)return{token:fo(a),type:`Bearer`};for(let e of r){let t=i(e,`_authToken`);if(t)return{token:fo(t),type:`Bearer`};let n=i(e,`username`),r=i(e,`_password`);if(n&&r){let e=Buffer.from(fo(r),`base64`).toString(`utf8`);return{token:Buffer.from(`${fo(n)}:${e}`).toString(`base64`),type:`Basic`}}let a=i(e,`_auth`);if(a)return{token:fo(a),type:`Basic`}}if(e===co&&t._auth)return{token:fo(t._auth),type:`Basic`}}function ho(e,n,r){let i=U(lo,r??``,()=>Ma(`npm`,{registry:co},r)),a=t.pnpm_config__auth||t.PNPM_CONFIG__AUTH||void 0,o=U(uo,a??``,()=>Ya(a,`pnpm_config__auth`)),s=eo(),c=r?Za(r):{registries:{}},l=e.startsWith(`@`)?e.split(`/`)[0]:``,u=tn(fo(l&&(o.registries[l]||c.registries[l]||s.registries[l]||s.auth.registries[l]||i[`${l}:registry`])||n.registry||o.registries.default||c.registries.default||c.registry||s.registries.default||s.registry||s.auth.registries.default||i.registry||co));return{auth:mo(u,{...i,...s.auth.tokens,...o.tokens},l),registry:u}}const go=(e,t)=>`${e}/${t.replace(/\//g,`%2f`)}`,_o=/* @__PURE__ */ new WeakMap,vo=/* @__PURE__ */ new WeakMap,yo=/* @__PURE__ */ new WeakMap,bo=/* @__PURE__ */ new WeakMap,xo=(e,t)=>`${e}v2${t?`-dates`:``}`;function So(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]=e.versions[n]?.deprecated?{deprecated:!0}:{};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function Co(e,t,n,r,i,a,o=``){let s=oo.has(t)?so(e):[`packageManager`,`engines`,`volta`].includes(t)&&e===`yarn`&&(W(Sn(o))?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=ho(s,n,a),u=go(l,s),d=xo(u,!!r.needsDates);return[await Q(_o,i,d,async()=>{let t=nn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await fn(u,i,t,ln(So),d);return`body`in n||$(n.res,u,e,l),JSON.parse(n.body)}),l]}async function wo(e,t,n,r,i,a){let{auth:o,registry:s}=ho(e,n,a),c=go(s,e),l=`${c}/${t}`;return Q(vo,i,l,async()=>{try{let e=nn(o?.type,o?.token),n=await pn(l,i,e,ln(e=>({repository:e.repository,homepage:e.homepage,dist:{integrity:e.dist?.integrity},_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})),`${l}#integrity`);if(!(`body`in n))return{};let a=JSON.parse(n.body),s=/(\d{13})/.exec(a?._npmOperationalInternal?.tmp??``),u=s?new Date(Number(s[1])).toISOString():``;return!u&&r.needsDates&&(u=(await _o.get(i)?.get(xo(c,!0)))?.time?.[t]||``),u||=(await R(Q(yo,i,c,async()=>{let t=await cn(i,c,e);return t.ok?await t.json():null})))?.time?.[t]||``,{repository:a.repository,homepage:a.homepage,date:u,integrity:a.dist?.integrity}}catch{return{}}})}const To=e=>e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`),Eo=e=>e.startsWith(`link:`)||e.startsWith(`file:`),Do=e=>e.startsWith(`catalog:`),Oo=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function ko(e){let t=Oo.exec(e.trim());return t&&K(t[2])?{name:t[1],range:t[2]}:null}const Ao=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,jo=/^@([^/]+)\/(.+)$/;function Mo(e,t){let n=Ao.exec(e);if(n)return{scope:n[1]||n[3],name:n[2]||n[4],version:n[5]};if(e.startsWith(`jsr:`)&&!e.startsWith(`jsr:@`)){let n=jo.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}function No(e,t){if(!To(t))return ko(t)?.name??e;let{scope:n,name:r}=Mo(t,e);return n?`@${n}/${r}`:e}async function Po(e,t){if(!jo.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Q(bo,t,n,async()=>{let r=await fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},ln(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||$(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function Fo(e,t){try{JSON.parse(e)}catch{return e}let n=/* @__PURE__ */ new Map,r=0,i=()=>{for(;/\s/.test(e[r]??``);)r++},a=()=>{let t=r++;for(;r<e.length;)if(e[r]===`\\`)r+=2;else if(e[r++]===`"`)break;return{start:t,end:r,value:JSON.parse(e.slice(t,r))}},o=t=>{if(i(),e[r]===`"`)n.set(JSON.stringify(t),a());else if(e[r]===`{`||e[r]===`[`){let n=e[r++]===`{`?`}`:`]`;i();for(let s=0;e[r]!==n&&r<e.length;s++){let c=s;if(n===`}`&&(c=a().value,i(),e[r++]!==`:`))return;if(o([...t,c]),i(),e[r]===`,`)r++,i();else break}e[r]===n&&r++}else for(;r<e.length&&!/[,}\]]/.test(e[r]);)r++};o([]);let s=[];for(let[e,r]of Object.entries(t)){let[t,i,a]=e.split(`\0`),o=n.get(a||JSON.stringify([t,i])),c=o??n.get(JSON.stringify([t])),l=o?``:`${i}@`;c?.value===`${l}${r.oldOrig||r.old}`&&s.push({...c,value:JSON.stringify(`${l}${r.new}`)})}for(let t of s.sort((e,t)=>t.start-e.start))e=`${e.slice(0,t.start)}${t.value}${e.slice(t.end)}`;return e}const Io=String.raw`[<>]=?|~>|[\^~=]`,Lo=new RegExp(String.raw`^(${Io})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),Ro=RegExp(`^(?:${Io})$`),zo=/^[xX*]$/,Bo=/\+[0-9A-Za-z.-]+/g,Vo=/\|\||[\dxX*]\s+\S/;function Ho(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&Ro.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function Uo(e,t){let n=Lo.exec(e);if(!n)return e;let[r,i=``,a,o,s,c=``]=n,l=s.split(`.`);if(i===`<`&&l.length<=3&&!/[xX*]/.test(s)){let{major:e,minor:n,patch:r}=W(t);return`${i}${a}${l.length===1?`${e+1}`:l.length===2?`${e}.${n+1}`:!c&&s.endsWith(`.0.0`)?`${e+1}.0.0`:!c&&s.endsWith(`.0`)?`${e}.${n+1}.0`:`${e}.${n}.${r+1}`}`}if(i===`>`||i===`<`)return e;if(t.includes(`-`))return`${i}${a}${o}${t}`;let u=t.split(`.`);return`${i}${a}${o}${l.map((e,t)=>zo.test(e)?e:u[t]??`0`).join(`.`)}`}function Wo(e,t){if(G(t,e))return e;let n=Ho(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=Uo(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=Uo(r,t),n.join(` `)}function Go(e,t,n,r){let i=(n||e).replace(Bo,``),a=r===`peerDependencies`||Vo.test(i)?Wo(i,t):Uo(i,t);return G(t,a)?a:i}function Ko(e){if(/[xX*]/.test(e))return e;let t=e.match(ao);return t?.length===1?e.replace(ao,()=>Sn(t[0])):e}async function qo(e,t,n){let r=await tr(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,`commits`,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 Jo(e,t,n,r){return(await or(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function Yo(e){let t=e.lastIndexOf(`#`);if(t===e.length-1)return null;let n=e.slice(0,t===-1?e.length:t).replace(/^git\+/i,``),r=t===-1?``:e.slice(t+1),i=/^(?:github:|git@github\.com:|(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:])(.+)$/i.exec(n);if(i)n=i[1];else if(n.includes(`:`))return null;if(!r){let e=/^([^/]+\/[^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i.exec(n);if(!e)return null;n=e[1],r=e[2]}n=n.replace(/\.git$/i,``);let a=n.split(`/`);if(a.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(a[0])||!/^[a-z\d._-]{1,100}$/i.test(a[1]))return null;let o=r.startsWith(`semver:`)&&K(r.slice(7))?r.slice(7):null;return!o&&!Xn.test(r)&&!et(r)?null:{user:a[0],repo:a[1],ref:o??r,selector:o}}async function Xo(e,t,n){let r=Yo(t.old);if(!r)return null;let{user:i,repo:a,ref:o,selector:s}=r,c=e=>{let n=t.old.lastIndexOf(o);return`${t.old.slice(0,n)}${e}${t.old.slice(n+o.length)}`};if(Xn.test(o)){let{hash:t,commit:r}=await qo(i,a,n),s=t.substring(0,o.length);return!t||o.toLowerCase()===s.toLowerCase()?null:{key:e,newRange:c(s),user:i,repo:a,oldRef:o,newRef:s,newDate:Qn(r)}}let l=qn(await Jo(i,a,o,n),s?Sn(s):o);if(!l)return null;let u=s?Go(s,Z(l),s):l;return u===o?null:{key:e,newRange:c(u),user:i,repo:a,oldRef:o,newRef:u}}function Zo(e){let t=/^(?!\.\.?\/)(?:https?:\/\/([^/]+)\/)?(([^/@]+)\/([^/@]+)[^@]*)@(.+)$/.exec(e);if(!t)return null;let[n,r=null,i,a,o,s]=t;return{host:r,owner:a,repo:o,ref:s,name:r?`${r}/${i}`:i,isHash:Yn.test(s)}}function Qo(e,t){return e?e===`github.com`?en:`https://${e}/api/v1`:t}async function $o(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`,o=i.noCache?null:await Bt(a);if(o)return o.body;try{let e=await Kn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=Qn(await e.json());return t&&!i.noCache&&Ut(a,`immutable`,t),t}catch(e){if(e instanceof Un)throw e;return}}function es(e,t){let n=e.replace(/^v/i,``);return cr(W(n)?.version??n,t)}const ts=/^(\s*(?:-\s*)?)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/;function ns(e,t){let n=ts.exec(e);if(!n)return null;let r=n[1].length,i=n[1].indexOf(`-`)+1;for(;t.length&&t.at(-1).indent>=(i||r);)t.pop();return{indent:r,key:(n[2]??n[3]??n[4]).trim(),value:n[5]}}const rs=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function is(e){let t=/^(\s*(?:-\s*)?uses:\s*)(?:(["'])(.*?)\2|((?!["'#])\S+))([^\n]*)$/.exec(e);if(!t)return null;let[n,r,i=``,a,o,s]=t,c=a??o;if(!c)return null;let l=s.search(/(?<=\s)#/),u=l===-1?``:s.slice(l),d=u?rs.exec(u.slice(1)):null;return{prefix:r,quote:i,value:c,gap:l===-1?s:s.slice(0,l),comment:u,pinnedVersion:d?.[1]??``,pinnedEnd:d?d[0].length+1:0}}function as(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
68
- `).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=ns(e,r);if(!t)return e;let a=t.key===`uses`&&(r.length===3&&r[0].key===`jobs`&&r[2].key===`steps`||r.length===2&&(r[0].key===`jobs`||r[0].key===`runs`&&r[1].key===`steps`)),o=t.value.replace(/(?:^|\s)#.*$/,``).trim();if(o||r.push(t),/^[>|](?:[+-]?\d?|\d[+-]?)$/.test(o))return i=t.indent,e;let s=a&&is(e);if(!s)return e;let{prefix:c,quote:l,value:u,gap:d,comment:f,pinnedVersion:p,pinnedEnd:m}=s,h=/^https?:\/\//.exec(u)?.[0]??``,g=p||/^#\s*(\S+)\s*$/.exec(f)?.[1]||``,_=u.slice(h.length),v=n.get(`${_}${g?`#${g}`:``}`)??n.get(_);if(!v)return e;let y=v.newComment&&p?`# ${v.newComment}${f.slice(m)}`:f;return`${c}${l}${h}${v.name}@${v.newRef}${l}${d}${y}`}).join(`
69
- `)}const os=RegExp(`(?:^|/)(?:(?:workflow-templates|(?:${Le(I)})/(?:workflows|actions))/.+|action)\\.ya?ml$`);function ss(e){return os.test(e.replace(/\\/g,`/`))}function cs(e){let t=/* @__PURE__ */ new Set;try{let n=m(e,`workflows`);for(let e of w(n))/\.ya?ml$/.test(e)&&t.add(g(n,e))}catch{}try{for(let n of w(e,{recursive:!0,withFileTypes:!0}))n.isFile()&&ss(m(n.parentPath,n.name))&&t.add(g(n.parentPath,n.name))}catch{}return Array.from(t)}const ls=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,us=/^\s*(?:#\s*syntax\s*=\s*|FROM(?:\s+--\S+)*\s+(?!--)|(?:ONBUILD\s+)?COPY(?:\s+--\S+)*?\s+--from=)(\S+)/i,ds=/^\s*(?:ONBUILD\s+)?RUN(?:\s+--\S+)+/i,fs=/(?<=\s--mount=(?:[^\s,]*,)*from=)[^\s,]+/gi,ps=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,ms=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,hs=/^\uFEFF?[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,gs=/^\s*#\s*(syntax|escape|check)\s*=\s*(\S+)/i,_s=/^\s*(?:ONBUILD\s+)?(?:ADD|COPY|RUN)\s/i,vs=/(?:[^\s"'\\]|\\.|"(?:\\.|[^"\\])*"|'[^']*')+/g;function ys(e,t){return e.includes(`$`)?e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>t(n||r)??e):e}function bs(e){let t=Array.from(e.matchAll(vs),([e])=>e),n=[];for(let[e,r]of t.entries()){let i=/^\d*<<-?/.exec(r)?.[0];if(!i||r.includes(`<`,i.length))continue;let a=r.slice(i.length)||t[e+1];a&&n.push({chomp:i.endsWith(`-`),name:a.replace(/\\(.)|["']/g,`$1`)})}return n}function*xs(e){let t=`\\`,n=!0,r=[],i=``,a=0,o=0;for(let s of e.split(`
70
- `)){let e=o;if(o+=s.length+1,r.length){let{chomp:e,name:t}=r[0];(e?s.replace(/^\t+/,``):s).replace(/\r$/,``)===t&&r.shift();continue}if(n){let r=gs.exec(s);if(r){r[1].toLowerCase()===`escape`&&(t=r[2]),yield{text:s,index:e};continue}n=!1}let c=s.trimStart();if(!c||c.startsWith(`#`)){i&&(i+=`${` `.repeat(s.length)}\n`);continue}i||(a=e);let l=s.trimEnd().length;s[l-1]===t&&s[l-2]!==t?i+=`${s.slice(0,l-1)} ${s.slice(l)}\n`:(i+=s,yield{text:i,index:a},r=i.includes(`<<`)&&_s.test(i)?bs(i):[],i=``)}i&&(yield{text:i,index:a})}function*Ss(e,t=!1){let n=/* @__PURE__ */ new Map,r=(e,r)=>({image:e,index:r,args:n,resolved:ys(e,e=>n.get(e)?.[t?`resolved`:`value`])}),i=!1;for(let{text:t,index:a}of xs(e)){let e=i?null:hs.exec(t);if(e){let r=e[2]?.replace(/^(['"])(.*)\1$/,`$2`)??``;n.set(e[1],{value:r,resolved:ys(r,e=>n.get(e)?.resolved),start:a+t.lastIndexOf(r)});continue}i||=/^\s*FROM\s/i.test(t);let o=us.exec(t);o&&(yield r(o[1],a+o[0].length-o[1].length));let s=ds.exec(t)?.[0];if(s&&/from=/i.test(s))for(let e of s.matchAll(fs))yield r(e[0],a+e.index)}}const Cs=/^(?:(?:index|registry-1)\.)?docker\.io$/;function ws(e){let t=e.split(`/`);return t.length>1&&Cs.test(t[0])&&t.shift(),{registry:t.length>2||t.length>1&&(t[0]===`localhost`||t[0].includes(`.`)||t[0].includes(`:`))?t.shift():null,namespace:t.length===1?`library`:t.slice(0,-1).join(`/`),repo:t.at(-1)}}function Ts(e){let{registry:t,namespace:n,repo:r}=ws(e);if(t)return[e];let i=n===`library`?[r,`library/${r}`]:[`${n}/${r}`];return[.../* @__PURE__ */ new Set([e,...i,...i.map(e=>`docker.io/${e}`)])]}function Es(e){if(e.includes(`$`))return null;e=e.replace(/^docker:\/\//,``);let[t,n,...r]=e.split(`@`);if(r.length||n&&!/^[a-z][a-z0-9+._-]*:[0-9a-f]+$/i.test(n))return null;let i=t.lastIndexOf(`:`),a=i!==-1&&t.lastIndexOf(`/`)<i;if(!a&&!n)return null;let o=a?t.substring(0,i):t,s=a?t.substring(i+1):`latest`;if(a&&!n&&!ls.test(s))return null;let{registry:c,namespace:l,repo:u}=ws(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function Ds(e){let t=ls.exec(e);return!t||t[2]&&!t[3]&&Xn.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function Os(e,t){let n=[];if(t===`dockerfile`){for(let{image:t,resolved:r}of Ss(e,!0)){let e=Es(r);e&&n.push({ref:e,match:t})}return n}let r=ks(e);for(let t of e.matchAll(ps)){if(r.has(t.index+t[0].indexOf(`image:`)))continue;let e=Es(t[1].replace(/^\$\{\w+:-([^${}]+)\}$/,`$1`));e&&n.push({ref:e,match:t[1]})}return n}function ks(e){let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map;for(let r of e.matchAll(/^.*$/gm)){if(!r[0].trim()||r[0].trimStart().startsWith(`#`))continue;let e=/^[ \t]*/.exec(r[0])[0].length;for(let t of n.keys())t>e&&n.delete(t);let i=U(n,e,()=>({built:!1,images:[]}));if(/^[ \t]*build\s*:/.test(r[0])){i.built=!0;for(let e of i.images)t.add(e)}else if(/^[ \t]*image\s*:/.test(r[0])){let n=r.index+e;i.built?t.add(n):i.images.push(n)}}return t}const As=/* @__PURE__ */ new WeakMap,js=/* @__PURE__ */ new Set([401,403,404]);async function Ms(e,t,n,r,i=e){let a=await fn(e,t,{headers:{"accept-encoding":`gzip, deflate, br`}},ln(r),i);return`body`in a?JSON.parse(a.body):(js.has(a.res?.status)||$(a.res,e,n,t.dockerApiUrl),null)}function Ns(e,t,n){return Q(As,n,`${e}/${t}`,async()=>{let r={dates:{},digests:/* @__PURE__ */ new Map},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=1000&ordering=last_updated&page=${e}`,o=r=>Ms(r,n,`${e}/${t}`,e=>({count:e.count,next:e.next,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated,digest:e.digest}))}),`${r}#digest`),s=e=>{for(let t of e.results??[])r.dates[t.name]=t.tag_last_pushed||t.last_updated||``,typeof t.digest==`string`&&r.digests.set(t.name,t.digest)},c=await o(a(1));if(!c)return r;s(c);let l=Array.from({length:Math.min(20,Math.ceil(c.count/1e3))-1},(e,t)=>a(t+2)),u=new Set(l),d=await L(l,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:hn(n)});for(let e of d){if(`reason`in e)throw e.reason;if(!e.value)return r;s(e.value),c=e.value}let f=new URL(i).origin;for(let e=l.length+2;e<=20&&c.next;e++){let e=new URL(c.next,i);if(e.origin!==f||u.has(e.href)||(u.add(e.href),c=await o(e.href),!c))break;s(c)}return r})}async function Ps(e,t,n){return(await Ns(e,t,n)).dates}const Fs=/^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/,Is=/(?:^|,\s*)Bearer\s+(.+)$/i,Ls=/(\w+)=(?:"([^"]*)"|([^\s,]*))/g,Rs=/<([^>]+)>[^,]*?;\s*rel="?next"?/,zs=[`application/vnd.oci.image.index.v1+json`,`application/vnd.docker.distribution.manifest.list.v2+json`,`application/vnd.oci.image.manifest.v1+json`,`application/vnd.docker.distribution.manifest.v2+json`].join(`, `),Bs=/* @__PURE__ */ new WeakMap,Vs=/* @__PURE__ */ new WeakMap,Hs=(e,t,n)=>`${Fs.test(e)?`http`:`https`}://${e}/v2/${t}/${n}`;async function Us(e,t,n){let r={};for(let t of e.matchAll(Ls))r[t[1].toLowerCase()]??=t[2]??t[3];if(!r.realm)return null;let i=new URL(r.realm);r.service&&i.searchParams.set(`service`,r.service),i.searchParams.set(`scope`,r.scope||`repository:${t}:pull`);let a=await cn(n,i.href);if(js.has(a.status))return null;a.ok||$(a,i.href,t,i.host);let o=await a.json(),s=o.token??o.access_token;return typeof s==`string`?s:null}async function Ws(e,t,n,r=`GET`,i={}){let a=U(Bs,n,()=>/* @__PURE__ */ new Map),o=`${new URL(e).host}/${t}`,s=t=>cn(n,e,{method:r,headers:{...i,...t&&{authorization:`Bearer ${t}`}}}),c=await a.get(o),l=await s(c);if(l.status!==401)return l;let u=Is.exec(l.headers.get(`www-authenticate`)??``)?.[1];if(!u)return l;let d=await U(a,o,()=>Us(u,t,n));return d&&d!==c?s(d):l}function Gs(e,t,n){return Q(Vs,n,`${e}/${t}`,async()=>{let r={},i=Hs(e,t,`tags/list?n=1000`);for(let a=0;i&&a<20;a++){let a=await Ws(i,t,n);if(js.has(a.status))break;a.ok||$(a,i,`${e}/${t}`,e);for(let e of(await a.json()).tags??[])r[e]=``;let o=Rs.exec(a.headers.get(`link`)??``)?.[1];i=o?new URL(o,i).href:void 0}return r})}async function Ks(e,t,n){let{registry:r,namespace:i,repo:a}=ws(e);if(r){let i=e.slice(r.length+1),a=Hs(r,i,`manifests/${t}`),o=await Ws(a,i,n,`HEAD`,{accept:zs});return js.has(o.status)?null:(o.ok||$(o,a,`${e}:${t}`,r),o.headers.get(`docker-content-digest`))}let o=(await Ns(i,a,n)).digests.get(t);if(o)return o;let s=(await Ms(`${n.dockerApiUrl}/v2/repositories/${i}/${a}/tags/${t}`,n,`${i}/${a}:${t}`,e=>({digest:e.digest})))?.digest;return typeof s==`string`?s:null}const qs=/^\d?[02468]\.04$/;function Js(e,t,n=Date.now()){return e===`ubuntu`?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=Ds(e)?.version;return!t||qs.test(t)&&n>=Date.UTC(2e3+Number(t.split(`.`)[0]),4)})):t}async function Ys(e,t){let{registry:n,namespace:r,repo:i}=ws(e);return[{tags:n?await Gs(n,e.slice(n.length+1),t):Js(i,await Ps(r,i,t)),name:e},null]}const Xs=({version:e,prerelease:t})=>`${rc(e)}${t?`-${t}`:``}`;function Zs(e){let t=Ds(e);return t?rc(t.version):``}const Qs=/[._]/,$s=e=>Z(e.version).split(Qs).map(Number),ec=e=>Z(e).replace(/\d+/g,``),tc=2e7,nc=e=>Number(Z(e).split(Qs)[0]);function rc(e){let t=Z(e).split(Qs);return`${Number(t[0])}.${Number(t[1]||0)}.${Number(t[2]||0)}`}function ic(e,t){let n=$s(e),r=$s(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return n[e]-r[e];return!!e.prerelease==!!t.prerelease?e.prerelease.localeCompare(t.prerelease):e.prerelease?-1:1}function ac(e,t){let n=$s(t),r=$s(e).findIndex((e,t)=>e!==n[t]);return r===0?`major`:r===1?`minor`:`patch`}function oc(e,t,n,r,i,a,o=!1,s=!1){let c=Ds(t);if(!c)return null;let l=ec(c.version),u=nc(c.version)>=tc,d=Xs(c),{effectiveSemvers:f,skipsPrerelease:p}=xn(d,o,s,n),m=l.length>2||l.includes(`_`),h=W(d),g=c,_={newTag:``,date:``};for(let[t,d]of Object.entries(e)){let e=Ds(t);if(!e||e.suffix!==c.suffix||ec(e.version)!==l||!u&&nc(e.version)>=tc||!Y(d,r,i))continue;let v=Xs(e);if(a&&!G(v,a))continue;if(m){if(e.prerelease&&(!o&&!c.prerelease||s)||ic(e,g)<=0||!n.has(ac(c,e)))continue;g=e,_={newTag:t,date:d};continue}let y=W(v);if(!y||e.prerelease&&p(y))continue;if(y.version===h.version){_.newTag&&Date.parse(d)>Date.parse(_.date)&&(_={newTag:t,date:d});continue}let b=J.diff(h,y);!b||!f.has(b)||J.compare(y,h)<=0||(h=y,_={newTag:t,date:d})}if(!_.newTag)return null;if(m)return _;let[v,y=``]=h.version.split(`-`),b=cr(v,c.version,`${y}${c.suffix}`),x=b in e?b:_.newTag;return x===t?null:{newTag:x,date:_.date}}function sc(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of Object.entries(e)){let e=n.split(`\0`)[1];r.oldDigest?r.newDigest&&t.set(r.digestOnly?`${e}@${r.oldDigest}`:`${e}:${r.oldOrig||r.old}@${r.oldDigest}`,r.digestOnly?`${e}@${r.newDigest}`:`${e}:${r.new}@${r.newDigest}`):t.set(`${e}:${r.oldOrig||r.old}`,`${e}:${r.new}`)}return t}function cc(e,t,n,r=e=>!0){if(!t.size)return e;let i=Le(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`(${e})(${i})(?![\\w.@+/-])`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function lc(e,t){let n=sc(t);if(!n.size)return e;let r=/* @__PURE__ */ new Map;for(let{image:t,index:i,args:a,resolved:o}of Ss(e)){let e=n.get(o);if(!e)continue;if(t===o){r.set(i,[t.length,e]);continue}let s=o.lastIndexOf(`@`),c=e.lastIndexOf(`@`),l=o.slice(s+1),u=e.slice(c+1),d=s!==-1&&c!==-1&&l!==u,f=d?t.lastIndexOf(l):-1,p=e=>a.get(e)?.value,m=0,h=!1;for(let n of t.matchAll(/\$(?:\{(\w+)\}|(\w+))/g)){m=n.index+n[0].length;let i=a.get(n[1]||n[2]),o=ys(t.slice(0,n.index),p),s=ys(t.slice(m),p);d&&(s=s.replace(l,()=>u)),i&&e.startsWith(o)&&e.endsWith(s)&&(r.set(i.start,[i.value.length,e.slice(o.length,s?-s.length:void 0)]),h=!0)}let g=ys(t.slice(0,m),p);!h&&m<t.length&&e.startsWith(g)?r.set(i+m,[t.length-m,e.slice(g.length)]):f!==-1&&r.set(i+f,[l.length,u])}let i=[],a=0;for(let[t,[n,o]]of[...r].sort(([e],[t])=>e-t))i.push(e.slice(a,t),o),a=t+n;return i.push(e.slice(a)),i.join(``)}function uc(e,t){let n=ks(e);return cc(e,sc(t),[String.raw`${ms}image:\s*['"]?(?:\$\{\w+:-(?=[^{}$]+\}['"]?(?:\s|[,}#]|$)))?`],e=>!n.has(e))}function dc(e,t){return cc(e,sc(t),[String.raw`${ms}(?:container|image):\s*['"]?`,String.raw`${ms}uses:\s*['"]?docker://`])}const fc=[`Dockerfile`,`dockerfile`,`Containerfile`,`containerfile`,`compose.yml`,`compose.yaml`,`compose.override.yml`,`compose.override.yaml`,`docker-compose.yml`,`docker-compose.yaml`,`docker-compose.override.yml`,`docker-compose.override.yaml`];function pc(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function mc(e){return/^(?:[Dd]ocker|[Cc]ontainer)file|\.(?:[Dd]ocker|[Cc]ontainer)file$/.test(e)}function hc(e){return mc(e)||pc(e)}function gc(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const _c=[`Makefile`,`makefile`,`GNUmakefile`];function vc(e){return _c.includes(e)||e.endsWith(`.mk`)}const yc=/^\s*(?:(?:export|override|private|unexport)\s+)*([A-Za-z_][\w.]*)\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,bc=/^([^@\s]+)@(v\d\S*)$/,xc=/^[^/\s]+\.[^/\s]+\//;function*Sc(e,t){let n=``;for(let r of[...e.split(/\r?\n/),``]){let e=r.indexOf(`#`),i=e===-1?r:r.slice(0,e),a=0;for(;i[i.length-a-1]===`\\`;)a++;if(a%2){n+=`${i.slice(0,-1)} `;continue}let o=t.exec(n+i);if(n=``,!o)continue;let s=``,c=``,l=o[1];for(let e of o[2])s?e===s?s=``:c+=e:e===`"`||e===`'`?s=e:/\s/.test(e)?(c&&(yield{name:l,value:c}),c=``):c+=e;c&&!s&&(yield{name:l,value:c})}}function Cc(e,t,n){let r=[];for(let i of Sc(e,t))n&&(i.value=n.exec(i.value)?.[1]??i.value),i.value.includes(`$`)||r.push(i);return r}function wc(e){return Cc(e,yc)}function Tc(e){return e.flatMap(({value:e})=>{let t=bc.exec(e);return t&&xc.test(t[1])?{installPath:t[1],version:t[2]}:[]})}const Ec=/@(sha256:[0-9a-f]{64})$/,Dc=/(?:^|_)IMAGE$/i;function Oc(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function kc(e){let t=Ec.exec(e),n=t?e.slice(0,t.index):e,r=Es(n.replace(/^docker\.io\//,``));return r?{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:r,digest:t?.[1]??null}:null}function Ac(e){return e.flatMap(({name:e,value:t})=>{let n=kc(t);return n&&(Dc.test(e)||!n.ref.registry&&n.ref.namespace!==`library`)?n:[]})}const jc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,Mc=/* @__PURE__ */ new WeakMap;function Nc(e,n,r){return Q(Mc,r,`${g(n)}${e}`,async()=>{let i;try{({stdout:i}=await r.execFile(`go`,[`list`,`-m`,`-e`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:{...t,GOPROXY:`direct`}}))}catch(t){throw Bi(`${e}@latest`,t)}let a;try{a=JSON.parse(i)}catch{throw Error(`go list -m ${e}@latest returned malformed JSON`)}if(a.Error){let t=a.Error.Err;if(a.Origin&&t?.endsWith(`no matching versions for query "latest"`))return null;throw Error(`go list -m ${e}@latest failed: ${t||`unknown error`}`)}if(typeof a.Version!=`string`)throw Error(`go list -m ${e}@latest returned malformed JSON`);return!0},!1)}async function Pc(e,t,n,r){let i=jc.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=e.split(`/`),o=Array.from({length:a.length-1},(e,t)=>a.slice(0,a.length-t).join(`/`));for(let{url:i,fallback:a}of yi(e,n,r)){if(i===`off`)break;let e=await Promise.allSettled(o.map(async e=>i===`direct`?Nc(e,t,n):!!await Ki(n,`primary`,i,e)));for(let[t,n]of e.entries()){if(n.status===`rejected`&&a===`,`)throw n.reason;if(n.status===`fulfilled`&&n.value)return o[t]}}return null}function Fc(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Array.from(n.keys()).sort((e,t)=>t.length-e.length).map(e=>Array.from(e,z).join(`["']*`)).join(`|`),i=RegExp(`(?:(?<=\\$\\{\\w+:?-)|(?<![\\w./@:-]))(${r})(?![\\w./@:+-])`,`g`);return e.replace(/^[^#\n]*/gm,e=>e.replace(i,e=>{let t=n.get(e.replace(/["']/g,``)),r=0;return e.replace(/[^"']/g,()=>t[r++]??``)+t.slice(r)}))}function Ic(e){return e.endsWith(`.sh`)}const Lc=/^\s*(?:(?:export|readonly|local|declare|typeset)\s+(?:-\w+\s+)*)*([A-Za-z_]\w*)=\(?((?:.*[^\s;)])?)[\s;)]*$/,Rc=/^\$\{\w+:?[-=](.*)\}$/;function zc(e){return Cc(e,Lc,Rc)}const Bc=/* @__PURE__ */ new WeakMap;function Vc(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 Hc(e){return e.split(`
67
+ `):e}function oo(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=Wa(r);if(e?.indent===0&&e.key===`packages`)n=!0,e.value.startsWith(`[`)&&e.value.endsWith(`]`)&&t.push(...Ga(e.value).map(e=>e.text));else if(n){let e=r.trim();if(e.startsWith(`-`))t.push(e.slice(1));else if(e&&!e.startsWith(`#`))break}}return t.map(e=>Ka(e)?.value).filter(e=>e!==void 0)}function so(e){let t=/^(?!\.\.?\/|\$\/)(self:|https?:\/\/([^/]+)\/)?(([^/@]+)\/([^/@]+)[^@]*)@(.+)$/.exec(e);if(!t)return null;let[n,r=``,i=null,a,o,s,c]=t;return{host:i,owner:o,repo:s,ref:c,name:i?`${i}/${a}`:`${r}${a}`,isHash:Zn.test(c)}}function co(e){if(!e.includes(`://`)){let t=/^(?:[^@/]+@)?([^/:\\]{2,}):/.exec(e)?.[1];return t?`https://${t}`:null}try{let t=new URL(e);if(t.protocol===`ssh:`)return`https://${t.hostname}`;if(t.protocol===`https:`||t.protocol===`http:`)return`${t.origin}${t.pathname.replace(/(?:\/[^/]+){2}\/?$/,``)}`}catch{}return null}async function lo(e){try{let{stdout:t}=await(await Mn())(`git`,[`remote`,`get-url`,`origin`],{cwd:e,encoding:`utf8`,timeout:5e3});return co(t.trim())}catch{return null}}async function uo(e){let n=(t.GITEA_SERVER_URL||t.GITHUB_SERVER_URL||``).replace(/\/+$/,``),r=n&&n!==`https://github.com`?n:await lo(e);return r?`${r}/api/v1`:``}function fo(e,t){return e?e===`github.com`?tn:`https://${e}/api/v1`:t}async function po(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`,o=i.noCache?null:await Vt(a);if(o)return o.body;try{let e=await Jn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=er(await e.json());return t&&!i.noCache&&Wt(a,`immutable`,t),t}catch(e){if(e instanceof Gn)throw e;return}}function mo(e,t){let n=e.replace(/^v/i,``);return ur(U(n)?.version??n,t)}const ho=/^(\s*(?:-\s*)?)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/;function go(e,t){let n=ho.exec(e);if(!n)return null;let r=n[1].length,i=n[1].indexOf(`-`)+1;for(;t.length&&t.at(-1).indent>=(i||r);)t.pop();return{indent:r,key:(n[2]??n[3]??n[4]).trim(),value:n[5]}}const _o=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function vo(e){let t=/^(\s*(?:-\s*)?uses:\s*)(?:(["'])(.*?)\2|((?!["'#])\S+))([^\n]*)$/.exec(e);if(!t)return null;let[n,r,i=``,a,o,s]=t,c=a??o;if(!c)return null;let l=s.search(/(?<=\s)#/),u=l===-1?``:s.slice(l),d=u?_o.exec(u.slice(1)):null;return{prefix:r,quote:i,value:c,gap:l===-1?s:s.slice(0,l),comment:u,pinnedVersion:d?.[1]??``,pinnedEnd:d?d[0].length+1:0}}function yo(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
68
+ `).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=go(e,r);if(!t)return e;let a=t.key===`uses`&&(r.length===3&&r[0].key===`jobs`&&r[2].key===`steps`||r.length===2&&(r[0].key===`jobs`||r[0].key===`runs`&&r[1].key===`steps`)),o=t.value.replace(/(?:^|\s)#.*$/,``).trim();if(o||r.push(t),/^[>|](?:[+-]?\d?|\d[+-]?)$/.test(o))return i=t.indent,e;let s=a&&vo(e);if(!s)return e;let{prefix:c,quote:l,value:u,gap:d,comment:f,pinnedVersion:p,pinnedEnd:m}=s,h=/^https?:\/\//.exec(u)?.[0]??``,g=p||/^#\s*(\S+)\s*$/.exec(f)?.[1]||``,_=u.slice(h.length),v=n.get(`${_}${g?`#${g}`:``}`)??n.get(_);if(!v)return e;let y=v.newComment&&p?`# ${v.newComment}${f.slice(m)}`:f;return`${c}${l}${h}${v.name}@${v.newRef}${l}${d}${y}`}).join(`
69
+ `)}const bo=RegExp(`(?:^|/)(?:(?:workflow-templates|(?:${ze(P)})/(?:workflows|actions))/.+|action)\\.ya?ml$`);function xo(e){return bo.test(e.replace(/\\/g,`/`))}function So(e){let t=/* @__PURE__ */ new Set;try{let n=m(e,`workflows`);for(let e of w(n))/\.ya?ml$/.test(e)&&t.add(g(n,e))}catch{}try{for(let n of w(e,{recursive:!0,withFileTypes:!0}))n.isFile()&&xo(m(n.parentPath,n.name))&&t.add(g(n.parentPath,n.name))}catch{}return Array.from(t)}const Co=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,wo=/* @__PURE__ */ new Set([`resolutions`,`overrides`]);function To(e){let t=e.replace(/^.*?[^ |@]>/,``).trim();return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(t)?.[1]??(t||e)}const Eo=Y.registry,Do=/* @__PURE__ */ new Map,Oo=/* @__PURE__ */ new Map,ko=e=>e.replace(/^\$\{?([^}]*)\}?$|\$\{([^}]*)\}/g,(e,n,r)=>t[n||r]||``);function Ao(e){let t=new URL(e.startsWith(`//`)?`http:${e}`:e),n=[],r;for(;r!==`/`&&t.pathname!==r;)r=t.pathname||`/`,n.push(`//${t.host}${r.replace(/\/$/,``)}`),t.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname;return n}function jo(e,t,n){let r=Ao(e),i=(e,n)=>t[`${e}:${n}`]||t[`${e}/:${n}`],a=n&&r.map(e=>i(e,`${n}:_authToken`)).find(Boolean);if(a)return{token:ko(a),type:`Bearer`};for(let e of r){let t=i(e,`_authToken`);if(t)return{token:ko(t),type:`Bearer`};let n=i(e,`username`),r=i(e,`_password`);if(n&&r){let e=Buffer.from(ko(r),`base64`).toString(`utf8`);return{token:Buffer.from(`${ko(n)}:${e}`).toString(`base64`),type:`Basic`}}let a=i(e,`_auth`);if(a)return{token:ko(a),type:`Basic`}}if(e===Eo&&t._auth)return{token:ko(t._auth),type:`Basic`}}function Mo(e,n,r){let i=V(Do,r??``,()=>Pa(`npm`,{registry:Eo},r)),a=t.pnpm_config__auth||t.PNPM_CONFIG__AUTH||void 0,o=V(Oo,a??``,()=>Za(a,`pnpm_config__auth`)),s=no(),c=r?$a(r):{registries:{}},l=e.startsWith(`@`)?e.split(`/`)[0]:``,u=nn(ko(l&&(o.registries[l]||c.registries[l]||s.registries[l]||s.auth.registries[l]||i[`${l}:registry`])||n.registry||o.registries.default||c.registries.default||c.registry||s.registries.default||s.registry||s.auth.registries.default||i.registry||Eo));return{auth:jo(u,{...i,...s.auth.tokens,...o.tokens},l),registry:u}}const No=(e,t)=>`${e}/${t.replace(/\//g,`%2f`)}`,Po=/* @__PURE__ */ new WeakMap,Fo=/* @__PURE__ */ new WeakMap,Io=/* @__PURE__ */ new WeakMap,Lo=/* @__PURE__ */ new WeakMap,Ro=(e,t)=>`${e}v2${t?`-dates`:``}`;function zo(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]=e.versions[n]?.deprecated?{deprecated:!0}:{};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function Bo(e,t,n,r,i,a,o=``){let s=wo.has(t)?To(e):[`packageManager`,`engines`,`volta`].includes(t)&&e===`yarn`&&(U(Q(o))?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Mo(s,n,a),u=No(l,s),d=Ro(u,!!r.needsDates);return[await Z(Po,i,d,async()=>{let t=rn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await pn(u,i,t,un(zo),d);return`body`in n||$(n.res,u,e,l),JSON.parse(n.body)}),l]}async function Vo(e,t,n,r,i,a){let{auth:o,registry:s}=Mo(e,n,a),c=No(s,e),l=`${c}/${t}`;return Z(Fo,i,l,async()=>{try{let e=rn(o?.type,o?.token),n=await mn(l,i,e,un(e=>({repository:e.repository,homepage:e.homepage,dist:{integrity:e.dist?.integrity},_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})),`${l}#integrity`);if(!(`body`in n))return{};let a=JSON.parse(n.body),s=/(\d{13})/.exec(a?._npmOperationalInternal?.tmp??``),u=s?new Date(Number(s[1])).toISOString():``;return!u&&r.needsDates&&(u=(await Po.get(i)?.get(Ro(c,!0)))?.time?.[t]||``),u||=(await I(Z(Io,i,c,async()=>{let t=await ln(i,c,e);return t.ok?await t.json():null})))?.time?.[t]||``,{repository:a.repository,homepage:a.homepage,date:u,integrity:a.dist?.integrity}}catch{return{}}})}const Ho=e=>e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`),Uo=e=>e.startsWith(`link:`)||e.startsWith(`file:`),Wo=e=>e.startsWith(`catalog:`),Go=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function Ko(e){let t=Go.exec(e.trim());return t&&G(t[2])?{name:t[1],range:t[2]}:null}const qo=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,Jo=/^@([^/]+)\/(.+)$/;function Yo(e,t){let n=qo.exec(e);if(n)return{scope:n[1]||n[3],name:n[2]||n[4],version:n[5]};if(e.startsWith(`jsr:`)&&!e.startsWith(`jsr:@`)){let n=Jo.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}function Xo(e,t){if(!Ho(t))return Ko(t)?.name??e;let{scope:n,name:r}=Yo(t,e);return n?`@${n}/${r}`:e}async function Zo(e,t){if(!Jo.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Z(Lo,t,n,async()=>{let r=await pn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},un(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||$(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function Qo(e,t){try{JSON.parse(e)}catch{return e}let n=/* @__PURE__ */ new Map,r=0,i=()=>{for(;/\s/.test(e[r]??``);)r++},a=()=>{let t=r++;for(;r<e.length;)if(e[r]===`\\`)r+=2;else if(e[r++]===`"`)break;return{start:t,end:r,value:JSON.parse(e.slice(t,r))}},o=t=>{if(i(),e[r]===`"`)n.set(JSON.stringify(t),a());else if(e[r]===`{`||e[r]===`[`){let n=e[r++]===`{`?`}`:`]`;i();for(let s=0;e[r]!==n&&r<e.length;s++){let c=s;if(n===`}`&&(c=a().value,i(),e[r++]!==`:`))return;if(o([...t,c]),i(),e[r]===`,`)r++,i();else break}e[r]===n&&r++}else for(;r<e.length&&!/[,}\]]/.test(e[r]);)r++};o([]);let s=[];for(let[e,r]of Object.entries(t)){let[t,i,a]=e.split(`\0`),o=n.get(a||JSON.stringify([t,i])),c=o??n.get(JSON.stringify([t])),l=o?``:`${i}@`;c?.value===`${l}${r.oldOrig||r.old}`&&s.push({...c,value:JSON.stringify(`${l}${r.new}`)})}for(let t of s.sort((e,t)=>t.start-e.start))e=`${e.slice(0,t.start)}${t.value}${e.slice(t.end)}`;return e}const $o=String.raw`[<>]=?|~>|[\^~=]`,es=new RegExp(String.raw`^(${$o})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),ts=RegExp(`^(?:${$o})$`),ns=/^[xX*]$/,rs=/\+[0-9A-Za-z.-]+/g,is=/\|\||[\dxX*]\s+\S/;function as(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&ts.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function os(e,t){let n=es.exec(e);if(!n)return e;let[r,i=``,a,o,s,c=``]=n,l=s.split(`.`);if(i===`<`&&l.length<=3&&!/[xX*]/.test(s)){let{major:e,minor:n,patch:r}=U(t);return`${i}${a}${l.length===1?`${e+1}`:l.length===2?`${e}.${n+1}`:!c&&s.endsWith(`.0.0`)?`${e+1}.0.0`:!c&&s.endsWith(`.0`)?`${e}.${n+1}.0`:`${e}.${n}.${r+1}`}`}if(i===`>`||i===`<`)return e;if(t.includes(`-`))return`${i}${a}${o}${t}`;let u=t.split(`.`);return`${i}${a}${o}${l.map((e,t)=>ns.test(e)?e:u[t]??`0`).join(`.`)}`}function ss(e,t){if(W(t,e))return e;let n=as(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=os(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=os(r,t),n.join(` `)}function cs(e,t,n,r){let i=(n||e).replace(rs,``),a=r===`peerDependencies`||is.test(i)?ss(i,t):os(i,t);return W(t,a)?a:i}function ls(e){if(/[xX*]/.test(e))return e;let t=e.match(Co);return t?.length===1?e.replace(Co,()=>Q(t[0])):e}async function us(e,t,n){let r=await rr(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,`commits`,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:{}}}function ds(e){let t=e.lastIndexOf(`#`);if(t===e.length-1)return null;let n=e.slice(0,t===-1?e.length:t).replace(/^git\+/i,``),r=t===-1?``:e.slice(t+1),i=/^(?:github:|git@github\.com:|(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:])(.+)$/i.exec(n);if(i)n=i[1];else if(n.includes(`:`))return null;if(!r){let e=/^([^/]+\/[^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i.exec(n);if(!e)return null;n=e[1],r=e[2]}n=n.replace(/\.git$/i,``);let a=n.split(`/`);if(a.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(a[0])||!/^[a-z\d._-]{1,100}$/i.test(a[1]))return null;let o=r.startsWith(`semver:`)&&G(r.slice(7))?r.slice(7):null;return!o&&!Qn.test(r)&&!tt(r)?null:{user:a[0],repo:a[1],ref:o??r,selector:o}}async function fs(e,t,n,{cooldownDays:r,now:i}={}){let a=ds(t.old);if(!a)return null;let{user:o,repo:s,ref:c,selector:l}=a,u=e=>{let n=t.old.lastIndexOf(c);return`${t.old.slice(0,n)}${e}${t.old.slice(n+c.length)}`};if(Qn.test(c)){let{hash:t,commit:r}=await us(o,s,n),i=t.substring(0,c.length);return!t||c.toLowerCase()===i.toLowerCase()?null:{key:e,newRange:u(i),user:o,repo:s,oldRef:c,newRef:i,newDate:er(r)}}let d=await cr(n.forgeApiUrl,o,s,n,[c]),f=new Map(d.map(e=>[e.name,e.commitSha]));for(let t=0;t<10;t++){let t=Yn(f.keys().toArray(),l?Q(l):c);if(!t)return null;let a=l?cs(l,X(t),l):t;if(a===c)return null;let d=f.get(t),p=d?po(n.forgeApiUrl,o,s,d,n):Promise.resolve(``),m=r?await p:await I(p)??void 0;if(m===void 0&&r)throw Error(`Unable to fetch the commit date for ${o}/${s}@${t}`);if(J(m,r,i))return{key:e,newRange:u(a),user:o,repo:s,oldRef:c,newRef:a,newDate:m};f.delete(t)}return null}const ps=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,ms=/^\s*(?:#\s*syntax\s*=\s*|FROM(?:\s+--\S+)*\s+(?!--)|(?:ONBUILD\s+)?COPY(?:\s+--\S+)*?\s+--from=)(\S+)/i,hs=/^\s*(?:ONBUILD\s+)?RUN(?:\s+--\S+)+/i,gs=/(?<=\s--mount=(?:[^\s,]*,)*from=)[^\s,]+/gi,_s=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,vs=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,ys=/^\uFEFF?[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,bs=/^\s*#\s*(syntax|escape|check)\s*=\s*(\S+)/i,xs=/^\s*(?:ONBUILD\s+)?(?:ADD|COPY|RUN)\s/i,Ss=/(?:[^\s"'\\]|\\.|"(?:\\.|[^"\\])*"|'[^']*')+/g;function Cs(e,t){return e.includes(`$`)?e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>t(n||r)??e):e}function ws(e){let t=Array.from(e.matchAll(Ss),([e])=>e),n=[];for(let[e,r]of t.entries()){let i=/^\d*<<-?/.exec(r)?.[0];if(!i||r.includes(`<`,i.length))continue;let a=r.slice(i.length)||t[e+1];a&&n.push({chomp:i.endsWith(`-`),name:a.replace(/\\(.)|["']/g,`$1`)})}return n}function*Ts(e){let t=`\\`,n=!0,r=[],i=``,a=0,o=0;for(let s of e.split(`
70
+ `)){let e=o;if(o+=s.length+1,r.length){let{chomp:e,name:t}=r[0];(e?s.replace(/^\t+/,``):s).replace(/\r$/,``)===t&&r.shift();continue}if(n){let r=bs.exec(s);if(r){r[1].toLowerCase()===`escape`&&(t=r[2]),yield{text:s,index:e};continue}n=!1}let c=s.trimStart();if(!c||c.startsWith(`#`)){i&&(i+=`${` `.repeat(s.length)}\n`);continue}i||(a=e);let l=s.trimEnd().length;s[l-1]===t&&s[l-2]!==t?i+=`${s.slice(0,l-1)} ${s.slice(l)}\n`:(i+=s,yield{text:i,index:a},r=i.includes(`<<`)&&xs.test(i)?ws(i):[],i=``)}i&&(yield{text:i,index:a})}function*Es(e,t=!1){let n=/* @__PURE__ */ new Map,r=(e,r)=>({image:e,index:r,args:n,resolved:Cs(e,e=>n.get(e)?.[t?`resolved`:`value`])}),i=!1;for(let{text:t,index:a}of Ts(e)){let e=i?null:ys.exec(t);if(e){let r=e[2]?.replace(/^(['"])(.*)\1$/,`$2`)??``;n.set(e[1],{value:r,resolved:Cs(r,e=>n.get(e)?.resolved),start:a+t.lastIndexOf(r)});continue}i||=/^\s*FROM\s/i.test(t);let o=ms.exec(t);o&&(yield r(o[1],a+o[0].length-o[1].length));let s=hs.exec(t)?.[0];if(s&&/from=/i.test(s))for(let e of s.matchAll(gs))yield r(e[0],a+e.index)}}const Ds=/^(?:(?:index|registry-1)\.)?docker\.io$/;function Os(e){let t=e.split(`/`);return t.length>1&&Ds.test(t[0])&&t.shift(),{registry:t.length>2||t.length>1&&(t[0]===`localhost`||t[0].includes(`.`)||t[0].includes(`:`))?t.shift():null,namespace:t.length===1?`library`:t.slice(0,-1).join(`/`),repo:t.at(-1)}}function ks(e){let{registry:t,namespace:n,repo:r}=Os(e);if(t)return[e];let i=n===`library`?[r,`library/${r}`]:[`${n}/${r}`];return[.../* @__PURE__ */ new Set([e,...i,...i.map(e=>`docker.io/${e}`)])]}function As(e){if(e.includes(`$`))return null;e=e.replace(/^docker:\/\//,``);let[t,n,...r]=e.split(`@`);if(r.length||n&&!/^[a-z][a-z0-9+._-]*:[0-9a-f]+$/i.test(n))return null;let i=t.lastIndexOf(`:`),a=i!==-1&&t.lastIndexOf(`/`)<i;if(!a&&!n)return null;let o=a?t.substring(0,i):t,s=a?t.substring(i+1):`latest`;if(a&&!n&&!ps.test(s))return null;let{registry:c,namespace:l,repo:u}=Os(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function js(e){let t=ps.exec(e);return!t||t[2]&&!t[3]&&Qn.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function Ms(e,t){let n=[];if(t===`dockerfile`){for(let{image:t,resolved:r}of Es(e,!0)){let e=As(r);e&&n.push({ref:e,match:t})}return n}let r=Ns(e);for(let t of e.matchAll(_s)){if(r.has(t.index+t[0].indexOf(`image:`)))continue;let e=As(t[1].replace(/^\$\{\w+:-([^${}]+)\}$/,`$1`));e&&n.push({ref:e,match:t[1]})}return n}function Ns(e){let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map;for(let r of e.matchAll(/^.*$/gm)){if(!r[0].trim()||r[0].trimStart().startsWith(`#`))continue;let e=/^[ \t]*/.exec(r[0])[0].length;for(let t of n.keys())t>e&&n.delete(t);let i=V(n,e,()=>({built:!1,images:[]}));if(/^[ \t]*build\s*:/.test(r[0])){i.built=!0;for(let e of i.images)t.add(e)}else if(/^[ \t]*image\s*:/.test(r[0])){let n=r.index+e;i.built?t.add(n):i.images.push(n)}}return t}const Ps=/* @__PURE__ */ new WeakMap,Fs=/* @__PURE__ */ new Set([401,403,404]);async function Is(e,t,n,r,i=e){let a=await pn(e,t,{headers:{"accept-encoding":`gzip, deflate, br`}},un(r),i);return`body`in a?JSON.parse(a.body):(Fs.has(a.res?.status)||$(a.res,e,n,t.dockerApiUrl),null)}function Ls(e,t,n){return Z(Ps,n,`${e}/${t}`,async()=>{let r={dates:{},digests:/* @__PURE__ */ new Map},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o=r=>Is(r,n,`${e}/${t}`,e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated,digest:e.digest}))}),`${r}#digest`),s=e=>{for(let t of e.results??[])r.dates[t.name]=t.tag_last_pushed||t.last_updated||``,typeof t.digest==`string`&&r.digests.set(t.name,t.digest)},c=await o(a(1));if(!c)return r;s(c);let l=await F(Array.from({length:Math.min(10,Math.ceil(c.count/100))-1},(e,t)=>a(t+2)),e=>I(o(e)),{concurrency:gn(n)});for(let e of l){if(!e)break;s(e)}return r})}async function Rs(e,t,n){return(await Ls(e,t,n)).dates}const zs=/^(?:localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/,Bs=/(?:^|,\s*)Bearer\s+(.+)$/i,Vs=/(\w+)=(?:"([^"]*)"|([^\s,]*))/g,Hs=/<([^>]+)>[^,]*?;\s*rel="?next"?/,Us=`application/vnd.oci.image.index.v1+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.docker.distribution.manifest.v2+json`,Ws=/* @__PURE__ */ new WeakMap,Gs=/* @__PURE__ */ new WeakMap,Ks=(e,t,n)=>`${zs.test(e)?`http`:`https`}://${e}/v2/${t}/${n}`;async function qs(e,t,n){let r={};for(let t of e.matchAll(Vs))r[t[1].toLowerCase()]??=t[2]??t[3];if(!r.realm)return null;let i=new URL(r.realm);r.service&&i.searchParams.set(`service`,r.service),i.searchParams.set(`scope`,r.scope||`repository:${t}:pull`);let a=await ln(n,i.href);if(Fs.has(a.status))return null;a.ok||$(a,i.href,t,i.host);let o=await a.json(),s=o.token??o.access_token;return typeof s==`string`?s:null}async function Js(e,t,n,r=`GET`,i={}){let a=V(Ws,n,()=>/* @__PURE__ */ new Map),o=`${new URL(e).host}/${t}`,s=t=>ln(n,e,{method:r,headers:{...i,...t&&{authorization:`Bearer ${t}`}}}),c=await a.get(o),l=await s(c);if(l.status!==401)return l;let u=Bs.exec(l.headers.get(`www-authenticate`)??``)?.[1];if(!u)return l;let d=await V(a,o,()=>qs(u,t,n));return d&&d!==c?s(d):l}function Ys(e,t,n){return Z(Gs,n,`${e}/${t}`,async()=>{let r={};if(e===`quay.io`){for(let i=1;i<=10;i++){let a=`https://quay.io/api/v1/repository/${t}/tag/?limit=100&onlyActiveTags=true&page=${i}`,o=await ln(n,a,{headers:{"x-requested-with":`XMLHttpRequest`}});if(Fs.has(o.status))break;o.ok||$(o,a,`${e}/${t}`,e);let s=await o.json();for(let{name:e,start_ts:t}of s.tags??[])r[e]=t?(/* @__PURE__ */ new Date(t*1e3)).toISOString():``;if(!s.has_additional)break}return r}let i=Ks(e,t,`tags/list?n=1000`);for(let a=0;i&&a<10;a++){let a=await Js(i,t,n);if(Fs.has(a.status))break;a.ok||$(a,i,`${e}/${t}`,e);let o=await a.json();for(let e of o.tags??[])r[e]=``;for(let{tag:e=[],timeUploadedMs:t}of Object.values(o.manifest??{}))for(let n of e)Number(t)&&(r[n]=new Date(Number(t)).toISOString());let s=Hs.exec(a.headers.get(`link`)??``)?.[1];i=s?new URL(s,i).href:void 0}return r})}async function Xs(e,t,n){let{registry:r,namespace:i,repo:a}=Os(e);if(r){let i=e.slice(r.length+1),a=Ks(r,i,`manifests/${t}`),o=await Js(a,i,n,`HEAD`,{accept:Us});return Fs.has(o.status)?null:(o.ok||$(o,a,`${e}:${t}`,r),o.headers.get(`docker-content-digest`))}let o=(await Ls(i,a,n)).digests.get(t);if(o)return o;let s=(await Is(`${n.dockerApiUrl}/v2/repositories/${i}/${a}/tags/${t}`,n,`${i}/${a}:${t}`,e=>({digest:e.digest})))?.digest;return typeof s==`string`?s:null}const Zs=/* @__PURE__ */ new WeakMap,Qs=`org.opencontainers.image.created`,$s=e=>typeof e==`string`&&Date.parse(e)>=Date.UTC(2e3,0)?e:``,ec=e=>$s(e?.annotations?.[Qs]);function tc(e,t,n){let r=Os(e).registry,i=e.slice(r.length+1);return Z(Zs,n,`${e}:${t}`,async()=>{let a=async a=>{let o=Ks(r,i,a),s=await Js(o,i,n,`GET`,{accept:Us});return Fs.has(s.status)?null:(s.ok||$(s,o,`${e}:${t}`,r),s.json())},o=await a(`manifests/${t}`);for(let e=0;e<3&&!ec(o);e++){let e=o?.manifests?.find(e=>e.platform?.os!==`unknown`);if(!e)break;o=await a(`manifests/${e.digest}`)}if(ec(o)||!o?.config?.digest)return ec(o);let s=await a(`blobs/${o.config.digest}`);return $s(s?.created)||$s(s?.config?.Labels?.[Qs])})}const nc=/^\d?[02468]\.04$/;function rc(e,t,n=Date.now()){return e===`ubuntu`?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=js(e)?.version;return!t||nc.test(t)&&n>=Date.UTC(2e3+Number(t.split(`.`)[0]),4)})):t}async function ic(e,t){let{registry:n,namespace:r,repo:i}=Os(e);return[{tags:n?await Ys(n,e.slice(n.length+1),t):rc(i,await Rs(r,i,t)),name:e},null]}const ac=({version:e,prerelease:t})=>`${fc(e)}${t?`-${t}`:``}`;function oc(e){let t=js(e);return t?fc(t.version):``}const sc=/[._]/,cc=e=>X(e.version).split(sc).map(Number),lc=e=>X(e).replace(/\d+/g,``),uc=2e7,dc=e=>Number(X(e).split(sc)[0]);function fc(e){let t=X(e).split(sc);return`${Number(t[0])}.${Number(t[1]||0)}.${Number(t[2]||0)}`}function pc(e,t){let n=cc(e),r=cc(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return n[e]-r[e];return!!e.prerelease==!!t.prerelease?e.prerelease.localeCompare(t.prerelease):e.prerelease?-1:1}function mc(e,t){let n=cc(t),r=cc(e).findIndex((e,t)=>e!==n[t]);return r===0?`major`:r===1?`minor`:`patch`}async function hc(e,t,n,r,i,a,o=!1,s=!1,c){let l=js(t);if(!l)return null;let u=lc(l.version),d=dc(l.version)>=uc,f=ac(l),{effectiveSemvers:p,skipsPrerelease:m}=Sn(f,o,s,n),h=u.length>2||u.includes(`_`),g=new Set(c&&r&&i?Object.keys(e).filter(t=>!e[t]):[]),_=g.size?{...e}:e,v=()=>{let e=U(f),t=l,c={newTag:``,date:``};for(let[f,v]of Object.entries(_)){let _=js(f);if(!_||_.suffix!==l.suffix||lc(_.version)!==u||!d&&dc(_.version)>=uc||!g.has(f)&&!J(v,r,i))continue;let y=ac(_);if(a&&!W(y,a))continue;if(h){if(_.prerelease&&(!o&&!l.prerelease||s)||pc(_,t)<=0||!n.has(mc(l,_)))continue;t=_,c={newTag:f,date:v};continue}let b=U(y);if(!b||_.prerelease&&m(b))continue;if(b.version===e.version){c.newTag&&Date.parse(v)>Date.parse(c.date)&&(c={newTag:f,date:v});continue}let x=q.diff(e,b);!x||!p.has(x)||q.compare(b,e)<=0||(e=b,c={newTag:f,date:v})}return{best:c,bestVersion:e}},{best:y,bestVersion:b}=v();for(let e=1;g.has(y.newTag);e++)g.delete(y.newTag),_[y.newTag]=await c(y.newTag)||_[y.newTag],e===3&&g.clear(),{best:y,bestVersion:b}=v();if(!y.newTag)return null;if(h)return y;let[x,S=``]=b.version.split(`-`),C=ur(x,l.version,`${S}${l.suffix}`),w=C in e&&(C===y.newTag||J(_[C],r,i))?C:y.newTag;return w===t?null:{newTag:w,date:y.date}}function gc(e){let t=/* @__PURE__ */ new Map;for(let[n,r]of Object.entries(e)){let e=n.split(`\0`)[1];r.oldDigest?r.newDigest&&t.set(r.digestOnly?`${e}@${r.oldDigest}`:`${e}:${r.oldOrig||r.old}@${r.oldDigest}`,r.digestOnly?`${e}@${r.newDigest}`:`${e}:${r.new}@${r.newDigest}`):t.set(`${e}:${r.oldOrig||r.old}`,`${e}:${r.new}`)}return t}function _c(e,t,n,r=e=>!0){if(!t.size)return e;let i=ze(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`(${e})(${i})(?![\\w.@+/-])`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function vc(e,t){let n=gc(t);if(!n.size)return e;let r=/* @__PURE__ */ new Map;for(let{image:t,index:i,args:a,resolved:o}of Es(e)){let e=n.get(o);if(!e)continue;if(t===o){r.set(i,[t.length,e]);continue}let s=o.lastIndexOf(`@`),c=e.lastIndexOf(`@`),l=o.slice(s+1),u=e.slice(c+1),d=s!==-1&&c!==-1&&l!==u,f=d?t.lastIndexOf(l):-1,p=e=>a.get(e)?.value,m=0,h=!1;for(let n of t.matchAll(/\$(?:\{(\w+)\}|(\w+))/g)){m=n.index+n[0].length;let i=a.get(n[1]||n[2]),o=Cs(t.slice(0,n.index),p),s=Cs(t.slice(m),p);d&&(s=s.replace(l,()=>u)),i&&e.startsWith(o)&&e.endsWith(s)&&(r.set(i.start,[i.value.length,e.slice(o.length,s?-s.length:void 0)]),h=!0)}let g=Cs(t.slice(0,m),p);!h&&m<t.length&&e.startsWith(g)?r.set(i+m,[t.length-m,e.slice(g.length)]):f!==-1&&r.set(i+f,[l.length,u])}let i=[],a=0;for(let[t,[n,o]]of[...r].sort(([e],[t])=>e-t))i.push(e.slice(a,t),o),a=t+n;return i.push(e.slice(a)),i.join(``)}function yc(e,t){let n=Ns(e);return _c(e,gc(t),[String.raw`${vs}image:\s*['"]?(?:\$\{\w+:-(?=[^{}$]+\}['"]?(?:\s|[,}#]|$)))?`],e=>!n.has(e))}function bc(e,t){return _c(e,gc(t),[String.raw`${vs}(?:container|image):\s*['"]?`,String.raw`${vs}uses:\s*['"]?docker://`])}const xc=[`Dockerfile`,`dockerfile`,`Containerfile`,`containerfile`,`compose.yml`,`compose.yaml`,`compose.override.yml`,`compose.override.yaml`,`docker-compose.yml`,`docker-compose.yaml`,`docker-compose.override.yml`,`docker-compose.override.yaml`];function Sc(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function Cc(e){return/^(?:[Dd]ocker|[Cc]ontainer)file|\.(?:[Dd]ocker|[Cc]ontainer)file$/.test(e)}function wc(e){return Cc(e)||Sc(e)}function Tc(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Ec=[`Makefile`,`makefile`,`GNUmakefile`];function Dc(e){return Ec.includes(e)||e.endsWith(`.mk`)}const Oc=/^\s*(?:(?:export|override|private|unexport)\s+)*([A-Za-z_][\w.]*)\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,kc=/^([^@\s]+)@(v\d\S*)$/,Ac=/^[^/\s]+\.[^/\s]+\//;function*jc(e,t){let n=``;for(let r of[...e.split(/\r?\n/),``]){let e=r.indexOf(`#`),i=e===-1?r:r.slice(0,e),a=0;for(;i[i.length-a-1]===`\\`;)a++;if(a%2){n+=`${i.slice(0,-1)} `;continue}let o=t.exec(n+i);if(n=``,!o)continue;let s=``,c=``,l=o[1];for(let e of o[2])s?e===s?s=``:c+=e:e===`"`||e===`'`?s=e:/\s/.test(e)?(c&&(yield{name:l,value:c}),c=``):c+=e;c&&!s&&(yield{name:l,value:c})}}function Mc(e,t,n){let r=[];for(let i of jc(e,t))n&&(i.value=n.exec(i.value)?.[1]??i.value),i.value.includes(`$`)||r.push(i);return r}function Nc(e){return Mc(e,Oc)}function Pc(e){return e.flatMap(({value:e})=>{let t=kc.exec(e);return t&&Ac.test(t[1])?{installPath:t[1],version:t[2]}:[]})}const Fc=/@(sha256:[0-9a-f]{64})$/,Ic=/(?:^|_)IMAGE$/i;function Lc(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Rc(e){let t=Fc.exec(e),n=t?e.slice(0,t.index):e,r=As(n.replace(/^docker\.io\//,``));return r?{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:r,digest:t?.[1]??null}:null}function zc(e){return e.flatMap(({name:e,value:t})=>{let n=Rc(t);return n&&(Ic.test(e)||!n.ref.registry&&n.ref.namespace!==`library`)?n:[]})}const Bc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,Vc=/* @__PURE__ */ new WeakMap;function Hc(e,n,r){return Z(Vc,r,`${g(n)}${e}`,async()=>{let i;try{({stdout:i}=await r.execFile(`go`,[`list`,`-m`,`-e`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:{...t,GOPROXY:`direct`}}))}catch(t){throw Hi(`${e}@latest`,t)}let a;try{a=JSON.parse(i)}catch{throw Error(`go list -m ${e}@latest returned malformed JSON`)}if(a.Error){let t=a.Error.Err;if(a.Origin&&t?.endsWith(`no matching versions for query "latest"`))return null;throw Error(`go list -m ${e}@latest failed: ${t||`unknown error`}`)}if(typeof a.Version!=`string`)throw Error(`go list -m ${e}@latest returned malformed JSON`);return!0},!1)}async function Uc(e,t,n,r){let i=Bc.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=e.split(`/`),o=Array.from({length:a.length-1},(e,t)=>a.slice(0,a.length-t).join(`/`));for(let{url:i,fallback:a}of xi(e,n,r)){if(i===`off`)break;let e=await Promise.allSettled(o.map(async e=>i===`direct`?Hc(e,t,n):!!await Ji(n,`primary`,i,e)));for(let[t,n]of e.entries()){if(n.status===`rejected`&&a===`,`)throw n.reason;if(n.status===`fulfilled`&&n.value)return o[t]}}return null}function Wc(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Array.from(n.keys()).sort((e,t)=>t.length-e.length).map(e=>Array.from(e,L).join(`["']*`)).join(`|`),i=RegExp(`(?:(?<=\\$\\{\\w+:?-)|(?<![\\w./@:-]))(${r})(?![\\w./@:+-])`,`g`);return e.replace(/^[^#\n]*/gm,e=>e.replace(i,e=>{let t=n.get(e.replace(/["']/g,``)),r=0;return e.replace(/[^"']/g,()=>t[r++]??``)+t.slice(r)}))}function Gc(e){return e.endsWith(`.sh`)}const Kc=/^\s*(?:(?:export|readonly|local|declare|typeset)\s+(?:-\w+\s+)*)*([A-Za-z_]\w*)=\(?((?:.*[^\s;)])?)[\s;)]*$/,qc=/^\$\{\w+:?[-=](.*)\}$/;function Jc(e){return Mc(e,Kc,qc)}const Yc=/* @__PURE__ */ new WeakMap;function Xc(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 Zc(e){return e.split(`
71
71
  `).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(`
72
- `)}async function Uc(e,t){let n=tn(t.cratesIoUrl),r=`${n===`https://crates.io`?`https://index.crates.io`:n}/${Vc(e)}`;return[await Q(Bc,t,r,async()=>{let n=await fn(r,t,nn(),Hc);`body`in n||$(n.res,r,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of n.body.split(`
73
- `)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=W(n);r&&(r.prerelease.length?(!s||at(n,s))&&(s=n):(!o||at(n,o))&&(o=n))}if(!c&&n.body.trim())throw Error(`Invalid JSON from ${r}`);return{name:e,versions:i,time:a,"dist-tags":{latest:o||s}}}),null]}function Wc(e){let t=/* @__PURE__ */ new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);e&&r&&et(r[1])&&H(t,e[1],r[1])}return t}const Gc=/^\d/,Kc=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,qc=/^(\s*)(.*?)(\s*)$/s,Jc=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return Gc.test(t)&&!Kc.test(t)?`^${t}`:t}).join(` `);function Yc(e,t){let[n,r,i,a]=qc.exec(e);if(i.startsWith(`<`)&&G(t,i))return e;let o=Kc.exec(i),s;if(o&&W(t)?.prerelease.length)s=t;else if(o){let[e,n,r]=o;s=`${t.split(/[-+]/)[0].split(`.`).slice(0,n.split(`.`).length).join(`.`)}${r}`}else s=Gc.test(i)?Go(`^${i}`,t,`^${i}`).replace(/^\^/,``):Go(i,t,i);return`${r}${s}${a}`}function Xc(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:Yc(e,t)).join(``)}function Zc(e,t,n){let r=e.get(t);if(!r)return;let i=Jc(n),a;for(let e of r)G(e,i)&&(!a||at(e,a))&&(a=e);return a}const Qc=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,$c=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/,el=/^(\s*("(?:\\.|[^"\\])*"|'[^']*'|[\w-]+)\s*=\s*(?:\{(?:"[^"\n]*"|'[^'\n]*'|[^"'}\n])*?\bversion\s*=\s*)?["'])([^"'\n]*)(["'])/;function tl(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t.length===3){if(!e.startsWith(t,n))continue;let r=0;for(;e[n-r-1]===`\\`;)r++;t===`"""`&&r%2||(n+=2,t=``)}else if(t)t===`"`&&r===`\\`?n++:r===t&&(t=``);else if(r===`#`)break;else(r===`"`||r===`'`)&&e.startsWith(r.repeat(3),n)?(t=r.repeat(3),n+=2):(r===`"`||r===`'`)&&(t=r)}return t.length===3?t:``}function nl(e){let t=[],n=``,r=0;for(let i of e.split(`
74
- `)){let a=n?null:$c.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:JSON.stringify(br(a[2])),start:r,end:e.length,rewrites:/* @__PURE__ */ new Map})):n=tl(i,n),r+=i.length+1}return t}function rl(e,t){let n=nl(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=t.startsWith(`[`)?JSON.parse(Qc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),o=JSON.stringify([...a,i]),s=JSON.stringify(a),c=n.find(e=>e.path===o),l=c??n.find(e=>e.path===s);if(!l)throw Error(`Unable to locate Cargo table for ${t}.${i}`);l.rewrites.set(c?`version`:i,r)}let r=e;for(let t of n.reverse()){if(!t.rewrites.size)continue;let n=``,i=e.slice(t.start,t.end).replace(/^.*$/gm,e=>{let r=n?e:e.replace(el,(e,n,r,i,a)=>{let o=t.rewrites.get(br(r)[0]);return o&&i===(o.oldOrig||o.old)?`${n}${o.new}${a}`:e});return n=tl(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const il=c(de),al=new Set(I),ol=[`**/node_modules/**`,`**/bower_components/**`,`**/vendor/**`,`**/examples/**`,`**/__tests__/**`,`**/test/**`,`**/tests/**`,`**/__fixtures__/**`];function sl(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n],i=r===`{`?ze(e,n,`{`,`}`):r===`[`?e.indexOf(`]`,n):-1;if(r===`*`&&e[n+1]===`*`){let r=e[n+2]===`/`;n+=r?2:1,t+=r?`(?:.*/)?`:`.*`}else r===`*`?t+=`[^/]*`:r===`?`?t+=`[^/]`:r===`{`&&i!==-1?(t+=`(?:${Be(e.slice(n+1,i)).map(sl).join(`|`)})`,n=i):r===`[`&&i!==-1?(t+=`[${e.slice(n+1,i).replace(/^!/,`^`).replaceAll(`\\`,`\\\\`)}]`,n=i):t+=z(r)}return t}const cl=/* @__PURE__ */ new Map,ll=e=>U(cl,e,()=>RegExp(`^${sl(e)}$`));function ul(e,{includePaths:t,excludePaths:n}){return t.length&&t.every(t=>e!==t&&!ll(t).test(e))?!1:n.every(t=>!e.includes(t)&&!ll(t).test(e))}function dl(e){return e.map(e=>typeof e==`string`?ll(e):He(e))}function fl(e){let t=d(e);return Object.hasOwn(we,t)||hc(t)||vc(t)||Ic(t)||ss(e)}async function pl(e){try{return(await il(`git`,[`ls-files`,`--cached`,`--others`,`--exclude-standard`,`-z`],{cwd:e,maxBuffer:2**30})).stdout.split(`\0`)}catch{return null}}function ml(e){try{return e.split(/[\\/]/).some(e=>al.has(e))?w(e,{recursive:!0,encoding:`utf8`}):w(e,{withFileTypes:!0}).flatMap(t=>t.isDirectory()&&al.has(t.name)?w(m(e,t.name),{recursive:!0,encoding:`utf8`}).map(e=>m(t.name,e)):t.name)}catch{return[]}}async function hl(e,t,n,r){let i=await pl(e),a=[];for(let o of[...i??[],...n||!i?ml(e):[]]){let n=g(e,o);(fl(n)||r(n))&&ul(o.replaceAll(`\\`,`/`),t)&&x(n,{throwIfNoEntry:!1})?.isFile()&&a.push(n)}return a.sort((e,t)=>e.split(/[\\/]/).length-t.split(/[\\/]/).length)}const gl=/^(!?)\/(.*)\/(i?)$/,_l=e=>e.isHash&&!!e.comment&&!Zn(e.comment),vl=[...new Set(Object.values(we)),`actions`,`docker`,`make`,`shell`],yl=new Set(vl),bl={patch:/* @__PURE__ */ new Set([`patch`]),minor:/* @__PURE__ */ new Set([`patch`,`minor`]),major:/* @__PURE__ */ new Set([`patch`,`minor`,`major`])},xl={"go.mod":`go.work`,"package.json":`pnpm-workspace.yaml`},Sl=new Set(Object.values(xl)),Cl=(e,t)=>tn(typeof e==`string`?e:t);function wl(e){try{return T.native(e)}catch{return g(e)}}function Tl(e,t){let n=/* @__PURE__ */ new Map,r=new Set(e);return We(t,e=>{for(let t of r){let i=m(e,t);try{v(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function El(e,t){t&&(e.date=t,e.age=Da(t,{noAffix:!0,shortUnits:!0}))}const Dl=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,Ol=(e,t,n,r)=>Dl(`${e}${t}`,n,r),kl=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?Na(n):`${Na(n)}|${t}`)},Al=e=>Object.values(e).some(e=>Object.keys(e).length>0),jl=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Ml=(e,t)=>oo.has(e)?so(t):t,Nl=e=>typeof e==`number`&&e>=0?e:Fe(String(e));function Pl(e,t){return t===`go`?[e,la(e)]:t===`docker`?Ts(e):t===`pypi`?[e,jl(e)]:[e]}const Fl=e=>console.error(on(e));function Il({packageName:e,depName:t,names:n},r,{include:i,exclude:a},o){if(o===`engines`&&Ce.includes(t)||r===`pypi`&&t===`python`)return!1;if(!i.size&&!a.size)return!0;for(let r of a)if(n.some(n=>Qr(r,n,e,t)))return!1;for(let r of i)if(n.some(n=>Qr(r,n,e,t)))return!0;return!i.size}async function Ll(e,t,n,r){let i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Set,o=(e,n=t)=>{if(i.has(e))return;let r=wl(e);a.has(r)||(a.add(r),i.set(e,n))},s=[];for(let t of e??[]){let e;try{e=E(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}if(e.isFile()){let e=wl(t);o(e,f(e))}else if(e.isDirectory())s.push(wl(t));else throw Error(`${t} is neither a file nor directory`)}e?.length||s.push(t);let c=Promise.all(s.map(async t=>(await hl(t,n,!!e?.length,r)).map(e=>[e,t])));if(!e?.length){let e=new Set(I),r=[...Object.keys(we),...fc,..._c,...I];for(let[i,a]of Tl(r,t))if(f(a)!==t)for(let r of e.has(i)?cs(a):[g(a)])ul(h(t,r).replaceAll(`\\`,`/`),n)&&o(r)}for(let[e,t]of(await c).flat())o(e,t);let l=Array.from(i).filter(([e])=>Sl.has(d(e)));return l.length?new Map([...l,...i]):i}function Rl(e,t){i===`win32`&&D(e,0),O(e,t,i===`win32`?{flag:`r+`}:void 0)}const zl=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function Bl(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function Vl(e){let t={results:{}},n=/* @__PURE__ */ new Map,r=Object.entries(e).sort(([e],[t])=>vl.indexOf(e)-vl.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=zl(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,{oldPrint:a,newPrint:o,oldOrig:s,date:c,cooldownDays:l,...u}]of Object.entries(i)){let[i,c,l]=r.split(`\0`);typeof a==`string`?u.old=a:typeof s==`string`&&!To(s)&&(u.old=e===`go`?ua(s):s),typeof o==`string`&&(u.new=o),e===`go`?u.new=ua(u.new):e===`actions`&&!u.digestOnly&&(u.old=Z(u.old),u.new=Z(u.new));let d=l&&n.get(zl(e,r))>1?e===`pypi`?l:`${c}${e===`actions`?`@`:`:`}${Bl(l)}`:c,f=t.results[e]??={};(f[Bl(i)]??={})[d]=u}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}function Hl(e,t){let n=gl.exec(t);if(n){let t=new RegExp(n[2],n[3]);return(r,i)=>t.test(i??(e===`go`?`v${r}`:r))!==!!n[1]}if(e===`pypi`)return Nr(t)?e=>Pr(e,t):e=>G(et(e)||Sn(e),t);if(!K(t))throw Error(`Invalid ${e} allowedVersions: ${t}`);return e===`docker`?e=>G(Zs(e),t):e=>G(e,t)}function Ul(e,t){let n=Dn({...e,range:t}),r=e.allowedVersions?Hl(`go`,e.allowedVersions):null;return{accepts:r?e=>n(e)&&r(e):n,allowMajor:e.semvers.has(`major`),pinAllowsDowngrade:Tn(e,t)}}function Wl(e,t,n){if(!n)return e;let r=Hl(t,n),i=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[i]:Object.fromEntries(Object.entries(e[i]??{}).filter(([e])=>r(e)))}}async function Gl(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await Kl(e)}catch(e){throw Error(on(e?.message||String(e)))}finally{n()}}async function Kl(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Ie(n.timeout,`timeout`));let r=n.sockets??50,i=n.timeout??0,o=gi(),s=!n.noColor&&(n.color||a.isTTY),c=e=>s?t=>u(e,String(t),{validateStream:!1}):String,l=c(`magenta`),p=c(`green`),_=c(`red`),v=/* @__PURE__ */ new Map,y=(e,t,n=t)=>U(v,`${e}${t}${n}`,()=>({packageName:t,depName:n,names:Array.from(/* @__PURE__ */ new Set([...Pl(n,e),...Pl(t,e)]))})),b,x={execFile:async(e,t,n)=>(await Mn())(e,t,n),fetchTimeout:i||5e3,goProbeTimeout:i?Math.max(1,Math.floor(i/2)):2500,concurrency:r,forgeApiUrl:Cl(t.forgeapi,X.forgeapi),pypiApiUrl:Cl(t.pypiapi,X.pypiapi),jsrApiUrl:Cl(t.jsrapi,X.jsrapi),goProxyChain:hi(t.goproxy),cratesIoUrl:Cl(t.cargoapi,X.cargoapi),dockerApiUrl:Cl(t.dockerapi,X.dockerapi),doFetch:(e,t)=>(b??=_n(x))(async()=>{n.verbose&&Fl(`${Me()} ${l(t?.method||`GET`)} ${e}`);let r=await sn(e,t);return n.verbose&&Fl(`${Me()} ${r.ok?p(r.status):_(r.status)} ${e}`),r}),noCache:!!n.noCache},S=/* @__PURE__ */ new Map,C=async(e,t)=>{let n=`${e}${t}`,r=U(S,n,()=>Ks(e,t,x));try{return await r}catch(e){throw S.get(n)===r&&S.delete(n),e}};for(let e of n.modes??[])if(!yl.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${vl.join(`,`)}`);let w=n.modes?.length?new Set(n.modes):yl,T=e=>{let t=(e.overrides??[]).map(e=>({...e,include:e.include?.length?si(e.include):void 0,exclude:e.exclude?.length?si(e.exclude):void 0,cooldownDays:e.cooldown===void 0?void 0:Nl(e.cooldown)})),n=e.renovateVersionRules??[];return{greatest:di(e.greatest),prerelease:di(e.prerelease),release:di(e.release),patch:di(e.patch),minor:di(e.minor),allowDowngrade:di(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}},E=/* @__PURE__ */ new WeakMap;function D(e,t){let n=U(E,e,()=>/* @__PURE__ */ new Map),r=n.get(t);if(!r){let{packageName:i,depName:a,names:o}=t,s=e=>o.some(t=>Ae(t,e)),c=s(e.greatest),l=s(e.prerelease),u=s(e.release),d=s(e.patch),f=s(e.minor),p=s(e.allowDowngrade),m,h;for(let t of e.renovateVersionRules)Xr(t,i,a)&&(t.allowedVersions!==void 0&&(h=t.allowedVersions),t.cooldownDays!==void 0&&(m=t.cooldownDays));for(let t of e.overrides)t.include&&o.every(e=>!Ae(e,t.include))||t.exclude&&o.some(e=>Ae(e,t.exclude))||(t.greatest!==void 0&&(c=t.greatest),t.prerelease!==void 0&&(l=t.prerelease),t.release!==void 0&&(u=t.release),t.patch!==void 0&&(d=t.patch),t.minor!==void 0&&(f=t.minor),t.allowDowngrade!==void 0&&(p=t.allowDowngrade),t.cooldownDays!==void 0&&(m=t.cooldownDays));let g=d?bl.patch:f?bl.minor:bl.major;r={useGreatest:c,usePre:l,useRel:u,semvers:g,allowDowngrade:p,cooldownOverride:m,allowedVersions:h},n.set(t,r)}return r}li(n.pin);let O=n.pin??{},ee=(e,t,n)=>{let r=e.find(e=>O[e]);if(r)return{pinnedRange:O[r],pinNoDowngrade:!1};let i=e.find(e=>t[e]),a=!!(i&&Array.isArray(n)&&n.includes(i));return{pinnedRange:i&&!a?t[i]:void 0,pinNoDowngrade:a}},te=Date.now(),ne=({versionConfig:e,pin:t,cooldownDays:n,pinNoDowngrade:r},i,a=r)=>{let{useGreatest:o,usePre:s,useRel:c,semvers:l,allowDowngrade:u,cooldownOverride:d,allowedVersions:f}=D(e,i),{pinnedRange:p,pinNoDowngrade:m}=ee(i.names,t,a),h=d??n;return{useGreatest:o,usePre:s,useRel:c,semvers:l,allowDowngrade:u,allowedVersions:f,pinnedRange:p,pinNoDowngrade:m,cooldownDays:h||void 0,now:h?te:void 0}},k={},ie={},A={},ae=/* @__PURE__ */ new Map,oe=/* @__PURE__ */ new Map,j=[],se=(e,t,n)=>{let[r,i]=t.split(`\0`);j.push({mode:e,type:r,name:i,error:on(n?.message||String(n))})},M=(e,t,n)=>{delete k[e][t],se(e,t,n)},ce={},le=wl(e()),ue=e=>e.replace(`${le}/`,``).replace(`${le}\\`,``),N=(e,t,n,r,i)=>Il(n,e,r,i)?((A[e]??=/* @__PURE__ */ new Map).set(t,n),!0):!1,P=(e,t,n,r)=>{k[e][t]={old:n,oldOrig:r}},de=(e,t,n)=>{if(Do(n))return;let r=ko(n);To(n)?k.npm[e]={old:Mo(n,t).version,new:``,oldOrig:n}:K(n)?k.npm[e]={old:Ko(n),new:``,oldOrig:n}:r?(ae.set(e,r),k.npm[e]={old:Ko(r.range),new:``,oldOrig:n}):Eo(n)||(ie[e]={old:n})},fe=(e,t,n,r,i)=>{let a=new Set(Object.keys(t.tool?.uv?.sources??{}).map(jl)),o=(t,i)=>{for(let{name:o,version:s,spec:c}of xe(t)){if(a.has(jl(o)))continue;let t=Ol(i,n,o,c);N(e,t,y(e,jl(o),o),r,i)&&P(e,t,Ko(s),s)}};for(let[a,s]of ke(Ve(e,r.modeConfig),t)){let t=s||{};if(Array.isArray(t))e===`pypi`&&o(t,a);else if(typeof t==`string`){let[i,o]=t.split(`@`),s=Ol(a,n,i);N(e,s,y(e,i),r,a)&&P(e,s,Ko(o),o)}else if(e===`npm`&&(a===`overrides`||a===`pnpm.overrides`)){let o=a===`overrides`?[`overrides`]:[`pnpm`,`overrides`],s=(t,c)=>{for(let[l,u]of Object.entries(t))if(typeof u==`string`){let t=so(l===`.`?c.at(-1)??l:l);if(i?.has(t))continue;let s=Ol(a,n,t,JSON.stringify([...o,...c,l]));if(!N(e,s,y(e,No(t,u),t),r,a))continue;de(s,t,u)}else u&&typeof u==`object`&&!Array.isArray(u)&&s(u,[...c,l])};s(t,[])}else for(let[s,c]of Object.entries(t)){if(e===`pypi`&&Array.isArray(c)){o(c,`${a}.${s}`);continue}if(typeof c!=`string`||i?.has(Ml(a,s)))continue;let t=Ol(a,n,s);N(e,t,y(e,e===`npm`?No(Ml(a,s),c):e===`pypi`?jl(s):s,s),r,a)&&(e===`npm`?de(t,s,c):e===`go`?P(e,t,ua(c),Z(c)):K(c)&&P(e,t,Ko(c),c))}}},pe={includePaths:n.includePaths??[],excludePaths:n.excludePaths??ol},me=dl(n.filePatterns?.actions??[]),he=e=>{if(!me.length||fl(e))return!1;let t=h(le,e).replaceAll(`\\`,`/`);return me.some(e=>e.test(t))},F=await Ll(n.files,le,pe,he),ge=new Set(Array.from(F.keys()).filter(he)),_e=e=>ss(e)||ge.has(e),ve=new Map(await L(Array.from(F.keys()).filter(e=>{if(_e(e))return w.has(`actions`)||w.has(`docker`);let t=d(e);return Object.hasOwn(xl,t)&&F.has(m(f(e),xl[t]))?!1:hc(t)?w.has(`docker`):vc(t)?w.has(`make`):Ic(t)?w.has(`shell`):w.has(we[t])}),async e=>{try{return[e,await re(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),ye={},be=[],Ce=[],I=[],je=[],Ne=[],Pe=[],Fe=[],z=[],Le={},B=(e,t,n)=>{let r=t===`.`?``:`|${t}`;return(Le[e]??=/* @__PURE__ */ new Map).set(r,n),r},Re=t[ni],ze=Re&&new Set(Re.cliKeys),Be=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!ze||ze.has(e)))),V=Ge(async e=>{let t={...await pi(e),...Be};return{modeConfig:t,projectDir:e,include:si(t.include??[]),exclude:si(t.exclude??[]),versionConfig:T(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Nl(t.cooldown):0}});function Ve(e,t){return t.types?.length?t.types:e===`npm`?Se:e===`pypi`?Te:e===`go`?t.indirect?Ee:Ee.filter(e=>e!==`indirect`):e===`cargo`?[...De,...Oe]:[]}let He=e=>{let t=[],n=!1;for(let[r,i]of e.split(/\r?\n/).entries()){let e=/^(\s*)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*(.*)$/.exec(i);if(!e)continue;let a=e[1].length,o=(e[2]??e[3]??e[4]).trim();if(a===0){n=o===`overrides`;continue}if(!n||!e[5])continue;let s=e[5].replace(/\s+#.*$/,``).trim(),c=/^(['"])(.*)\1$/.exec(s),l=c?.[2]??s;t.push({selector:o,value:l,lineNumber:r,valueIndex:i.length-e[5].length+Number(!!c)})}return t};function Ue(e,t,n){k.docker??={};let r=Dl(t,e.fullImage,`${e.tag}${e.digest?`@${e.digest}`:``}`);if(!N(`docker`,r,y(`docker`,e.fullImage),n,`docker`)||k.docker[r])return;let i=Ds(e.tag);(i||e.digest)&&(k.docker[r]={old:i?.version??e.tag,oldOrig:e.tag,...e.digest&&{oldDigest:e.digest},...e.digestOnly&&{digestOnly:!0}},Fe.push({key:r,ref:e,filters:n}))}let We=/* @__PURE__ */ new Map,H=/* @__PURE__ */ new Map;for(let[e,t]of ve){let n=d(e);try{if(n===`package.json`){let n=JSON.parse(t),r=Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages,i=Array.isArray(r)?r.filter(e=>typeof e==`string`):[];i.length&&H.set(e,{pkg:n,packagePatterns:i})}else if(n===`Cargo.toml`){let n=hr(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&We.set(e,n)}}catch{}}let Ke={cargo:We.size,go:Array.from(F.keys()).filter(e=>d(e)===`go.work`).length,npm:H.size+Array.from(F.keys()).filter(e=>d(e)===`pnpm-workspace.yaml`).length},qe=(e,t,n,r)=>{let i=ce[e]??=[],a=!i.length&&!Ke[e]?`.`:ue(t);return i.push({absPath:g(t),content:n,memberPath:a}),B(e,a,r)},Je=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},Ye=(e,t,n)=>Ke[e]>1?`${ue(t)}:${n}`:n,Xe=(e,t,n,r,i)=>{let a=Ye(`npm`,e,t.memberPath);je.push({...t,memberPath:a}),fe(`npm`,n,B(`npm`,a,r),r,i)};for(let e of/* @__PURE__ */ new Set([...We.keys(),...H.keys(),...ve.keys()])){let t=d(e),n=ve.get(e);if(_e(e)){let t=w.has(`actions`),r=w.has(`docker`),i=ue(e),a=await V(f(e)),o=/* @__PURE__ */ new Set;ye[i]={absPath:e,content:n,fileType:`workflow`,workflowLines:o};let s=[];for(let[e,c]of n.split(/\r?\n/).entries()){if(t){let e=is(c),t=e&&Zo(e.value);if(t){let n=y(`actions`,`${t.owner}/${t.repo}`,t.name);if(Il(n,`actions`,a,`actions`)){k.actions??={};let r=e.pinnedVersion||/^#\s*(\S+)\s*$/.exec(e.comment)?.[1]||``,o=Dl(i,t.name,t.isHash&&r?`${r}@${t.ref}`:t.ref);k.actions[o]||(k.actions[o]={old:t.ref},Pe.push({...t,key:o,comment:r,identity:n,apiUrl:Qo(t.host,x.forgeApiUrl),filters:a}))}}}if(!r)continue;let n=ns(c,s);if(!n)continue;let{indent:l,key:u}=n,d=u===`container`&&s.length===2&&s[0].key===`jobs`,f=u===`image`&&(s.length===3&&s[0].key===`jobs`&&s[2].key===`container`||s.length===4&&s[0].key===`jobs`&&s[2].key===`services`),p=u===`uses`&&(s.length===3&&s[0].key===`jobs`&&s[2].key===`steps`||s.length===2&&s[0].key===`runs`&&s[1].key===`steps`);if((d||f||p)&&n.value){let t=Es(n.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(Ue(t,i,a),o.add(e))}s.push({indent:l,key:u})}continue}if(hc(t)){let r=ue(e),i=await V(f(e)),a=mc(t)?`dockerfile`:`compose`;ye[r]={absPath:e,content:n,fileType:a};for(let{ref:e}of Os(n,a))Ue(e,r,i);continue}let i=vc(t)?`make`:Ic(t)?`shell`:null;if(i){let t=i===`make`?wc(n):zc(n),r=Tc(t),a=Ac(t);if(!r.length&&!a.length)continue;let o=ue(e),s=await V(f(e));ye[o]={absPath:e,content:n};let c=k[i]??={};for(let{installPath:e,version:t}of r){let n=Dl(o,e,t);N(i,n,y(`go`,e),s,i)&&(c[n]||(c[n]={old:Z(t),oldOrig:t},z.push({mode:i,kind:`go`,key:n,oldSpec:`${e}@${t}`,installPath:e,version:t,filters:s})))}for(let e of a){let t=Dl(o,e.writtenImage,e.ref.tag);if(!N(i,t,y(`docker`,e.writtenImage),s,i)||c[t])continue;let n=Ds(e.ref.tag);if(!n)continue;let r=Oc(e.writtenImage,e.ref.tag,e.digest);c[t]={old:n.version,oldOrig:e.ref.tag},z.push({mode:i,kind:`docker`,key:t,oldSpec:r,image:e,filters:s})}continue}let a=g(e);if(t===`go.mod`&&be.some(e=>e.absPath===a)||t===`package.json`&&je.some(e=>e.absPath===a)||t===`Cargo.toml`&&I.some(e=>e.absPath===a))continue;let o=we[t],s=f(a),c=(t,n)=>ul(h(F.get(e),n).replaceAll(`\\`,`/`),pe)||F.has(t);if(k[o]??={},t===`go.work`){let t=oa(n),[i,a]=await Promise.all([V(s),L(t.use,async e=>{let t=sa(s,e);if(!t)return null;let n=await R(re(t,`utf8`));return n===null?null:{usePath:e,modPath:t,modContent:n}},{concurrency:r})]),l=Ye(o,e,`.`),u=B(o,l,i);Ce.push({absPath:e,content:n,memberPath:l});let d=a.filter(e=>e!==null),f=new Set(d.map(({modContent:e})=>Fi(e)).filter(Boolean));for(let{usePath:t,modPath:n,modContent:r}of d){if(!c(n,m(s,t,`go.mod`)))continue;let a=Ye(o,e,t);be.push({absPath:n,content:r,memberPath:a}),fe(o,Ii(r),B(o,a,i),i,f)}for(let[e,n]of Object.entries(t.replace)){let t=Ol(`replace`,u,e);!f.has(e)&&N(o,t,y(o,e),i,`replace`)&&P(o,t,ua(n),Z(n))}continue}if(t===`Cargo.toml`){let i=We.get(e)??hr(n),l=Tl([`Cargo.lock`],s).get(`Cargo.lock`),u=i.workspace,d=u?.members,f=Array.isArray(d)&&d.length>0,[p,h,g]=await Promise.all([V(s),l?re(l,`utf8`):null,f?za([...d,...(u.exclude??[]).map(e=>`!${e}`)],s,`Cargo.toml`,r):[]]),_=Ve(o,p.modeConfig),v=h?Wc(h):/* @__PURE__ */ new Map,b=(e,t)=>{for(let[n,r]of ke(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e)))for(let[r,i]of Object.entries(e)){let e=typeof i==`object`&&!!i&&`version`in i&&!(`git`in i)&&!(`path`in i)&&!(`registry`in i);if(!e&&typeof i!=`string`)continue;let a=e?i.version:i,s=e&&i.package||r,c=Ol(n,t,r);if(!N(o,c,y(o,s,r),p,n))continue;let l=Jc(a);K(l)&&P(o,c,Zc(v,s,a)??Ko(l),a)}}};if(f){let r=Ye(o,e,`.`);b(i,B(o,r,p)),I.push({absPath:a,content:n,memberPath:r});for(let n of g){if(!c(n.absPath,m(s,n.memberPath,t)))continue;let r=Ye(o,e,n.memberPath);I.push({...n,memberPath:r}),b(Je(n.absPath,()=>hr(n.content)),B(o,r,p))}}else b(i,qe(o,e,n,p));continue}if(t===`package.json`&&H.has(e)){let{pkg:i,packagePatterns:o}=H.get(e),[l,u]=await Promise.all([V(s),za(o,s,`package.json`,r)]),d=u.map(e=>({member:e,pkg:Je(e.absPath,()=>JSON.parse(e.content))})),f=new Set(d.map(({pkg:e})=>e.name).filter(e=>typeof e==`string`&&e));Xe(e,{absPath:a,content:n,memberPath:`.`},i,l,f);for(let{member:n,pkg:r}of d)c(n.absPath,m(s,n.memberPath,t))&&Xe(e,n,r,l,f);continue}if(t===`pnpm-workspace.yaml`){let i=io(n),l=m(s,`package.json`),[u,d,f]=await Promise.all([V(s),R(re(l,`utf8`)),za(i,s,`package.json`,r)]),p=Ye(o,e,t),h=B(o,p,u);Ne.push({absPath:a,content:n,memberPath:p});for(let{type:e,name:t,value:r}of no(n)){let n=Ol(e,h,t);N(o,n,y(o,No(t,r),t),u,e)&&de(n,t,r)}for(let{selector:e,value:t}of He(n)){let n=`pnpm-workspace.overrides`,r=Ol(n,h,e,JSON.stringify(e));N(o,r,y(o,No(so(e),t),e),u,n)&&(oe.set(r,e),de(r,e,t))}d!==null&&c(l,l)&&Xe(e,{absPath:g(l),content:d,memberPath:`.`},Je(l,()=>JSON.parse(d)),u);for(let t of f)c(t.absPath,m(s,t.memberPath,`package.json`))&&Xe(e,t,Je(t.absPath,()=>JSON.parse(t.content)),u);continue}let l=await V(s);fe(o,Je(e,()=>o===`npm`?JSON.parse(n):o===`pypi`?hr(n):Ii(n)),qe(o,e,n,l),l)}let W=Object.keys(ie).length>0;if(!Al(k)&&!W)return{results:{},message:`No dependencies found, nothing to do.`};let Ze={needsDates:Le.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1},Qe=Object.entries(Le).map(async([e,t])=>{if(!Object.keys(k[e]).length&&(e!==`npm`||!W))return;let i=t.values().next().value,a=e=>{let n=e.indexOf(`|`);return t.get(n===-1?``:e.slice(n))??i},s=/* @__PURE__ */ new Map,c=k[e],u=async t=>{let[r,i,u]=t.split(`\0`),d=Na(r),f=a(r),{modeConfig:p,projectDir:m}=f,h=c[t],{old:g,oldOrig:_}=h,v=_&&To(_),y=ae.get(t),b=A[e].get(t),S=ne(f,b),C=e===`go`?Ul(S,h.oldOrig||h.old):null,[w,T]=await(e===`npm`?v?Po(b.packageName,x):Co(b.packageName,d,p,Ze,x,m,h.old):e===`go`?Qi(b.packageName,r,h.oldOrig||h.old,m,x,o,C):e===`cargo`?Uc(b.packageName,x):kr(b.packageName,x));if(w.error)throw Error(w.error);h.cooldownDays=S.cooldownDays;let E=e===`go`?w:Wl(w,e,S.allowedVersions),D=kn(E,{...S,range:g,mode:e,acceptsGoVersion:C?C.accepts:void 0}),O=``;(e===`go`||e===`pypi`)&&D?O=D:e===`cargo`&&D&&_?O=Xc(_,D):D&&(v?(h.newPrint=Go(g,D,g,d),O=`${_.slice(0,-g.length)}${h.newPrint}`):O=y?`npm:${y.name}@${Go(g,D,y.range,d)}`:Go(g,D,_,d));let ee=e===`pypi`?u:void 0,te=ee&&Fr(ee,_||g,O);!D||D===g||_&&_===O||ee&&(!te||te===ee)?(n.verbose&&D&&D!==g&&Fl(`${Me()} ${l(`SKIP`)} ${i}: ${_||g} can not be rewritten to ${D}`),delete c[t]):(h.new=O,e===`npm`?s.set(t,{name:b.packageName,promise:wo(E.name,D,p,Ze,x,m)}):h.info=e===`pypi`?dr(E,T,E.info.name):e===`go`?ca(E.newPath||i):`https://crates.io/crates/${E.name}`,El(h,e===`pypi`?On(E.releases[D]):e===`go`?E.Time:e===`cargo`?E.time?.[D]:``))};if(await L(Object.keys(c),async t=>{try{await u(t)}catch(n){M(e,t,n)}},{concurrency:r}),await Promise.all(Array.from(s,async([t,{name:n,promise:r}])=>{let i=await r,a=c[t],[o]=t.split(`\0`);if(Na(o)===`packageManager`&&/\+sha\d+\./.test(a.oldOrig||a.old)&&(a.oldPrint=(a.oldOrig||a.old).replace(/\+sha\d+\..*$/,``),!(n===`yarn`&&Number.parseInt(Z(a.new))>=2))){let r=/(?:^|\s)sha512-(\S+)/.exec(i.integrity||``);if(!r){M(e,t,`Unable to fetch sha512 integrity for ${n}@${a.new}`);return}a.newPrint=a.new,a.new=`${a.new}+sha512.${Buffer.from(r[1],`base64`).toString(`hex`)}`}a.info=dr(i,null,n),El(a,i.date)})),e===`npm`&&W){let t=(await L(Object.entries(ie),async([e,t])=>{try{return await Xo(e,t,x)}catch(t){return se(`npm`,e,t),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:n,newRange:r,user:i,repo:o,oldRef:s,newRef:l,newDate:u}of t){let[t]=n.split(`\0`);El(c[n]={old:ie[n].old,new:r,oldPrint:Xn.test(s)?s.substring(0,7):s,newPrint:Xn.test(l)?l.substring(0,7):l,info:`https://github.com/${i}/${o}`,cooldownDays:ne(a(t),A[e].get(n)).cooldownDays},u)}}for(let[e,{date:t,cooldownDays:n}]of Object.entries(c))t&&n&&!Y(t,n,te)&&delete c[e]}),$e=L(Map.groupBy(Pe,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a=e.filter(e=>e.isHash?!_l(e):Zn(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=ne(e.filters,e.identity);return t||!(!n||r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===X.forgeapi?[]:e.filter(_l).map(e=>e.comment)],c=[];try{s.length&&(c=await sr(t,n,i,x,o?[]:s,!!a.length))}catch(t){for(let n of e)M(`actions`,n.key,t);return}let l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map;for(let e of c)l.set(e.name,e),e.commitSha&&u.set(e.commitSha,e.name);let d=/* @__PURE__ */ new Map,f=e=>U(d,e,()=>{let t=e?Hl(`actions`,e):null,n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Set;for(let e of c){let i=jt.parse(e.name)?.version;!i||e.isStable===!1||t&&!t(i,e.name)||(r.add(e.name),e.name.length>(n.get(i)?.length??0)&&n.set(i,e.name))}return{tagByVersion:n,versions:Array.from(n.keys()),allowedTags:r}}),p=Ge(e=>$o(t,n,i,e,x)),m=async(e,t)=>{let n=await p(e),r=l.get(t)?.releaseTimestamp;return n!==void 0&&r&&(!n||Date.parse(r)>Date.parse(n))?r:n},h=Ge(async e=>{let r=l.get(e)?.commitSha;if(r)return r;let a=t===X.forgeapi?`commits`:`branches`,o=await Kn(`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,x);if(o.status===404)return``;if(!o.ok)throw Error(`Unable to fetch ${n}/${i}@${e}`);let s=await o.json();return[s?.sha,s?.id,s?.commit?.sha,s?.commit?.id].find(e=>typeof e==`string`)??``});async function g(e,{tagByVersion:t,versions:r}){let a={...e,cooldownDays:void 0,now:void 0},o=/* @__PURE__ */ new Set;for(let s=0;s<100;s++){let s=Cn({},o.size?r.filter(e=>!o.has(e)):r,a);if(!s)return null;let c=t.get(s),{commitSha:u,releaseTimestamp:d}=l.get(c);if(!e.cooldownDays)return{version:s,tag:c,commitSha:u,date:``};if(d&&!Y(d,e.cooldownDays,e.now)){o.add(s);continue}let f=u?await m(u,c):``;if(f===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${c}`);if(Y(f,e.cooldownDays,e.now))return{version:s,tag:c,commitSha:u,date:f};o.add(s)}return null}await L(e,async e=>{try{let{key:t,host:r,ref:a,comment:o,isHash:s}=e,c=k.actions[t],d=`https://${r||`github.com`}/${n}/${i}`,p=a;if(s?p=o||u.get(a)||u.entries().find(([e])=>e.startsWith(a))?.[1]||``:Zn(a)||(p=``),!p){delete k.actions[t];return}let _=ne(e.filters,e.identity),v=f(_.allowedVersions),y=Zn(p)?await g({..._,range:p,versioning:jt},v):null;if(!y){if(!s||!o){delete k.actions[t];return}let e=await h(o);if(!e||e.startsWith(a)||a.startsWith(e)){delete k.actions[t];return}if(_.cooldownDays){let r=await m(e,o);if(r===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${o}`);if(!Y(r,_.cooldownDays,_.now)){delete k.actions[t];return}}c.old=o,c.new=o,c.oldDigest=a,c.newDigest=e,c.digestOnly=!0,c.info=d,El(c,await R(m(e,o)));return}let{tag:b,commitSha:x,date:S}=y,C=es(b,p),w=v.allowedTags.has(C)?C:b;if(s){if(!x||x.startsWith(a)||a.startsWith(x)){delete k.actions[t];return}c.old=a,c.new=x.substring(0,a.length),c.oldPrint=p,c.newPrint=o&&l.get(w).commitSha===x?w:b}else{if(w===a){delete k.actions[t];return}c.new=w}c.info=d,El(c,S||(x?await R(m(x,b)):``))}catch(t){M(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),et=L(Map.groupBy(Fe,e=>e.ref.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry&&t.every(e=>ne(e.filters,A.docker.get(e.key),!1).cooldownDays)){for(let e of t)delete k.docker[e.key];return}let n;try{[n]=await Ys(e,x)}catch(e){for(let n of t)M(`docker`,n.key,e);return}await L(t,async e=>{try{let t=k.docker[e.key],r=t.oldOrig||t.old,i=ne(e.filters,A.docker.get(e.key),!1),a=!e.ref.digestOnly&&Ds(r)?oc(Wl(n,`docker`,i.allowedVersions).tags,r,i.semvers,i.cooldownDays,i.now,i.pinnedRange,i.usePre,i.useRel):null,o=a?.newTag??r;if(e.ref.digest){if(!a&&!Y(n.tags[r],i.cooldownDays,i.now)){delete k.docker[e.key];return}let s=await C(e.ref.fullImage,o);if(!s||s===e.ref.digest&&!a){delete k.docker[e.key];return}t.oldDigest=e.ref.digest,t.newDigest=s,t.digestOnly=e.ref.digestOnly}else if(!a){delete k.docker[e.key];return}t.new=o,t.info=gc(e.ref),El(t,a?.date||n.tags[o])}catch(t){M(`docker`,e.key,t)}},{concurrency:r})},{concurrency:r}),tt=L(z,async e=>{let t=ne(e.filters,A[e.mode].get(e.key)),n=k[e.mode],r=n[e.key];try{if(e.kind===`go`){let{projectDir:i}=e.filters,a=await Pc(e.installPath,i,x,o);if(!a){delete n[e.key];return}let s=Ul(t,Z(e.version)),[c]=await Qi(a,`tool`,Z(e.version),i,x,o,s),l=kn(c,{...t,mode:`go`,range:Z(e.version),acceptsGoVersion:s.accepts});if(!l){delete n[e.key];return}let u=c.newPath??Ti(a,l),d=`${u}${e.installPath.slice(a.length)}`,f=cr(l,e.version);if(d===e.installPath&&f===e.version){delete n[e.key];return}e.newSpec=`${d}@${f}`,r.new=f,r.info=ca(u),El(r,c.Time)}else{if(e.image.ref.registry&&t.cooldownDays){delete n[e.key];return}let[i]=await Ys(e.image.ref.fullImage,x),a=oc(Wl(i,`docker`,t.allowedVersions).tags,e.image.ref.tag,t.semvers,t.cooldownDays,t.now,t.pinnedRange,t.usePre,t.useRel);if(!a){delete n[e.key];return}let o=e.image.digest?await C(e.image.ref.fullImage,a.newTag):null;if(e.image.digest&&!o){delete n[e.key];return}e.newSpec=Oc(e.image.writtenImage,a.newTag,o),r.new=a.newTag,r.info=gc(e.image.ref),El(r,a.date)}}catch(t){M(e.mode,e.key,t)}},{concurrency:r});try{await Promise.all([...Qe,$e,et,tt])}finally{n.noCache||await Wt()}if(!Al(k))return j.length?{results:{},errors:j}:{results:{},message:`All dependencies are up to date.`};let nt=(e,t)=>{let n=e.split(`
75
- `),r=new Map(He(e).map(e=>[e.selector,e]));for(let[e,i]of oe){let a=k.npm[e],o=r.get(i);if(!a||!kl(e,t)||!o||o.value!==(a.oldOrig||a.old))continue;let s=n[o.lineNumber];n[o.lineNumber]=`${s.slice(0,o.valueIndex)}${a.new}${s.slice(o.valueIndex+o.value.length)}`}return n.join(`
76
- `)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=Fa(k[e],r.memberPath);Object.keys(t).length&&Rl(r.absPath,n(r.content,t,r))}},t=new Map(Pe.map(e=>[e.key,e.comment])),n=e=>Map.groupBy(e,([e])=>e.split(`\0`)[0]);for(let r of Object.keys(k).sort((e,t)=>Number(e===`docker`)-Number(t===`docker`)))if(Object.keys(k[r]).length){if(r===`actions`)for(let[e,r]of n(Object.entries(k.actions))){let n=ye[e];n.content=as(n.content,r.map(([e,n])=>{let r=n.oldDigest??n.old;return{name:e.split(`\0`)[1],oldRef:r,newRef:n.newDigest?n.newDigest.substring(0,r.length):n.new,oldComment:t.get(e)||void 0,newComment:n.digestOnly?void 0:Xn.test(n.old)?n.newPrint:void 0}})),Rl(n.absPath,n.content)}else if(r===`docker`)for(let[e,t]of n(Object.entries(k.docker))){let{absPath:n,content:r,fileType:i,workflowLines:a}=ye[e];Rl(n,(i===`dockerfile`?lc:i===`compose`?uc:(e,t)=>e.split(`
77
- `).map((e,n)=>a.has(n)?dc(e,t):e).join(`
78
- `))(r,Object.fromEntries(t)))}else if(r===`make`||r===`shell`){let e=z.filter(e=>e.newSpec&&k[r][e.key]);for(let[t,n]of Map.groupBy(e,e=>e.key.split(`\0`)[0])){let{absPath:e,content:r}=ye[t];Rl(e,Fc(r,n.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}}else if(r===`go`){for(let e of[...be,...ce.go??[]]){let t=Fa(k[r],e.memberPath);if(!Object.keys(t).length)continue;let[n,i]=ta(e.content,t);n!==e.content&&Rl(e.absPath,n),aa(f(e.absPath),i,Rl)}for(let e of Ce){let t=Object.fromEntries(Object.entries(Fa(k[r],e.memberPath)).filter(([e])=>Na(e.split(`\0`)[0])===`replace`));if(!Object.keys(t).length)continue;let[n]=ta(e.content,t);n!==e.content&&Rl(e.absPath,n)}}else r===`cargo`?e(r,[...I,...ce.cargo??[]],rl):r===`npm`?(e(r,Ne,(e,t,n)=>nt(ro(e,t),n.memberPath)),e(r,[...je,...ce.npm??[]],Fo)):e(r,ce[r]??[],zr)}}let rt=Vl(k);return j.length&&(rt.errors=j),rt}export{ni as i,ol as n,Sa as r,Gl as t};
72
+ `)}async function Qc(e,t){let n=nn(t.cratesIoUrl),r=`${n===`https://crates.io`?`https://index.crates.io`:n}/${Xc(e)}`;return[await Z(Yc,t,r,async()=>{let n=await pn(r,t,rn(),Zc);`body`in n||$(n.res,r,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of n.body.split(`
73
+ `)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=U(n);r&&(r.prerelease.length?(!s||ot(n,s))&&(s=n):(!o||ot(n,o))&&(o=n))}if(!c&&n.body.trim())throw Error(`Invalid JSON from ${r}`);return{name:e,versions:i,time:a,"dist-tags":{latest:o||s}}}),null]}function $c(e){let t=/* @__PURE__ */ new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);e&&r&&tt(r[1])&&B(t,e[1],r[1])}return t}const el=/^\d/,tl=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,nl=/^(\s*)(.*?)(\s*)$/s,rl=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return el.test(t)&&!tl.test(t)?`^${t}`:t}).join(` `);function il(e,t){let[n,r,i,a]=nl.exec(e);if(i.startsWith(`<`)&&W(t,i))return e;let o=tl.exec(i),s;if(o&&U(t)?.prerelease.length)s=t;else if(o){let[e,n,r]=o;s=`${t.split(/[-+]/)[0].split(`.`).slice(0,n.split(`.`).length).join(`.`)}${r}`}else s=el.test(i)?cs(`^${i}`,t,`^${i}`).replace(/^\^/,``):cs(i,t,i);return`${r}${s}${a}`}function al(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:il(e,t)).join(``)}function ol(e,t,n){let r=e.get(t);if(!r)return;let i=rl(n),a;for(let e of r)W(e,i)&&(!a||ot(e,a))&&(a=e);return a}const sl=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,cl=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/,ll=/^(\s*("(?:\\.|[^"\\])*"|'[^']*'|[\w-]+)\s*=\s*(?:\{(?:"[^"\n]*"|'[^'\n]*'|[^"'}\n])*?\bversion\s*=\s*)?["'])([^"'\n]*)(["'])/;function ul(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t.length===3){if(!e.startsWith(t,n))continue;let r=0;for(;e[n-r-1]===`\\`;)r++;t===`"""`&&r%2||(n+=2,t=``)}else if(t)t===`"`&&r===`\\`?n++:r===t&&(t=``);else if(r===`#`)break;else(r===`"`||r===`'`)&&e.startsWith(r.repeat(3),n)?(t=r.repeat(3),n+=2):(r===`"`||r===`'`)&&(t=r)}return t.length===3?t:``}function dl(e){let t=[],n=``,r=0;for(let i of e.split(`
74
+ `)){let a=n?null:cl.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:JSON.stringify(Sr(a[2])),start:r,end:e.length,rewrites:/* @__PURE__ */ new Map})):n=ul(i,n),r+=i.length+1}return t}function fl(e,t){let n=dl(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=t.startsWith(`[`)?JSON.parse(sl.exec(t)[0]):t.split(`|`,1)[0].split(`.`),o=JSON.stringify([...a,i]),s=JSON.stringify(a),c=n.find(e=>e.path===o),l=c??n.find(e=>e.path===s);if(!l)throw Error(`Unable to locate Cargo table for ${t}.${i}`);l.rewrites.set(c?`version`:i,r)}let r=e;for(let t of n.reverse()){if(!t.rewrites.size)continue;let n=``,i=e.slice(t.start,t.end).replace(/^.*$/gm,e=>{let r=n?e:e.replace(ll,(e,n,r,i,a)=>{let o=t.rewrites.get(Sr(r)[0]);return o&&i===(o.oldOrig||o.old)?`${n}${o.new}${a}`:e});return n=ul(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const pl=c(fe),ml=new Set(P),hl=[`**/node_modules/**`,`**/bower_components/**`,`**/vendor/**`,`**/examples/**`,`**/__tests__/**`,`**/test/**`,`**/tests/**`,`**/__fixtures__/**`];function gl(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n],i=r===`{`?Ve(e,n,`{`,`}`):r===`[`?e.indexOf(`]`,n):-1;if(r===`*`&&e[n+1]===`*`){let r=e[n+2]===`/`;n+=r?2:1,t+=r?`(?:.*/)?`:`.*`}else r===`*`?t+=`[^/]*`:r===`?`?t+=`[^/]`:r===`{`&&i!==-1?(t+=`(?:${He(e.slice(n+1,i)).map(gl).join(`|`)})`,n=i):r===`[`&&i!==-1?(t+=`[${e.slice(n+1,i).replace(/^!/,`^`).replaceAll(`\\`,`\\\\`)}]`,n=i):t+=L(r)}return t}const _l=/* @__PURE__ */ new Map,vl=e=>V(_l,e,()=>RegExp(`^${gl(e)}$`));function yl(e,{includePaths:t,excludePaths:n}){return t.length&&t.every(t=>e!==t&&!vl(t).test(e))?!1:n.every(t=>!e.includes(t)&&!vl(t).test(e))}function bl(e){return e.map(e=>typeof e==`string`?vl(e):We(e))}function xl(e){let t=d(e);return Object.hasOwn(Ee,t)||wc(t)||Dc(t)||Gc(t)||xo(e)}async function Sl(e){try{return(await pl(`git`,[`ls-files`,`--cached`,`--others`,`--exclude-standard`,`-z`],{cwd:e,maxBuffer:2**30})).stdout.split(`\0`)}catch{return null}}function Cl(e){try{return e.split(/[\\/]/).some(e=>ml.has(e))?w(e,{recursive:!0,encoding:`utf8`}):w(e,{withFileTypes:!0}).flatMap(t=>t.isDirectory()&&ml.has(t.name)?w(m(e,t.name),{recursive:!0,encoding:`utf8`}).map(e=>m(t.name,e)):t.name)}catch{return[]}}async function wl(e,t,n,r){let i=await Sl(e),a=[];for(let o of[...i??[],...n||!i?Cl(e):[]]){let n=g(e,o);(xl(n)||r(n))&&yl(o.replaceAll(`\\`,`/`),t)&&x(n,{throwIfNoEntry:!1})?.isFile()&&a.push(n)}return a.sort((e,t)=>e.split(/[\\/]/).length-t.split(/[\\/]/).length)}const Tl=/^(!?)\/(.*)\/(i?)$/,El=e=>e.isHash&&!!e.comment&&!$n(e.comment),Dl=[...new Set(Object.values(Ee)),`actions`,`docker`,`make`,`shell`],Ol=new Set(Dl),kl={patch:/* @__PURE__ */ new Set([`patch`]),minor:/* @__PURE__ */ new Set([`patch`,`minor`]),major:/* @__PURE__ */ new Set([`patch`,`minor`,`major`])},Al={"go.mod":`go.work`,"package.json":`pnpm-workspace.yaml`},jl=new Set(Object.values(Al)),Ml=(e,t)=>nn(typeof e==`string`?e:t);function Nl(e){try{return T.native(e)}catch{return g(e)}}function Pl(e,t){let n=/* @__PURE__ */ new Map,r=new Set(e);return Ke(t,e=>{for(let t of r){let i=m(e,t);try{v(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function Fl(e,t){t&&(e.date=t,e.age=ka(t,{noAffix:!0,shortUnits:!0}))}const Il=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,Ll=(e,t,n,r)=>Il(`${e}${t}`,n,r),Rl=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?Fa(n):`${Fa(n)}|${t}`)},zl=e=>Object.values(e).some(e=>Object.keys(e).length>0),Bl=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Vl=(e,t)=>wo.has(e)?To(t):t,Hl=e=>typeof e==`number`&&e>=0?e:Le(String(e));function Ul(e,t){return t===`go`?[e,da(e)]:t===`docker`?ks(e):t===`pypi`?[e,Bl(e)]:[e]}const Wl=e=>console.error(sn(e));function Gl({packageName:e,depName:t,names:n},r,{include:i,exclude:a},o){if(o===`engines`&&Te.includes(t)||r===`pypi`&&t===`python`)return!1;if(!i.size&&!a.size)return!0;for(let r of a)if(n.some(n=>ei(r,n,e,t)))return!1;for(let r of i)if(n.some(n=>ei(r,n,e,t)))return!0;return!i.size}async function Kl(e,t,n,r){let i=/* @__PURE__ */ new Map,a=/* @__PURE__ */ new Set,o=(e,n=t)=>{if(i.has(e))return;let r=Nl(e);a.has(r)||(a.add(r),i.set(e,n))},s=[];for(let t of e??[]){let e;try{e=E(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}if(e.isFile()){let e=Nl(t);o(e,f(e))}else if(e.isDirectory())s.push(Nl(t));else throw Error(`${t} is neither a file nor directory`)}e?.length||s.push(t);let c=Promise.all(s.map(async t=>(await wl(t,n,!!e?.length,r)).map(e=>[e,t])));if(!e?.length){let e=new Set(P),r=[...Object.keys(Ee),...xc,...Ec,...P];for(let[i,a]of Pl(r,t))if(f(a)!==t)for(let r of e.has(i)?So(a):[g(a)])yl(h(t,r).replaceAll(`\\`,`/`),n)&&o(r)}for(let[e,t]of(await c).flat())o(e,t);let l=Array.from(i).filter(([e])=>jl.has(d(e)));return l.length?new Map([...l,...i]):i}function ql(e,t){i===`win32`&&D(e,0),O(e,t,i===`win32`?{flag:`r+`}:void 0)}const Jl=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function Yl(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function Xl(e){let t={results:{}},n=/* @__PURE__ */ new Map,r=Object.entries(e).sort(([e],[t])=>Dl.indexOf(e)-Dl.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=Jl(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,{oldPrint:a,newPrint:o,oldOrig:s,date:c,cooldownDays:l,...u}]of Object.entries(i)){let[i,c,l]=r.split(`\0`);typeof a==`string`?u.old=a:typeof s==`string`&&!Ho(s)&&(u.old=e===`go`?fa(s):s),typeof o==`string`&&(u.new=o),e===`go`?u.new=fa(u.new):e===`actions`&&!u.digestOnly&&(u.old=X(u.old),u.new=X(u.new));let d=l&&n.get(Jl(e,r))>1?e===`pypi`?l:`${c}${e===`actions`?`@`:`:`}${Yl(l)}`:c,f=t.results[e]??={};(f[Yl(i)]??={})[d]=u}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}function Zl(e,t){let n=Tl.exec(t);if(n){let t=new RegExp(n[2],n[3]);return(r,i)=>t.test(i??(e===`go`?`v${r}`:r))!==!!n[1]}if(e===`pypi`)return Fr(t)?e=>Ir(e,t):e=>W(tt(e)||Q(e),t);if(!G(t))throw Error(`Invalid ${e} allowedVersions: ${t}`);return e===`docker`?e=>W(oc(e),t):e=>W(e,t)}function Ql(e,t){let n=Dn({...e,range:t}),r=e.allowedVersions?Zl(`go`,e.allowedVersions):null;return{accepts:r?e=>n(e)&&r(e):n,allowMajor:e.semvers.has(`major`),pinAllowsDowngrade:Tn(e,t),cooldownDays:e.cooldownDays,now:e.now}}function $l(e,t,n){if(!n)return e;let r=Zl(t,n),i=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[i]:Object.fromEntries(Object.entries(e[i]??{}).filter(([e])=>r(e)))}}async function eu(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await tu(e)}catch(e){throw Error(sn(e?.message||String(e)))}finally{n()}}async function tu(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Re(n.timeout,`timeout`));let r=n.sockets??50,i=n.timeout??0,o=vi(),s=!n.noColor&&(n.color||a.isTTY),c=e=>s?t=>u(e,String(t),{validateStream:!1}):String,l=c(`magenta`),p=c(`green`),_=c(`red`),v=/* @__PURE__ */ new Map,y=(e,t,n=t)=>V(v,`${e}${t}${n}`,()=>({packageName:t,depName:n,names:Array.from(/* @__PURE__ */ new Set([...Ul(n,e),...Ul(t,e)]))})),b,x={execFile:async(e,t,n)=>(await Mn())(e,t,n),fetchTimeout:i||5e3,goProbeTimeout:i?Math.max(1,Math.floor(i/2)):2500,concurrency:r,forgeApiUrl:Ml(t.forgeapi,Y.forgeapi),pypiApiUrl:Ml(t.pypiapi,Y.pypiapi),jsrApiUrl:Ml(t.jsrapi,Y.jsrapi),goProxyChain:_i(t.goproxy),cratesIoUrl:Ml(t.cargoapi,Y.cargoapi),dockerApiUrl:Ml(t.dockerapi,Y.dockerapi),doFetch:(e,t)=>(b??=vn(x))(async()=>{n.verbose&&Wl(`${Pe()} ${l(t?.method||`GET`)} ${e}`);let r=await cn(e,t);return n.verbose&&Wl(`${Pe()} ${r.ok?p(r.status):_(r.status)} ${e}`),r}),noCache:!!n.noCache},S=/* @__PURE__ */ new Map,C=async(e,t)=>{let n=`${e}${t}`,r=V(S,n,()=>Xs(e,t,x));try{return await r}catch(e){throw S.get(n)===r&&S.delete(n),e}};for(let e of n.modes??[])if(!Ol.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${Dl.join(`,`)}`);let w=n.modes?.length?new Set(n.modes):Ol,T=e=>{let t=(e.overrides??[]).map(e=>({...e,include:e.include?.length?li(e.include):void 0,exclude:e.exclude?.length?li(e.exclude):void 0,cooldownDays:e.cooldown===void 0?void 0:Hl(e.cooldown)})),n=e.renovateVersionRules??[];return{greatest:pi(e.greatest),prerelease:pi(e.prerelease),release:pi(e.release),patch:pi(e.patch),minor:pi(e.minor),allowDowngrade:pi(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}},E=/* @__PURE__ */ new WeakMap;function D(e,t){let n=V(E,e,()=>/* @__PURE__ */ new Map),r=n.get(t);if(!r){let{packageName:i,depName:a,names:o}=t,s=e=>o.some(t=>Me(t,e)),c=s(e.greatest),l=s(e.prerelease),u=s(e.release),d=s(e.patch),f=s(e.minor),p=s(e.allowDowngrade),m,h;for(let t of e.renovateVersionRules)Qr(t,i,a)&&(t.allowedVersions!==void 0&&(h=t.allowedVersions),t.cooldownDays!==void 0&&(m=t.cooldownDays));for(let t of e.overrides)t.include&&o.every(e=>!Me(e,t.include))||t.exclude&&o.some(e=>Me(e,t.exclude))||(t.greatest!==void 0&&(c=t.greatest),t.prerelease!==void 0&&(l=t.prerelease),t.release!==void 0&&(u=t.release),t.patch!==void 0&&(d=t.patch),t.minor!==void 0&&(f=t.minor),t.allowDowngrade!==void 0&&(p=t.allowDowngrade),t.cooldownDays!==void 0&&(m=t.cooldownDays));let g=d?kl.patch:f?kl.minor:kl.major;r={useGreatest:c,usePre:l,useRel:u,semvers:g,allowDowngrade:p,cooldownOverride:m,allowedVersions:h},n.set(t,r)}return r}di(n.pin);let O=n.pin??{},ee=(e,t,n)=>{let r=e.find(e=>O[e]);if(r)return{pinnedRange:O[r],pinNoDowngrade:!1};let i=e.find(e=>t[e]),a=!!(i&&Array.isArray(n)&&n.includes(i));return{pinnedRange:i&&!a?t[i]:void 0,pinNoDowngrade:a}},te=Date.now(),ne=({versionConfig:e,pin:t,cooldownDays:n,pinNoDowngrade:r},i,a=r)=>{let{useGreatest:o,usePre:s,useRel:c,semvers:l,allowDowngrade:u,cooldownOverride:d,allowedVersions:f}=D(e,i),{pinnedRange:p,pinNoDowngrade:m}=ee(i.names,t,a),h=d??n;return{useGreatest:o,usePre:s,useRel:c,semvers:l,allowDowngrade:u,allowedVersions:f,pinnedRange:p,pinNoDowngrade:m,cooldownDays:h||void 0,now:h?te:void 0}},k={},ie={},ae={},oe=/* @__PURE__ */ new Map,se=/* @__PURE__ */ new Map,A=[],ce=(e,t,n)=>{let[r,i]=t.split(`\0`);A.push({mode:e,type:r,name:i,error:sn(n?.message||String(n))})},j=(e,t,n)=>{delete k[e][t],ce(e,t,n)},le={},ue=Nl(e()),de=e=>e.replace(`${ue}/`,``).replace(`${ue}\\`,``),M=(e,t,n,r,i)=>Gl(n,e,r,i)?((ae[e]??=/* @__PURE__ */ new Map).set(t,n),!0):!1,N=(e,t,n,r)=>{k[e][t]={old:n,oldOrig:r}},fe=(e,t,n)=>{if(Wo(n))return;let r=Ko(n);Ho(n)?k.npm[e]={old:Yo(n,t).version,new:``,oldOrig:n}:G(n)?k.npm[e]={old:ls(n),new:``,oldOrig:n}:r?(oe.set(e,r),k.npm[e]={old:ls(r.range),new:``,oldOrig:n}):Uo(n)||(ie[e]={old:n})},pe=(e,t,n,r,i)=>{let a=new Set(Object.keys(t.tool?.uv?.sources??{}).map(Bl)),o=(t,i)=>{for(let{name:o,version:s,spec:c}of Ce(t)){if(a.has(Bl(o)))continue;let t=Ll(i,n,o,c);M(e,t,y(e,Bl(o),o),r,i)&&N(e,t,ls(s),s)}};for(let[a,s]of je(We(e,r.modeConfig),t)){let t=s||{};if(Array.isArray(t))e===`pypi`&&o(t,a);else if(typeof t==`string`){let[i,o]=t.split(`@`),s=Ll(a,n,i);M(e,s,y(e,i),r,a)&&N(e,s,ls(o),o)}else if(e===`npm`&&(a===`overrides`||a===`pnpm.overrides`)){let o=a===`overrides`?[`overrides`]:[`pnpm`,`overrides`],s=(t,c)=>{for(let[l,u]of Object.entries(t))if(typeof u==`string`){let t=To(l===`.`?c.at(-1)??l:l);if(i?.has(t))continue;let s=Ll(a,n,t,JSON.stringify([...o,...c,l]));if(!M(e,s,y(e,Xo(t,u),t),r,a))continue;fe(s,t,u)}else u&&typeof u==`object`&&!Array.isArray(u)&&s(u,[...c,l])};s(t,[])}else for(let[s,c]of Object.entries(t)){if(e===`pypi`&&Array.isArray(c)){o(c,`${a}.${s}`);continue}if(typeof c!=`string`||i?.has(Vl(a,s)))continue;let t=Ll(a,n,s);M(e,t,y(e,e===`npm`?Xo(Vl(a,s),c):e===`pypi`?Bl(s):s,s),r,a)&&(e===`npm`?fe(t,s,c):e===`go`?N(e,t,fa(c),X(c)):G(c)&&N(e,t,ls(c),c))}}},me={includePaths:n.includePaths??[],excludePaths:n.excludePaths??hl},he=bl(n.filePatterns?.actions??[]),ge=e=>{if(!he.length||xl(e))return!1;let t=h(ue,e).replaceAll(`\\`,`/`);return he.some(e=>e.test(t))},_e=await Kl(n.files,ue,me,ge),ve=new Set(Array.from(_e.keys()).filter(ge)),ye=e=>xo(e)||ve.has(e),be=new Map(await F(Array.from(_e.keys()).filter(e=>{if(ye(e))return w.has(`actions`)||w.has(`docker`);let t=d(e);return Object.hasOwn(Al,t)&&_e.has(m(f(e),Al[t]))?!1:wc(t)?w.has(`docker`):Dc(t)?w.has(`make`):Gc(t)?w.has(`shell`):w.has(Ee[t])}),async e=>{try{return[e,await re(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),xe={},Se=[],Te=[],P=[],Ne=[],Fe=[],Ie=[],Le=[],L=[],ze={},R=(e,t,n)=>{let r=t===`.`?``:`|${t}`;return(ze[e]??=/* @__PURE__ */ new Map).set(r,n),r},Be=t[ii],Ve=Be&&new Set(Be.cliKeys),He=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!Ve||Ve.has(e)))),Ue=qe(uo),z=qe(async e=>{let t={...await hi(e),...He};return{modeConfig:t,projectDir:e,include:li(t.include??[]),exclude:li(t.exclude??[]),versionConfig:T(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Hl(t.cooldown):0}});function We(e,t){return t.types?.length?t.types:e===`npm`?we:e===`pypi`?De:e===`go`?t.indirect?Oe:Oe.filter(e=>e!==`indirect`):e===`cargo`?[...ke,...Ae]:[]}let Ge=e=>{let t=[],n=!1;for(let[r,i]of e.split(/\r?\n/).entries()){let e=/^(\s*)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*(.*)$/.exec(i);if(!e)continue;let a=e[1].length,o=(e[2]??e[3]??e[4]).trim();if(a===0){n=o===`overrides`;continue}if(!n||!e[5])continue;let s=e[5].replace(/\s+#.*$/,``).trim(),c=/^(['"])(.*)\1$/.exec(s),l=c?.[2]??s;t.push({selector:o,value:l,lineNumber:r,valueIndex:i.length-e[5].length+Number(!!c)})}return t};function Ke(e,t,n){k.docker??={};let r=Il(t,e.fullImage,`${e.tag}${e.digest?`@${e.digest}`:``}`);if(!M(`docker`,r,y(`docker`,e.fullImage),n,`docker`)||k.docker[r])return;let i=js(e.tag);(i||e.digest)&&(k.docker[r]={old:i?.version??e.tag,oldOrig:e.tag,...e.digest&&{oldDigest:e.digest},...e.digestOnly&&{digestOnly:!0}},Le.push({key:r,ref:e,filters:n}))}let B=/* @__PURE__ */ new Map,H=/* @__PURE__ */ new Map;for(let[e,t]of be){let n=d(e);try{if(n===`package.json`){let n=JSON.parse(t),r=Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages,i=Array.isArray(r)?r.filter(e=>typeof e==`string`):[];i.length&&H.set(e,{pkg:n,packagePatterns:i})}else if(n===`Cargo.toml`){let n=_r(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&B.set(e,n)}}catch{}}let Je={cargo:B.size,go:Array.from(_e.keys()).filter(e=>d(e)===`go.work`).length,npm:H.size+Array.from(_e.keys()).filter(e=>d(e)===`pnpm-workspace.yaml`).length},Ye=(e,t,n,r)=>{let i=le[e]??=[],a=!i.length&&!Je[e]?`.`:de(t);return i.push({absPath:g(t),content:n,memberPath:a}),R(e,a,r)},Xe=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},Ze=(e,t,n)=>Je[e]>1?`${de(t)}:${n}`:n,U=(e,t,n,r,i)=>{let a=Ze(`npm`,e,t.memberPath);Ne.push({...t,memberPath:a}),pe(`npm`,n,R(`npm`,a,r),r,i)};for(let e of/* @__PURE__ */ new Set([...B.keys(),...H.keys(),...be.keys()])){let t=d(e),n=be.get(e);if(ye(e)){let t=w.has(`actions`),r=w.has(`docker`),i=de(e),a=await z(f(e)),o=/* @__PURE__ */ new Set;xe[i]={absPath:e,content:n,fileType:`workflow`,workflowLines:o};let s=[];for(let[c,l]of n.split(/\r?\n/).entries()){if(t){let t=vo(l),n=t&&so(t.value);if(n){let r=y(`actions`,`${n.owner}/${n.repo}`,n.name);if(Gl(r,`actions`,a,`actions`)){k.actions??={};let o=t.pinnedVersion||/^#\s*(\S+)\s*$/.exec(t.comment)?.[1]||``,s=Il(i,n.name,n.isHash&&o?`${o}@${n.ref}`:n.ref);k.actions[s]||(k.actions[s]={old:n.ref},Ie.push({...n,key:s,comment:o,identity:r,filters:a,apiUrl:n.name.startsWith(`self:`)?await Ue(f(e)):fo(n.host,x.forgeApiUrl)}))}}}if(!r)continue;let n=go(l,s);if(!n)continue;let{indent:u,key:d}=n,p=d===`container`&&s.length===2&&s[0].key===`jobs`,m=d===`image`&&(s.length===3&&s[0].key===`jobs`&&s[2].key===`container`||s.length===4&&s[0].key===`jobs`&&s[2].key===`services`),h=d===`uses`&&(s.length===3&&s[0].key===`jobs`&&s[2].key===`steps`||s.length===2&&s[0].key===`runs`&&s[1].key===`steps`);if((p||m||h)&&n.value){let e=As(n.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));e&&(Ke(e,i,a),o.add(c))}s.push({indent:u,key:d})}continue}if(wc(t)){let r=de(e),i=await z(f(e)),a=Cc(t)?`dockerfile`:`compose`;xe[r]={absPath:e,content:n,fileType:a};for(let{ref:e}of Ms(n,a))Ke(e,r,i);continue}let i=Dc(t)?`make`:Gc(t)?`shell`:null;if(i){let t=i===`make`?Nc(n):Jc(n),r=Pc(t),a=zc(t);if(!r.length&&!a.length)continue;let o=de(e),s=await z(f(e));xe[o]={absPath:e,content:n};let c=k[i]??={};for(let{installPath:e,version:t}of r){let n=Il(o,e,t);M(i,n,y(`go`,e),s,i)&&(c[n]||(c[n]={old:X(t),oldOrig:t},L.push({mode:i,kind:`go`,key:n,oldSpec:`${e}@${t}`,installPath:e,version:t,filters:s})))}for(let e of a){let t=Il(o,e.writtenImage,e.ref.tag);if(!M(i,t,y(`docker`,e.writtenImage),s,i)||c[t])continue;let n=js(e.ref.tag);if(!n)continue;let r=Lc(e.writtenImage,e.ref.tag,e.digest);c[t]={old:n.version,oldOrig:e.ref.tag},L.push({mode:i,kind:`docker`,key:t,oldSpec:r,image:e,filters:s})}continue}let a=g(e);if(t===`go.mod`&&Se.some(e=>e.absPath===a)||t===`package.json`&&Ne.some(e=>e.absPath===a)||t===`Cargo.toml`&&P.some(e=>e.absPath===a))continue;let o=Ee[t],s=f(a),c=(t,n)=>yl(h(_e.get(e),n).replaceAll(`\\`,`/`),me)||_e.has(t);if(k[o]??={},t===`go.work`){let t=ca(n),[i,a]=await Promise.all([z(s),F(t.use,async e=>{let t=la(s,e);if(!t)return null;let n=await I(re(t,`utf8`));return n===null?null:{usePath:e,modPath:t,modContent:n}},{concurrency:r})]),l=Ze(o,e,`.`),u=R(o,l,i);Te.push({absPath:e,content:n,memberPath:l});let d=a.filter(e=>e!==null),f=new Set(d.map(({modContent:e})=>Li(e)).filter(Boolean));for(let{usePath:t,modPath:n,modContent:r}of d){if(!c(n,m(s,t,`go.mod`)))continue;let a=Ze(o,e,t);Se.push({absPath:n,content:r,memberPath:a}),pe(o,Ri(r),R(o,a,i),i,f)}for(let[e,n]of Object.entries(t.replace)){let t=Ll(`replace`,u,e);!f.has(e)&&M(o,t,y(o,e),i,`replace`)&&N(o,t,fa(n),X(n))}continue}if(t===`Cargo.toml`){let i=B.get(e)??_r(n),l=Pl([`Cargo.lock`],s).get(`Cargo.lock`),u=i.workspace,d=u?.members,f=Array.isArray(d)&&d.length>0,[p,h,g]=await Promise.all([z(s),l?re(l,`utf8`):null,f?Va([...d,...(u.exclude??[]).map(e=>`!${e}`)],s,`Cargo.toml`,r):[]]),_=We(o,p.modeConfig),v=h?$c(h):/* @__PURE__ */ new Map,b=(e,t)=>{for(let[n,r]of je(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e)))for(let[r,i]of Object.entries(e)){let e=typeof i==`object`&&!!i&&`version`in i&&!(`git`in i)&&!(`path`in i)&&!(`registry`in i);if(!e&&typeof i!=`string`)continue;let a=e?i.version:i,s=e&&i.package||r,c=Ll(n,t,r);if(!M(o,c,y(o,s,r),p,n))continue;let l=rl(a);G(l)&&N(o,c,ol(v,s,a)??ls(l),a)}}};if(f){let r=Ze(o,e,`.`);b(i,R(o,r,p)),P.push({absPath:a,content:n,memberPath:r});for(let n of g){if(!c(n.absPath,m(s,n.memberPath,t)))continue;let r=Ze(o,e,n.memberPath);P.push({...n,memberPath:r}),b(Xe(n.absPath,()=>_r(n.content)),R(o,r,p))}}else b(i,Ye(o,e,n,p));continue}if(t===`package.json`&&H.has(e)){let{pkg:i,packagePatterns:o}=H.get(e),[l,u]=await Promise.all([z(s),Va(o,s,`package.json`,r)]),d=u.map(e=>({member:e,pkg:Xe(e.absPath,()=>JSON.parse(e.content))})),f=new Set(d.map(({pkg:e})=>e.name).filter(e=>typeof e==`string`&&e));U(e,{absPath:a,content:n,memberPath:`.`},i,l,f);for(let{member:n,pkg:r}of d)c(n.absPath,m(s,n.memberPath,t))&&U(e,n,r,l,f);continue}if(t===`pnpm-workspace.yaml`){let i=oo(n),l=m(s,`package.json`),[u,d,f]=await Promise.all([z(s),I(re(l,`utf8`)),Va(i,s,`package.json`,r)]),p=Ze(o,e,t),h=R(o,p,u);Fe.push({absPath:a,content:n,memberPath:p});for(let{type:e,name:t,value:r}of io(n)){let n=Ll(e,h,t);M(o,n,y(o,Xo(t,r),t),u,e)&&fe(n,t,r)}for(let{selector:e,value:t}of Ge(n)){let n=`pnpm-workspace.overrides`,r=Ll(n,h,e,JSON.stringify(e));M(o,r,y(o,Xo(To(e),t),e),u,n)&&(se.set(r,e),fe(r,e,t))}d!==null&&c(l,l)&&U(e,{absPath:g(l),content:d,memberPath:`.`},Xe(l,()=>JSON.parse(d)),u);for(let t of f)c(t.absPath,m(s,t.memberPath,`package.json`))&&U(e,t,Xe(t.absPath,()=>JSON.parse(t.content)),u);continue}let l=await z(s);pe(o,Xe(e,()=>o===`npm`?JSON.parse(n):o===`pypi`?_r(n):Ri(n)),Ye(o,e,n,l),l)}let Qe=Object.keys(ie).length>0;if(!zl(k)&&!Qe)return{results:{},message:`No dependencies found, nothing to do.`};let $e={needsDates:ze.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1},et=Object.entries(ze).map(async([e,t])=>{if(!Object.keys(k[e]).length&&(e!==`npm`||!Qe))return;let i=t.values().next().value,a=e=>{let n=e.indexOf(`|`);return t.get(n===-1?``:e.slice(n))??i},s=/* @__PURE__ */ new Map,c=k[e],u=async t=>{let[r,i,u]=t.split(`\0`),d=Fa(r),f=a(r),{modeConfig:p,projectDir:m}=f,h=c[t],{old:g,oldOrig:_}=h,v=_&&Ho(_),y=oe.get(t),b=ae[e].get(t),S=ne(f,b),C=e===`go`?Ql(S,h.oldOrig||h.old):null,[w,T]=await(e===`npm`?v?Zo(b.packageName,x):Bo(b.packageName,d,p,$e,x,m,h.old):e===`go`?ea(b.packageName,r,h.oldOrig||h.old,m,x,o,C):e===`cargo`?Qc(b.packageName,x):jr(b.packageName,x));if(w.error)throw Error(w.error);h.cooldownDays=S.cooldownDays;let E=e===`go`?w:$l(w,e,S.allowedVersions),D=kn(E,{...S,range:g,mode:e,acceptsGoVersion:C?C.accepts:void 0}),O=``;(e===`go`||e===`pypi`)&&D?O=D:e===`cargo`&&D&&_?O=al(_,D):D&&(v?(h.newPrint=cs(g,D,g,d),O=`${_.slice(0,-g.length)}${h.newPrint}`):O=y?`npm:${y.name}@${cs(g,D,y.range,d)}`:cs(g,D,_,d));let ee=e===`pypi`?u:void 0,te=ee&&Lr(ee,_||g,O);!D||D===g||_&&_===O||ee&&(!te||te===ee)?(n.verbose&&D&&D!==g&&Wl(`${Pe()} ${l(`SKIP`)} ${i}: ${_||g} can not be rewritten to ${D}`),delete c[t]):(h.new=O,e===`npm`?s.set(t,{name:b.packageName,promise:Vo(E.name,D,p,$e,x,m)}):h.info=e===`pypi`?pr(E,T,E.info.name):e===`go`?ua(E.newPath||i):`https://crates.io/crates/${E.name}`,Fl(h,e===`pypi`?On(E.releases[D]):e===`go`?E.Time:E.time?.[D]))};if(await F(Object.keys(c),async t=>{try{await u(t)}catch(n){j(e,t,n)}},{concurrency:r}),await Promise.all(Array.from(s,async([t,{name:n,promise:r}])=>{let i=await r,a=c[t],[o]=t.split(`\0`);if(Fa(o)===`packageManager`&&/\+sha\d+\./.test(a.oldOrig||a.old)&&(a.oldPrint=(a.oldOrig||a.old).replace(/\+sha\d+\..*$/,``),!(n===`yarn`&&Number.parseInt(X(a.new))>=2))){let r=/(?:^|\s)sha512-(\S+)/.exec(i.integrity||``);if(!r){j(e,t,`Unable to fetch sha512 integrity for ${n}@${a.new}`);return}a.newPrint=a.new,a.new=`${a.new}+sha512.${Buffer.from(r[1],`base64`).toString(`hex`)}`}a.info=pr(i,null,n),Fl(a,i.date)})),e===`npm`&&Qe){let t=(await F(Object.entries(ie),async([t,n])=>{try{let r=ne(a(t.split(`\0`)[0]),ae[e].get(t)),i=await fs(t,n,x,r);return i&&{...i,cooldownDays:r.cooldownDays}}catch(e){return ce(`npm`,t,e),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:e,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:s,cooldownDays:l}of t)Fl(c[e]={old:ie[e].old,new:n,oldPrint:Qn.test(a)?a.substring(0,7):a,newPrint:Qn.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`,cooldownDays:l},s)}for(let[e,{date:t,cooldownDays:n}]of Object.entries(c))n&&!J(t,n,te)&&delete c[e]}),tt=F(Map.groupBy(Ie,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0];if(!t){for(let t of e)t.isHash||$n(t.ref)?j(`actions`,t.key,`Unable to resolve the instance of ${t.name}, set GITEA_SERVER_URL or an origin remote`):delete k.actions[t.key];return}let a=e.filter(e=>e.isHash?!El(e):$n(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=ne(e.filters,e.identity);return t||!(!n||r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===Y.forgeapi?[]:e.filter(El).map(e=>e.comment)],c=[];try{s.length&&(c=await lr(t,n,i,x,o?[]:s,!!a.length))}catch(t){for(let n of e)j(`actions`,n.key,t);return}let l=/* @__PURE__ */ new Map,u=/* @__PURE__ */ new Map;for(let e of c)l.set(e.name,e),e.commitSha&&u.set(e.commitSha,e.name);let d=/* @__PURE__ */ new Map,f=e=>V(d,e,()=>{let t=e?Zl(`actions`,e):null,n=/* @__PURE__ */ new Map,r=/* @__PURE__ */ new Set;for(let e of c){let i=Mt.parse(e.name)?.version;!i||e.isStable===!1||t&&!t(i,e.name)||(r.add(e.name),e.name.length>(n.get(i)?.length??0)&&n.set(i,e.name))}return{tagByVersion:n,versions:Array.from(n.keys()),allowedTags:r}}),p=qe(e=>po(t,n,i,e,x)),m=async(e,t)=>{let n=await p(e),r=l.get(t)?.releaseTimestamp;return n!==void 0&&r&&(!n||Date.parse(r)>Date.parse(n))?r:n},h=qe(async e=>{let r=l.get(e)?.commitSha;if(r)return r;let a=t===Y.forgeapi?`commits`:`branches`,o=`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,s=await Jn(o,x);if(s.status===404)return``;if(!s.ok){let e=s.status===401||s.status===403?`, ${Hn(new URL(o).host)}`:``;throw Error(`Received ${s.status} from ${o}${e}`)}let c=await s.json();return[c?.sha,c?.id,c?.commit?.sha,c?.commit?.id].find(e=>typeof e==`string`)??``});async function g(e,{tagByVersion:t,versions:r}){let a={...e,cooldownDays:void 0,now:void 0},o=/* @__PURE__ */ new Set;for(let s=0;s<100;s++){let s=Cn({},o.size?r.filter(e=>!o.has(e)):r,a);if(!s)return null;let c=t.get(s),{commitSha:u,releaseTimestamp:d}=l.get(c);if(!e.cooldownDays)return{version:s,tag:c,commitSha:u,date:``};if(d&&!J(d,e.cooldownDays,e.now)){o.add(s);continue}let f=u?await m(u,c):``;if(f===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${c}`);if(J(f,e.cooldownDays,e.now))return{version:s,tag:c,commitSha:u,date:f};o.add(s)}return null}await F(e,async e=>{try{let{key:r,host:a,ref:o,comment:s,isHash:c}=e,d=k.actions[r],p=`${e.name.startsWith(`self:`)?t.replace(/\/api\/v1$/,``):`https://${a||`github.com`}`}/${n}/${i}`,_=o;if(c?_=s||u.get(o)||u.entries().find(([e])=>e.startsWith(o))?.[1]||``:$n(o)||(_=``),!_){delete k.actions[r];return}let v=ne(e.filters,e.identity),y=f(v.allowedVersions),b=$n(_)?await g({...v,range:_,versioning:Mt},y):null;if(!b){if(!c||!s){delete k.actions[r];return}let e=await h(s);if(!e||e.startsWith(o)||o.startsWith(e)){delete k.actions[r];return}if(v.cooldownDays){let t=await m(e,s);if(t===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${s}`);if(!J(t,v.cooldownDays,v.now)){delete k.actions[r];return}}d.old=s,d.new=s,d.oldDigest=o,d.newDigest=e,d.digestOnly=!0,d.info=p,Fl(d,await I(m(e,s)));return}let{tag:x,commitSha:S,date:C}=b,w=mo(x,_),T=y.allowedTags.has(w)?w:x;if(c){if(!S||S.startsWith(o)||o.startsWith(S)){delete k.actions[r];return}d.old=o,d.new=S.substring(0,o.length),d.oldPrint=_,d.newPrint=s&&l.get(T).commitSha===S?T:x}else{if(T===o){delete k.actions[r];return}d.new=T}d.info=p,Fl(d,C||(S?await I(m(S,x)):``))}catch(t){j(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),nt=F(Map.groupBy(Le,e=>e.ref.fullImage).entries(),async([e,t])=>{let n=t[0].ref.registry?t=>tc(e,t,x):void 0,i;try{[i]=await ic(e,x)}catch(e){for(let n of t)j(`docker`,n.key,e);return}await F(t,async e=>{try{let t=k.docker[e.key],r=t.oldOrig||t.old,a=ne(e.filters,ae.docker.get(e.key),!1),o=!e.ref.digestOnly&&js(r)?await hc($l(i,`docker`,a.allowedVersions).tags,r,a.semvers,a.cooldownDays,a.now,a.pinnedRange,a.usePre,a.useRel,n):null,s=o?.newTag??r;if(e.ref.digest){if(!o&&!J(i.tags[r]||(a.cooldownDays?await n?.(r):``),a.cooldownDays,a.now)){delete k.docker[e.key];return}let c=await C(e.ref.fullImage,s);if(!c||c===e.ref.digest&&!o){delete k.docker[e.key];return}t.oldDigest=e.ref.digest,t.newDigest=c,t.digestOnly=e.ref.digestOnly}else if(!o){delete k.docker[e.key];return}t.new=s,t.info=Tc(e.ref),Fl(t,o?.date||i.tags[s])}catch(t){j(`docker`,e.key,t)}},{concurrency:r})},{concurrency:r}),rt=F(L,async e=>{let t=ne(e.filters,ae[e.mode].get(e.key)),n=k[e.mode],r=n[e.key];try{if(e.kind===`go`){let{projectDir:i}=e.filters,a=await Uc(e.installPath,i,x,o);if(!a){delete n[e.key];return}let s=Ql(t,X(e.version)),[c]=await ea(a,`tool`,X(e.version),i,x,o,s),l=kn(c,{...t,mode:`go`,range:X(e.version),acceptsGoVersion:s.accepts});if(!l){delete n[e.key];return}let u=c.newPath??Di(a,l),d=`${u}${e.installPath.slice(a.length)}`,f=ur(l,e.version);if(d===e.installPath&&f===e.version){delete n[e.key];return}e.newSpec=`${d}@${f}`,r.new=f,r.info=ua(u),Fl(r,c.Time)}else{let{registry:i,fullImage:a}=e.image.ref,[o]=await ic(a,x),s=await hc($l(o,`docker`,t.allowedVersions).tags,e.image.ref.tag,t.semvers,t.cooldownDays,t.now,t.pinnedRange,t.usePre,t.useRel,i?e=>tc(a,e,x):void 0);if(!s){delete n[e.key];return}let c=e.image.digest?await C(a,s.newTag):null;if(e.image.digest&&!c){delete n[e.key];return}e.newSpec=Lc(e.image.writtenImage,s.newTag,c),r.new=s.newTag,r.info=Tc(e.image.ref),Fl(r,s.date)}}catch(t){j(e.mode,e.key,t)}},{concurrency:r});try{await Promise.all([...et,tt,nt,rt])}finally{n.noCache||await Gt()}if(!zl(k))return A.length?{results:{},errors:A}:{results:{},message:`All dependencies are up to date.`};let it=(e,t)=>{let n=e.split(`
75
+ `),r=new Map(Ge(e).map(e=>[e.selector,e]));for(let[e,i]of se){let a=k.npm[e],o=r.get(i);if(!a||!Rl(e,t)||!o||o.value!==(a.oldOrig||a.old))continue;let s=n[o.lineNumber];n[o.lineNumber]=`${s.slice(0,o.valueIndex)}${a.new}${s.slice(o.valueIndex+o.value.length)}`}return n.join(`
76
+ `)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=La(k[e],r.memberPath);Object.keys(t).length&&ql(r.absPath,n(r.content,t,r))}},t=new Map(Ie.map(e=>[e.key,e.comment])),n=e=>Map.groupBy(e,([e])=>e.split(`\0`)[0]);for(let r of Object.keys(k).sort((e,t)=>Number(e===`docker`)-Number(t===`docker`)))if(Object.keys(k[r]).length){if(r===`actions`)for(let[e,r]of n(Object.entries(k.actions))){let n=xe[e];n.content=yo(n.content,r.map(([e,n])=>{let r=n.oldDigest??n.old;return{name:e.split(`\0`)[1],oldRef:r,newRef:n.newDigest?n.newDigest.substring(0,r.length):n.new,oldComment:t.get(e)||void 0,newComment:n.digestOnly?void 0:Qn.test(n.old)?n.newPrint:void 0}})),ql(n.absPath,n.content)}else if(r===`docker`)for(let[e,t]of n(Object.entries(k.docker))){let{absPath:n,content:r,fileType:i,workflowLines:a}=xe[e];ql(n,(i===`dockerfile`?vc:i===`compose`?yc:(e,t)=>e.split(`
77
+ `).map((e,n)=>a.has(n)?bc(e,t):e).join(`
78
+ `))(r,Object.fromEntries(t)))}else if(r===`make`||r===`shell`){let e=L.filter(e=>e.newSpec&&k[r][e.key]);for(let[t,n]of Map.groupBy(e,e=>e.key.split(`\0`)[0])){let{absPath:e,content:r}=xe[t];ql(e,Wc(r,n.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}}else if(r===`go`){for(let e of[...Se,...le.go??[]]){let t=La(k[r],e.memberPath);if(!Object.keys(t).length)continue;let[n,i]=ra(e.content,t);n!==e.content&&ql(e.absPath,n),sa(f(e.absPath),i,ql)}for(let e of Te){let t=Object.fromEntries(Object.entries(La(k[r],e.memberPath)).filter(([e])=>Fa(e.split(`\0`)[0])===`replace`));if(!Object.keys(t).length)continue;let[n]=ra(e.content,t);n!==e.content&&ql(e.absPath,n)}}else r===`cargo`?e(r,[...P,...le.cargo??[]],fl):r===`npm`?(e(r,Fe,(e,t,n)=>it(ao(e,t),n.memberPath)),e(r,[...Ne,...le.npm??[]],Qo)):e(r,le[r]??[],Vr)}}let at=Xl(k);return A.length&&(at.errors=A),at}export{ii as i,hl as n,wa as r,eu as t};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "19.2.2",
3
+ "version": "19.4.0",
4
4
  "description": "CLI to update npm, uv, cargo, go, docker and actions dependencies",
5
5
  "author": "silverwind",
6
6
  "repository": {
@@ -51,8 +51,8 @@
51
51
  "eslint": "10.13.0",
52
52
  "eslint-config-silverwind": "155.0.2",
53
53
  "timerel": "5.9.2",
54
- "tsdown": "0.23.1",
55
- "tsdown-config-silverwind": "4.1.3",
54
+ "tsdown": "0.23.2",
55
+ "tsdown-config-silverwind": "4.1.4",
56
56
  "typescript": "6.0.3",
57
57
  "typescript-config-silverwind": "21.0.2",
58
58
  "updates-config-silverwind": "4.0.9",