updates 18.0.8 → 18.1.1
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 +6 -1
- package/dist/api.d.ts +5 -5
- package/dist/dns.js +1 -1
- package/dist/prewarm.js +1 -1
- package/dist/shared.js +29 -24
- package/package.json +15 -15
package/README.md
CHANGED
|
@@ -46,6 +46,8 @@ npx updates -u && npm i
|
|
|
46
46
|
|`-s, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 50|
|
|
47
47
|
|`-T, --timeout <ms>`|Network request timeout in ms, go probes use half. Default: 5000|
|
|
48
48
|
|`-r, --registry <url>`|Override npm registry URL|
|
|
49
|
+
|`-L, --login <host>`|Verify and store a forge API token|
|
|
50
|
+
|`-O, --logout <host>`|Remove a stored forge API token|
|
|
49
51
|
|`-I, --indirect`|Include indirect Go dependencies|
|
|
50
52
|
|`-E, --error-on-outdated`|Exit with code 2 when updates are available and 0 when not|
|
|
51
53
|
|`-U, --error-on-unchanged`|Exit with code 0 when updates are available and 2 when not|
|
|
@@ -149,10 +151,13 @@ const output = await updates({
|
|
|
149
151
|
|:-|:-|
|
|
150
152
|
|`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|
|
|
151
153
|
|`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|
|
|
154
|
+
|`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|
|
|
152
155
|
|`GOPROXY`|Go module proxy list, honored as go itself does. Default: `https://proxy.golang.org,direct`|
|
|
153
156
|
|`GONOPROXY`|Comma-separated list of Go module patterns to fetch directly, bypassing the proxy|
|
|
154
157
|
|`GOPRIVATE`|Fallback for `GONOPROXY` when not set|
|
|
155
158
|
|
|
156
|
-
A host in `UPDATES_FORGE_TOKENS` wins over
|
|
159
|
+
`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.
|
|
160
|
+
|
|
161
|
+
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.
|
|
157
162
|
|
|
158
163
|
© [silverwind](https://github.com/silverwind), distributed under BSD licence
|
package/dist/api.d.ts
CHANGED
|
@@ -116,7 +116,7 @@ type Output$1 = {
|
|
|
116
116
|
//#endregion
|
|
117
117
|
//#region api.d.ts
|
|
118
118
|
/** A dependency whose lookup failed. Every other dependency is still resolved and written. */
|
|
119
|
-
type DepError = {
|
|
119
|
+
export type DepError = {
|
|
120
120
|
mode: string;
|
|
121
121
|
/** The dependency type, or the file path for the file-scoped modes, as in `results` */
|
|
122
122
|
type: string;
|
|
@@ -124,10 +124,10 @@ type DepError = {
|
|
|
124
124
|
error: string;
|
|
125
125
|
};
|
|
126
126
|
/** `errors` is absent unless a lookup failed, keeping a clean run's shape unchanged. */
|
|
127
|
-
type Output = Output$1 & {
|
|
127
|
+
export type Output = Output$1 & {
|
|
128
128
|
errors?: Array<DepError>;
|
|
129
129
|
};
|
|
130
|
-
type UpdatesOptions = Config & {
|
|
130
|
+
export type UpdatesOptions = Config & {
|
|
131
131
|
forgeapi?: string;
|
|
132
132
|
pypiapi?: string;
|
|
133
133
|
jsrapi?: string;
|
|
@@ -135,6 +135,6 @@ type UpdatesOptions = Config & {
|
|
|
135
135
|
cargoapi?: string;
|
|
136
136
|
dockerapi?: string;
|
|
137
137
|
};
|
|
138
|
-
declare function updates(opts?: UpdatesOptions): Promise<Output>;
|
|
138
|
+
export declare function updates(opts?: UpdatesOptions): Promise<Output>;
|
|
139
139
|
//#endregion
|
|
140
|
-
export { type Config, type Dep,
|
|
140
|
+
export { type Config, type Dep, type Deps, type DepsByMode, type Override, cliBaseConfig as cliConfigBaseDir };
|
package/dist/dns.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"node:dns";let t=null;function n(){if(e.lookup===t?.lookup)return t.users++,r(t);let n
|
|
1
|
+
import e from"node:dns";let t=null;function n(){if(e.lookup===t?.lookup)return t.users++,r(t);let n=/* @__PURE__ */ new Map,i=/* @__PURE__ */ new Map,a=e.lookup,o=function(t,...r){let o=typeof r[0]!=`function`,s=o?r[0]:void 0,c=typeof s==`number`?{family:s}:s||{},l=o?r[1]:r[0];if(typeof l!=`function`)return a.call(e,t,...r);let u=JSON.stringify([t,c.family??0,c.hints??0,!!c.all,c.order??``,c.verbatim??``]),d=n.get(u);if(d){if(d.expires>Date.now()){queueMicrotask(()=>l(null,...d.result));return}n.delete(u)}let f=i.get(u);if(f){f.push(l);return}i.set(u,[l]);let p=(e,...t)=>{queueMicrotask(()=>{let r=i.get(u);i.delete(u),e||(n.size>=512&&n.delete(n.keys().next().value),n.set(u,{expires:Date.now()+6e4,result:t}));for(let n of r)n(e,...t)})};try{o?a.call(e,t,s,p):a.call(e,t,p)}catch(e){throw i.delete(u),e}};return e.lookup=o,t={lookup:o,original:a,users:1},r(t)}function r(n){let r=!1;return()=>{r||(r=!0,n.users--,!n.users&&(e.lookup===n.lookup&&(e.lookup=n.original),t===n&&(t=null)))}}export{n as enableDnsCache};
|
package/dist/prewarm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{env as e}from"node:process";import{basename as t,join as n,resolve as r}from"node:path";import{readFileSync as i,readdirSync as a,statSync as o}from"node:fs";const s
|
|
1
|
+
import{env as e}from"node:process";import{basename as t,join as n,resolve as r}from"node:path";import{readFileSync as i,readdirSync as a,statSync as o}from"node:fs";const s=/* @__PURE__ */ new Set([`.github`,`.gitea`,`.forgejo`]),c={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:`https://api.github.com`,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},l=[`dependencies`,`devDependencies`,`optionalDependencies`,`peerDependencies`,`resolutions`],u=e=>e===`package.json`||e===`pnpm-workspace.yaml`?`npm`:e===`pyproject.toml`?`pypi`:e===`Cargo.toml`?`cargo`:e===`go.mod`||e===`go.work`?`go`:/^Dockerfile(?:\..+)?$/.test(e)||/^(?:docker-|compose).*\.ya?ml$/.test(e)?`docker`:[`Makefile`,`makefile`,`GNUmakefile`].includes(e)||e.endsWith(`.mk`)?`make`:/\.ya?ml$/.test(e)?`actions`:``;function d(d,f){let p=Array.isArray(f.modes)?new Set(f.modes):typeof f.modes==`string`?new Set(f.modes.split(`,`)):null,m=/* @__PURE__ */ new Set,h=/* @__PURE__ */ new Set,g=Array.isArray(f.files)&&f.files.length?f.files.filter(e=>typeof e==`string`):[d];for(let e of g){let t=r(e);try{if(o(t).isFile()){h.add(t);continue}for(let e of a(t,{withFileTypes:!0}))if(e.isFile())h.add(n(t,e.name));else if(s.has(e.name))try{for(let r of a(n(t,e.name,`workflows`),{withFileTypes:!0}))r.isFile()&&/\.ya?ml$/.test(r.name)&&h.add(n(t,e.name,`workflows`,r.name))}catch{}}catch{}}for(let e of h){let n=t(e),r=u(n);if(r&&(!p||p.has(r)||r===`actions`&&p.has(`docker`)))try{let t=i(e,`utf8`);if(n===`package.json`){let e;try{e=JSON.parse(t)}catch{continue}let n=l.flatMap(t=>Object.values(e[t]??{}));typeof e.packageManager==`string`&&n.push(e.packageManager.split(`@`,1)[0]);for(let e of n)typeof e!=`string`||/^(?:file|link|workspace):/.test(e)||(/^(?:jsr:|npm:@jsr\/)/.test(e)?m.add(`jsrapi`):/^(?:git(?:\+https?|\+ssh)?:|https?:\/\/[^/]*(?:github|gitea|forgejo)|github:|gitea:|forgejo:)/.test(e)?m.add(`forgeapi`):m.add(`registry`))}else if(n===`pnpm-workspace.yaml`)/\b(?:jsr:|npm:@jsr\/)/.test(t)&&m.add(`jsrapi`),/\b(?:catalogs?|overrides):|:\s*["']?[~^<>=]*\d/.test(t)&&m.add(`registry`);else if(n===`pyproject.toml`)/^[ \t]*["'][A-Za-z0-9][\w.-]*(?:\[[^\]]+\])?\s*(?:[<>=!~]|@)/m.test(t)&&m.add(`pypiapi`);else if(n===`Cargo.toml`)/^\s*\[(?:target\.[^\]]+\.)?(?:dev-|build-)?dependencies\]/m.test(t)&&m.add(`cargoapi`);else if(n===`go.mod`||n===`go.work`)/^\s*(?:require\s+)?\S+\s+v\d/m.test(t)&&m.add(`goproxy`);else if(r===`docker`)/^\s*(?:FROM\s+(?:--\S+\s+)*|image\s*:\s*)[^\s#]+[:@]/im.test(t)&&m.add(`dockerapi`);else if(r===`make`)/\bgo\s+install\s+\S+@v\d/.test(t)&&m.add(`goproxy`),/\b(?:docker|image)\b[^\n]*[\w./-]+:[\w.-]+/i.test(t)&&m.add(`dockerapi`);else{let e=-1;for(let n of t.split(/\r?\n/)){let t=n.search(/\S|$/);e!==-1&&(!n.trim()||t>e)||(e=/:\s*[|>](?:[1-9][+-]?|[+-][1-9]?)?\s*(?:#.*)?$/.test(n)?t:-1,(!p||p.has(`actions`))&&/^\s*(?:-\s*)?uses\s*:\s*["']?(?!\.\/|docker:\/\/)[^\s#]+@/.test(n)&&m.add(`forgeapi`),(!p||p.has(`docker`))&&/^\s*(?:(?:container|image)\s*:\s*["']?[^\s#]+[:@]|(?:-\s*)?uses\s*:\s*["']?docker:\/\/)/.test(n)&&m.add(`dockerapi`))}}}catch{}}let _=/* @__PURE__ */ new Set;for(let t of m){let r=f[t];if(t===`registry`&&typeof r!=`string`)try{r=/^\s*registry\s*=\s*(\S+)\s*$/m.exec(i(n(d,`.npmrc`),`utf8`))?.[1]}catch{}else t===`goproxy`&&typeof r!=`string`&&(r=e.GOPROXY);let a=typeof r==`string`&&r?r:c[t];if(!(t===`goproxy`&&(a=a.split(/[|,]/,1)[0].trim(),a===`off`||a===`direct`)))try{let e=new URL(a).origin;_.add(e===c.forgeapi?`${e}/rate_limit`:`${e}/`)}catch{}}return Array.from(_)}export{d as prewarmOrigins};
|
package/dist/shared.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import{cwd as e,env as t,
|
|
2
|
-
`)}return i}const Me={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ne(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Me[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Pe(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function P(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 Fe(e){try{return await e}catch{return null}}const F=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function I(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(F).join(`|`)}const Ie=new WeakMap;var L=class extends RegExp{constructor(e,t,n){super(e,n),Ie.set(this,t)}test(e){return Ie.get(this)(e)}};function Le(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 Re(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 ze(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Le(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 R(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(F(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===`{`){let a=Re(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=ze(e.slice(i+1,a)).map(R);t+=`(?:${r.map(e=>e.source).join(`|`)})`,n.push({kind:`alternatives`,alternatives:r.map(e=>e.tokens),minimum:1,repeat:!1}),i=a}}else if(`@+?*!`.includes(a)&&e[i+1]===`(`){let o=Re(e,i+1,`(`,`)`);if(o===-1)r(F(a));else{let r=Le(e.slice(i+2,o)).map(R),s=r.map(e=>e.source).join(`|`);t+=a===`!`?`(?!(?:${s})(?:/|$))[^/]*`:`(?:${s})${a===`@`?``:a}`;let c=r.map(e=>e.tokens);n.push(a===`!`?{kind:`negative`,alternatives:c}:{kind:`alternatives`,alternatives:c,minimum:a===`?`||a===`*`?0:1,repeat:a===`+`||a===`*`}),i=o}}else r(F(a))}return{source:t,tokens:n}}function Be(e,t){let n=new WeakMap,r=(e,n,r)=>{for(let i=n;e.add(i),!(i===t.length||!r&&t[i]===`/`);i++);},i=(e,a)=>{let o=n.get(e);o||(o=new Map,n.set(e,o));let s=o.get(a);if(s)return s;let c=new Set([a]);o.set(a,c);for(let n of e){let e=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 Ve(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 L(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}=R(e.slice(n)),o=e=>Be(a,e);return new L(`^${i}$`,r?e=>!o(e):o,`i`)}async function He(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function Ue(e,t){let n=e;for(;;){let e=t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function z(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function B(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 We(e){let t=new Map;return n=>B(t,n,()=>e(n))}const V=`0|[1-9]\\d*`,Ge=/^(?:0|[1-9]\d*)$/,Ke=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,qe=RegExp(`^v?(${V})\\.(${V})\\.(${V})(?:-((?:${Ke})(?:\\.(?:${Ke}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Je=new Map;function H(e){return typeof e==`string`?B(Je,e,()=>{let t=qe.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 Ye(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 Xe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function Ze(e,t){let n=Xe(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=Ye(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function Qe(e){return H(e)?.version??null}function U(e){return H(e)}const $e=new Map,et=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function tt(e){return typeof e==`string`?B($e,e,()=>{let t=et.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function nt(e,t){let n=H(e),r=H(t);return!n||!r?null:rt(n,r)}function rt(e,t){let n=Ze(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(Xe(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 it(e,t){let n=H(e),r=H(t);return n&&r?Ze(n,r):null}function at(e,t){return(it(e,t)??-1)>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=t[1].split(`.`),r=[],i=!1;for(let e of n)if(/^[xX*]$/.test(e))i=!0,r.push(null);else{if(i||!Ge.test(e))return null;let t=Number(e);if(!Number.isSafeInteger(t))return null;r.push(t)}for(;r.length<3;)r.push(null);return(t[2]||t[3])&&r.some(e=>e===null)||(t[2]||t[3])&&!H(`${r.join(`.`)}${t[2]??``}${t[3]??``}`)?null:{major:r[0],minor:r[1],patch:r[2],suffix:`${t[2]??``}${t[3]??``}`}}function W(e,t,n,r,i=``){let a=H(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function G(...e){let t=e.filter(e=>e!==null);return t.length===e.length?t:null}function st(e,t){let n=Ze(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 K(e,t,n){return W(`<`,e,t,n,`-0`)}function ct(e,t){if(e.major===null)return t===`>`||t===`<`?G(K(0,0,0)):[];let n=e.major,r=e.minor??0,i=e.patch??0;if(t===`^`||t===`~`){let a=W(`>=`,n,r,i,e.suffix);return e.minor===null?G(a,K(n+1,0,0)):t===`~`?G(a,K(n,r+1,0)):n===0?e.patch!==null&&r===0?G(a,K(0,0,i+1)):G(a,K(0,r+1,0)):G(a,K(n+1,0,0))}return e.minor!==null&&e.patch!==null?G(W(t||`=`,n,r,i,e.suffix)):!t||t===`=`?e.minor===null?G(W(`>=`,n,0,0),K(n+1,0,0)):G(W(`>=`,n,r,0),K(n,r+1,0)):t===`>`?e.minor===null?G(W(`>=`,n+1,0,0)):G(W(`>=`,n,r+1,0)):t===`<=`?e.minor===null?G(K(n+1,0,0)):G(K(n,r+1,0)):t===`<`?e.minor===null?G(K(n,0,0)):G(K(n,r,0)):G(W(`>=`,n,r,0))}function lt(e,t){let n=ot(e),r=ot(t);if(!n||!r)return null;let i=[];if(n.major!==null){let e=W(`>=`,n.major,n.minor??0,n.patch??0,n.suffix);if(!e)return null;i.push(e)}if(r.major===null)return i;let a=r.minor===null?K(r.major+1,0,0):r.patch===null?K(r.major,r.minor+1,0):W(`<=`,r.major,r.minor,r.patch,r.suffix);return a?(i.push(a),i):null}function ut(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return lt(t[1],t[2]);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?ct(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const dt=new Map;function ft(e){return B(dt,e,()=>{let t=e.split(`||`).map(e=>ut(e.trim()));return t.some(e=>e===null)?null:t})}function pt(e,t){return t.some(t=>!st(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 mt(e,t){return!!ft(t)?.some(t=>pt(e,t))}function q(e,t){let n=H(e);return!!(n&&mt(n,t))}function J(e){return typeof e==`string`&&ft(e)?e:null}const ht=`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]+)*))?`,gt=RegExp(`^${ht}$`,`i`),_t=RegExp(ht,`i`),vt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},yt=new Map;function Y(e){return typeof e==`string`?B(yt,e,()=>{let t=gt.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?[vt[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 bt(e){return Y(e)??Y(_t.exec(e)?.[0]??``)}const xt=e=>!!e.pre||e.dev!==null;function St(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 Ct(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?St(e.local,t.local):a<o?-1:1}function wt(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 Tt(e,t){let n=Ct(e,t);if(n===0)return null;let r=wt(e,t);return xt(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Et=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,X={parse:U,parseRange:e=>U(Et.exec(e)?.[0]??``)??U(tt(e)?.version??``),compare:Ze,diff:rt,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:mt},Dt=new Map;function Ot(e){return B(Dt,e,()=>{let t=e.trim().replace(/^v/i,``);return(U(t)??U(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?U(tt(t)?.version??``):null)})}const kt={...X,parse:Ot,parseRange:Ot,isRangePrerelease:e=>!!Ot(e)?.prerelease.length},At={parse:Y,parseRange:bt,compare:Ct,diff:Tt,isPrerelease:xt,isRangePrerelease:e=>{let t=bt(e);return!!(t&&xt(t))},satisfiesRange:({release:e},t)=>q(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},jt=/[A-Za-z_$]/,Mt=/[A-Za-z0-9_$]/;function Nt(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,versions as s}from"node:process";import{parseArgs 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,readFile as x,readFileSync as S,readdirSync as C,realpathSync as ee,statSync as w,truncateSync as te,writeFileSync as ne}from"node:fs";import{pathToFileURL as T}from"node:url";import{text as re}from"node:stream/consumers";import{access as E,mkdir as ie,readFile as D,readdir as ae,realpath as oe,rename as O,stat as k,unlink as se,utimes as A,writeFile as j}from"node:fs/promises";import{AsyncLocalStorage as M}from"node:async_hooks";import{Buffer as ce}from"node:buffer";import{setTimeout as le}from"node:timers/promises";import{createHash as ue}from"node:crypto";import{homedir as N}from"node:os";function P(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r;){let n=e.charCodeAt(t);if(n>=48&&n<=57)break;t++}r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const de=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,fe=/^(\s*\()([^)]*)(\)\s*)$/,pe=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,F=/* @__PURE__ */ new Set([`===`,`==`,`>=`,`~=`]),me=/^v?\d[0-9a-z.!+_-]*$/i;function he(e){let t=[];for(let n of e.split(`,`)){let e=pe.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 ge(e){let t=e.indexOf(`;`),n=de.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[r,i,a,o,s,c,l]=n,u=fe.exec(l);return{name:a,extras:s,specifiers:he(u?u[2]:l),marker:t===-1?``:e.slice(t),head:`${i}${a}${o}${s}${c}`,open:u?.[1]??``,close:u?.[3]??``}}function _e({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 ve(e){return e.find(({op:e,version:t})=>F.has(e)&&me.test(t))}function ye(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=ge(n);if(!e?.specifiers)continue;let r=ve(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const be=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],xe=[`node`,`deno`,`bun`],I=[`.github`,`.gitea`,`.forgejo`],Se={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Ce=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],we=[`deps`,`indirect`,`replace`,`tool`],Te=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Ee=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function De(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 Oe(e,t){if(t===!0)return!0;if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function ke(e){return e.split(`,`).filter(Boolean)}function Ae(){let e=/* @__PURE__ */ new Date;return(/* @__PURE__ */ new Date(e.getTime()-e.getTimezoneOffset()*6e4)).toISOString().replace(`T`,` `).slice(0,-1)}function je(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 Me={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ne(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[e,n,r]=t,i=Me[r.toLowerCase()];if(i)return Number(n)*i}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Pe(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 Fe(e){try{return await e}catch{return null}}const R=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Ie(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(R).join(`|`)}const Le=/* @__PURE__ */ new WeakMap;var Re=class extends RegExp{constructor(e,t,n){super(e,n),Le.set(this,t)}test(e){return Le.get(this)(e)}};function z(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 z(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 Ve(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(R(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===`{`){let a=ze(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=Be(e.slice(i+1,a)).map(Ve);t+=`(?:${r.map(e=>e.source).join(`|`)})`,n.push({kind:`alternatives`,alternatives:r.map(e=>e.tokens),minimum:1,repeat:!1}),i=a}}else if(`@+?*!`.includes(a)&&e[i+1]===`(`){let o=ze(e,i+1,`(`,`)`);if(o===-1)r(R(a));else{let r=z(e.slice(i+2,o)).map(Ve),s=r.map(e=>e.source).join(`|`);t+=a===`!`?`(?!(?:${s})(?:/|$))[^/]*`:`(?:${s})${a===`@`?``:a}`;let c=r.map(e=>e.tokens);n.push(a===`!`?{kind:`negative`,alternatives:c}:{kind:`alternatives`,alternatives:c,minimum:a===`?`||a===`*`?0:1,repeat:a===`+`||a===`*`}),i=o}}else r(R(a))}return{source:t,tokens:n}}function He(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=n.get(e);o||(o=/* @__PURE__ */ new Map,n.set(e,o));let 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 Ue(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 Re(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}=Ve(e.slice(n)),o=e=>He(a,e);return new Re(`^${i}$`,r?e=>!o(e):o,`i`)}async function We(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=f(n);if(r===n)return null;n=r}}function Ge(e,t){let n=e;for(;;){let e=t(n);if(e)return e;let r=f(n);if(r===n)return null;n=r}}function Ke(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function B(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=>B(t,n,()=>e(n))}const Je=`0|[1-9]\\d*`,Ye=/^(?:0|[1-9]\d*)$/,Xe=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,Ze=RegExp(`^v?(${Je})\\.(${Je})\\.(${Je})(?:-((?:${Xe})(?:\\.(?:${Xe}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Qe=/* @__PURE__ */ new Map;function V(e){return typeof e==`string`?B(Qe,e,()=>{let t=Ze.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 $e(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 et(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function tt(e,t){let n=et(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=$e(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function nt(e){return V(e)?.version??null}function H(e){return V(e)}const rt=/* @__PURE__ */ new Map,it=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function at(e){return typeof e==`string`?B(rt,e,()=>{let t=it.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function ot(e,t){let n=V(e),r=V(t);return!n||!r?null:st(n,r)}function st(e,t){let n=tt(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(et(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 ct(e,t){let n=V(e),r=V(t);return n&&r?tt(n,r):null}function lt(e,t){return(ct(e,t)??-1)>0}function ut(e){let t=/^v?([^.+-]+(?:\.[^.+-]+){0,2})(-[0-9a-zA-Z.-]+)?(\+[0-9a-zA-Z.-]+)?$/.exec(e);if(!t)return null;let n=t[1].split(`.`),r=[],i=!1;for(let e of n)if(/^[xX*]$/.test(e))i=!0,r.push(null);else{if(i||!Ye.test(e))return null;let t=Number(e);if(!Number.isSafeInteger(t))return null;r.push(t)}for(;r.length<3;)r.push(null);return(t[2]||t[3])&&r.some(e=>e===null)||(t[2]||t[3])&&!V(`${r.join(`.`)}${t[2]??``}${t[3]??``}`)?null:{major:r[0],minor:r[1],patch:r[2],suffix:`${t[2]??``}${t[3]??``}`}}function U(e,t,n,r,i=``){let a=V(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function W(...e){return e.every(e=>e!==null)?e:null}function dt(e,t){let n=tt(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 G(e,t,n){return U(`<`,e,t,n,`-0`)}function ft(e,t){if(e.major===null)return t===`>`||t===`<`?W(G(0,0,0)):[];let n=e.major,r=e.minor??0,i=e.patch??0;if(t===`^`||t===`~`){let a=U(`>=`,n,r,i,e.suffix);return e.minor===null?W(a,G(n+1,0,0)):t===`~`?W(a,G(n,r+1,0)):n===0?e.patch!==null&&r===0?W(a,G(0,0,i+1)):W(a,G(0,r+1,0)):W(a,G(n+1,0,0))}return e.minor!==null&&e.patch!==null?W(U(t||`=`,n,r,i,e.suffix)):!t||t===`=`?e.minor===null?W(U(`>=`,n,0,0),G(n+1,0,0)):W(U(`>=`,n,r,0),G(n,r+1,0)):t===`>`?e.minor===null?W(U(`>=`,n+1,0,0)):W(U(`>=`,n,r+1,0)):t===`<=`?e.minor===null?W(G(n+1,0,0)):W(G(n,r+1,0)):t===`<`?e.minor===null?W(G(n,0,0)):W(G(n,r,0)):W(U(`>=`,n,r,0))}function pt(e,t){let n=ut(e),r=ut(t);if(!n||!r)return null;let i=[];if(n.major!==null){let e=U(`>=`,n.major,n.minor??0,n.patch??0,n.suffix);if(!e)return null;i.push(e)}if(r.major===null)return i;let a=r.minor===null?G(r.major+1,0,0):r.patch===null?G(r.major,r.minor+1,0):U(`<=`,r.major,r.minor,r.patch,r.suffix);return a?(i.push(a),i):null}function mt(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return pt(t[1],t[2]);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&&ut(t[2]),i=n?ft(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const ht=/* @__PURE__ */ new Map;function gt(e){return B(ht,e,()=>{let t=e.split(`||`).map(e=>mt(e.trim()));return t.some(e=>e===null)?null:t})}function _t(e,t){return t.some(t=>!dt(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 vt(e,t){return!!gt(t)?.some(t=>_t(e,t))}function K(e,t){let n=V(e);return!!(n&&vt(n,t))}function q(e){return typeof e==`string`&>(e)?e:null}const yt=`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]+)*))?`,bt=RegExp(`^${yt}$`,`i`),xt=RegExp(yt,`i`),St={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},Ct=/* @__PURE__ */ new Map;function J(e){return typeof e==`string`?B(Ct,e,()=>{let t=bt.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?[St[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 wt(e){return J(e)??J(xt.exec(e)?.[0]??``)}const Tt=e=>!!e.pre||e.dev!==null;function Et(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 Dt(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?Et(e.local,t.local):a<o?-1:1}function Ot(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 kt(e,t){let n=Dt(e,t);if(n===0)return null;let r=Ot(e,t);return Tt(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const At=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Y={parse:H,parseRange:e=>H(At.exec(e)?.[0]??``)??H(at(e)?.version??``),compare:tt,diff:st,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:vt},jt=/* @__PURE__ */ new Map;function Mt(e){return B(jt,e,()=>{let t=e.trim().replace(/^v/i,``);return(H(t)??H(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?H(at(t)?.version??``):null)})}const Nt={...Y,parse:Mt,parseRange:Mt,isRangePrerelease:e=>!!Mt(e)?.prerelease.length},Pt={parse:J,parseRange:wt,compare:Dt,diff:kt,isPrerelease:Tt,isRangePrerelease:e=>{let t=wt(e);return!!(t&&Tt(t))},satisfiesRange:({release:e},t)=>K(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Ft=/[A-Za-z_$]/,It=/[A-Za-z0-9_$]/;function Lt(e){let t=``,n=0,r=e.length;function i(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
|
|
3
3
|
`;)t++;return t}for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;return t+2}function a(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&(e[t+1]===`/`||e[t+1]===`*`)){t=i(t);continue}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 i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
|
|
4
|
-
`){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];if(r===`}`||r===`]`){n++;continue}t+=o,n++;continue}if(
|
|
5
|
-
`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!a||!o)return null;let s=new Date;return await Fe(D(n,s,s)),{etag:a,body:o}}catch{return null}}const gn=new Set;let _n=0;function vn(e,t,r,i=dn){let a=(async()=>{try{await B(fn,i,()=>T(i,{recursive:!0}))}catch{fn.delete(i);return}let a;try{let o=f(i,`${pn(e)}.cache`);a=`${o}.${n}-${_n++}.tmp`,await O(a,`${t}\n${r}`),await ae(a,o)}catch{a&&await Fe(se(a))}})();gn.add(a),(async()=>{await a,gn.delete(a)})()}async function yn(e=dn,t=4096){for(;gn.size;)await Promise.all(gn);try{let n=(await ie(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=f(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()-mn,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>Fe(se(e.path))))}catch{}}var bn=`18.0.8`;function xn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Sn=bn,Cn=`https://api.github.com`,wn={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:Cn,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 En(e,t){return{headers:{"user-agent":`updates/${Sn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const Dn=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`&&Dn.has(t)}async function kn(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 An(e,t,n={}){let r=zn(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=o&&!/^\d+$/.test(o)?Date.parse(o):NaN,c=o?/^\d+$/.test(o)?Number(o)*1e3:Number.isNaN(s)?null:Math.max(s-Date.now(),0):null,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 A(u)}catch(e){if(i>=2||!e?.transient)throw e}}const jn=e=>t=>JSON.stringify(e(JSON.parse(t))),Mn=new WeakMap;function Nn(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()).sort(),n.body??null,r?.toString()]),s=B(Mn,t,()=>new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await hn(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await An(t,e,{...n,headers:c});if(l.status===304&&o)return{body:o.body,res:l};if(!l.ok)return{res:l};let u=await l.text();if(r&&u.length>=16384)try{u=r(u)}catch{}let d=a?`immutable`:l.headers.get(`etag`);return d&&!t.noCache&&vn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function Pn(e,t,n={},r,i=e){return Nn(e,t,n,r,i,!1)}function Fn(e,t,n={},r){return Nn(e,t,n,r,e,!0)}async function Q(e,t,n,r,i=!0){let a=B(e,t,()=>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 In=new ce,Ln=e=>Math.max(e.concurrency||50,1),Rn=new WeakMap;function zn(e){return B(Rn,e,()=>{let t=Ln(e),n=0,r=0,i=[];return async e=>{if(In.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await In.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function Bn(e,t=X){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const Vn=new WeakMap,Hn=new WeakMap;function Un(e,t,n,r,i=X){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?Vn:Hn;o=e.get(r)??new Set(r).add(`prerelease`),t&&(r.has(`patch`)&&o.add(`prepatch`),r.has(`minor`)&&o.add(`preminor`),r.has(`major`)&&o.add(`premajor`)),e.set(r,o)}return{effectiveSemvers:o,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function Wn(e){return tt(e)?.version??``}function Gn(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=X}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=Un(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,ee=!!(d&&f),w=null;for(let e of t){let t=m.parse(e);if(!t||_(t))continue;let n=m.compare(t,h)<=0;if(n&&!x&&!S||w&&m.compare(t,w)<=0||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||ee&&!xn(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)||(w=t)}return w?.raw??w?.version??null}function Kn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function qn(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?At:X,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;let n=e=>!!(e&&!e.yanked);m=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(n)),g=e=>t[e].reduce((e,t)=>{if(!n(t))return e;let r=t?.upload_time_iso_8601,i=typeof r==`string`?Date.parse(r):NaN;return!Number.isNaN(i)&&i<e.time?{date:r,time:i}:e},{time:1/0}).date,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[Wn(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=Wn(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=Un(p,i,a,o,f),m=e.old||p,h=f.parseRange(m),g=!!d||!!s&&!c&&!!h&&!f.satisfiesRange(h,s),_=(e,i)=>{let a=Wn(e),o=f.parse(e),c=Kn(e);if(!a||!c&&r(o))return!1;let d=nt(m,e)??nt(t,a),p=c?d===`prerelease`?`patch`:d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!xn(i,l,u)?!1:!s||q(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return Gn(e,m,{range:p,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:h,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:g,versioning:f})}function Jn(e){try{return new URL(e).host}catch{return``}}function Yn(e){let n=ke(t.UPDATES_FORGE_TOKENS??``).find(t=>{let n=t.lastIndexOf(`:`);return n>0&&t.slice(0,n)===e});return n?n.slice(n.lastIndexOf(`:`)+1):null}let Xn;function Zn(){return Xn||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),Xn}const Qn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function $n(){return Array.from(new Set(Qn.map(e=>t[e]).filter(e=>!!e)))}const er=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function tr(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=er.exec(n);if(!e)continue;let r=Jn(e[1]),i=k.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let nr;function rr(){return nr??=(async()=>{try{let{stdout:e}=await(await Zn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return tr(e)}catch{return new Map}})()}const ir=new Map;async function ar(e,t){if(!e)return[];let n=Yn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===Jn(t)?$n():[],a=(await rr()).get(r);return Array.from(new Set(a?[...i,a]:i))}var or=class extends Error{name=`ForgeError`;kind;host;status;reset;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),this.kind=e,this.host=t,this.status=r,this.reset=i}};async function sr(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 cr(e,t,n,r){if(e.status>=500)throw new or(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await sr(e);if(i===null)return e;throw new or(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS`}${i?`, resets at ${new Date(i*1e3).toISOString()}`:``}`,{status:e.status,reset:i})}async function lr(e,t,n){let r=Jn(e),i=await ar(r,t.forgeApiUrl),a=async a=>{let o=En(`Bearer`,a);return o.headers={...o.headers,...n},cr(await An(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=ir.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 ir.set(r,t),n;t===e&&ir.delete(r)}return await a()}catch(e){throw e instanceof or?e:new or(`network`,r,e?.message??String(e),{cause:e})}}function ur(e,t){let n=X.parse(Z(t));if(!n)return null;let r=``,i=n;for(let t of e){let e=X.parse(Z(t));e&&X.compare(e,i)>0&&(r=t,i=e)}return r||null}function dr(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const fr=RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),pr=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function mr(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function hr(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function gr(e){if(!Array.isArray(e))throw TypeError(`Invalid Forge tags response`);return e.map(e=>{if(typeof e?.name!=`string`||e.commit?.sha!==void 0&&typeof e.commit.sha!=`string`)throw TypeError(`Invalid Forge tag entry`);return{name:e.name,commitSha:e.commit?.sha||``}})}const _r=(e,t)=>{if(!t)return gr(e);if(!Array.isArray(e))throw TypeError(`Invalid cached Forge tags response`);return e.map(e=>{if(typeof e?.name!=`string`||typeof e.commitSha!=`string`||e.isStable!==void 0&&typeof e.isStable!=`boolean`)throw TypeError(`Invalid cached Forge tag entry`);return e})},vr=new WeakMap;function yr(e,t,n,r){let i=`${n}${e}`;return Q(vr,t,i,async()=>{let n=t.noCache?null:await hn(e),a=await lr(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return vr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&vn(e,s,o),o})}function br(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;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}})}async function xr(e,t,n,r){let i=await yr(e,t,n,async e=>JSON.stringify({link:e.headers.get(`link`)||``,[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}}function Sr(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 Cr(e,t,n,r,i){let a=await xr(e(1),t,n,r);if(!a)return;let o=Sr(a.link),s=Ln(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)=>xr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function wr(e,t,n){let r=new Map;return await Cr(n=>`${Cn}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,br,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function Tr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await Cr(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,_r,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 Er(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return Tr(e,t,n,r,i);let[o,s]=await Promise.allSettled([Tr(e,t,n,r,i),wr(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof or))throw s.reason;if(s.status===`fulfilled`)for(let e of o.value)s.value.has(e.name)&&(e.isStable=s.value.get(e.name));return o.value}function Dr(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function Or(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 kr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const Ar=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function jr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of Ar)if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=dr(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${kr(a)}/${e.directory}`)),a||t||``)}function Mr(e){let t=e.includes(`:/`)||e.startsWith(`/`);return Tn(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Nr(e,t){for(let{url:n,fallback:r}of e)try{let e=await t(n);if(e!==null)return e}catch(e){if(r===`,`)throw e}return null}function Pr(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}t.push({url:Mr(e),fallback:r})}return t}function Fr(e){if(typeof e==`string`)return[{url:Tn(e),fallback:`,`}];let n=Pr(t.GOPROXY||`${wn.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Ir(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Lr=new Map;function Rr(e){return B(Lr,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:F(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function zr(e,t){return t.some(t=>Rr(t).test(e))}function Br(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Vr=/\/v(\d+)$/,Hr=/^gopkg\.in\/.*?\.v(\d+)$/;function Ur(e){let t=Hr.exec(e)??Vr.exec(e);return t?Number.parseInt(t[1]):1}function Wr(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Vr,``);return t<=1?n:`${n}/v${t}`}function Gr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Z(t));return Number.isNaN(n)||n===Ur(e)?e:Wr(e,n)}const Kr=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,qr=/^(\S+)\s+(v\S+)/,Jr=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Yr=e=>e.replace(/^"(.*)"$/,`$1`);function Xr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Zr(e){let t=Jr.exec(e);if(!t)return null;let[,n,r,i,a]=t;return{origModule:Yr(n),origVersion:r??``,targetModule:Yr(i),targetVersion:a??``}}function*Qr(e){let t=null;for(let[n,r]of e.entries()){let e=r.trim();if(!e||e.startsWith(`//`))continue;if(t){if(/^\)\s*(?:\/\/.*)?$/.test(e)){t=null;continue}yield{kind:t,value:e,lineNumber:n};continue}let i=Kr.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function $r(e){return e.startsWith(`golang.org/x/`)}async function ei(e,t,n){let r=t,i=t&&!Bn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Bn(e.Version)||(i=e)}return i??r}function ti(e,t,n,r){let i=n??r;return[{name:e,old:t,new:Z(i.Version),Time:i.Time,...i.path!==e&&{newPath:i.path},sameMajorNew:Z(r.Version),sameMajorTime:r.Time},null]}function ni(e){for(let{kind:t,value:n}of Qr(e.split(/\r?\n/)))if(t===`module`)return Yr(n.split(/\s/,1)[0]);return``}function ri(e){let t={},n={},r={},i={},a={},o=new Set,s=[];for(let i of Qr(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(Yr(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=qr.exec(i.value);e&&(a[Yr(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=Zr(i.value);e&&(e.targetVersion&&!Xr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=qr.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[Yr(e[1])]=e[2])}for(let e of o)delete t[e],delete n[e];let c=[...Object.keys(n),...Object.keys(t)];for(let e of s){let r=``;for(let t of c)(e===t||e.startsWith(`${t}/`))&&t.length>r.length&&(r=t);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 ii=new WeakMap;function ai(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=B(ii,n,()=>new Map);for(let t of i?[f(e,i,`go.mod`),f(e,`go.mod`)]:[f(e,`go.mod`)]){let e=m(t),n=B(a,e,()=>{try{return new Map(Object.entries(ri(b(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return new Map}async function oi(e,n,r,i,a){let o=Ur(e),s=async(e,n,a)=>{try{let o=a??`latest`,s=[`list`,`-m`,...a?[]:[`-versions`],`-json`,`${e}@${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(t){let n=String(t?.stderr??``).trim().split(`
|
|
6
|
-
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@${a??`latest`} failed: ${n}`)}},c=async(e,t)=>{let n=await s(e,t),r=a.get(e);if(!r?.has(n.Version))return n;let i=
|
|
7
|
-
`),
|
|
8
|
-
`)){let[e,a]=i.trim().split(/\s+/);if(
|
|
4
|
+
`){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];if(r===`}`||r===`]`){n++;continue}t+=o,n++;continue}if(Ft.test(o)){let i=n;for(;n<r&&It.test(e[n]);)n++;let o=e.slice(i,n);t+=e[a(n)]===`:`?`"${o}"`:o;continue}t+=o,n++}return JSON.parse(t)}const Rt={y:365,year:365,years:365,mo:30,month:30,months:30,w:7,week:7,weeks:7,d:1,day:1,days:1,h:1/24,hour:1/24,hours:1/24,min:1/1440,minute:1/1440,minutes:1/1440,s:1/86400,second:1/86400,seconds:1/86400};function zt(e){let t;for(let n of e.matchAll(/(\d+(?:\.\d+)?)\s*([a-z]+)/gi)){let e=Rt[n[2].toLowerCase()];if(e===void 0)return;t=(t??0)+Number(n[1])*e}return t}const Bt={packageName:{target:`package`,convert:e=>e},packagePattern:{target:`package`,convert:e=>e===`*`?`*`:`/${e}/`},matchPackageNames:{target:`package`,convert:e=>e},packageNames:{target:`package`,convert:e=>e},matchPackagePatterns:{target:`package`,convert:e=>e===`*`?`*`:`/${e}/`},packagePatterns:{target:`package`,convert:e=>e===`*`?`*`:`/${e}/`},matchPackagePrefixes:{target:`package`,convert:e=>`${e}{/,}**`},excludePackageNames:{target:`package`,convert:e=>`!${e}`},excludedPackageNames:{target:`package`,convert:e=>`!${e}`},excludePackagePatterns:{target:`package`,convert:e=>`!/${e}/`},excludePackagePrefixes:{target:`package`,convert:e=>`!${e}{/,}**`},matchDepNames:{target:`dep`,convert:e=>e},matchDepPatterns:{target:`dep`,convert:e=>`/${e}/`},matchDepPrefixes:{target:`dep`,convert:e=>`${e}{/,}**`},excludeDepNames:{target:`dep`,convert:e=>`!${e}`},excludeDepPatterns:{target:`dep`,convert:e=>`!/${e}/`},excludeDepPrefixes:{target:`dep`,convert:e=>`!${e}{/,}**`}},Vt=/* @__PURE__ */ new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function Ht(e){let t={Package:[],Dep:[]};for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(Bt,n)?Bt[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||Vt.has(n))return;continue}let i=typeof r==`string`||n===`packageName`||n===`packagePattern`?[r]:r;if(!Array.isArray(i))return;for(let n of i){if(typeof n!=`string`||!n)return;t[e.target===`package`?`Package`:`Dep`].push(e.convert(n))}}let n={},r=[];for(let[e,i]of Object.entries(t)){let t=[],a=[];for(let e of i){let n=e.startsWith(`!`),i=n?e.slice(1):e,o=Ut(i);(n?a:t).push(o??i),!n&&!o&&!/[*?[\]{}!()|+]/.test(i)&&r.push(i)}t.length&&(n[`match${e}Names`]=t),a.length&&(n[`exclude${e}Names`]=a)}return{matchers:n,literals:r}}function Ut(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Wt=/* @__PURE__ */ new Map,Gt=e=>B(Wt,e,()=>Ue(e)),Kt=(e,t,n)=>(!t?.length||t.some(t=>Gt(t).test(e)))&&(!n?.length||n.every(t=>!Gt(t).test(e)));function qt(e,t,n){return Kt(t,e.matchPackageNames,e.excludePackageNames)&&Kt(n,e.matchDepNames,e.excludeDepNames)}const Jt=/* @__PURE__ */ new WeakMap;var Yt=class extends RegExp{constructor(e,t){super(e),Jt.set(this,t)}testNames(e,t){return Jt.get(this)(e,t)}test(e){return this.testNames(e,e)}};function Xt(e,t,n,r){return e instanceof Yt?e.testNames(n,r):e.test(t)}function Zt(e,t){let n=[],r={},i=/* @__PURE__ */ new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=Ht(r);if(!e)continue;let{matchers:o,literals:s}=e;typeof r.enabled==`boolean`&&n.push({enabled:r.enabled,matchers:o});let c={...o};if(t&&typeof r.minimumReleaseAge==`string`){let e=zt(r.minimumReleaseAge);e!==void 0&&(c.cooldownDays=e)}if(typeof r.allowedVersions==`string`){let e=q(r.allowedVersions);if(!e&&!Ut(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&&qt(t,e,e))?.allowedVersions;t&&q(t)&&(r[e]=t)}let o;return n.some(e=>!e.enabled)&&(o=new Yt(`renovate-package-rules`,(e,t)=>{let r=!0;for(let i of n)qt(i.matchers,e,t)&&(r=i.enabled);return!r})),{disabled:o,pin:r,versionRules:a}}function Qt(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=zt(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=Array.isArray(e.ignoreDeps)?e.ignoreDeps.filter(e=>typeof e==`string`&&!!e).map(e=>new Yt(`^${R(e)}$`,(t,n)=>n===e)):[],{disabled:i,pin:a,versionRules:o}=Zt(Array.isArray(e.packageRules)?e.packageRules:[],!!t.cooldown),s=i?[...r,i]:r;return s.length&&(n.exclude=s),Object.keys(a).length&&(n.pin=a,n.pinNoDowngrade=!0),o.length&&(n.renovateVersionRules=o),n}const $t=[`renovate.json`,`renovate.jsonc`,`renovate.json5`];async function en(e,t={}){let n=await We(e,async e=>{for(let t of $t){let n=m(e,t),r;try{r=await D(n,`utf8`)}catch{continue}let i;try{i=Lt(r)}catch(e){throw Error(`Unable to parse renovate config ${n}: ${e.message}`)}if(i&&typeof i==`object`)return{parsed:i,path:n}}return null});return n?Qt(n.parsed,t):{}}const tn=Symbol(`cliBaseConfig`),nn={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},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`}},rn=/* @__PURE__ */ new Set([`allow-downgrade`,`greatest`,`minor`,`patch`,`prerelease`,`release`]);function an(e){return Array.isArray(e)?!e.length||e.includes(!0)?!0:new Set(e.filter(e=>typeof e==`string`).flatMap(ke)):typeof e==`string`?/* @__PURE__ */ new Set([e]):typeof e==`boolean`&&e}function on(e){for(let[t,{short:n}]of Object.entries(nn))if(t===e||n===e)return t;return``}function sn(e){return new Set(e.map(Ue))}function cn(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(ke):[]}function ln(e){for(let[t,n]of Object.entries(e??{}))if(!q(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function un(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 ln(t),t}function dn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:sn(e)}const fn=qe(e=>We(e,async e=>{for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=`updates.config.${t}`,r=m(e,n);try{await E(r)}catch(e){if(e.code===`ENOENT`)continue;throw Error(`Unable to load config file ${n}: ${e.message}`)}try{return(await import(T(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null})),pn=qe(async e=>{let t=await fn(e)??{},n=await en(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??[]]),ln(r.pin),r});function mn(e){return new Promise((t,n)=>{x(e,`utf8`,(e,r)=>e?n(e):t(r))})}const hn=m(i===`win32`?t.LOCALAPPDATA||m(N(),`AppData`,`Local`):t.XDG_CACHE_HOME||m(N(),`.cache`),`updates`),gn=/* @__PURE__ */ new Map;function _n(e){return ue(`sha256`).update(e).digest(`hex`)}const vn=6048e5;async function yn(e,t=hn){try{let n=m(t,`${_n(e)}.cache`);if(Date.now()-(await k(n)).mtimeMs>vn)return await se(n),null;let r=await mn(n),i=r.indexOf(`
|
|
5
|
+
`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!a||!o)return null;let s=/* @__PURE__ */ new Date;return await Fe(A(n,s,s)),{etag:a,body:o}}catch{return null}}const bn=/* @__PURE__ */ new Set;let xn=0;function Sn(e,t,n,i=hn){let a=(async()=>{try{await B(gn,i,()=>ie(i,{recursive:!0}))}catch{gn.delete(i);return}let a;try{let o=m(i,`${_n(e)}.cache`);a=`${o}.${r}-${xn++}.tmp`,await j(a,`${t}\n${n}`),await O(a,o)}catch{a&&await Fe(se(a))}})();bn.add(a),(async()=>{await a,bn.delete(a)})()}async function Cn(e=hn,t=4096){for(;bn.size;)await Promise.all(bn);try{let n=(await ae(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 k(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-vn,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>Fe(se(e.path))))}catch{}}const wn=/* @__PURE__ */ new Map;function Tn(){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 En(e){let t;try{t=await D(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 Dn(){let e=Tn();return wn.has(e)||wn.set(e,En(e)),wn.get(e)}async function On(e){let t=Tn();await ie(f(t),{recursive:!0,mode:448}),await j(`${t}.tmp`,`${JSON.stringify(e,null,2)}\n`,{mode:384}),await O(`${t}.tmp`,t),wn.set(t,Promise.resolve(e))}async function kn(e,t){await On({...await Dn(),[e]:t})}async function An(e){let t={...await Dn()};return Object.hasOwn(t,e)?(delete t[e],await On(t),!0):!1}var jn=`18.1.1`;function Mn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Nn=jn,Pn=`https://api.github.com`,X={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:Pn,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,Fn=e=>e.endsWith(`/`)?e.slice(0,-1):e;function In(e,t){return{headers:{"user-agent":`updates/${Nn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const Ln=/* @__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 Rn(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&Ln.has(t)}async function zn(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=Rn(t),n}}async function Bn(e,t,n={}){let r=Yn(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=o&&!/^\d+$/.test(o)?Date.parse(o):NaN,c=o?/^\d+$/.test(o)?Number(o)*1e3:Number.isNaN(s)?null:Math.max(s-Date.now(),0):null,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 le(u)}catch(e){if(i>=2||!e?.transient)throw e}}const Vn=e=>t=>JSON.stringify(e(JSON.parse(t))),Hn=/* @__PURE__ */ new WeakMap;function Un(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()).sort(),n.body??null,r?.toString()]),s=B(Hn,t,()=>/* @__PURE__ */ new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await yn(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await Bn(t,e,{...n,headers:c});if(l.status===304&&o)return{body:o.body,res:l};if(!l.ok)return{res:l};let u=await l.text();if(r&&u.length>=16384)try{u=r(u)}catch{}let d=a?`immutable`:l.headers.get(`etag`);return d&&!t.noCache&&Sn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function Wn(e,t,n={},r,i=e){return Un(e,t,n,r,i,!1)}function Gn(e,t,n={},r){return Un(e,t,n,r,e,!0)}async function Q(e,t,n,r,i=!0){let a=B(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 Kn=new M,qn=e=>Math.max(e.concurrency||50,1),Jn=/* @__PURE__ */ new WeakMap;function Yn(e){return B(Jn,e,()=>{let t=qn(e),n=0,r=0,i=[];return async e=>{if(Kn.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await Kn.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function Xn(e,t=Y){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const Zn=/* @__PURE__ */ new WeakMap,Qn=/* @__PURE__ */ new WeakMap;function $n(e,t,n,r,i=Y){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?Zn:Qn;o=e.get(r)??new Set(r).add(`prerelease`),t&&(r.has(`patch`)&&o.add(`prepatch`),r.has(`minor`)&&o.add(`preminor`),r.has(`major`)&&o.add(`premajor`)),e.set(r,o)}return{effectiveSemvers:o,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function er(e){return at(e)?.version??``}function tr(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=Y}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=$n(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,ee=!!(d&&f),w=null;for(let e of t){let t=m.parse(e);if(!t||_(t))continue;let n=m.compare(t,h)<=0;if(n&&!x&&!S||w&&m.compare(t,w)<=0||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||ee&&!Mn(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)&&(w=t)}return w?.raw??w?.version??null}function nr(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function rr(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?Pt:Y,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;let n=e=>!(!e||e.yanked);m=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(n)),g=e=>t[e].reduce((e,t)=>{if(!n(t))return e;let r=t?.upload_time_iso_8601,i=typeof r==`string`?Date.parse(r):NaN;return!Number.isNaN(i)&&i<e.time?{date:r,time:i}:e},{time:1/0}).date,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[er(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=er(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=$n(p,i,a,o,f),m=e.old||p,h=f.parseRange(m),g=!!d||!!s&&!c&&!!h&&!f.satisfiesRange(h,s),_=(e,i)=>{let a=er(e),o=f.parse(e),c=nr(e);if(!a||!c&&r(o))return!1;let d=ot(m,e)??ot(t,a),p=c?d===`prerelease`?`patch`:d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!Mn(i,l,u)?!1:!s||K(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return tr(e,m,{range:p,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:h,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:g,versioning:f})}function ir(e){try{return new URL(e).host}catch{return``}}function ar(e){let n=ke(t.UPDATES_FORGE_TOKENS??``).find(t=>{let n=t.lastIndexOf(`:`);return n>0&&t.slice(0,n)===e});return n?n.slice(n.lastIndexOf(`:`)+1):null}let or;function sr(){return or||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),or}const cr=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function lr(){return Array.from(new Set(cr.map(e=>t[e]).filter(e=>!!e)))}const ur=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function dr(e){let t=/* @__PURE__ */ new Map;for(let n of e.split(/\r?\n/)){let e=ur.exec(n);if(!e)continue;let r=ir(e[1]),i=ce.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let fr;function pr(){return fr??=(async()=>{try{let{stdout:e}=await(await sr())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return dr(e)}catch{return/* @__PURE__ */ new Map}})()}const mr=/* @__PURE__ */ new Map,hr=/* @__PURE__ */ new Set;function gr(e){return e===`api.github.com`?`github.com`:e}async function _r(e,t){if(!e)return[];let n=ar(e);if(n)return[n];let r=gr(e),i=r===`github.com`||e===ir(t),a=(await Dn())[r],o=i?lr():[],s=(await pr()).get(r);return Array.from(new Set([a,...o,s].filter(Boolean)))}async function vr(e,t,n=Pn){let r=await zn(e===`github.com`?`${n}/user`:`https://${e}/api/v1/user`,{...In(`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 yr=class extends Error{name=`ForgeError`;kind;host;status;reset;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),this.kind=e,this.host=t,this.status=r,this.reset=i}};async function br(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 xr(e,t,n,r){if(e.status>=500)throw new yr(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await br(e);if(i===null)return e;throw new yr(`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 ${gr(n)}"`}${i?`, resets at ${(/* @__PURE__ */ new Date(i*1e3)).toISOString()}`:``}`,{status:e.status,reset:i})}async function Sr(e,t,n){let r=ir(e),i=(await _r(r,t.forgeApiUrl)).filter(e=>!hr.has(e)),a=async a=>{let o=In(`Bearer`,a);return o.headers={...o.headers,...n},xr(await Bn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=mr.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 mr.set(r,t),n;if(n.status===401&&!hr.has(t)){hr.add(t);let e=gr(r);(await Dn())[e]===t&&console.error(`stored token for ${e} was rejected, run "updates --login ${e}" to replace it`)}t===e&&mr.delete(r)}return await a()}catch(e){throw e instanceof yr?e:new yr(`network`,r,e?.message??String(e),{cause:e})}}function Cr(e,t){let n=Y.parse(Z(t));if(!n)return null;let r=``,i=n;for(let t of e){let e=Y.parse(Z(t));e&&Y.compare(e,i)>0&&(r=t,i=e)}return r||null}function wr(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Tr=/* @__PURE__ */ RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),Er=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function Dr(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Or(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function kr(e){if(!Array.isArray(e))throw TypeError(`Invalid Forge tags response`);return e.map(e=>{if(typeof e?.name!=`string`||e.commit?.sha!==void 0&&typeof e.commit.sha!=`string`)throw TypeError(`Invalid Forge tag entry`);return{name:e.name,commitSha:e.commit?.sha||``}})}const Ar=(e,t)=>{if(!t)return kr(e);if(!Array.isArray(e))throw TypeError(`Invalid cached Forge tags response`);return e.map(e=>{if(typeof e?.name!=`string`||typeof e.commitSha!=`string`||e.isStable!==void 0&&typeof e.isStable!=`boolean`)throw TypeError(`Invalid cached Forge tag entry`);return e})},jr=/* @__PURE__ */ new WeakMap;function Mr(e,t,n,r){let i=`${n}${e}`;return Q(jr,t,i,async()=>{let n=t.noCache?null:await yn(e),a=await Sr(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return jr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&Sn(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;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}})}async function Pr(e,t,n,r){let i=await Mr(e,t,n,async e=>JSON.stringify({link:e.headers.get(`link`)||``,[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}}function Fr(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 Ir(e,t,n,r,i){let a=await Pr(e(1),t,n,r);if(!a)return;let o=Fr(a.link),s=qn(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)=>Pr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function Lr(e,t,n){let r=/* @__PURE__ */ new Map;return await Ir(n=>`${Pn}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,Nr,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function Rr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await Ir(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,Ar,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 zr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return Rr(e,t,n,r,i);let[o,s]=await Promise.allSettled([Rr(e,t,n,r,i),Lr(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof yr))throw s.reason;if(s.status===`fulfilled`)for(let e of o.value)s.value.has(e.name)&&(e.isStable=s.value.get(e.name));return o.value}function Br(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function Vr(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 Hr(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 Wr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of Ur)if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=wr(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Hr(a)}/${e.directory}`)),a||t||``)}function Gr(e){let t=e.includes(`:/`)||e.startsWith(`/`);return Fn(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Kr(e,t){for(let{url:n,fallback:r}of e)try{let e=await t(n);if(e!==null)return e}catch(e){if(r===`,`)throw e}return null}function qr(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}t.push({url:Gr(e),fallback:r})}return t}function Jr(e){if(typeof e==`string`)return[{url:Fn(e),fallback:`,`}];let n=qr(t.GOPROXY||`${X.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Yr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Xr=/* @__PURE__ */ new Map;function Zr(e){return B(Xr,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:R(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function Qr(e,t){return t.some(t=>Zr(t).test(e))}function $r(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const ei=/\/v(\d+)$/,ti=/^gopkg\.in\/.*?\.v(\d+)$/;function ni(e){let t=ti.exec(e)??ei.exec(e);return t?Number.parseInt(t[1]):1}function ri(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(ei,``);return t<=1?n:`${n}/v${t}`}function ii(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Z(t));return Number.isNaN(n)||n===ni(e)?e:ri(e,n)}const ai=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,oi=/^(\S+)\s+(v\S+)/,si=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,ci=e=>e.replace(/^"(.*)"$/,`$1`);function li(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function ui(e){let t=si.exec(e);if(!t)return null;let[n,r,i,a,o]=t;return{origModule:ci(r),origVersion:i??``,targetModule:ci(a),targetVersion:o??``}}function*di(e){let t=null;for(let[n,r]of e.entries()){let e=r.trim();if(!e||e.startsWith(`//`))continue;if(t){if(/^\)\s*(?:\/\/.*)?$/.test(e)){t=null;continue}yield{kind:t,value:e,lineNumber:n};continue}let i=ai.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function fi(e){return e.startsWith(`golang.org/x/`)}async function pi(e,t,n){let r=t,i=t&&!Xn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Xn(e.Version)||(i=e)}return i??r}function mi(e,t,n,r){let i=n??r;return[{name:e,old:t,new:Z(i.Version),Time:i.Time,...i.path!==e&&{newPath:i.path},sameMajorNew:Z(r.Version),sameMajorTime:r.Time},null]}function hi(e){for(let{kind:t,value:n}of di(e.split(/\r?\n/)))if(t===`module`)return ci(n.split(/\s/,1)[0]);return``}function gi(e){let t={},n={},r={},i={},a={},o=/* @__PURE__ */ new Set,s=[];for(let i of di(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(ci(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=oi.exec(i.value);e&&(a[ci(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=ui(i.value);e&&(e.targetVersion&&!li(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=oi.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[ci(e[1])]=e[2])}for(let e of o)delete t[e],delete n[e];let c=[...Object.keys(n),...Object.keys(t)];for(let e of s){let r=``;for(let t of c)(e===t||e.startsWith(`${t}/`))&&t.length>r.length&&(r=t);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 _i=/* @__PURE__ */ new WeakMap;function vi(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=B(_i,n,()=>/* @__PURE__ */ new Map);for(let t of i?[m(e,i,`go.mod`),m(e,`go.mod`)]:[m(e,`go.mod`)]){let e=g(t),n=B(a,e,()=>{try{return new Map(Object.entries(gi(S(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return/* @__PURE__ */ new Map}async function yi(e,n,r,i,a){let o=ni(e),s=async(e,n,a)=>{try{let o=a??`latest`,s=[`list`,`-m`,...a?[]:[`-versions`],`-json`,`${e}@${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(t){let n=String(t?.stderr??``).trim().split(`
|
|
6
|
+
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@${a??`latest`} failed: ${n}`)}},c=async(e,t)=>{let n=await s(e,t),r=a.get(e);if(!r?.has(n.Version))return n;let i=Ei((n.Versions??[]).join(`
|
|
7
|
+
`),Di(e),r);if(!i)throw Error(`No non-excluded versions found for ${e}`);return s(e,t,i.Version)},l=e=>Fe(c(e,i.goProbeTimeout)),[u,d]=await Promise.all([c(e,i.fetchTimeout),fi(e)?null:l(ri(e,o+1))]);return mi(e,n,await pi(o,d,t=>l(ri(e,t))),u)}const bi={"accept-encoding":`gzip, deflate, br`},xi=e=>e===404||e===410;async function Si(e,t,n){try{let t=await e.json();if(t?.Version)return{Version:t.Version,Time:t.Time||``,path:n}}catch{}throw Error(`Invalid response from ${t}`)}const Ci=async(e,t,n)=>{let r=`${t}/${$r(n)}/@latest`,i=await e(r);if(i.ok)return Si(i,r,n);if(xi(i.status))return null;Br(i,r,n,t)},wi=/* @__PURE__ */ new WeakMap;function Ti(e,t,n,r,i){return Q(wi,e,`latest${t}${r}/${i}`,()=>Ci(n,r,i))}function Ei(e,t=0,n=/* @__PURE__ */ new Set){let r=null;for(let i of e.split(`
|
|
8
|
+
`)){let[e,a]=i.trim().split(/\s+/);if(e&&nt(e)&&!n.has(e)&&!(t&&Number.parseInt(Z(e))!==t)){if(r){let t=Xn(e);if(t===Xn(r.Version)?!lt(e,r.Version):t)continue}r={Version:e,Time:a??``}}}return r}function Di(e){return ei.test(e)||ti.test(e)?ni(e):0}async function Oi(e,t,n,r=/* @__PURE__ */ new Set){let i=$r(n),a=`${t}/${i}/@v/list`,o=await e(a);if(!o.ok){if(xi(o.status))return null;Br(o,a,n,t)}let s=Ei(await o.text(),Di(n),r);if(!s)return null;if(s.Time)return{...s,path:n};let c=`${t}/${i}/@v/${$r(s.Version)}.info`;try{let t=await e(c);if(t.ok)return Si(t,c,n)}catch{}return{...s,path:n}}function ki(e,t,n,r,i,a=/* @__PURE__ */ new Set){let o=`list${t}${r}/${i}${Array.from(a).sort().join(`\0`)}`;return Q(wi,e,o,()=>Oi(n,r,i,a))}async function Ai(e,t,n,r,i){let a=ni(t),o=e=>Bn(r,e,{headers:bi}),s=e=>r.doFetch(e,{signal:AbortSignal.timeout(r.goProbeTimeout),headers:bi}),c=Ti(r,`primary`,o,e,t),l=(async()=>{let n=await c,a=i.get(t);return n&&!a?.has(n.Version)?n:ki(r,`primary`,o,e,t,a)})(),u=async t=>{try{let[n,a]=await Promise.all([Ti(r,`probe`,s,e,t),c]),o=i.get(t);return n&&!o?.has(n.Version)?n:!n&&a?null:ki(r,`probe`,s,e,t,o)}catch{return null}},[d,f]=await Promise.all([l,fi(t)?null:u(ri(t,a+1))]);return d?mi(t,n,await pi(a,f,e=>u(ri(t,e))),d):null}async function ji(e,t,n,r,i,a){let o=vi(r,t,i);if(Qr(e,a))return yi(e,n,r,i,o);let s=await Kr(i.goProxyChain,async t=>{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);return t===`direct`?yi(e,n,r,i,o):Ai(t,e,n,i,o)});if(s)return s;throw Error(`Unable to find ${e} on any GOPROXY entry`)}const Mi=e=>`("?)${R(e)}\\2`;function Ni(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,n),r||=a[i]!==e}return r},s=/* @__PURE__ */ new Map,c=/* @__PURE__ */ new Map,l=/* @__PURE__ */ new Map;for(let e of di(a))if(e.kind===`require`){let t=oi.exec(e.value);t&&Ke(s,ci(t[1]),e.lineNumber)}else if(e.kind===`replace`){let t=ui(e.value);t&&Ke(c,t.targetModule,{...t,lineNumber:e.lineNumber})}else if(e.kind===`tool`){let t=ci(e.value.split(/\s/,1)[0]);for(;t;){Ke(l,t,e.lineNumber);let n=t.lastIndexOf(`/`);if(n===-1)break;t=t.slice(0,n)}}for(let[e,{old:t,oldOrig:i,new:u}]of r){let[r,d]=e.split(`\0`),f=i||t,p=ii(d,u);if(r===`replace`){let e=!1;for(let t of c.get(d)??[]){if(Z(t.targetVersion)!==f)continue;let{lineNumber:n}=t;a[n]=a[n].replace(RegExp(`(=>\\s+)${Mi(d)}(\\s+)v${R(f)}(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`),p!==d&&t.origModule===d&&!t.origVersion&&(a[n]=a[n].replace(RegExp(`(^\\s*(?:replace\\s+)?)${Mi(d)}(?=\\s+=>)`),`$1$2${p}$2`),e=!0)}e&&o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${Mi(d)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&(n[d]=p);continue}o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${Mi(d)}(\\s+)v${R(f)}(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&p!==d&&(n[d]=p),r===`tool`&&p!==d&&o(l.get(d),RegExp(`(^\\s*(?:tool\\s+)?)("?)${R(d)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),`$1$2${p}$3$2`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const Pi=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function Fi(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(Pi)){let e=t[0];if(!(/^\s/.test(e)||e.startsWith(`//`)||e.startsWith(`/*`))){if(a){e===`)`?a=!1:i(e,t.index);continue}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 Ii=e=>{let t=d(e);return t===`vendor`||t===`testdata`||t[0]===`_`};function Li(e,t,n){if(!Object.keys(t).length)return;let r=/* @__PURE__ */ new Map,i=t=>t.length>e.length&&B(r,t,()=>y(m(t,`go.mod`))||i(f(t)));for(let r of b(`**/*.go`,{cwd:e,exclude:Ii})){let a=m(e,r);if(i(f(a)))continue;let o=S(a,`utf8`),s=Fi(o,t);s!==o&&n(a,s)}}function Ri(e){let t=[],n={};for(let r of di(e.split(/\r?\n/)))if(r.kind===`use`)t.push(r.value.split(/\s/,1)[0]);else if(r.kind===`replace`){let e=ui(r.value);e?.targetVersion&&!li(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function zi(e,t){try{let n=ee(g(e));return ee(m(n,t,`go.mod`))}catch{return null}}function Bi(e){let t=`https://${Vi(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${Hr(t)}/${o.join(`/`)}`,n.href}return t}function Vi(e){return ei.test(e)?f(e):e}function Hi(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function Ui(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Wi(e){let t=an(e);if(t!==!1)return t===!0||Array.from(t).map(Ui)}function Gi(t){if(!t)return e();let n=g(t),r=!1;try{r=w(n).isDirectory()}catch{}return r?n:f(n)}function Ki(e,t){let n=[...cn(e.file),...t];return{filesList:n,startDir:Gi(n[0])}}function qi(e){let t=c({strict:!1,allowPositionals:!0,tokens:!0,options:nn,...e!==void 0&&{args:e}}),n=Object.create(null),r=/* @__PURE__ */ new Set,i=(e,t)=>{nn[e]?.multiple?(n[e]??=[]).push(t):n[e]=t},a=0;for(let[e,o]of t.tokens.entries()){if(o.kind===`positional`&&a++,o.kind!==`option`)continue;if(!on(o.name))throw Error(`Unknown option: ${o.rawName}`);if(nn[o.name]?.type===`string`&&o.value===void 0&&!rn.has(o.name))throw Error(`Missing value for --${o.name}`);if(o.inlineValue||!o.value?.startsWith(`-`)){i(o.name,o.value??!0);continue}let s=o.value.startsWith(`--`),c=t.tokens[e+1],l=c?.kind===`positional`?c.value:void 0,u=[],d=o.value.substring(s?2:1),f=!1;if(s){let e=on(d);e&&(f=nn[e].type===`string`&&l!==void 0,u.push({key:e,value:!f||l}))}else for(let e=0;e<d.length;){let t=on(d[e]);if(!t){u.length=0;break}if(nn[t].type===`boolean`)u.push({key:t,value:!0}),e++;else{let n=d.substring(e+1);f=!n&&l!==void 0,u.push({key:t,value:n||!f||l}),e=d.length}}if(!u.length){i(o.name,o.value);continue}nn[o.name]?.multiple?rn.has(o.name)?i(o.name,!0):n[o.name]??=[]:n[o.name]=!0,f&&r.add(a);for(let{key:e,value:t}of u)i(e,t)}return{args:n,positionals:t.positionals.filter((e,t)=>!r.has(t))}}async function Ji(e,t){let{filesList:n,startDir:r}=Ki(e,t),i=await pn(r),a={};e.json&&(a.json=!0),e.verbose&&(a.verbose=!0),e[`no-cache`]&&(a.noCache=!0),e.update&&(a.update=!0),e.indirect&&(a.indirect=!0),e[`error-on-outdated`]&&(a.errorOnOutdated=!0),e[`error-on-unchanged`]&&(a.errorOnUnchanged=!0),e.color&&(a.color=!0,a.noColor=!1),e[`no-color`]&&(a.color=!1,a.noColor=!0),typeof e.timeout==`string`&&(a.timeout=Pe(e.timeout,`timeout`)),typeof e.sockets==`string`&&(a.sockets=Pe(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=e.cooldown);let o=cn(e.include).map(Ui),s=cn(e.exclude).map(Ui);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=cn(e.types);c.length&&(a.types=c);let l=un(e.pin);Object.keys(l).length&&(a.pin=l);let u=cn(e.modes);u.length&&(a.modes=u);for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Wi(e[t]);n!==void 0&&(a[t]=n)}let d=Wi(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);let f={...i,pin:void 0,...a};return Object.defineProperty(f,tn,{value:{cliKeys:Object.keys(a)}}),f}const Yi={d:`allow-downgrade`,e:`exclude`,f:`file`,l:`pin`,C:`cooldown`,p:`prerelease`,R:`release`,g:`greatest`,t:`types`,P:`patch`,m:`minor`,s:`sockets`,T:`timeout`,r:`registry`,i:`include`,M:`modes`,forgeapi:`forgeapi`,pypiapi:`pypiapi`,jsrapi:`jsrapi`,goproxy:`goproxy`,cargoapi:`cargoapi`,dockerapi:`dockerapi`,L:`login`,O:`logout`},Xi=new Set(Object.keys(Yi));for(let e of Object.values(Yi))Yi[e]=e;function Zi(e,t,n){if(e.includes(`--${t}`))return!0;for(let t of e){if(!/^-[^-]/.test(t))continue;let e=t.slice(1),r=e.indexOf(n);if(r!==-1&&Array.from(e.slice(0,r)).every(e=>!Xi.has(e)))return!0}return!1}async function Qi(t){let n={},r;for(let e=0;e<t.length;e++){let i=t[e];if(!i.startsWith(`-`)){r??=i;continue}let a=/^--([^=]+)(?:=(.*))?$/.exec(i),o=/^-([A-Za-z])(.*)$/.exec(i),s=a?Yi[a[1]]:o?Yi[o[1]]:void 0;if(!s)continue;let c=(a?a[2]:o[2])||(t[e+1]?.startsWith(`-`)===!1?t[++e]:void 0);c!==void 0&&(s===`file`||s===`modes`?(n[s]??=[]).push(...c.split(`,`)):n[s]=c)}let i=n.file?.[0]??r,a=i?g(i):e(),o=i?f(a):a;try{w(a).isDirectory()&&(o=a)}catch{}let s={};configSearch:for(let e=o;;e=f(e)){for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=m(e,`updates.config.${t}`);try{if(!w(n).isFile())continue;s=(await import(T(n).href)).default??{};break configSearch}catch{}}if(f(e)===e)break}s={...s,...n};let c=Array.isArray(s.file)?s.file:s.files,{prewarmOrigins:l}=await import(`./prewarm.js`);for(let e of l(o,{...s,files:c})){let t=e.endsWith(`/rate_limit`)?`GET`:`HEAD`;(async()=>{try{await(await fetch(e,{method:t})).arrayBuffer()}catch{}})()}}function $i(e,t){if(typeof e!=`string`)throw Error(`Missing value for --${t}`);return gr(new URL(e.includes(`://`)?e:`https://${e}`).host)}function ea(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(s===``||s===``)e.setRawMode(!1),a.write(`
|
|
9
|
+
`),n(130);else if(s===`\r`||s===`
|
|
10
|
+
`)return e.off(`data`,i),e.setRawMode(!1),e.pause(),a.write(`
|
|
11
|
+
`),t(r);else r=s===`\b`||s===``?r.slice(0,-1):r+s};e.on(`data`,i)})}async function ta(e,t){let n=(`isTTY`in e&&e.isTTY?await ea(e,`token for ${t}: `):await re(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 na(e,t,n=!0){let r=String,a=String,c=Zi(e,`json`,`j`),l=e=>t.stdout(`${e}\n`),d=async(e,t)=>{if(e){let t=e.message??String(e);l(c?JSON.stringify({error:t}):r(t))}return i===`win32`&&Number(s.node.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),t??+!!e};try{if(Zi(e,`help`,`h`))return t.stdout(`usage: updates [options] [files...]
|
|
9
12
|
|
|
10
13
|
Options:
|
|
11
14
|
-u, --update Update versions and write dependency file
|
|
@@ -25,6 +28,8 @@ import{cwd as e,env as t,pid as n,platform as r,stderr as i,versions as a}from"n
|
|
|
25
28
|
-s, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 50
|
|
26
29
|
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: 5000
|
|
27
30
|
-r, --registry <url> Override npm registry URL
|
|
31
|
+
-L, --login <host> Verify and store a forge API token
|
|
32
|
+
-O, --logout <host> Remove a stored forge API token
|
|
28
33
|
-I, --indirect Include indirect Go dependencies
|
|
29
34
|
-E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
|
|
30
35
|
-U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
|
|
@@ -50,23 +55,23 @@ import{cwd as e,env as t,pid as n,platform as r,stderr as i,versions as a}from"n
|
|
|
50
55
|
$ updates -f Dockerfile
|
|
51
56
|
$ updates -f docker-compose.yml
|
|
52
57
|
$ updates -f Makefile
|
|
53
|
-
`),await d();if(
|
|
58
|
+
`),await d();if(Zi(e,`version`,`v`)){let e;try{e=S(new URL(`package.json`,t.moduleUrl),`utf8`)}catch{e=S(new URL(`../package.json`,t.moduleUrl),`utf8`)}return l(JSON.parse(e).version),await d()}let{args:i,positionals:s}=qi(e);if(i.login!==void 0){let e=$i(i.login,`login`),n=await ta(t.stdin??o,e),r=await vr(e,n,typeof i.forgeapi==`string`?Fn(i.forgeapi):void 0);return await kn(e,n),l(`stored token for ${e} (${r})`),await d()}if(i.logout!==void 0){let e=$i(i.logout,`logout`);if(!await An(e))throw Error(`no stored token for ${e}`);return l(`removed token for ${e}`),await d()}if(n)try{await Qi(e)}catch{}let f=await Ji(i,s),{updates:p}=await import(`./api.js`);!f.noColor&&(f.color||t.stdoutIsTTY)&&(r=e=>u(`red`,String(e),{validateStream:!1}),a=e=>u(`green`,String(e),{validateStream:!1})),c=!!f.json;let m=await p(f),h=Object.keys(m.results).length>0,g=m.errors??[];if(f.json?l(JSON.stringify({...m.message&&{message:m.message},...h&&{results:m.results},...g.length&&{errors:g}})):m.message?l(m.message):h&&l(ra(m,r,a)),f.update&&!f.json)for(let e of Object.keys(m.results))l(a(`✨ ${e} updated`));if(!f.json)for(let{mode:e,name:t,error:n}of g)l(r(`${e} ${t}: ${n}`));return await d(void 0,g.length?1:f.errorOnOutdated?h?2:0:f.errorOnUnchanged?h?0:2:0)}catch(e){return await d(e)}}function ra(e,t,n){let r=Object.keys(e.results),i=r.length>1,a=[i?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`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`?Vi(e):e,...i?[s]:[],P(c.old,c.new,t),P(c.new,c.old,n),c.age||``,c.info||``]))}}return je(a,e=>l(e).length)}const ia=/^\[\[([^\]]+)\]\]$/,aa=/^\[([^[\]]+)\]$/,oa=[`"""`,`'''`],sa=()=>Object.create(null);function ca(e){let t=sa(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=ma(r[e]).trim();if(!i)continue;let a=ia.exec(i);if(a){let e=t,r=pa(a[1]);for(let t=0;t<r.length-1;t++){let n=e[r[t]];Array.isArray(n)?e=n[n.length-1]:((!n||typeof n!=`object`)&&(e[r[t]]=sa()),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let o=sa();e[i].push(o),n=o;continue}let o=aa.exec(i);if(o){n=ga(t,pa(o[1]));continue}let s=ha(i,`=`);if(s<0)continue;let c=i.slice(0,s).trim(),l=i.slice(s+1).trim(),u=pa(c),d=ga(n,u.slice(0,-1)),f=u[u.length-1],p=oa.find(e=>l.startsWith(e)&&!l.includes(e,3))??``,m={depth:0,inStr:null};if((l.startsWith(`[`)||l.startsWith(`{`))&&!da(l,m)){let t=[l],n=e+1;for(;n<r.length;n++){let e=ma(r[n]);if(t.push(e),da(e,m))break}e=n,d[f]=la(t.join(`
|
|
54
59
|
`))}else if(p){let t=l.slice(3),n=e+1;for(;n<r.length;n++){let e=r[n].indexOf(p);if(e>=0){t+=(t?`
|
|
55
60
|
`:``)+r[n].slice(0,e);break}t+=(t?`
|
|
56
|
-
`:``)+r[n]}e=n,d[f]=
|
|
57
|
-
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const
|
|
58
|
-
`).entries()){let e=
|
|
59
|
-
`),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(
|
|
60
|
-
`):e}function ka(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=ya(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of ba(e.value)??[]){let e=xa(n.text);e&&t.push(e.value)}n=!0;continue}if(n){let e=r.trim();if(!e||e.startsWith(`#`))continue;if(!e.startsWith(`-`))break;let n=xa(e.slice(1));n&&t.push(n.value)}}return t}const Aa=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,ja=new Set([`resolutions`,`overrides`]);function Ma(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const Na=wn.registry,Pa=new Map,Fa=new Map,Ia=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function La(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=`//${n.host}${r.replace(/\/$/,``)}`,i=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],a=i(`_authToken`);if(a)return{token:Ia(a),type:`Bearer`};let o=i(`username`),s=i(`_password`);if(o&&s){let e=Buffer.from(Ia(s),`base64`).toString(`utf8`);return{token:Buffer.from(`${o}:${e}`).toString(`base64`),type:`Basic`}}let c=i(`_auth`);if(c)return{token:Ia(c),type:`Basic`};n.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname}if(e===Na&&t._auth)return{token:Ia(t._auth),type:`Basic`}}function Ra(e,t,n,r){let i=B(Pa,r??``,()=>ua(`npm`,{registry:Na},r)),a=Tn((typeof n.registry==`string`?n.registry:``)||t.registry||i.registry||Na),o=e.startsWith(`@`)?e.split(`/`)[0]:``,s=r?Ea(e,r):null,c=o&&r?Ea(``,r):null;return B(Fa,`${r??``}${o}:${a}:${s??``}:${c??``}`,()=>{let e=s?Tn(s):a,t=s===c&&o&&i[`${o}:registry`];if(t)try{let n=Tn(t);n!==e&&(e=n)}catch{}return{auth:La(e,i),registry:e}})}const za=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},Ba=new WeakMap,Va=new WeakMap,Ha=new WeakMap,Ua=new WeakMap,Wa=(e,t)=>`${e}v2${t?`-dates`:``}`;function Ga(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 Ka(e,t,n,r,i,a,o=``){let s=ja.has(t)?Ma(e):t===`packageManager`&&e===`yarn`&&(U(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Ra(s,n,r,a),u=za(l,s),d=Wa(u,!!r.needsDates);return[await Q(Ba,i,d,async()=>{let t=En(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await Pn(u,i,t,jn(Ga),d);return`body`in n||Dr(n.res,u,e,l),JSON.parse(n.body)}),l]}async function qa(e,t,n,r,i,a){let{auth:o,registry:s}=Ra(e,n,r,a),c=za(s,e,t);return Q(Va,i,c,async()=>{try{let n=En(o?.type,o?.token),a=await Fn(c,i,n,jn(e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})));if(!(`body`in a))return{};let l=JSON.parse(a.body),u=``,d=/(\d{13})/.exec(l?._npmOperationalInternal?.tmp??``);d&&(u=new Date(Number(d[1])).toISOString());let f=za(s,e);return!u&&r.needsDates&&(u=(await Ba.get(i)?.get(Wa(f,!0)))?.time?.[t]||``),u||=(await Fe(Q(Ha,i,f,async()=>{let e=await An(i,f,n);return e.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function Ja(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Ya(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Xa(e){return e.startsWith(`catalog:`)}const Za=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function Qa(e){let t=Za.exec(e);return t&&J(t[2])?{name:t[1],range:t[2]}:null}const $a=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,eo=/^@([^/]+)\/(.+)$/;function to(e,t){let n=$a.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=eo.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function no(e,t){if(!eo.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Q(Ua,t,n,async()=>{let r=await Pn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},jn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||Dr(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 ro(e,t){try{JSON.parse(e)}catch{return e}let n=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]===`{`){for(r++,i();e[r]!==`}`&&r<e.length;){let n=a().value;if(i(),e[r++]!==`:`)return;if(o([...t,n]),i(),e[r]===`,`)r++,i();else break}e[r]===`}`&&r++}else if(e[r]===`[`){r++;let n=0;for(i();e[r]!==`]`&&r<e.length&&(o([...t,n++]),i(),e[r]===`,`);)r++,i();e[r]===`]`&&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=r.oldOrig||r.old,c=n.get(a||JSON.stringify([t,i])),l=r.new;c||(c=n.get(JSON.stringify([t])),o=`${i}@${o}`,l=`${i}@${l}`),c?.value===o&&s.push({...c,value:JSON.stringify(l)})}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`[<>]=?|~>|[\^~=]`,ao=new RegExp(String.raw`^(${io})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),oo=RegExp(`^(?:${io})$`),so=/^[xX*]$/,co=/\+[0-9A-Za-z.-]+/g,lo=/\|\||[\dxX*]\s+\S/;function uo(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&oo.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function fo(e,t){let n=ao.exec(e);if(!n)return e;let[,r=``,i,a,o,s=``]=n,c=o.split(`.`);if(r===`<`&&c.length<=3&&!/[xX*]/.test(o)){let{major:e,minor:n,patch:a}=U(t);return`${r}${i}${c.length===1?`${e+1}`:c.length===2?`${e}.${n+1}`:!s&&o.endsWith(`.0.0`)?`${e+1}.0.0`:!s&&o.endsWith(`.0`)?`${e}.${n+1}.0`:`${e}.${n}.${a+1}`}`}if(r===`>`||r===`<`)return e;if(t.includes(`-`))return`${r}${i}${a}${t}`;let l=t.split(`.`);return`${r}${i}${a}${c.map((e,t)=>so.test(e)?e:l[t]??`0`).join(`.`)}`}function po(e,t){if(q(t,e))return e;let n=uo(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=fo(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=fo(r,t),n.join(` `)}function mo(e,t,n,r){let i=(n||e).replace(co,``),a=r===`peerDependencies`||lo.test(i)?po(i,t):fo(i,t);return q(t,a)?a:i}function ho(e){if(/[xX*]/.test(e))return e;let t=e.match(Aa);return t?.length===1?e.replace(Aa,Wn(t[0])):e}async function go(e,t,n){let r=await yr(`${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 _o(e,t,n,r){return(await Tr(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function vo(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);if(/^github:/i.test(n))n=n.slice(7);else if(/^git@github\.com:/i.test(n))n=n.replace(/^git@github\.com:/i,``);else if(/^(?:https?|git|ssh):/i.test(n)){let e=/^(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:](.+)$/i.exec(n);if(!e)return null;n=e[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 i=n.split(`/`);if(i.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(i[0])||!/^[a-z\d._-]{1,100}$/i.test(i[1]))return null;let a=r.startsWith(`semver:`)&&J(r.slice(7))?r.slice(7):null;return!a&&!pr.test(r)&&!Qe(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function yo(e,t,n){let r=vo(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(pr.test(o)){let{hash:t,commit:r}=await go(i,a,n);if(!t)return null;let s=hr(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:c(l),user:i,repo:a,oldRef:o,newRef:l,newDate:s}}else{let t=ur(await _o(i,a,o,n),s?Wn(s):o);if(t){let n=s?mo(s,Z(t),s):t;if(n!==o)return{key:e,newRange:c(n),user:i,repo:a,oldRef:o,newRef:n}}}return null}const bo=/[-_.]+/g,xo=new WeakMap;function So(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 Co(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(bo,`-`)}/json`;return[{...await Q(xo,t,n,async()=>{let r=await Pn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},jn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:So(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:So(e.releases)}}Dr(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function wo(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=Y(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=Y(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Ct(e.local?{...e,local:null}:e,r),a=r.local?Ct(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 To(e,t=e.release){if(!e.local&&t===e.release)return e.version;let n=e.epoch||/^[vV]?\d+!/.test(e.version)?`${e.epoch}!`:``,r=e.pre?`${e.pre[0]}${e.pre[1]}`:``,i=e.post===null?``:`.post${e.post}`,a=e.dev===null?``:`.dev${e.dev}`;return`${n}${t.join(`.`)}${r}${i}${a}`}function Eo(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 Do(e,t){let n=Y(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(Y(r))return wo(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=M(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>wo(n,e))}function Oo(e,t,n){let r=M(e),i=r?.specifiers,a=Y(t),o=Y(n);if(!r||!i||!a||!o)return null;let s=ve(i);if(s?.version!==t)return null;for(let e of i){if(e===s)e.version=e.op===`~=`?a.release.length===o.release.length?To(o):To(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:To(o);else if(!wo(o,e)){let t=Y(e.version);if(e.op===`<`&&t)e.version=Eo(t,a,o);else if(e.op===`<=`)e.version=To(o);else return null}if(!wo(o,e))return null}return _e(r,i)}function ko(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 Ao(e){let t=``,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(t)t===`"`&&i===`\\`&&!n?n=!0:(i===t&&!n&&(t=``),n=!1);else if(i===`"`||i===`'`)t=i;else if(i===`=`)return r;else if(i===`#`)return-1}return-1}function jo(e,t){let n=e.indexOf(`[`,t);if(n===-1||e.slice(t,n).trim())return-1;let r=0,i=``,a=!1,o=!1;for(let t=n;t<e.length;t++){let n=e[t];if(o)n===`
|
|
61
|
-
`&&(o=!1);else if(i)i===`"`&&n===`\\`&&!a?a=!0:(n===i&&!a&&(i=``),a=!1);else if(n===`"`||n===`'`)i=n;else if(n===`#`)o=!0;else if(n===`[`)r++;else if(n===`]`&&--r===0)return t+1}return-1}function
|
|
62
|
-
`).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=
|
|
63
|
-
`)}const Wo=RegExp(`(?:^|/)(?:${I(N)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Go(e){return Wo.test(e.replace(/\\/g,`/`))}function Ko(e){let t=new Set;try{for(let n of x(f(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(m(f(e,`workflows`,n)))}catch{}try{for(let n of x(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(m(f(n.parentPath,n.name)))}catch{}return Array.from(t)}const qo=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,Jo=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,Yo=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,Xo=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,Zo=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,Qo=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,$o=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function es(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*ts(e,t=!1){let n=new Map,r=!1;for(let i of e.matchAll(/^[ \t]*(?:ARG|FROM)\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim)){let e=$o(i[0]),a=Zo.exec(e);if(a){if(!r){let e=a[2]?.replace(/^(['"])(.*)\1$/,`$2`)??``,t=i[0].lastIndexOf(e);n.set(a[1],{value:e,resolved:es(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=Qo.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:es(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const ns=/^(?:(?:index|registry-1)\.)?docker\.io$/;function rs(e){let t=e.split(`/`);return t.length>1&&ns.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 is(e){let{registry:t,namespace:n,repo:r}=rs(e);if(t)return[e];let i=n===`library`?[r,`library/${r}`]:[`${n}/${r}`];return[...new Set([e,...i,...i.map(e=>`docker.io/${e}`)])]}function as(e){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&&!qo.test(s))return null;let{registry:c,namespace:l,repo:u}=rs(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function os(e){let t=qo.exec(e);return!t||t[2]&&!t[3]&&pr.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function ss(e,t,n=``){let r=os(t);return r?Or(e,r.version,`${n}${r.suffix}`):t}function cs(e,t){let n=[];if(t===Jo){for(let{from:t,resolved:r}of ts(e,!0)){let e=as(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===Yo?ls(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=as(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function ls(e){let t=new Set,n=new Map;for(let r of e.matchAll(/^.*$/gm)){if(!r[0].trim())continue;let e=/^[ \t]*/.exec(r[0])[0].length;for(let t of n.keys())t>e&&n.delete(t);let i=n.get(e)??{built:!1,images:[]};if(n.set(e,i),/^[ \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 us=new WeakMap,ds=new Set([401,403,404]);function fs(e,t,n){return Q(us,n,`${e}/${t}`,async()=>{let r={dates:{},digests:new Map},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=1000&ordering=last_updated&page=${e}`,o=async r=>{let i=await Pn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},jn(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`);return`body`in i?JSON.parse(i.body):(ds.has(i.res?.status)||Dr(i.res,r,`${e}/${t}`,n.dockerApiUrl),null)},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=new Set,u=c,d=2;if(c.count){let e=[];for(;d<=20&&d<=Math.ceil(c.count/1e3);d++){let t=a(d);l.add(t),e.push(t)}let t=await P(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:Ln(n)});for(let e of t){if(`reason`in e)throw e.reason;if(!e.value)return r;s(e.value),u=e.value}}let f=new URL(i).origin;for(;d<=20&&u.next;d++){let e=new URL(u.next,i),t=e.href;if(e.origin!==f||l.has(t))break;l.add(t);let n=await o(t);if(!n)break;s(n),u=n}return r})}async function ps(e,t,n){return(await fs(e,t,n)).dates}async function ms(e,t,n,r){let i=(await fs(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await Pn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},jn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return ds.has(o.res?.status)||Dr(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const hs=/^\d?[02468]\.04$/;function gs(e,t){if(!hs.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const _s={ubuntu:gs};function vs(e,t,n=Date.now()){let r=_s[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=os(e)?.version;return!t||r(t,n)})):t}async function ys(e,t){let{registry:n,namespace:r,repo:i}=rs(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:vs(i,await ps(r,i,t)),name:e},null]}const bs=(e,t)=>t?`${e}-${t}`:e;function xs(e){let t=os(e);return t?Os(t.version):``}const Ss=/[._]/,Cs=e=>Z(e.version).split(Ss).map(Number),ws=e=>Z(e).replace(/\d+/g,``),Ts=2e7,Es=e=>Number(Z(e).split(Ss)[0]);function Ds(e,t){return Es(e)<Ts||Es(t)>=Ts}function Os(e){let t=Z(e).split(Ss).slice(0,3);return[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function ks(e,t){let n=Cs(e),r=Cs(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return n[e]-r[e];return!e.prerelease&&t.prerelease?1:e.prerelease&&!t.prerelease?-1:e.prerelease.localeCompare(t.prerelease)}function As(e,t){let n=Cs(e),r=Cs(t),i=n.findIndex((e,t)=>e!==r[t]);return i===-1?e.prerelease===t.prerelease?null:`patch`:i===0?`major`:i===1?`minor`:`patch`}function js(e,t,n,r,i,a,o=!1,s=!1){let c=os(t);if(!c)return null;let l=ws(c.version),u=bs(Os(c.version),c.prerelease),{effectiveSemvers:d,skipsPrerelease:f}=Un(u,o,s,n),p=l.length>2||l.includes(`_`),m=U(u),h=c,g=``,_=``;for(let[t,u]of Object.entries(e)){let e=os(t);if(!e||e.suffix!==c.suffix||ws(e.version)!==l||!Ds(e.version,c.version)||!xn(u,r,i))continue;let v=bs(Os(e.version),e.prerelease);if(a&&!q(v,a))continue;if(p){if(e.prerelease&&(!o&&!c.prerelease||s)||ks(e,h)<=0)continue;let r=As(c,e);if(!r||!n.has(r))continue;h=e,g=t,_=u;continue}let y=U(v);if(!y||e.prerelease&&f(y))continue;if(y.version===m.version){g&&Date.parse(u)>Date.parse(_)&&(g=t,_=u);continue}let b=X.diff(m,y);!b||!d.has(b)||X.compare(y,m)>0&&(m=y,g=t,_=u)}if(p)return g?{newTag:g,date:_}:null;if(!g||m.version===u)return null;let[v,y=``]=m.version.split(`-`),b=ss(v,t,y),x=b in e?b:g;return x===t?null:{newTag:x,date:_}}const Ms=`(?![\\w.@+-])`;function Ns(e){let t=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 Ps(e,t,n,r=()=>!0){if(!t.size)return e;let i=I(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`${Xo}(${e})(${i})${Ms}`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function Fs(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=Ns(t);if(!r.size)return e;let i=I(r.keys()),a=e.replace(RegExp(`^([ \\t]*FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${Ms}`,`gim`),(e,t,n)=>`${t}${r.get(n)??n}`),o=new Map;for(let{instruction:e,args:t,from:n,resolved:i}of ts(a)){let a=r.get(i);if(!a)continue;let s=i.lastIndexOf(`@`),c=a.lastIndexOf(`@`),l=i.slice(s+1),u=a.slice(c+1),d=s!==-1&&c!==-1&&l!==u;if(d){let t=e[0].lastIndexOf(l);t!==-1&&o.set(e.index+t,{end:e.index+t+l.length,value:u})}for(let e of n[1].matchAll(/\$(?:\{(\w+)\}|(\w+))/g)){let r=t.get(e[1]||e[2]),i=es(n[1].slice(0,e.index),e=>t.get(e)?.value),s=es(n[1].slice(e.index+e[0].length),e=>t.get(e)?.value);d&&(s=s.replace(l,u)),!(!r||r.start<0||!a.startsWith(i)||!a.endsWith(s))&&o.set(r.start,{end:r.start+r.value.length,value:a.slice(i.length,s?-s.length:void 0)})}}let s=a;for(let[e,t]of[...o].sort(([e],[t])=>t-e))s=`${s.slice(0,e)}${t.value}${s.slice(t.end)}`;return s}function Is(e,t){let n=ls(e);return Ps(e,Ns(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function Ls(e,t){return Ps(e,Ns(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const Rs=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function zs(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function Bs(e){return/^Dockerfile(\..+)?$/.test(e)}function Vs(e){return Bs(e)||zs(e)}function Hs(e){return Bs(e)?Jo:Yo}function Us(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Ws=[`Makefile`,`makefile`,`GNUmakefile`];function Gs(e){return Ws.includes(e)||e.endsWith(`.mk`)}const Ks=/^\s*(?:(?:export|override|private|unexport)\s+)*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,qs=/^([^@\s]+)@(v\d\S*)$/,Js=/^[^/\s]+\.[^/\s]+\//;function*Ys(e){let t=``;for(let n of[...e.split(/\r?\n/),``]){let e=n.indexOf(`#`),r=e===-1?n:n.slice(0,e),i=0;for(;r[r.length-i-1]===`\\`;)i++;if(i%2){t+=`${r.slice(0,-1)} `;continue}let a=Ks.exec(t+r);if(t=``,!a)continue;let o=``,s=``;for(let e of a[1])o?e===o?o=``:s+=e:e===`"`||e===`'`?o=e:/\s/.test(e)?(s&&(yield s),s=``):s+=e;s&&!o&&(yield s)}}function Xs(e){let t=[];for(let n of Ys(e)){let e=qs.exec(n);if(!e||!Js.test(e[1]))continue;let[,r,i]=e;t.push({installPath:r,version:i})}return t}const Zs=/@(sha256:[0-9a-f]{64})$/;function Qs(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function $s(e){let t=Zs.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=as(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function ec(e){return Array.from(Ys(e)).flatMap(e=>$s(e)??[])}const tc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,nc=new WeakMap;function rc(e,n,r){return Q(nc,r,`${m(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){let n=String(t?.stderr??``).trim().split(`
|
|
64
|
-
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}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
|
|
61
|
+
`:``)+r[n]}e=n,d[f]=la(p+t+p)}else d[f]=la(l)}return t}function la(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of fa(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(la(e))}return t}return e.startsWith(`{`)?ua(e):e.startsWith(`"""`)?_a(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?_a(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 ua(e){let t=sa(),n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of fa(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=la(e.slice(n+1).trim())}return t}function da(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 fa(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 pa(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function ma(e){let t=ha(e,`#`);return t<0?e:e.slice(0,t)}function ha(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else if(i===`"`||i===`'`)n=i;else if(i===t)return r}return-1}function ga(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=sa()),e=e[n];return e}function _a(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
|
|
62
|
+
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const va=[[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`]],ya={"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 ba(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function xa(e,{now:t,noAffix:n=!1,times:r=va,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=ya,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():ba(t))-ba(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 Sa(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||e.startsWith(`#`)||e.startsWith(`;`))continue;let r=e.indexOf(`=`);if(r===-1)continue;let i=e.slice(r+1).trim();/^(["']).*\1$/s.test(i)&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function Ca(e){try{return Sa(S(e,`utf-8`))}catch{return}}function wa(e,t){return Ge(t,t=>{let n=m(t,e);try{if(w(n).isFile())return n}catch{}return null})??void 0}function Ta(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function Ea(n,r={},a=e()){let o=i===`win32`,s=o?t.USERPROFILE:t.HOME,c=[r],l=[];function u(e){if(!e||l.includes(e))return;let t=Ca(e);t&&(c.push(t),l.push(e))}o||(u(m(`/etc`,n,`config`)),u(m(`/etc`,`${n}rc`))),s&&(u(m(s,`.config`,n,`config`)),u(m(s,`.config`,n)),u(m(s,`.${n}`,`config`)),u(m(s,`.${n}rc`))),u(wa(`.${n}rc`,a));let d=Ta(`${n}_`);return d.config&&u(d.config),Object.assign({},...c,d,l.length?{configs:l,config:l[l.length-1]}:void 0)}function Da(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const Oa=/* @__PURE__ */ new WeakMap;function ka(e,t){let n=B(Oa,e,()=>{let t=/* @__PURE__ */ new Map;for(let[n,r]of Object.entries(e)){let[e,...i]=n.split(`\0`),a=e.indexOf(`|`);Ke(t,a===-1?`.`:e.slice(a+1),[[Da(e),...i].join(`\0`),r])}return t});return Object.fromEntries(n.get(t)??[])}const Aa=/[*?{[]/;function ja(e,t){return b(e,{cwd:t,exclude:e=>e.name===`node_modules`,withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>g(e.parentPath,e.name))}async function Ma(e,t,n,r=32){let i=await oe(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>ja(e.slice(1),t)).map(e=>h(t,e).replace(/\\/g,`/`))),o=/* @__PURE__ */ new Set,s=[];for(let n of e){if(n.startsWith(`!`))continue;let e=Aa.test(n)?ja(n,t):[g(m(t,n))];for(let n of e){let e=h(t,n).replace(/\\/g,`/`);a.has(e)||o.has(n)||(o.add(n),s.push({dir:n,memberPath:`./${e}`}))}}return(await L(s,async({dir:e,memberPath:t})=>{try{let r=await oe(m(e,n)),a=h(i,r);return a===`..`||a.startsWith(`..${_}`)||p(a)?null:{absPath:r,content:await D(r,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const Na=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#](?:[^:#]|:(?=\S))*?))\s*:(?:\s+(.*))?$/,Pa=/\s#/;function Fa(e){let t=Na.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(Pa),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 Ia(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===`"`?o++:s===a&&(a===`'`&&e[o+1]===`'`?o++:a=``);else if(s===`"`||s===`'`)a=s;else if(s===`{`||s===`[`)i++;else if(s===`}`||s===`]`){if(i===0)return null;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?null:(t.push({colon:r,start:n,text:e.slice(n,-1)}),t)}function La(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(Pa);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function Ra(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return null;let n=[];for(let r of Ia(e)??[]){if(r.colon===-1)return null;let e=La(r.text.slice(0,r.colon)),i=La(r.text.slice(r.colon+1));if(!e||!i)return null;n.push({key:e.value,value:i.value,valueIndex:t+r.start+r.colon+1+i.valueIndex})}return n}function za(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=Fa(i);if(e){if(e.indent===0){if(r=e.key===`registries`,e.key===`registry`&&e.value&&(t=e.value),r)for(let t of Ra(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 Ba(e,t){let n=Ge(g(t),t=>{try{return{content:S(m(t,e),`utf8`)}}catch(e){if(e.code!==`ENOENT`)throw e}return null});return n?n.content:null}function Va(e){let t={},n=[{indent:-1,map:t}];for(let t of e.split(/\r?\n/)){let e=Fa(t);if(!e)continue;for(;e.indent<=n.at(-1).indent;)n.pop();let r=n.at(-1).map;e.value?r[e.key]=e.value:(r[e.key]={},n.push({indent:e.indent,map:r[e.key]}))}return t}function Ha(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 Ua=/* @__PURE__ */ new Map;function Wa(e){return B(Ua,e,()=>za(Ba(`pnpm-workspace.yaml`,e)??``))}const Ga=/* @__PURE__ */ new Map;function Ka(){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 qa(){let e=Ka();return B(Ga,e,()=>{let t=``;try{t=S(m(e,`config.yaml`),`utf8`)}catch(e){if(e.code!==`ENOENT`)throw e}return{...za(t),auth:Ha(Va(t)._auth,`config.yaml`)}})}function*Ja(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
|
|
63
|
+
`).entries()){let e=Fa(a);if(!e)continue;let{indent:o,key:s,value:c,valueIndex:l}=e;if(o===0){if(t=s===`catalog`||s===`catalogs`?s:``,n=``,r=-1,s===`catalog`)for(let e of Ra(c,l)??[])yield{type:`catalog`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex};else if(s===`catalogs`)for(let e of Ra(c,l)??[])for(let t of Ra(e.value,e.valueIndex)??[])yield{type:`catalogs.${e.key}`,name:t.key,value:t.value,lineIndex:i,valueIndex:t.valueIndex}}else if(t===`catalog`)c&&(yield{type:`catalog`,name:s,value:c,lineIndex:i,valueIndex:l});else if(t===`catalogs`){if(r===-1||o<=r){n=s,r=o;for(let e of Ra(c,l)??[])yield{type:`catalogs.${n}`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex}}else c&&(yield{type:`catalogs.${n}`,name:s,value:c,lineIndex:i,valueIndex:l})}}}function Ya(e,t){let n=e.split(`
|
|
64
|
+
`),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(Ja(e)).reverse()){let e=t[`${i}${a}`];if(!e||(e.oldOrig||e.old)!==o)continue;let l=n[s];n[s]=l.slice(0,c)+e.new+l.slice(c+o.length),r=!0}return r?n.join(`
|
|
65
|
+
`):e}function Xa(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=Fa(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of Ia(e.value)??[]){let e=La(n.text);e&&t.push(e.value)}n=!0;continue}if(n){let e=r.trim();if(!e||e.startsWith(`#`))continue;if(!e.startsWith(`-`))break;let n=La(e.slice(1));n&&t.push(n.value)}}return t}const Za=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Qa=/* @__PURE__ */ new Set([`resolutions`,`overrides`]);function $a(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const eo=X.registry,to=/* @__PURE__ */ new Map,no=/* @__PURE__ */ new Map,ro=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function io(){let e=t.pnpm_config__auth||t.PNPM_CONFIG__AUTH||void 0;return B(no,e??``,()=>Ha(e,`pnpm_config__auth`))}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 oo(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:ro(a),type:`Bearer`};for(let e of r){let t=i(e,`_authToken`);if(t)return{token:ro(t),type:`Bearer`};let n=i(e,`username`),r=i(e,`_password`);if(n&&r){let e=Buffer.from(ro(r),`base64`).toString(`utf8`);return{token:Buffer.from(`${n}:${e}`).toString(`base64`),type:`Basic`}}let a=i(e,`_auth`);if(a)return{token:ro(a),type:`Basic`}}if(e===eo&&t._auth)return{token:ro(t._auth),type:`Basic`}}function so(e,t,n){let r=B(to,n??``,()=>Ea(`npm`,{registry:eo},n)),i=io(),a=qa(),o=n?Wa(n):{registries:{}},s=e.startsWith(`@`)?e.split(`/`)[0]:``,c=Fn(s&&(i.registries[s]||o.registries[s]||a.registries[s]||a.auth.registries[s]||r[`${s}:registry`])||t.registry||i.registries.default||o.registries.default||o.registry||a.registries.default||a.registry||a.auth.registries.default||r.registry||eo);return{auth:oo(c,{...r,...a.auth.tokens,...i.tokens},s),registry:c}}const co=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},lo=/* @__PURE__ */ new WeakMap,uo=/* @__PURE__ */ new WeakMap,fo=/* @__PURE__ */ new WeakMap,po=/* @__PURE__ */ new WeakMap,mo=(e,t)=>`${e}v2${t?`-dates`:``}`;function ho(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 go(e,t,n,r,i,a,o=``){let s=Qa.has(t)?$a(e):t===`packageManager`&&e===`yarn`&&(H(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=so(s,n,a),u=co(l,s),d=mo(u,!!r.needsDates);return[await Q(lo,i,d,async()=>{let t=In(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await Wn(u,i,t,Vn(ho),d);return`body`in n||Br(n.res,u,e,l),JSON.parse(n.body)}),l]}async function _o(e,t,n,r,i,a){let{auth:o,registry:s}=so(e,n,a),c=co(s,e,t);return Q(uo,i,c,async()=>{try{let n=In(o?.type,o?.token),a=await Gn(c,i,n,Vn(e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})));if(!(`body`in a))return{};let l=JSON.parse(a.body),u=``,d=/(\d{13})/.exec(l?._npmOperationalInternal?.tmp??``);d&&(u=new Date(Number(d[1])).toISOString());let f=co(s,e);return!u&&r.needsDates&&(u=(await lo.get(i)?.get(mo(f,!0)))?.time?.[t]||``),u||=(await Fe(Q(fo,i,f,async()=>{let e=await Bn(i,f,n);return e.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function vo(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function yo(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function bo(e){return e.startsWith(`catalog:`)}const xo=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function So(e){let t=xo.exec(e);return t&&q(t[2])?{name:t[1],range:t[2]}:null}const Co=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,wo=/^@([^/]+)\/(.+)$/;function To(e,t){let n=Co.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=wo.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function Eo(e,t){if(!wo.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Q(po,t,n,async()=>{let r=await Wn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Vn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||Br(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 Do(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]===`{`){for(r++,i();e[r]!==`}`&&r<e.length;){let n=a().value;if(i(),e[r++]!==`:`)return;if(o([...t,n]),i(),e[r]===`,`)r++,i();else break}e[r]===`}`&&r++}else if(e[r]===`[`){r++;let n=0;for(i();e[r]!==`]`&&r<e.length&&(o([...t,n++]),i(),e[r]===`,`);)r++,i();e[r]===`]`&&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=r.oldOrig||r.old,c=n.get(a||JSON.stringify([t,i])),l=r.new;c||(c=n.get(JSON.stringify([t])),o=`${i}@${o}`,l=`${i}@${l}`),c?.value===o&&s.push({...c,value:JSON.stringify(l)})}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 Oo=String.raw`[<>]=?|~>|[\^~=]`,ko=new RegExp(String.raw`^(${Oo})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),Ao=RegExp(`^(?:${Oo})$`),jo=/^[xX*]$/,Mo=/\+[0-9A-Za-z.-]+/g,No=/\|\||[\dxX*]\s+\S/;function Po(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&Ao.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function Fo(e,t){let n=ko.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}=H(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)=>jo.test(e)?e:u[t]??`0`).join(`.`)}`}function Io(e,t){if(K(t,e))return e;let n=Po(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=Fo(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=Fo(r,t),n.join(` `)}function Lo(e,t,n,r){let i=(n||e).replace(Mo,``),a=r===`peerDependencies`||No.test(i)?Io(i,t):Fo(i,t);return K(t,a)?a:i}function Ro(e){if(/[xX*]/.test(e))return e;let t=e.match(Za);return t?.length===1?e.replace(Za,er(t[0])):e}async function zo(e,t,n){let r=await Mr(`${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 Bo(e,t,n,r){return(await Rr(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function Vo(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);if(/^github:/i.test(n))n=n.slice(7);else if(/^git@github\.com:/i.test(n))n=n.replace(/^git@github\.com:/i,``);else if(/^(?:https?|git|ssh):/i.test(n)){let e=/^(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:](.+)$/i.exec(n);if(!e)return null;n=e[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 i=n.split(`/`);if(i.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(i[0])||!/^[a-z\d._-]{1,100}$/i.test(i[1]))return null;let a=r.startsWith(`semver:`)&&q(r.slice(7))?r.slice(7):null;return!a&&!Er.test(r)&&!nt(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function Ho(e,t,n){let r=Vo(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(Er.test(o)){let{hash:t,commit:r}=await zo(i,a,n);if(!t)return null;let s=Or(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:c(l),user:i,repo:a,oldRef:o,newRef:l,newDate:s}}else{let t=Cr(await Bo(i,a,o,n),s?er(s):o);if(t){let n=s?Lo(s,Z(t),s):t;if(n!==o)return{key:e,newRange:c(n),user:i,repo:a,oldRef:o,newRef:n}}}return null}const Uo=/[-_.]+/g,Wo=/* @__PURE__ */ new WeakMap;function Go(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 Ko(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(Uo,`-`)}/json`;return[{...await Q(Wo,t,n,async()=>{let r=await Wn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Vn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:Go(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:Go(e.releases)}}Br(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function qo(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=J(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=J(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Dt(e.local?{...e,local:null}:e,r),a=r.local?Dt(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 Jo(e,t=e.release){if(!e.local&&t===e.release)return e.version;let n=e.epoch||/^[vV]?\d+!/.test(e.version)?`${e.epoch}!`:``,r=e.pre?`${e.pre[0]}${e.pre[1]}`:``,i=e.post===null?``:`.post${e.post}`,a=e.dev===null?``:`.dev${e.dev}`;return`${n}${t.join(`.`)}${r}${i}${a}`}function Yo(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 Xo(e,t){let n=J(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(J(r))return qo(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=ge(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>qo(n,e))}function Zo(e,t,n){let r=ge(e),i=r?.specifiers,a=J(t),o=J(n);if(!r||!i||!a||!o)return null;let s=ve(i);if(s?.version!==t)return null;for(let e of i){if(e===s)e.version=e.op===`~=`?a.release.length===o.release.length?Jo(o):Jo(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:Jo(o);else if(qo(o,e))continue;else{let t=J(e.version);if(e.op===`<`&&t)e.version=Yo(t,a,o);else if(e.op===`<=`)e.version=Jo(o);else return null}if(!qo(o,e))return null}return _e(r,i)}function Qo(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 $o(e){let t=``,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(t)t===`"`&&i===`\\`&&!n?n=!0:(i===t&&!n&&(t=``),n=!1);else if(i===`"`||i===`'`)t=i;else if(i===`=`)return r;else if(i===`#`)return-1}return-1}function es(e,t){let n=e.indexOf(`[`,t);if(n===-1||e.slice(t,n).trim())return-1;let r=0,i=``,a=!1,o=!1;for(let t=n;t<e.length;t++){let n=e[t];if(o)n===`
|
|
66
|
+
`&&(o=!1);else if(i)i===`"`&&n===`\\`&&!a?a=!0:(n===i&&!a&&(i=``),a=!1);else if(n===`"`||n===`'`)i=n;else if(n===`#`)o=!0;else if(n===`[`)r++;else if(n===`]`&&--r===0)return t+1}return-1}function ts(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=Qo(o[1]);else{let o=$o(a),s=o===-1?``:[...r,...Qo(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=es(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function ns(e,t){let n=/* @__PURE__ */ new Map;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`);B(n,t,()=>/* @__PURE__ */ new Map).set(i,r)}let r=ts(e,new Set(n.keys())),i=e;for(let[e,t]of Array.from(r).sort((e,t)=>t[1][0]-e[1][0])){let r=n.get(e),a=Ie(r.keys()),o=i.slice(...t).replace(RegExp(`(['"])( *(${a})(?![\\w.-]).*?)(?=\\1)`,`g`),(e,t,n,i)=>{let{old:a,oldOrig:o,new:s}=r.get(i);return`${t}${Zo(n,o||a,s)??n}`});i=`${i.slice(0,t[0])}${o}${i.slice(t[1])}`}return i}function rs(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:Tr.test(o)}}function is(e,t){return e?e===`github.com`?Pn:`https://${e}/api/v1`:t}async function as(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await yn(a);if(e)return e.body}try{let e=await Sr(a,i);if(e.status===404)return``;if(!e.ok)return;let t=Or(await e.json());return t&&!i.noCache&&Sn(a,`immutable`,t),t}catch(e){if(e instanceof yr)throw e;return}}function os(e,t){let n=Z(e);return Vr(H(n)?.version??n,t)}const ss=/^(\s*(?:-\s*)?)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/;function cs(e,t){let n=ss.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 ls=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function us(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.indexOf(`#`),u=l===-1?``:s.slice(l),d=u?ls.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}}const ds=/^https?:\/\//;function fs(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
|
|
67
|
+
`).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=cs(e,r);if(!t)return e;let{indent:a,key:o}=t,s=o===`uses`&&(r.length===3&&r[0].key===`jobs`&&r[2].key===`steps`||r.length===2&&r[0].key===`runs`&&r[1].key===`steps`||r.length===2&&r[0].key===`jobs`),c=t.value.replace(/(?:^|\s)#.*$/,``).trim();if(c||r.push({indent:a,key:o}),/^[>|](?:[+-]?\d?|\d[+-]?)$/.test(c))return i=a,e;if(!s)return e;let l=us(e);if(!l)return e;let{prefix:u,quote:d,value:f,gap:p,comment:m,pinnedVersion:h,pinnedEnd:g}=l,_=ds.exec(f)?.[0]??``,v=h||/^#\s*(\S+)\s*$/.exec(m)?.[1]||``,y=n.get(`${f.slice(_.length)}${v?`#${v}`:``}`)??n.get(f.slice(_.length));if(!y)return e;let b=y.newComment&&h?`# ${y.newComment}${m.slice(g)}`:m;return`${u}${d}${_}${y.name}@${y.newRef}${d}${p}${b}`}).join(`
|
|
68
|
+
`)}const ps=RegExp(`(?:^|/)(?:${Ie(I)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function ms(e){return ps.test(e.replace(/\\/g,`/`))}function hs(e){let t=/* @__PURE__ */ new Set;try{for(let n of C(m(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(g(m(e,`workflows`,n)))}catch{}try{for(let n of C(e,{recursive:!0,withFileTypes:!0}))n.isFile()&&/^action\.ya?ml$/.test(n.name)&&t.add(g(m(n.parentPath,n.name)))}catch{}return Array.from(t)}const gs=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,_s=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,vs=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,ys=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,bs=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,xs=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,Ss=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function Cs(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*ws(e,t=!1){let n=/* @__PURE__ */ new Map,r=!1;for(let i of e.matchAll(/^[ \t]*(?:ARG|FROM)\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim)){let e=Ss(i[0]),a=bs.exec(e);if(a){if(!r){let e=a[2]?.replace(/^(['"])(.*)\1$/,`$2`)??``,t=i[0].lastIndexOf(e);n.set(a[1],{value:e,resolved:Cs(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=xs.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:Cs(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const Ts=/^(?:(?:index|registry-1)\.)?docker\.io$/;function Es(e){let t=e.split(`/`);return t.length>1&&Ts.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 Ds(e){let{registry:t,namespace:n,repo:r}=Es(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 Os(e){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&&!gs.test(s))return null;let{registry:c,namespace:l,repo:u}=Es(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function ks(e){let t=gs.exec(e);return!t||t[2]&&!t[3]&&Er.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function As(e,t,n=``){let r=ks(t);return r?Vr(e,r.version,`${n}${r.suffix}`):t}function js(e,t){let n=[];if(t===_s){for(let{from:t,resolved:r}of ws(e,!0)){let e=Os(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===vs?Ms(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=Os(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function Ms(e){let t=/* @__PURE__ */ new Set,n=/* @__PURE__ */ new Map;for(let r of e.matchAll(/^.*$/gm)){if(!r[0].trim())continue;let e=/^[ \t]*/.exec(r[0])[0].length;for(let t of n.keys())t>e&&n.delete(t);let i=n.get(e)??{built:!1,images:[]};if(n.set(e,i),/^[ \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 Ns=/* @__PURE__ */ new WeakMap,Ps=/* @__PURE__ */ new Set([401,403,404]);function Fs(e,t,n){return Q(Ns,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=async r=>{let i=await Wn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},Vn(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`);return`body`in i?JSON.parse(i.body):(Ps.has(i.res?.status)||Br(i.res,r,`${e}/${t}`,n.dockerApiUrl),null)},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=/* @__PURE__ */ new Set,u=c,d=2;if(c.count){let e=[];for(;d<=20&&d<=Math.ceil(c.count/1e3);d++){let t=a(d);l.add(t),e.push(t)}let t=await L(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:qn(n)});for(let e of t){if(`reason`in e)throw e.reason;if(!e.value)return r;s(e.value),u=e.value}}let f=new URL(i).origin;for(;d<=20&&u.next;d++){let e=new URL(u.next,i),t=e.href;if(e.origin!==f||l.has(t))break;l.add(t);let n=await o(t);if(!n)break;s(n),u=n}return r})}async function Is(e,t,n){return(await Fs(e,t,n)).dates}async function Ls(e,t,n,r){let i=(await Fs(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await Wn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},Vn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return Ps.has(o.res?.status)||Br(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const Rs=/^\d?[02468]\.04$/;function zs(e,t){if(!Rs.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const Bs={ubuntu:zs};function Vs(e,t,n=Date.now()){let r=Bs[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=ks(e)?.version;return!t||r(t,n)})):t}async function Hs(e,t){let{registry:n,namespace:r,repo:i}=Es(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:Vs(i,await Is(r,i,t)),name:e},null]}const Us=(e,t)=>t?`${e}-${t}`:e;function Ws(e){let t=ks(e);return t?Zs(t.version):``}const Gs=/[._]/,Ks=e=>Z(e.version).split(Gs).map(Number),qs=e=>Z(e).replace(/\d+/g,``),Js=2e7,Ys=e=>Number(Z(e).split(Gs)[0]);function Xs(e,t){return Ys(e)<Js||Ys(t)>=Js}function Zs(e){let t=Z(e).split(Gs).slice(0,3);return[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function Qs(e,t){let n=Ks(e),r=Ks(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return n[e]-r[e];return!e.prerelease&&t.prerelease?1:e.prerelease&&!t.prerelease?-1:e.prerelease.localeCompare(t.prerelease)}function $s(e,t){let n=Ks(e),r=Ks(t),i=n.findIndex((e,t)=>e!==r[t]);return i===-1?e.prerelease===t.prerelease?null:`patch`:i===0?`major`:i===1?`minor`:`patch`}function ec(e,t,n,r,i,a,o=!1,s=!1){let c=ks(t);if(!c)return null;let l=qs(c.version),u=Us(Zs(c.version),c.prerelease),{effectiveSemvers:d,skipsPrerelease:f}=$n(u,o,s,n),p=l.length>2||l.includes(`_`),m=H(u),h=c,g=``,_=``;for(let[t,u]of Object.entries(e)){let e=ks(t);if(!e||e.suffix!==c.suffix||qs(e.version)!==l||!Xs(e.version,c.version)||!Mn(u,r,i))continue;let v=Us(Zs(e.version),e.prerelease);if(a&&!K(v,a))continue;if(p){if(e.prerelease&&(!o&&!c.prerelease||s)||Qs(e,h)<=0)continue;let r=$s(c,e);if(!r||!n.has(r))continue;h=e,g=t,_=u;continue}let y=H(v);if(!y||e.prerelease&&f(y))continue;if(y.version===m.version){g&&Date.parse(u)>Date.parse(_)&&(g=t,_=u);continue}let b=Y.diff(m,y);b&&d.has(b)&&Y.compare(y,m)>0&&(m=y,g=t,_=u)}if(p)return g?{newTag:g,date:_}:null;if(!g||m.version===u)return null;let[v,y=``]=m.version.split(`-`),b=As(v,t,y),x=b in e?b:g;return x===t?null:{newTag:x,date:_}}const tc=`(?![\\w.@+-])`;function nc(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 rc(e,t,n,r=()=>!0){if(!t.size)return e;let i=Ie(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`${ys}(${e})(${i})${tc}`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function ic(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=nc(t);if(!r.size)return e;let i=Ie(r.keys()),a=e.replace(RegExp(`^([ \\t]*FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${tc}`,`gim`),(e,t,n)=>`${t}${r.get(n)??n}`),o=/* @__PURE__ */ new Map;for(let{instruction:e,args:t,from:n,resolved:i}of ws(a)){let a=r.get(i);if(!a)continue;let s=i.lastIndexOf(`@`),c=a.lastIndexOf(`@`),l=i.slice(s+1),u=a.slice(c+1),d=s!==-1&&c!==-1&&l!==u;if(d){let t=e[0].lastIndexOf(l);t!==-1&&o.set(e.index+t,{end:e.index+t+l.length,value:u})}for(let e of n[1].matchAll(/\$(?:\{(\w+)\}|(\w+))/g)){let r=t.get(e[1]||e[2]),i=Cs(n[1].slice(0,e.index),e=>t.get(e)?.value),s=Cs(n[1].slice(e.index+e[0].length),e=>t.get(e)?.value);d&&(s=s.replace(l,u)),!(!r||r.start<0||!a.startsWith(i)||!a.endsWith(s))&&o.set(r.start,{end:r.start+r.value.length,value:a.slice(i.length,s?-s.length:void 0)})}}let s=a;for(let[e,t]of[...o].sort(([e],[t])=>t-e))s=`${s.slice(0,e)}${t.value}${s.slice(t.end)}`;return s}function ac(e,t){let n=Ms(e);return rc(e,nc(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function oc(e,t){return rc(e,nc(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const sc=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function cc(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function lc(e){return/^Dockerfile(\..+)?$/.test(e)}function uc(e){return lc(e)||cc(e)}function dc(e){return lc(e)?_s:vs}function fc(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const pc=[`Makefile`,`makefile`,`GNUmakefile`];function mc(e){return pc.includes(e)||e.endsWith(`.mk`)}const hc=/^\s*(?:(?:export|override|private|unexport)\s+)*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,gc=/^([^@\s]+)@(v\d\S*)$/,_c=/^[^/\s]+\.[^/\s]+\//;function*vc(e){let t=``;for(let n of[...e.split(/\r?\n/),``]){let e=n.indexOf(`#`),r=e===-1?n:n.slice(0,e),i=0;for(;r[r.length-i-1]===`\\`;)i++;if(i%2){t+=`${r.slice(0,-1)} `;continue}let a=hc.exec(t+r);if(t=``,!a)continue;let o=``,s=``;for(let e of a[1])o?e===o?o=``:s+=e:e===`"`||e===`'`?o=e:/\s/.test(e)?(s&&(yield s),s=``):s+=e;s&&!o&&(yield s)}}function yc(e){let t=[];for(let n of vc(e)){let e=gc.exec(n);if(!e||!_c.test(e[1]))continue;let[r,i,a]=e;t.push({installPath:i,version:a})}return t}const bc=/@(sha256:[0-9a-f]{64})$/;function xc(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Sc(e){let t=bc.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=Os(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function Cc(e){return Array.from(vc(e)).flatMap(e=>Sc(e)??[])}const wc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,Tc=/* @__PURE__ */ new WeakMap;function Ec(e,n,r){return Q(Tc,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){let n=String(t?.stderr??``).trim().split(`
|
|
69
|
+
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}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 Dc(e,t,n,r){return await Kr(r,async r=>r===`off`?!1:r===`direct`?Ec(e,t,n):await Ti(n,`primary`,e=>Bn(n,e,{headers:bi}),r,e)?!0:null)??!1}async function Oc(e,t,n,r){let i=wc.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=Qr(e,r)?[{url:`direct`,fallback:`,`}]:n.goProxyChain;if(a[0].url===`off`)return null;let o=e.split(`/`),s=Array.from({length:o.length-1},(e,t)=>o.slice(0,o.length-t).join(`/`));for(let e of a){let r=await Promise.allSettled(s.map(r=>Dc(r,t,n,[e]))),i=r.findIndex(e=>e.status===`fulfilled`&&e.value),a=r.slice(0,i===-1?void 0:i).find(e=>e.status===`rejected`);if(a)throw a.reason;if(i!==-1)return s[i]}return null}function kc(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,R).join(`["']*`)).join(`|`),i=RegExp(`(?<![\\w./@:-])(${r})(?=[\\s#"']|$)`,`g`);return e.replace(/^[^#\n]*/gm,e=>e.replace(i,e=>{let t=e.replace(/["']/g,``),r=n.get(t),i=0;return e.replace(/[^"']/g,()=>r[i++]??``)+r.slice(i)}))}const Ac=/* @__PURE__ */ new WeakMap;function jc(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 Mc(e,t){let n=Fn(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${jc(t)}`}function Nc(e){return e.split(`
|
|
65
70
|
`).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(`
|
|
66
|
-
`)}async function
|
|
67
|
-
`)){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=
|
|
68
|
-
`)){let a=n?null:Sc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=Cc(i,n),r+=i.length+1}return t}function Tc(e,t){let n=wc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=bc(i),c=F(a),l=t.startsWith(`[`)?JSON.parse(xc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(bc).join(u),f=RegExp(`^${d}${u}${s}$`),p=RegExp(`^${d}$`),m=n.find(e=>f.test(e.path)),h=m??n.find(e=>p.test(e.path));if(!h)throw Error(`Unable to locate Cargo table for ${t}.${i}`);h.rewrites.push({simpleRe:RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`),inlineRe:RegExp(`^(\\s*${s}\\s*=\\s*\\{(?:"[^"\\n]*"|'[^'\\n]*'|[^"'}\\n])*?\\bversion\\s*=\\s*["'])${c}(["'])`),...m&&{versionRe:RegExp(`^(\\s*version\\s*=\\s*["'])${c}(["'].*)$`)},newValue:o})}let r=e;for(let t of n.reverse()){if(!t.rewrites.length)continue;let n=``,i=e.slice(t.start,t.end).replace(/^.*$/gm,e=>{let r=e;if(!n)for(let e of t.rewrites)r=r.replace(e.simpleRe,`$1${e.newValue}$2`).replace(e.inlineRe,`$1${e.newValue}$2`),e.versionRe&&(r=r.replace(e.versionRe,`$1${e.newValue}$2`));return n=Cc(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Ec=/^(!?)\/(.*)\/(i?)$/,Dc=e=>e.isHash&&!!e.comment&&!mr(e.comment),Oc=[...new Set(Object.values(Se)),`actions`,`docker`,`make`],kc=new Set(Oc),Ac={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},jc={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},Mc=(e,t)=>Tn(typeof e==`string`?e:t),Nc=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function Pc(e){try{return S.native(e)}catch{return m(e)}}function Fc(e,t){let n=new Map,r=new Set(e);return Ue(t,e=>{for(let t of r){let i=f(e,t);try{g(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function Ic(e,t){t&&(e.date=t,e.age=aa(t,{noAffix:!0,shortUnits:!0}))}const Lc=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,Rc=(e,t,n,r)=>Lc(`${e}${t}`,n,r),zc=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?da(n):`${da(n)}|${t}`)},Bc=e=>Object.values(e).some(e=>Object.keys(e).length>0),Vc=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Hc=(e,t)=>ja.has(e)?Ma(t):t;function Uc(e,t){return t===`go`?[e,Oi(e)]:t===`docker`?is(e):t===`pypi`?[e,Vc(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&xe.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let s=Array.from(new Set([...Uc(e,a),...Uc(o,a)])),c=(t,n)=>Kt(t,n,o,e);for(let e of r)if(s.some(t=>c(e,t)))return!1;for(let e of n)if(s.some(t=>c(e,t)))return!0;return!n.size}function Wc(e,t){let n=new Set;if(e?.length)for(let t of e){let e;try{e=C(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}let r=Pc(t);if(e.isFile())n.add(r);else if(e.isDirectory()){try{for(let e of x(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(Se,e.name)||Vs(e.name)||Gs(e.name))&&n.add(m(f(r,e.name)))}catch{}let e=r.replace(/\\/g,`/`),t=N.some(t=>e.endsWith(`/${t}/workflows`)),i=!t&&N.some(t=>e.endsWith(`/${t}`)),a=t?[u(e)]:i?[e]:N.map(t=>f(e,t));for(let e of a)for(let t of Ko(e))n.add(t)}else throw Error(`${t} is neither a file nor directory`)}else{let e=new Set(N),r=[...Object.keys(Se),...Rs,...Ws,...N],i=new Set;for(let[a,o]of Fc(r,t)){if(e.has(a)){for(let e of Ko(o))n.add(e);continue}let t=Pc(o);i.has(t)||(i.add(t),n.add(m(o)))}try{for(let e of x(t,{withFileTypes:!0})){let r=Vs(e.name)&&!Rs.includes(e.name),i=Gs(e.name)&&!Ws.includes(e.name);e.isFile()&&(r||i)&&n.add(f(t,e.name))}}catch{}}let r=[];for(let e of Array.from(n)){let t=l(e);Object.hasOwn(jc,t)&&(r.push(e),n.delete(f(u(e),jc[t])))}return r.length?new Set([...r,...n]):n}function Gc(e,t){r===`win32`&&ee(e,0),w(e,t,r===`win32`?{flag:`r+`}:void 0)}const Kc=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function qc(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function Jc(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>Oc.indexOf(e)-Oc.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=Kc(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,a]of Object.entries(i)){typeof a.oldPrint==`string`&&(a.old=a.oldPrint),typeof a.newPrint==`string`&&(a.new=a.newPrint),typeof a.oldOrig==`string`&&!Ja(a.oldOrig)&&(a.old=e===`go`?ki(a.oldOrig):a.oldOrig),e===`go`?a.new=ki(a.new):e===`actions`&&!a.digestOnly&&(a.old=Z(a.old),a.new=Z(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get(Kc(e,r))>1?`${o}${e===`actions`?`@`:`:`}${qc(s)}`:o,l=t.results[e]??={};(l[qc(i)]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}function Yc(e,t){if(!t)return()=>!0;let n=Ec.exec(t);if(n){let e=new RegExp(n[2],n[3]);return n[1]?t=>!e.test(t):t=>e.test(t)}return e===`docker`?e=>q(xs(e),t):e===`pypi`?e=>Do(e,t):e=>q(e,t)}function Xc(e,t,n){if(!n)return e;let r=Yc(t,n),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>r(e)));if(t===`go`)return{...e,...e.versions&&{versions:i(e.versions)},new:typeof e.new==`string`&&r(e.new)?e.new:``,sameMajorNew:typeof e.sameMajorNew==`string`&&r(e.sameMajorNew)?e.sameMajorNew:``};let a=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[a]:i(e[a]??{})}}async function Zc(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await Qc(e)}finally{n()}}async function Qc(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Pe(n.timeout,`timeout`));let r=n.sockets??50,a=n.timeout??0,o=Mc(t.forgeapi,wn.forgeapi),s=Fr(t.goproxy),d=Ir(),p=!n.noColor&&(n.color||i.isTTY),h=e=>p?t=>c(e,String(t),{validateStream:!1}):String,g=h(`magenta`),_=h(`green`),v=h(`red`),y,b={execFile:async(e,t,n)=>(await Zn())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:Mc(t.pypiapi,wn.pypiapi),jsrApiUrl:Mc(t.jsrapi,wn.jsrapi),goProxyChain:s,cratesIoUrl:Mc(t.cargoapi,wn.cargoapi),dockerApiUrl:Mc(t.dockerapi,wn.dockerapi),doFetch:(e,t)=>(y??=zn(b))(async()=>{n.verbose&&console.error(`${Ae()} ${g(t?.method||`GET`)} ${e}`);let r=await kn(e,t);return n.verbose&&console.error(`${Ae()} ${r.ok?_(r.status):v(r.status)} ${e}`),r}),noCache:!!n.noCache},x=new Map,S=async(e,t,n)=>{let r=`${e}${t}${n}`,i=B(x,r,()=>ms(e,t,n,b));try{return await i}catch(e){throw x.get(r)===i&&x.delete(r),e}};for(let e of n.modes??[])if(!kc.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${Oc.join(`,`)}`);let C=n.modes?.length?new Set(n.modes):kc,ee=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?nn(e.include):void 0,exclude:e.exclude?.length?nn(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Ne(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:sn(e.greatest),prerelease:sn(e.prerelease),release:sn(e.release),patch:sn(e.patch),minor:sn(e.minor),allowDowngrade:sn(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}},w=new WeakMap;function te(e,t,n,r=n){let i=B(w,e,()=>new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(new Set([...Uc(n,t),...Uc(r,t)])),c=e=>s.some(t=>Oe(t,e)),l=c(e.greatest),u=c(e.prerelease),d=c(e.release),f=c(e.patch),p=c(e.minor),m=c(e.allowDowngrade),h,g;for(let t of e.renovateVersionRules)Ut(t,n,r)&&(t.allowedVersions!==void 0&&(g=t.allowedVersions),t.cooldownDays!==void 0&&(h=t.cooldownDays));for(let t of e.overrides)t.include&&s.every(e=>!Oe(e,t.include))||t.exclude&&s.some(e=>Oe(e,t.exclude))||(t.greatest!==void 0&&(l=t.greatest),t.prerelease!==void 0&&(u=t.prerelease),t.release!==void 0&&(d=t.release),t.patch!==void 0&&(f=t.patch),t.minor!==void 0&&(p=t.minor),t.allowDowngrade!==void 0&&(m=t.allowDowngrade),t.cooldownDays!==void 0&&(h=t.cooldownDays));let _=f?Ac.patch:p?Ac.minor:Ac.major;o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:_,allowDowngrade:m,cooldownOverride:h,allowedVersions:g},i.set(a,o)}return o}an(n.pin);let ne=n.pin??{},T=(e,t,n)=>{let r=e.find(e=>ne[e]);if(r)return{pinnedRange:ne[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}},ie=(e,t,n,r,i,a,o)=>{let s=te(e,t,n,r);return{...s,...T(s.names,i,a),cooldownDays:s.cooldownOverride??o}},E={},ae={},oe=new Map,se=new Map,D=new Map,O=new Map,ce=new Map,k=[],A=(e,t,n)=>{let[r,i]=t.split(`\0`);k.push({mode:e,type:r,name:i,error:n?.message||String(n)})},j=(e,t,n)=>{delete E[e][t],A(e,t,n)},le={},ue=Date.now(),de=Pc(e()),fe=e=>e.replace(`${de}/`,``).replace(`${de}\\`,``),pe=(e,t,n,r,i,a)=>{E[e][Rc(t,n,r)]={old:i,oldOrig:a}},me=(e,t,n)=>{if(Xa(n))return;let r=Qa(n);if(Ja(n))E.npm[e]={old:to(n,t).version,new:``,oldOrig:n};else if(J(n))E.npm[e]={old:ho(n),new:``,oldOrig:n};else if(r)se.set(e,r),E.npm[e]={old:ho(r.range),new:``,oldOrig:n};else if(Ya(n))return;else ae[e]={old:n}},he=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(Vc)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of ye(t))s.has(Vc(o))||$(o,e,i,a,r)&&(pe(e,r,n,o,ho(c),c),ce.set(Rc(r,n,o),l))};for(let[s,l]of De(r,t)){let t=l||{};if(Array.isArray(t)){if(e!==`pypi`)continue;c(t,s)}else if(typeof t==`string`){let[r,o]=t.split(`@`);$(r,e,i,a,s)&&pe(e,s,n,r,ho(o),o)}else{if(e===`npm`&&(s===`overrides`||s===`pnpm.overrides`)){let r=s===`overrides`?[`overrides`]:[`pnpm`,`overrides`],c=(t,l)=>{for(let[u,d]of Object.entries(t))if(typeof d==`string`){let t=Ma(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=Qa(d);if(!$(t,e,i,a,s,e,c?.name??t))continue;let f=[...r,...l,u],p=JSON.stringify(f),m=Rc(s,n,t,p);me(m,t,d)}else d&&typeof d==`object`&&!Array.isArray(d)&&c(d,[...l,u])};c(t,[]);continue}for(let[r,l]of Object.entries(t)){if(e===`pypi`&&Array.isArray(l)){c(l,`${s}.${r}`);continue}typeof l==`string`&&(o?.has(Hc(s,r))||$(r,e,i,a,s,e,(e===`npm`?Qa(l):null)?.name??r)&&(e===`npm`?me(Rc(s,n,r),r,l):e===`go`?pe(e,s,n,r,ki(l),Z(l)):J(l)&&pe(e,s,n,r,ho(l),l)))}}}},ge=Wc(n.files,de),M=new Map(await P(Array.from(ge).filter(e=>{if(Go(e))return C.has(`actions`)||C.has(`docker`);let t=l(e);return Vs(t)?C.has(`docker`):Gs(t)?C.has(`make`):C.has(Se[t])}),async e=>{try{return[e,await re(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),_e={},ve=[],xe=[],N=[],ke=[],je=[],Me=[],F=[],I=[],Ie={},L=(e,t,n)=>{(Ie[e]??=new Map).set(t===`.`?``:`|${t}`,n)},Le=t[Zt],Re=Le&&new Set(Le.cliKeys),ze=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!Re||Re.has(e)))),R=We(async e=>{let t={...await ln(e),...ze};return{modeConfig:t,include:nn(t.include??[]),exclude:nn(t.exclude??[]),versionConfig:ee(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Ne(String(t.cooldown)):0}});function Be(e,t){return t.types?.length?t.types:e===`npm`?be:e===`pypi`?Ce:e===`go`?t.indirect?we:we.filter(e=>e!==`indirect`):e===`cargo`?[...Te,...Ee]:[]}let Ve=(e,t)=>({modeConfig:e.modeConfig,versionConfig:e.versionConfig,projectDir:t,pin:e.pin,cooldownDays:e.cooldownDays}),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`?a:-1;continue}if(n===-1||!e[5])continue;let s=e[5].replace(/\s+#.*$/,``).trimEnd(),c=e[5].length-e[5].trimStart().length,l=/^(['"])(.*)\1$/.exec(s.trimStart()),u=l?.[2]??s.trimStart();t.push({selector:o,value:u,lineNumber:r,valueIndex:i.length-e[5].length+c+Number(!!l)})}return t};function Ue(e,t,n){if(E.docker??={},!$(e.fullImage,`docker`,n.include,n.exclude,`docker`))return;let r=`${e.tag}${e.digest?`@${e.digest}`:``}`,i=Lc(t,e.fullImage,r);if(E.docker[i])return;let a=os(e.tag);!a&&!e.digest||(E.docker[i]={old:a?.version??e.tag,oldOrig:e.tag,...e.digest&&{oldDigest:e.digest},...e.digestOnly&&{digestOnly:!0}},F.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let z=new Map,V=new Map;for(let e of ge){let t=l(e);if(t===`package.json`){let t=M.get(e);if(!t)continue;try{let n=JSON.parse(t),r=Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages;Array.isArray(r)&&r.some(e=>typeof e==`string`)&&V.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=M.get(e);if(!t)continue;try{let n=Ki(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&z.set(e,n)}catch{}}}let Ge={cargo:z.size,go:Array.from(ge).filter(e=>l(e)===`go.work`).length,npm:new Set([...V.keys(),...Array.from(ge).filter(e=>l(e)===`pnpm-workspace.yaml`)]).size},Ke=(e,t,n,r,i)=>{let a=le[e]??=[],o=!a.length&&!Ge[e],s=o?`.`:fe(t);return a.push({absPath:m(t),content:n,memberPath:s,projectDir:r}),L(e,s,Ve(i,r)),o?``:`|${s}`},qe=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},Je=(e,t,n)=>Ge[e]>1?`${fe(t)}:${n}`:n,H=(e,t,n,r,i,a,o)=>{let s=Je(`npm`,e,n.memberPath);L(`npm`,s,Ve(a,t)),ke.push({...n,memberPath:s}),he(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of z.size||V.size?new Set([...z.keys(),...V.keys(),...M.keys()]):M.keys()){if(Go(e)){let t=C.has(`actions`),n=C.has(`docker`),r=M.get(e),i=fe(e),a=await R(u(e)),s=new Set;_e[i]={absPath:e,content:r,fileType:`workflow`,workflowLines:s};let c=[];for(let[e,l]of r.split(/\r?\n/).entries()){if(t){let e=Vo(l),t=e&&Po(e.value);if(t&&$(t.name,`actions`,a.include,a.exclude,`actions`)){E.actions??={};let n=e.pinnedVersion||/^#\s*(\S+)\s*$/.exec(e.comment)?.[1]||``,r=t.isHash&&n?`${n}@${t.ref}`:t.ref,s=Lc(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},Me.push({...t,key:s,comment:n,apiUrl:Fo(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=zo(l,c);if(!r)continue;let{indent:u,key:d}=r,f=d===`container`&&c.length===2&&c[0].key===`jobs`,p=d===`image`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`container`||c.length===4&&c[0].key===`jobs`&&c[2].key===`services`),m=d===`uses`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`steps`||c.length===2&&c[0].key===`runs`&&c[1].key===`steps`);if((f||p||m)&&r.value){let t=as(r.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(Ue(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=l(e),n=m(e);if(Vs(t)){let n=M.get(e),r=fe(e),i=Bs(t)?`dockerfile`:`compose`,a=await R(u(e));_e[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of cs(n,Hs(t)))Ue(e,r,a);continue}if(Gs(t)){let t=M.get(e),n=fe(e),r=await R(u(e));_e[n]={absPath:e,content:t,fileType:`make`},E.make??={};let i={projectDir:u(e),versionConfig:r.versionConfig,filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of Xs(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=Lc(n,e,a);E.make[t]||(E.make[t]={old:Z(a),oldOrig:a},I.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of ec(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=Lc(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=os(e.ref.tag);if(!a)continue;let o=Qs(e.writtenImage,e.ref.tag,e.digest);E.make[t]={old:a.version,oldOrig:e.ref.tag},I.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=Se[t];if(t===`go.work`){E[i]??={};let t=u(n),a=M.get(e),o=Ti(a),[{modeConfig:s,include:c,exclude:l,versionConfig:d,pin:f,cooldownDays:p},m]=await Promise.all([R(t),P(o.use,async e=>{let n=Ei(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await re(n,`utf8`)}}catch{return null}},{concurrency:r})]),h=Be(i,s),g=Je(i,e,`.`),_=Ve({modeConfig:s,versionConfig:d,pin:f,cooldownDays:p},t);L(i,g,_),xe.push({file:e,content:a,memberPath:g});let v=new Set,y=[];for(let e of m){if(!e)continue;let t=ni(e.content);t&&v.add(t),y.push({...e,parsed:ri(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=Je(i,e,t);L(i,o,_),ve.push({absPath:n,content:r,projectDir:u(n),memberPath:o}),he(i,a,o===`.`?``:`|${o}`,h,c,l,v)}for(let[e,t]of Object.entries(o.replace))!v.has(e)&&$(e,i,c,l,`replace`)&&pe(i,`replace`,g===`.`?``:`|${g}`,e,ki(t),Z(t));continue}if(t===`go.mod`&&ve.some(e=>e.absPath===n)||t===`package.json`&&ke.some(e=>e.absPath===n)||t===`Cargo.toml`&&N.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){E[i]??={};let t=M.get(e),a=z.get(e)??Ki(t),o=u(n),s=Fc([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[d,f,p]=await Promise.all([R(o),s?re(s,`utf8`):null,l?ga(c,o,`Cargo.toml`,r):[]]),{modeConfig:m,include:h,exclude:g}=d,_=Be(i,m),v=f?fc(f):new Map,y=(e,t)=>{for(let[n,r]of De(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[r,a]of Object.entries(e))if($(r,i,h,g,n)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||r;J(gc(e))&&(o!==r&&oe.set(Rc(n,t,r),o),pe(i,n,t,r,yc(v,o,e)??ho(gc(e)),e))}else typeof a==`string`&&J(gc(a))&&pe(i,n,t,r,yc(v,r,a)??ho(gc(a)),a)}}}};if(l){let r=Je(i,e,`.`),s=Ve(d,o);L(i,r,s),y(a,r===`.`?``:`|${r}`),N.push({absPath:n,content:t,memberPath:r});for(let t of p){let n=Je(i,e,t.memberPath);L(i,n,s),N.push({...t,memberPath:n}),y(qe(t.absPath,()=>Ki(t.content)),`|${n}`)}}else y(a,Ke(i,e,t,o,d));continue}if(t===`package.json`&&V.has(e)){E[i]??={};let t=u(n),a=M.get(e),o=V.get(e),s=Array.isArray(o.workspaces)?o.workspaces:o.workspaces?.packages,c=Array.isArray(s)?s.filter(e=>typeof e==`string`):[],[l,d]=await Promise.all([R(t),ga(c,t,`package.json`,r)]),f=Be(i,l.modeConfig),p=new Set,m=[];for(let e of d){let t=qe(e.absPath,()=>JSON.parse(e.content));typeof t.name==`string`&&t.name&&p.add(t.name),m.push({member:e,pkg:t})}H(e,t,{absPath:n,content:a,memberPath:`.`},o,f,l,p);for(let{member:n,pkg:r}of m)H(e,t,n,r,f,l,p);continue}if(t===`pnpm-workspace.yaml`){E[i]??={};let a=u(n),o=M.get(e),s=ka(o),c=f(a,`package.json`),[l,d,p]=await Promise.all([R(a),Fe(re(c,`utf8`)),ga(s,a,`package.json`,r)]),h=Be(i,l.modeConfig),g=Je(i,e,t);L(i,g,Ve(l,a)),je.push({absPath:n,content:o,memberPath:g});for(let{type:e,name:t,value:n}of Da(o))$(t,i,l.include,l.exclude,e,i,Qa(n)?.name??t)&&me(Rc(e,`|${g}`,t),t,n);for(let{selector:e,value:t}of He(o)){let n=e.match(/(?:^|>)(?:@[^/>\s]+\/[^@>\s]+|[^@>\s]+)(?=@|>|$)/g)?.at(-1)?.replace(/^>/,``)??e,r=`pnpm-workspace.overrides`;if(!$(e,i,l.include,l.exclude,r,i,n))continue;let a=JSON.stringify(e),o=Rc(r,`|${g}`,e,a);D.set(o,n),O.set(o,e),me(o,e,t)}if(d!==null){let t=qe(c,()=>JSON.parse(d));H(e,a,{absPath:m(c),content:d,memberPath:`.`},t,h,l)}for(let t of p)H(e,a,t,qe(t.absPath,()=>JSON.parse(t.content)),h,l);continue}E[i]??={};let a=u(n),s=await R(a),{modeConfig:c,include:d,exclude:p}=s,h=Be(i,c),g=M.get(e);he(i,qe(e,()=>i===`npm`?JSON.parse(g):i===`pypi`?Ki(g):ri(g)),Ke(i,e,g,a,s),h,d,p)}let Ye=Object.keys(ae).length>0;if(!Bc(E)&&!Ye)return{results:{},message:`No dependencies found, nothing to do.`};let Xe=[],Ze=(e,t)=>D.get(e)??se.get(e)?.name??Hc(e.split(`\0`)[0].split(`|`)[0],t),Qe={needsDates:Ie.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Ie))!Object.keys(E[e]).length&&(e!==`npm`||!Ye)||Xe.push((async()=>{let i=t.values().next().value,a=e=>{let n=e.indexOf(`|`);return t.get(n===-1?``:e.slice(n))??i},o=new Map,s=E[e],c=async(t,r,i)=>{let c=da(r),{modeConfig:l,versionConfig:u,projectDir:f,pin:p,cooldownDays:m}=a(r),h=s[t],_=se.get(t),[v,y]=await(e===`npm`?h.oldOrig&&Ja(h.oldOrig)?no(i,b):Ka(Ze(t,i),c,l,Qe,b,f,h.old):e===`go`?vi(i,r,h.oldOrig||h.old,f,b,d):e===`cargo`?dc(oe.get(t)??i,b):Co(i,b)),x=v;if(x.error)throw Error(x.error);let S=c===`packageManager`?i:x.name,{useGreatest:C,usePre:ee,useRel:w,semvers:te,allowDowngrade:ne,allowedVersions:T,pinnedRange:re,pinNoDowngrade:E,cooldownDays:ae}=ie(u,e,S,i,p,l.pinNoDowngrade,m);x=Xc(x,e,T);let{old:D,oldOrig:O}=h,k=qn(x,{usePre:ee,useRel:w,useGreatest:C,semvers:te,range:D,mode:e,pinnedRange:re,pinNoDowngrade:E,allowDowngrade:ne,cooldownDays:ae||void 0,now:ae?ue:void 0}),A=``;if((e===`go`||e===`pypi`)&&k)A=k;else if(e===`cargo`&&k&&O)A=vc(O,k);else if(k){if(O&&Ja(O)){let e=Nc.exec(O);e?A=`${e[1]}${k}`:O.startsWith(`jsr:`)&&(A=`jsr:${k}`)}else A=_?`npm:${_.name}@${mo(D,k,_.range,c)}`:mo(D,k,O,c)}let j=ce.get(t);if(!k||k===D||O&&O===A||j&&!Oo(j,O||D,A)){n.verbose&&k&&k!==D&&console.error(`${Ae()} ${g(`SKIP`)} ${i}: ${O||D} can not be rewritten to ${k}`),delete s[t];return}let le=(e===`pypi`?x.releases?.[k]?.[0]?.upload_time_iso_8601:e===`go`?x.Time:e===`cargo`?x.time?.[k]:``)||``;h.new=A,O&&Ja(O)&&(h.newPrint=k),e===`npm`?o.set(t,{name:Ze(t,i),promise:qa(x.name,k,l,Qe,b,f)}):h.info=e===`pypi`?jr(x,y,x.info.name):e===`go`?Di(x.newPath||i):`https://crates.io/crates/${x.name}`,Ic(h,le)};if(await P(Object.keys(s),async t=>{let[n,r]=t.split(`\0`);try{await c(t,n,r)}catch(n){j(e,t,n)}},{concurrency:r}),await Promise.all(Array.from(o,async([e,{name:t,promise:n}])=>{let r=await n,i=s[e];i&&(i.info=jr({repository:r.repository,homepage:r.homepage},null,t),Ic(i,r.date))})),e===`npm`&&Ye){let e=(await P(Object.entries(ae),async([e,t])=>{try{return await yo(e,t,b)}catch(t){return A(`npm`,e,t),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:c}of e)Ic(s[t]={old:ae[t].old,new:n,oldPrint:pr.test(a)?a.substring(0,7):a,newPrint:pr.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`},c)}for(let[t,{date:n}]of Object.entries(s)){if(!n)continue;let[r,i]=t.split(`\0`),{cooldownDays:o,versionConfig:c}=a(r);if(!o&&!c.hasCooldownOverride)continue;let l=e===`npm`?Ze(t,i):i,u=te(c,e,l,i).cooldownOverride??o;u&&!xn(n,u,ue)&&delete s[t]}})());let U=e=>ie(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);Me.length&&Xe.push((async()=>{await P(Map.groupBy(Me,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?!Dc(e):mr(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=U(e);return t||!!(n&&!r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===wn.forgeapi?[]:e.filter(Dc).map(e=>e.comment)],c=[];try{s.length&&(c=await Er(t,n,i,b,o?[]:s,!!a.length))}catch(t){for(let n of e)j(`actions`,n.key,t);return}let l=[],u=new Map,d=new Map,f=new Map;for(let e of c){d.set(e.name,e);let t=kt.parse(e.name)?.version;if(t&&e.isStable!==!1){let n=u.get(t);n||l.push(t),(!n||e.name.length>n.length)&&u.set(t,e.name)}e.commitSha&&f.set(e.commitSha,e.name)}let p=We(e=>Io(t,n,i,e,b)),m=We(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===wn.forgeapi?`commits`:`branches`,o=await lr(`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,b);if(o.status===404)return``;if(!o.ok)throw Error(`Unable to fetch ${n}/${i}@${e}`);let s=await o.json();return typeof s?.sha==`string`?s.sha:typeof s?.id==`string`?s.id:typeof s?.commit?.sha==`string`?s.commit.sha:typeof s?.commit?.id==`string`?s.commit.id:``});async function h(e,t){let r={...e,cooldownDays:void 0,now:void 0},a=new Set;for(let o=0;o<100;o++){let o=Gn({},a.size?t.filter(e=>!a.has(e)):t,r);if(!o)return null;let s=u.get(o),c=d.get(s).commitSha;if(!e.cooldownDays)return{version:o,tag:s,commitSha:c,date:``};let l=c?await p(c):``;if(l===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${s}`);if(xn(l,e.cooldownDays,e.now))return{version:o,tag:s,commitSha:c,date:l};a.add(o)}return null}let g=async e=>{let{key:t,host:r,ref:a,comment:o,isHash:s}=e,c=E.actions[t],u=`https://${r||`github.com`}/${n}/${i}`,g=a;if(s?g=o||f.get(a)||f.entries().find(([e])=>e.startsWith(a))?.[1]||``:mr(a)||(g=``),!g){delete E.actions[t];return}let{useGreatest:_,usePre:v,useRel:y,semvers:b,allowDowngrade:x,allowedVersions:S,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w}=U(e),te=mr(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:kt,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w||void 0,now:w?ue:void 0},S?l.filter(Yc(`actions`,S)):l):null;if(!te){if(!s||!o){delete E.actions[t];return}let e=await m(o);if(!e||e.startsWith(a)||a.startsWith(e)){delete E.actions[t];return}c.old=o,c.new=o,c.oldDigest=a,c.newDigest=e,c.digestOnly=!0,c.info=u,Ic(c,await Fe(p(e)));return}let{tag:ne,commitSha:T,date:re}=te;if(s){if(!T||T.startsWith(a)||a.startsWith(T)){delete E.actions[t];return}c.old=a,c.new=T.substring(0,a.length),c.oldPrint=g,c.newPrint=ne}else{let e=Lo(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,Ic(c,re||(T?await Fe(p(T)):``))};await P(e,async e=>{try{await g(e)}catch(t){j(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(E.actions).length||delete E.actions})()),F.length&&Xe.push((async()=>{await P(Map.groupBy(F,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete E.docker[e.key];return}let n;try{let[t]=await ys(e,b);n=t}catch(e){for(let n of t)j(`docker`,n.key,e);return}await P(t,async t=>{try{let r=E.docker[t.key],i=r.oldOrig||r.old,{semvers:a,usePre:o,useRel:s,allowedVersions:c,pinnedRange:l,cooldownDays:u}=ie(t.versionConfig,`docker`,e,e,t.filePin,void 0,t.fileCooldownDays),d=Xc(n,`docker`,c).tags,f=!t.ref.digestOnly&&os(i)?js(d,i,a,u||void 0,u?ue:void 0,l,o,s):null,p=f?.newTag??i;if(t.ref.digest){let e=await S(t.ref.namespace,t.ref.repo,p);if(!e||e===t.ref.digest&&!f){delete E.docker[t.key];return}r.oldDigest=t.ref.digest,r.newDigest=e,r.digestOnly=t.ref.digestOnly}else if(!f){delete E.docker[t.key];return}r.new=p,r.info=Us(t.ref),Ic(r,f?.date)}catch(e){j(`docker`,t.key,e)}},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),I.length&&Xe.push((async()=>{await P(I,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,allowedVersions:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l}=ie(e.versionConfig,e.kind,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays),u={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l||void 0,now:l?ue:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await ac(e.installPath,e.projectDir,b,d);if(!t){delete E.make[e.key];return}let[n]=await vi(t,`tool`,Z(e.version),e.projectDir,b,d),r=Xc(n,`go`,o),i=qn(r,{...u,mode:`go`,range:Z(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??Gr(t,i),s=`${a}${e.installPath.slice(t.length)}`,c=Or(i,e.version);if(s===e.installPath&&c===e.version){delete E.make[e.key];return}e.newSpec=`${s}@${c}`,f.new=c,f.info=Di(a),Ic(f,r.Time)}else{let[t]=await ys(e.image.ref.fullImage,b),n=Xc(t,`docker`,o).tags,r=js(n,e.image.ref.tag,u.semvers,u.cooldownDays,u.now,u.pinnedRange,u.usePre,u.useRel);if(!r){delete E.make[e.key];return}let i=e.image.digest?await S(e.image.ref.namespace,e.image.ref.repo,r.newTag):null;if(e.image.digest&&!i){delete E.make[e.key];return}e.newSpec=Qs(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=Us(e.image.ref),Ic(f,r.date)}}catch(t){j(`make`,e.key,t)}},{concurrency:r}),Object.keys(E.make).length||delete E.make})());try{await Promise.all(Xe)}finally{n.noCache||await yn()}if(!Bc(E))return k.length?{results:{},errors:k}:{results:{},message:`All dependencies are up to date.`};let $e=(e,t)=>{let n=e.split(`
|
|
69
|
-
`),r=new Map(
|
|
70
|
-
`)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=
|
|
71
|
-
`).map((e,n)=>o.has(n)?
|
|
72
|
-
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=
|
|
71
|
+
`)}async function Pc(e,t){let n=Mc(t.cratesIoUrl,e);return[await Q(Ac,t,n,async()=>{let r=await Wn(n,t,In(),Nc);`body`in r||Br(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
|
|
72
|
+
`)){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=H(n);r&&(r.prerelease.length?(!s||lt(n,s))&&(s=n):(!o||lt(n,o))&&(o=n))}if(!c&&r.body.trim())throw Error(`Invalid JSON from ${n}`);return{name:e,versions:i,time:a,"dist-tags":{latest:o||s}}}),null]}function Fc(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);if(!e||!r)continue;let i=e[1],a=r[1];nt(a)&&Ke(t,i,a)}return t}const Ic=/^\d/,Lc=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Rc=/^(\s*)(.*?)(\s*)$/s,zc=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return Ic.test(t)&&!Lc.test(t)?`^${t}`:t}).join(` `);function Bc(e,t){let[n,r,i,a]=Rc.exec(e);if(i.startsWith(`<`)&&K(t,i))return e;let o=Lc.exec(i),s;if(o){if(H(t)?.prerelease.length)s=t;else{let[e,n,r]=o;s=`${t.split(/[-+]/)[0].split(`.`).slice(0,n.split(`.`).length).join(`.`)}${r}`}}else s=Ic.test(i)?Lo(`^${i}`,t,`^${i}`).replace(/^\^/,``):Lo(i,t,i);return`${r}${s}${a}`}function Vc(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:Bc(e,t)).join(``)}function Hc(e,t,n){let r=e.get(t);if(!r)return;let i=zc(n),a;for(let e of r)K(e,i)&&(!a||lt(e,a))&&(a=e);return a}const Uc=e=>{let t=R(e);return`(?:${t}|"${t}"|'${t}')`},Wc=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,Gc=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/;function Kc(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 qc(e){let t=[],n=``,r=0;for(let i of e.split(`
|
|
73
|
+
`)){let a=n?null:Gc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=Kc(i,n),r+=i.length+1}return t}function Jc(e,t){let n=qc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Uc(i),c=R(a),l=t.startsWith(`[`)?JSON.parse(Wc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(Uc).join(u),f=RegExp(`^${d}${u}${s}$`),p=RegExp(`^${d}$`),m=n.find(e=>f.test(e.path)),h=m??n.find(e=>p.test(e.path));if(!h)throw Error(`Unable to locate Cargo table for ${t}.${i}`);h.rewrites.push({simpleRe:RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`),inlineRe:RegExp(`^(\\s*${s}\\s*=\\s*\\{(?:"[^"\\n]*"|'[^'\\n]*'|[^"'}\\n])*?\\bversion\\s*=\\s*["'])${c}(["'])`),...m&&{versionRe:RegExp(`^(\\s*version\\s*=\\s*["'])${c}(["'].*)$`)},newValue:o})}let r=e;for(let t of n.reverse()){if(!t.rewrites.length)continue;let n=``,i=e.slice(t.start,t.end).replace(/^.*$/gm,e=>{let r=e;if(!n)for(let e of t.rewrites)r=r.replace(e.simpleRe,`$1${e.newValue}$2`).replace(e.inlineRe,`$1${e.newValue}$2`),e.versionRe&&(r=r.replace(e.versionRe,`$1${e.newValue}$2`));return n=Kc(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Yc=/^(!?)\/(.*)\/(i?)$/,Xc=e=>e.isHash&&!!e.comment&&!Dr(e.comment),Zc=[...new Set(Object.values(Se)),`actions`,`docker`,`make`],Qc=new Set(Zc),$c={patch:/* @__PURE__ */ new Set([`patch`]),minor:/* @__PURE__ */ new Set([`patch`,`minor`]),major:/* @__PURE__ */ new Set([`patch`,`minor`,`major`])},el={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},tl=(e,t)=>Fn(typeof e==`string`?e:t),nl=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function rl(e){try{return ee.native(e)}catch{return g(e)}}function il(e,t){let n=/* @__PURE__ */ new Map,r=new Set(e);return Ge(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 al(e,t){t&&(e.date=t,e.age=xa(t,{noAffix:!0,shortUnits:!0}))}const ol=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,sl=(e,t,n,r)=>ol(`${e}${t}`,n,r),cl=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?Da(n):`${Da(n)}|${t}`)},ll=e=>Object.values(e).some(e=>Object.keys(e).length>0),ul=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),dl=(e,t)=>Qa.has(e)?$a(t):t;function fl(e,t){return t===`go`?[e,Vi(e)]:t===`docker`?Ds(e):t===`pypi`?[e,ul(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&xe.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let s=Array.from(/* @__PURE__ */ new Set([...fl(e,a),...fl(o,a)])),c=(t,n)=>Xt(t,n,o,e);for(let e of r)if(s.some(t=>c(e,t)))return!1;for(let e of n)if(s.some(t=>c(e,t)))return!0;return!n.size}function pl(e,t){let n=/* @__PURE__ */ new Set;if(e?.length)for(let t of e){let e;try{e=w(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}let r=rl(t);if(e.isFile())n.add(r);else if(e.isDirectory()){try{for(let e of C(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(Se,e.name)||uc(e.name)||mc(e.name))&&n.add(g(m(r,e.name)))}catch{}let e=r.replace(/\\/g,`/`),t=I.some(t=>e.endsWith(`/${t}/workflows`)),i=!t&&I.some(t=>e.endsWith(`/${t}`)),a=t?[f(e)]:i?[e]:I.map(t=>m(e,t));for(let e of a)for(let t of hs(e))n.add(t)}else throw Error(`${t} is neither a file nor directory`)}else{let e=new Set(I),r=[...Object.keys(Se),...sc,...pc,...I],i=/* @__PURE__ */ new Set;for(let[a,o]of il(r,t)){if(e.has(a)){for(let e of hs(o))n.add(e);continue}let t=rl(o);i.has(t)||(i.add(t),n.add(g(o)))}try{for(let e of C(t,{withFileTypes:!0})){let r=uc(e.name)&&!sc.includes(e.name),i=mc(e.name)&&!pc.includes(e.name);e.isFile()&&(r||i)&&n.add(m(t,e.name))}}catch{}}let r=[];for(let e of Array.from(n)){let t=d(e);Object.hasOwn(el,t)&&(r.push(e),n.delete(m(f(e),el[t])))}return r.length?/* @__PURE__ */ new Set([...r,...n]):n}function ml(e,t){i===`win32`&&te(e,0),ne(e,t,i===`win32`?{flag:`r+`}:void 0)}const hl=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function gl(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function _l(e){let t={results:{}},n=/* @__PURE__ */ new Map,r=Object.entries(e).sort(([e],[t])=>Zc.indexOf(e)-Zc.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=hl(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,a]of Object.entries(i)){typeof a.oldPrint==`string`&&(a.old=a.oldPrint),typeof a.newPrint==`string`&&(a.new=a.newPrint),typeof a.oldOrig==`string`&&!vo(a.oldOrig)&&(a.old=e===`go`?Hi(a.oldOrig):a.oldOrig),e===`go`?a.new=Hi(a.new):e===`actions`&&!a.digestOnly&&(a.old=Z(a.old),a.new=Z(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get(hl(e,r))>1?`${o}${e===`actions`?`@`:`:`}${gl(s)}`:o,l=t.results[e]??={};(l[gl(i)]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}function vl(e,t){if(!t)return()=>!0;let n=Yc.exec(t);if(n){let e=new RegExp(n[2],n[3]);return n[1]?t=>!e.test(t):t=>e.test(t)}return e===`docker`?e=>K(Ws(e),t):e===`pypi`?e=>Xo(e,t):e=>K(e,t)}function yl(e,t,n){if(!n)return e;let r=vl(t,n),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>r(e)));if(t===`go`)return{...e,...e.versions&&{versions:i(e.versions)},new:typeof e.new==`string`&&r(e.new)?e.new:``,sameMajorNew:typeof e.sameMajorNew==`string`&&r(e.sameMajorNew)?e.sameMajorNew:``};let a=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[a]:i(e[a]??{})}}async function bl(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await xl(e)}finally{n()}}async function xl(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Pe(n.timeout,`timeout`));let r=n.sockets??50,i=n.timeout??0,o=tl(t.forgeapi,X.forgeapi),s=Jr(t.goproxy),c=Yr(),l=!n.noColor&&(n.color||a.isTTY),p=e=>l?t=>u(e,String(t),{validateStream:!1}):String,h=p(`magenta`),_=p(`green`),v=p(`red`),y,b={execFile:async(e,t,n)=>(await sr())(e,t,n),fetchTimeout:i||5e3,goProbeTimeout:i?Math.max(1,Math.floor(i/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:tl(t.pypiapi,X.pypiapi),jsrApiUrl:tl(t.jsrapi,X.jsrapi),goProxyChain:s,cratesIoUrl:tl(t.cargoapi,X.cargoapi),dockerApiUrl:tl(t.dockerapi,X.dockerapi),doFetch:(e,t)=>(y??=Yn(b))(async()=>{n.verbose&&console.error(`${Ae()} ${h(t?.method||`GET`)} ${e}`);let r=await zn(e,t);return n.verbose&&console.error(`${Ae()} ${r.ok?_(r.status):v(r.status)} ${e}`),r}),noCache:!!n.noCache},x=/* @__PURE__ */ new Map,S=async(e,t,n)=>{let r=`${e}${t}${n}`,i=B(x,r,()=>Ls(e,t,n,b));try{return await i}catch(e){throw x.get(r)===i&&x.delete(r),e}};for(let e of n.modes??[])if(!Qc.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${Zc.join(`,`)}`);let C=n.modes?.length?new Set(n.modes):Qc,ee=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?sn(e.include):void 0,exclude:e.exclude?.length?sn(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Ne(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:dn(e.greatest),prerelease:dn(e.prerelease),release:dn(e.release),patch:dn(e.patch),minor:dn(e.minor),allowDowngrade:dn(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}},w=/* @__PURE__ */ new WeakMap;function te(e,t,n,r=n){let i=B(w,e,()=>/* @__PURE__ */ new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(/* @__PURE__ */ new Set([...fl(n,t),...fl(r,t)])),c=e=>s.some(t=>Oe(t,e)),l=c(e.greatest),u=c(e.prerelease),d=c(e.release),f=c(e.patch),p=c(e.minor),m=c(e.allowDowngrade),h,g;for(let t of e.renovateVersionRules)qt(t,n,r)&&(t.allowedVersions!==void 0&&(g=t.allowedVersions),t.cooldownDays!==void 0&&(h=t.cooldownDays));for(let t of e.overrides)t.include&&s.every(e=>!Oe(e,t.include))||t.exclude&&s.some(e=>Oe(e,t.exclude))||(t.greatest!==void 0&&(l=t.greatest),t.prerelease!==void 0&&(u=t.prerelease),t.release!==void 0&&(d=t.release),t.patch!==void 0&&(f=t.patch),t.minor!==void 0&&(p=t.minor),t.allowDowngrade!==void 0&&(m=t.allowDowngrade),t.cooldownDays!==void 0&&(h=t.cooldownDays));let _=f?$c.patch:p?$c.minor:$c.major;o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:_,allowDowngrade:m,cooldownOverride:h,allowedVersions:g},i.set(a,o)}return o}ln(n.pin);let ne=n.pin??{},T=(e,t,n)=>{let r=e.find(e=>ne[e]);if(r)return{pinnedRange:ne[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}},re=(e,t,n,r,i,a,o)=>{let s=te(e,t,n,r);return{...s,...T(s.names,i,a),cooldownDays:s.cooldownOverride??o}},E={},ie={},ae=/* @__PURE__ */ new Map,oe=/* @__PURE__ */ new Map,O=/* @__PURE__ */ new Map,k=/* @__PURE__ */ new Map,se=/* @__PURE__ */ new Map,A=[],j=(e,t,n)=>{let[r,i]=t.split(`\0`);A.push({mode:e,type:r,name:i,error:n?.message||String(n)})},M=(e,t,n)=>{delete E[e][t],j(e,t,n)},ce={},le=Date.now(),ue=rl(e()),N=e=>e.replace(`${ue}/`,``).replace(`${ue}\\`,``),P=(e,t,n,r,i,a)=>{E[e][sl(t,n,r)]={old:i,oldOrig:a}},de=(e,t,n)=>{if(bo(n))return;let r=So(n);if(vo(n))E.npm[e]={old:To(n,t).version,new:``,oldOrig:n};else if(q(n))E.npm[e]={old:Ro(n),new:``,oldOrig:n};else if(r)oe.set(e,r),E.npm[e]={old:Ro(r.range),new:``,oldOrig:n};else if(yo(n))return;else ie[e]={old:n}},fe=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(ul)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of ye(t))s.has(ul(o))||$(o,e,i,a,r)&&(P(e,r,n,o,Ro(c),c),se.set(sl(r,n,o),l))};for(let[s,l]of De(r,t)){let t=l||{};if(Array.isArray(t)){if(e!==`pypi`)continue;c(t,s)}else if(typeof t==`string`){let[r,o]=t.split(`@`);$(r,e,i,a,s)&&P(e,s,n,r,Ro(o),o)}else{if(e===`npm`&&(s===`overrides`||s===`pnpm.overrides`)){let r=s===`overrides`?[`overrides`]:[`pnpm`,`overrides`],c=(t,l)=>{for(let[u,d]of Object.entries(t))if(typeof d==`string`){let t=$a(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=So(d);if(!$(t,e,i,a,s,e,c?.name??t))continue;let f=[...r,...l,u],p=JSON.stringify(f),m=sl(s,n,t,p);de(m,t,d)}else d&&typeof d==`object`&&!Array.isArray(d)&&c(d,[...l,u])};c(t,[]);continue}for(let[r,l]of Object.entries(t)){if(e===`pypi`&&Array.isArray(l)){c(l,`${s}.${r}`);continue}typeof l==`string`&&(o?.has(dl(s,r))||$(r,e,i,a,s,e,(e===`npm`?So(l):null)?.name??r)&&(e===`npm`?de(sl(s,n,r),r,l):e===`go`?P(e,s,n,r,Hi(l),Z(l)):q(l)&&P(e,s,n,r,Ro(l),l)))}}}},pe=pl(n.files,ue),F=new Map(await L(Array.from(pe).filter(e=>{if(ms(e))return C.has(`actions`)||C.has(`docker`);let t=d(e);return uc(t)?C.has(`docker`):mc(t)?C.has(`make`):C.has(Se[t])}),async e=>{try{return[e,await D(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),me={},he=[],ge=[],_e=[],ve=[],xe=[],I=[],ke=[],je=[],Me={},R=(e,t,n)=>{(Me[e]??=/* @__PURE__ */ new Map).set(t===`.`?``:`|${t}`,n)},Ie=t[tn],Le=Ie&&new Set(Ie.cliKeys),Re=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!Le||Le.has(e)))),z=qe(async e=>{let t={...await pn(e),...Re};return{modeConfig:t,include:sn(t.include??[]),exclude:sn(t.exclude??[]),versionConfig:ee(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Ne(String(t.cooldown)):0}});function ze(e,t){return t.types?.length?t.types:e===`npm`?be:e===`pypi`?Ce:e===`go`?t.indirect?we:we.filter(e=>e!==`indirect`):e===`cargo`?[...Te,...Ee]:[]}let Be=(e,t)=>({modeConfig:e.modeConfig,versionConfig:e.versionConfig,projectDir:t,pin:e.pin,cooldownDays:e.cooldownDays}),Ve=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`?a:-1;continue}if(n===-1||!e[5])continue;let s=e[5].replace(/\s+#.*$/,``).trimEnd(),c=e[5].length-e[5].trimStart().length,l=/^(['"])(.*)\1$/.exec(s.trimStart()),u=l?.[2]??s.trimStart();t.push({selector:o,value:u,lineNumber:r,valueIndex:i.length-e[5].length+c+Number(!!l)})}return t};function He(e,t,n){if(E.docker??={},!$(e.fullImage,`docker`,n.include,n.exclude,`docker`))return;let r=`${e.tag}${e.digest?`@${e.digest}`:``}`,i=ol(t,e.fullImage,r);if(E.docker[i])return;let a=ks(e.tag);(a||e.digest)&&(E.docker[i]={old:a?.version??e.tag,oldOrig:e.tag,...e.digest&&{oldDigest:e.digest},...e.digestOnly&&{digestOnly:!0}},ke.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let Ue=/* @__PURE__ */ new Map,We=/* @__PURE__ */ new Map;for(let e of pe){let t=d(e);if(t===`package.json`){let t=F.get(e);if(!t)continue;try{let n=JSON.parse(t),r=Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages;Array.isArray(r)&&r.some(e=>typeof e==`string`)&&We.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=F.get(e);if(!t)continue;try{let n=ca(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&Ue.set(e,n)}catch{}}}let Ge={cargo:Ue.size,go:Array.from(pe).filter(e=>d(e)===`go.work`).length,npm:(/* @__PURE__ */ new Set([...We.keys(),...Array.from(pe).filter(e=>d(e)===`pnpm-workspace.yaml`)])).size},Ke=(e,t,n,r,i)=>{let a=ce[e]??=[],o=!a.length&&!Ge[e],s=o?`.`:N(t);return a.push({absPath:g(t),content:n,memberPath:s,projectDir:r}),R(e,s,Be(i,r)),o?``:`|${s}`},Je=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},Ye=(e,t,n)=>Ge[e]>1?`${N(t)}:${n}`:n,Xe=(e,t,n,r,i,a,o)=>{let s=Ye(`npm`,e,n.memberPath);R(`npm`,s,Be(a,t)),ve.push({...n,memberPath:s}),fe(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of Ue.size||We.size?/* @__PURE__ */ new Set([...Ue.keys(),...We.keys(),...F.keys()]):F.keys()){if(ms(e)){let t=C.has(`actions`),n=C.has(`docker`),r=F.get(e),i=N(e),a=await z(f(e)),s=/* @__PURE__ */ new Set;me[i]={absPath:e,content:r,fileType:`workflow`,workflowLines:s};let c=[];for(let[e,l]of r.split(/\r?\n/).entries()){if(t){let e=us(l),t=e&&rs(e.value);if(t&&$(t.name,`actions`,a.include,a.exclude,`actions`)){E.actions??={};let n=e.pinnedVersion||/^#\s*(\S+)\s*$/.exec(e.comment)?.[1]||``,r=t.isHash&&n?`${n}@${t.ref}`:t.ref,s=ol(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},I.push({...t,key:s,comment:n,apiUrl:is(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=cs(l,c);if(!r)continue;let{indent:u,key:d}=r,f=d===`container`&&c.length===2&&c[0].key===`jobs`,p=d===`image`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`container`||c.length===4&&c[0].key===`jobs`&&c[2].key===`services`),m=d===`uses`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`steps`||c.length===2&&c[0].key===`runs`&&c[1].key===`steps`);if((f||p||m)&&r.value){let t=Os(r.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(He(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=d(e),n=g(e);if(uc(t)){let n=F.get(e),r=N(e),i=lc(t)?`dockerfile`:`compose`,a=await z(f(e));me[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of js(n,dc(t)))He(e,r,a);continue}if(mc(t)){let t=F.get(e),n=N(e),r=await z(f(e));me[n]={absPath:e,content:t,fileType:`make`},E.make??={};let i={projectDir:f(e),versionConfig:r.versionConfig,filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of yc(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=ol(n,e,a);E.make[t]||(E.make[t]={old:Z(a),oldOrig:a},je.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Cc(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=ol(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=ks(e.ref.tag);if(!a)continue;let o=xc(e.writtenImage,e.ref.tag,e.digest);E.make[t]={old:a.version,oldOrig:e.ref.tag},je.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=Se[t];if(t===`go.work`){E[i]??={};let t=f(n),a=F.get(e),o=Ri(a),[{modeConfig:s,include:c,exclude:l,versionConfig:u,pin:d,cooldownDays:p},m]=await Promise.all([z(t),L(o.use,async e=>{let n=zi(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await D(n,`utf8`)}}catch{return null}},{concurrency:r})]),h=ze(i,s),g=Ye(i,e,`.`),_=Be({modeConfig:s,versionConfig:u,pin:d,cooldownDays:p},t);R(i,g,_),ge.push({file:e,content:a,memberPath:g});let v=/* @__PURE__ */ new Set,y=[];for(let e of m){if(!e)continue;let t=hi(e.content);t&&v.add(t),y.push({...e,parsed:gi(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=Ye(i,e,t);R(i,o,_),he.push({absPath:n,content:r,projectDir:f(n),memberPath:o}),fe(i,a,o===`.`?``:`|${o}`,h,c,l,v)}for(let[e,t]of Object.entries(o.replace))!v.has(e)&&$(e,i,c,l,`replace`)&&P(i,`replace`,g===`.`?``:`|${g}`,e,Hi(t),Z(t));continue}if(t===`go.mod`&&he.some(e=>e.absPath===n)||t===`package.json`&&ve.some(e=>e.absPath===n)||t===`Cargo.toml`&&_e.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){E[i]??={};let t=F.get(e),a=Ue.get(e)??ca(t),o=f(n),s=il([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[u,d,p]=await Promise.all([z(o),s?D(s,`utf8`):null,l?Ma(c,o,`Cargo.toml`,r):[]]),{modeConfig:m,include:h,exclude:g}=u,_=ze(i,m),v=d?Fc(d):/* @__PURE__ */ new Map,y=(e,t)=>{for(let[n,r]of De(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[r,a]of Object.entries(e))if($(r,i,h,g,n)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||r;q(zc(e))&&(o!==r&&ae.set(sl(n,t,r),o),P(i,n,t,r,Hc(v,o,e)??Ro(zc(e)),e))}else typeof a==`string`&&q(zc(a))&&P(i,n,t,r,Hc(v,r,a)??Ro(zc(a)),a)}}}};if(l){let r=Ye(i,e,`.`),s=Be(u,o);R(i,r,s),y(a,r===`.`?``:`|${r}`),_e.push({absPath:n,content:t,memberPath:r});for(let t of p){let n=Ye(i,e,t.memberPath);R(i,n,s),_e.push({...t,memberPath:n}),y(Je(t.absPath,()=>ca(t.content)),`|${n}`)}}else y(a,Ke(i,e,t,o,u));continue}if(t===`package.json`&&We.has(e)){E[i]??={};let t=f(n),a=F.get(e),o=We.get(e),s=Array.isArray(o.workspaces)?o.workspaces:o.workspaces?.packages,c=Array.isArray(s)?s.filter(e=>typeof e==`string`):[],[l,u]=await Promise.all([z(t),Ma(c,t,`package.json`,r)]),d=ze(i,l.modeConfig),p=/* @__PURE__ */ new Set,m=[];for(let e of u){let t=Je(e.absPath,()=>JSON.parse(e.content));typeof t.name==`string`&&t.name&&p.add(t.name),m.push({member:e,pkg:t})}Xe(e,t,{absPath:n,content:a,memberPath:`.`},o,d,l,p);for(let{member:n,pkg:r}of m)Xe(e,t,n,r,d,l,p);continue}if(t===`pnpm-workspace.yaml`){E[i]??={};let a=f(n),o=F.get(e),s=Xa(o),c=m(a,`package.json`),[l,u,d]=await Promise.all([z(a),Fe(D(c,`utf8`)),Ma(s,a,`package.json`,r)]),p=ze(i,l.modeConfig),h=Ye(i,e,t);R(i,h,Be(l,a)),xe.push({absPath:n,content:o,memberPath:h});for(let{type:e,name:t,value:n}of Ja(o))$(t,i,l.include,l.exclude,e,i,So(n)?.name??t)&&de(sl(e,`|${h}`,t),t,n);for(let{selector:e,value:t}of Ve(o)){let n=e.match(/(?:^|>)(?:@[^/>\s]+\/[^@>\s]+|[^@>\s]+)(?=@|>|$)/g)?.at(-1)?.replace(/^>/,``)??e,r=`pnpm-workspace.overrides`;if(!$(e,i,l.include,l.exclude,r,i,n))continue;let a=JSON.stringify(e),o=sl(r,`|${h}`,e,a);O.set(o,n),k.set(o,e),de(o,e,t)}if(u!==null){let t=Je(c,()=>JSON.parse(u));Xe(e,a,{absPath:g(c),content:u,memberPath:`.`},t,p,l)}for(let t of d)Xe(e,a,t,Je(t.absPath,()=>JSON.parse(t.content)),p,l);continue}E[i]??={};let a=f(n),s=await z(a),{modeConfig:c,include:l,exclude:u}=s,p=ze(i,c),h=F.get(e);fe(i,Je(e,()=>i===`npm`?JSON.parse(h):i===`pypi`?ca(h):gi(h)),Ke(i,e,h,a,s),p,l,u)}let Ze=Object.keys(ie).length>0;if(!ll(E)&&!Ze)return{results:{},message:`No dependencies found, nothing to do.`};let Qe=[],V=(e,t)=>O.get(e)??oe.get(e)?.name??dl(e.split(`\0`)[0].split(`|`)[0],t),$e={needsDates:Me.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Me))(Object.keys(E[e]).length||e===`npm`&&Ze)&&Qe.push((async()=>{let i=t.values().next().value,a=e=>{let n=e.indexOf(`|`);return t.get(n===-1?``:e.slice(n))??i},o=/* @__PURE__ */ new Map,s=E[e],l=async(t,r,i)=>{let l=Da(r),{modeConfig:u,versionConfig:d,projectDir:f,pin:p,cooldownDays:m}=a(r),g=s[t],_=oe.get(t),[v,y]=await(e===`npm`?g.oldOrig&&vo(g.oldOrig)?Eo(i,b):go(V(t,i),l,u,$e,b,f,g.old):e===`go`?ji(i,r,g.oldOrig||g.old,f,b,c):e===`cargo`?Pc(ae.get(t)??i,b):Ko(i,b)),x=v;if(x.error)throw Error(x.error);let S=l===`packageManager`?i:x.name,{useGreatest:C,usePre:ee,useRel:w,semvers:te,allowDowngrade:ne,allowedVersions:T,pinnedRange:E,pinNoDowngrade:ie,cooldownDays:D}=re(d,e,S,i,p,u.pinNoDowngrade,m);x=yl(x,e,T);let{old:O,oldOrig:k}=g,A=rr(x,{usePre:ee,useRel:w,useGreatest:C,semvers:te,range:O,mode:e,pinnedRange:E,pinNoDowngrade:ie,allowDowngrade:ne,cooldownDays:D||void 0,now:D?le:void 0}),j=``;if((e===`go`||e===`pypi`)&&A)j=A;else if(e===`cargo`&&A&&k)j=Vc(k,A);else if(A){if(k&&vo(k)){let e=nl.exec(k);e?j=`${e[1]}${A}`:k.startsWith(`jsr:`)&&(j=`jsr:${A}`)}else j=_?`npm:${_.name}@${Lo(O,A,_.range,l)}`:Lo(O,A,k,l)}let M=se.get(t);if(!A||A===O||k&&k===j||M&&!Zo(M,k||O,j)){n.verbose&&A&&A!==O&&console.error(`${Ae()} ${h(`SKIP`)} ${i}: ${k||O} can not be rewritten to ${A}`),delete s[t];return}let ce=(e===`pypi`?x.releases?.[A]?.[0]?.upload_time_iso_8601:e===`go`?x.Time:e===`cargo`?x.time?.[A]:``)||``;g.new=j,k&&vo(k)&&(g.newPrint=A),e===`npm`?o.set(t,{name:V(t,i),promise:_o(x.name,A,u,$e,b,f)}):g.info=e===`pypi`?Wr(x,y,x.info.name):e===`go`?Bi(x.newPath||i):`https://crates.io/crates/${x.name}`,al(g,ce)};if(await L(Object.keys(s),async t=>{let[n,r]=t.split(`\0`);try{await l(t,n,r)}catch(n){M(e,t,n)}},{concurrency:r}),await Promise.all(Array.from(o,async([e,{name:t,promise:n}])=>{let r=await n,i=s[e];i&&(i.info=Wr({repository:r.repository,homepage:r.homepage},null,t),al(i,r.date))})),e===`npm`&&Ze){let e=(await L(Object.entries(ie),async([e,t])=>{try{return await Ho(e,t,b)}catch(t){return j(`npm`,e,t),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:c}of e)al(s[t]={old:ie[t].old,new:n,oldPrint:Er.test(a)?a.substring(0,7):a,newPrint:Er.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`},c)}for(let[t,{date:n}]of Object.entries(s)){if(!n)continue;let[r,i]=t.split(`\0`),{cooldownDays:o,versionConfig:c}=a(r);if(!o&&!c.hasCooldownOverride)continue;let l=e===`npm`?V(t,i):i,u=te(c,e,l,i).cooldownOverride??o;u&&!Mn(n,u,le)&&delete s[t]}})());let et=e=>re(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);I.length&&Qe.push((async()=>{await L(Map.groupBy(I,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?!Xc(e):Dr(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=et(e);return t||!(!n||r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===X.forgeapi?[]:e.filter(Xc).map(e=>e.comment)],c=[];try{s.length&&(c=await zr(t,n,i,b,o?[]:s,!!a.length))}catch(t){for(let n of e)M(`actions`,n.key,t);return}let l=[],u=/* @__PURE__ */ new Map,d=/* @__PURE__ */ new Map,f=/* @__PURE__ */ new Map;for(let e of c){d.set(e.name,e);let t=Nt.parse(e.name)?.version;if(t&&e.isStable!==!1){let n=u.get(t);n||l.push(t),(!n||e.name.length>n.length)&&u.set(t,e.name)}e.commitSha&&f.set(e.commitSha,e.name)}let p=qe(e=>as(t,n,i,e,b)),m=qe(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===X.forgeapi?`commits`:`branches`,o=await Sr(`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,b);if(o.status===404)return``;if(!o.ok)throw Error(`Unable to fetch ${n}/${i}@${e}`);let s=await o.json();return typeof s?.sha==`string`?s.sha:typeof s?.id==`string`?s.id:typeof s?.commit?.sha==`string`?s.commit.sha:typeof s?.commit?.id==`string`?s.commit.id:``});async function h(e,t){let r={...e,cooldownDays:void 0,now:void 0},a=/* @__PURE__ */ new Set;for(let o=0;o<100;o++){let o=tr({},a.size?t.filter(e=>!a.has(e)):t,r);if(!o)return null;let s=u.get(o),c=d.get(s).commitSha;if(!e.cooldownDays)return{version:o,tag:s,commitSha:c,date:``};let l=c?await p(c):``;if(l===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${s}`);if(Mn(l,e.cooldownDays,e.now))return{version:o,tag:s,commitSha:c,date:l};a.add(o)}return null}let g=async e=>{let{key:t,host:r,ref:a,comment:o,isHash:s}=e,c=E.actions[t],u=`https://${r||`github.com`}/${n}/${i}`,g=a;if(s?g=o||f.get(a)||f.entries().find(([e])=>e.startsWith(a))?.[1]||``:Dr(a)||(g=``),!g){delete E.actions[t];return}let{useGreatest:_,usePre:v,useRel:y,semvers:b,allowDowngrade:x,allowedVersions:S,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w}=et(e),te=Dr(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:Nt,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w||void 0,now:w?le:void 0},S?l.filter(vl(`actions`,S)):l):null;if(!te){if(!s||!o){delete E.actions[t];return}let e=await m(o);if(!e||e.startsWith(a)||a.startsWith(e)){delete E.actions[t];return}c.old=o,c.new=o,c.oldDigest=a,c.newDigest=e,c.digestOnly=!0,c.info=u,al(c,await Fe(p(e)));return}let{tag:ne,commitSha:T,date:re}=te;if(s){if(!T||T.startsWith(a)||a.startsWith(T)){delete E.actions[t];return}c.old=a,c.new=T.substring(0,a.length),c.oldPrint=g,c.newPrint=ne}else{let e=os(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,al(c,re||(T?await Fe(p(T)):``))};await L(e,async e=>{try{await g(e)}catch(t){M(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(E.actions).length||delete E.actions})()),ke.length&&Qe.push((async()=>{await L(Map.groupBy(ke,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete E.docker[e.key];return}let n;try{let[t]=await Hs(e,b);n=t}catch(e){for(let n of t)M(`docker`,n.key,e);return}await L(t,async t=>{try{let r=E.docker[t.key],i=r.oldOrig||r.old,{semvers:a,usePre:o,useRel:s,allowedVersions:c,pinnedRange:l,cooldownDays:u}=re(t.versionConfig,`docker`,e,e,t.filePin,void 0,t.fileCooldownDays),d=yl(n,`docker`,c).tags,f=!t.ref.digestOnly&&ks(i)?ec(d,i,a,u||void 0,u?le:void 0,l,o,s):null,p=f?.newTag??i;if(t.ref.digest){let e=await S(t.ref.namespace,t.ref.repo,p);if(!e||e===t.ref.digest&&!f){delete E.docker[t.key];return}r.oldDigest=t.ref.digest,r.newDigest=e,r.digestOnly=t.ref.digestOnly}else if(!f){delete E.docker[t.key];return}r.new=p,r.info=fc(t.ref),al(r,f?.date)}catch(e){M(`docker`,t.key,e)}},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),je.length&&Qe.push((async()=>{await L(je,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,allowedVersions:o,pinnedRange:s,pinNoDowngrade:l,cooldownDays:u}=re(e.versionConfig,e.kind,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays),d={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,pinNoDowngrade:l,cooldownDays:u||void 0,now:u?le:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await Oc(e.installPath,e.projectDir,b,c);if(!t){delete E.make[e.key];return}let[n]=await ji(t,`tool`,Z(e.version),e.projectDir,b,c),r=yl(n,`go`,o),i=rr(r,{...d,mode:`go`,range:Z(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??ii(t,i),s=`${a}${e.installPath.slice(t.length)}`,l=Vr(i,e.version);if(s===e.installPath&&l===e.version){delete E.make[e.key];return}e.newSpec=`${s}@${l}`,f.new=l,f.info=Bi(a),al(f,r.Time)}else{let[t]=await Hs(e.image.ref.fullImage,b),n=yl(t,`docker`,o).tags,r=ec(n,e.image.ref.tag,d.semvers,d.cooldownDays,d.now,d.pinnedRange,d.usePre,d.useRel);if(!r){delete E.make[e.key];return}let i=e.image.digest?await S(e.image.ref.namespace,e.image.ref.repo,r.newTag):null;if(e.image.digest&&!i){delete E.make[e.key];return}e.newSpec=xc(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=fc(e.image.ref),al(f,r.date)}}catch(t){M(`make`,e.key,t)}},{concurrency:r}),Object.keys(E.make).length||delete E.make})());try{await Promise.all(Qe)}finally{n.noCache||await Cn()}if(!ll(E))return A.length?{results:{},errors:A}:{results:{},message:`All dependencies are up to date.`};let tt=(e,t)=>{let n=e.split(`
|
|
74
|
+
`),r=new Map(Ve(e).map(e=>[e.selector,e]));for(let[e,i]of k){let a=E.npm?.[e],o=r.get(i);if(!a||!cl(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(`
|
|
75
|
+
`)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=ka(E[e],r.memberPath);Object.keys(t).length&&ml(r.absPath,n(r.content,t,r))}},t=new Map(I.map(e=>[e.key,e.comment])),n=e=>Map.groupBy(e,([e])=>e.split(`\0`)[0]),r=n(Object.entries(E.actions??{})),i=n(Object.entries(E.docker??{})),a=Map.groupBy(je.filter(e=>e.newSpec&&E.make?.[e.key]),e=>e.key.split(`\0`)[0]);for(let n of Object.keys(E).sort((e,t)=>(e===`docker`)-+(t===`docker`)))if(Object.keys(E[n]).length){if(n===`actions`){for(let[e,n]of r){let{absPath:r,content:i}=me[e]||{};if(!r)continue;let a=fs(i,n.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:Er.test(n.old)?n.newPrint:void 0}}));ml(r,a),me[e].content=a}continue}if(n===`docker`){for(let[e,t]of i){let n=me[e];if(!n)continue;let{absPath:r,content:i,fileType:a,workflowLines:o}=n;ml(r,(a===`dockerfile`?ic:a===`compose`?ac:(e,t)=>e.split(`
|
|
76
|
+
`).map((e,n)=>o.has(n)?oc(e,t):e).join(`
|
|
77
|
+
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=me[e];n&&ml(n.absPath,kc(n.content,t.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}continue}if(n===`go`){for(let e of[...he,...ce.go??[]]){let t=ka(E[n],e.memberPath);if(!Object.keys(t).length)continue;let[r,i]=Ni(e.content,t);r!==e.content&&ml(e.absPath,r),Li(e.projectDir,i,ml)}for(let e of ge){let t=Object.fromEntries(Object.entries(ka(E[n],e.memberPath)).filter(([e])=>Da(e.split(`\0`)[0])===`replace`));if(Object.keys(t).length){let[n]=Ni(e.content,t);n!==e.content&&ml(e.file,n)}}}else n===`cargo`?e(n,[..._e,...ce.cargo??[]],Jc):n===`npm`?(e(n,xe,(e,t,n)=>tt(Ya(e,t),n.memberPath)),e(n,[...ve,...ce.npm??[]],Do)):e(n,ce[n]??[],ns)}}let nt=_l(E);return A.length&&(nt.errors=A),nt}export{na as n,tn as r,bl as t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.1.1",
|
|
4
4
|
"description": "CLI to update npm, uv, cargo, go, docker and actions dependencies",
|
|
5
5
|
"author": "silverwind",
|
|
6
6
|
"repository": {
|
|
@@ -26,6 +26,9 @@
|
|
|
26
26
|
"docker",
|
|
27
27
|
"makefile"
|
|
28
28
|
],
|
|
29
|
+
"bin": {
|
|
30
|
+
"updates": "dist/index.js"
|
|
31
|
+
},
|
|
29
32
|
"exports": {
|
|
30
33
|
".": {
|
|
31
34
|
"import": "./dist/api.js",
|
|
@@ -42,22 +45,19 @@
|
|
|
42
45
|
"bun": "*"
|
|
43
46
|
},
|
|
44
47
|
"devDependencies": {
|
|
45
|
-
"@types/node": "26.
|
|
48
|
+
"@types/node": "26.6.1",
|
|
46
49
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
47
|
-
"@vitest/coverage-v8": "
|
|
48
|
-
"eslint": "10.
|
|
49
|
-
"eslint-config-silverwind": "
|
|
50
|
+
"@vitest/coverage-v8": "5.0.1",
|
|
51
|
+
"eslint": "10.10.0",
|
|
52
|
+
"eslint-config-silverwind": "149.0.0",
|
|
50
53
|
"timerel": "5.9.0",
|
|
51
|
-
"tsdown": "0.
|
|
52
|
-
"tsdown-config-silverwind": "4.
|
|
54
|
+
"tsdown": "0.23.0",
|
|
55
|
+
"tsdown-config-silverwind": "4.1.1",
|
|
53
56
|
"typescript": "6.0.3",
|
|
54
|
-
"typescript-config-silverwind": "20.0.
|
|
55
|
-
"updates-config-silverwind": "4.0.
|
|
56
|
-
"versions": "15.
|
|
57
|
-
"vitest": "
|
|
58
|
-
"vitest-config-silverwind": "
|
|
59
|
-
},
|
|
60
|
-
"bin": {
|
|
61
|
-
"updates": "dist/index.js"
|
|
57
|
+
"typescript-config-silverwind": "20.0.4",
|
|
58
|
+
"updates-config-silverwind": "4.0.6",
|
|
59
|
+
"versions": "15.4.0",
|
|
60
|
+
"vitest": "5.0.1",
|
|
61
|
+
"vitest-config-silverwind": "12.0.3"
|
|
62
62
|
}
|
|
63
63
|
}
|