updates 18.1.0 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/api.d.ts +13 -5
- package/dist/api.js +1 -1
- package/dist/dns.js +1 -1
- package/dist/index.js +1 -1
- package/dist/prewarm.js +1 -1
- package/dist/shared.js +31 -24
- package/package.json +13 -13
package/README.md
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
- `pyproject.toml` - uv dependencies
|
|
12
12
|
- `go.mod`, `go.work` - go dependencies
|
|
13
13
|
- `Cargo.toml` - rust dependencies, including workspaces
|
|
14
|
-
- `.{github,gitea,forgejo}/workflows` - actions and docker images
|
|
15
|
-
- `
|
|
14
|
+
- `.{github,gitea,forgejo}/{workflows,actions}`, `workflow-templates`, `action.{yml,yaml}` - actions and docker images
|
|
15
|
+
- `{Docker,Container}file*`, `*.{Docker,Container}file`, `compose*.{yml,yaml}`, `docker-*.{yml,yaml}` - docker images
|
|
16
16
|
- `Makefile`, `*.mk` - go tool versions in `go install` paths and docker image tags
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
@@ -31,6 +31,8 @@ npx updates -u && npm i
|
|
|
31
31
|
|:-|:-|
|
|
32
32
|
|`-u, --update`|Update versions and write dependency file|
|
|
33
33
|
|`-f, --file <path,...>`|File or directory to use, defaults to current directory|
|
|
34
|
+
|`-N, --include-paths <glob,...>`|Only use paths matching the globs|
|
|
35
|
+
|`-X, --exclude-paths <glob,...>`|Skip paths matching the globs|
|
|
34
36
|
|`-M, --modes <mode,...>`|Which modes to enable. Either `npm`, `pypi`, `go`, `cargo`, `actions`, `docker`, `make`. Default: all|
|
|
35
37
|
|`-i, --include <dep,...>`|Include only given dependencies|
|
|
36
38
|
|`-e, --exclude <dep,...>`|Exclude given dependencies|
|
|
@@ -46,6 +48,8 @@ npx updates -u && npm i
|
|
|
46
48
|
|`-s, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 50|
|
|
47
49
|
|`-T, --timeout <ms>`|Network request timeout in ms, go probes use half. Default: 5000|
|
|
48
50
|
|`-r, --registry <url>`|Override npm registry URL|
|
|
51
|
+
|`-L, --login <host>`|Verify and store a forge API token|
|
|
52
|
+
|`-O, --logout <host>`|Remove a stored forge API token|
|
|
49
53
|
|`-I, --indirect`|Include indirect Go dependencies|
|
|
50
54
|
|`-E, --error-on-outdated`|Exit with code 2 when updates are available and 0 when not|
|
|
51
55
|
|`-U, --error-on-unchanged`|Exit with code 0 when updates are available and 2 when not|
|
|
@@ -82,7 +86,7 @@ Mirrors the [CLI options](#options) in camelCase, with `--file` as `files`, plus
|
|
|
82
86
|
- `overrides` *Array\<Override>*: Per-package option overrides (see [Overrides](#overrides))
|
|
83
87
|
- `inherit` *object*: Fields to inherit from other tools' configs (see [Renovate config](#renovate-config))
|
|
84
88
|
|
|
85
|
-
`include`, `exclude` and the `dep` options take `Array<string | RegExp>`, `pin` takes a `Record<string, string>` keyed by exact dependency name, `files` and `
|
|
89
|
+
`include`, `exclude` and the `dep` options take `Array<string | RegExp>`, `pin` takes a `Record<string, string>` keyed by exact dependency name, `files`, `modes`, `includePaths` and `excludePaths` take `Array<string>`.
|
|
86
90
|
|
|
87
91
|
### Overrides
|
|
88
92
|
|
|
@@ -154,7 +158,7 @@ const output = await updates({
|
|
|
154
158
|
|`GONOPROXY`|Comma-separated list of Go module patterns to fetch directly, bypassing the proxy|
|
|
155
159
|
|`GOPRIVATE`|Fallback for `GONOPROXY` when not set|
|
|
156
160
|
|
|
157
|
-
A host in `UPDATES_FORGE_TOKENS` wins over
|
|
161
|
+
`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.
|
|
158
162
|
|
|
159
163
|
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.
|
|
160
164
|
|
package/dist/api.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ type Config = {
|
|
|
19
19
|
pin?: Record<string, string>;
|
|
20
20
|
/** File or directory paths to use */
|
|
21
21
|
files?: Array<string>;
|
|
22
|
+
/** Only use paths matching these globs */
|
|
23
|
+
includePaths?: Array<string>;
|
|
24
|
+
/** Skip paths matching these globs, replacing `defaultExcludePaths` */
|
|
25
|
+
excludePaths?: Array<string>;
|
|
22
26
|
/** Which modes to enable */
|
|
23
27
|
modes?: Array<string>;
|
|
24
28
|
/** Update versions and write dependency files */
|
|
@@ -114,9 +118,13 @@ type Output$1 = {
|
|
|
114
118
|
message?: string;
|
|
115
119
|
};
|
|
116
120
|
//#endregion
|
|
121
|
+
//#region utils/files.d.ts
|
|
122
|
+
/** renovate's `:ignoreModulesAndTests` preset from its `config:recommended` */
|
|
123
|
+
export declare const defaultExcludePaths: string[];
|
|
124
|
+
//#endregion
|
|
117
125
|
//#region api.d.ts
|
|
118
126
|
/** A dependency whose lookup failed. Every other dependency is still resolved and written. */
|
|
119
|
-
type DepError = {
|
|
127
|
+
export type DepError = {
|
|
120
128
|
mode: string;
|
|
121
129
|
/** The dependency type, or the file path for the file-scoped modes, as in `results` */
|
|
122
130
|
type: string;
|
|
@@ -124,10 +132,10 @@ type DepError = {
|
|
|
124
132
|
error: string;
|
|
125
133
|
};
|
|
126
134
|
/** `errors` is absent unless a lookup failed, keeping a clean run's shape unchanged. */
|
|
127
|
-
type Output = Output$1 & {
|
|
135
|
+
export type Output = Output$1 & {
|
|
128
136
|
errors?: Array<DepError>;
|
|
129
137
|
};
|
|
130
|
-
type UpdatesOptions = Config & {
|
|
138
|
+
export type UpdatesOptions = Config & {
|
|
131
139
|
forgeapi?: string;
|
|
132
140
|
pypiapi?: string;
|
|
133
141
|
jsrapi?: string;
|
|
@@ -135,6 +143,6 @@ type UpdatesOptions = Config & {
|
|
|
135
143
|
cargoapi?: string;
|
|
136
144
|
dockerapi?: string;
|
|
137
145
|
};
|
|
138
|
-
declare function updates(opts?: UpdatesOptions): Promise<Output>;
|
|
146
|
+
export declare function updates(opts?: UpdatesOptions): Promise<Output>;
|
|
139
147
|
//#endregion
|
|
140
|
-
export { type Config, type Dep,
|
|
148
|
+
export { type Config, type Dep, type Deps, type DepsByMode, type Override, cliBaseConfig as cliConfigBaseDir };
|
package/dist/api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{i as e,n as t,t as n}from"./shared.js";export{e as cliConfigBaseDir,t as defaultExcludePaths,n as updates};
|
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/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{r as e}from"./shared.js";import{argv as t,exit as n,stderr as r,stdout as i}from"node:process";for(let e of[i,r])e._handle?.setBlocking?.(!0);n(await e(t.slice(2),{stdout:e=>i.write(e),stdoutIsTTY:i.isTTY,moduleUrl:import.meta.url}));export{};
|
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`:/^(?:[Dd]ocker|[Cc]ontainer)file|\.(?:[Dd]ocker|[Cc]ontainer)file$/.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,15 +1,20 @@
|
|
|
1
|
-
import{cwd as e,env as t,
|
|
2
|
-
`)}return i}const je={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Me(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=je[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Ne(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function F(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function Pe(e){try{return await e}catch{return null}}const I=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function L(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(I).join(`|`)}const Fe=new WeakMap;var R=class extends RegExp{constructor(e,t,n){super(e,n),Fe.set(this,t)}test(e){return Fe.get(this)(e)}};function Ie(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 Le(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 Re(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Ie(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 z(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(I(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=Le(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=Re(e.slice(i+1,a)).map(z);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=Le(e,i+1,`(`,`)`);if(o===-1)r(I(a));else{let r=Ie(e.slice(i+2,o)).map(z),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(I(a))}return{source:t,tokens:n}}function ze(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 Be(e){if(e instanceof RegExp)return/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e;let t=/^(!?)\/(.*)\/(i?)$/.exec(e);if(t)try{let n=new RegExp(t[2],t[3]);return t[1]?new R(e,e=>!n.test(e)):n}catch{}let n=0;for(;e[n]===`!`&&e[n+1]!==`(`;)n++;let r=n%2==1,{source:i,tokens:a}=z(e.slice(n)),o=e=>ze(a,e);return new R(`^${i}$`,r?e=>!o(e):o,`i`)}async function Ve(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 He(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 B(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function V(e,t,n){let r=e.get(t);if(r!==void 0||e.has(t))return r;let i=n();return e.set(t,i),i}function Ue(e){let t=new Map;return n=>V(t,n,()=>e(n))}const We=`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?(${We})\\.(${We})\\.(${We})(?:-((?:${Ke})(?:\\.(?:${Ke}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Je=new Map;function H(e){return typeof e==`string`?V(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`?V($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 V(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 ht(e,t){let n=H(e);return!!(n&&mt(n,t))}function gt(e){return typeof e==`string`&&ft(e)?e:null}const _t=`v?(?:(\\d+)!)?(\\d+(?:\\.\\d+)*)(?:[-_.]?(a|b|c|rc|alpha|beta|pre|preview)[-_.]?(\\d+)?)?(?:-(\\d+)|[-_.]?(post|rev|r)[-_.]?(\\d+)?)?(?:[-_.]?(dev)[-_.]?(\\d+)?)?(?:\\+([a-z0-9]+(?:[-_.][a-z0-9]+)*))?`,vt=RegExp(`^${_t}$`,`i`),yt=RegExp(_t,`i`),bt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},xt=new Map;function q(e){return typeof e==`string`?V(xt,e,()=>{let t=vt.exec(e.trim());if(!t)return null;let n=t[3]?.toLowerCase();return{epoch:t[1]?Number(t[1]):0,release:t[2].split(`.`).map(Number),pre:n?[bt[n]??n,Number(t[4]??0)]:null,post:t[5]===void 0?t[6]===void 0?null:Number(t[7]??0):Number(t[5]),dev:t[8]===void 0?null:Number(t[9]??0),local:t[10]?t[10].toLowerCase().split(/[._-]/).map(e=>/^\d+$/.test(e)?Number(e):e):null,version:e.trim()}}):null}function St(e){return q(e)??q(yt.exec(e)?.[0]??``)}const Ct=e=>!!e.pre||e.dev!==null;function wt(e,t){if(!e||!t)return e?1:t?-1:0;let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=typeof e[r]==`number`;if(n!==(typeof t[r]==`number`))return n?1:-1;if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length-t.length}function Tt(e,t){if(e.epoch!==t.epoch)return e.epoch-t.epoch;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++){let n=(e.release[r]??0)-(t.release[r]??0);if(n)return n}let r=e.pre?0:e.post===null&&e.dev!==null?-1:1,i=t.pre?0:t.post===null&&t.dev!==null?-1:1;if(r!==i)return r-i;if(e.pre&&t.pre){if(e.pre[0]!==t.pre[0])return e.pre[0]<t.pre[0]?-1:1;if(e.pre[1]!==t.pre[1])return e.pre[1]-t.pre[1]}if((e.post??-1)!==(t.post??-1))return(e.post??-1)-(t.post??-1);let a=e.dev??1/0,o=t.dev??1/0;return a===o?wt(e.local,t.local):a<o?-1:1}function Et(e,t){if(e.epoch!==t.epoch)return`major`;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++)if((e.release[r]??0)!==(t.release[r]??0))return r===0?`major`:r===1?`minor`:`patch`;return null}function Dt(e,t){let n=Tt(e,t);if(n===0)return null;let r=Et(e,t);return Ct(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Ot=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,J={parse:U,parseRange:e=>U(Ot.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},kt=new Map;function At(e){return V(kt,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 jt={...J,parse:At,parseRange:At,isRangePrerelease:e=>!!At(e)?.prerelease.length},Mt={parse:q,parseRange:St,compare:Tt,diff:Dt,isPrerelease:Ct,isRangePrerelease:e=>{let t=St(e);return!!(t&&Ct(t))},satisfiesRange:({release:e},t)=>ht(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Nt=/[A-Za-z_$]/,Pt=/[A-Za-z0-9_$]/;function Ft(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,promisify as l,stripVTControlCharacters as u,styleText as d}from"node:util";import{basename as f,dirname as p,isAbsolute as m,join as h,relative as g,resolve as _,sep as v}from"node:path";import{accessSync as y,existsSync as b,globSync as x,lstatSync as ee,readFile as S,readFileSync as C,readdirSync as w,realpathSync as te,statSync as T,truncateSync as E,writeFileSync as ne}from"node:fs";import{pathToFileURL as D}from"node:url";import{text as re}from"node:stream/consumers";import{access as ie,mkdir as ae,readFile as oe,readdir as O,realpath as k,rename as se,stat as A,unlink as j,utimes as M,writeFile as ce}from"node:fs/promises";import{AsyncLocalStorage as le}from"node:async_hooks";import{Buffer as ue}from"node:buffer";import{setTimeout as de}from"node:timers/promises";import{createHash as fe}from"node:crypto";import{homedir as N}from"node:os";import{execFile as pe}from"node:child_process";function me(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 P=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,he=/^(\s*\()([^)]*)(\)\s*)$/,ge=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,_e=/* @__PURE__ */ new Set([`===`,`==`,`>=`,`~=`]),ve=/^v?\d[0-9a-z.!+_-]*$/i;function ye(e){let t=[];for(let n of e.split(`,`)){let e=ge.exec(n);if(!e)return null;let[r,i,a,o,s,c]=e;t.push({lead:i,op:a,sep:o,version:s,trail:c})}return t}function be(e){let t=e.indexOf(`;`),n=P.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[r,i,a,o,s,c,l]=n,u=he.exec(l);return{name:a,extras:s,specifiers:ye(u?u[2]:l),marker:t===-1?``:e.slice(t),head:`${i}${a}${o}${s}${c}`,open:u?.[1]??``,close:u?.[3]??``}}function xe({head:e,open:t,close:n,marker:r},i){return`${e}${t}${i.map(({lead:e,op:t,sep:n,version:r,trail:i})=>`${e}${t}${n}${r}${i}`).join(`,`)}${n}${r}`}function Se(e){return e.find(({op:e,version:t})=>_e.has(e)&&ve.test(t))}function Ce(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=be(n);if(!e?.specifiers)continue;let r=Se(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const we=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],Te=[`node`,`deno`,`bun`],Ee=[`.github`,`.gitea`,`.forgejo`],De={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Oe=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],ke=[`deps`,`indirect`,`replace`,`tool`],Ae=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],je=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function Me(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 Ne(e,t){if(t===!0)return!0;if(!(t instanceof Set))return!1;for(let n of t)if(n.test(e))return!0;return!1}function F(e){return e.split(`,`).filter(Boolean)}function Pe(){let e=/* @__PURE__ */ new Date;return(/* @__PURE__ */ new Date(e.getTime()-e.getTimezoneOffset()*6e4)).toISOString().replace(`T`,` `).slice(0,-1)}function Fe(e,t){let n=Array(e[0].length).fill(0),r=Array(e.length);for(let i=0;i<e.length;i++){let a=e[i],o=Array(a.length);for(let e=0;e<a.length;e++){let r=t(a[e]);o[e]=r,r>n[e]&&(n[e]=r)}r[i]=o}let i=``;for(let t=0;t<e.length;t++){let a=e[t],o=a.length-1;for(let e=0;e<=o;e++)if(e>0&&(i+=` `),i+=a[e],e!==o){let a=n[e]-r[t][e];a>0&&(i+=` `.repeat(a))}t<e.length-1&&(i+=`
|
|
2
|
+
`)}return i}const Ie={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Le(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[e,n,r]=t,i=Ie[r.toLowerCase()];if(i)return Number(n)*i}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Re(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function I(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function ze(e){try{return await e}catch{return null}}const L=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function R(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(L).join(`|`)}const Be=/* @__PURE__ */ new WeakMap;var Ve=class extends RegExp{constructor(e,t,n){super(e,n),Be.set(this,t)}test(e){return Be.get(this)(e)}};function He(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 Ue(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 We(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return He(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 z(e){let t=``,n=[],r=e=>{t+=e,n.push({kind:`char`,matcher:RegExp(`^(?:${e})$`,`i`)})};for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length)r(L(e[++i]));else if(a===`*`&&e[i+1]!==`(`){let r=e[i+1]===`*`;for(;e[i+1]===`*`;)i++;r&&e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else if(a===`?`&&e[i+1]!==`(`)r(`[^/]`);else if(a===`[`){let t=e.indexOf(`]`,i+1);if(t===-1)r(`\\[`);else{let n=e.slice(i+1,t);n.startsWith(`!`)&&(n=`^${n.slice(1)}`),r(`[${n.replaceAll(`\\`,`\\\\`)}]`),i=t}}else if(a===`{`){let a=Ue(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=We(e.slice(i+1,a)).map(z);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=Ue(e,i+1,`(`,`)`);if(o===-1)r(L(a));else{let r=He(e.slice(i+2,o)).map(z),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(L(a))}return{source:t,tokens:n}}function Ge(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 Ke(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 Ve(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}=z(e.slice(n)),o=e=>Ge(a,e);return new Ve(`^${i}$`,r?e=>!o(e):o,`i`)}async function qe(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=p(n);if(r===n)return null;n=r}}function B(e,t){let n=e;for(;;){let e=t(n);if(e)return e;let r=p(n);if(r===n)return null;n=r}}function V(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function H(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 Je(e){let t=/* @__PURE__ */ new Map;return n=>H(t,n,()=>e(n))}const Ye=`0|[1-9]\\d*`,Xe=/^(?:0|[1-9]\d*)$/,Ze=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,Qe=RegExp(`^v?(${Ye})\\.(${Ye})\\.(${Ye})(?:-((?:${Ze})(?:\\.(?:${Ze}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),$e=/* @__PURE__ */ new Map;function U(e){return typeof e==`string`?H($e,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 et(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 tt(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function nt(e,t){let n=tt(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=et(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function rt(e){return U(e)?.version??null}function W(e){return U(e)}const it=/* @__PURE__ */ new Map,at=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function ot(e){return typeof e==`string`?H(it,e,()=>{let t=at.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function st(e,t){let n=U(e),r=U(t);return!n||!r?null:ct(n,r)}function ct(e,t){let n=nt(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(tt(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 lt(e,t){let n=U(e),r=U(t);return n&&r?nt(n,r):null}function ut(e,t){return(lt(e,t)??-1)>0}function dt(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||!Xe.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])&&!U(`${r.join(`.`)}${t[2]??``}${t[3]??``}`)?null:{major:r[0],minor:r[1],patch:r[2],suffix:`${t[2]??``}${t[3]??``}`}}function G(e,t,n,r,i=``){let a=U(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function K(...e){return e.every(e=>e!==null)?e:null}function ft(e,t){let n=nt(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 q(e,t,n){return G(`<`,e,t,n,`-0`)}function pt(e,t){if(e.major===null)return t===`>`||t===`<`?K(q(0,0,0)):[];let n=e.major,r=e.minor??0,i=e.patch??0;if(t===`^`||t===`~`){let a=G(`>=`,n,r,i,e.suffix);return e.minor===null?K(a,q(n+1,0,0)):t===`~`?K(a,q(n,r+1,0)):n===0?e.patch!==null&&r===0?K(a,q(0,0,i+1)):K(a,q(0,r+1,0)):K(a,q(n+1,0,0))}return e.minor!==null&&e.patch!==null?K(G(t||`=`,n,r,i,e.suffix)):!t||t===`=`?e.minor===null?K(G(`>=`,n,0,0),q(n+1,0,0)):K(G(`>=`,n,r,0),q(n,r+1,0)):t===`>`?e.minor===null?K(G(`>=`,n+1,0,0)):K(G(`>=`,n,r+1,0)):t===`<=`?e.minor===null?K(q(n+1,0,0)):K(q(n,r+1,0)):t===`<`?e.minor===null?K(q(n,0,0)):K(q(n,r,0)):K(G(`>=`,n,r,0))}function mt(e,t){let n=dt(e),r=dt(t);if(!n||!r)return null;let i=[];if(n.major!==null){let e=G(`>=`,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?q(r.major+1,0,0):r.patch===null?q(r.major,r.minor+1,0):G(`<=`,r.major,r.minor,r.patch,r.suffix);return a?(i.push(a),i):null}function ht(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return mt(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&&dt(t[2]),i=n?pt(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const gt=/* @__PURE__ */ new Map;function _t(e){return H(gt,e,()=>{let t=e.split(`||`).map(e=>ht(e.trim()));return t.some(e=>e===null)?null:t})}function vt(e,t){return t.some(t=>!ft(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 yt(e,t){return!!_t(t)?.some(t=>vt(e,t))}function J(e,t){let n=U(e);return!!(n&&yt(n,t))}function bt(e){return typeof e==`string`&&_t(e)?e:null}const xt=`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]+)*))?`,St=RegExp(`^${xt}$`,`i`),Ct=RegExp(xt,`i`),wt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},Tt=/* @__PURE__ */ new Map;function Y(e){return typeof e==`string`?H(Tt,e,()=>{let t=St.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?[wt[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 Et(e){return Y(e)??Y(Ct.exec(e)?.[0]??``)}const Dt=e=>!!e.pre||e.dev!==null;function Ot(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 kt(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?Ot(e.local,t.local):a<o?-1:1}function At(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 jt(e,t){let n=kt(e,t);if(n===0)return null;let r=At(e,t);return Dt(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Mt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,X={parse:W,parseRange:e=>W(Mt.exec(e)?.[0]??``)??W(ot(e)?.version??``),compare:nt,diff:ct,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:yt},Nt=/* @__PURE__ */ new Map;function Pt(e){return H(Nt,e,()=>{let t=e.trim().replace(/^v/i,``);return(W(t)??W(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?W(ot(t)?.version??``):null)})}const Ft={...X,parse:Pt,parseRange:Pt,isRangePrerelease:e=>!!Pt(e)?.prerelease.length},It={parse:Y,parseRange:Et,compare:kt,diff:jt,isPrerelease:Dt,isRangePrerelease:e=>{let t=Et(e);return!!(t&&Dt(t))},satisfiesRange:({release:e},t)=>J(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Lt=/[A-Za-z_$]/,Rt=/[A-Za-z0-9_$]/;function zt(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 Pe(D(n,s,s)),{etag:a,body:o}}catch{return null}}const vn=new Set;let yn=0;function bn(e,t,r,i=pn){let a=(async()=>{try{await V(mn,i,()=>T(i,{recursive:!0}))}catch{mn.delete(i);return}let a;try{let o=f(i,`${hn(e)}.cache`);a=`${o}.${n}-${yn++}.tmp`,await O(a,`${t}\n${r}`),await ae(a,o)}catch{a&&await Pe(se(a))}})();vn.add(a),(async()=>{await a,vn.delete(a)})()}async function xn(e=pn,t=4096){for(;vn.size;)await Promise.all(vn);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()-gn,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>Pe(se(e.path))))}catch{}}var Sn=`18.1.0`;function Cn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const wn=Sn,Tn=`https://api.github.com`,Y={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:Tn,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},X=e=>e[0]===`v`?e.substring(1):e,En=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Dn(e,t){return{headers:{"user-agent":`updates/${wn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const On=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function kn(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&On.has(t)}async function An(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=kn(t),n}}async function jn(e,t,n={}){let r=Bn(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 Mn=e=>t=>JSON.stringify(e(JSON.parse(t))),Nn=new WeakMap;function Pn(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=V(Nn,t,()=>new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await _n(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await jn(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&&bn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function Fn(e,t,n={},r,i=e){return Pn(e,t,n,r,i,!1)}function In(e,t,n={},r){return Pn(e,t,n,r,e,!0)}async function Z(e,t,n,r,i=!0){let a=V(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 Ln=new ce,Rn=e=>Math.max(e.concurrency||50,1),zn=new WeakMap;function Bn(e){return V(zn,e,()=>{let t=Rn(e),n=0,r=0,i=[];return async e=>{if(Ln.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await Ln.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function Vn(e,t=J){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const Hn=new WeakMap,Un=new WeakMap;function Wn(e,t,n,r,i=J){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?Hn:Un;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 Gn(e){return tt(e)?.version??``}function Kn(e,t,{range:n,semvers:r,useGreatest:i,usePre:a,useRel:o,latest:s,pinnedRange:c,pinNoDowngrade:l,allowDowngrade:u,cooldownDays:d,now:f,getVersionDate:p,versioning:m=J}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=Wn(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&&!Cn(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 qn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Jn(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`?Mt:J,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[Gn(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=Gn(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=Wn(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=Gn(e),o=f.parse(e),c=qn(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||!Cn(i,l,u)?!1:!s||ht(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return Kn(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 Yn(e){try{return new URL(e).host}catch{return``}}function Xn(e){let n=Oe(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 Zn;function Qn(){return Zn||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),Zn}const $n=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function er(){return Array.from(new Set($n.map(e=>t[e]).filter(e=>!!e)))}const tr=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function nr(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=tr.exec(n);if(!e)continue;let r=Yn(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 rr;function ir(){return rr??=(async()=>{try{let{stdout:e}=await(await Qn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return nr(e)}catch{return new Map}})()}const ar=new Map;async function or(e,t){if(!e)return[];let n=Xn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===Yn(t)?er():[],a=(await ir()).get(r);return Array.from(new Set(a?[...i,a]:i))}var sr=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 cr(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 lr(e,t,n,r){if(e.status>=500)throw new sr(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await cr(e);if(i===null)return e;throw new sr(`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 ur(e,t,n){let r=Yn(e),i=await or(r,t.forgeApiUrl),a=async a=>{let o=Dn(`Bearer`,a);return o.headers={...o.headers,...n},lr(await jn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=ar.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 ar.set(r,t),n;t===e&&ar.delete(r)}return await a()}catch(e){throw e instanceof sr?e:new sr(`network`,r,e?.message??String(e),{cause:e})}}function dr(e,t){let n=J.parse(X(t));if(!n)return null;let r=``,i=n;for(let t of e){let e=J.parse(X(t));e&&J.compare(e,i)>0&&(r=t,i=e)}return r||null}function fr(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 pr=RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),mr=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function hr(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function gr(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function _r(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 vr=(e,t)=>{if(!t)return _r(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})},yr=new WeakMap;function br(e,t,n,r){let i=`${n}${e}`;return Z(yr,t,i,async()=>{let n=t.noCache?null:await _n(e),a=await ur(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return yr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&bn(e,s,o),o})}function xr(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 Sr(e,t,n,r){let i=await br(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 Cr(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 wr(e,t,n,r,i){let a=await Sr(e(1),t,n,r);if(!a)return;let o=Cr(a.link),s=Rn(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)=>Sr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function Tr(e,t,n){let r=new Map;return await wr(n=>`${Tn}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,xr,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function Er(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await wr(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,vr,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 Dr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return Er(e,t,n,r,i);let[o,s]=await Promise.allSettled([Er(e,t,n,r,i),Tr(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof sr))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 Or(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 kr(e,t,n=``){let r=X(e),i=X(t).split(`.`).length,a=i>=3?r:Array.from({length:i},(e,t)=>r.split(`.`)[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${a}${n}`}function Ar(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const jr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function Mr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of jr)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=fr(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Ar(a)}/${e.directory}`)),a||t||``)}function Nr(e){let t=e.includes(`:/`)||e.startsWith(`/`);return En(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Pr(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 Fr(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:Nr(e),fallback:r})}return t}function Ir(e){if(typeof e==`string`)return[{url:En(e),fallback:`,`}];let n=Fr(t.GOPROXY||`${Y.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Lr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Rr=new Map;function zr(e){return V(Rr,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:I(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function Br(e,t){return t.some(t=>zr(t).test(e))}function Vr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Hr=/\/v(\d+)$/,Ur=/^gopkg\.in\/.*?\.v(\d+)$/;function Wr(e){let t=Ur.exec(e)??Hr.exec(e);return t?Number.parseInt(t[1]):1}function Gr(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Hr,``);return t<=1?n:`${n}/v${t}`}function Kr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(X(t));return Number.isNaN(n)||n===Wr(e)?e:Gr(e,n)}const qr=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,Jr=/^(\S+)\s+(v\S+)/,Yr=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Xr=e=>e.replace(/^"(.*)"$/,`$1`);function Zr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Qr(e){let t=Yr.exec(e);if(!t)return null;let[,n,r,i,a]=t;return{origModule:Xr(n),origVersion:r??``,targetModule:Xr(i),targetVersion:a??``}}function*$r(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=qr.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function ei(e){return e.startsWith(`golang.org/x/`)}async function ti(e,t,n){let r=t,i=t&&!Vn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Vn(e.Version)||(i=e)}return i??r}function ni(e,t,n,r){let i=n??r;return[{name:e,old:t,new:X(i.Version),Time:i.Time,...i.path!==e&&{newPath:i.path},sameMajorNew:X(r.Version),sameMajorTime:r.Time},null]}function ri(e){for(let{kind:t,value:n}of $r(e.split(/\r?\n/)))if(t===`module`)return Xr(n.split(/\s/,1)[0]);return``}function ii(e){let t={},n={},r={},i={},a={},o=new Set,s=[];for(let i of $r(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(Xr(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=Jr.exec(i.value);e&&(a[Xr(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=Qr(i.value);e&&(e.targetVersion&&!Zr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=Jr.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[Xr(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 ai=new WeakMap;function oi(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=V(ai,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=V(a,e,()=>{try{return new Map(Object.entries(ii(b(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return new Map}async function si(e,n,r,i,a){let o=Wr(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(e&&
|
|
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(Lt.test(o)){let i=n;for(;n<r&&Rt.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 Bt={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 Vt(e){let t;for(let n of e.matchAll(/(\d+(?:\.\d+)?)\s*([a-z]+)/gi)){let e=Bt[n[2].toLowerCase()];if(e===void 0)return;t=(t??0)+Number(n[1])*e}return t}const Ht={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}{/,}**`}},Ut=/* @__PURE__ */ new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function Wt(e){let t={Package:[],Dep:[]};for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(Ht,n)?Ht[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||Ut.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=Gt(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 Gt(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Kt=/* @__PURE__ */ new Map,qt=e=>H(Kt,e,()=>Ke(e)),Jt=(e,t,n)=>(!t?.length||t.some(t=>qt(t).test(e)))&&(!n?.length||n.every(t=>!qt(t).test(e)));function Yt(e,t,n){return Jt(t,e.matchPackageNames,e.excludePackageNames)&&Jt(n,e.matchDepNames,e.excludeDepNames)}const Xt=/* @__PURE__ */ new WeakMap;var Zt=class extends RegExp{constructor(e,t){super(e),Xt.set(this,t)}testNames(e,t){return Xt.get(this)(e,t)}test(e){return this.testNames(e,e)}};function Qt(e,t,n,r){return e instanceof Zt?e.testNames(n,r):e.test(t)}function $t(e,t){let n=[],r={},i=/* @__PURE__ */ new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=Wt(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=Vt(r.minimumReleaseAge);e!==void 0&&(c.cooldownDays=e)}if(typeof r.allowedVersions==`string`){let e=bt(r.allowedVersions);if(!e&&!Gt(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&&Yt(t,e,e))?.allowedVersions;t&&bt(t)&&(r[e]=t)}let o;return n.some(e=>!e.enabled)&&(o=new Zt(`renovate-package-rules`,(e,t)=>{let r=!0;for(let i of n)Yt(i.matchers,e,t)&&(r=i.enabled);return!r})),{disabled:o,pin:r,versionRules:a}}function en(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=Vt(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 Zt(`^${L(e)}$`,(t,n)=>n===e)):[],{disabled:i,pin:a,versionRules:o}=$t(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 tn=[`renovate.json`,`renovate.jsonc`,`renovate.json5`];async function nn(e,t={}){let n=await qe(e,async e=>{for(let t of tn){let n=h(e,t),r;try{r=await oe(n,`utf8`)}catch{continue}let i;try{i=zt(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?en(n.parsed,t):{}}const rn=Symbol(`cliBaseConfig`),an={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},"include-paths":{short:`N`,type:`string`,multiple:!0},"exclude-paths":{short:`X`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},login:{short:`L`,type:`string`},logout:{short:`O`,type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-cache":{short:`x`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}},on=/* @__PURE__ */ new Set([`allow-downgrade`,`greatest`,`minor`,`patch`,`prerelease`,`release`]);function sn(e){return Array.isArray(e)?!e.length||e.includes(!0)||new Set(e.filter(e=>typeof e==`string`).flatMap(F)):typeof e==`string`?/* @__PURE__ */ new Set([e]):typeof e==`boolean`&&e}function cn(e){for(let[t,{short:n}]of Object.entries(an))if(t===e||n===e)return t;return``}function ln(e){return new Set(e.map(Ke))}function un(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(F):[]}function dn(e){for(let[t,n]of Object.entries(e??{}))if(!bt(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function fn(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 dn(t),t}function pn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:ln(e)}const mn=Je(e=>qe(e,async e=>{for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=`updates.config.${t}`,r=h(e,n);try{await ie(r)}catch(e){if(e.code===`ENOENT`)continue;throw Error(`Unable to load config file ${n}: ${e.message}`)}try{return(await import(D(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null})),hn=Je(async e=>{let t=await mn(e)??{},n=await nn(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??[]]),dn(r.pin),r});function gn(e){return new Promise((t,n)=>{S(e,`utf8`,(e,r)=>e?n(e):t(r))})}const _n=h(i===`win32`?t.LOCALAPPDATA||h(N(),`AppData`,`Local`):t.XDG_CACHE_HOME||h(N(),`.cache`),`updates`),vn=/* @__PURE__ */ new Map;function yn(e){return fe(`sha256`).update(e).digest(`hex`)}const bn=6048e5;async function xn(e,t=_n){try{let n=h(t,`${yn(e)}.cache`);if(Date.now()-(await A(n)).mtimeMs>bn)return await j(n),null;let r=await gn(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 ze(M(n,s,s)),{etag:a,body:o}}catch{return null}}const Sn=/* @__PURE__ */ new Set;let Cn=0;function wn(e,t,n,i=_n){let a=(async()=>{try{await H(vn,i,()=>ae(i,{recursive:!0}))}catch{vn.delete(i);return}let a;try{let o=h(i,`${yn(e)}.cache`);a=`${o}.${r}-${Cn++}.tmp`,await ce(a,`${t}\n${n}`),await se(a,o)}catch{a&&await ze(j(a))}})();Sn.add(a),(async()=>{await a,Sn.delete(a)})()}async function Tn(e=_n,t=4096){for(;Sn.size;)await Promise.all(Sn);try{let n=(await O(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=h(e,t);try{return{path:n,mtime:(await A(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-bn,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>ze(j(e.path))))}catch{}}const En=/* @__PURE__ */ new Map;function Dn(){let e=t.XDG_CONFIG_HOME||(i===`win32`?t.APPDATA||h(N(),`AppData`,`Roaming`):h(N(),`.config`));return h(e,`updates`,`tokens.json`)}async function On(e){let t;try{t=await oe(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 kn(){let e=Dn();return En.has(e)||En.set(e,On(e)),En.get(e)}async function An(e){let t=Dn();await ae(p(t),{recursive:!0,mode:448}),await ce(`${t}.tmp`,`${JSON.stringify(e,null,2)}\n`,{mode:384}),await se(`${t}.tmp`,t),En.set(t,Promise.resolve(e))}async function jn(e,t){await An({...await kn(),[e]:t})}async function Mn(e){let t={...await kn()};return Object.hasOwn(t,e)?(delete t[e],await An(t),!0):!1}var Nn=`19.0.0`;function Pn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Fn=Nn,In=`https://api.github.com`,Ln={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:In,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,Rn=e=>e.endsWith(`/`)?e.slice(0,-1):e;function zn(e,t){return{headers:{"user-agent":`updates/${Fn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const Bn=/* @__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 Vn(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&Bn.has(t)}async function Hn(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=Vn(t),n}}async function Un(e,t,n={}){let r=Qn(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 de(u)}catch(e){if(i>=2||!e?.transient)throw e}}const Wn=e=>t=>JSON.stringify(e(JSON.parse(t))),Gn=/* @__PURE__ */ new WeakMap;function Kn(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=H(Gn,t,()=>/* @__PURE__ */ new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await xn(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await Un(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&&wn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function qn(e,t,n={},r,i=e){return Kn(e,t,n,r,i,!1)}function Jn(e,t,n={},r){return Kn(e,t,n,r,e,!0)}async function Q(e,t,n,r,i=!0){let a=H(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 Yn=new le,Xn=e=>Math.max(e.concurrency||50,1),Zn=/* @__PURE__ */ new WeakMap;function Qn(e){return H(Zn,e,()=>{let t=Xn(e),n=0,r=0,i=[];return async e=>{if(Yn.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await Yn.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function $n(e,t=X){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const er=/* @__PURE__ */ new WeakMap,tr=/* @__PURE__ */ new WeakMap;function nr(e,t,n,r,i=X){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?er:tr;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 rr(e){return ot(e)?.version??``}function ir(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:_}=nr(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),ee=!!u&&(!!y||m.isPrerelease(h)),S=e?.time,C=!!(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&&!ee||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)||C&&!Pn(p?p(e):S?.[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 ar(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function or(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`?It: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[rr(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=rr(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=nr(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=rr(e),o=f.parse(e),c=ar(e);if(!a||!c&&r(o))return!1;let d=st(m,e)??st(t,a),p=c?d===`prerelease`?`patch`:d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!Pn(i,l,u)?!1:!s||J(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return ir(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 sr(e){try{return new URL(e).host}catch{return``}}function cr(e){let n=F(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 lr;function ur(){return lr||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),lr}const dr=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function fr(){return Array.from(new Set(dr.map(e=>t[e]).filter(e=>!!e)))}const pr=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function mr(e){let t=/* @__PURE__ */ new Map;for(let n of e.split(/\r?\n/)){let e=pr.exec(n);if(!e)continue;let r=sr(e[1]),i=ue.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let hr;function gr(){return hr??=(async()=>{try{let{stdout:e}=await(await ur())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return mr(e)}catch{return/* @__PURE__ */ new Map}})()}const _r=/* @__PURE__ */ new Map,vr=/* @__PURE__ */ new Set;function yr(e){return e===`api.github.com`?`github.com`:e}async function br(e,t){if(!e)return[];let n=cr(e);if(n)return[n];let r=yr(e),i=r===`github.com`||e===sr(t),a=(await kn())[r],o=i?fr():[],s=(await gr()).get(r);return Array.from(new Set([a,...o,s].filter(Boolean)))}async function xr(e,t,n=In){let r=await Hn(e===`github.com`?`${n}/user`:`https://${e}/api/v1/user`,{...zn(`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 Sr=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 Cr(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 wr(e,t,n,r){if(e.status>=500)throw new Sr(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Cr(e);if(i===null)return e;throw new Sr(`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 ${yr(n)}"`}${i?`, resets at ${(/* @__PURE__ */ new Date(i*1e3)).toISOString()}`:``}`,{status:e.status,reset:i})}async function Tr(e,t,n){let r=sr(e),i=(await br(r,t.forgeApiUrl)).filter(e=>!vr.has(e)),a=async a=>{let o=zn(`Bearer`,a);return o.headers={...o.headers,...n},wr(await Un(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=_r.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 _r.set(r,t),n;if(n.status===401&&!vr.has(t)){vr.add(t);let e=yr(r);(await kn())[e]===t&&console.error(`stored token for ${e} was rejected, run "updates --login ${e}" to replace it`)}t===e&&_r.delete(r)}return await a()}catch(e){throw e instanceof Sr?e:new Sr(`network`,r,e?.message??String(e),{cause:e})}}function Er(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 Or=/* @__PURE__ */ RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),kr=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function Ar(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function jr(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function Mr(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 Nr=(e,t)=>{if(!t)return Mr(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})},Pr=/* @__PURE__ */ new WeakMap;function Fr(e,t,n,r){let i=`${n}${e}`;return Q(Pr,t,i,async()=>{let n=t.noCache?null:await xn(e),a=await Tr(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return Pr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&wn(e,s,o),o})}function Ir(e,t=!1){if(!Array.isArray(e))throw TypeError(`Invalid ${t?`cached `:``}Forge releases response`);return e.map(e=>{let n=t?e?.name:e?.tag_name,r=t?e?.isStable:!e?.prerelease&&e?.draft!==!0;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 Lr(e,t,n,r){let i=await Fr(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 Rr(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 zr(e,t,n,r,i){let a=await Lr(e(1),t,n,r);if(!a)return;let o=Rr(a.link),s=Xn(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)=>Lr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function Br(e,t,n){let r=/* @__PURE__ */ new Map;return await zr(n=>`${In}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,Ir,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function Vr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await zr(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,Nr,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 Hr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return Vr(e,t,n,r,i);let[o,s]=await Promise.allSettled([Vr(e,t,n,r,i),Br(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof Sr))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 Ur(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 Wr(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 Gr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const Kr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function qr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of Kr)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+=`/${Gr(a)}/${e.directory}`)),a||t||``)}function Jr(e){let t=e.includes(`:/`)||e.startsWith(`/`);return Rn(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Yr(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 Xr(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:Jr(e),fallback:r})}return t}function Zr(e){if(typeof e==`string`)return[{url:Rn(e),fallback:`,`}];let n=Xr(t.GOPROXY||`${Ln.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Qr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const $r=/* @__PURE__ */ new Map;function ei(e){return H($r,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:L(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function ti(e,t){return t.some(t=>ei(t).test(e))}function ni(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const ri=/\/v(\d+)$/,ii=/^gopkg\.in\/.*?\.v(\d+)$/;function ai(e){let t=ii.exec(e)??ri.exec(e);return t?Number.parseInt(t[1]):1}function oi(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(ri,``);return t<=1?n:`${n}/v${t}`}function si(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Z(t));return Number.isNaN(n)||n===ai(e)?e:oi(e,n)}const ci=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,li=/^(\S+)\s+(v\S+)/,ui=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,di=e=>e.replace(/^"(.*)"$/,`$1`);function fi(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function pi(e){let t=ui.exec(e);if(!t)return null;let[n,r,i,a,o]=t;return{origModule:di(r),origVersion:i??``,targetModule:di(a),targetVersion:o??``}}function*mi(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=ci.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function hi(e){return e.startsWith(`golang.org/x/`)}async function gi(e,t,n){let r=t,i=t&&!$n(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,$n(e.Version)||(i=e)}return i??r}function _i(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 vi(e){for(let{kind:t,value:n}of mi(e.split(/\r?\n/)))if(t===`module`)return di(n.split(/\s/,1)[0]);return``}function yi(e){let t={},n={},r={},i={},a={},o=/* @__PURE__ */ new Set,s=[];for(let i of mi(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(di(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=li.exec(i.value);e&&(a[di(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=pi(i.value);e&&(e.targetVersion&&!fi(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=li.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[di(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 bi=/* @__PURE__ */ new WeakMap;function xi(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=H(bi,n,()=>/* @__PURE__ */ new Map);for(let t of i?[h(e,i,`go.mod`),h(e,`go.mod`)]:[h(e,`go.mod`)]){let e=_(t),n=H(a,e,()=>{try{return new Map(Object.entries(yi(C(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return/* @__PURE__ */ new Map}async function Si(e,n,r,i,a){let o=ai(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=ki((n.Versions??[]).join(`
|
|
7
|
+
`),Ai(e),r);if(!i)throw Error(`No non-excluded versions found for ${e}`);return s(e,t,i.Version)},l=e=>ze(c(e,i.goProbeTimeout)),[u,d]=await Promise.all([c(e,i.fetchTimeout),hi(e)?null:l(oi(e,o+1))]);return _i(e,n,await gi(o,d,t=>l(oi(e,t))),u)}const Ci={"accept-encoding":`gzip, deflate, br`},wi=e=>e===404||e===410;async function Ti(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 Ei=async(e,t,n)=>{let r=`${t}/${ni(n)}/@latest`,i=await e(r);if(i.ok)return Ti(i,r,n);if(wi(i.status))return null;Ur(i,r,n,t)},Di=/* @__PURE__ */ new WeakMap;function Oi(e,t,n,r,i){return Q(Di,e,`latest${t}${r}/${i}`,()=>Ei(n,r,i))}function ki(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&&rt(e)&&!n.has(e)&&!(t&&Number.parseInt(Z(e))!==t)){if(r){let t=$n(e);if(t===$n(r.Version)?!ut(e,r.Version):t)continue}r={Version:e,Time:a??``}}}return r}function Ai(e){return ri.test(e)||ii.test(e)?ai(e):0}async function ji(e,t,n,r=/* @__PURE__ */ new Set){let i=ni(n),a=`${t}/${i}/@v/list`,o=await e(a);if(!o.ok){if(wi(o.status))return null;Ur(o,a,n,t)}let s=ki(await o.text(),Ai(n),r);if(!s)return null;if(s.Time)return{...s,path:n};let c=`${t}/${i}/@v/${ni(s.Version)}.info`;try{let t=await e(c);if(t.ok)return Ti(t,c,n)}catch{}return{...s,path:n}}function Mi(e,t,n,r,i,a=/* @__PURE__ */ new Set){let o=`list${t}${r}/${i}${Array.from(a).sort().join(`\0`)}`;return Q(Di,e,o,()=>ji(n,r,i,a))}async function Ni(e,t,n,r,i){let a=ai(t),o=e=>Un(r,e,{headers:Ci}),s=e=>r.doFetch(e,{signal:AbortSignal.timeout(r.goProbeTimeout),headers:Ci}),c=Oi(r,`primary`,o,e,t),l=(async()=>{let n=await c,a=i.get(t);return n&&!a?.has(n.Version)?n:Mi(r,`primary`,o,e,t,a)})(),u=async t=>{try{let[n,a]=await Promise.all([Oi(r,`probe`,s,e,t),c]),o=i.get(t);return n&&!o?.has(n.Version)?n:!n&&a?null:Mi(r,`probe`,s,e,t,o)}catch{return null}},[d,f]=await Promise.all([l,hi(t)?null:u(oi(t,a+1))]);return d?_i(t,n,await gi(a,f,e=>u(oi(t,e))),d):null}async function Pi(e,t,n,r,i,a){let o=xi(r,t,i);if(ti(e,a))return Si(e,n,r,i,o);let s=await Yr(i.goProxyChain,async t=>{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);return t===`direct`?Si(e,n,r,i,o):Ni(t,e,n,i,o)});if(s)return s;throw Error(`Unable to find ${e} on any GOPROXY entry`)}const Fi=e=>`("?)${L(e)}\\2`;function Ii(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 mi(a))if(e.kind===`require`){let t=li.exec(e.value);t&&V(s,di(t[1]),e.lineNumber)}else if(e.kind===`replace`){let t=pi(e.value);t&&V(c,t.targetModule,{...t,lineNumber:e.lineNumber})}else if(e.kind===`tool`){let t=di(e.value.split(/\s/,1)[0]);for(;t;){V(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=si(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+)${Fi(d)}(\\s+)v${L(f)}(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`),p!==d&&t.origModule===d&&!t.origVersion&&(a[n]=a[n].replace(RegExp(`(^\\s*(?:replace\\s+)?)${Fi(d)}(?=\\s+=>)`),`$1$2${p}$2`),e=!0)}e&&o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${Fi(d)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&(n[d]=p);continue}o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${Fi(d)}(\\s+)v${L(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+)?)("?)${L(d)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),`$1$2${p}$3$2`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const Li=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function Ri(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(Li)){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 zi=e=>{let t=f(e);return t===`vendor`||t===`testdata`||t[0]===`_`};function Bi(e,t,n){if(!Object.keys(t).length)return;let r=/* @__PURE__ */ new Map,i=t=>t.length>e.length&&H(r,t,()=>b(h(t,`go.mod`))||i(p(t)));for(let r of x(`**/*.go`,{cwd:e,exclude:zi})){let a=h(e,r);if(i(p(a)))continue;let o=C(a,`utf8`),s=Ri(o,t);s!==o&&n(a,s)}}function Vi(e){let t=[],n={};for(let r of mi(e.split(/\r?\n/)))if(r.kind===`use`)t.push(r.value.split(/\s/,1)[0]);else if(r.kind===`replace`){let e=pi(r.value);e?.targetVersion&&!fi(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function Hi(e,t){try{let n=te(_(e));return te(h(n,t,`go.mod`))}catch{return null}}function Ui(e){let t=`https://${Wi(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${Gr(t)}/${o.join(`/`)}`,n.href}return t}function Wi(e){return ri.test(e)?p(e):e}function Gi(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function Ki(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function qi(e){let t=sn(e);if(t!==!1)return t===!0||Array.from(t).map(Ki)}function Ji(t){if(!t)return e();let n=_(t),r=!1;try{r=T(n).isDirectory()}catch{}return r?n:p(n)}function Yi(e,t){let n=[...un(e.file),...t];return{filesList:n,startDir:Ji(n[0])}}function Xi(e){let t=c({strict:!1,allowPositionals:!0,tokens:!0,options:an,...e!==void 0&&{args:e}}),n=Object.create(null),r=/* @__PURE__ */ new Set,i=(e,t)=>{an[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(!cn(o.name))throw Error(`Unknown option: ${o.rawName}`);if(an[o.name]?.type===`string`&&o.value===void 0&&!on.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=cn(d);e&&(f=an[e].type===`string`&&l!==void 0,u.push({key:e,value:!f||l}))}else for(let e=0;e<d.length;){let t=cn(d[e]);if(!t){u.length=0;break}if(an[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}an[o.name]?.multiple?on.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 Zi(e,t){let{filesList:n,startDir:r}=Yi(e,t),i=await hn(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=Re(e.timeout,`timeout`)),typeof e.sockets==`string`&&(a.sockets=Re(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=e.cooldown);let o=un(e.include).map(Ki),s=un(e.exclude).map(Ki);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=un(e.types);c.length&&(a.types=c);let l=fn(e.pin);Object.keys(l).length&&(a.pin=l);let u=un(e.modes);u.length&&(a.modes=u);for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=qi(e[t]);n!==void 0&&(a[t]=n)}let d=qi(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let[t,n]of[[`include-paths`,`includePaths`],[`exclude-paths`,`excludePaths`]]){let r=Array.isArray(e[t])?e[t].filter(e=>typeof e==`string`).flatMap(He):[];r.length&&(a[n]=r)}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,rn,{value:{cliKeys:Object.keys(a)}}),f}const Qi={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`,N:`include-paths`,X:`exclude-paths`},$i=new Set(Object.keys(Qi));for(let e of Object.values(Qi))Qi[e]=e;function ea(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=>!$i.has(e)))return!0}return!1}async function ta(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?Qi[a[1]]:o?Qi[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?_(i):e(),o=i?p(a):a;try{T(a).isDirectory()&&(o=a)}catch{}let s={};configSearch:for(let e=o;;e=p(e)){for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=h(e,`updates.config.${t}`);try{if(!T(n).isFile())continue;s=(await import(D(n).href)).default??{};break configSearch}catch{}}if(p(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 na(e,t){if(typeof e!=`string`)throw Error(`Missing value for --${t}`);return yr(new URL(e.includes(`://`)?e:`https://${e}`).host)}function ra(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 ia(e,t){let n=(`isTTY`in e&&e.isTTY?await ra(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 aa(e,t,n=!0){let r=String,a=String,c=ea(e,`json`,`j`),l=e=>t.stdout(`${e}\n`),u=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(ea(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
|
|
12
15
|
-f, --file <path,...> File or directory to use, defaults to current directory
|
|
16
|
+
-N, --include-paths <glob,...> Only use paths matching the globs
|
|
17
|
+
-X, --exclude-paths <glob,...> Skip paths matching the globs
|
|
13
18
|
-M, --modes <mode,...> Which modes to enable. Default: npm,pypi,go,cargo,actions,docker,make
|
|
14
19
|
-i, --include <dep,...> Include only given dependencies
|
|
15
20
|
-e, --exclude <dep,...> Exclude given dependencies
|
|
@@ -25,6 +30,8 @@ import{cwd as e,env as t,pid as n,platform as r,stderr as i,versions as a}from"n
|
|
|
25
30
|
-s, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 50
|
|
26
31
|
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: 5000
|
|
27
32
|
-r, --registry <url> Override npm registry URL
|
|
33
|
+
-L, --login <host> Verify and store a forge API token
|
|
34
|
+
-O, --logout <host> Remove a stored forge API token
|
|
28
35
|
-I, --indirect Include indirect Go dependencies
|
|
29
36
|
-E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
|
|
30
37
|
-U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
|
|
@@ -50,23 +57,23 @@ import{cwd as e,env as t,pid as n,platform as r,stderr as i,versions as a}from"n
|
|
|
50
57
|
$ updates -f Dockerfile
|
|
51
58
|
$ updates -f docker-compose.yml
|
|
52
59
|
$ updates -f Makefile
|
|
53
|
-
`),await
|
|
60
|
+
`),await u();if(ea(e,`version`,`v`)){let e;try{e=C(new URL(`package.json`,t.moduleUrl),`utf8`)}catch{e=C(new URL(`../package.json`,t.moduleUrl),`utf8`)}return l(JSON.parse(e).version),await u()}let{args:i,positionals:s}=Xi(e);if(i.login!==void 0){let e=na(i.login,`login`),n=await ia(t.stdin??o,e),r=await xr(e,n,typeof i.forgeapi==`string`?Rn(i.forgeapi):void 0);return await jn(e,n),l(`stored token for ${e} (${r})`),await u()}if(i.logout!==void 0){let e=na(i.logout,`logout`);if(!await Mn(e))throw Error(`no stored token for ${e}`);return l(`removed token for ${e}`),await u()}if(n)try{await ta(e)}catch{}let f=await Zi(i,s),{updates:p}=await import(`./api.js`);!f.noColor&&(f.color||t.stdoutIsTTY)&&(r=e=>d(`red`,String(e),{validateStream:!1}),a=e=>d(`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(oa(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 u(void 0,g.length?1:f.errorOnOutdated?h?2:0:f.errorOnUnchanged?h?0:2:0)}catch(e){return await u(e)}}function oa(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`?Wi(e):e,...i?[s]:[],me(c.old,c.new,t),me(c.new,c.old,n),c.age||``,c.info||``]))}}return Fe(a,e=>u(e).length)}const sa=/^\[\[([^\]]+)\]\]$/,ca=/^\[([^[\]]+)\]$/,la=[`"""`,`'''`],ua=()=>Object.create(null);function da(e){let t=ua(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=_a(r[e]).trim();if(!i)continue;let a=sa.exec(i);if(a){let e=t,r=ga(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]]=ua()),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let o=ua();e[i].push(o),n=o;continue}let o=ca.exec(i);if(o){n=ya(t,ga(o[1]));continue}let s=va(i,`=`);if(s<0)continue;let c=i.slice(0,s).trim(),l=i.slice(s+1).trim(),u=ga(c),d=ya(n,u.slice(0,-1)),f=u[u.length-1],p=la.find(e=>l.startsWith(e)&&!l.includes(e,3))??``,m={depth:0,inStr:null};if((l.startsWith(`[`)||l.startsWith(`{`))&&!ma(l,m)){let t=[l],n=e+1;for(;n<r.length;n++){let e=_a(r[n]);if(t.push(e),ma(e,m))break}e=n,d[f]=fa(t.join(`
|
|
54
61
|
`))}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
62
|
`:``)+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 Fa(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=ba(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of xa(e.value)??[]){let e=Sa(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=Sa(e.slice(1));n&&t.push(n.value)}}return t}const Ia=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,La=new Set([`resolutions`,`overrides`]);function Ra(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const za=Y.registry,Ba=new Map,Va=new Map,Ha=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function Ua(){let e=t.pnpm_config__auth||t.PNPM_CONFIG__AUTH||void 0;return V(Va,e??``,()=>Da(e,`pnpm_config__auth`))}function Wa(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 Ga(e,t,n){let r=Wa(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:Ha(a),type:`Bearer`};for(let e of r){let t=i(e,`_authToken`);if(t)return{token:Ha(t),type:`Bearer`};let n=i(e,`username`),r=i(e,`_password`);if(n&&r){let e=Buffer.from(Ha(r),`base64`).toString(`utf8`);return{token:Buffer.from(`${n}:${e}`).toString(`base64`),type:`Basic`}}let a=i(e,`_auth`);if(a)return{token:Ha(a),type:`Basic`}}if(e===za&&t._auth)return{token:Ha(t._auth),type:`Basic`}}function Ka(e,t,n){let r=V(Ba,n??``,()=>da(`npm`,{registry:za},n)),i=Ua(),a=Ma(),o=n?ka(n):{registries:{}},s=e.startsWith(`@`)?e.split(`/`)[0]:``,c=En(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||za);return{auth:Ga(c,{...r,...a.auth.tokens,...i.tokens},s),registry:c}}const qa=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},Ja=new WeakMap,Ya=new WeakMap,Xa=new WeakMap,Za=new WeakMap,Qa=(e,t)=>`${e}v2${t?`-dates`:``}`;function $a(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 eo(e,t,n,r,i,a,o=``){let s=La.has(t)?Ra(e):t===`packageManager`&&e===`yarn`&&(U(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Ka(s,n,a),u=qa(l,s),d=Qa(u,!!r.needsDates);return[await Z(Ja,i,d,async()=>{let t=Dn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await Fn(u,i,t,Mn($a),d);return`body`in n||Or(n.res,u,e,l),JSON.parse(n.body)}),l]}async function to(e,t,n,r,i,a){let{auth:o,registry:s}=Ka(e,n,a),c=qa(s,e,t);return Z(Ya,i,c,async()=>{try{let n=Dn(o?.type,o?.token),a=await In(c,i,n,Mn(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=qa(s,e);return!u&&r.needsDates&&(u=(await Ja.get(i)?.get(Qa(f,!0)))?.time?.[t]||``),u||=(await Pe(Z(Xa,i,f,async()=>{let e=await jn(i,f,n);return e.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function no(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function ro(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function io(e){return e.startsWith(`catalog:`)}const ao=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function oo(e){let t=ao.exec(e);return t&>(t[2])?{name:t[1],range:t[2]}:null}const so=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,co=/^@([^/]+)\/(.+)$/;function lo(e,t){let n=so.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=co.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function uo(e,t){if(!co.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Z(Za,t,n,async()=>{let r=await Fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||Or(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function fo(e,t){try{JSON.parse(e)}catch{return e}let n=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 po=String.raw`[<>]=?|~>|[\^~=]`,mo=new RegExp(String.raw`^(${po})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),ho=RegExp(`^(?:${po})$`),go=/^[xX*]$/,_o=/\+[0-9A-Za-z.-]+/g,vo=/\|\||[\dxX*]\s+\S/;function yo(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&ho.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function bo(e,t){let n=mo.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)=>go.test(e)?e:l[t]??`0`).join(`.`)}`}function xo(e,t){if(ht(t,e))return e;let n=yo(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=bo(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=bo(r,t),n.join(` `)}function So(e,t,n,r){let i=(n||e).replace(_o,``),a=r===`peerDependencies`||vo.test(i)?xo(i,t):bo(i,t);return ht(t,a)?a:i}function Q(e){if(/[xX*]/.test(e))return e;let t=e.match(Ia);return t?.length===1?e.replace(Ia,Gn(t[0])):e}async function Co(e,t,n){let r=await br(`${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 wo(e,t,n,r){return(await Er(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function To(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:`)&>(r.slice(7))?r.slice(7):null;return!a&&!mr.test(r)&&!Qe(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function Eo(e,t,n){let r=To(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(mr.test(o)){let{hash:t,commit:r}=await Co(i,a,n);if(!t)return null;let s=gr(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=dr(await wo(i,a,o,n),s?Gn(s):o);if(t){let n=s?So(s,X(t),s):t;if(n!==o)return{key:e,newRange:c(n),user:i,repo:a,oldRef:o,newRef:n}}}return null}const Do=/[-_.]+/g,Oo=new WeakMap;function ko(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 Ao(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(Do,`-`)}/json`;return[{...await Z(Oo,t,n,async()=>{let r=await Fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:ko(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:ko(e.releases)}}Or(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function jo(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=q(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=q(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Tt(e.local?{...e,local:null}:e,r),a=r.local?Tt(e,r):i;if(t===`==`)return a===0;if(t===`!=`)return a!==0;if(t===`>=`)return i>=0;if(t===`<=`)return i<=0;let o=e.epoch===r.epoch&&Array.from({length:Math.max(e.release.length,r.release.length)}).every((t,n)=>(e.release[n]??0)===(r.release[n]??0));return t===`>`?i>0&&!(o&&e.post!==null&&r.post===null):t===`<`?i<0&&!(o&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.epoch===e.epoch&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function Mo(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 No(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 Po(e,t){let n=q(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(q(r))return jo(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=N(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>jo(n,e))}function Fo(e,t,n){let r=N(e),i=r?.specifiers,a=q(t),o=q(n);if(!r||!i||!a||!o)return null;let s=_e(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?Mo(o):Mo(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:Mo(o);else if(!jo(o,e)){let t=q(e.version);if(e.op===`<`&&t)e.version=No(t,a,o);else if(e.op===`<=`)e.version=Mo(o);else return null}if(!jo(o,e))return null}return ge(r,i)}function Io(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 Lo(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 Ro(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 Zo=RegExp(`(?:^|/)(?:${L(P)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Qo(e){return Zo.test(e.replace(/\\/g,`/`))}function $o(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 es=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,ts=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,ns=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,rs=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,is=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,as=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,os=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function ss(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*cs(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=os(i[0]),a=is.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:ss(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=as.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:ss(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const ls=/^(?:(?:index|registry-1)\.)?docker\.io$/;function us(e){let t=e.split(`/`);return t.length>1&&ls.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}=us(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 fs(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&&!es.test(s))return null;let{registry:c,namespace:l,repo:u}=us(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function ps(e){let t=es.exec(e);return!t||t[2]&&!t[3]&&mr.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function ms(e,t,n=``){let r=ps(t);return r?kr(e,r.version,`${n}${r.suffix}`):t}function hs(e,t){let n=[];if(t===ts){for(let{from:t,resolved:r}of cs(e,!0)){let e=fs(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===ns?gs(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=fs(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function gs(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 _s=new WeakMap,vs=new Set([401,403,404]);function ys(e,t,n){return Z(_s,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 Fn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(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):(vs.has(i.res?.status)||Or(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 F(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:Rn(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 bs(e,t,n){return(await ys(e,t,n)).dates}async function xs(e,t,n,r){let i=(await ys(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await Fn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return vs.has(o.res?.status)||Or(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const Ss=/^\d?[02468]\.04$/;function Cs(e,t){if(!Ss.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const ws={ubuntu:Cs};function Ts(e,t,n=Date.now()){let r=ws[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=ps(e)?.version;return!t||r(t,n)})):t}async function Es(e,t){let{registry:n,namespace:r,repo:i}=us(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:Ts(i,await bs(r,i,t)),name:e},null]}const Ds=(e,t)=>t?`${e}-${t}`:e;function Os(e){let t=ps(e);return t?Fs(t.version):``}const ks=/[._]/,As=e=>X(e.version).split(ks).map(Number),js=e=>X(e).replace(/\d+/g,``),Ms=2e7,Ns=e=>Number(X(e).split(ks)[0]);function Ps(e,t){return Ns(e)<Ms||Ns(t)>=Ms}function Fs(e){let t=X(e).split(ks).slice(0,3);return[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function Is(e,t){let n=As(e),r=As(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 Ls(e,t){let n=As(e),r=As(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 Rs(e,t,n,r,i,a,o=!1,s=!1){let c=ps(t);if(!c)return null;let l=js(c.version),u=Ds(Fs(c.version),c.prerelease),{effectiveSemvers:d,skipsPrerelease:f}=Wn(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=ps(t);if(!e||e.suffix!==c.suffix||js(e.version)!==l||!Ps(e.version,c.version)||!Cn(u,r,i))continue;let v=Ds(Fs(e.version),e.prerelease);if(a&&!ht(v,a))continue;if(p){if(e.prerelease&&(!o&&!c.prerelease||s)||Is(e,h)<=0)continue;let r=Ls(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=J.diff(m,y);b&&d.has(b)&&J.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=ms(v,t,y),x=b in e?b:g;return x===t?null:{newTag:x,date:_}}const zs=`(?![\\w.@+-])`;function Bs(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 Vs(e,t,n,r=()=>!0){if(!t.size)return e;let i=L(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`${rs}(${e})(${i})${zs}`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function Hs(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=Bs(t);if(!r.size)return e;let i=L(r.keys()),a=e.replace(RegExp(`^([ \\t]*FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${zs}`,`gim`),(e,t,n)=>`${t}${r.get(n)??n}`),o=new Map;for(let{instruction:e,args:t,from:n,resolved:i}of cs(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=ss(n[1].slice(0,e.index),e=>t.get(e)?.value),s=ss(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 Us(e,t){let n=gs(e);return Vs(e,Bs(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function Ws(e,t){return Vs(e,Bs(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const Gs=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function Ks(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function qs(e){return/^Dockerfile(\..+)?$/.test(e)}function Js(e){return qs(e)||Ks(e)}function Ys(e){return qs(e)?ts:ns}function Xs(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Zs=[`Makefile`,`makefile`,`GNUmakefile`];function Qs(e){return Zs.includes(e)||e.endsWith(`.mk`)}const $s=/^\s*(?:(?:export|override|private|unexport)\s+)*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,ec=/^([^@\s]+)@(v\d\S*)$/,tc=/^[^/\s]+\.[^/\s]+\//;function*nc(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=$s.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 rc(e){let t=[];for(let n of nc(e)){let e=ec.exec(n);if(!e||!tc.test(e[1]))continue;let[,r,i]=e;t.push({installPath:r,version:i})}return t}const ic=/@(sha256:[0-9a-f]{64})$/;function ac(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function oc(e){let t=ic.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=fs(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function sc(e){return Array.from(nc(e)).flatMap(e=>oc(e)??[])}const cc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,lc=new WeakMap;function uc(e,n,r){return Z(lc,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
|
|
63
|
+
`:``)+r[n]}e=n,d[f]=fa(p+t+p)}else d[f]=fa(l)}return t}function fa(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of ha(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(fa(e))}return t}return e.startsWith(`{`)?pa(e):e.startsWith(`"""`)?ba(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ba(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 pa(e){let t=ua(),n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of ha(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=fa(e.slice(n+1).trim())}return t}function ma(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 ha(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 ga(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 _a(e){let t=va(e,`#`);return t<0?e:e.slice(0,t)}function va(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 ya(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=ua()),e=e[n];return e}function ba(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`
|
|
64
|
+
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const xa=[[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`]],Sa={"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 Ca(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function wa(e,{now:t,noAffix:n=!1,times:r=xa,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Sa,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():Ca(t))-Ca(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 Ta(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 Ea(e){try{return Ta(C(e,`utf-8`))}catch{return}}function Da(e,t){return B(t,t=>{let n=h(t,e);try{if(T(n).isFile())return n}catch{}return null})??void 0}function Oa(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 ka(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=Ea(e);t&&(c.push(t),l.push(e))}o||(u(h(`/etc`,n,`config`)),u(h(`/etc`,`${n}rc`))),s&&(u(h(s,`.config`,n,`config`)),u(h(s,`.config`,n)),u(h(s,`.${n}`,`config`)),u(h(s,`.${n}rc`))),u(Da(`.${n}rc`,a));let d=Oa(`${n}_`);return d.config&&u(d.config),Object.assign({},...c,d,l.length?{configs:l,config:l[l.length-1]}:void 0)}function Aa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const ja=/* @__PURE__ */ new WeakMap;function Ma(e,t){let n=H(ja,e,()=>{let t=/* @__PURE__ */ new Map;for(let[n,r]of Object.entries(e)){let[e,...i]=n.split(`\0`),a=e.indexOf(`|`);V(t,a===-1?`.`:e.slice(a+1),[[Aa(e),...i].join(`\0`),r])}return t});return Object.fromEntries(n.get(t)??[])}const Na=/[*?{[]/;function Pa(e,t){return x(e,{cwd:t,exclude:e=>e.name===`node_modules`,withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>_(e.parentPath,e.name))}async function Fa(e,t,n,r=32){let i=await k(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>Pa(e.slice(1),t)).map(e=>g(t,e).replace(/\\/g,`/`))),o=/* @__PURE__ */ new Set,s=[];for(let n of e){if(n.startsWith(`!`))continue;let e=Na.test(n)?Pa(n,t):[_(h(t,n))];for(let n of e){let e=g(t,n).replace(/\\/g,`/`);a.has(e)||o.has(n)||(o.add(n),s.push({dir:n,memberPath:`./${e}`}))}}return(await I(s,async({dir:e,memberPath:t})=>{try{let r=await k(h(e,n)),a=g(i,r);return a===`..`||a.startsWith(`..${v}`)||m(a)?null:{absPath:r,content:await oe(r,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const Ia=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#](?:[^:#]|:(?=\S))*?))\s*:(?:\s+(.*))?$/,La=/\s#/;function Ra(e){let t=Ia.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(La),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 za(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 Ba(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(La);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function Va(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return null;let n=[];for(let r of za(e)??[]){if(r.colon===-1)return null;let e=Ba(r.text.slice(0,r.colon)),i=Ba(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 Ha(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=Ra(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 Va(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 Ua(e,t){let n=B(_(t),t=>{try{return{content:C(h(t,e),`utf8`)}}catch(e){if(e.code!==`ENOENT`)throw e}return null});return n?n.content:null}function Wa(e){let t={},n=[{indent:-1,map:t}];for(let t of e.split(/\r?\n/)){let e=Ra(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 Ga(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 Ka=/* @__PURE__ */ new Map;function qa(e){return H(Ka,e,()=>Ha(Ua(`pnpm-workspace.yaml`,e)??``))}const Ja=/* @__PURE__ */ new Map;function Ya(){return t.XDG_CONFIG_HOME?h(t.XDG_CONFIG_HOME,`pnpm`):i===`darwin`?h(N(),`Library/Preferences/pnpm`):i===`win32`&&t.LOCALAPPDATA?h(t.LOCALAPPDATA,`pnpm/config`):h(N(),`.config/pnpm`)}function Xa(){let e=Ya();return H(Ja,e,()=>{let t=``;try{t=C(h(e,`config.yaml`),`utf8`)}catch(e){if(e.code!==`ENOENT`)throw e}return{...Ha(t),auth:Ga(Wa(t)._auth,`config.yaml`)}})}function*Za(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
|
|
65
|
+
`).entries()){let e=Ra(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 Va(c,l)??[])yield{type:`catalog`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex};else if(s===`catalogs`)for(let e of Va(c,l)??[])for(let t of Va(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 Va(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 Qa(e,t){let n=e.split(`
|
|
66
|
+
`),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(Za(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(`
|
|
67
|
+
`):e}function $a(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=Ra(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of za(e.value)??[]){let e=Ba(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=Ba(e.slice(1));n&&t.push(n.value)}}return t}const eo=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,to=/* @__PURE__ */ new Set([`resolutions`,`overrides`]);function no(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const ro=Ln.registry,io=/* @__PURE__ */ new Map,ao=/* @__PURE__ */ new Map,oo=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function so(){let e=t.pnpm_config__auth||t.PNPM_CONFIG__AUTH||void 0;return H(ao,e??``,()=>Ga(e,`pnpm_config__auth`))}function co(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 lo(e,t,n){let r=co(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:oo(a),type:`Bearer`};for(let e of r){let t=i(e,`_authToken`);if(t)return{token:oo(t),type:`Bearer`};let n=i(e,`username`),r=i(e,`_password`);if(n&&r){let e=Buffer.from(oo(r),`base64`).toString(`utf8`);return{token:Buffer.from(`${n}:${e}`).toString(`base64`),type:`Basic`}}let a=i(e,`_auth`);if(a)return{token:oo(a),type:`Basic`}}if(e===ro&&t._auth)return{token:oo(t._auth),type:`Basic`}}function uo(e,t,n){let r=H(io,n??``,()=>ka(`npm`,{registry:ro},n)),i=so(),a=Xa(),o=n?qa(n):{registries:{}},s=e.startsWith(`@`)?e.split(`/`)[0]:``,c=Rn(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||ro);return{auth:lo(c,{...r,...a.auth.tokens,...i.tokens},s),registry:c}}const fo=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},po=/* @__PURE__ */ new WeakMap,mo=/* @__PURE__ */ new WeakMap,ho=/* @__PURE__ */ new WeakMap,go=/* @__PURE__ */ new WeakMap,_o=(e,t)=>`${e}v2${t?`-dates`:``}`;function vo(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 yo(e,t,n,r,i,a,o=``){let s=to.has(t)?no(e):t===`packageManager`&&e===`yarn`&&(W(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=uo(s,n,a),u=fo(l,s),d=_o(u,!!r.needsDates);return[await Q(po,i,d,async()=>{let t=zn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await qn(u,i,t,Wn(vo),d);return`body`in n||Ur(n.res,u,e,l),JSON.parse(n.body)}),l]}async function bo(e,t,n,r,i,a){let{auth:o,registry:s}=uo(e,n,a),c=fo(s,e,t);return Q(mo,i,c,async()=>{try{let n=zn(o?.type,o?.token),a=await Jn(c,i,n,Wn(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=fo(s,e);return!u&&r.needsDates&&(u=(await po.get(i)?.get(_o(f,!0)))?.time?.[t]||``),u||=(await ze(Q(ho,i,f,async()=>{let e=await Un(i,f,n);return e.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function xo(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function So(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Co(e){return e.startsWith(`catalog:`)}const wo=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function To(e){let t=wo.exec(e);return t&&bt(t[2])?{name:t[1],range:t[2]}:null}const Eo=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,Do=/^@([^/]+)\/(.+)$/;function Oo(e,t){let n=Eo.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=Do.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function ko(e,t){if(!Do.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Q(go,t,n,async()=>{let r=await qn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Wn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||Ur(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 Ao(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 jo=String.raw`[<>]=?|~>|[\^~=]`,Mo=new RegExp(String.raw`^(${jo})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),No=RegExp(`^(?:${jo})$`),Po=/^[xX*]$/,Fo=/\+[0-9A-Za-z.-]+/g,Io=/\|\||[\dxX*]\s+\S/;function Lo(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&No.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function Ro(e,t){let n=Mo.exec(e);if(!n)return e;let[r,i=``,a,o,s,c=``]=n,l=s.split(`.`);if(i===`<`&&l.length<=3&&!/[xX*]/.test(s)){let{major:e,minor:n,patch:r}=W(t);return`${i}${a}${l.length===1?`${e+1}`:l.length===2?`${e}.${n+1}`:!c&&s.endsWith(`.0.0`)?`${e+1}.0.0`:!c&&s.endsWith(`.0`)?`${e}.${n+1}.0`:`${e}.${n}.${r+1}`}`}if(i===`>`||i===`<`)return e;if(t.includes(`-`))return`${i}${a}${o}${t}`;let u=t.split(`.`);return`${i}${a}${o}${l.map((e,t)=>Po.test(e)?e:u[t]??`0`).join(`.`)}`}function zo(e,t){if(J(t,e))return e;let n=Lo(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=Ro(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=Ro(r,t),n.join(` `)}function Bo(e,t,n,r){let i=(n||e).replace(Fo,``),a=r===`peerDependencies`||Io.test(i)?zo(i,t):Ro(i,t);return J(t,a)?a:i}function Vo(e){if(/[xX*]/.test(e))return e;let t=e.match(eo);return t?.length===1?e.replace(eo,rr(t[0])):e}async function Ho(e,t,n){let r=await Fr(`${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 Uo(e,t,n,r){return(await Vr(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function Wo(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:`)&&bt(r.slice(7))?r.slice(7):null;return!a&&!kr.test(r)&&!rt(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function Go(e,t,n){let r=Wo(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(kr.test(o)){let{hash:t,commit:r}=await Ho(i,a,n);if(!t)return null;let s=jr(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=Er(await Uo(i,a,o,n),s?rr(s):o);if(t){let n=s?Bo(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 Ko=/[-_.]+/g,qo=/* @__PURE__ */ new WeakMap;function Jo(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 Yo(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(Ko,`-`)}/json`;return[{...await Q(qo,t,n,async()=>{let r=await qn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Wn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:Jo(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:Jo(e.releases)}}Ur(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function Xo(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=kt(e.local?{...e,local:null}:e,r),a=r.local?kt(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 Zo(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 Qo(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 $o(e,t){let n=Y(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(Y(r))return Xo(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=be(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>Xo(n,e))}function es(e,t,n){let r=be(e),i=r?.specifiers,a=Y(t),o=Y(n);if(!r||!i||!a||!o)return null;let s=Se(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?Zo(o):Zo(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:Zo(o);else if(Xo(o,e))continue;else{let t=Y(e.version);if(e.op===`<`&&t)e.version=Qo(t,a,o);else if(e.op===`<=`)e.version=Zo(o);else return null}if(!Xo(o,e))return null}return xe(r,i)}function ts(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 ns(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 rs(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===`
|
|
68
|
+
`&&(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 is(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=ts(o[1]);else{let o=ns(a),s=o===-1?``:[...r,...ts(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=rs(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function as(e,t){let n=/* @__PURE__ */ new Map;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`);H(n,t,()=>/* @__PURE__ */ new Map).set(i,r)}let r=is(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=R(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}${es(n,o||a,s)??n}`});i=`${i.slice(0,t[0])}${o}${i.slice(t[1])}`}return i}function os(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:Or.test(o)}}function ss(e,t){return e?e===`github.com`?In:`https://${e}/api/v1`:t}async function cs(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await xn(a);if(e)return e.body}try{let e=await Tr(a,i);if(e.status===404)return``;if(!e.ok)return;let t=jr(await e.json());return t&&!i.noCache&&wn(a,`immutable`,t),t}catch(e){if(e instanceof Sr)throw e;return}}function ls(e,t){let n=Z(e);return Wr(W(n)?.version??n,t)}const us=/^(\s*(?:-\s*)?)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/;function ds(e,t){let n=us.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 fs=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function ps(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?fs.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 ms=/^https?:\/\//;function hs(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
|
|
69
|
+
`).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=ds(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=ps(e);if(!l)return e;let{prefix:u,quote:d,value:f,gap:p,comment:m,pinnedVersion:h,pinnedEnd:g}=l,_=ms.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(`
|
|
70
|
+
`)}const gs=RegExp(`(?:^|/)(?:(?:workflow-templates|(?:${R(Ee)})/(?:workflows|actions))/.+|action)\\.ya?ml$`);function _s(e){return gs.test(e.replace(/\\/g,`/`))}function vs(e){let t=/* @__PURE__ */ new Set;try{for(let n of w(h(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(_(h(e,`workflows`,n)))}catch{}try{for(let n of w(e,{recursive:!0,withFileTypes:!0}))n.isFile()&&/^action\.ya?ml$/.test(n.name)&&t.add(_(h(n.parentPath,n.name)))}catch{}return Array.from(t)}const ys=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,bs=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,xs=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,Ss=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,Cs=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,ws=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,Ts=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*Ds(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=Ts(i[0]),a=Cs.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=ws.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:Es(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const Os=/^(?:(?:index|registry-1)\.)?docker\.io$/;function ks(e){let t=e.split(`/`);return t.length>1&&Os.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 As(e){let{registry:t,namespace:n,repo:r}=ks(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 js(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&&!ys.test(s))return null;let{registry:c,namespace:l,repo:u}=ks(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function Ms(e){let t=ys.exec(e);return!t||t[2]&&!t[3]&&kr.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function Ns(e,t,n=``){let r=Ms(t);return r?Wr(e,r.version,`${n}${r.suffix}`):t}function Ps(e,t){let n=[];if(t===bs){for(let{from:t,resolved:r}of Ds(e,!0)){let e=js(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===xs?Fs(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=js(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function Fs(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 Is=/* @__PURE__ */ new WeakMap,Ls=/* @__PURE__ */ new Set([401,403,404]);function Rs(e,t,n){return Q(Is,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 qn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},Wn(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):(Ls.has(i.res?.status)||Ur(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 I(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:Xn(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 zs(e,t,n){return(await Rs(e,t,n)).dates}async function Bs(e,t,n,r){let i=(await Rs(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await qn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},Wn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return Ls.has(o.res?.status)||Ur(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const Vs=/^\d?[02468]\.04$/;function Hs(e,t){if(!Vs.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const Us={ubuntu:Hs};function Ws(e,t,n=Date.now()){let r=Us[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=Ms(e)?.version;return!t||r(t,n)})):t}async function Gs(e,t){let{registry:n,namespace:r,repo:i}=ks(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:Ws(i,await zs(r,i,t)),name:e},null]}const Ks=(e,t)=>t?`${e}-${t}`:e;function qs(e){let t=Ms(e);return t?ec(t.version):``}const Js=/[._]/,Ys=e=>Z(e.version).split(Js).map(Number),Xs=e=>Z(e).replace(/\d+/g,``),Zs=2e7,Qs=e=>Number(Z(e).split(Js)[0]);function $s(e,t){return Qs(e)<Zs||Qs(t)>=Zs}function ec(e){let t=Z(e).split(Js).slice(0,3);return[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function tc(e,t){let n=Ys(e),r=Ys(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 nc(e,t){let n=Ys(e),r=Ys(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 rc(e,t,n,r,i,a,o=!1,s=!1){let c=Ms(t);if(!c)return null;let l=Xs(c.version),u=Ks(ec(c.version),c.prerelease),{effectiveSemvers:d,skipsPrerelease:f}=nr(u,o,s,n),p=l.length>2||l.includes(`_`),m=W(u),h=c,g=``,_=``;for(let[t,u]of Object.entries(e)){let e=Ms(t);if(!e||e.suffix!==c.suffix||Xs(e.version)!==l||!$s(e.version,c.version)||!Pn(u,r,i))continue;let v=Ks(ec(e.version),e.prerelease);if(a&&!J(v,a))continue;if(p){if(e.prerelease&&(!o&&!c.prerelease||s)||tc(e,h)<=0)continue;let r=nc(c,e);if(!r||!n.has(r))continue;h=e,g=t,_=u;continue}let y=W(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=Ns(v,t,y),x=b in e?b:g;return x===t?null:{newTag:x,date:_}}const ic=`(?![\\w.@+-])`;function ac(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 oc(e,t,n,r=()=>!0){if(!t.size)return e;let i=R(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`${Ss}(${e})(${i})${ic}`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function sc(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=ac(t);if(!r.size)return e;let i=R(r.keys()),a=e.replace(RegExp(`^([ \\t]*FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${ic}`,`gim`),(e,t,n)=>`${t}${r.get(n)??n}`),o=/* @__PURE__ */ new Map;for(let{instruction:e,args:t,from:n,resolved:i}of Ds(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 cc(e,t){let n=Fs(e);return oc(e,ac(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function lc(e,t){return oc(e,ac(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const uc=[`Dockerfile`,`Containerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function dc(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function fc(e){return/^(?:[Dd]ocker|[Cc]ontainer)file|\.(?:[Dd]ocker|[Cc]ontainer)file$/.test(e)}function pc(e){return fc(e)||dc(e)}function mc(e){return fc(e)?bs:xs}function hc(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const gc=[`Makefile`,`makefile`,`GNUmakefile`];function _c(e){return gc.includes(e)||e.endsWith(`.mk`)}const vc=/^\s*(?:(?:export|override|private|unexport)\s+)*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,yc=/^([^@\s]+)@(v\d\S*)$/,bc=/^[^/\s]+\.[^/\s]+\//;function*xc(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=vc.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 Sc(e){let t=[];for(let n of xc(e)){let e=yc.exec(n);if(!e||!bc.test(e[1]))continue;let[r,i,a]=e;t.push({installPath:i,version:a})}return t}const Cc=/@(sha256:[0-9a-f]{64})$/;function wc(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Tc(e){let t=Cc.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=js(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(xc(e)).flatMap(e=>Tc(e)??[])}const Dc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,Oc=/* @__PURE__ */ new WeakMap;function kc(e,n,r){return Q(Oc,r,`${_(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(`
|
|
71
|
+
`)[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 Ac(e,t,n,r){return await Yr(r,async r=>r===`off`?!1:r===`direct`?kc(e,t,n):await Oi(n,`primary`,e=>Un(n,e,{headers:Ci}),r,e)?!0:null)??!1}async function jc(e,t,n,r){let i=Dc.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=ti(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=>Ac(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 Mc(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Array.from(n.keys()).sort((e,t)=>t.length-e.length).map(e=>Array.from(e,L).join(`["']*`)).join(`|`),i=RegExp(`(?<![\\w./@:-])(${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 Nc=/* @__PURE__ */ new WeakMap;function Pc(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 Fc(e,t){let n=Rn(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${Pc(t)}`}function Ic(e){return e.split(`
|
|
65
72
|
`).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:kc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=Ac(i,n),r+=i.length+1}return t}function Mc(e,t){let n=jc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Dc(i),c=I(a),l=t.startsWith(`[`)?JSON.parse(Oc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(Dc).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=Ac(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Nc=/^(!?)\/(.*)\/(i?)$/,Pc=e=>e.isHash&&!!e.comment&&!hr(e.comment),Fc=[...new Set(Object.values(xe)),`actions`,`docker`,`make`],Ic=new Set(Fc),Lc={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},Rc={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},zc=(e,t)=>En(typeof e==`string`?e:t),Bc=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function Vc(e){try{return S.native(e)}catch{return m(e)}}function Hc(e,t){let n=new Map,r=new Set(e);return He(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 Uc(e,t){t&&(e.date=t,e.age=oa(t,{noAffix:!0,shortUnits:!0}))}const Wc=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,Gc=(e,t,n,r)=>Wc(`${e}${t}`,n,r),Kc=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?fa(n):`${fa(n)}|${t}`)},qc=e=>Object.values(e).some(e=>Object.keys(e).length>0),Jc=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Yc=(e,t)=>La.has(e)?Ra(t):t;function Xc(e,t){return t===`go`?[e,ki(e)]:t===`docker`?ds(e):t===`pypi`?[e,Jc(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&be.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let s=Array.from(new Set([...Xc(e,a),...Xc(o,a)])),c=(t,n)=>Jt(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 Zc(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=Vc(t);if(e.isFile())n.add(r);else if(e.isDirectory()){try{for(let e of x(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(xe,e.name)||Js(e.name)||Qs(e.name))&&n.add(m(f(r,e.name)))}catch{}let e=r.replace(/\\/g,`/`),t=P.some(t=>e.endsWith(`/${t}/workflows`)),i=!t&&P.some(t=>e.endsWith(`/${t}`)),a=t?[u(e)]:i?[e]:P.map(t=>f(e,t));for(let e of a)for(let t of $o(e))n.add(t)}else throw Error(`${t} is neither a file nor directory`)}else{let e=new Set(P),r=[...Object.keys(xe),...Gs,...Zs,...P],i=new Set;for(let[a,o]of Hc(r,t)){if(e.has(a)){for(let e of $o(o))n.add(e);continue}let t=Vc(o);i.has(t)||(i.add(t),n.add(m(o)))}try{for(let e of x(t,{withFileTypes:!0})){let r=Js(e.name)&&!Gs.includes(e.name),i=Qs(e.name)&&!Zs.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(Rc,t)&&(r.push(e),n.delete(f(u(e),Rc[t])))}return r.length?new Set([...r,...n]):n}function Qc(e,t){r===`win32`&&ee(e,0),w(e,t,r===`win32`?{flag:`r+`}:void 0)}const $c=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function el(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function tl(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>Fc.indexOf(e)-Fc.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=$c(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`&&!no(a.oldOrig)&&(a.old=e===`go`?Ai(a.oldOrig):a.oldOrig),e===`go`?a.new=Ai(a.new):e===`actions`&&!a.digestOnly&&(a.old=X(a.old),a.new=X(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get($c(e,r))>1?`${o}${e===`actions`?`@`:`:`}${el(s)}`:o,l=t.results[e]??={};(l[el(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 nl(e,t){if(!t)return()=>!0;let n=Nc.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=>ht(Os(e),t):e===`pypi`?e=>Po(e,t):e=>ht(e,t)}function rl(e,t,n){if(!n)return e;let r=nl(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 il(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await al(e)}finally{n()}}async function al(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Ne(n.timeout,`timeout`));let r=n.sockets??50,a=n.timeout??0,o=zc(t.forgeapi,Y.forgeapi),s=Ir(t.goproxy),d=Lr(),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 Qn())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:zc(t.pypiapi,Y.pypiapi),jsrApiUrl:zc(t.jsrapi,Y.jsrapi),goProxyChain:s,cratesIoUrl:zc(t.cargoapi,Y.cargoapi),dockerApiUrl:zc(t.dockerapi,Y.dockerapi),doFetch:(e,t)=>(y??=Bn(b))(async()=>{n.verbose&&console.error(`${ke()} ${g(t?.method||`GET`)} ${e}`);let r=await An(e,t);return n.verbose&&console.error(`${ke()} ${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=V(x,r,()=>xs(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(!Ic.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${Fc.join(`,`)}`);let C=n.modes?.length?new Set(n.modes):Ic,ee=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?an(e.include):void 0,exclude:e.exclude?.length?an(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:Me(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:ln(e.greatest),prerelease:ln(e.prerelease),release:ln(e.release),patch:ln(e.patch),minor:ln(e.minor),allowDowngrade:ln(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=V(w,e,()=>new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(new Set([...Xc(n,t),...Xc(r,t)])),c=e=>s.some(t=>De(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)Gt(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=>!De(e,t.include))||t.exclude&&s.some(e=>De(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?Lc.patch:p?Lc.minor:Lc.major;o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:_,allowDowngrade:m,cooldownOverride:h,allowedVersions:g},i.set(a,o)}return o}sn(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)},M={},le=Date.now(),ue=Vc(e()),de=e=>e.replace(`${ue}/`,``).replace(`${ue}\\`,``),fe=(e,t,n,r,i,a)=>{E[e][Gc(t,n,r)]={old:i,oldOrig:a}},pe=(e,t,n)=>{if(io(n))return;let r=oo(n);if(no(n))E.npm[e]={old:lo(n,t).version,new:``,oldOrig:n};else if(gt(n))E.npm[e]={old:Q(n),new:``,oldOrig:n};else if(r)se.set(e,r),E.npm[e]={old:Q(r.range),new:``,oldOrig:n};else if(ro(n))return;else ae[e]={old:n}},me=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(Jc)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of ve(t))s.has(Jc(o))||$(o,e,i,a,r)&&(fe(e,r,n,o,Q(c),c),ce.set(Gc(r,n,o),l))};for(let[s,l]of Ee(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)&&fe(e,s,n,r,Q(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=Ra(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=oo(d);if(!$(t,e,i,a,s,e,c?.name??t))continue;let f=[...r,...l,u],p=JSON.stringify(f),m=Gc(s,n,t,p);pe(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(Yc(s,r))||$(r,e,i,a,s,e,(e===`npm`?oo(l):null)?.name??r)&&(e===`npm`?pe(Gc(s,n,r),r,l):e===`go`?fe(e,s,n,r,Ai(l),X(l)):gt(l)&&fe(e,s,n,r,Q(l),l)))}}}},he=Zc(n.files,ue),N=new Map(await F(Array.from(he).filter(e=>{if(Qo(e))return C.has(`actions`)||C.has(`docker`);let t=l(e);return Js(t)?C.has(`docker`):Qs(t)?C.has(`make`):C.has(xe[t])}),async e=>{try{return[e,await re(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),ge={},_e=[],be=[],P=[],Oe=[],Ae=[],je=[],I=[],L=[],Fe={},R=(e,t,n)=>{(Fe[e]??=new Map).set(t===`.`?``:`|${t}`,n)},Ie=t[$t],Le=Ie&&new Set(Ie.cliKeys),Re=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!Le||Le.has(e)))),z=Ue(async e=>{let t={...await dn(e),...Re};return{modeConfig:t,include:an(t.include??[]),exclude:an(t.exclude??[]),versionConfig:ee(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Me(String(t.cooldown)):0}});function ze(e,t){return t.types?.length?t.types:e===`npm`?ye:e===`pypi`?Se:e===`go`?t.indirect?Ce:Ce.filter(e=>e!==`indirect`):e===`cargo`?[...we,...Te]:[]}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=Wc(t,e.fullImage,r);if(E.docker[i])return;let a=ps(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}},I.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let B=new Map,We=new Map;for(let e of he){let t=l(e);if(t===`package.json`){let t=N.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=N.get(e);if(!t)continue;try{let n=qi(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&B.set(e,n)}catch{}}}let Ge={cargo:B.size,go:Array.from(he).filter(e=>l(e)===`go.work`).length,npm:new Set([...We.keys(),...Array.from(he).filter(e=>l(e)===`pnpm-workspace.yaml`)]).size},Ke=(e,t,n,r,i)=>{let a=M[e]??=[],o=!a.length&&!Ge[e],s=o?`.`:de(t);return a.push({absPath:m(t),content:n,memberPath:s,projectDir:r}),R(e,s,Be(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?`${de(t)}:${n}`:n,H=(e,t,n,r,i,a,o)=>{let s=Je(`npm`,e,n.memberPath);R(`npm`,s,Be(a,t)),Oe.push({...n,memberPath:s}),me(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of B.size||We.size?new Set([...B.keys(),...We.keys(),...N.keys()]):N.keys()){if(Qo(e)){let t=C.has(`actions`),n=C.has(`docker`),r=N.get(e),i=de(e),a=await z(u(e)),s=new Set;ge[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=Jo(l),t=e&&Vo(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=Wc(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},je.push({...t,key:s,comment:n,apiUrl:Ho(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=Ko(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=fs(r.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(He(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=l(e),n=m(e);if(Js(t)){let n=N.get(e),r=de(e),i=qs(t)?`dockerfile`:`compose`,a=await z(u(e));ge[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of hs(n,Ys(t)))He(e,r,a);continue}if(Qs(t)){let t=N.get(e),n=de(e),r=await z(u(e));ge[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 rc(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=Wc(n,e,a);E.make[t]||(E.make[t]={old:X(a),oldOrig:a},L.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of sc(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=Wc(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=ps(e.ref.tag);if(!a)continue;let o=ac(e.writtenImage,e.ref.tag,e.digest);E.make[t]={old:a.version,oldOrig:e.ref.tag},L.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=xe[t];if(t===`go.work`){E[i]??={};let t=u(n),a=N.get(e),o=Ei(a),[{modeConfig:s,include:c,exclude:l,versionConfig:d,pin:f,cooldownDays:p},m]=await Promise.all([z(t),F(o.use,async e=>{let n=Di(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await re(n,`utf8`)}}catch{return null}},{concurrency:r})]),h=ze(i,s),g=Je(i,e,`.`),_=Be({modeConfig:s,versionConfig:d,pin:f,cooldownDays:p},t);R(i,g,_),be.push({file:e,content:a,memberPath:g});let v=new Set,y=[];for(let e of m){if(!e)continue;let t=ri(e.content);t&&v.add(t),y.push({...e,parsed:ii(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=Je(i,e,t);R(i,o,_),_e.push({absPath:n,content:r,projectDir:u(n),memberPath:o}),me(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`)&&fe(i,`replace`,g===`.`?``:`|${g}`,e,Ai(t),X(t));continue}if(t===`go.mod`&&_e.some(e=>e.absPath===n)||t===`package.json`&&Oe.some(e=>e.absPath===n)||t===`Cargo.toml`&&P.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){E[i]??={};let t=N.get(e),a=B.get(e)??qi(t),o=u(n),s=Hc([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[d,f,p]=await Promise.all([z(o),s?re(s,`utf8`):null,l?_a(c,o,`Cargo.toml`,r):[]]),{modeConfig:m,include:h,exclude:g}=d,_=ze(i,m),v=f?yc(f):new Map,y=(e,t)=>{for(let[n,r]of Ee(_,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;gt(Cc(e))&&(o!==r&&oe.set(Gc(n,t,r),o),fe(i,n,t,r,Ec(v,o,e)??Q(Cc(e)),e))}else typeof a==`string`&>(Cc(a))&&fe(i,n,t,r,Ec(v,r,a)??Q(Cc(a)),a)}}}};if(l){let r=Je(i,e,`.`),s=Be(d,o);R(i,r,s),y(a,r===`.`?``:`|${r}`),P.push({absPath:n,content:t,memberPath:r});for(let t of p){let n=Je(i,e,t.memberPath);R(i,n,s),P.push({...t,memberPath:n}),y(qe(t.absPath,()=>qi(t.content)),`|${n}`)}}else y(a,Ke(i,e,t,o,d));continue}if(t===`package.json`&&We.has(e)){E[i]??={};let t=u(n),a=N.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,d]=await Promise.all([z(t),_a(c,t,`package.json`,r)]),f=ze(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=N.get(e),s=Fa(o),c=f(a,`package.json`),[l,d,p]=await Promise.all([z(a),Pe(re(c,`utf8`)),_a(s,a,`package.json`,r)]),h=ze(i,l.modeConfig),g=Je(i,e,t);R(i,g,Be(l,a)),Ae.push({absPath:n,content:o,memberPath:g});for(let{type:e,name:t,value:n}of Na(o))$(t,i,l.include,l.exclude,e,i,oo(n)?.name??t)&&pe(Gc(e,`|${g}`,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=Gc(r,`|${g}`,e,a);D.set(o,n),O.set(o,e),pe(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 z(a),{modeConfig:c,include:d,exclude:p}=s,h=ze(i,c),g=N.get(e);me(i,qe(e,()=>i===`npm`?JSON.parse(g):i===`pypi`?qi(g):ii(g)),Ke(i,e,g,a,s),h,d,p)}let Ye=Object.keys(ae).length>0;if(!qc(E)&&!Ye)return{results:{},message:`No dependencies found, nothing to do.`};let Xe=[],Ze=(e,t)=>D.get(e)??se.get(e)?.name??Yc(e.split(`\0`)[0].split(`|`)[0],t),Qe={needsDates:Fe.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Fe))(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=fa(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&&no(h.oldOrig)?uo(i,b):eo(Ze(t,i),c,l,Qe,b,f,h.old):e===`go`?yi(i,r,h.oldOrig||h.old,f,b,d):e===`cargo`?vc(oe.get(t)??i,b):Ao(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=rl(x,e,T);let{old:D,oldOrig:O}=h,k=Jn(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?le:void 0}),A=``;if((e===`go`||e===`pypi`)&&k)A=k;else if(e===`cargo`&&k&&O)A=Tc(O,k);else if(k){if(O&&no(O)){let e=Bc.exec(O);e?A=`${e[1]}${k}`:O.startsWith(`jsr:`)&&(A=`jsr:${k}`)}else A=_?`npm:${_.name}@${So(D,k,_.range,c)}`:So(D,k,O,c)}let j=ce.get(t);if(!k||k===D||O&&O===A||j&&!Fo(j,O||D,A)){n.verbose&&k&&k!==D&&console.error(`${ke()} ${g(`SKIP`)} ${i}: ${O||D} can not be rewritten to ${k}`),delete s[t];return}let M=(e===`pypi`?x.releases?.[k]?.[0]?.upload_time_iso_8601:e===`go`?x.Time:e===`cargo`?x.time?.[k]:``)||``;h.new=A,O&&no(O)&&(h.newPrint=k),e===`npm`?o.set(t,{name:Ze(t,i),promise:to(x.name,k,l,Qe,b,f)}):h.info=e===`pypi`?Mr(x,y,x.info.name):e===`go`?Oi(x.newPath||i):`https://crates.io/crates/${x.name}`,Uc(h,M)};if(await F(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=Mr({repository:r.repository,homepage:r.homepage},null,t),Uc(i,r.date))})),e===`npm`&&Ye){let e=(await F(Object.entries(ae),async([e,t])=>{try{return await Eo(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)Uc(s[t]={old:ae[t].old,new:n,oldPrint:mr.test(a)?a.substring(0,7):a,newPrint:mr.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&&!Cn(n,u,le)&&delete s[t]}})());let U=e=>ie(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);je.length&&Xe.push((async()=>{await F(Map.groupBy(je,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?!Pc(e):hr(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===Y.forgeapi?[]:e.filter(Pc).map(e=>e.comment)],c=[];try{s.length&&(c=await Dr(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=jt.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=Ue(e=>Uo(t,n,i,e,b)),m=Ue(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===Y.forgeapi?`commits`:`branches`,o=await ur(`${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=Kn({},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(Cn(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]||``:hr(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=hr(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:jt,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w||void 0,now:w?le:void 0},S?l.filter(nl(`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,Uc(c,await Pe(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=Wo(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,Uc(c,re||(T?await Pe(p(T)):``))};await F(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})()),I.length&&Xe.push((async()=>{await F(Map.groupBy(I,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 Es(e,b);n=t}catch(e){for(let n of t)j(`docker`,n.key,e);return}await F(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=rl(n,`docker`,c).tags,f=!t.ref.digestOnly&&ps(i)?Rs(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=Xs(t.ref),Uc(r,f?.date)}catch(e){j(`docker`,t.key,e)}},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),L.length&&Xe.push((async()=>{await F(L,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?le:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await fc(e.installPath,e.projectDir,b,d);if(!t){delete E.make[e.key];return}let[n]=await yi(t,`tool`,X(e.version),e.projectDir,b,d),r=rl(n,`go`,o),i=Jn(r,{...u,mode:`go`,range:X(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??Kr(t,i),s=`${a}${e.installPath.slice(t.length)}`,c=kr(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=Oi(a),Uc(f,r.Time)}else{let[t]=await Es(e.image.ref.fullImage,b),n=rl(t,`docker`,o).tags,r=Rs(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=ac(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=Xs(e.image.ref),Uc(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 xn()}if(!qc(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=
|
|
73
|
+
`)}async function Lc(e,t){let n=Fc(t.cratesIoUrl,e);return[await Q(Nc,t,n,async()=>{let r=await qn(n,t,zn(),Ic);`body`in r||Ur(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
|
|
74
|
+
`)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=W(n);r&&(r.prerelease.length?(!s||ut(n,s))&&(s=n):(!o||ut(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 Rc(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];rt(a)&&V(t,i,a)}return t}const zc=/^\d/,Bc=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Vc=/^(\s*)(.*?)(\s*)$/s,Hc=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return zc.test(t)&&!Bc.test(t)?`^${t}`:t}).join(` `);function Uc(e,t){let[n,r,i,a]=Vc.exec(e);if(i.startsWith(`<`)&&J(t,i))return e;let o=Bc.exec(i),s;if(o){if(W(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=zc.test(i)?Bo(`^${i}`,t,`^${i}`).replace(/^\^/,``):Bo(i,t,i);return`${r}${s}${a}`}function Wc(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:Uc(e,t)).join(``)}function Gc(e,t,n){let r=e.get(t);if(!r)return;let i=Hc(n),a;for(let e of r)J(e,i)&&(!a||ut(e,a))&&(a=e);return a}const Kc=e=>{let t=L(e);return`(?:${t}|"${t}"|'${t}')`},qc=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,Jc=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/;function Yc(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 Xc(e){let t=[],n=``,r=0;for(let i of e.split(`
|
|
75
|
+
`)){let a=n?null:Jc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=Yc(i,n),r+=i.length+1}return t}function Zc(e,t){let n=Xc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Kc(i),c=L(a),l=t.startsWith(`[`)?JSON.parse(qc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(Kc).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=Yc(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Qc=l(pe),$c=new Set(Ee),el=[`**/node_modules/**`,`**/bower_components/**`,`**/vendor/**`,`**/examples/**`,`**/__tests__/**`,`**/test/**`,`**/tests/**`,`**/__fixtures__/**`];function tl(e){let t=``;for(let n=0;n<e.length;n++){let r=e[n],i=r===`{`?Ue(e,n,`{`,`}`):r===`[`?e.indexOf(`]`,n):-1;if(r===`*`&&e[n+1]===`*`){let r=e[n+2]===`/`;n+=r?2:1,t+=r?`(?:.*/)?`:`.*`}else r===`*`?t+=`[^/]*`:r===`?`?t+=`[^/]`:r===`{`&&i!==-1?(t+=`(?:${We(e.slice(n+1,i)).map(tl).join(`|`)})`,n=i):r===`[`&&i!==-1?(t+=`[${e.slice(n+1,i).replace(/^!/,`^`).replaceAll(`\\`,`\\\\`)}]`,n=i):t+=L(r)}return t}const nl=/* @__PURE__ */ new Map,rl=e=>H(nl,e,()=>RegExp(`^${tl(e)}$`));function il(e,{includePaths:t,excludePaths:n}){return t.length&&t.every(t=>e!==t&&!rl(t).test(e))?!1:n.every(t=>!e.includes(t)&&!rl(t).test(e))}function al(e){let t=f(e);return Object.hasOwn(De,t)||pc(t)||_c(t)||_s(e)}async function ol(e){try{return(await Qc(`git`,[`ls-files`,`--cached`,`--others`,`--exclude-standard`,`-z`],{cwd:e,maxBuffer:2**30})).stdout.split(`\0`)}catch{return null}}function sl(e){try{return e.split(/[\\/]/).some(e=>$c.has(e))?w(e,{recursive:!0,encoding:`utf8`}):w(e,{withFileTypes:!0}).flatMap(t=>t.isDirectory()&&$c.has(t.name)?w(h(e,t.name),{recursive:!0,encoding:`utf8`}).map(e=>h(t.name,e)):[t.name])}catch{return[]}}async function cl(e,t,n){let r=await ol(e),i=[];for(let a of[...r??[],...n||!r?sl(e):[]]){let n=_(e,a);al(n)&&il(a.replaceAll(`\\`,`/`),t)&&ee(n,{throwIfNoEntry:!1})?.isFile()&&i.push(n)}return i.sort((e,t)=>e.split(/[\\/]/).length-t.split(/[\\/]/).length)}const ll=/^(!?)\/(.*)\/(i?)$/,ul=e=>e.isHash&&!!e.comment&&!Ar(e.comment),dl=[...new Set(Object.values(De)),`actions`,`docker`,`make`],fl=new Set(dl),pl={patch:/* @__PURE__ */ new Set([`patch`]),minor:/* @__PURE__ */ new Set([`patch`,`minor`]),major:/* @__PURE__ */ new Set([`patch`,`minor`,`major`])},ml={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},hl=(e,t)=>Rn(typeof e==`string`?e:t),gl=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function _l(e){try{return te.native(e)}catch{return _(e)}}function vl(e,t){let n=/* @__PURE__ */ new Map,r=new Set(e);return B(t,e=>{for(let t of r){let i=h(e,t);try{y(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function yl(e,t){t&&(e.date=t,e.age=wa(t,{noAffix:!0,shortUnits:!0}))}const bl=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,xl=(e,t,n,r)=>bl(`${e}${t}`,n,r),Sl=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?Aa(n):`${Aa(n)}|${t}`)},Cl=e=>Object.values(e).some(e=>Object.keys(e).length>0),wl=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Tl=(e,t)=>to.has(e)?no(t):t;function El(e,t){return t===`go`?[e,Wi(e)]:t===`docker`?As(e):t===`pypi`?[e,wl(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&Te.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let s=Array.from(/* @__PURE__ */ new Set([...El(e,a),...El(o,a)])),c=(t,n)=>Qt(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}async function Dl(e,t,n){let r=/* @__PURE__ */ new Set,i=/* @__PURE__ */ new Set,a=e=>{if(r.has(e))return;let t=_l(e);i.has(t)||(i.add(t),r.add(e))},o=[];for(let t of e??[]){let e;try{e=T(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}if(e.isFile())a(_l(t));else if(e.isDirectory())o.push(_l(t));else throw Error(`${t} is neither a file nor directory`)}e?.length||o.push(t);let s=Promise.all(o.map(t=>cl(t,n,!!e?.length)));if(!e?.length){let e=new Set(Ee),r=[...Object.keys(De),...uc,...gc,...Ee];for(let[i,o]of vl(r,t))if(p(o)!==t)for(let r of e.has(i)?vs(o):[_(o)])il(g(t,r).replaceAll(`\\`,`/`),n)&&a(r)}for(let e of(await s).flat())a(e);let c=[];for(let e of Array.from(r)){let t=f(e);Object.hasOwn(ml,t)&&(c.push(e),r.delete(h(p(e),ml[t])))}return c.length?/* @__PURE__ */ new Set([...c,...r]):r}function Ol(e,t){i===`win32`&&E(e,0),ne(e,t,i===`win32`?{flag:`r+`}:void 0)}const kl=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function Al(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function jl(e){let t={results:{}},n=/* @__PURE__ */ new Map,r=Object.entries(e).sort(([e],[t])=>dl.indexOf(e)-dl.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=kl(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`&&!xo(a.oldOrig)&&(a.old=e===`go`?Gi(a.oldOrig):a.oldOrig),e===`go`?a.new=Gi(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(kl(e,r))>1?`${o}${e===`actions`?`@`:`:`}${Al(s)}`:o,l=t.results[e]??={};(l[Al(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 Ml(e,t){if(!t)return()=>!0;let n=ll.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=>J(qs(e),t):e===`pypi`?e=>$o(e,t):e=>J(e,t)}function Nl(e,t,n){if(!n)return e;let r=Ml(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 Pl(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await Fl(e)}finally{n()}}async function Fl(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Re(n.timeout,`timeout`));let r=n.sockets??50,i=n.timeout??0,o=hl(t.forgeapi,Ln.forgeapi),s=Zr(t.goproxy),c=Qr(),l=!n.noColor&&(n.color||a.isTTY),u=e=>l?t=>d(e,String(t),{validateStream:!1}):String,m=u(`magenta`),g=u(`green`),v=u(`red`),y,b={execFile:async(e,t,n)=>(await ur())(e,t,n),fetchTimeout:i||5e3,goProbeTimeout:i?Math.max(1,Math.floor(i/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:hl(t.pypiapi,Ln.pypiapi),jsrApiUrl:hl(t.jsrapi,Ln.jsrapi),goProxyChain:s,cratesIoUrl:hl(t.cargoapi,Ln.cargoapi),dockerApiUrl:hl(t.dockerapi,Ln.dockerapi),doFetch:(e,t)=>(y??=Qn(b))(async()=>{n.verbose&&console.error(`${Pe()} ${m(t?.method||`GET`)} ${e}`);let r=await Hn(e,t);return n.verbose&&console.error(`${Pe()} ${r.ok?g(r.status):v(r.status)} ${e}`),r}),noCache:!!n.noCache},x=/* @__PURE__ */ new Map,ee=async(e,t,n)=>{let r=`${e}${t}${n}`,i=H(x,r,()=>Bs(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(!fl.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${dl.join(`,`)}`);let S=n.modes?.length?new Set(n.modes):fl,C=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?ln(e.include):void 0,exclude:e.exclude?.length?ln(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:Le(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:pn(e.greatest),prerelease:pn(e.prerelease),release:pn(e.release),patch:pn(e.patch),minor:pn(e.minor),allowDowngrade:pn(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=H(w,e,()=>/* @__PURE__ */ new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(/* @__PURE__ */ new Set([...El(n,t),...El(r,t)])),c=e=>s.some(t=>Ne(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)Yt(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=>!Ne(e,t.include))||t.exclude&&s.some(e=>Ne(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?pl.patch:p?pl.minor:pl.major;o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:_,allowDowngrade:m,cooldownOverride:h,allowedVersions:g},i.set(a,o)}return o}dn(n.pin);let T=n.pin??{},E=(e,t,n)=>{let r=e.find(e=>T[e]);if(r)return{pinnedRange:T[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}},ne=(e,t,n,r,i,a,o)=>{let s=te(e,t,n,r);return{...s,...E(s.names,i,a),cooldownDays:s.cooldownOverride??o}},D={},re={},ie=/* @__PURE__ */ new Map,ae=/* @__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 D[e][t],j(e,t,n)},ce={},le=Date.now(),ue=_l(e()),de=e=>e.replace(`${ue}/`,``).replace(`${ue}\\`,``),fe=(e,t,n,r,i,a)=>{D[e][xl(t,n,r)]={old:i,oldOrig:a}},N=(e,t,n)=>{if(Co(n))return;let r=To(n);if(xo(n))D.npm[e]={old:Oo(n,t).version,new:``,oldOrig:n};else if(bt(n))D.npm[e]={old:Vo(n),new:``,oldOrig:n};else if(r)ae.set(e,r),D.npm[e]={old:Vo(r.range),new:``,oldOrig:n};else if(So(n))return;else re[e]={old:n}},pe=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(wl)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of Ce(t))s.has(wl(o))||$(o,e,i,a,r)&&(fe(e,r,n,o,Vo(c),c),se.set(xl(r,n,o),l))};for(let[s,l]of Me(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)&&fe(e,s,n,r,Vo(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=no(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=To(d);if(!$(t,e,i,a,s,e,c?.name??t))continue;let f=[...r,...l,u],p=JSON.stringify(f),m=xl(s,n,t,p);N(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(Tl(s,r))||$(r,e,i,a,s,e,(e===`npm`?To(l):null)?.name??r)&&(e===`npm`?N(xl(s,n,r),r,l):e===`go`?fe(e,s,n,r,Gi(l),Z(l)):bt(l)&&fe(e,s,n,r,Vo(l),l)))}}}},me=await Dl(n.files,ue,{includePaths:n.includePaths??[],excludePaths:n.excludePaths??el}),P=new Map(await I(Array.from(me).filter(e=>{if(_s(e))return S.has(`actions`)||S.has(`docker`);let t=f(e);return pc(t)?S.has(`docker`):_c(t)?S.has(`make`):S.has(De[t])}),async e=>{try{return[e,await oe(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),he={},ge=[],_e=[],ve=[],ye=[],be=[],xe=[],Se=[],Te=[],Ee={},F=(e,t,n)=>{(Ee[e]??=/* @__PURE__ */ new Map).set(t===`.`?``:`|${t}`,n)},Fe=t[rn],Ie=Fe&&new Set(Fe.cliKeys),L=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!Ie||Ie.has(e)))),R=Je(async e=>{let t={...await hn(e),...L};return{modeConfig:t,include:ln(t.include??[]),exclude:ln(t.exclude??[]),versionConfig:C(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Le(String(t.cooldown)):0}});function Be(e,t){return t.types?.length?t.types:e===`npm`?we:e===`pypi`?Oe:e===`go`?t.indirect?ke:ke.filter(e=>e!==`indirect`):e===`cargo`?[...Ae,...je]:[]}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(D.docker??={},!$(e.fullImage,`docker`,n.include,n.exclude,`docker`))return;let r=`${e.tag}${e.digest?`@${e.digest}`:``}`,i=bl(t,e.fullImage,r);if(D.docker[i])return;let a=Ms(e.tag);(a||e.digest)&&(D.docker[i]={old:a?.version??e.tag,oldOrig:e.tag,...e.digest&&{oldDigest:e.digest},...e.digestOnly&&{digestOnly:!0}},Se.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let We=/* @__PURE__ */ new Map,z=/* @__PURE__ */ new Map;for(let e of me){let t=f(e);if(t===`package.json`){let t=P.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`)&&z.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=P.get(e);if(!t)continue;try{let n=da(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&We.set(e,n)}catch{}}}let Ge={cargo:We.size,go:Array.from(me).filter(e=>f(e)===`go.work`).length,npm:(/* @__PURE__ */ new Set([...z.keys(),...Array.from(me).filter(e=>f(e)===`pnpm-workspace.yaml`)])).size},Ke=(e,t,n,r,i)=>{let a=ce[e]??=[],o=!a.length&&!Ge[e],s=o?`.`:de(t);return a.push({absPath:_(t),content:n,memberPath:s,projectDir:r}),F(e,s,Ve(i,r)),o?``:`|${s}`},qe=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},B=(e,t,n)=>Ge[e]>1?`${de(t)}:${n}`:n,V=(e,t,n,r,i,a,o)=>{let s=B(`npm`,e,n.memberPath);F(`npm`,s,Ve(a,t)),ye.push({...n,memberPath:s}),pe(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of We.size||z.size?/* @__PURE__ */ new Set([...We.keys(),...z.keys(),...P.keys()]):P.keys()){if(_s(e)){let t=S.has(`actions`),n=S.has(`docker`),r=P.get(e),i=de(e),a=await R(p(e)),s=/* @__PURE__ */ new Set;he[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=ps(l),t=e&&os(e.value);if(t&&$(t.name,`actions`,a.include,a.exclude,`actions`)){D.actions??={};let n=e.pinnedVersion||/^#\s*(\S+)\s*$/.exec(e.comment)?.[1]||``,r=t.isHash&&n?`${n}@${t.ref}`:t.ref,s=bl(i,t.name,r);D.actions[s]||(D.actions[s]={old:t.ref},xe.push({...t,key:s,comment:n,apiUrl:ss(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=ds(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=js(r.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(Ue(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=f(e),n=_(e);if(pc(t)){let n=P.get(e),r=de(e),i=fc(t)?`dockerfile`:`compose`,a=await R(p(e));he[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of Ps(n,mc(t)))Ue(e,r,a);continue}if(_c(t)){let t=P.get(e),n=de(e),r=await R(p(e));he[n]={absPath:e,content:t,fileType:`make`},D.make??={};let i={projectDir:p(e),versionConfig:r.versionConfig,filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of Sc(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=bl(n,e,a);D.make[t]||(D.make[t]={old:Z(a),oldOrig:a},Te.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=bl(n,e.writtenImage,e.ref.tag);if(D.make[t])continue;let a=Ms(e.ref.tag);if(!a)continue;let o=wc(e.writtenImage,e.ref.tag,e.digest);D.make[t]={old:a.version,oldOrig:e.ref.tag},Te.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=De[t];if(t===`go.work`){D[i]??={};let t=p(n),a=P.get(e),o=Vi(a),[{modeConfig:s,include:c,exclude:l,versionConfig:u,pin:d,cooldownDays:f},m]=await Promise.all([R(t),I(o.use,async e=>{let n=Hi(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await oe(n,`utf8`)}}catch{return null}},{concurrency:r})]),h=Be(i,s),g=B(i,e,`.`),_=Ve({modeConfig:s,versionConfig:u,pin:d,cooldownDays:f},t);F(i,g,_),_e.push({file:e,content:a,memberPath:g});let v=/* @__PURE__ */ new Set,y=[];for(let e of m){if(!e)continue;let t=vi(e.content);t&&v.add(t),y.push({...e,parsed:yi(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=B(i,e,t);F(i,o,_),ge.push({absPath:n,content:r,projectDir:p(n),memberPath:o}),pe(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`)&&fe(i,`replace`,g===`.`?``:`|${g}`,e,Gi(t),Z(t));continue}if(t===`go.mod`&&ge.some(e=>e.absPath===n)||t===`package.json`&&ye.some(e=>e.absPath===n)||t===`Cargo.toml`&&ve.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){D[i]??={};let t=P.get(e),a=We.get(e)??da(t),o=p(n),s=vl([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[u,d,f]=await Promise.all([R(o),s?oe(s,`utf8`):null,l?Fa(c,o,`Cargo.toml`,r):[]]),{modeConfig:m,include:h,exclude:g}=u,_=Be(i,m),v=d?Rc(d):/* @__PURE__ */ new Map,y=(e,t)=>{for(let[n,r]of Me(_,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;bt(Hc(e))&&(o!==r&&ie.set(xl(n,t,r),o),fe(i,n,t,r,Gc(v,o,e)??Vo(Hc(e)),e))}else typeof a==`string`&&bt(Hc(a))&&fe(i,n,t,r,Gc(v,r,a)??Vo(Hc(a)),a)}}}};if(l){let r=B(i,e,`.`),s=Ve(u,o);F(i,r,s),y(a,r===`.`?``:`|${r}`),ve.push({absPath:n,content:t,memberPath:r});for(let t of f){let n=B(i,e,t.memberPath);F(i,n,s),ve.push({...t,memberPath:n}),y(qe(t.absPath,()=>da(t.content)),`|${n}`)}}else y(a,Ke(i,e,t,o,u));continue}if(t===`package.json`&&z.has(e)){D[i]??={};let t=p(n),a=P.get(e),o=z.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([R(t),Fa(c,t,`package.json`,r)]),d=Be(i,l.modeConfig),f=/* @__PURE__ */ new Set,m=[];for(let e of u){let t=qe(e.absPath,()=>JSON.parse(e.content));typeof t.name==`string`&&t.name&&f.add(t.name),m.push({member:e,pkg:t})}V(e,t,{absPath:n,content:a,memberPath:`.`},o,d,l,f);for(let{member:n,pkg:r}of m)V(e,t,n,r,d,l,f);continue}if(t===`pnpm-workspace.yaml`){D[i]??={};let a=p(n),o=P.get(e),s=$a(o),c=h(a,`package.json`),[l,u,d]=await Promise.all([R(a),ze(oe(c,`utf8`)),Fa(s,a,`package.json`,r)]),f=Be(i,l.modeConfig),m=B(i,e,t);F(i,m,Ve(l,a)),be.push({absPath:n,content:o,memberPath:m});for(let{type:e,name:t,value:n}of Za(o))$(t,i,l.include,l.exclude,e,i,To(n)?.name??t)&&N(xl(e,`|${m}`,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=xl(r,`|${m}`,e,a);O.set(o,n),k.set(o,e),N(o,e,t)}if(u!==null){let t=qe(c,()=>JSON.parse(u));V(e,a,{absPath:_(c),content:u,memberPath:`.`},t,f,l)}for(let t of d)V(e,a,t,qe(t.absPath,()=>JSON.parse(t.content)),f,l);continue}D[i]??={};let a=p(n),s=await R(a),{modeConfig:c,include:l,exclude:u}=s,d=Be(i,c),m=P.get(e);pe(i,qe(e,()=>i===`npm`?JSON.parse(m):i===`pypi`?da(m):yi(m)),Ke(i,e,m,a,s),d,l,u)}let Ye=Object.keys(re).length>0;if(!Cl(D)&&!Ye)return{results:{},message:`No dependencies found, nothing to do.`};let Xe=[],Ze=(e,t)=>O.get(e)??ae.get(e)?.name??Tl(e.split(`\0`)[0].split(`|`)[0],t),Qe={needsDates:Ee.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Ee))(Object.keys(D[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=/* @__PURE__ */ new Map,s=D[e],l=async(t,r,i)=>{let l=Aa(r),{modeConfig:u,versionConfig:d,projectDir:f,pin:p,cooldownDays:h}=a(r),g=s[t],_=ae.get(t),[v,y]=await(e===`npm`?g.oldOrig&&xo(g.oldOrig)?ko(i,b):yo(Ze(t,i),l,u,Qe,b,f,g.old):e===`go`?Pi(i,r,g.oldOrig||g.old,f,b,c):e===`cargo`?Lc(ie.get(t)??i,b):Yo(i,b)),x=v;if(x.error)throw Error(x.error);let ee=l===`packageManager`?i:x.name,{useGreatest:S,usePre:C,useRel:w,semvers:te,allowDowngrade:T,allowedVersions:E,pinnedRange:D,pinNoDowngrade:re,cooldownDays:oe}=ne(d,e,ee,i,p,u.pinNoDowngrade,h);x=Nl(x,e,E);let{old:O,oldOrig:k}=g,A=or(x,{usePre:C,useRel:w,useGreatest:S,semvers:te,range:O,mode:e,pinnedRange:D,pinNoDowngrade:re,allowDowngrade:T,cooldownDays:oe||void 0,now:oe?le:void 0}),j=``;if((e===`go`||e===`pypi`)&&A)j=A;else if(e===`cargo`&&A&&k)j=Wc(k,A);else if(A){if(k&&xo(k)){let e=gl.exec(k);e?j=`${e[1]}${A}`:k.startsWith(`jsr:`)&&(j=`jsr:${A}`)}else j=_?`npm:${_.name}@${Bo(O,A,_.range,l)}`:Bo(O,A,k,l)}let M=se.get(t);if(!A||A===O||k&&k===j||M&&!es(M,k||O,j)){n.verbose&&A&&A!==O&&console.error(`${Pe()} ${m(`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&&xo(k)&&(g.newPrint=A),e===`npm`?o.set(t,{name:Ze(t,i),promise:bo(x.name,A,u,Qe,b,f)}):g.info=e===`pypi`?qr(x,y,x.info.name):e===`go`?Ui(x.newPath||i):`https://crates.io/crates/${x.name}`,yl(g,ce)};if(await I(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=qr({repository:r.repository,homepage:r.homepage},null,t),yl(i,r.date))})),e===`npm`&&Ye){let e=(await I(Object.entries(re),async([e,t])=>{try{return await Go(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)yl(s[t]={old:re[t].old,new:n,oldPrint:kr.test(a)?a.substring(0,7):a,newPrint:kr.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&&!Pn(n,u,le)&&delete s[t]}})());let $e=e=>ne(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);xe.length&&Xe.push((async()=>{await I(Map.groupBy(xe,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?!ul(e):Ar(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=$e(e);return t||!(!n||r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===Ln.forgeapi?[]:e.filter(ul).map(e=>e.comment)],c=[];try{s.length&&(c=await Hr(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=Ft.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=Je(e=>cs(t,n,i,e,b)),m=Je(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===Ln.forgeapi?`commits`:`branches`,o=await Tr(`${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=ir({},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(Pn(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=D.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]||``:Ar(a)||(g=``),!g){delete D.actions[t];return}let{useGreatest:_,usePre:v,useRel:y,semvers:b,allowDowngrade:x,allowedVersions:ee,pinnedRange:S,pinNoDowngrade:C,cooldownDays:w}=$e(e),te=Ar(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:Ft,pinnedRange:S,pinNoDowngrade:C,cooldownDays:w||void 0,now:w?le:void 0},ee?l.filter(Ml(`actions`,ee)):l):null;if(!te){if(!s||!o){delete D.actions[t];return}let e=await m(o);if(!e||e.startsWith(a)||a.startsWith(e)){delete D.actions[t];return}c.old=o,c.new=o,c.oldDigest=a,c.newDigest=e,c.digestOnly=!0,c.info=u,yl(c,await ze(p(e)));return}let{tag:T,commitSha:E,date:ne}=te;if(s){if(!E||E.startsWith(a)||a.startsWith(E)){delete D.actions[t];return}c.old=a,c.new=E.substring(0,a.length),c.oldPrint=g,c.newPrint=T}else{let e=ls(T,a);if(e===a){delete D.actions[t];return}c.new=d.has(e)?e:T}c.info=u,yl(c,ne||(E?await ze(p(E)):``))};await I(e,async e=>{try{await g(e)}catch(t){M(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(D.actions).length||delete D.actions})()),Se.length&&Xe.push((async()=>{await I(Map.groupBy(Se,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete D.docker[e.key];return}let n;try{let[t]=await Gs(e,b);n=t}catch(e){for(let n of t)M(`docker`,n.key,e);return}await I(t,async t=>{try{let r=D.docker[t.key],i=r.oldOrig||r.old,{semvers:a,usePre:o,useRel:s,allowedVersions:c,pinnedRange:l,cooldownDays:u}=ne(t.versionConfig,`docker`,e,e,t.filePin,void 0,t.fileCooldownDays),d=Nl(n,`docker`,c).tags,f=!t.ref.digestOnly&&Ms(i)?rc(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 ee(t.ref.namespace,t.ref.repo,p);if(!e||e===t.ref.digest&&!f){delete D.docker[t.key];return}r.oldDigest=t.ref.digest,r.newDigest=e,r.digestOnly=t.ref.digestOnly}else if(!f){delete D.docker[t.key];return}r.new=p,r.info=hc(t.ref),yl(r,f?.date)}catch(e){M(`docker`,t.key,e)}},{concurrency:r})},{concurrency:r}),Object.keys(D.docker).length||delete D.docker})()),Te.length&&Xe.push((async()=>{await I(Te,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,allowedVersions:o,pinnedRange:s,pinNoDowngrade:l,cooldownDays:u}=ne(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=D.make[e.key];try{if(e.kind===`go`){let t=await jc(e.installPath,e.projectDir,b,c);if(!t){delete D.make[e.key];return}let[n]=await Pi(t,`tool`,Z(e.version),e.projectDir,b,c),r=Nl(n,`go`,o),i=or(r,{...d,mode:`go`,range:Z(e.version)});if(!i){delete D.make[e.key];return}let a=r.newPath??si(t,i),s=`${a}${e.installPath.slice(t.length)}`,l=Wr(i,e.version);if(s===e.installPath&&l===e.version){delete D.make[e.key];return}e.newSpec=`${s}@${l}`,f.new=l,f.info=Ui(a),yl(f,r.Time)}else{let[t]=await Gs(e.image.ref.fullImage,b),n=Nl(t,`docker`,o).tags,r=rc(n,e.image.ref.tag,d.semvers,d.cooldownDays,d.now,d.pinnedRange,d.usePre,d.useRel);if(!r){delete D.make[e.key];return}let i=e.image.digest?await ee(e.image.ref.namespace,e.image.ref.repo,r.newTag):null;if(e.image.digest&&!i){delete D.make[e.key];return}e.newSpec=wc(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=hc(e.image.ref),yl(f,r.date)}}catch(t){M(`make`,e.key,t)}},{concurrency:r}),Object.keys(D.make).length||delete D.make})());try{await Promise.all(Xe)}finally{n.noCache||await Tn()}if(!Cl(D))return A.length?{results:{},errors:A}:{results:{},message:`All dependencies are up to date.`};let U=(e,t)=>{let n=e.split(`
|
|
76
|
+
`),r=new Map(He(e).map(e=>[e.selector,e]));for(let[e,i]of k){let a=D.npm?.[e],o=r.get(i);if(!a||!Sl(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(`
|
|
77
|
+
`)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=Ma(D[e],r.memberPath);Object.keys(t).length&&Ol(r.absPath,n(r.content,t,r))}},t=new Map(xe.map(e=>[e.key,e.comment])),n=e=>Map.groupBy(e,([e])=>e.split(`\0`)[0]),r=n(Object.entries(D.actions??{})),i=n(Object.entries(D.docker??{})),a=Map.groupBy(Te.filter(e=>e.newSpec&&D.make?.[e.key]),e=>e.key.split(`\0`)[0]);for(let n of Object.keys(D).sort((e,t)=>(e===`docker`)-+(t===`docker`)))if(Object.keys(D[n]).length){if(n===`actions`){for(let[e,n]of r){let{absPath:r,content:i}=he[e]||{};if(!r)continue;let a=hs(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:kr.test(n.old)?n.newPrint:void 0}}));Ol(r,a),he[e].content=a}continue}if(n===`docker`){for(let[e,t]of i){let n=he[e];if(!n)continue;let{absPath:r,content:i,fileType:a,workflowLines:o}=n;Ol(r,(a===`dockerfile`?sc:a===`compose`?cc:(e,t)=>e.split(`
|
|
78
|
+
`).map((e,n)=>o.has(n)?lc(e,t):e).join(`
|
|
79
|
+
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=he[e];n&&Ol(n.absPath,Mc(n.content,t.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}continue}if(n===`go`){for(let e of[...ge,...ce.go??[]]){let t=Ma(D[n],e.memberPath);if(!Object.keys(t).length)continue;let[r,i]=Ii(e.content,t);r!==e.content&&Ol(e.absPath,r),Bi(e.projectDir,i,Ol)}for(let e of _e){let t=Object.fromEntries(Object.entries(Ma(D[n],e.memberPath)).filter(([e])=>Aa(e.split(`\0`)[0])===`replace`));if(Object.keys(t).length){let[n]=Ii(e.content,t);n!==e.content&&Ol(e.file,n)}}}else n===`cargo`?e(n,[...ve,...ce.cargo??[]],Zc):n===`npm`?(e(n,be,(e,t,n)=>U(Qa(e,t),n.memberPath)),e(n,[...ye,...ce.npm??[]],Ao)):e(n,ce[n]??[],as)}}let et=jl(D);return A.length&&(et.errors=A),et}export{rn as i,el as n,aa as r,Pl as t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.0.0",
|
|
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.2",
|
|
46
49
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
47
|
-
"@vitest/coverage-v8": "5.0.
|
|
48
|
-
"eslint": "10.
|
|
49
|
-
"eslint-config-silverwind": "
|
|
50
|
+
"@vitest/coverage-v8": "5.0.1",
|
|
51
|
+
"eslint": "10.11.0",
|
|
52
|
+
"eslint-config-silverwind": "150.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
57
|
"typescript-config-silverwind": "20.0.4",
|
|
55
58
|
"updates-config-silverwind": "4.0.6",
|
|
56
|
-
"versions": "15.
|
|
57
|
-
"vitest": "5.0.
|
|
58
|
-
"vitest-config-silverwind": "12.0.
|
|
59
|
-
},
|
|
60
|
-
"bin": {
|
|
61
|
-
"updates": "dist/index.js"
|
|
59
|
+
"versions": "15.4.0",
|
|
60
|
+
"vitest": "5.0.1",
|
|
61
|
+
"vitest-config-silverwind": "12.0.3"
|
|
62
62
|
}
|
|
63
63
|
}
|