updates 18.0.4 → 18.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -43,8 +43,8 @@ npx updates -u && npm i
43
43
  |`-P, --patch [<dep,...>]`|Consider only up to semver-patch|
44
44
  |`-m, --minor [<dep,...>]`|Consider only up to semver-minor|
45
45
  |`-d, --allow-downgrade [<dep,...>]`|Allow downgrading onto a lower `latest` tag|
46
- |`-s, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 25|
47
- |`-T, --timeout <ms>`|Network request timeout in ms. Default: 5000|
46
+ |`-s, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 50|
47
+ |`-T, --timeout <ms>`|Network request timeout in ms, go probes use half. Default: 5000|
48
48
  |`-r, --registry <url>`|Override npm registry URL|
49
49
  |`-I, --indirect`|Include indirect Go dependencies|
50
50
  |`-E, --error-on-outdated`|Exit with code 2 when updates are available and 0 when not|
@@ -63,7 +63,7 @@ A failed lookup is reported on its own, does not hold back the other results and
63
63
 
64
64
  ## Config File
65
65
 
66
- Configure via `updates.config.{ts,js,mjs,mts}` in your repo root. CLI arguments win over it, except `include`, `exclude` and `pin`, which merge.
66
+ Configure via `updates.config.{js,ts,mjs,mts}`. Each manifest uses the nearest config above it, and workspace members use the workspace root config. CLI arguments win over configured values, including `include`, `exclude` and `pin`.
67
67
 
68
68
  ```ts
69
69
  import type {Config} from "updates";
@@ -103,7 +103,7 @@ export default {
103
103
 
104
104
  ### Renovate config
105
105
 
106
- A [Renovate](https://docs.renovatebot.com/) config is picked up automatically, inheriting `ignoreDeps`, `enabled` and `allowedVersions` in `packageRules` as `include`/`exclude`/`pin`. `minimumReleaseAge` is not inherited unless opted in:
106
+ A [Renovate](https://docs.renovatebot.com/) `renovate.json`, `renovate.jsonc` or `renovate.json5` is picked up automatically, inheriting `ignoreDeps`, `enabled` and `allowedVersions` from matching local `packageRules` as `include`/`exclude`/`pin`. Exact-name `allowedVersions` ranges become pin ceilings that never downgrade. Local fields are imported when `extends` is present, but preset contents are not resolved. `minimumReleaseAge` is not inherited unless opted in:
107
107
 
108
108
  ```ts
109
109
  export default {
package/dist/api.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  //#region utils/renovate.d.ts
2
2
  type RenovateImportOptions = {
3
- /** Import minimumReleaseAge as cooldown. Off by default. */
4
3
  cooldown?: boolean;
5
4
  };
6
5
  //#endregion
@@ -40,7 +39,7 @@ type Config = {
40
39
  noColor?: boolean;
41
40
  /** Disable HTTP cache */
42
41
  noCache?: boolean;
43
- /** Network request timeout in ms */
42
+ /** Network request timeout in ms, go probes use half */
44
43
  timeout?: number;
45
44
  /** Maximum number of parallel HTTP sockets */
46
45
  sockets?: number;
@@ -84,6 +83,7 @@ type Override = {
84
83
  /** Allow downgrading onto a lower `latest` tag */
85
84
  allowDowngrade?: boolean;
86
85
  };
86
+ declare const cliBaseConfig: unique symbol;
87
87
  //#endregion
88
88
  //#region modes/shared.d.ts
89
89
  type Dep = {
@@ -95,6 +95,9 @@ type Dep = {
95
95
  info?: string;
96
96
  age?: string;
97
97
  date?: string;
98
+ oldDigest?: string;
99
+ newDigest?: string;
100
+ digestOnly?: boolean;
98
101
  };
99
102
  type Deps = {
100
103
  [name: string]: Dep;
@@ -140,4 +143,4 @@ type UpdatesOptions = Config & {
140
143
  };
141
144
  declare function updates(opts?: UpdatesOptions): Promise<Output>;
142
145
  //#endregion
143
- export { type Config, type Dep, DepError, type Deps, type DepsByMode, Output, type Override, UpdatesOptions, updates };
146
+ export { type Config, type Dep, DepError, type Deps, type DepsByMode, Output, type Override, UpdatesOptions, cliBaseConfig as cliConfigBaseDir, updates };
package/dist/api.js CHANGED
@@ -1 +1 @@
1
- import{o as e}from"./shared.js";export{e as updates};
1
+ import{D as e,r as t}from"./shared.js";export{e as cliConfigBaseDir,t as updates};
package/dist/cli.js ADDED
@@ -0,0 +1 @@
1
+ import{n as e,t}from"./shared.js";export{t as parseCliArgs,e as resolveConfig};
package/dist/dns.js CHANGED
@@ -1 +1 @@
1
- import e from"node:dns";function t(e,t,n){if(t.all)e(null,n);else{let r=n.find(({family:e})=>e===t.family)??n[0];e(null,r.address,r.family)}}function n(){let n=new Map,r=new Map,i=e.lookup;e.lookup=function(a,...o){let s={},c;typeof o[0]==`function`?c=o[0]:(s=typeof o[0]==`number`?{family:o[0]}:o[0]||{},c=o[1]);let l=n.get(a);if(l){t(c,s,l);return}if(r.has(a)){r.get(a).push({options:s,callback:c});return}r.set(a,[{options:s,callback:c}]),i.call(e,a,{all:!0},(e,i)=>{let o=r.get(a);r.delete(a),!e&&i?.length&&n.set(a,i);let s=e||(i?.length?null:Object.assign(Error(`getaddrinfo ENOTFOUND ${a}`),{code:`ENOTFOUND`,hostname:a}));for(let{options:e,callback:n}of o)s?n(s):t(n,e,i)})}}export{n as enableDnsCache};
1
+ import e from"node:dns";let t=null;function n(){if(e.lookup===t?.lookup)return t.users++,r(t);let n=new Map,i=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/go.js ADDED
@@ -0,0 +1 @@
1
+ import{C as e,E as t,S as n,T as r,_ as i,a,b as o,c as s,d as c,f as l,g as u,h as d,i as f,l as p,m,o as h,p as g,s as _,u as v,v as y,w as b,x,y as S}from"./shared.js";export{f as buildGoModulePath,a as encodeGoModulePath,h as extractGoMajor,_ as fetchFromGoProxyChain,s as fetchGoLatestOnce,p as fetchGoProxyInfo,v as getGoInfoUrl,c as goModulePathForVersion,l as goProxyHeaders,g as isGoNoProxy,m as parseGoMod,d as parseGoModule,u as parseGoNoProxy,i as parseGoProxy,y as parseGoWork,S as pickGoListVersion,o as resolveGoProxyChain,x as resolveGoWorkModule,n as rewriteGoImportPaths,e as rewriteGoImports,b as shortenGoModule,r as shortenGoVersion,t as updateGoMod};
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{B as e,a as t,at as n,i as r,n as i,o as a,r as o,rt as s,s as c,v as l}from"./shared.js";import{exit as u,platform as d,stderr as f,stdout as p,versions as m}from"node:process";import{stripVTControlCharacters as h,styleText as g}from"node:util";const{args:_,positionals:v}=o();if(!_.help&&!_.version)for(let e of i(t(_,v).startDir,_))(async()=>{try{await fetch(e,{method:`HEAD`})}catch{}})();let y=String,b=String,x=!!_.json;async function S(e,t){if(e){let t=e.message??String(e);console.info(x?JSON.stringify({error:t}):y(t))}d===`win32`&&Number(m.node.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),u(t??+!!e)}async function C(){for(let e of[p,f])e?._handle?.setBlocking?.(!0);_.help&&(p.write(`usage: updates [options] [files...]
2
+ import{argv as e,exit as t,platform as n,stderr as r,stdout as i,versions as a}from"node:process";import{readFileSync as o,statSync as s}from"node:fs";import{dirname as c,join as l,resolve as u}from"node:path";import{pathToFileURL as d}from"node:url";let f=String,p=String,m=!1;const h={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`},g=new Set(Object.keys(h));for(let e of Object.values(h))h[e]=e;function _(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=>!g.has(e)))return!0}return!1}async function v(e){let t={},n;for(let r=0;r<e.length;r++){let i=e[r];if(!i.startsWith(`-`)){n??=i;continue}let a=/^--([^=]+)(?:=(.*))?$/.exec(i),o=/^-([A-Za-z])(.*)$/.exec(i),s=a?h[a[1]]:o?h[o[1]]:void 0;if(!s)continue;let c=(a?a[2]:o?.[2])||(e[r+1]?.startsWith(`-`)===!1?e[++r]:void 0);c!==void 0&&(s===`file`||s===`modes`?(t[s]??=[]).push(...c.split(`,`)):t[s]=c)}let r=t.file?.[0]??n,i=r?u(r):process.cwd(),a=r?c(i):i;try{s(i).isDirectory()&&(a=i)}catch{}let o={};configSearch:for(let e=a;;e=c(e)){for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=l(e,`updates.config.${t}`);try{if(!s(n).isFile())continue;o=(await import(d(n).href)).default??{};break configSearch}catch{}}if(c(e)===e)break}o={...o,...t};let f=Array.isArray(o.file)?o.file:o.files,{prewarmOrigins:p}=await import(`./prewarm.js`);for(let e of p(a,{...o,files:f}))(async()=>{try{await fetch(e,{method:`HEAD`})}catch{}})()}async function y(e,r){if(e){let t=e.message??String(e);console.info(m?JSON.stringify({error:t}):f(t))}n===`win32`&&Number(a.node.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),t(r??+!!e)}async function b(){for(let e of[i,r])e._handle?.setBlocking?.(!0);let t=e.slice(2);if(m=_(t,`json`,`j`),_(t,`help`,`h`)&&(i.write(`usage: updates [options] [files...]
3
3
 
4
4
  Options:
5
5
  -u, --update Update versions and write dependency file
@@ -16,8 +16,8 @@ import{B as e,a as t,at as n,i as r,n as i,o as a,r as o,rt as s,s as c,v as l}f
16
16
  -P, --patch [<dep,...>] Consider only up to semver-patch
17
17
  -m, --minor [<dep,...>] Consider only up to semver-minor
18
18
  -d, --allow-downgrade [<dep,...>] Allow downgrading onto a lower latest tag
19
- -s, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 25
20
- -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${l}
19
+ -s, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 50
20
+ -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: 5000
21
21
  -r, --registry <url> Override npm registry URL
22
22
  -I, --indirect Include indirect Go dependencies
23
23
  -E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
@@ -44,4 +44,4 @@ import{B as e,a as t,at as n,i as r,n as i,o as a,r as o,rt as s,s as c,v as l}f
44
44
  $ updates -f Dockerfile
45
45
  $ updates -f docker-compose.yml
46
46
  $ updates -f Makefile
47
- `),await S()),_.version&&(console.info(e),await S());let t=await r(_,v);!t.noColor&&(t.color||p.isTTY)&&(y=e=>g(`red`,String(e),{validateStream:!1}),b=e=>g(`green`,String(e),{validateStream:!1})),x=!!t.json;let n=await a(t),i=Object.keys(n.results).length>0,o=n.errors??[];if(t.json?console.info(JSON.stringify({...n.message&&{message:n.message},...i&&{results:n.results},...o.length&&{errors:o}})):n.message?console.info(n.message):i&&console.info(T(n)),t.update&&i&&!t.json)for(let[e,t]of Object.entries(n.results))Object.values(t).some(e=>Object.keys(e).length)&&console.info(b(`✨ ${e} updated`));if(!t.json)for(let{mode:e,name:t,error:n}of o)console.info(y(`${e} ${t}: ${n}`));o.length?await S(void 0,1):t.errorOnOutdated?await S(void 0,i?2:0):t.errorOnUnchanged?await S(void 0,i?0:2):await S()}const w=e=>h(e).length;function T(e){let t=Object.keys(e.results),r=t.length>1,i=[r?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],a=new Set;for(let n of t){let t=Object.values(e.results[n]).flatMap(e=>Object.entries(e));for(let[e,o]of t.sort(([e],[t])=>e<t?-1:+(e>t))){let t=`${n}|${e}|${o.old}|${o.new}`;a.has(t)||(a.add(t),i.push([n===`go`?c(e):e,...r?[n]:[],s(o.old,o.new,y),s(o.new,o.old,b),o.age||``,o.info||``]))}}return n(i,w)}try{await C()}catch(e){await S(e)}export{};
47
+ `),await y()),_(t,`version`,`v`)){let e;try{e=o(new URL(`package.json`,import.meta.url),`utf8`)}catch{e=o(new URL(`../package.json`,import.meta.url),`utf8`)}console.info(JSON.parse(e).version),await y()}try{await v(t)}catch{}let{parseCliArgs:n,resolveConfig:a}=await import(`./cli.js`),{args:s,positionals:c}=n(),l=await a(s,c),[{updates:u},{highlightDiff:d,textTable:h},{shortenGoModule:g},{stripVTControlCharacters:b,styleText:S}]=await Promise.all([import(`./api.js`),import(`./utils.js`),import(`./go.js`),import(`node:util`)]);!l.noColor&&(l.color||i.isTTY)&&(f=e=>S(`red`,String(e),{validateStream:!1}),p=e=>S(`green`,String(e),{validateStream:!1})),m=!!l.json;let C=await u(l),w=Object.keys(C.results).length>0,T=C.errors??[];if(l.json?console.info(JSON.stringify({...C.message&&{message:C.message},...w&&{results:C.results},...T.length&&{errors:T}})):C.message?console.info(C.message):w&&console.info(x(C,g,d,h,b)),l.update&&!l.json)for(let e of Object.keys(C.results))console.info(p(`✨ ${e} updated`));if(!l.json)for(let{mode:e,name:t,error:n}of T)console.info(f(`${e} ${t}: ${n}`));await y(void 0,T.length?1:l.errorOnOutdated?w?2:0:l.errorOnUnchanged?w?0:2:0)}function x(e,t,n,r,i){let a=Object.keys(e.results),o=a.length>1,s=[o?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],c=new Set;for(let r of a){let i=Object.values(e.results[r]).flatMap(e=>Object.entries(e));for(let[e,a]of i.sort(([e],[t])=>e<t?-1:+(e>t))){let i=`${r}|${e}|${a.old}|${a.new}`;c.has(i)||(c.add(i),s.push([r===`go`?t(e):e,...o?[r]:[],n(a.old,a.new,f),n(a.new,a.old,p),a.age||``,a.info||``]))}}return r(s,e=>i(e).length)}try{await b()}catch(e){await y(e)}export{};
@@ -0,0 +1 @@
1
+ import{env as e}from"node:process";import{readFileSync as t,readdirSync as n,statSync as r}from"node:fs";import{basename as i,join as a,resolve as o}from"node:path";const s=new Set([`.github`,`.gitea`,`.forgejo`]),c={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:`https://api.github.com`,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},l=[`dependencies`,`devDependencies`,`optionalDependencies`,`peerDependencies`,`resolutions`],u=e=>e===`package.json`||e===`pnpm-workspace.yaml`?`npm`:e===`pyproject.toml`?`pypi`:e===`Cargo.toml`?`cargo`:e===`go.mod`||e===`go.work`?`go`:/^Dockerfile(?:\..+)?$/.test(e)||/^(?:docker-|compose).*\.ya?ml$/.test(e)?`docker`:[`Makefile`,`makefile`,`GNUmakefile`].includes(e)||e.endsWith(`.mk`)?`make`:/\.ya?ml$/.test(e)?`actions`:``;function d(d,f){let p=Array.isArray(f.modes)?new Set(f.modes):typeof f.modes==`string`?new Set(f.modes.split(`,`)):null,m=new Set,h=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=o(e);try{if(r(t).isFile()){h.add(t);continue}for(let e of n(t,{withFileTypes:!0}))if(e.isFile())h.add(a(t,e.name));else if(s.has(e.name))try{for(let r of n(a(t,e.name,`workflows`),{withFileTypes:!0}))r.isFile()&&/\.ya?ml$/.test(r.name)&&h.add(a(t,e.name,`workflows`,r.name))}catch{}}catch{}}for(let e of h){let n=i(e),r=u(n);if(!(!r||p&&!p.has(r)&&!(r===`actions`&&p.has(`docker`))))try{let r=t(e,`utf8`);if(n===`package.json`){let e;try{e=JSON.parse(r)}catch{continue}let t=l.flatMap(t=>Object.values(e[t]??{}));typeof e.packageManager==`string`&&t.push(e.packageManager.split(`@`,1)[0]);for(let e of t)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(r)&&m.add(`jsrapi`),/\b(?:catalogs?|overrides):|:\s*["']?[~^<>=]*\d/.test(r)&&m.add(`registry`);else if(n===`pyproject.toml`)/^[ \t]*["'][A-Za-z0-9][\w.-]*(?:\[[^\]]+\])?\s*(?:[<>=!~]|@)/m.test(r)&&m.add(`pypiapi`);else if(n===`Cargo.toml`)/^\s*\[(?:target\.[^\]]+\.)?(?:dev-|build-)?dependencies\]/m.test(r)&&m.add(`cargoapi`);else if(n===`go.mod`||n===`go.work`)/^\s*(?:require\s+)?\S+\s+v\d/m.test(r)&&m.add(`goproxy`);else if(/^Dockerfile(?:\..+)?$/.test(n)||/^(?:docker-|compose).*\.ya?ml$/.test(n))/^\s*(?:FROM\s+(?:--\S+\s+)*|image\s*:\s*)[^\s#]+[:@]/im.test(r)&&m.add(`dockerapi`);else if([`Makefile`,`makefile`,`GNUmakefile`].includes(n)||n.endsWith(`.mk`))/\bgo\s+install\s+\S+@v\d/.test(r)&&m.add(`goproxy`),/\b(?:docker|image)\b[^\n]*[\w./-]+:[\w.-]+/i.test(r)&&m.add(`dockerapi`);else{let e=-1;for(let t of r.split(/\r?\n/)){let n=t.search(/\S|$/);e!==-1&&(!t.trim()||n>e)||(e=/:\s*[|>](?:[1-9][+-]?|[+-][1-9]?)?\s*(?:#.*)?$/.test(t)?n:-1,(!p||p.has(`actions`))&&/^\s*(?:-\s*)?uses\s*:\s*["']?(?!\.\/|docker:\/\/)[^\s#]+@/.test(t)&&m.add(`forgeapi`),(!p||p.has(`docker`))&&/^\s*(?:(?:container|image)\s*:\s*["']?[^\s#]+[:@]|(?:-\s*)?uses\s*:\s*["']?docker:\/\/)/.test(t)&&m.add(`dockerapi`))}}}catch{}}let _=new Set;for(let n of m){let r=f[n];if(n===`registry`&&typeof r!=`string`)try{r=/^\s*registry\s*=\s*(\S+)\s*$/m.exec(t(a(d,`.npmrc`),`utf8`))?.[1]}catch{}else n===`goproxy`&&typeof r!=`string`&&(r=e.GOPROXY);let i=typeof r==`string`&&r?r:c[n];if(!(n===`goproxy`&&(i=i.split(/[|,]/,1)[0].trim(),i===`off`||i===`direct`)))try{_.add(`${new URL(i).origin}/`)}catch{}}return Array.from(_)}export{d as prewarmOrigins};
package/dist/shared.js CHANGED
@@ -1,20 +1,26 @@
1
- import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{parseArgs as a,styleText as o}from"node:util";import{basename as s,dirname as c,isAbsolute as l,join as u,relative as d,resolve as f}from"node:path";import{accessSync as p,globSync as m,readFile as h,readFileSync as g,readdirSync as _,realpathSync as v,statSync as y,truncateSync as b,writeFileSync as ee}from"node:fs";import{access as te,mkdir as ne,readFile as x,rename as S,writeFile as C}from"node:fs/promises";import{AsyncLocalStorage as re}from"node:async_hooks";import{Buffer as ie}from"node:buffer";import{createHash as w}from"node:crypto";import{homedir as T}from"node:os";import{pathToFileURL as ae}from"node:url";const oe=/^\[\[([^\]]+)\]\]$/,E=/^\[([^[\]]+)\]$/,D=()=>Object.create(null);function O(e){let t=D(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e],a=pe(i).trim();if(!a)continue;let o=oe.exec(a);if(o){let e=t,r=fe(o[1]);for(let t=0;t<r.length-1;t++){let n=e[r[t]];Array.isArray(n)?e=n[n.length-1]:((!n||typeof n!=`object`)&&(e[r[t]]=D()),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let a=D();e[i].push(a),n=a;continue}let s=E.exec(a);if(s){n=he(t,fe(s[1]));continue}let c=j(a,`=`);if(c<0)continue;let l=a.slice(0,c).trim(),u=a.slice(c+1).trim(),d=fe(l),f=he(n,d.slice(0,-1)),p=d[d.length-1],m=se(u);if((u.startsWith(`[`)||u.startsWith(`{`))&&!ue(u)){let t=u,n=e+1;for(;n<r.length&&(t+=`\n${pe(r[n])}`,!ue(t));n++);e=n,f[p]=k(t)}else if(m){let t=u.slice(3),n=e+1;for(;n<r.length;n++){let e=r[n].indexOf(m);if(e>=0){t+=(t?`
1
+ import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{accessSync as a,globSync as o,readFile as s,readFileSync as c,readdirSync as l,realpathSync as u,statSync as d,truncateSync as f,writeFileSync as p}from"node:fs";import{basename as m,dirname as h,isAbsolute as g,join as _,relative as v,resolve as y,sep as b}from"node:path";import{pathToFileURL as x}from"node:url";import{parseArgs as S,styleText as ee}from"node:util";import{access as te,mkdir as C,readFile as w,readdir as ne,realpath as T,rename as re,stat as ie,unlink as E,utimes as ae,writeFile as oe}from"node:fs/promises";import{AsyncLocalStorage as se}from"node:async_hooks";import{Buffer as D}from"node:buffer";import{setTimeout as O}from"node:timers/promises";import{createHash as ce}from"node:crypto";import{homedir as k}from"node:os";const A=/^\[\[([^\]]+)\]\]$/,le=/^\[([^[\]]+)\]$/,ue=[`"""`,`'''`],j=()=>Object.create(null);function de(e){let t=j(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=ge(r[e]).trim();if(!i)continue;let a=A.exec(i);if(a){let e=t,r=he(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]]=j()),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let o=j();e[i].push(o),n=o;continue}let o=le.exec(i);if(o){n=P(t,he(o[1]));continue}let s=N(i,`=`);if(s<0)continue;let c=i.slice(0,s).trim(),l=i.slice(s+1).trim(),u=he(c),d=P(n,u.slice(0,-1)),f=u[u.length-1],p=ue.find(e=>l.startsWith(e)&&!l.includes(e,3))??``,m={depth:0,inStr:null,index:0};if((l.startsWith(`[`)||l.startsWith(`{`))&&!M(l,m)){let t=l,n=e+1;for(;n<r.length&&(t+=`\n${ge(r[n])}`,!M(t,m));n++);e=n,d[f]=fe(t)}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?`
2
2
  `:``)+r[n].slice(0,e);break}t+=(t?`
3
- `:``)+r[n]}e=n,f[p]=k(m+t+m)}else f[p]=k(u)}return t}function se(e){let t=e.slice(0,3);return t!==`"""`&&t!==`'''`||e.includes(t,3)?``:t}function k(e){if(e.startsWith(`[`)){let t=[],n=me(e,`]`);for(let r of de(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(k(e))}return t}return e.startsWith(`{`)?le(e):e.startsWith(`"""`)?ge(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ge(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):ce(e)}function ce(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+(\.\d+)?$/.test(e)?Number(e):e}function le(e){let t=D(),n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of de(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=k(e.slice(n+1).trim())}return t}function ue(e){let t=0,n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else if(i===`"`||i===`'`)n=i;else if(i===`{`||i===`[`)t++;else if((i===`}`||i===`]`)&&(t--,t===0))return!0}return!1}function de(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function fe(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function pe(e){let t=j(e,`#`);return t<0?e:e.slice(0,t)}function*A(e,t){let n=null;for(let r=0;r<e.length;r++){let i=e[r];if(n){if(i===`\\`&&n===`"`){r++;continue}i===n&&(n=null)}else i===`"`||i===`'`?n=i:i===t&&(yield r)}}function j(e,t){return A(e,t).next().value??-1}function me(e,t){let n=-1;for(let r of A(e,t))n=r;return n}function he(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=D()),e=e[n];return e}function ge(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
4
- `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}function _e(e,t,n){if(e===t)return e;let r=0;for(;r<e.length&&r<t.length&&e[r]===t[r];)r++;if(r>0&&e[r-1]!==`.`&&e[r-1]!==`-`){let t=r-1;for(;t>=0&&e[t]!==`.`&&e[t]!==`-`;)t--;if(t>=0)r=t+1;else{let t=0;for(;t<r;){let n=e.charCodeAt(t);if(n>=48&&n<=57)break;t++}r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}const ve=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,ye=/^(\s*\()([^)]*)(\)\s*)$/,M=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,be=new Set([`===`,`==`,`>=`,`~=`]),xe=/^v?\d[0-9a-z.!+_-]*$/i;function Se(e){let t=[];for(let n of e.split(`,`)){let e=M.exec(n);if(!e)return null;let[,r,i,a,o,s]=e;t.push({lead:r,op:i,sep:a,version:o,trail:s})}return t}function Ce(e){let t=e.indexOf(`;`),n=ve.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[,r,i,a,o,s,c]=n,l=ye.exec(c);return{name:i,extras:o,specifiers:Se(l?l[2]:c),marker:t===-1?``:e.slice(t),head:`${r}${i}${a}${o}${s}`,open:l?.[1]??``,close:l?.[3]??``}}function N({head:e,open:t,close:n,marker:r},i){return`${e}${t}${i.map(({lead:e,op:t,sep:n,version:r,trail:i})=>`${e}${t}${n}${r}${i}`).join(`,`)}${n}${r}`}function we(e){return e.find(({op:e,version:t})=>be.has(e)&&xe.test(t))}function Te(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=Ce(n);if(!e?.specifiers)continue;let r=we(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const Ee=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],De=[`node`,`deno`,`bun`],P=[`.github`,`.gitea`,`.forgejo`],F={"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)=>{if(t===e.length){a!==void 0&&n.push([i,a]);return}if(!a||typeof a!=`object`)return;let o=e[t],s=o===`*`?Array.isArray(a)?[]:Object.keys(a):[o];for(let n of s)r(e,t+1,i?`${i}.${n}`:n,a[n])};for(let n of e)r(n.split(`.`),0,``,t);return n}function 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 I(e){return e.split(`,`).filter(Boolean)}function Pe(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function Fe(e,t,n=` `){let r=Array(e[0].length).fill(0),i=Array(e.length);for(let n=0;n<e.length;n++){let a=e[n],o=Array(a.length);for(let e=0;e<a.length;e++){let n=t(a[e]);o[e]=n,n>r[e]&&(r[e]=n)}i[n]=o}let a=``;for(let t=0;t<e.length;t++){let o=e[t],s=o.length-1;for(let e=0;e<=s;e++)if(e>0&&(a+=n),a+=o[e],e!==s){let n=r[e]-i[t][e];n>0&&(a+=` `.repeat(n))}t<e.length-1&&(a+=`
5
- `)}return a}const 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]=t,r=Ie[n.toLowerCase()];if(r)return Number(e)*r}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 L(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function ze(e){try{return await e}catch{return null}}const R=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Be(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(R).join(`|`)}function Ve(e){return e instanceof RegExp?/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e:RegExp(`^${R(e).replaceAll(`\\*`,`.*`)}$`,`i`)}async function He(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=c(n);if(r===n)return null;n=r}}function Ue(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function z(e,t,n){let r=e.get(t);if(r!==void 0||e.has(t))return r;let i=n();return e.set(t,i),i}function We(e){let t=new Map;return n=>z(t,n,()=>e(n))}const Ge=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,Ke=new Map;function B(e){return typeof e==`string`?z(Ke,e,()=>{let t=Ge.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function qe(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:+(e>t)}function V(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function Je(e,t){let n=V(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=qe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function Ye(e){return B(e)?.version??null}function H(e){return B(e)}const Xe=new Map,Ze=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function U(e){return typeof e==`string`?z(Xe,e,()=>{let t=Ze.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function Qe(e,t){let n=B(e),r=B(t);return!n||!r?null:$e(n,r)}function $e(e,t){if(e.version===t.version)return null;let n=Je(e,t),r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(V(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 et(e,t){let n=B(e),r=B(t);return n&&r?Je(n,r):null}function W(e,t){return(et(e,t)??-1)>0}function tt(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=B(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function nt(e,t){let n=Je(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function G(e,t,n){return`${e}.${t}.${n}-0`}function rt(e){return e.replace(/([~^])\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:\.[xX*])*((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a)=>{let o=Number(n),s=r===void 0?0:Number(r),c=i===void 0?0:Number(i),l=(t===`~`?r:i)===void 0?``:a,u;return u=r===void 0?G(o+1,0,0):t===`~`?G(o,s+1,0):o===0?i!==void 0&&s===0?G(0,0,c+1):G(0,s+1,0):G(o+1,0,0),`>=${o}.${s}.${c}${l} <${u}`})}function it(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${G(p+1,0,0)}`:`<${G(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function at(e,t,n,r){return!e||e===`=`?r?`>=${t}.0.0 <${G(t+1,0,0)}`:`>=${t}.${n}.0 <${G(t,n+1,0)}`:e===`>`?r?`>=${t+1}.0.0`:`>=${t}.${n+1}.0`:e===`<=`?r?`<${G(t+1,0,0)}`:`<${G(t,n+1,0)}`:e===`<`?r?`<${t}.0.0-0`:`<${t}.${n}.0-0`:r?`>=${t}.0.0`:`>=${t}.${n}.0`}function ot(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n,r)=>at(t,Number(n),Number(r),!1)),e=e.replace(/(>=|<=|>|<|=)?\s*v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t,n)=>at(t,Number(n),0,!0)),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)\.(\d+)(?=\s|$)/g,(e,t,n,r,i)=>`${t}${at(n,Number(r),Number(i),!1)}`),e=e.replace(/(^|[\s|])(>=|<=|>|<|=)?\s*v?(\d+)(?=\s|$)/g,(e,t,n,r)=>`${t}${at(n,Number(r),0,!0)}`),e)}const st=new Map;function ct(e){return z(st,e,()=>{let t=e.split(`||`).map(e=>e.trim()),n=[];for(let e of t){if(!e){n.push([]);continue}e=it(e),e=rt(e),e=ot(e),e=e.replace(/(>=|<=|>|<|=)\s+/g,`$1`),e=e.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)*)?)\b/g,(e,t,n)=>`${t}=${n}`);let t=[];for(let n of e.split(/\s+/).filter(Boolean)){let e=tt(n);if(!e)return null;t.push(e)}if(t.length===0)return null;n.push(t)}return n.length?n:null})}function lt(e,t){return t.some(t=>!nt(e,t))?!1:e.prerelease.length>0?t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch):!0}function K(e,t){let n=B(e);if(!n)return!1;let r=ct(t);if(!r)return!1;for(let e of r)if(e.length===0||lt(n,e))return!0;return!1}function ut(e){return typeof e==`string`&&ct(e)?e:null}const dt=`v?(?:(\\d+)!)?(\\d+(?:\\.\\d+)*)(?:[-_.]?(a|b|c|rc|alpha|beta|pre|preview)[-_.]?(\\d+)?)?(?:-(\\d+)|[-_.]?(post|rev|r)[-_.]?(\\d+)?)?(?:[-_.]?(dev)[-_.]?(\\d+)?)?(?:\\+([a-z0-9]+(?:[-_.][a-z0-9]+)*))?`,ft=RegExp(`^${dt}$`,`i`),pt=RegExp(dt,`i`),mt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},ht=new Map;function q(e){return typeof e==`string`?z(ht,e,()=>{let t=ft.exec(e.trim());if(!t)return null;let n=t[3]?.toLowerCase();return{epoch:t[1]?Number(t[1]):0,release:t[2].split(`.`).map(Number),pre:n?[mt[n]??n,Number(t[4]??0)]:null,post:t[5]===void 0?t[6]===void 0?null:Number(t[7]??0):Number(t[5]),dev:t[8]===void 0?null:Number(t[9]??0),local:t[10]?t[10].toLowerCase().split(/[._-]/).map(e=>/^\d+$/.test(e)?Number(e):e):null,version:e.trim()}}):null}function gt(e){return q(e)??q(pt.exec(e)?.[0]??``)}const _t=e=>!!(e.pre||e.dev);function vt(e,t){if(!e||!t)return e?1:t?-1:0;let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=typeof e[r]==`number`;if(n!==(typeof t[r]==`number`))return n?1:-1;if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length-t.length}function yt(e,t){if(e.epoch!==t.epoch)return e.epoch-t.epoch;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++){let n=(e.release[r]??0)-(t.release[r]??0);if(n)return n}let r=e.pre?0:e.post===null&&e.dev!==null?-1:1,i=t.pre?0:t.post===null&&t.dev!==null?-1:1;if(r!==i)return r-i;if(e.pre&&t.pre){if(e.pre[0]!==t.pre[0])return e.pre[0]<t.pre[0]?-1:1;if(e.pre[1]!==t.pre[1])return e.pre[1]-t.pre[1]}if((e.post??-1)!==(t.post??-1))return(e.post??-1)-(t.post??-1);let a=e.dev??1/0,o=t.dev??1/0;return a===o?vt(e.local,t.local):a<o?-1:1}function bt(e,t){if(e.epoch!==t.epoch)return`major`;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++)if((e.release[r]??0)!==(t.release[r]??0))return r===0?`major`:r===1?`minor`:`patch`;return null}function xt(e,t){let n=yt(e,t);if(n===0)return null;let r=bt(e,t);return _t(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const St=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Ct={parse:H,parseRange:e=>H(St.exec(e)?.[0]??``)??H(U(e)?.version??``),compare:Je,diff:$e,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:(e,t)=>K(e.version,t)},wt=new Map;function Tt(e){return z(wt,e,()=>{let t=e.trim().replace(/^v/i,``);return(H(t)??H(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?H(U(t)?.version??``):null)})}const Et={...Ct,parse:Tt,parseRange:Tt,isRangePrerelease:e=>!!Tt(e)?.prerelease.length},Dt={parse:q,parseRange:gt,compare:yt,diff:xt,isPrerelease:_t,isRangePrerelease:e=>{let t=gt(e);return!!(t&&_t(t))},satisfiesRange:({release:e},t)=>K(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Ot=[[1e3,6e4,`sec`,`s`,`second`],[6e4,36e5,`min`,`m`,`minute`],[36e5,864e5,`hour`,`h`],[864e5,6048e5,`day`,`d`],[6048e5,2628e6,`week`,`w`],[2628e6,31536e6,`month`,`mo`],[31536e6,1/0,`year`,`y`]],kt={"1 day ago":`yesterday`,"1 week ago":`last week`,"1 month ago":`last month`,"1 year ago":`last year`,"in 1 day":`tomorrow`,"in 1 week":`next week`,"in 1 month":`next month`,"in 1 year":`next year`};function At(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function jt(e,{now:t,noAffix:n=!1,times:r=Ot,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=kt,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():At(t))-At(e);if(Number.isNaN(d))return o||String(e);let f=d<0;if(f&&(d=-d),d<i)return a;let p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(d>=t[1])continue;let n=Math.trunc(d/t[0]);p=u?`${n}${t[3]||t[2]}`:`${n} ${l&&t[4]||t[2]}${n>1?`s`:``}`;break}let m=n?p:f?`in ${p}`:`${p} ago`;return s?c[m]??m:m}function Mt(e){return new Promise((t,n)=>{h(e,`utf8`,(e,r)=>e?n(e):t(r))})}const Nt=u(r===`win32`?t.LOCALAPPDATA||u(T(),`AppData`,`Local`):t.XDG_CACHE_HOME||u(T(),`.cache`),`updates`);let Pt=null;const Ft=new Map;function It(e){return z(Ft,e,()=>w(`sha256`).update(e).digest(`hex`).substring(0,16))}async function Lt(e){try{let t=await Mt(u(Nt,`${It(e)}.cache`)),n=t.indexOf(`
6
- `);if(n===-1)return null;let r=t.substring(0,n),i=t.substring(n+1);return r&&i?{etag:r,body:i}:null}catch{return null}}const Rt=new Set;let zt=0;function Bt(e,t,r){let i=(async()=>{try{await(Pt??=ne(Nt,{recursive:!0}))}catch{Pt=null;return}try{let i=u(Nt,`${It(e)}.cache`),a=`${i}.${n}-${zt++}.tmp`;await C(a,`${t}\n${r}`),await S(a,i)}catch{}})();Rt.add(i),(async()=>{await i,Rt.delete(i)})()}async function Vt(){for(;Rt.size;)await Promise.all(Rt)}var Ht=`18.0.4`;function Ut(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Wt=Ht,Gt=5e3,Kt=2500,qt=`https://api.github.com`,J={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:qt,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},Y=e=>e[0]===`v`?e.substring(1):e,Jt=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Yt(e,t){return{headers:{"user-agent":`updates/${Wt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const Xt=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function Zt(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&Xt.has(t)}async function Qt(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=Zt(t),n}}async function $t(e,t,n={}){let r=fn(e);for(let i=0;;i++)try{return await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)}))}catch(e){if(i>=2||!e?.transient)throw e}}async function en(e){return typeof e.text==`function`?e.text():JSON.stringify(await e.json())}const tn=e=>t=>JSON.stringify(e(JSON.parse(t)));function nn(e,t){if(!t||e.length<16384)return e;try{return t(e)}catch{return e}}async function rn(e,t,n,r,i){let a=nn(await en(t),r);return i&&!n.noCache&&Bt(e,i,a),{body:a,res:t}}async function an(e,t,n={},r,i=e){let a=t.noCache?null:await Lt(i),o=n.headers,s=a?{...o,"if-none-match":a.etag}:o,c=await $t(t,e,{...n,headers:s});return c?c.status===304&&a?{body:a.body,res:c}:c.ok?rn(i,c,t,r,c.headers?.get?.(`etag`)):{res:c}:{res:void 0}}async function on(e,t,n={},r){if(!t.noCache){let t=await Lt(e);if(t)return{body:t.body}}let i=await $t(t,e,n);return i?i.ok?rn(e,i,t,r,`immutable`):{res:i}:{res:void 0}}function sn(e,t,n,r){let i=z(e,t,()=>new Map),a=i.get(n);return a||i.set(n,a=(async()=>{try{return await r()}catch(e){throw i.delete(n),e}})()),a}const cn=new re;function ln(e){let t=0,n=0,r=[];return async i=>{if(cn.getStore())return i();t<e?t++:await new Promise(e=>{r.push(e)});try{return await cn.run(!0,i)}finally{n<r.length?(r[n++](),n===r.length&&(r=[],n=0)):t--}}}const un=e=>Math.max(e.concurrency||25,1),dn=new WeakMap;function fn(e){let t=dn.get(e);return t||dn.set(e,t=ln(un(e))),t}function pn(e,t=Ct){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}function mn(e,t,n){let r=e.get(t);if(r)return r;let i=new Set(t);return n(i),e.set(t,i),i}const hn=new WeakMap,gn=new WeakMap;function _n(e,t,n,r,i=Ct){let a=t||i.isRangePrerelease(e),o=r;return t?o=mn(hn,r,e=>{e.add(`prerelease`),r.has(`patch`)&&e.add(`prepatch`),r.has(`minor`)&&e.add(`preminor`),r.has(`major`)&&e.add(`premajor`)}):a&&(o=mn(gn,r,e=>e.add(`prerelease`))),{effectiveSemvers:o,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function vn(e){return U(e)?.version??``}function yn(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=Ct}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=_n(n,a,o,r,m),v=s?m.parse(s):null,y=i||a&&!o||v&&c&&!m.satisfiesRange(v,c)?null:v,b=!!(y&&m.compare(h,y)>0),ee=!!c&&!l&&!m.satisfiesRange(h,c),te=!!u&&(!!y||m.isPrerelease(h)),ne=e?.time,x=!!(d&&f),S=null;for(let e of t){let t=m.parse(e);if(!t||_(t))continue;let n=m.compare(t,h)<=0;if(n&&!ee&&!te||S&&m.compare(t,S)<=0||n&&!ee&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||x&&!Ut(p?p(e):ne?.[e],d,f))continue;let r=m.diff(h,t),i=r&&!m.isPrerelease(t)?r.replace(/^pre/,``):r;!i||!g.has(i)||(S=t)}return S?.version??null}function bn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function xn(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`?Dt:Ct,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;m=Object.keys(t).filter(e=>!t[e]?.some(e=>e?.yanked)),g=e=>t[e]?.[0]?.upload_time_iso_8601,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[vn(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=vn(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=_n(p,i,a,o,f),m=e.old||p,h=f.parseRange(m),g=!!d||!!s&&!c&&!!h&&!f.satisfiesRange(h,s),_=(e,i)=>{let a=vn(e),o=f.parse(e);if(!a||bn(e)||r(o))return!1;let c=Qe(m,e)??Qe(t,a);return!c||!n.has(c)||!g&&o&&h&&f.compare(o,h)<0||!Ut(i,l,u)?!1:!s||K(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return yn(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 Sn(e){try{return new URL(e).host}catch{return``}}function Cn(e){for(let n of I(t.UPDATES_FORGE_TOKENS??``)){let t=n.lastIndexOf(`:`);if(t>0&&n.slice(0,t)===e)return n.slice(t+1)}return null}let wn;async function Tn(){let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)}function En(){return wn??=Tn()}const Dn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function On(){return Array.from(new Set(Dn.map(e=>t[e]).filter(e=>!!e)))}let kn;function An(){let e=On();return e.length?Promise.resolve(e):kn??=(async()=>{try{let{stdout:e}=await(await En())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const jn=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function Mn(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=jn.exec(n);if(!e)continue;let r=Sn(e[1]),i=ie.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let Nn;function Pn(){return Nn??=(async()=>{try{let{stdout:e}=await(await En())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return Mn(e)}catch{return new Map}})()}const Fn=new Map;async function In(e,t){if(!e)return[];let n=Cn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===Sn(t),[a,o]=await Promise.all([i?An():[],Pn()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}var Ln=class extends Error{name=`ForgeError`;kind;host;status;reset;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),this.kind=e,this.host=t,this.status=r,this.reset=i}};async function Rn(e){if(e.status!==403&&e.status!==429)return null;let t=()=>Number(e.headers?.get?.(`x-ratelimit-reset`))||0;if(e.headers?.get?.(`x-ratelimit-remaining`)===`0`||e.headers?.get?.(`retry-after`))return t();try{let{message:n}=await(typeof e.clone==`function`?e.clone():e).json();if(typeof n!=`string`)return null;if(n.includes(`rate limit exceeded`)||n.includes(`abuse detection mechanism`)||n.startsWith(`You have exceeded a secondary rate limit`))return t()}catch{}return null}async function zn(e,t,n,r){if(e.status>=500)throw new Ln(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Rn(e);if(i===null)return e;throw new Ln(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS`}${i?`, resets at ${new Date(i*1e3).toISOString()}`:``}`,{status:e.status,reset:i})}async function Bn(e,t,n){let r=Sn(e),i=await In(r,t.forgeApiUrl),a=e=>{let t=Yt(`Bearer`,e);return n&&(t.headers={...t.headers,...n}),t},o=async n=>zn(await $t(t,e,a(n)),e,r,i.length>0);try{if(!i.length)return await o();let e=Fn.get(r);if(e)return await o(e);for(let e of i){let t=await o(e);if(t.status!==401&&t.status!==403)return Fn.set(r,e),t}return await o()}catch(e){throw e instanceof Ln?e:new Ln(`network`,r,e?.message??String(e),{cause:e})}}function Vn(e,t){let n=Y(t);if(!Ye(n))return null;let r=``,i=``;for(let t of e){let e=Y(t);Ye(e)&&(!r||W(e,i))&&(r=t,i=e)}return r&&W(i,n)?r:null}function Hn(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Un=/^(?=.*[a-f])[0-9a-f]{6,}$/i;function Wn(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Gn(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function Kn(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function qn(e,t,n){let r=t.noCache?null:await Lt(e),i=await Bn(e,t,r?{"if-none-match":r.etag}:void 0);if(i?.status===304&&r)return r.body;if(!i?.ok)return null;let a=await n(i),o=i.headers.get(`etag`);return o&&!t.noCache&&Bt(e,o,a),a}async function Jn(e,t){let n=await qn(e,t,async e=>JSON.stringify({link:e.headers.get(`link`)||``,tags:Kn(await e.json())}));if(!n)return null;try{let e=JSON.parse(n);return{tags:e.tags||[],link:e.link||``}}catch{return null}}async function Yn(e,t,n,r,i=[]){let a=r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,o=[],s=new Set(i.filter(Boolean)),c=s.size>0,l=e=>{for(let t of e?.tags??[]){for(let e of s)(e===t.name||t.commitSha.startsWith(e))&&s.delete(e);o.push(t)}return c&&!s.size};try{let e=await Jn(a(1),r);if(!e)return o;let t=/<([^>]+)>;\s*rel="last"/.exec(e.link),n=t?Math.min(Number(new URL(t[1]).searchParams.get(`page`)),100):0,i=un(r);for(let t=2,o=1,s=l(e);t<=n&&!s;t+=o,o=Math.min(o*2,i)){let e=await Promise.all(Array.from({length:Math.min(o,n-t+1)},(e,n)=>Jn(a(t+n),r)));for(let t of e)s=l(t)}return o}catch(e){if(e instanceof Ln)throw e;return[]}}function X(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}const Xn=e=>Number(e[0])>=2e7;function Zn(e,t){let n=Y(e).split(`.`),r=Y(t).split(`.`);return n.length<r.length?!1:!Xn(n)||Xn(r)}function Qn(e,t,n=``){let r=Y(e),i=Y(t).split(`.`).length,a=r.split(`.`),o=i>=3?r:Array.from({length:i},(e,t)=>a[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${o}${n}`}function $n(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const er=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function tr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of er)if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=Hn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${$n(a)}/${e.directory}`)),a||t||``)}const nr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-cache":{short:`x`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function rr(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.filter(e=>typeof e==`string`).flatMap(I)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function ir(e){for(let[t,{short:n}]of Object.entries(nr))if(t===e||n===e)return t;return``}function ar(e){return new Set(e.map(Ve))}function or(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(I):[]}function sr(e){for(let[t,n]of Object.entries(e??{}))if(!ut(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function cr(e){let t={};for(let n of Array.isArray(e)?e:[e]){if(typeof n!=`string`)continue;let e=n.indexOf(`=`);if(e<1)throw Error(`Invalid pin: ${n}, expected <dep>=<range>`);t[n.slice(0,e)]=n.slice(e+1)}return sr(t),t}function lr(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:ar(e)}async function ur(e){let t=await Promise.all([`js`,`ts`,`mjs`,`mts`].map(async t=>{let n=`updates.config.${t}`,r=u(e,n);try{await te(r)}catch{return null}try{return{configDir:e,default:(await import(ae(r).href)).default??{}}}catch(e){return Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}));for(let e of t)if(e&&!(e instanceof Error))return e;for(let e of t)if(e instanceof Error)throw e;return null}const dr=We(e=>He(e,ur));async function fr(e,t={}){let n=await dr(e),r=n?.default??{},{loadRenovateConfig:i,makePresetFetcher:a}=await import(`./renovate.js`),o=a(t),s=await i(n?.configDir??e,r.inherit?.renovate,o),c={...s,...r};return s.pin&&(c.pin={...s.pin,...r.pin},c.pinNoDowngrade=Object.keys(s.pin).filter(e=>!r.pin?.[e])),s.overrides?.length&&(c.overrides=[...s.overrides,...r.overrides??[]]),sr(c.pin),c}function pr(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||e.startsWith(`#`)||e.startsWith(`;`))continue;let r=e.indexOf(`=`);if(r===-1)continue;let i=e.slice(r+1).trim();/^(["']).*\1$/s.test(i)&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function mr(e){try{return pr(g(e,`utf-8`))}catch{return}}function hr(e,t){let n=t;for(;;){let t=u(n,e);try{if(y(t).isFile())return t}catch{}let r=c(n);if(r===n)break;n=r}}function gr(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function _r(n,i={},a=e()){let o=r===`win32`,s=o?t.USERPROFILE:t.HOME,c=[{...i}],l=[];function d(e){if(!e||l.includes(e))return;let t=mr(e);t&&(c.push(t),l.push(e))}o||(d(u(`/etc`,n,`config`)),d(u(`/etc`,`${n}rc`))),s&&(d(u(s,`.config`,n,`config`)),d(u(s,`.config`,n)),d(u(s,`.${n}`,`config`)),d(u(s,`.${n}rc`))),d(hr(`.${n}rc`,a));let f=gr(`${n}_`);return f.config&&d(f.config),Object.assign({},...c,f,l.length?{configs:l,config:l[l.length-1]}:void 0)}const vr=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,yr=/^([^/]+)\/([^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,br=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,xr=/(@[^/]+\/)?([^/]+)/g,Sr=/^(?:@[^/]+\/)?[^@]+/,Cr=new Set([`resolutions`,`overrides`]);function wr(e){let t=e.match(xr),n=t?t[t.length-1]:e;return Sr.exec(n)?.[0]??n}const Tr=J.registry,Er=new Map,Dr=new Map;function Or(e){return z(Er,e??``,()=>_r(`npm`,{registry:Tr},e))}function kr(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Ar(e,t){let n=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],r=n(`_authToken`);if(r)return{token:kr(r),type:`Bearer`};let i=n(`username`),a=n(`_password`);if(i&&a){let e=Buffer.from(kr(a),`base64`).toString(`utf8`);return{token:Buffer.from(`${i}:${e}`).toString(`base64`),type:`Basic`,username:i,password:e}}let o=n(`_auth`);if(o)return{token:kr(o),type:`Basic`}}function jr(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Ar(`//${n.host}${r.replace(/\/$/,``)}`,t);if(e)return e;let i=r.endsWith(`/`)?r:`${r}/`;n.pathname=new URL(`..`,new URL(i,`http://x`)).pathname}let i=t._auth;if(i)return{token:kr(i),type:`Basic`}}function Mr(e,t){let n=t[`${e}:registry`]||``;return!n||n.endsWith(`/`)?n:`${n}/`}function Nr(e,t,n){let r=Or(n),i=e.startsWith(`@`)?e.split(`/`)[0]:``;return z(Dr,`${n??``}${i}:${t}`,()=>{let e,n=i&&Mr(i,r);if(n)try{let i=Jt(n);i!==t&&(e={auth:jr(i,r),registry:i})}catch{}return e??{auth:jr(t,r),registry:t}})}function Pr(e,t,n,r){let i=Jt(typeof n.registry==`string`&&n.registry||t.registry||Or(r).registry||Tr);return{...Nr(e,i,r),originalRegistry:i}}function Fr(e,t,n){let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r}const Ir=new WeakMap,Lr=new WeakMap,Rr=new WeakMap,zr=(e,t)=>`${e}\0v2${t?`-dates`:``}`;function Br(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 Vr(e,t,n,r,i,a,o=``){let s=Cr.has(t)?wr(e):t===`packageManager`&&e===`yarn`&&(H(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Pr(s,n,r,a),u=Fr(l,s),d=zr(u,!!r.needsDates);return[await sn(Ir,i,d,async()=>{let t=Yt(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await an(u,i,t,tn(Br),d);return`body`in n||X(n.res,u,e,l),JSON.parse(n.body)}),l]}async function Hr(e,t,n,r,i,a){let{auth:o,registry:s}=Pr(e,n,r,a),c=Fr(s,e,t);return sn(Lr,i,c,async()=>{try{let n=Yt(o?.type,o?.token),a=await on(c,i,n,tn(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=l?._npmOperationalInternal?.tmp;if(d){let e=/(\d{13})/.exec(d);e&&(u=new Date(Number(e[1])).toISOString())}let f=Fr(s,e);return!u&&r.needsDates&&(u=(await Ir.get(i)?.get(zr(f,!0)))?.time?.[t]||``),u||=(await ze(sn(Rr,i,f,async()=>{let e=await $t(i,f,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function Ur(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Wr(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Gr(e){return e.startsWith(`catalog:`)}const Kr=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function qr(e){let t=Kr.exec(e);return t&&ut(t[2])?{name:t[1],range:t[2]}:null}const Jr=[/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/,/^jsr:@([^/]+)\/([^@]+)@(.+)$/],Yr=/^@([^/]+)\/(.+)$/;function Xr(e,t){for(let t of Jr){let n=t.exec(e);if(n)return{scope:n[1],name:n[2],version:n[3]}}if(e.startsWith(`jsr:`)&&!e.startsWith(`jsr:@`)){let n=Yr.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function Zr(e,t){if(!Yr.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`,r=await an(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},tn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||X(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return[{name:e,"dist-tags":{latest:i.latest},versions:a,time:o},t.jsrApiUrl]}const Qr=new Set([32,9,10,13]);function $r(e){let t=new Map,n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e.charCodeAt(a);if(o===34){let t=a;for(;e.charCodeAt(++a)!==34&&a<e.length;)e.charCodeAt(a)===92&&a++;n===1&&r===null&&(r=e.slice(t+1,a),i=t)}else o===123||o===91?n++:o===125||o===93?(--n===0&&r!==null&&t.set(r,{start:i,end:a}),n===0&&(r=null)):o===44&&n===1&&r!==null&&(t.set(r,{start:i,end:a}),r=null)}return t}function ei(e,t,n,r){for(let i=e.indexOf(n,t);i!==-1;i=e.indexOf(n,i+1)){let t=i+n.length;for(;Qr.has(e.charCodeAt(t));)t++;if(e.charCodeAt(t)===58){for(t++;Qr.has(e.charCodeAt(t));)t++;if(e.startsWith(r,t))return t}}return-1}function ti(e,t){let n;try{n=JSON.parse(e)}catch{return e}let r=$r(e),i=new Map,a=[];for(let[o,{old:s,oldOrig:c,new:l}]of Object.entries(t)){let[t,u]=o.split(`\0`),d=n[t],f=typeof d==`string`,p=f?`${u}@${c||s}`:c||s,m=r.get(t);if(!m||(f?d:d?.[u])!==p)continue;let h=JSON.stringify(f?t:u),g=JSON.stringify(p),_=ei(e,i.get(t)??m.start,h,g);(_===-1||_>=m.end)&&(_=ei(e,m.start,h,g)),!(_===-1||_>=m.end)&&(i.set(t,_+g.length),a.push({index:_,length:g.length,text:JSON.stringify(f?`${u}@${l}`:l)}))}if(!a.length)return e;a.sort((e,t)=>e.index-t.index);let o=[],s=0;for(let{index:t,length:n,text:r}of a)t<s||(o.push(e.slice(s,t),r),s=t+n);return o.push(e.slice(s)),o.join(``)}const ni=String.raw`[<>]=?|[\^~=]`,ri=new RegExp(String.raw`^(${ni})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),ii=RegExp(`^(?:${ni})$`),ai=/^[xX*]$/,oi=/\+[0-9A-Za-z.-]+/g,si=/\|\||[\dxX*]\s+\S/;function ci(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&ii.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function li(e,t){let n=ri.exec(e);if(!n)return e;let[,r=``,i,a,o,s=``]=n,c=o.split(`.`);if(r===`<`&&!a&&c.length<=3&&!/[xX*]/.test(o)&&(!s||s===`-0`)){let{major:e,minor:n,patch:a}=H(t);return`${r}${i}${s?`${e+1}.0.0-0`:c.length===1?`${e+1}`:c.length===2?`${e}.${n+1}`:o.endsWith(`.0.0`)?`${e+1}.0.0`:`${e}.${n}.${a+1}`}`}if(r===`>`||r===`<`)return e;let l=t.split(`-`)[0].split(`.`);return l.join(`.`)===t?`${r}${i}${a}${c.map((e,t)=>ai.test(e)?e:l[t]??`0`).join(`.`)}`:`${r}${i}${a}${t}`}function ui(e,t){return e===`peerDependencies`||si.test(t)}function di(e,t){if(K(t,e))return e;let n=ci(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=li(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=li(r,t),n.join(` `)}function fi(e,t,n,r){let i=(n||e).replace(oi,``),a=ui(r,i)?di(i,t):li(i,t);return K(t,a)?a:i}function Z(e){if(/[xX*]/.test(e))return e;let t=e.match(br);return t?.length===1?e.replace(br,vn(t[0])):e}async function pi(e,t,n){let r=await qn(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,async e=>{let[t]=JSON.parse(await e.text());return JSON.stringify(t?[{sha:t.sha,commit:{committer:t.commit?.committer,author:t.commit?.author}}]:[])}),[i]=r?JSON.parse(r):[];return i?{hash:i.sha,commit:i.commit}:{hash:``,commit:{}}}async function mi(e,t,n,r){return(await Yn(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}async function hi(e,t,n){let r=t.old.replace(vr,``),[,i,a,o]=yr.exec(r)||[];if(!i||!a||!o)return null;let s=e=>{let n=t.old.lastIndexOf(o);return t.old.slice(0,n)+e+t.old.slice(n+o.length)};if(Un.test(o)){let{hash:t,commit:r}=await pi(i,a,n);if(!t)return null;let c=Gn(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:s(l),user:i,repo:a,oldRef:o,newRef:l,newDate:c}}else{let t=Vn(await mi(i,a,o,n),o);if(t)return{key:e,newRange:s(t),user:i,repo:a,oldRef:o,newRef:t}}return null}function gi(e){let t={};for(let[n,r]of Object.entries(e.releases??{})){let e=r??[];t[n]=e.slice(0,1).map(t=>({...t.upload_time_iso_8601&&{upload_time_iso_8601:t.upload_time_iso_8601},...e.some(e=>e?.yanked)&&{yanked:!0}}))}let{name:n,version:r,project_urls:i}=e.info??{};return{info:{name:n,version:r,project_urls:i},releases:t}}async function _i(e,t){let n=`${t.pypiApiUrl}/pypi/${e}/json`,r=await an(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},tn(gi));if(`body`in r)return[{...JSON.parse(r.body),name:e},null];X(r.res,n,e,t.pypiApiUrl)}function vi(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=q(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=q(n);if(!r)return!1;let i=yt(e,r);if(t===`==`)return i===0;if(t===`!=`)return i!==0;if(t===`>=`)return i>=0;let a=e.epoch===r.epoch&&Array.from({length:Math.max(e.release.length,r.release.length)}).every((t,n)=>(e.release[n]??0)===(r.release[n]??0));return t===`>`?i>0&&!(a&&e.post!==null&&r.post===null):t===`<=`?i<=0:t===`<`?i<0&&!(a&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function yi(e,t,n){let r=e.release.findIndex((e,n)=>e>t.release[n]);return r===0&&e.release[1]===0?r=1:r===-1&&(r=e.release.length-1),e.release.map((e,t)=>t>r?0:(n.release[t]??0)+Number(t===r)).join(`.`)}function bi(e,t){return e.release.length===t.release.length?t.version:Array.from({length:e.release.length},(e,n)=>t.release[n]??0).join(`.`)}function xi(e,t,n){let r=Ce(e),i=r?.specifiers,a=q(t),o=q(n);if(!r||!i||!a||!o)return null;let s=we(i);if(s?.version!==t)return null;for(let e of i){if(e===s){e.version=e.op===`~=`?bi(a,o):n;continue}if(vi(o,e))continue;let t=q(e.version);e.op===`<`&&t?e.version=yi(t,a,o):e.op===`<=`&&(e.version=n)}return i.some(e=>!vi(o,e))?null:N(r,i)}function Si(e,t){let n=e;for(let[e,{old:r,oldOrig:i,new:a}]of Object.entries(t)){let t=e.split(`\0`)[1],o=i||r,s=RegExp(`(['"])( *${R(t)}(?![\\w.-]).*?)(?=\\1)`,`g`);n=n.replace(s,(e,t,n)=>`${t}${xi(n,o,a)??n}`)}return n}function Ci(e){let t=e.includes(`:/`)||e.startsWith(`/`);return Jt(!t&&/[.:/]/.test(e)?`https://${e}`:e)}function wi(e){let t=[],n=e;for(;n;){let e=n.search(/[,|]/),r=(e===-1?n:n.slice(0,e)).trim(),i=e!==-1&&n[e]===`|`?`|`:`,`;if(n=e===-1?``:n.slice(e+1),r){if(r===`off`||r===`direct`){t.push({url:r,fallback:i});break}t.push({url:Ci(r),fallback:i})}}return t}function Ti(e){if(typeof e==`string`)return[{url:Jt(e),fallback:`,`}];let n=wi(t.GOPROXY||`${J.goproxy},direct`);return n.length?n:[{url:J.goproxy,fallback:`,`}]}function Ei(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Di=new Map;function Oi(e){return z(Di,e,()=>{let t=``;for(let n=0;n<e.length;n++){let r=e[n];if(r===`*`)t+=`[^/]*`;else if(r===`?`)t+=`[^/]`;else if(r===`[`&&e.includes(`]`,n+1)){let r=e.indexOf(`]`,n+1);t+=`[${e.slice(n+1,r).replace(/\\/g,`\\\\`)}]`,n=r}else t+=R(r)}return RegExp(`^${t}(?:/.*)?$`)})}function ki(e,t){return t.some(t=>Oi(t).test(e))}function Ai(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const ji=/\/v(\d+)$/,Mi=/^gopkg\.in\/.*?\.v(\d+)$/;function Ni(e){let t=Mi.exec(e)??ji.exec(e);return t?Number.parseInt(t[1]):1}function Pi(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(ji,``);return t<=1?n:`${n}/v${t}`}function Fi(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Y(t).split(`.`)[0]);return Number.isNaN(n)||n===Ni(e)?e:Pi(e,n)}const Ii=/^require\s*\(/,Li=/^replace\s*\(/,Ri=/^tool\s*\(/,zi=/^use\s*\(/,Bi=/^replace\s+/,Vi=/^(\S+)\s+(v\S+)/,Hi=/^require\s+(\S+)\s+(v\S+)/,Ui=/^tool\s+(\S+)/,Wi=/^use\s+(\S+)/,Gi=/^(\S+)/,Ki=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,qi=/^replace\s+(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Ji=/^"(.*)"$/,Yi=e=>Ji.exec(e)?.[1]??e;function Xi(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Zi(e,t){let n=(t?Ki:qi).exec(e);if(!n)return null;let[,r,i,a,o]=n;return{origModule:Yi(r),origVersion:i??``,targetModule:Yi(a),targetVersion:o??``}}function Qi(e,t,n){return t===`indirect`||e.startsWith(`golang.org/x/`)||bn(n)}async function $i(e,t,n){if(!t)return null;let r=t,i=pn(t.Version)?null:t,a=e+101,o=e+2,s=7;for(;o<=a;){let e=Math.min(o+s-1,a),t=await Promise.all(Array.from({length:e-o+1},(e,t)=>n(o+t))),c=t.indexOf(null),l=c===-1?t:t.slice(0,c);if(l.length&&(r=l.at(-1),i=l.findLast(e=>!pn(e.Version))??i),c!==-1)break;o=e+1,s*=2}return i??r}function ea(e,t,n,r,i){let a=n?.Version??r,o=n?.Time??i,s=n?.path??e;return[{name:e,old:t,new:Y(a),Time:o,...s!==e&&{newPath:s},sameMajorNew:Y(r),sameMajorTime:i},null]}function ta(e){let t={},n={},r={},i={},a=new Set,o=[],s=e.split(/\r?\n/),c=!1,l=!1,u=!1;for(let e of s){let i=e.trim();if(Ii.test(i)){c=!0;continue}if(Li.test(i)){l=!0;continue}if(Ri.test(i)){u=!0;continue}if(i===`)`){c=!1,l=!1,u=!1;continue}if(i.startsWith(`//`))continue;if(u){i&&o.push(Yi(i));continue}let s=Ui.exec(i);if(s){o.push(Yi(s[1]));continue}let d=i.includes(`// indirect`);if(l||Bi.test(i)){let e=Zi(i,l);e&&(e.targetVersion&&!Xi(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||a.add(e.origModule));continue}let f=(c?Vi:Hi).exec(i);f&&((d?n:t)[Yi(f[1])]=f[2])}for(let e of a)delete t[e],delete n[e];if(o.length){let e=[...Object.keys(n),...Object.keys(t)];for(let r of o){let a=``;for(let t of e)(r===t||r.startsWith(`${t}/`))&&t.length>a.length&&(a=t);let o=n[a]?n:t[a]?t:null;o&&(i[a]=o[a],delete o[a])}}return{deps:t,indirect:n,replace:r,tool:i}}async function na(e,n,r,i,a){let o=Ni(e),s=async(e,n)=>{try{let{stdout:r}=await a.execFile(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),o=JSON.parse(r);return{Version:o.Version,Time:o.Time||``,path:e}}catch(t){let n=String(t?.stderr??``).trim().split(`
7
- `)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}},c=e=>ze(s(e,a.goProbeTimeout)),l=Qi(e,n,r),[u,d]=await Promise.all([s(e,a.fetchTimeout),l?null:c(Pi(e,o+1))]);return ea(e,r,await $i(o,d,t=>c(Pi(e,t))),u.Version,u.Time)}const ra={"accept-encoding":`gzip, deflate, br`},ia=e=>e===404||e===410;async function aa(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 oa=async(e,t,n)=>{let r=`${t}/${Ai(n)}/@latest`,i=await e(r);if(i.ok)return aa(i,r,n);if(ia(i.status))return null;X(i,r,n,t)},sa=new WeakMap;function ca(e,t,n,r){return sn(sa,e,`${n}/${r}`,()=>oa(t,n,r))}function la(e,t){let n=pn(e);return n===pn(t)?W(e,t):!n}function ua(e,t=0){let n=null;for(let r of e.split(`
8
- `)){let[e,i]=r.trim().split(/\s+/);!e||!Ye(e)||t&&Number.parseInt(Y(e))!==t||n&&!la(e,n.Version)||(n={Version:e,Time:i??``})}return n}function da(e){return ji.test(e)||Mi.test(e)?Ni(e):0}const fa=async(e,t,n)=>{let r=Ai(n),i=`${t}/${r}/@v/list`,a=await e(i);if(!a.ok){if(ia(a.status))return null;X(a,i,n,t)}let o=ua(await a.text(),da(n));if(!o)return null;if(o.Time)return{...o,path:n};let s=`${t}/${r}/@v/${Ai(o.Version)}.info`;try{let t=await e(s);if(t.ok)return aa(t,s,n)}catch{}return{...o,path:n}};async function pa(e,t,n,r,i){let a=Ni(t),o=(e,t,n)=>ca(i,e,t,n),s=e=>$t(i,e,{headers:ra}),c=e=>i.doFetch(e,{signal:AbortSignal.timeout(i.goProbeTimeout),headers:ra}),l=t=>async n=>{try{return await t(c,e,n)}catch{return null}},u=Qi(t,n,r),d=Pi(t,a+1),[f,p]=await Promise.all([o(s,e,t),u?null:l(o)(d)]),m=f??await fa(s,e,t);if(!m)return null;let h=l(f?o:fa);return ea(t,r,await $i(a,u||f?p:await l(fa)(d),e=>h(Pi(t,e))),m.Version,m.Time)}async function ma(e,t,n,r,i,a){if(ki(e,a))return na(e,t,n,r,i);for(let{url:a,fallback:o}of i.goProxyChain){if(a===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);if(a===`direct`)return na(e,t,n,r,i);try{let r=await pa(a,e,t,n,i);if(r)return r}catch(e){if(o===`,`)throw e}}throw Error(`Unable to find ${e} on any GOPROXY entry`)}const ha=(e,t)=>`("?)${R(e)}\\${t}`;function ga(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new,u=Fi(s,l);if(o===`replace`){if(u!==s){let e=n;if(n=n.replace(RegExp(`(^\\s*(?:replace\\s+)?)${ha(s,2)}(\\s+=>\\s+)${ha(s,4)}(\\s+)v${R(c)}`,`gm`),`$1$2${u}$2$3$4${u}$4$5v${l}`),n!==e){let e=n;n=n.replace(RegExp(`(^\\s*(?:require\\s+)?)${ha(s,2)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`,`gm`),`$1$2${u}$2$3v${l}`),n!==e&&(r[s]=u)}}n=n.replace(RegExp(`(=>\\s+)${ha(s,2)}(\\s+)v${R(c)}`,`g`),`$1$2${u}$2$3v${l}`);continue}u!==s&&o!==`indirect`?(n=n.replace(RegExp(`${ha(s,1)} +v${R(c)}`,`g`),`$1${u}$1 v${l}`),o===`tool`&&(n=n.replace(RegExp(`(^\\s+|^tool\\s+)("?)${R(s)}((?:/[^"\\s]+)?)\\2\\s*$`,`gm`),`$1$2${u}$3$2`)),r[s]=u):n=n.replace(RegExp(`(${ha(s,2)}) +v${R(c)}`,`g`),`$1 v${l}`)}return[n,r]}function _a(e,t,n){let r=Object.entries(t);if(!r.length)return;let i=new Map(r),a=RegExp(`"(${Be(i.keys())})(/|")`,`g`),o=m(`**/*.go`,{cwd:e});for(let t of o){let r=u(e,t),o=g(r,`utf8`),s=o.replace(a,(e,t,n)=>`"${i.get(t)}${n}`);s!==o&&n(r,s)}}function va(e){let t=[],n={},r=e.split(/\r?\n/),i=!1,a=!1;for(let e of r){let r=e.trim();if(zi.test(r)){i=!0;continue}if(Li.test(r)){a=!0;continue}if(r===`)`){i=!1,a=!1;continue}if(i){let e=Gi.exec(r);e&&!r.startsWith(`//`)&&t.push(e[1]);continue}let o=Wi.exec(r);if(o){t.push(o[1]);continue}if(a||Bi.test(r)){let e=Zi(r,a);e?.targetVersion&&!Xi(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}}return{use:t,replace:n}}function ya(e){let t=`https://${ba(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${$n(t)}/${a.join(`/`)}`,n.href}return t}function ba(e){return ji.test(e)?c(e):e}function xa(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function Sa(e){if(e.startsWith(`docker://`)||e.startsWith(`./`))return null;let t=/^https?:\/\/([^/]+)\/(.+)$/.exec(e),n=t?.[1]??null,r=t?.[2]??e,i=r.indexOf(`@`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!o)return null;let s=a.split(`/`);if(s.length<2)return null;let c=n?`${n}/${a}`:a;return{host:n,owner:s[0],repo:s[1],ref:o,name:c,isHash:Un.test(o)}}function Ca(e,t){return e?e===`github.com`?qt:`https://${e}/api/v1`:t}async function wa(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Lt(a);if(e)return e.body}try{let e=await Bn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=Gn(await e.json());return t&&!i.noCache&&Bt(a,`immutable`,t),t}catch(e){if(e instanceof Ln)throw e;return}}function Ta(e,t){return Qn(H(Y(e))?.version??Y(e),t)}const Ea=/^(\s*(?:-\s*)?uses:\s*)([^\n]*)$/,Da=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function Oa(e){let t=Ea.exec(e);if(!t)return null;let[,n,r]=t,i=r[0]===`'`||r[0]===`"`?r[0]:``,a=i?r.indexOf(i,1):0;if(a===-1)return null;let o=i?r.slice(1,a):/^[^\s#]*/.exec(r)[0];if(!o)return null;let s=r.slice(i?a+1:o.length),c=s.indexOf(`#`),l=c===-1?``:s.slice(c),u=l?Da.exec(l.slice(1)):null;return{prefix:n,quote:i,value:o,gap:c===-1?s:s.slice(0,c),comment:l,pinnedVersion:u?.[1]??``,pinnedEnd:u?u[0].length+1:0}}const ka=/^https?:\/\//;function Aa(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}`,e]));return e.split(`
9
- `).map(e=>{let t=Oa(e);if(!t)return e;let{prefix:r,quote:i,value:a,gap:o,comment:s,pinnedVersion:c,pinnedEnd:l}=t,u=ka.exec(a)?.[0]??``,d=n.get(a.slice(u.length));if(!d)return e;let f=d.newComment&&c?`# ${d.newComment}${s.slice(l)}`:s;return`${r}${i}${u}${d.name}@${d.newRef}${i}${o}${f}`}).join(`
10
- `)}const ja=RegExp(`(?:^|/)(?:${Be(P)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Ma(e){return ja.test(e.replace(/\\/g,`/`))}function Na(e){let t=new Set;try{for(let n of _(u(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(f(u(e,`workflows`,n)))}catch{}try{for(let n of _(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(f(u(n.parentPath,n.name)))}catch{}return Array.from(t)}const Pa=/^(v?\d+(?:\.\d+){0,2})([a-z][a-z0-9]*)?(-.+)?$/i,Fa=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gim,Ia=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,La=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}:]+)['"]?\s*$/gm,Ra=/^\s*(?:-\s*)?uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm,za=/^(?:index\.)?docker\.io$/;function Ba(e){let t=e.split(`/`);return t.length>1&&za.test(t[0])&&t.shift(),t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`),repo:t[t.length-1]}}function Va(e){let{registry:t,namespace:n,repo:r}=Ba(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 Ha(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`);if(t===-1||e.lastIndexOf(`/`)>t)return null;let n=e.substring(0,t),r=e.substring(t+1);if(!r||!Pa.test(r))return null;let{registry:i,namespace:a,repo:o}=Ba(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Ua(e){let t=Pa.exec(e);return t?{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}:null}function Wa(e,t,n=``){let r=Ua(t);return r?Qn(e,r.version,`${n}${r.suffix}`):t}function Ga(e,t){let n=[];for(let r of e.matchAll(t)){let e=Ha(r[1]);e&&n.push({ref:e,match:r[1]})}return n}const Ka=new WeakMap;function qa(e,t,n){return sn(Ka,n,`${e}/${t}`,()=>Xa(e,t,n))}const Ja=new Set([401,403,404]),Ya=e=>e.tag_last_pushed||e.last_updated||``;async function Xa(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o={headers:{"accept-encoding":`gzip, deflate, br`}},s=e=>({count:e.count,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated}))}),c=async r=>{let i=a(r),c=await an(i,n,o,tn(s));return`body`in c?JSON.parse(c.body):(Ja.has(c.res?.status)||X(c.res,i,`${e}/${t}`,n.dockerApiUrl),null)},l=e=>{for(let t of e?.results||[])r[t.name]=Ya(t)},u=fn(n),d=await u(()=>c(1));if(!d)return r;l(d);let f=Math.min(Math.ceil((d.count||0)/100),100),p=un(n);for(let e=2,t=1;e<=f;e+=t,t=Math.min(t*2,p)){let n=await Promise.all(Array.from({length:Math.min(t,f-e+1)},(t,n)=>u(()=>c(e+n))));for(let e of n)l(e)}return r}async function Za(e,t,n,r){let i=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`;try{let e=await an(i,r,{headers:{"accept-encoding":`gzip, deflate, br`}},tn(e=>({digest:e.digest})));if(!(`body`in e))return null;let t=JSON.parse(e.body).digest;return typeof t==`string`?t:null}catch{return null}}const Qa=/^\d?[02468]\.04$/;function $a(e,t){if(!Qa.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const eo={ubuntu:$a};function to(e,t,n=Date.now()){let r=eo[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=Ua(e)?.version;return!t||r(t,n)})):t}async function no(e,t){let{registry:n,namespace:r,repo:i}=Ba(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:to(i,await qa(r,i,t)),name:e},null]}const ro=(e,t)=>t?`${e}-${t}`:e;function io(e,t,n,r,i,a,o=!1,s=!1){let c=Ua(t);if(!c)return null;let l=U(Y(c.version))?.version;if(!l)return null;let u=Y(c.version).split(`.`).length,d=ro(l,c.prerelease),{effectiveSemvers:f,skipsPrerelease:p}=_n(d,o,s,n),m=d,h=``,g=``;for(let[t,n]of Object.entries(e)){let e=Ua(t);if(!e||e.suffix!==c.suffix||Y(e.version).split(`.`).length!==u||!Zn(e.version,c.version))continue;let o=U(Y(e.version))?.version;if(!o||e.prerelease&&p(H(ro(o,e.prerelease)))||a&&!K(o,a)||!Ut(n,r,i))continue;let s=ro(o,e.prerelease);if(s===m){h&&Date.parse(n)>Date.parse(g)&&(h=t,g=n);continue}let l=Qe(m,s);!l||!f.has(l)||W(s,m)&&(m=s,h=t,g=n)}if(!h||m===d)return null;let[_,v=``]=m.split(`-`),y=Wa(_,t,v),b=y in e?y:h;return b===t?null:{newTag:b,date:g}}const ao=`(?![\\w.@+-])`;function oo(e,t,n){let r=new Map;for(let[e,n]of Object.entries(t)){let t=e.split(`\0`)[1];r.set(`${t}:${n.oldOrig||n.old}`,`${t}:${n.new}`)}if(!r.size)return e;let i=Be(r.keys()),a=e;for(let e of n)a=a.replace(e(i),(e,t,n)=>`${t}${r.get(n)??n}`);return a}function so(e,t){return oo(e,t,[e=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)(${e})${ao}`,`gi`)])}function co(e,t){return oo(e,t,[e=>RegExp(`(image:\\s*['"]?)(${e})${ao}`,`g`)])}function lo(e,t){return oo(e,t,[e=>RegExp(`((?:container|image):\\s*['"]?)(${e})${ao}`,`g`),e=>RegExp(`(uses:\\s*['"]?docker://)(${e})${ao}`,`g`)])}const uo=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function fo(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function po(e){return/^Dockerfile(\..+)?$/.test(e)}function mo(e){return po(e)||fo(e)}function ho(e){return po(e)?Fa:Ia}function go(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const _o=[`Makefile`,`makefile`,`GNUmakefile`];function vo(e){return _o.includes(e)||e.endsWith(`.mk`)}const yo=String.raw`^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*`,bo=RegExp(`${yo}${String.raw`(\S+)@(v\d\S*)\s*$`}`),xo=/^[^/\s]+\.[^/\s]+\//;function So(e){let t=e.indexOf(`#`);return t===-1?e:e.slice(0,t)}function Co(e){let t=[];for(let n of e.split(/\r?\n/)){let e=So(n),r=bo.exec(e);if(!r)continue;let[,i,a]=r;xo.test(i)&&t.push({installPath:i,version:a})}return t}const wo=RegExp(`${yo}${String.raw`(\S+)\s*$`}`),To=/@(sha256:[0-9a-f]{64})$/;function Eo(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Do(e){let t=null,n=e,r=To.exec(e);r&&(t=r[1],n=e.slice(0,r.index));let i=Ha(n.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:n.slice(0,n.lastIndexOf(`:`)),ref:i,digest:t}}function Oo(e){let t=[];for(let n of e.split(/\r?\n/)){let e=wo.exec(So(n));if(!e)continue;let r=Do(e[1]);r&&t.push(r)}return t}const ko=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/;function Ao(e){let t=ko.exec(e);return t?e.slice(0,t.index+t[0].length):null}async function jo(e,n,r,i){return i?await ze(r.execFile(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:t}))!==null:!!await ca(r,e=>$t(r,e,{headers:ra}),r.goProxyUrl,e)}async function Mo(e,t,n,r){let i=Ao(e);if(i)return i;let a=n.goProxyUrl===`direct`||ki(e,r);if(!a&&n.goProxyUrl===`off`)return null;let o=e.split(`/`),s=Array.from({length:o.length-1},(e,t)=>o.slice(0,o.length-t).join(`/`));if(a){for(let e of s)if(await jo(e,t,n,!0))return e;return null}let c=await Promise.allSettled(s.map(e=>jo(e,t,n,!1)));for(let[e,t]of c.entries()){if(t.status===`rejected`)throw t.reason;if(t.value)return s[e]}return null}async function No(e,t,n,r,i,a){let o=await Mo(e,n,r,i);if(!o)return null;let[s]=await ma(o,`tool`,Y(t),n,r,i),c=xn(s,{...a,mode:`go`,range:Y(t)});if(!c)return null;let l=s.newPath??Fi(o,c),u=`${l}${e.slice(o.length)}`,d=Qn(c,t);return u===e&&d===t?null:{newInstallPath:u,newVersion:d,date:s.Time??``,info:ya(l)}}async function Po(e,t,n){let{namespace:r,repo:i,fullImage:a,tag:o}=e.ref,[s]=await no(a,t),c=io(s.tags,o,n.semvers,n.cooldownDays,n.now,n.pinnedRange,n.usePre,n.useRel);if(!c)return null;let l=null;return e.digest&&(l=await Za(r,i,c.newTag,t),!l)?null:{newTag:c.newTag,newDigest:l,date:c.date,info:go(e.ref)}}function Fo(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Be(n.keys()),i=RegExp(`(?<![\\w./@:-])(${r})(?=[\\s#]|$)`,`g`);return e.replace(/^[^#\n]*/gm,e=>e.replace(i,e=>n.get(e)))}const Io=new WeakMap;function Lo(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 Ro(e,t){let n=Jt(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${Lo(t)}`}function zo(e){return e.split(`
3
+ `:``)+r[n]}e=n,d[f]=fe(p+t+p)}else d[f]=fe(l)}return t}function fe(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of me(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(fe(e))}return t}return e.startsWith(`{`)?pe(e):e.startsWith(`"""`)?_e(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?_e(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 pe(e){let t=j(),n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of me(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=fe(e.slice(n+1).trim())}return t}function M(e,t){for(;t.index<e.length;t.index++){let n=e[t.index];if(t.inStr){if(n===`\\`&&t.inStr===`"`){t.index++;continue}n===t.inStr&&(t.inStr=null)}else if(n===`"`||n===`'`)t.inStr=n;else if(n===`{`||n===`[`)t.depth++;else if((n===`}`||n===`]`)&&(t.depth--,!t.depth))return!0}return!1}function me(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 he(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 ge(e){let t=N(e,`#`);return t<0?e:e.slice(0,t)}function N(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 P(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=j()),e=e[n];return e}function _e(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
4
+ `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}function ve(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 ye=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,be=/^(\s*\()([^)]*)(\)\s*)$/,xe=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,Se=new Set([`===`,`==`,`>=`,`~=`]),Ce=/^v?\d[0-9a-z.!+_-]*$/i;function we(e){let t=[];for(let n of e.split(`,`)){let e=xe.exec(n);if(!e)return null;let[,r,i,a,o,s]=e;t.push({lead:r,op:i,sep:a,version:o,trail:s})}return t}function Te(e){let t=e.indexOf(`;`),n=ye.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[,r,i,a,o,s,c]=n,l=be.exec(c);return{name:i,extras:o,specifiers:we(l?l[2]:c),marker:t===-1?``:e.slice(t),head:`${r}${i}${a}${o}${s}`,open:l?.[1]??``,close:l?.[3]??``}}function F({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 Ee(e){return e.find(({op:e,version:t})=>Se.has(e)&&Ce.test(t))}function De(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=Te(n);if(!e?.specifiers)continue;let r=Ee(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const Oe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],ke=[`node`,`deno`,`bun`],Ae=[`.github`,`.gitea`,`.forgejo`],je={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Me=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],Ne=[`deps`,`indirect`,`replace`,`tool`],Pe=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Fe=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function Ie(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 Le(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 I(e){return e.split(`,`).filter(Boolean)}function Re(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function ze(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+=`
5
+ `)}return i}const Be={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ve(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Be[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function He(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function L(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function R(e){try{return await e}catch{return null}}const z=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function Ue(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(z).join(`|`)}const We=new WeakMap;var Ge=class extends RegExp{constructor(e,t,n){super(e,n),We.set(this,t)}test(e){return We.get(this)(e)}};function Ke(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 qe(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 Je(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Ke(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 B(e){let t=``,n=[],r=e=>{t+=e,n.push({kind:`char`,matcher:RegExp(`^(?:${e})$`,`i`)})};for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length)r(z(e[++i]));else if(a===`*`&&e[i+1]!==`(`){let r=e[i+1]===`*`;for(;e[i+1]===`*`;)i++;r&&e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else if(a===`?`&&e[i+1]!==`(`)r(`[^/]`);else if(a===`[`){let t=e.indexOf(`]`,i+1);if(t===-1)r(`\\[`);else{let n=e.slice(i+1,t);n.startsWith(`!`)&&(n=`^${n.slice(1)}`),r(`[${n.replaceAll(`\\`,`\\\\`)}]`),i=t}}else if(a===`{`){let a=qe(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=Je(e.slice(i+1,a)).map(B);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=qe(e,i+1,`(`,`)`);if(o===-1)r(z(a));else{let r=Ke(e.slice(i+2,o)).map(B),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(z(a))}return{source:t,tokens:n}}function Ye(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 Xe(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 Ge(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}=B(e.slice(n)),o=e=>Ye(a,e);return new Ge(`^${i}$`,r?e=>!o(e):o,`i`)}async function Ze(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=h(n);if(r===n)return null;n=r}}function Qe(e,t){let n=e;for(;;){let e=t(n);if(e)return e;let r=h(n);if(r===n)return null;n=r}}function $e(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function 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 et(e){let t=new Map;return n=>V(t,n,()=>e(n))}const tt=`0|[1-9]\\d*`,nt=/^(?:0|[1-9]\d*)$/,rt=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,it=RegExp(`^v?(${tt})\\.(${tt})\\.(${tt})(?:-((?:${rt})(?:\\.(?:${rt}))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$`),at=new Map;function H(e){return typeof e==`string`?V(at,e,()=>{let t=it.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,build:t[5]?.split(`.`)??[],raw:e,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function ot(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 st(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function ct(e,t){let n=st(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=ot(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function lt(e){return H(e)?.version??null}function U(e){return H(e)}const ut=new Map,dt=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function ft(e){return typeof e==`string`?V(ut,e,()=>{let t=dt.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function pt(e,t){let n=H(e),r=H(t);return!n||!r?null:mt(n,r)}function mt(e,t){let n=ct(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(st(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 ht(e,t){let n=H(e),r=H(t);return n&&r?ct(n,r):null}function gt(e,t){return(ht(e,t)??-1)>0}function _t(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||!nt.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 vt(e,t){let n=ct(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 yt(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 bt(e,t){let n=_t(e),r=_t(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 xt(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return bt(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&&_t(t[2]),i=n?yt(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const St=new Map;function Ct(e){return V(St,e,()=>{let t=e.split(`||`).map(e=>xt(e.trim()));return t.some(e=>e===null)?null:t})}function wt(e,t){return t.some(t=>!vt(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 Tt(e,t){return!!Ct(t)?.some(t=>wt(e,t))}function q(e,t){let n=H(e);return!!(n&&Tt(n,t))}function J(e){return typeof e==`string`&&Ct(e)?e:null}const Et=`v?(?:(\\d+)!)?(\\d+(?:\\.\\d+)*)(?:[-_.]?(a|b|c|rc|alpha|beta|pre|preview)[-_.]?(\\d+)?)?(?:-(\\d+)|[-_.]?(post|rev|r)[-_.]?(\\d+)?)?(?:[-_.]?(dev)[-_.]?(\\d+)?)?(?:\\+([a-z0-9]+(?:[-_.][a-z0-9]+)*))?`,Dt=RegExp(`^${Et}$`,`i`),Ot=RegExp(Et,`i`),kt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},At=new Map;function Y(e){return typeof e==`string`?V(At,e,()=>{let t=Dt.exec(e.trim());if(!t)return null;let n=t[3]?.toLowerCase();return{epoch:t[1]?Number(t[1]):0,release:t[2].split(`.`).map(Number),pre:n?[kt[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 jt(e){return Y(e)??Y(Ot.exec(e)?.[0]??``)}const Mt=e=>!!e.pre||e.dev!==null;function Nt(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 Pt(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?Nt(e.local,t.local):a<o?-1:1}function Ft(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 It(e,t){let n=Pt(e,t);if(n===0)return null;let r=Ft(e,t);return Mt(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Lt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Rt={parse:U,parseRange:e=>U(Lt.exec(e)?.[0]??``)??U(ft(e)?.version??``),compare:ct,diff:mt,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:Tt},zt=new Map;function Bt(e){return V(zt,e,()=>{let t=e.trim().replace(/^v/i,``);return(U(t)??U(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?U(ft(t)?.version??``):null)})}const Vt={...Rt,parse:Bt,parseRange:Bt,isRangePrerelease:e=>!!Bt(e)?.prerelease.length},Ht={parse:Y,parseRange:jt,compare:Pt,diff:It,isPrerelease:Mt,isRangePrerelease:e=>{let t=jt(e);return!!(t&&Mt(t))},satisfiesRange:({release:e},t)=>q(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Ut=[[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`]],Wt={"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 Gt(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Kt(e,{now:t,noAffix:n=!1,times:r=Ut,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Wt,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():Gt(t))-Gt(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 qt(e){return new Promise((t,n)=>{s(e,`utf8`,(e,r)=>e?n(e):t(r))})}const Jt=_(r===`win32`?t.LOCALAPPDATA||_(k(),`AppData`,`Local`):t.XDG_CACHE_HOME||_(k(),`.cache`),`updates`),Yt=new Map;function Xt(e){return ce(`sha256`).update(e).digest(`hex`)}const Zt=6048e5;async function Qt(e,t=Jt){try{let n=_(t,`${Xt(e)}.cache`);if(Date.now()-(await ie(n)).mtimeMs>Zt)return await E(n),null;let r=await qt(n),i=r.indexOf(`
6
+ `);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 R(ae(n,s,s)),{etag:a,body:o}}catch{return null}}const $t=new Set;let en=0;function tn(e,t,r,i=Jt){let a=(async()=>{try{await V(Yt,i,()=>C(i,{recursive:!0}))}catch{Yt.delete(i);return}let a;try{let o=_(i,`${Xt(e)}.cache`);a=`${o}.${n}-${en++}.tmp`,await oe(a,`${t}\n${r}`),await re(a,o)}catch{a&&await R(E(a))}})();$t.add(a),(async()=>{await a,$t.delete(a)})()}async function nn(e=Jt,t=4096){for(;$t.size;)await Promise.all($t);try{let n=(await ne(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=_(e,t);try{return{path:n,mtime:(await ie(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-Zt,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>R(E(e.path))))}catch{}}var rn=`18.0.6`;function an(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const on=rn,sn=`https://api.github.com`,X={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:sn,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,cn=e=>e.endsWith(`/`)?e.slice(0,-1):e;function ln(e,t){return{headers:{"user-agent":`updates/${on}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const un=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function dn(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&un.has(t)}async function fn(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=dn(t),n}}async function pn(e,t,n={}){let r=Sn(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&&a.status>=500&&a.status<600?c!==null&&c<=l?c:0:a&&(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 O(u)}catch(e){if(i>=2||!e?.transient)throw e}}const mn=e=>t=>JSON.stringify(e(JSON.parse(t))),hn=new WeakMap;function gn(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(hn,t,()=>new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await Qt(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await pn(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&&tn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function _n(e,t,n={},r,i=e){return gn(e,t,n,r,i,!1)}function vn(e,t,n={},r){return gn(e,t,n,r,e,!0)}async function Q(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 yn=new se,bn=e=>Math.max(e.concurrency||50,1),xn=new WeakMap;function Sn(e){return V(xn,e,()=>{let t=bn(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 Cn(e,t=Rt){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const wn=new WeakMap,Tn=new WeakMap;function En(e,t,n,r,i=Rt){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?wn:Tn;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 Dn(e){return ft(e)?.version??``}function On(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=Rt}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=En(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)),ee=e?.time,te=!!(d&&f),C=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||C&&m.compare(t,C)<=0||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||te&&!an(p?p(e):ee?.[e],d,f))continue;let r=m.diff(h,t),i=r&&!m.isPrerelease(t)?r.replace(/^pre/,``):r;!i||!g.has(i)||(C=t)}return C?.raw??C?.version??null}function kn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function An(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`?Ht:Rt,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;m=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(e=>e&&!e.yanked)),g=e=>t[e].reduce((e,t)=>{let n=t?.upload_time_iso_8601,r=typeof n==`string`?Date.parse(n):NaN;return!Number.isNaN(r)&&r<e.time?{date:n,time:r}: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[Dn(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=Dn(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=En(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=Dn(e),o=f.parse(e),c=kn(e);if(!a||!c&&r(o))return!1;let d=pt(m,e)??pt(t,a),p=c?d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!an(i,l,u)?!1:!s||q(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return On(e,m,{range:p,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:h,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:g,versioning:f})}function jn(e){try{return new URL(e).host}catch{return``}}function Mn(e){let n=I(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 Nn;function Pn(){return Nn||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),Nn}const Fn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];let In;function Ln(){let e=Array.from(new Set(Fn.map(e=>t[e]).filter(e=>!!e)));return e.length?Promise.resolve(e):In??=(async()=>{try{let{stdout:e}=await(await Pn())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const Rn=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function zn(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=Rn.exec(n);if(!e)continue;let r=jn(e[1]),i=D.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let Bn;function Vn(){return Bn??=(async()=>{try{let{stdout:e}=await(await Pn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return zn(e)}catch{return new Map}})()}const Hn=new Map;async function Un(e,t){if(!e)return[];let n=Mn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===jn(t),[a,o]=await Promise.all([i?Ln():[],Vn()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}var Wn=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 Gn(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 Kn(e,t,n,r){if(e.status>=500)throw new Wn(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Gn(e);if(i===null)return e;throw new Wn(`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 qn(e,t,n){let r=jn(e),i=await Un(r,t.forgeApiUrl),a=async a=>{let o=ln(`Bearer`,a);return o.headers={...o.headers,...n},Kn(await pn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=Hn.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 Hn.set(r,t),n;t===e&&Hn.delete(r)}return await a()}catch(e){throw e instanceof Wn?e:new Wn(`network`,r,e?.message??String(e),{cause:e})}}function Jn(e,t){let n=Z(t);if(!lt(n))return null;let r=``,i=``;for(let t of e){let e=Z(t);lt(e)&&(!r||gt(e,i))&&(r=t,i=e)}return r&&gt(i,n)?r:null}function Yn(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 Xn=RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),Zn=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function Qn(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function $n(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function er(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 tr=(e,t)=>{if(!t)return er(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})},nr=new WeakMap;function rr(e,t,n,r){let i=`${n}${e}`;return Q(nr,t,i,async()=>{let n=t.noCache?null:await Qt(e),a=await qn(e,t,n?{"if-none-match":n.etag}:void 0);if(a?.status===304&&n)return n.body;if(!a?.ok)return nr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&tn(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 ar(e,t,n,r){let i=await rr(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 or(e){let t=/<([^>]+)>;\s*rel="last"/.exec(e);if(!t)return 0;let n=Number(new URL(t[1]).searchParams.get(`page`));if(!Number.isSafeInteger(n)||n<1)throw TypeError(`Invalid Forge pagination URL`);return Math.min(n,100)}async function sr(e,t,n,r,i){let a=await ar(e(1),t,n,r);if(!a)return;let o=or(a.link),s=bn(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)=>ar(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function cr(e,t,n){let r=new Map;return await sr(n=>`${sn}/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 lr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await sr(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,tr,e=>{for(let t of e){for(let e of o)(e===t.name||t.commitSha.startsWith(e))&&o.delete(e);a.push(t)}return s&&!o.size}),a}async function ur(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return lr(e,t,n,r,i);let[o,s]=await Promise.allSettled([lr(e,t,n,r,i),cr(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof Wn))throw s.reason;if(s.status===`fulfilled`)for(let e of o.value)s.value.has(e.name)&&(e.isStable=s.value.get(e.name));return o.value}function dr(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}const fr=2e7;function pr(e,t){return Number(Z(e).split(`.`)[0])<fr||Number(Z(t).split(`.`)[0])>=fr}function mr(e,t,n=``){let r=Z(e),i=Z(t).split(`.`).length,a=i>=3?r:Array.from({length:i},(e,t)=>r.split(`.`)[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${a}${n}`}function hr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const gr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function _r({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of gr)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=Yn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${hr(a)}/${e.directory}`)),a||t||``)}const vr=/[A-Za-z_$]/,yr=/[A-Za-z0-9_$]/;function br(e){let t=``,n=0,r=e.length;function i(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
7
+ `;)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===`
8
+ `){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(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(vr.test(o)){let i=n;for(;n<r&&yr.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 xr={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 Sr(e){let t;for(let n of e.matchAll(/(\d+(?:\.\d+)?)\s*([a-z]+)/gi)){let e=xr[n[2].toLowerCase()];if(e===void 0)return;t=(t??0)+Number(n[1])*e}return t}const Cr={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}{/,}**`}},wr=new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function Tr(e){let t={Package:[],Dep:[]};for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(Cr,n)?Cr[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||wr.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=Er(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 Er(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Dr=new Map,Or=e=>V(Dr,e,()=>Xe(e)),kr=(e,t,n)=>(!t?.length||t.some(t=>Or(t).test(e)))&&(!n?.length||n.every(t=>!Or(t).test(e)));function Ar(e,t,n){return kr(t,e.matchPackageNames,e.excludePackageNames)&&kr(n,e.matchDepNames,e.excludeDepNames)}const jr=new WeakMap;var Mr=class extends RegExp{constructor(e,t){super(e),jr.set(this,t)}testNames(e,t){return jr.get(this)(e,t)}test(e){return this.testNames(e,e)}};function Nr(e,t,n,r){return e instanceof Mr?e.testNames(n,r):e.test(t)}function Pr(e,t){let n=[],r={},i=new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=Tr(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=Sr(r.minimumReleaseAge);e!==void 0&&(c.cooldownDays=e)}if(typeof r.allowedVersions==`string`){let e=J(r.allowedVersions);if(!e&&!Er(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&&Ar(t,e,e))?.allowedVersions;t&&J(t)&&(r[e]=t)}let o;return n.some(e=>!e.enabled)&&(o=new Mr(`renovate-package-rules`,(e,t)=>{let r=!0;for(let i of n)Ar(i.matchers,e,t)&&(r=i.enabled);return!r})),{disabled:o,pin:r,versionRules:a}}function Fr(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=Sr(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 Mr(`^${z(e)}$`,(t,n)=>n===e)):[],{disabled:i,pin:a,versionRules:o}=Pr(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 Ir=[`renovate.json`,`renovate.jsonc`,`renovate.json5`];async function Lr(e,t={}){let n=await Ze(e,async e=>{for(let t of Ir){let n=_(e,t),r;try{r=await w(n,`utf8`)}catch{continue}let i;try{i=br(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?Fr(n.parsed,t):{}}const Rr=Symbol(`cliBaseConfig`),zr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},cargoapi:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},indirect:{short:`I`,type:`boolean`},json:{short:`j`,type:`boolean`},jsrapi:{type:`string`},cooldown:{short:`C`,type:`string`},minor:{short:`m`,type:`string`,multiple:!0},modes:{short:`M`,type:`string`,multiple:!0},color:{short:`c`,type:`boolean`},"no-cache":{short:`x`,type:`boolean`},"no-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function Br(e){return Array.isArray(e)?e.every(e=>e===!0)?!0:new Set(e.filter(e=>typeof e==`string`).flatMap(I)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function Vr(e){for(let[t,{short:n}]of Object.entries(zr))if(t===e||n===e)return t;return``}function Hr(e){return new Set(e.map(Xe))}function Ur(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(I):[]}function Wr(e){for(let[t,n]of Object.entries(e??{}))if(!J(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function Gr(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 Wr(t),t}function Kr(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:Hr(e)}const qr=et(e=>Ze(e,async e=>{for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=`updates.config.${t}`,r=_(e,n);try{await te(r)}catch(e){if(e.code===`ENOENT`)continue;throw Error(`Unable to load config file ${n}: ${e.message}`)}try{return(await import(x(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null})),Jr=et(async e=>{let t=await qr(e)??{},n=await Lr(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??[]]),Wr(r.pin),r});function Yr(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 Xr(e){try{return Yr(c(e,`utf-8`))}catch{return}}function Zr(e,t){return Qe(t,t=>{let n=_(t,e);try{if(d(n).isFile())return n}catch{}return null})??void 0}function Qr(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t)){if(!i.toLowerCase().startsWith(r))continue;let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let o=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)o[n]=a;else if(o[n]===void 0&&(o[n]={}),typeof o[n]==`object`)o=o[n];else break}}return n}function $r(n,i={},a=e()){let o=r===`win32`,s=o?t.USERPROFILE:t.HOME,c=[i],l=[];function u(e){if(!e||l.includes(e))return;let t=Xr(e);t&&(c.push(t),l.push(e))}o||(u(_(`/etc`,n,`config`)),u(_(`/etc`,`${n}rc`))),s&&(u(_(s,`.config`,n,`config`)),u(_(s,`.config`,n)),u(_(s,`.${n}`,`config`)),u(_(s,`.${n}rc`))),u(Zr(`.${n}rc`,a));let d=Qr(`${n}_`);return d.config&&u(d.config),Object.assign({},...c,d,l.length?{configs:l,config:l[l.length-1]}:void 0)}function ei(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const ti=new WeakMap;function ni(e,t){let n=V(ti,e,()=>{let t=new Map;for(let[n,r]of Object.entries(e)){let[e,...i]=n.split(`\0`),a=e.indexOf(`|`);$e(t,a===-1?`.`:e.slice(a+1),[[ei(e),...i].join(`\0`),r])}return t});return Object.fromEntries(n.get(t)??[])}const ri=/[*?{[]/;function ii(e,t){return o(e,{cwd:t,withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>y(e.parentPath,e.name))}async function ai(e,t,n,r=32){let i=await T(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>ii(e.slice(1),t)).map(e=>v(t,e).replace(/\\/g,`/`))),o=new Set,s=[];for(let n of e){if(n.startsWith(`!`))continue;let e=ri.test(n)?ii(n,t):[y(_(t,n))];for(let n of e){let e=v(t,n).replace(/\\/g,`/`);a.has(e)||o.has(n)||(o.add(n),s.push({dir:n,memberPath:`./${e}`}))}}return(await L(s,async({dir:e,memberPath:t})=>{try{let r=await T(_(e,n)),a=v(i,r);return a===`..`||a.startsWith(`..${b}`)||g(a)?null:{absPath:r,content:await w(r,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const oi=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#][^:#]*?))\s*:(?:\s+(.*))?$/,si=/\s#/;function ci(e){let t=oi.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.search(si),l=(c===-1?o:o.slice(0,c)).trimEnd(),u=l[0];return(u===`"`||u===`'`)&&l.length>1&&l.endsWith(u)&&(l=l.slice(1,-1),s+=1),{indent:n.length,key:r??i??a,value:l,valueIndex:s}}function li(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 ui(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(si);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function di(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return null;let n=[];for(let r of li(e)??[]){if(r.colon===-1)return null;let e=ui(r.text.slice(0,r.colon)),i=ui(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 fi(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=ci(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 di(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])=>!e.includes("${")))}}function pi(e,t){let n=Qe(y(t),t=>{try{return{content:c(_(t,e),`utf8`)}}catch(e){if(e.code!==`ENOENT`)throw e}return null});return n?n.content:null}const mi=new Map;function hi(e,t){let n=V(mi,t,()=>fi(pi(`pnpm-workspace.yaml`,t)??``));for(let[t,r]of Object.entries(n.registries))if(t!=="default"&&e.startsWith(`${t}/`))return r;return n.registries.default||n.registry||null}function*gi(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
9
+ `).entries()){let e=ci(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 di(c,l)??[])yield{type:`catalog`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex};else if(s===`catalogs`)for(let e of di(c,l)??[])for(let t of di(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 di(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 _i(e,t){let n=e.split(`
10
+ `),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(gi(e)).sort((e,t)=>t.lineIndex-e.lineIndex||t.valueIndex-e.valueIndex)){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(`
11
+ `):e}function vi(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=ci(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of li(e.value)??[]){let e=ui(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=ui(e.slice(1));n&&t.push(n.value)}}return t}const yi=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,bi=new Set([`resolutions`,`overrides`]);function xi(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const Si=X.registry,Ci=new Map,wi=new Map,Ti=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function Ei(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=`//${n.host}${r.replace(/\/$/,``)}`,i=n=>t[`${e}:${n}`]||t[`${e}/:${n}`],a=i(`_authToken`);if(a)return{token:Ti(a),type:`Bearer`};let o=i(`username`),s=i(`_password`);if(o&&s){let e=Buffer.from(Ti(s),`base64`).toString(`utf8`);return{token:Buffer.from(`${o}:${e}`).toString(`base64`),type:`Basic`}}let c=i(`_auth`);if(c)return{token:Ti(c),type:`Basic`};n.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname}if(e===Si&&t._auth)return{token:Ti(t._auth),type:`Basic`}}function Di(e,t,n,r){let i=V(Ci,r??``,()=>$r(`npm`,{registry:Si},r)),a=cn((typeof n.registry==`string`?n.registry:``)||t.registry||i.registry||Si),o=e.startsWith(`@`)?e.split(`/`)[0]:``,s=r?hi(e,r):null,c=o&&r?hi(``,r):null;return V(wi,`${r??``}${o}:${a}:${s??``}:${c??``}`,()=>{let e=s?cn(s):a,t=s===c&&o&&i[`${o}:registry`];if(t)try{let n=cn(t);n!==e&&(e=n)}catch{}return{auth:Ei(e,i),registry:e}})}const Oi=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},ki=new WeakMap,Ai=new WeakMap,ji=new WeakMap,Mi=new WeakMap,Ni=(e,t)=>`${e}v2${t?`-dates`:``}`;function Pi(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 Fi(e,t,n,r,i,a,o=``){let s=bi.has(t)?xi(e):t===`packageManager`&&e===`yarn`&&(U(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Di(s,n,r,a),u=Oi(l,s),d=Ni(u,!!r.needsDates);return[await Q(ki,i,d,async()=>{let t=ln(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await _n(u,i,t,mn(Pi),d);return`body`in n||dr(n.res,u,e,l),JSON.parse(n.body)}),l]}async function Ii(e,t,n,r,i,a){let{auth:o,registry:s}=Di(e,n,r,a),c=Oi(s,e,t);return Q(Ai,i,c,async()=>{try{let n=ln(o?.type,o?.token),a=await vn(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=Oi(s,e);return!u&&r.needsDates&&(u=(await ki.get(i)?.get(Ni(f,!0)))?.time?.[t]||``),u||=(await R(Q(ji,i,f,async()=>{let e=await pn(i,f,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function Li(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Ri(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function zi(e){return e.startsWith(`catalog:`)}const Bi=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function Vi(e){let t=Bi.exec(e);return t&&J(t[2])?{name:t[1],range:t[2]}:null}const Hi=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,Ui=/^@([^/]+)\/(.+)$/;function Wi(e,t){let n=Hi.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=Ui.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function Gi(e,t){if(!Ui.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Q(Mi,t,n,async()=>{let r=await _n(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||dr(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function Ki(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 qi=String.raw`[<>]=?|~>|[\^~=]`,Ji=new RegExp(String.raw`^(${qi})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),Yi=RegExp(`^(?:${qi})$`),Xi=/^[xX*]$/,Zi=/\+[0-9A-Za-z.-]+/g,Qi=/\|\||[\dxX*]\s+\S/;function $i(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&Yi.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function ea(e,t){let n=Ji.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)=>Xi.test(e)?e:l[t]??`0`).join(`.`)}`}function ta(e,t){if(q(t,e))return e;let n=$i(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=ea(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=ea(r,t),n.join(` `)}function na(e,t,n,r){let i=(n||e).replace(Zi,``),a=r===`peerDependencies`||Qi.test(i)?ta(i,t):ea(i,t);return q(t,a)?a:i}function ra(e){if(/[xX*]/.test(e))return e;let t=e.match(yi);return t?.length===1?e.replace(yi,Dn(t[0])):e}async function ia(e,t,n){let r=await rr(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,`commits`,async e=>{let[t]=JSON.parse(await e.text());return JSON.stringify(t?[{sha:t.sha,commit:{committer:t.commit?.committer,author:t.commit?.author}}]:[])}),[i]=r?JSON.parse(r):[];return i?{hash:i.sha,commit:i.commit}:{hash:``,commit:{}}}async function aa(e,t,n,r){return(await lr(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function oa(e){let t=e.lastIndexOf(`#`);if(t===e.length-1)return null;let n=e.slice(0,t===-1?e.length:t).replace(/^git\+/i,``),r=t===-1?``:e.slice(t+1);if(/^github:/i.test(n))n=n.slice(7);else if(/^git@github\.com:/i.test(n))n=n.replace(/^git@github\.com:/i,``);else if(/^(?:https?|git|ssh):/i.test(n)){let e=/^(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:](.+)$/i.exec(n);if(!e)return null;n=e[1]}else if(n.includes(`:`))return null;if(!r){let e=/^([^/]+\/[^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i.exec(n);if(!e)return null;n=e[1],r=e[2]}n=n.replace(/\.git$/i,``);let i=n.split(`/`);if(i.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(i[0])||!/^[a-z\d._-]{1,100}$/i.test(i[1]))return null;let a=r.startsWith(`semver:`)&&J(r.slice(7))?r.slice(7):null;return!a&&!Zn.test(r)&&!lt(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function sa(e,t,n){let r=oa(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(Zn.test(o)){let{hash:t,commit:r}=await ia(i,a,n);if(!t)return null;let s=$n(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=Jn(await aa(i,a,o,n),s?Dn(s):o);if(t){let n=s?na(s,t.replace(/^v/,``),s):t;if(n!==o)return{key:e,newRange:c(n),user:i,repo:a,oldRef:o,newRef:n}}}return null}const ca=/[-_.]+/g,la=new WeakMap;function ua(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 da(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(ca,`-`)}/json`;return[{...await Q(la,t,n,async()=>{let r=await _n(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:ua(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:ua(e.releases)}}dr(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function fa(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=Pt(e.local?{...e,local:null}:e,r),a=r.local?Pt(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 pa(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 ma(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 ha(e,t){let n=Y(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(Y(r))return fa(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=Te(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>fa(n,e))}function ga(e,t,n){let r=Te(e),i=r?.specifiers,a=Y(t),o=Y(n);if(!r||!i||!a||!o)return null;let s=Ee(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?pa(o):pa(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:pa(o);else if(!fa(o,e)){let t=Y(e.version);if(e.op===`<`&&t)e.version=ma(t,a,o);else if(e.op===`<=`)e.version=pa(o);else return null}if(!fa(o,e))return null}return F(r,i)}function _a(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 va(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 ya(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===`
12
+ `&&(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 ba(e,t){let n=new Map,r=[],i=0;for(let a of e.split(/(?<=\n)/)){let o=/^\[([^\]]+)\](?:\s*#.*)?$/.exec(a.trim());if(o)r=_a(o[1]);else{let o=va(a),s=o===-1?``:[...r,..._a(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=ya(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function xa(e,t){let n=new Map;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`);V(n,t,()=>new Map).set(i,r)}let r=ba(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=Ue(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}${ga(n,o||a,s)??n}`});i=`${i.slice(0,t[0])}${o}${i.slice(t[1])}`}return i}function Sa(e){let t=e.includes(`:/`)||e.startsWith(`/`);return cn(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Ca(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 wa(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:Sa(e),fallback:r})}return t}function Ta(e){if(typeof e==`string`)return[{url:cn(e),fallback:`,`}];let n=wa(t.GOPROXY||`${X.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Ea(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Da=new Map;function Oa(e){return V(Da,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:z(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function ka(e,t){return t.some(t=>Oa(t).test(e))}function Aa(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const ja=/\/v(\d+)$/,Ma=/^gopkg\.in\/.*?\.v(\d+)$/;function Na(e){let t=Ma.exec(e)??ja.exec(e);return t?Number.parseInt(t[1]):1}function Pa(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(ja,``);return t<=1?n:`${n}/v${t}`}function Fa(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Z(t));return Number.isNaN(n)||n===Na(e)?e:Pa(e,n)}const Ia=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,La=/^(\S+)\s+(v\S+)/,Ra=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,za=e=>e.replace(/^"(.*)"$/,`$1`);function Ba(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Va(e){let t=Ra.exec(e);if(!t)return null;let[,n,r,i,a]=t;return{origModule:za(n),origVersion:r??``,targetModule:za(i),targetVersion:a??``}}function*Ha(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=Ia.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function Ua(e){return e.startsWith(`golang.org/x/`)}async function Wa(e,t,n){let r=t,i=t&&!Cn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Cn(e.Version)||(i=e)}return i??r}function Ga(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 Ka(e){for(let{kind:t,value:n}of Ha(e.split(/\r?\n/)))if(t===`module`)return za(n.split(/\s/,1)[0]);return``}function qa(e){let t={},n={},r={},i={},a={},o=new Set,s=[];for(let i of Ha(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(za(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=La.exec(i.value);e&&(a[za(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=Va(i.value);e&&(e.targetVersion&&!Ba(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=La.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[za(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 Ja=new WeakMap;function Ya(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=V(Ja,n,()=>new Map);for(let t of i?[_(e,i,`go.mod`),_(e,`go.mod`)]:[_(e,`go.mod`)]){let e=y(t),n=V(a,e,()=>{try{return new Map(Object.entries(qa(c(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return new Map}async function Xa(e,n,r,i,a){let o=Na(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(`
13
+ `)[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=ro((n.Versions??[]).join(`
14
+ `),io(e),r);if(!i)throw Error(`No non-excluded versions found for ${e}`);return s(e,t,i.Version)},l=e=>R(c(e,i.goProbeTimeout)),[u,d]=await Promise.all([c(e,i.fetchTimeout),Ua(e)?null:l(Pa(e,o+1))]);return Ga(e,n,await Wa(o,d,t=>l(Pa(e,t))),u)}const Za={"accept-encoding":`gzip, deflate, br`},Qa=e=>e===404||e===410;async function $a(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 eo=async(e,t,n)=>{let r=`${t}/${Aa(n)}/@latest`,i=await e(r);if(i.ok)return $a(i,r,n);if(Qa(i.status))return null;dr(i,r,n,t)},to=new WeakMap;function no(e,t,n,r,i){return Q(to,e,`latest${t}${r}/${i}`,()=>eo(n,r,i))}function ro(e,t=0,n=new Set){let r=null;for(let i of e.split(`
15
+ `)){let[e,a]=i.trim().split(/\s+/);if(!(!e||!lt(e)||n.has(e))&&!(t&&Number.parseInt(Z(e))!==t)){if(r){let t=Cn(e);if(t===Cn(r.Version)?!gt(e,r.Version):t)continue}r={Version:e,Time:a??``}}}return r}function io(e){return ja.test(e)||Ma.test(e)?Na(e):0}async function ao(e,t,n,r=new Set){let i=Aa(n),a=`${t}/${i}/@v/list`,o=await e(a);if(!o.ok){if(Qa(o.status))return null;dr(o,a,n,t)}let s=ro(await o.text(),io(n),r);if(!s)return null;if(s.Time)return{...s,path:n};let c=`${t}/${i}/@v/${Aa(s.Version)}.info`;try{let t=await e(c);if(t.ok)return $a(t,c,n)}catch{}return{...s,path:n}}function oo(e,t,n,r,i,a=new Set){let o=`list${t}${r}/${i}${Array.from(a).sort().join(`\0`)}`;return Q(to,e,o,()=>ao(n,r,i,a))}async function so(e,t,n,r,i){let a=Na(t),o=e=>pn(r,e,{headers:Za}),s=e=>r.doFetch(e,{signal:AbortSignal.timeout(r.goProbeTimeout),headers:Za}),c=no(r,`primary`,o,e,t),l=(async()=>{let n=await c,a=i.get(t);return n&&!a?.has(n.Version)?n:oo(r,`primary`,o,e,t,a)})(),u=async t=>{try{let[n,a]=await Promise.all([no(r,`probe`,s,e,t),c]),o=i.get(t);return n&&!o?.has(n.Version)?n:!n&&a?null:oo(r,`probe`,s,e,t,o)}catch{return null}},[d,f]=await Promise.all([l,Ua(t)?null:u(Pa(t,a+1))]);return d?Ga(t,n,await Wa(a,f,e=>u(Pa(t,e))),d):null}async function co(e,t,n,r,i,a){let o=Ya(r,t,i);if(ka(e,a))return Xa(e,n,r,i,o);let s=await Ca(i.goProxyChain,async t=>{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);return t===`direct`?Xa(e,n,r,i,o):so(t,e,n,i,o)});if(s)return s;throw Error(`Unable to find ${e} on any GOPROXY entry`)}const lo=e=>`("?)${z(e)}\\2`;function uo(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=new Map,c=new Map,l=new Map;for(let e of Ha(a))if(e.kind===`require`){let t=La.exec(e.value);t&&$e(s,za(t[1]),e.lineNumber)}else if(e.kind===`replace`){let t=Va(e.value);t&&$e(c,t.targetModule,{...t,lineNumber:e.lineNumber})}else if(e.kind===`tool`){let t=za(e.value.split(/\s/,1)[0]);for(;t;){$e(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=Fa(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+)${lo(d)}(\\s+)v${z(f)}(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`),p!==d&&t.origModule===d&&!t.origVersion&&(a[n]=a[n].replace(RegExp(`(^\\s*(?:replace\\s+)?)${lo(d)}(?=\\s+=>)`),`$1$2${p}$2`),e=!0)}e&&o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${lo(d)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&(n[d]=p);continue}o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${lo(d)}(\\s+)v${z(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+)?)("?)${z(d)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),`$1$2${p}$3$2`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const fo=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function po(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(fo)){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}function mo(e,t,n){if(Object.keys(t).length)for(let r of o(`**/*.go`,{cwd:e})){let i=_(e,r),a=c(i,`utf8`),o=po(a,t);o!==a&&n(i,o)}}function ho(e){let t=[],n={};for(let r of Ha(e.split(/\r?\n/)))if(r.kind===`use`)t.push(r.value.split(/\s/,1)[0]);else if(r.kind===`replace`){let e=Va(r.value);e?.targetVersion&&!Ba(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function go(e,t){try{let n=u(y(e));return u(_(n,t,`go.mod`))}catch{return null}}function _o(e){let t=`https://${vo(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${hr(t)}/${a.join(`/`)}`,n.href}return t}function vo(e){return ja.test(e)?h(e):e}function yo(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function bo(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:Xn.test(o)}}function xo(e,t){return e?e===`github.com`?sn:`https://${e}/api/v1`:t}async function So(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Qt(a);if(e)return e.body}try{let e=await qn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=$n(await e.json());return t&&!i.noCache&&tn(a,`immutable`,t),t}catch(e){if(e instanceof Wn)throw e;return}}function Co(e,t){let n=Z(e);return mr(U(n)?.version??n,t)}const wo=/^(\s*)(?:-\s*)?(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/,To=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function Eo(e){let t=/^(\s*(?:-\s*)?uses:\s*)(?:(["'])(.*?)\2|((?!["'])[^\s#]+))([^\n]*)$/.exec(e);if(!t)return null;let[,n,r=``,i,a,o]=t,s=i??a;if(!s)return null;let c=o.indexOf(`#`),l=c===-1?``:o.slice(c),u=l?To.exec(l.slice(1)):null;return{prefix:n,quote:r,value:s,gap:c===-1?o:o.slice(0,c),comment:l,pinnedVersion:u?.[1]??``,pinnedEnd:u?u[0].length+1:0}}const Do=/^https?:\/\//;function Oo(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
16
+ `).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=wo.exec(e);if(!t)return e;let a=t[1].length;for(;r.length&&r.at(-1).indent>=a;)r.pop();let o=(t[2]??t[3]??t[4]).trim(),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`),c=t[5].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=Eo(e);if(!l)return e;let{prefix:u,quote:d,value:f,gap:p,comment:m,pinnedVersion:h,pinnedEnd:g}=l,_=Do.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(`
17
+ `)}const ko=RegExp(`(?:^|/)(?:${Ue(Ae)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Ao(e){return ko.test(e.replace(/\\/g,`/`))}function jo(e){let t=new Set;try{for(let n of l(_(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(y(_(e,`workflows`,n)))}catch{}try{for(let n of l(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(y(_(n.parentPath,n.name)))}catch{}return Array.from(t)}const Mo=/^(v?\d+(?:\.\d+)*)([a-z][a-z0-9]*)?(-.+)?$/i,No=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,Po=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,Fo=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,Io=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,Lo=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function Ro(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*zo(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=Lo(i[0]),a=Fo.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:Ro(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=Io.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:Ro(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const Bo=/^(?:(?:index|registry-1)\.)?docker\.io$/;function Vo(e){let t=e.split(`/`);return t.length>1&&Bo.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 Ho(e){let{registry:t,namespace:n,repo:r}=Vo(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 Uo(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&&!Mo.test(s))return null;let{registry:c,namespace:l,repo:u}=Vo(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function Wo(e){let t=Mo.exec(e);return t?{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}:null}function Go(e,t,n=``){let r=Wo(t);return r?mr(e,r.version,`${n}${r.suffix}`):t}function Ko(e,t){let n=[];if(t===No){for(let{from:t,resolved:r}of zo(e,!0)){let e=Uo(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===Po?qo(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=Uo(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function qo(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 Jo=new WeakMap,Yo=new Set([401,403,404]);function Xo(e,t,n){return Q(Jo,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 _n(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):(Yo.has(i.res?.status)||dr(i.res,r,`${e}/${t}`,n.dockerApiUrl),null)},s=e=>{for(let t of e?.results??[])r.dates[t.name]=t.tag_last_pushed||t.last_updated||``,typeof t.digest==`string`&&r.digests.set(t.name,t.digest)},c=await o(a(1));if(!c)return r;s(c);let l=new Set,u=c,d=2;if(c.count){let e=[];for(;d<=20&&d<=Math.ceil(c.count/1e3);d++){let t=a(d);l.add(t),e.push(t)}let t=await L(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:bn(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 Zo(e,t,n){return(await Xo(e,t,n)).dates}async function Qo(e,t,n,r){let i=(await Xo(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await _n(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 Yo.has(o.res?.status)||dr(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const $o=/^\d?[02468]\.04$/;function es(e,t){if(!$o.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const ts={ubuntu:es};function ns(e,t,n=Date.now()){let r=ts[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=Wo(e)?.version;return!t||r(t,n)})):t}async function rs(e,t){let{registry:n,namespace:r,repo:i}=Vo(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:ns(i,await Zo(r,i,t)),name:e},null]}const is=(e,t)=>t?`${e}-${t}`:e,as=/^\d+$/,os=e=>Z(e.version).split(`.`).map(Number);function ss(e){let t=Z(e).split(`.`).slice(0,3);return t.some(e=>!as.test(e))?null:[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function cs(e,t){let n=os(e),r=os(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=os(e),r=os(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 us(e,t,n,r,i,a,o=!1,s=!1){let c=Wo(t);if(!c)return null;let l=ss(c.version);if(!l)return null;let u=Z(c.version).split(`.`).length,d=is(l,c.prerelease),{effectiveSemvers:f,skipsPrerelease:p}=En(d,o,s,n),m=u>3,h=U(d),g=c,_=``,v=``;for(let[t,l]of Object.entries(e)){let e=Wo(t);if(!e||e.suffix!==c.suffix||Z(e.version).split(`.`).length!==u||!pr(e.version,c.version)||!an(l,r,i))continue;if(m){if(e.prerelease&&(!o&&!c.prerelease||s)||cs(e,g)<=0)continue;let r=ls(c,e);if(!r||!n.has(r))continue;g=e,_=t,v=l;continue}let d=ss(e.version);if(!d)continue;let y=U(is(d,e.prerelease));if(!y||e.prerelease&&p(y)||a&&!q(d,a))continue;if(y.version===h.version){_&&Date.parse(l)>Date.parse(v)&&(_=t,v=l);continue}let b=Rt.diff(h,y);!b||!f.has(b)||Rt.compare(y,h)>0&&(h=y,_=t,v=l)}if(m)return _?{newTag:_,date:v}:null;if(!_||h.version===d)return null;let[y,b=``]=h.version.split(`-`),x=Go(y,t,b),S=x in e?x:_;return S===t?null:{newTag:S,date:v}}const ds=`(?![\\w.@+-])`;function fs(e){let t=new Map;for(let[n,r]of Object.entries(e)){let e=n.split(`\0`)[1];r.oldDigest?r.newDigest&&t.set(r.digestOnly?`${e}@${r.oldDigest}`:`${e}:${r.oldOrig||r.old}@${r.oldDigest}`,r.digestOnly?`${e}@${r.newDigest}`:`${e}:${r.new}@${r.newDigest}`):t.set(`${e}:${r.oldOrig||r.old}`,`${e}:${r.new}`)}return t}function ps(e,t,n,r=()=>!0){if(!t.size)return e;let i=Ue(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`(${e})(${i})${ds}`,`g`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function ms(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=fs(t);if(!r.size)return e;let i=Ue(r.keys()),a=e.replace(RegExp(`(FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${ds}`,`gi`),(e,t,n)=>`${t}${r.get(n)??n}`),o=new Map;for(let{instruction:e,args:t,from:n,resolved:i}of zo(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=Ro(n[1].slice(0,e.index),e=>t.get(e)?.value),s=Ro(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 hs(e,t){let n=qo(e);return ps(e,fs(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function gs(e,t){return ps(e,fs(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const _s=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function vs(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function ys(e){return/^Dockerfile(\..+)?$/.test(e)}function bs(e){return ys(e)||vs(e)}function xs(e){return ys(e)?No:Po}function Ss(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Cs=[`Makefile`,`makefile`,`GNUmakefile`];function ws(e){return Cs.includes(e)||e.endsWith(`.mk`)}const Ts=/^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,Es=/^([^@\s]+)@(v\d\S*)$/,Ds=/^[^/\s]+\.[^/\s]+\//;function*Os(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=Ts.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 ks(e){let t=[];for(let n of Os(e)){let e=Es.exec(n);if(!e||!Ds.test(e[1]))continue;let[,r,i]=e;t.push({installPath:r,version:i})}return t}const As=/@(sha256:[0-9a-f]{64})$/;function js(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Ms(e){let t=As.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=Uo(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function Ns(e){return Array.from(Os(e)).flatMap(e=>Ms(e)??[])}const Ps=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,Fs=new WeakMap;function Is(e,n,r){return Q(Fs,r,`${y(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(`
18
+ `)[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 Ls(e,t,n,r){return await Ca(r,async r=>r===`off`?!1:r===`direct`?Is(e,t,n):await no(n,`primary`,e=>pn(n,e,{headers:Za}),r,e)?!0:null)??!1}async function Rs(e,t,n,r){let i=Ps.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=ka(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=>Ls(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 zs(e,t){let n=new Map(t.map(({oldSpec:e,newSpec:t})=>[e,t]));if(!n.size)return e;let r=Array.from(n.keys()).sort((e,t)=>t.length-e.length).map(e=>Array.from(e,z).join(`["']*`)).join(`|`),i=RegExp(`(?<![\\w./@:-])(${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 Bs=new WeakMap;function Vs(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 Hs(e,t){let n=cn(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${Vs(t)}`}function Us(e){return e.split(`
11
19
  `).map(e=>{if(!e)return e;try{let{vers:t,yanked:n,pubtime:r}=JSON.parse(e);return JSON.stringify({vers:t,yanked:n,pubtime:r})}catch{return e}}).join(`
12
- `)}async function Bo(e,t){let n=Ro(t.cratesIoUrl,e);return[await sn(Io,t,n,async()=>{let r=await an(n,t,Yt(),zo);`body`in r||X(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
13
- `)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=H(n);r&&(r.prerelease.length?(!s||W(n,s))&&(s=n):(!o||W(n,o))&&(o=n))}if(!c&&r.body.trim())throw Error(`Invalid JSON from ${n}`);return{name:e,versions:i,time:a,"dist-tags":{latest:o||s}}}),null]}function Vo(e){let t=new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);if(!e||!r)continue;let i=e[1],a=r[1];Ye(a)&&Ue(t,i,a)}return t}const Ho=/^\d/,Uo=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Wo=/\s*,\s*/g,Go=/(\s*,\s*)/,Ko=e=>e.includes(`,`)?e.replace(Wo,` `):e,qo=e=>Ko(Ho.test(e)&&!Uo.test(e)?`^${e}`:e);function Jo(e,t){if(e.startsWith(`<`)&&K(t,e))return e;let n=Uo.exec(e);if(n){let[,e,r]=n;return`${t.split(/[-+]/)[0].split(`.`).slice(0,e.split(`.`).length).join(`.`)}${r}`}return Ho.test(e)?fi(Z(`^${e}`),t,`^${e}`).replace(/^\^/,``):fi(Z(e),t,e)}function Yo(e,t){if(!e.includes(`,`))return Jo(e,t);let n=e.split(Go);for(let e=0;e<n.length;e+=2)n[e]=Jo(n[e],t);return n.join(``)}function Xo(e,t,n){let r=e.get(t);if(!r)return;let i=qo(n),a;for(let e of r)K(e,i)&&(!a||W(e,a))&&(a=e);return a}const Zo=e=>`(?:${R(e)}|"${R(e)}"|'${R(e)}')`,Qo=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/;function $o(e){for(let t of[`"""`,`'''`])if(e.split(t).length%2==0)return t;return``}function es(e){let t=[],n=``,r=0;for(let i of e.split(`
14
- `)){if(n)i.includes(n)&&(n=``);else{let a=Qo.exec(i);if(a){let n=t.at(-1);n&&(n.end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length})}else n=$o(i)}r+=i.length+1}return t}function ts(e,t){let n=e;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Zo(i),c=R(a),l=t.split(`|`)[0].split(`.`).map(Zo).join(`\\.`),u=RegExp(`^${l}\\.${s}$`),d=RegExp(`^${l}$`),f=e=>e.replace(RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`,`gm`),`$1${o}$2`).replace(RegExp(`^(\\s*${s}\\s*=\\s*\\{(?:"[^"\\n]*"|'[^'\\n]*'|[^"'}\\n])*?\\bversion\\s*=\\s*["'])${c}(["'])`,`gm`),`$1${o}$2`).replace(RegExp(`(\\[${l}\\.${s}\\](?:(?!\\n\\[)[\\s\\S])*?version\\s*=\\s*["'])${c}(["'])`,`g`),`$1${o}$2`),p=es(n),m=p.find(e=>u.test(e.path))??p.find(e=>d.test(e.path));n=m?n.slice(0,m.start)+f(n.slice(m.start,m.end))+n.slice(m.end):f(n)}return n}function ns(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}function rs(e,t){let n=t===`.`?``:`|${t}`,r={};for(let[t,i]of Object.entries(e)){let[e,a]=t.split(`\0`),o=ns(e);e===`${o}${n}`&&(r[`${o}${a}`]=i)}return r}const is=/[*?{[]/;async function as(e,t,n,r=32){let i=e.filter(e=>!e.startsWith(`!`)),a=e.filter(e=>e.startsWith(`!`)).map(e=>e.slice(1)),o=new Set(a.flatMap(e=>m(e,{cwd:t})).map(e=>e.replace(/\\/g,`/`))),s=new Set,c=[];for(let e of i){let r=is.test(e)?m(e,{cwd:t}).map(e=>f(u(t,e))):[f(u(t,e))];for(let e of r){let r=d(t,e).replace(/\\/g,`/`);if(o.has(r))continue;let i=u(e,n);s.has(i)||(s.add(i),c.push({absPath:i,memberPath:`./${r}`}))}}return(await L(c,async({absPath:e,memberPath:t})=>{try{return{absPath:e,content:await x(e,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const os=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#][^:#]*?))\s*:(?:\s+(.*))?$/,ss=/\s#/;function cs(e){let t=os.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.search(ss),l=(c===-1?o:o.slice(0,c)).trimEnd(),u=l[0];return(u===`"`||u===`'`)&&l.length>1&&l.endsWith(u)&&(l=l.slice(1,-1),s+=1),{indent:n.length,key:r??i??a,value:l,valueIndex:s}}function*ls(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
15
- `).entries()){let e=cs(a);if(!e)continue;let{indent:o,key:s,value:c,valueIndex:l}=e;o===0?(t=s===`catalog`||s===`catalogs`?s:``,n=``,r=-1):t===`catalog`?c&&(yield{type:`catalog`,name:s,value:c,lineIndex:i,valueIndex:l}):t===`catalogs`&&(r===-1||o<=r?(n=s,r=o):c&&(yield{type:`catalogs.${n}`,name:s,value:c,lineIndex:i,valueIndex:l}))}}function us(e,t){let n=e.split(`
16
- `),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of ls(e)){let e=t[`${i}${a}`];if(!e||(e.oldOrig||e.old)!==o)continue;let l=n[s];n[s]=l.slice(0,c)+e.new+l.slice(c+o.length),r=!0}return r?n.join(`
17
- `):e}function ds(e){let t=[],n=e.split(/\r?\n/),r=!1;for(let e of n){if(/^packages\s*:/.test(e)){r=!0;continue}if(r){let n=e.trim();if(!n||n.startsWith(`#`))continue;if(!n.startsWith(`-`))break;let r=/^\s*-\s+['"]?([^'"#\s]+)['"]?/.exec(e);r&&t.push(r[1])}}return t}const fs=[...new Set(Object.values(F)),`actions`,`docker`,`make`],ps=new Set(fs),ms={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},hs={"go.work":{mode:`go`,supersedes:`go.mod`},"pnpm-workspace.yaml":{mode:`npm`,supersedes:`package.json`}},gs=(e,t)=>typeof e==`string`?Jt(e):typeof t==`function`?t():t,_s=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function vs(e,t){let n=new Map,r=new Set(e),i=t;for(;r.size;){for(let e of r){let t=u(i,e);try{p(t),n.set(e,t),r.delete(e)}catch{}}let e=c(i);if(e===i)break;i=e}return n}async function ys(e,t){let n=await L(e,async e=>{try{return[e,await x(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:t});return new Map(n)}function bs(e,t){t&&(e.date=t,e.age=jt(t,{noAffix:!0,shortUnits:!0}))}const xs=(e,t,n)=>`${e}${t}${n}`,Ss=e=>Object.values(e).reduce((e,t)=>e+Object.keys(t).length,0),Cs=e=>e.toLowerCase().replace(/[-_.]+/g,`-`);function ws(e,t){return t===`go`?[e,ba(e)]:t===`docker`?Va(e):t===`pypi`?[e,Cs(e)]:[e]}const Ts=(e,t)=>t.find(t=>e[t]);function Q(e,t,n,r,i,a=t){if(i===`engines`&&De.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let o=ws(e,a);for(let e of r)if(o.some(t=>e.test(t)))return!1;for(let e of n)if(o.some(t=>e.test(t)))return!0;return!n.size}function Es(t){let n=new Set;if(t)for(let e of t){let t;try{t=y(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}let r=f(e);try{r=v.native(e)}catch{}if(t.isFile())n.add(r);else if(t.isDirectory()){try{for(let e of _(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(F,e.name)||mo(e.name)||vo(e.name))&&n.add(f(u(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?[c(e)]:i?[e]:P.map(t=>u(e,t));for(let e of a)for(let t of Na(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(P),r=[...Object.keys(F),...uo,..._o,...P],i=new Set;for(let[a,o]of vs(r,e())){if(t.has(a)){for(let e of Na(o))n.add(e);continue}let e=f(o);try{e=v.native(o)}catch{}i.has(e)||(i.add(e),n.add(f(o)))}try{for(let t of _(e(),{withFileTypes:!0})){let r=mo(t.name)&&!uo.includes(t.name),i=vo(t.name)&&!_o.includes(t.name);t.isFile()&&(r||i)&&n.add(f(u(e(),t.name)))}}catch{}}let r=[];for(let e of Array.from(n)){let t=s(e);Object.hasOwn(hs,t)&&(r.push(e),n.delete(u(c(e),hs[t].supersedes)))}return r.length?new Set([...r,...n]):n}function $(e,t){r===`win32`&&b(e,0),ee(e,t,r===`win32`?{flag:`r+`}:void 0)}const Ds=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function Os(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>fs.indexOf(e)-fs.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=Ds(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`&&!Ur(a.oldOrig)&&(a.old=e===`go`?xa(a.oldOrig):a.oldOrig),e===`go`?a.new=xa(a.new):e===`actions`&&(a.old=Y(a.old),a.new=Y(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get(Ds(e,r))>1?`${o}${e===`actions`?`@`:`:`}${s}`:o,l=t.results[e]??={};(l[i]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}let ks=!1;async function As(t={}){if(!ks){let{enableDnsCache:e}=await import(`./dns.js`);e(),ks=!0}let n={...t};typeof n.timeout==`number`&&(n.timeout=Re(n.timeout,`timeout`));let r=n.sockets??25,a=n.timeout??0,l=gs(t.forgeapi,J.forgeapi),d=gs(t.pypiapi,J.pypiapi),p=gs(t.jsrapi,J.jsrapi),m=Ti(t.goproxy),h=m[0].url,g=gs(t.cargoapi,J.cargoapi),_=gs(t.dockerapi,J.dockerapi),v=Ei(),y=!n.noColor&&(n.color||i.isTTY),b=e=>y?t=>o(e,String(t),{validateStream:!1}):String,ee=b(`magenta`),te=b(`green`),ne=b(`red`),S,C={execFile:async(e,t,n)=>(await En())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):Kt,concurrency:r,forgeApiUrl:l,pypiApiUrl:d,jsrApiUrl:p,goProxyUrl:h,goProxyChain:m,cratesIoUrl:g,dockerApiUrl:_,doFetch:(e,t)=>(S??=fn(C))(async()=>{n.verbose&&console.error(`${Pe()} ${ee(t?.method||`GET`)} ${e}`);let r=await Qt(e,t);return n.verbose&&console.error(`${Pe()} ${r.ok?te(r.status):ne(r.status)} ${e}`),r}),noCache:!!n.noCache},re=lr(n.greatest),ie=lr(n.prerelease),w=lr(n.release),T=lr(n.patch),ae=lr(n.minor),oe=lr(n.allowDowngrade);for(let e of n.modes??[])if(!ps.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${fs.join(`,`)}`);let E=n.modes?.length?new Set(n.modes):ps,D=(n.overrides??[]).map(e=>({include:e.include?.length?ar(e.include):void 0,exclude:e.exclude?.length?ar(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Le(String(e.cooldown))})),se=(e,t)=>e.include&&t.every(t=>!Ne(t,e.include))?!1:!e.exclude||t.every(t=>!Ne(t,e.exclude)),k=D.some(e=>e.cooldownDays);E.has(`actions`)&&An();let ce=new Map;function le(e,t){let n=`${e}${t}`,r=ce.get(n);if(!r){let i=ws(t,e),a=e=>i.some(t=>Ne(t,e)),o=a(re),s=a(ie),c=a(w),l=a(T),u=a(ae),d=a(oe),f;for(let e of D)se(e,i)&&(e.greatest!==void 0&&(o=e.greatest),e.prerelease!==void 0&&(s=e.prerelease),e.release!==void 0&&(c=e.release),e.patch!==void 0&&(l=e.patch),e.minor!==void 0&&(u=e.minor),e.allowDowngrade!==void 0&&(d=e.allowDowngrade),e.cooldownDays!==void 0&&(f=e.cooldownDays));let p=l?ms.patch:u?ms.minor:ms.major;r={names:i,useGreatest:o,usePre:s,useRel:c,semvers:p,allowDowngrade:d,cooldownOverride:f},ce.set(n,r)}return r}let ue=ar(n.include??[]),de=ar(n.exclude??[]);sr(n.pin);let fe=n.pin??{},pe=(e,t,n)=>{let r=Ts(fe,e);if(r)return{pinnedRange:fe[r],pinNoDowngrade:!1};let i=Ts(t,e);return{pinnedRange:i?t[i]:void 0,pinNoDowngrade:!!(i&&Array.isArray(n)&&n.includes(i))}},A={},j={},me=new Map,he=new Map,ge=new Map,_e=[],ve=(e,t,n,r)=>{_e.push({mode:e,type:t,name:n,error:r?.message||String(r)})},ye=(e,t,n)=>{let[r,i]=t.split(`\0`);ve(e,r,i,n)},M={},be=Date.now(),xe=e=>{let t=n.cooldown??e;return t?Le(String(t)):0},Se=e(),Ce=e=>e.replace(`${Se}/`,``).replace(`${Se}\\`,``),N=(e,t,n,r,i,a)=>{A[e][xs(t,n,r)]={old:i,oldOrig:a}},we=(e,t,n,r)=>{if(Gr(r))return;let i=qr(r);Ur(r)?N(`npm`,e,t,n,Xr(r,n).version,r):ut(r)?N(`npm`,e,t,n,Z(r),r):i?(he.set(xs(e,t,n),i),N(`npm`,e,t,n,Z(i.range),r)):Wr(r)?N(`npm`,e,t,n,`0.0.0`,r):j[xs(e,t,n)]={old:r}},De=(e,t,n,r,i,a)=>{let o=new Set(Object.keys(t.tool?.uv?.sources??{}).map(Cs)),s=(t,r)=>{for(let{name:s,version:c,spec:l}of Te(t))o.has(Cs(s))||Q(s,e,i,a,r)&&(N(e,r,n,s,Z(c),c),ge.set(xs(r,n,s),l))};for(let[o,c]of Me(r,t)){let t=c||{};if(Array.isArray(t)){if(e!==`pypi`)continue;s(t,o)}else if(typeof t==`string`){let[r,s]=t.split(`@`);Q(r,e,i,a,o)&&N(e,o,n,r,Z(s),s)}else{let r=Object.entries(t),c=new Set;if(e===`npm`){let e=t=>{if(!(!t||typeof t!=`object`))for(let[n,r]of Object.entries(t))c.add(n),e(r)};for(let[,t]of r)e(t)}for(let[t,l]of r){if(e===`pypi`&&Array.isArray(l)){s(l,`${o}.${t}`);continue}typeof l!=`string`||c.has(t)||Q(t,e,i,a,o)&&(e===`npm`?we(o,n,t,l):e===`go`?N(e,o,n,t,xa(l),Y(l)):ut(l)&&N(e,o,n,t,Z(l),l))}}}},P=Es(n.files?.length?new Set(n.files):!1),I=await ys(Array.from(P).filter(e=>{if(Ma(e))return E.has(`actions`)||E.has(`docker`);let t=s(e);if(mo(t))return E.has(`docker`);if(vo(t))return E.has(`make`);let n=F[t];return!!n&&E.has(n)}),r),Fe={},Ie={},R={},Be=[],Ve=null,He=[],z=[],Ge=[],Ke=[],B=[],qe=[],V={},Je={noCache:n.noCache,timeout:n.timeout||5e3},Ye=We(async e=>{let t=await fr(e,Je);return{dirConfig:t,include:t.include?.length?ar([...n.include??[],...t.include]):ue,exclude:t.exclude?.length?ar([...n.exclude??[],...t.exclude]):de}});async function H(e){let{dirConfig:t,include:n,exclude:r}=await Ye(e);return{modeConfig:t,modeInclude:n,modeExclude:r,pin:t.pin??{}}}function Xe(e,t){return n.types?.length?n.types:t?.types?.length?t.types:e===`npm`?Ee:e===`pypi`?Oe:e===`go`?n.indirect?ke:ke.filter(e=>e!==`indirect`):e===`cargo`?[...Ae,...je]:[]}function Ze(e,t,n,r){A.docker??={};for(let i of n)for(let{ref:n}of Ga(e,i)){if(!Q(n.fullImage,`docker`,r.include,r.exclude,`docker`))continue;let e=`${t}${n.fullImage}${n.tag}`;if(A.docker[e])continue;let i=Ua(n.tag);i&&(A.docker[e]={old:i.version,oldOrig:n.tag},B.push({key:e,fullImage:n.fullImage,ref:n,filePin:r.pin,fileCooldownDays:r.cooldownDays}))}}async function U(e){let{dirConfig:t,include:n,exclude:r}=await Ye(e);return{include:n,exclude:r,pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:xe(t.cooldown)}}let Qe=new Set,$e=new Map,et=[];for(let e of P){let t=s(e);if(Object.hasOwn(hs,t))Qe.add(hs[t].mode);else if(t===`Cargo.toml`){let t=I.get(e);if(!t)continue;try{let n=O(t);$e.set(e,n);let r=n.workspace?.members;Array.isArray(r)&&r.length&&(Qe.add(`cargo`),et.push(e))}catch{}}}let W=(e,t,n,r,i,a)=>{let o=M[e]??=[],s=!o.length&&!Qe.has(e),c=s?`.`:Ce(t);return o.push({absPath:f(t),content:n,memberPath:c,projectDir:r,modeConfig:i,pin:a,modeCooldownDays:xe(i.cooldown)}),s&&(V[e]={modeConfig:i,projectDir:r,pin:a}),s?``:`|${c}`},tt=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}};for(let e of et.length?new Set([...et,...I.keys()]):I.keys()){if(Ma(e)){let t=E.has(`actions`),n=E.has(`docker`),r=I.get(e),i=Ce(e),a=await U(c(e));if(Fe[i]={absPath:e,content:r},t){A.actions??={};for(let e of r.split(`
18
- `)){let t=Oa(e),n=t&&Sa(t.value);if(!n||!Q(n.name,`actions`,a.include,a.exclude,`actions`))continue;let r=`${i}${n.name}${n.ref}`;A.actions[r]||(A.actions[r]={old:n.ref},Ke.push({...n,key:r,comment:t.pinnedVersion,apiUrl:Ca(n.host,l),filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}n&&(Ie[i]={absPath:e,content:r,fileType:`workflow`},Ze(r,i,[Ia,La,Ra],a));continue}let t=s(e);if(mo(t)){let n=I.get(e),r=Ce(e),i=po(t)?`dockerfile`:`compose`,a=await U(c(e));Ie[r]={absPath:e,content:n,fileType:i},Ze(n,r,[ho(t)],a);continue}if(vo(t)){let t=I.get(e),n=Ce(e),r=await U(c(e));R[n]={absPath:e,content:t},A.make??={};let i={projectDir:c(e),filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of Co(t)){if(!Q(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=`${n}${e}${a}`;A.make[t]||(A.make[t]={old:Y(a),oldOrig:a},qe.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Oo(t)){if(!Q(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=`${n}${e.writtenImage}${e.ref.tag}`;if(A.make[t])continue;let a=Ua(e.ref.tag);if(!a)continue;let o=Eo(e.writtenImage,e.ref.tag,e.digest);A.make[t]={old:a.version,oldOrig:e.ref.tag},qe.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let n=F[t];if(t===`go.work`){A[n]??={};let t=c(f(e)),i=I.get(e);Ve={file:e,content:i};let a=va(i),[{modeConfig:o,modeInclude:s,modeExclude:l,pin:d},p]=await Promise.all([H(t),L(a.use,async e=>{let n=f(u(t,e,`go.mod`));try{return{usePath:e,modPath:n,content:await x(n,`utf8`)}}catch{return null}},{concurrency:r})]),m=Xe(n,o);V[n]={modeConfig:o,projectDir:t,pin:d};for(let e of p){if(!e)continue;let{usePath:t,modPath:r,content:i}=e,a=ta(i),o=c(r);Be.push({absPath:r,content:i,projectDir:o,memberPath:t}),De(n,a,t===`.`?``:`|${t}`,m,s,l)}for(let[e,t]of Object.entries(a.replace))Q(e,n,s,l,`replace`)&&N(n,`replace`,``,e,xa(t),Y(t));continue}if(t===`go.mod`&&Be.some(t=>t.absPath===f(e))||t===`package.json`&&z.some(t=>t.absPath===f(e))||t===`Cargo.toml`&&He.some(t=>t.absPath===f(e)))continue;if(t===`Cargo.toml`){A[n]??={};let t=I.get(e),i=$e.get(e)??O(t),a=c(f(e)),o=vs([`Cargo.lock`],a).get(`Cargo.lock`),s=i.workspace?.members,l=Array.isArray(s)&&s.length,[{modeConfig:u,modeInclude:d,modeExclude:p,pin:m},h,g]=await Promise.all([H(a),o?x(o,`utf8`):Promise.resolve(null),l?as(s,a,`Cargo.toml`,r):Promise.resolve([])]),_=Xe(n,u),v=h?Vo(h):new Map,y=(e,t)=>{for(let[r,i]of Me(_,e)){let e=i||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[i,a]of Object.entries(e))if(Q(i,n,d,p,r)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||i;ut(Ko(e))&&(o!==i&&me.set(xs(r,t,i),o),N(n,r,t,i,Xo(v,o,e)??Z(Ko(e)),e))}else typeof a==`string`&&ut(Ko(a))&&N(n,r,t,i,Xo(v,i,a)??Z(Ko(a)),a)}}}};if(l){V[n]={modeConfig:u,projectDir:a,pin:m},y(i,``),He.push({absPath:f(e),content:t,memberPath:`.`});for(let e of g)He.push(e),y(tt(e.absPath,()=>O(e.content)),`|${e.memberPath}`)}else y(i,W(n,e,t,a,u,m));continue}if(t===`pnpm-workspace.yaml`){A[n]??={};let i=c(f(e)),a=I.get(e),o=ds(a),s=u(i,`package.json`),[{modeConfig:l,modeInclude:d,modeExclude:p,pin:m},h,g]=await Promise.all([H(i),ze(x(s,`utf8`)),as(o,i,`package.json`,r)]),_=Xe(n,l);V[n]={modeConfig:l,projectDir:i,pin:m},Ge.push({absPath:f(e),content:a,memberPath:t});for(let{type:e,name:r,value:i}of ls(a))Q(r,n,d,p,e)&&we(e,`|${t}`,r,i);if(h!==null){let e=tt(s,()=>JSON.parse(h));z.push({absPath:f(s),content:h,memberPath:`.`}),De(n,e,``,_,d,p)}for(let e of g){let t=tt(e.absPath,()=>JSON.parse(e.content));z.push(e),De(n,t,`|${e.memberPath}`,_,d,p)}continue}A[n]??={};let i=c(f(e)),{modeConfig:a,modeInclude:o,modeExclude:d,pin:p}=await H(i),m=Xe(n,a),h=I.get(e),g=W(n,e,h,i,a,p);De(n,tt(e,()=>n===`npm`?JSON.parse(h):n===`pypi`?O(h):n===`go`?ta(h):{}),g,m,o,d)}if(!Ss(A)&&!Object.keys(j).length)return{results:{},message:`No dependencies found, nothing to do.`};let nt=[],G=(e,t)=>he.get(e)?.name??(Cr.has(e.split(`\0`)[0].split(`|`)[0])?wr(t):t),rt=!!xe(V.npm?.modeConfig.cooldown)||(M.npm??[]).some(e=>e.modeCooldownDays)||k&&Object.keys(A.npm??{}).some(e=>le(`npm`,G(e,e.split(`\0`)[1])).cooldownOverride),it={registry:n.registry,needsDates:rt};for(let[e,t]of Object.entries(V)){let i=A[e]&&Object.keys(A[e]).length>0,a=e===`npm`&&Object.keys(j).length>0;if(!i&&!a)continue;let{modeConfig:o,projectDir:s,pin:c}=t,l=xe(o.cooldown);nt.push((async()=>{let t=new Map;for(let n of M[e]??[])n.memberPath!==`.`&&t.set(`|${n.memberPath}`,n);let i={modeConfig:o,projectDir:s,pin:c,modeCooldownDays:l},a=e=>{let n=e.indexOf(`|`);return n!==-1&&t.get(e.slice(n))||i},u=new Map,d=t=>{for(let[n,{date:r}]of Object.entries(t)){if(!r)continue;let[i,o]=n.split(`\0`),{modeCooldownDays:s}=a(i);if(!s&&!k)continue;let c=le(e,e===`npm`?G(n,o):o).cooldownOverride??s;c&&!Ut(r,c,be)&&delete t[n]}},f=A[e],p=async(t,r,i)=>{let o=ns(r),{modeConfig:s,projectDir:c,pin:l,modeCooldownDays:d}=a(r),p=f[t],m=he.get(t),h;if(e===`npm`){if(p.oldOrig&&Ur(p.oldOrig))h=await Zr(i,C);else if(p.oldOrig&&Wr(p.oldOrig)){let e=await ze(Vr(i,o,s,it,C,c));if(!e){delete f[t];return}h=e}else h=await Vr(m?.name??i,o,s,it,C,c,p.old)}else h=e===`go`?await ma(i,o,p.oldOrig||p.old,c,C,v):e===`cargo`?await Bo(me.get(t)??i,C):await _i(i,C);let[g,_]=h;if(g.error)throw Error(g.error);let y=o===`packageManager`?i:g.name,{names:b,useGreatest:te,usePre:ne,useRel:x,semvers:S,allowDowngrade:re,cooldownOverride:ie}=le(e,y),{old:w,oldOrig:T}=p,{pinnedRange:ae,pinNoDowngrade:oe}=pe(b,l,s.pinNoDowngrade),E=ie??d,D=xn(g,{usePre:ne,useRel:x,useGreatest:te,semvers:S,range:w,mode:e,pinnedRange:ae,pinNoDowngrade:oe,allowDowngrade:re,cooldownDays:E||void 0,now:E?be:void 0}),O=``;if((e===`go`||e===`pypi`)&&D)O=D;else if(e===`cargo`&&D&&T)O=Yo(T,D);else if(D){if(T&&Wr(T))O=String(Or(c)[`save-exact`])===`true`?D:`^${D}`;else if(T&&Ur(T)){let e=_s.exec(T);e?O=`${e[1]}${D}`:T.startsWith(`jsr:`)&&(O=`jsr:${D}`)}else O=m?`npm:${m.name}@${fi(w,D,m.range,o)}`:fi(w,D,T,o)}let se=ge.get(t);if(!D||D===w||T&&T===O||se&&!xi(se,T||w,O)){n.verbose&&D&&D!==w&&console.error(`${Pe()} ${ee(`SKIP`)} ${i}: ${T||w} can not be rewritten to ${D}`),delete f[t];return}let k=(e===`pypi`?g.releases?.[D]?.[0]?.upload_time_iso_8601:e===`go`?g.Time:e===`cargo`?g.time?.[D]:``)||``;p.new=O,T&&Ur(T)&&(p.newPrint=D),e===`npm`?u.set(t,{name:m?.name??i,promise:Hr(g.name,D,s,it,C,c)}):e===`pypi`?p.info=tr(g,_,g.info.name):e===`go`?p.info=ya(g.newPath||i):e===`cargo`&&(p.info=`https://crates.io/crates/${g.name}`),bs(p,k)};if(await L(Object.keys(f),async t=>{let[n,r]=t.split(`\0`);try{await p(t,n,r)}catch(i){delete f[t],ve(e,n,r,i)}},{concurrency:r}),await Promise.all(Array.from(u,async([e,{name:t,promise:n}])=>{let r=await n,i=f[e];i&&(i.info=tr({repository:r.repository,homepage:r.homepage},null,t),r.date&&bs(i,r.date))})),e===`npm`&&Object.keys(j).length){let e=(await L(Object.entries(j),async([e,t])=>{try{return await hi(e,t,C)}catch(t){return ye(`npm`,e,t),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:s}of e){let e=f[t]={old:j[t].old,new:n,oldPrint:Un.test(a)?a.substring(0,7):a,newPrint:Un.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`};s&&bs(e,s)}}d(f)})())}Ke.length&&nt.push((async()=>{await L(Map.groupBy(Ke,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a;try{a=await Yn(t,n,i,C,e.map(e=>e.ref))}catch(t){for(let n of e)delete A.actions[n.key],ye(`actions`,n.key,t);return}let o=[],s=new Map,c=new Map,l=new Map;for(let e of a){c.set(e.name,e);let t=Et.parse(e.name)?.version;if(t){let n=s.get(t);n||o.push(t),(!n||e.name.length>n.length)&&s.set(t,e.name)}e.commitSha&&l.set(e.commitSha,e.name)}let u=We(e=>wa(t,n,i,e,C));async function d(e){let t={...e,cooldownDays:void 0,now:void 0},r=new Set;for(let a=0;a<20;a++){let a=yn({},r.size?o.filter(e=>!r.has(e)):o,t);if(!a)return null;let l=s.get(a),d=c.get(l)?.commitSha||``;if(!e.cooldownDays)return{version:a,tag:l,commitSha:d,date:``};let f=d?await u(d):``;if(f===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${l}`);if(Ut(f,e.cooldownDays,e.now))return{version:a,tag:l,commitSha:d,date:f};r.add(a)}return null}let f=async({key:e,host:t,ref:r,comment:a,name:o,isHash:s,filePin:f,filePinNoDowngrade:p,fileCooldownDays:m})=>{let h=A.actions[e],g=`https://${t||`github.com`}/${n}/${i}`,{pinnedRange:_,pinNoDowngrade:v}=pe([o],f,p),y=r;if(s?y=a||l.get(r)||l.entries().find(([e])=>e.startsWith(r))?.[1]||``:Wn(r)||(y=``),!y){delete A.actions[e];return}let{useGreatest:b,usePre:ee,useRel:te,semvers:ne,allowDowngrade:x,cooldownOverride:S}=le(`actions`,o),C=S??m,re=await d({range:y,semvers:ne,useGreatest:b,usePre:ee,useRel:te,allowDowngrade:x,versioning:Et,pinnedRange:_,pinNoDowngrade:v,cooldownDays:C||void 0,now:C?be:void 0});if(!re){delete A.actions[e];return}let{tag:ie,commitSha:w,date:T}=re;if(s){if(!w||w.startsWith(r)||r.startsWith(w)){delete A.actions[e];return}h.old=r,h.new=w.substring(0,r.length),h.oldPrint=y,h.newPrint=ie}else{let t=Ta(ie,r);if(t===r){delete A.actions[e];return}h.new=c.has(t)?t:ie}h.info=g;let ae=T||(w?await ze(u(w)):``);ae&&bs(h,ae)};await L(e,async e=>{try{await f(e)}catch(t){delete A.actions[e.key],ye(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(A.actions).length||delete A.actions})()),B.length&&nt.push((async()=>{await L(Map.groupBy(B,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete A.docker[e.key];return}let n;try{let[t]=await no(e,C);n=t}catch(e){for(let n of t)delete A.docker[n.key],ye(`docker`,n.key,e);return}let{names:r,semvers:i,usePre:a,useRel:o,cooldownOverride:s}=le(`docker`,e);for(let e of t){let t=A.docker[e.key],c=t.oldOrig||t.old,{pinnedRange:l}=pe(r,e.filePin),u=s??e.fileCooldownDays,d=io(n.tags,c,i,u||void 0,u?be:void 0,l,a,o);if(!d){delete A.docker[e.key];continue}t.new=d.newTag,t.info=go(e.ref),bs(t,d.date)}},{concurrency:r}),Object.keys(A.docker).length||delete A.docker})()),qe.length&&nt.push((async()=>{await L(qe,async e=>{let{names:t,useGreatest:n,usePre:r,useRel:i,semvers:a,allowDowngrade:o,cooldownOverride:s}=le(e.kind,e.name),{pinnedRange:c,pinNoDowngrade:l}=pe(t,e.filePin,e.filePinNoDowngrade),u=s??e.fileCooldownDays,d={semvers:a,useGreatest:n,usePre:r,useRel:i,allowDowngrade:o,pinnedRange:c,pinNoDowngrade:l,cooldownDays:u||void 0,now:u?be:void 0},f=A.make[e.key];try{let t;if(e.kind===`go`){let n=await No(e.installPath,e.version,e.projectDir,C,v,d);if(!n){delete A.make[e.key];return}e.newSpec=`${n.newInstallPath}@${n.newVersion}`,f.new=n.newVersion,t=n}else{let n=await Po(e.image,C,d);if(!n){delete A.make[e.key];return}e.newSpec=Eo(e.image.writtenImage,n.newTag,e.image.digest?n.newDigest:null),f.new=n.newTag,t=n}f.info=t.info,t.date&&bs(f,t.date)}catch(t){delete A.make[e.key],ye(`make`,e.key,t)}},{concurrency:r}),Object.keys(A.make).length||delete A.make})());try{await Promise.all(nt)}finally{await Vt()}if(!Ss(A))return _e.length?{results:{},errors:_e}:{results:{},message:`All dependencies are up to date.`};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=rs(A[e],r.memberPath);Object.keys(t).length&&$(r.absPath,n(r.content,t))}},t=new Map;for(let[e,n]of Object.entries(A.actions??{})){let[r,i]=e.split(`\0`),a=Un.test(n.old)?n.newPrint:void 0;Ue(t,r,{name:i,oldRef:n.old,newRef:n.new,newComment:a})}let n=new Map;for(let[e,t]of Object.entries(A.docker??{})){let[r]=e.split(`\0`),i=n.get(r);i||n.set(r,i={}),i[e]=t}let r=new Map;for(let e of qe)!e.newSpec||!A.make?.[e.key]||Ue(r,e.key.split(`\0`)[0],{oldSpec:e.oldSpec,newSpec:e.newSpec});let i=Object.keys(A).sort((e,t)=>(e===`docker`)-+(t===`docker`));for(let a of i)if(Object.keys(A[a]).length){if(a===`actions`){for(let[e,n]of t){let{absPath:t,content:r}=Fe[e]||{};if(!t)continue;let i=Aa(r,n);$(t,i),Ie[e]&&(Ie[e].content=i)}continue}if(a===`docker`){for(let[e,t]of n){let n=Ie[e];if(!n)continue;let{absPath:r,content:i,fileType:a}=n;$(r,(a===`dockerfile`?so:a===`compose`?co:lo)(i,t))}continue}if(a===`make`){for(let[e,t]of r){let n=R[e];n&&$(n.absPath,Fo(n.content,t))}continue}if(a===`go`){for(let e of[...Be,...M.go??[]]){let t=rs(A[a],e.memberPath);if(!Object.keys(t).length)continue;let[n,r]=ga(e.content,t);n!==e.content&&$(e.absPath,n),_a(e.projectDir,r,$)}if(Ve){let e={};for(let[t,n]of Object.entries(A[a]))t.split(`\0`)[0]===`replace`&&(e[t]=n);if(Object.keys(e).length){let[t]=ga(Ve.content,e);t!==Ve.content&&$(Ve.file,t)}}}else a===`cargo`?(e(a,He,ts),e(a,M.cargo??[],ts)):a===`npm`?(e(a,Ge,us),e(a,z,ti),e(a,M.npm??[],ti)):e(a,M[a]??[],Si)}}let at=Os(A);return _e.length&&(at.errors=_e),at}function js(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Ms(e){let t=rr(e);if(t!==!1)return t===!0||Array.from(t).map(js)}function Ns(t){if(!t)return e();let n=l(t)?t:f(e(),t),r=!1;try{r=y(n).isDirectory()}catch{}return r?n:c(n)}function Ps(e,t){let n=rr(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Ns(r[0])}}function Fs(e){let t=a({strict:!1,allowPositionals:!0,tokens:!0,options:nr,...e!==void 0&&{args:e}}),n=t.values,r=new Set,i=0;for(let[e,a]of t.tokens.entries()){if(a.kind===`positional`&&i++,a.kind!==`option`||a.inlineValue||!a.value?.startsWith(`-`))continue;let o=a.value.startsWith(`--`)?2:1,s=ir(a.value.substring(o));if(!s)continue;let c=t.tokens[e+1],l=n[a.name];if(Array.isArray(l)){let e=l.indexOf(a.value);e!==-1&&l.splice(e,1)}else n[a.name]=!0;let u=c?.kind===`positional`&&c.value?c.value:!0;typeof u==`string`&&r.add(i),nr[s]?.multiple?(n[s]??=[]).push(u):n[s]=u}return{args:n,positionals:t.positionals.filter((e,t)=>!r.has(t))}}async function Is(e,t){let{filesList:n,startDir:r}=Ps(e,t),i=typeof e.timeout==`string`?Re(e.timeout,`timeout`):void 0,a={...await fr(r,{noCache:!!e[`no-cache`],timeout:i??5e3}),pin:void 0};e.json&&(a.json=!0),e.verbose&&(a.verbose=!0),e[`no-cache`]&&(a.noCache=!0),e.update&&(a.update=!0),e.indirect&&(a.indirect=!0),e[`error-on-outdated`]&&(a.errorOnOutdated=!0),e[`error-on-unchanged`]&&(a.errorOnUnchanged=!0),e.color&&(a.color=!0,a.noColor=!1),e[`no-color`]&&(a.color=!1,a.noColor=!0),i!==void 0&&(a.timeout=i),typeof e.sockets==`string`&&(a.sockets=Re(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=Number(e.cooldown)||e.cooldown);let o=or(e.include).map(js),s=or(e.exclude).map(js);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=or(e.types);c.length&&(a.types=c);let l=cr(e.pin);Object.keys(l).length&&(a.pin=l);let u=rr(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Ms(e[t]);n!==void 0&&(a[t]=n)}let d=Ms(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);return a}function Ls(e){try{return pr(g(u(e,`.npmrc`),`utf8`)).registry}catch{return}}function Rs(e,t){try{return`${new URL(typeof e==`string`&&e?e:t).origin}/`}catch{return null}}const zs={npm:[`registry`,`jsrapi`,`forgeapi`],pypi:[`pypiapi`],cargo:[`cargoapi`],go:[`goproxy`],docker:[`dockerapi`],actions:[`forgeapi`,`dockerapi`],make:[`goproxy`,`dockerapi`]};function Bs(e){if(F[e])return F[e];if(mo(e))return`docker`;if(vo(e))return`make`}function Vs(e,t){let n=new Set,r=rr(t.modes),i=e=>!(r instanceof Set)||r.has(e);try{for(let t of _(e,{withFileTypes:!0}))if(t.isFile()){let e=Bs(t.name);e&&i(e)&&n.add(e)}else t.isDirectory()&&P.some(e=>e===t.name)&&(i(`actions`)?n.add(`actions`):i(`docker`)&&n.add(`docker`))}catch{}let a=new Set;for(let r of n)for(let n of zs[r]??[]){let r=Rs(n===`registry`&&typeof t.registry!=`string`?Ls(e):t[n],n===`goproxy`?Ti()[0].url:J[n]);r&&a.add(r)}return Array.from(a)}const Hs=/[A-Za-z_$]/,Us=/[A-Za-z0-9_$]/;function Ws(e){let t=``,n=0,r=e.length,i=-1;function a(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
19
- `;)t++;return t}for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;return t+2}function o(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&(e[t+1]===`/`||e[t+1]===`*`)){t=a(t);continue}break}return t}for(;n<r;){let s=e[n];if(s===`"`){for(i=-1,t+=s,n++;n<r;){let i=e[n];if(t+=i,n++,i===`\\`&&n<r){t+=e[n],n++;continue}if(i===`"`)break}continue}if(s===`'`){for(i=-1,t+=`"`,n++;n<r;){let i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
20
- `){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(s===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=a(n);continue}if(s===`,`){i=t.length,t+=s,n++;continue}if(s===`}`||s===`]`){i>=0&&(t=t.slice(0,i)+t.slice(i+1)),i=-1,t+=s,n++;continue}if(Hs.test(s)){i=-1;let a=``;for(;n<r&&Us.test(e[n]);)a+=e[n],n++;t+=e[o(n)]===`:`?JSON.stringify(a):a;continue}/\s/.test(s)||(i=-1),t+=s,n++}return JSON.parse(t)}export{Bt as $,$n as A,Wt as B,Qn as C,An as D,In as E,Zn as F,_n as G,Mn as H,Zt as I,Vn as J,tn as K,Wn as L,Kt as M,Un as N,tr as O,bn as P,Lt as Q,pn as R,yn as S,Yt as T,Kn as U,Gn as V,Ut as W,X,Y,Sn as Z,on as _,Ps as a,Fe as at,$t as b,Ln as c,J as d,ut as et,Qt as f,qn as g,Bn as h,Is as i,We as it,qt as j,fn as k,vn as l,Yn as m,Vs as n,z as nt,As as o,He as ot,un as p,Hn as q,Fs as r,_e as rt,ba as s,Ws as t,P as tt,sn as u,Gt as v,En as w,xn as x,an as y,Jt as z};
20
+ `)}async function Ws(e,t){let n=Hs(t.cratesIoUrl,e);return[await Q(Bs,t,n,async()=>{let r=await _n(n,t,ln(),Us);`body`in r||dr(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
21
+ `)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=U(n);r&&(r.prerelease.length?(!s||gt(n,s))&&(s=n):(!o||gt(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 Gs(e){let t=new Map;for(let n of e.split(`[[package]]`)){let e=/\bname\s*=\s*"([^"]+)"/.exec(n),r=/\bversion\s*=\s*"([^"]+)"/.exec(n);if(!e||!r)continue;let i=e[1],a=r[1];lt(a)&&$e(t,i,a)}return t}const Ks=/^\d/,qs=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Js=/^(\s*)(.*?)(\s*)$/s,Ys=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return Ks.test(t)&&!qs.test(t)?`^${t}`:t}).join(` `);function Xs(e,t){let[,n,r,i]=Js.exec(e);if(r.startsWith(`<`)&&q(t,r))return e;let a=qs.exec(r),o;if(a){if(U(t)?.prerelease.length)o=t;else{let[,e,n]=a;o=`${t.split(/[-+]/)[0].split(`.`).slice(0,e.split(`.`).length).join(`.`)}${n}`}}else o=Ks.test(r)?na(ra(`^${r}`),t,`^${r}`).replace(/^\^/,``):na(ra(r),t,r);return`${n}${o}${i}`}function Zs(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:Xs(e,t)).join(``)}function Qs(e,t,n){let r=e.get(t);if(!r)return;let i=Ys(n),a;for(let e of r)q(e,i)&&(!a||gt(e,a))&&(a=e);return a}const $s=e=>{let t=z(e);return`(?:${t}|"${t}"|'${t}')`},ec=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,tc=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/;function nc(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t.length===3){let r=0;for(;e[n-r-1]===`\\`;)r++;e.startsWith(t,n)&&!(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 rc(e){let t=[],n=``,r=0;for(let i of e.split(`
22
+ `)){let a=n?null:tc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=nc(i,n),r+=i.length+1}return t}function ic(e,t){let n=rc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=$s(i),c=z(a),l=t.startsWith(`[`)?JSON.parse(ec.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map($s).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=nc(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const ac=/^(!?)\/(.*)\/(i?)$/,oc=e=>e.isHash&&!!e.comment&&!Qn(e.comment),sc=[...new Set(Object.values(je)),`actions`,`docker`,`make`],cc=new Set(sc),lc={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},uc={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},dc=(e,t)=>cn(typeof e==`string`?e:t),fc=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function pc(e,t){let n=new Map,r=new Set(e);return Qe(t,e=>{for(let t of r){let i=_(e,t);try{a(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function mc(e,t){t&&(e.date=t,e.age=Kt(t,{noAffix:!0,shortUnits:!0}))}const hc=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,gc=(e,t,n,r)=>hc(`${e}${t}`,n,r),_c=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?ei(n):`${ei(n)}|${t}`)},vc=e=>Object.values(e).some(e=>Object.keys(e).length>0),yc=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),bc=(e,t)=>bi.has(e)?xi(t):t;function xc(e,t){return t===`go`?[e,vo(e)]:t===`docker`?Ho(e):t===`pypi`?[e,yc(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&ke.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)=>Nr(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 Sc(t){let n=new Set;if(t?.length)for(let e of t){let t;try{t=d(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}let r=y(e);try{r=u.native(e)}catch{}if(t.isFile())n.add(r);else if(t.isDirectory()){try{for(let e of l(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(je,e.name)||bs(e.name)||ws(e.name))&&n.add(y(_(r,e.name)))}catch{}let e=r.replace(/\\/g,`/`),t=Ae.some(t=>e.endsWith(`/${t}/workflows`)),i=!t&&Ae.some(t=>e.endsWith(`/${t}`)),a=t?[h(e)]:i?[e]:Ae.map(t=>_(e,t));for(let e of a)for(let t of jo(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(Ae),r=[...Object.keys(je),..._s,...Cs,...Ae],i=new Set;for(let[a,o]of pc(r,e())){if(t.has(a)){for(let e of jo(o))n.add(e);continue}let e=y(o);try{e=u.native(o)}catch{}i.has(e)||(i.add(e),n.add(y(o)))}try{for(let t of l(e(),{withFileTypes:!0})){let r=bs(t.name)&&!_s.includes(t.name),i=ws(t.name)&&!Cs.includes(t.name);t.isFile()&&(r||i)&&n.add(y(_(e(),t.name)))}}catch{}}let r=[];for(let e of Array.from(n)){let t=m(e);Object.hasOwn(uc,t)&&(r.push(e),n.delete(_(h(e),uc[t])))}return r.length?new Set([...r,...n]):n}function Cc(e,t){r===`win32`&&f(e,0),p(e,t,r===`win32`?{flag:`r+`}:void 0)}const wc=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function Tc(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function Ec(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>sc.indexOf(e)-sc.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=wc(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`&&!Li(a.oldOrig)&&(a.old=e===`go`?yo(a.oldOrig):a.oldOrig),e===`go`?a.new=yo(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(wc(e,r))>1?`${o}${e===`actions`?`@`:`:`}${Tc(s)}`:o,l=t.results[e]??={};(l[Tc(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 Dc(e,t){if(!t)return()=>!0;let n=ac.exec(t);if(n){let e=new RegExp(n[2],n[3]);return n[1]?t=>!e.test(t):t=>e.test(t)}return e===`docker`?e=>q(ft(Wo(e)?.version??``)?.version??``,t):e===`pypi`?e=>ha(e,t):e=>q(e,t)}function Oc(e,t,n){if(!n)return e;let r=Dc(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 kc(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await Ac(e)}finally{n()}}async function Ac(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=He(n.timeout,`timeout`));let r=n.sockets??50,a=n.timeout??0,o=dc(t.forgeapi,X.forgeapi),s=Ta(t.goproxy),c=Ea(),l=!n.noColor&&(n.color||i.isTTY),u=e=>l?t=>ee(e,String(t),{validateStream:!1}):String,d=u(`magenta`),f=u(`green`),p=u(`red`),g,v={execFile:async(e,t,n)=>(await Pn())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:dc(t.pypiapi,X.pypiapi),jsrApiUrl:dc(t.jsrapi,X.jsrapi),goProxyUrl:s[0].url,goProxyChain:s,cratesIoUrl:dc(t.cargoapi,X.cargoapi),dockerApiUrl:dc(t.dockerapi,X.dockerapi),doFetch:(e,t)=>(g??=Sn(v))(async()=>{n.verbose&&console.error(`${Re()} ${d(t?.method||`GET`)} ${e}`);let r=await fn(e,t);return n.verbose&&console.error(`${Re()} ${r.ok?f(r.status):p(r.status)} ${e}`),r}),noCache:!!n.noCache},b=new Map,x=async(e,t,n)=>{let r=`${e}${t}${n}`,i=V(b,r,()=>Qo(e,t,n,v));try{return await i}catch(e){throw b.get(r)===i&&b.delete(r),e}};for(let e of n.modes??[])if(!cc.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${sc.join(`,`)}`);let S=n.modes?.length?new Set(n.modes):cc,te=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?Hr(e.include):void 0,exclude:e.exclude?.length?Hr(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:Ve(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:Kr(e.greatest),prerelease:Kr(e.prerelease),release:Kr(e.release),patch:Kr(e.patch),minor:Kr(e.minor),allowDowngrade:Kr(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}};S.has(`actions`)&&Ln();let C=new WeakMap;function ne(e,t,n,r=n){let i=V(C,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=>Le(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;for(let t of e.overrides)t.include&&s.every(e=>!Le(e,t.include))||t.exclude&&s.some(e=>Le(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 g=f?lc.patch:p?lc.minor:lc.major,_;for(let t of e.renovateVersionRules)Ar(t,n,r)&&(t.allowedVersions!==void 0&&(_=t.allowedVersions),t.cooldownDays!==void 0&&(h=t.cooldownDays));o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:g,allowDowngrade:m,cooldownOverride:h,allowedVersions:_},i.set(a,o)}return o}Wr(n.pin);let T=n.pin??{},re=(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}},ie=(e,t,n,r,i,a,o)=>{let s=ne(e,t,n,r);return{...s,...re(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)})},le=(e,t,n)=>{delete E[e][t],A(e,t,n)},ue={},j=Date.now(),fe=e(),pe=e=>e.replace(`${fe}/`,``).replace(`${fe}\\`,``),M=(e,t,n,r,i,a)=>{E[e][gc(t,n,r)]={old:i,oldOrig:a}},me=(e,t,n)=>{if(zi(n))return;let r=Vi(n);if(Li(n))E.npm[e]={old:Wi(n,t).version,new:``,oldOrig:n};else if(J(n))E.npm[e]={old:ra(n),new:``,oldOrig:n};else if(r)se.set(e,r),E.npm[e]={old:ra(r.range),new:``,oldOrig:n};else if(Ri(n))return;else ae[e]={old:n}},he=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(yc)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of De(t))s.has(yc(o))||$(o,e,i,a,r)&&(M(e,r,n,o,ra(c),c),ce.set(gc(r,n,o),l))};for(let[s,l]of Ie(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)&&M(e,s,n,r,ra(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=xi(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=Vi(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);me(m,t,d)}else d&&typeof d==`object`&&!Array.isArray(d)&&c(d,[...l,u])};c(t,[]);continue}for(let[r,l]of Object.entries(t)){if(e===`pypi`&&Array.isArray(l)){c(l,`${s}.${r}`);continue}typeof l==`string`&&(o?.has(bc(s,r))||$(r,e,i,a,s,e,(e===`npm`?Vi(l):null)?.name??r)&&(e===`npm`?me(gc(s,n,r),r,l):e===`go`?M(e,s,n,r,yo(l),Z(l)):J(l)&&M(e,s,n,r,ra(l),l)))}}}},ge=Sc(n.files),N=new Map(await L(Array.from(ge).filter(e=>{if(Ao(e))return S.has(`actions`)||S.has(`docker`);let t=m(e);return bs(t)?S.has(`docker`):ws(t)?S.has(`make`):S.has(je[t])}),async e=>{try{return[e,await w(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),P={},_e=[],ve=[],ye=[],be=[],xe=[],Se=[],Ce=[],we=[],Te={},F=(e,t,n)=>{(Te[e]??=new Map).set(t===`.`?``:`|${t}`,n)},Ee=t[Rr],ke=Ee&&new Set(Ee.cliKeys),Ae=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!ke||ke.has(e)))),I=et(async e=>{let t={...await Jr(e),...Ae};return{modeConfig:t,include:Hr(t.include??[]),exclude:Hr(t.exclude??[]),versionConfig:te(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Ve(String(t.cooldown)):0}});function ze(e,t){return t.types?.length?t.types:e===`npm`?Oe:e===`pypi`?Me:e===`go`?t.indirect?Ne:Ne.filter(e=>e!==`indirect`):e===`cargo`?[...Pe,...Fe]:[]}let Be=(e,t)=>({modeConfig:e.modeConfig,versionConfig:e.versionConfig,projectDir:t,pin:e.pin,cooldownDays:e.cooldownDays}),z=e=>{let t=[],n=-1;for(let[r,i]of e.split(/\r?\n/).entries()){let e=/^(\s*)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*(.*)$/.exec(i);if(!e)continue;let a=e[1].length,o=(e[2]??e[3]??e[4]).trim();if(a===0){n=o===`overrides`?a:-1;continue}if(n===-1||!e[5])continue;let s=e[5].replace(/\s+#.*$/,``).trimEnd(),c=e[5].length-e[5].trimStart().length,l=/^(['"])(.*)\1$/.exec(s.trimStart()),u=l?.[2]??s.trimStart();t.push({selector:o,value:u,lineNumber:r,valueIndex:i.length-e[5].length+c+Number(!!l)})}return t};function Ue(e,t,n){if(E.docker??={},!$(e.fullImage,`docker`,n.include,n.exclude,`docker`))return;let r=`${e.tag}${e.digest?`@${e.digest}`:``}`,i=hc(t,e.fullImage,r);if(E.docker[i])return;let a=Wo(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}},Ce.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let We=new Map,Ge=new Map;for(let e of ge){let t=m(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`)&&Ge.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=N.get(e);if(!t)continue;try{let n=de(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&We.set(e,n)}catch{}}}let Ke={cargo:We.size,go:Array.from(ge).filter(e=>m(e)===`go.work`).length,npm:new Set([...Ge.keys(),...Array.from(ge).filter(e=>m(e)===`pnpm-workspace.yaml`)]).size},qe=(e,t,n,r,i)=>{let a=ue[e]??=[],o=!a.length&&!Ke[e],s=o?`.`:pe(t);return a.push({absPath:y(t),content:n,memberPath:s,projectDir:r}),F(e,s,Be(i,r)),o?``:`|${s}`},Je=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},B=(e,t,n)=>Ke[e]>1?`${pe(t)}:${n}`:n,Ye=(e,t,n,r,i,a,o)=>{let s=B(`npm`,e,n.memberPath);F(`npm`,s,Be(a,t)),be.push({...n,memberPath:s}),he(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of We.size||Ge.size?new Set([...We.keys(),...Ge.keys(),...N.keys()]):N.keys()){if(Ao(e)){let t=S.has(`actions`),n=S.has(`docker`),r=N.get(e),i=pe(e),a=await I(h(e)),s=new Set;P[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=Eo(l),t=e&&bo(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=hc(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},Se.push({...t,key:s,comment:n,apiUrl:xo(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=/^(\s*)(?:-\s*)?(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*(.*)$/.exec(l);if(!r)continue;let u=r[1].length;for(;c.length&&c.at(-1).indent>=u;)c.pop();let d=(r[2]??r[3]??r[4]).trim(),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[5]){let t=Uo(r[5].replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(Ue(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=m(e),n=y(e);if(bs(t)){let n=N.get(e),r=pe(e),i=ys(t)?`dockerfile`:`compose`,a=await I(h(e));P[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of Ko(n,xs(t)))Ue(e,r,a);continue}if(ws(t)){let t=N.get(e),n=pe(e),r=await I(h(e));P[n]={absPath:e,content:t,fileType:`make`},E.make??={};let i={projectDir:h(e),versionConfig:r.versionConfig,filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of ks(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=hc(n,e,a);E.make[t]||(E.make[t]={old:Z(a),oldOrig:a},we.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of Ns(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=hc(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=Wo(e.ref.tag);if(!a)continue;let o=js(e.writtenImage,e.ref.tag,e.digest);E.make[t]={old:a.version,oldOrig:e.ref.tag},we.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=je[t];if(t===`go.work`){E[i]??={};let t=h(n),a=N.get(e),o=ho(a),[{modeConfig:s,include:c,exclude:l,versionConfig:u,pin:d,cooldownDays:f},p]=await Promise.all([I(t),L(o.use,async e=>{let n=go(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await w(n,`utf8`)}}catch{return null}},{concurrency:r})]),m=ze(i,s),g=B(i,e,`.`),_=Be({modeConfig:s,versionConfig:u,pin:d,cooldownDays:f},t);F(i,g,_),ve.push({file:e,content:a,memberPath:g});let v=new Set,y=[];for(let e of p){if(!e)continue;let t=Ka(e.content);t&&v.add(t),y.push({...e,parsed:qa(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=B(i,e,t);F(i,o,_),_e.push({absPath:n,content:r,projectDir:h(n),memberPath:o}),he(i,a,o===`.`?``:`|${o}`,m,c,l,v)}for(let[e,t]of Object.entries(o.replace))!v.has(e)&&$(e,i,c,l,`replace`)&&M(i,`replace`,g===`.`?``:`|${g}`,e,yo(t),Z(t));continue}if(t===`go.mod`&&_e.some(e=>e.absPath===n)||t===`package.json`&&be.some(e=>e.absPath===n)||t===`Cargo.toml`&&ye.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){E[i]??={};let t=N.get(e),a=We.get(e)??de(t),o=h(n),s=pc([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[u,d,f]=await Promise.all([I(o),s?w(s,`utf8`):Promise.resolve(null),l?ai(c,o,`Cargo.toml`,r):Promise.resolve([])]),{modeConfig:p,include:m,exclude:g}=u,_=ze(i,p),v=d?Gs(d):new Map,y=(e,t)=>{for(let[n,r]of Ie(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[r,a]of Object.entries(e))if($(r,i,m,g,n)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||r;J(Ys(e))&&(o!==r&&oe.set(gc(n,t,r),o),M(i,n,t,r,Qs(v,o,e)??ra(Ys(e)),e))}else typeof a==`string`&&J(Ys(a))&&M(i,n,t,r,Qs(v,r,a)??ra(Ys(a)),a)}}}};if(l){let r=B(i,e,`.`),s=Be(u,o);F(i,r,s),y(a,r===`.`?``:`|${r}`),ye.push({absPath:n,content:t,memberPath:r});for(let t of f){let n=B(i,e,t.memberPath);F(i,n,s),ye.push({...t,memberPath:n}),y(Je(t.absPath,()=>de(t.content)),`|${n}`)}}else y(a,qe(i,e,t,o,u));continue}if(t===`package.json`&&Ge.has(e)){E[i]??={};let t=h(n),a=N.get(e),o=Ge.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([I(t),ai(c,t,`package.json`,r)]),d=ze(i,l.modeConfig),f=new Set,p=[];for(let e of u){let t=Je(e.absPath,()=>JSON.parse(e.content));typeof t.name==`string`&&t.name&&f.add(t.name),p.push({member:e,pkg:t})}Ye(e,t,{absPath:n,content:a,memberPath:`.`},o,d,l,f);for(let{member:n,pkg:r}of p)Ye(e,t,n,r,d,l,f);continue}if(t===`pnpm-workspace.yaml`){E[i]??={};let a=h(n),o=N.get(e),s=vi(o),c=_(a,`package.json`),[l,u,d]=await Promise.all([I(a),R(w(c,`utf8`)),ai(s,a,`package.json`,r)]),f=ze(i,l.modeConfig),p=B(i,e,t);F(i,p,Be(l,a)),xe.push({absPath:n,content:o,memberPath:p});for(let{type:e,name:t,value:n}of gi(o))$(t,i,l.include,l.exclude,e,i,Vi(n)?.name??t)&&me(gc(e,`|${p}`,t),t,n);for(let{selector:e,value:t}of z(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,`|${p}`,e,a);D.set(o,n),O.set(o,e),me(o,e,t)}if(u!==null){let t=Je(c,()=>JSON.parse(u));Ye(e,a,{absPath:y(c),content:u,memberPath:`.`},t,f,l)}for(let t of d)Ye(e,a,t,Je(t.absPath,()=>JSON.parse(t.content)),f,l);continue}E[i]??={};let a=h(n),s=await I(a),{modeConfig:c,include:l,exclude:u}=s,d=ze(i,c),f=N.get(e);he(i,Je(e,()=>i===`npm`?JSON.parse(f):i===`pypi`?de(f):qa(f)),qe(i,e,f,a,s),d,l,u)}let Xe=Object.keys(ae).length>0;if(!vc(E)&&!Xe)return{results:{},message:`No dependencies found, nothing to do.`};let Ze=[],Qe=(e,t)=>D.get(e)??se.get(e)?.name??bc(e.split(`\0`)[0].split(`|`)[0],t),$e={needsDates:Te.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Te))!Object.keys(E[e]).length&&(e!==`npm`||!Xe)||Ze.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],l=async(t,r,i)=>{let l=ei(r),{modeConfig:u,versionConfig:f,projectDir:p,pin:m,cooldownDays:h}=a(r),g=s[t],_=se.get(t),[y,b]=await(e===`npm`?g.oldOrig&&Li(g.oldOrig)?Gi(i,v):Fi(Qe(t,i),l,u,$e,v,p,g.old):e===`go`?co(i,r,g.oldOrig||g.old,p,v,c):e===`cargo`?Ws(oe.get(t)??i,v):da(i,v)),x=y;if(x.error)throw Error(x.error);let S=l===`packageManager`?i:x.name,{useGreatest:ee,usePre:te,useRel:C,semvers:w,allowDowngrade:ne,allowedVersions:T,pinnedRange:re,pinNoDowngrade:E,cooldownDays:ae}=ie(f,e,S,i,m,u.pinNoDowngrade,h);x=Oc(x,e,T);let{old:D,oldOrig:O}=g,k=An(x,{usePre:te,useRel:C,useGreatest:ee,semvers:w,range:D,mode:e,pinnedRange:re,pinNoDowngrade:E,allowDowngrade:ne,cooldownDays:ae||void 0,now:ae?j:void 0}),A=``;if((e===`go`||e===`pypi`)&&k)A=k;else if(e===`cargo`&&k&&O)A=Zs(O,k);else if(k){if(O&&Li(O)){let e=fc.exec(O);e?A=`${e[1]}${k}`:O.startsWith(`jsr:`)&&(A=`jsr:${k}`)}else A=_?`npm:${_.name}@${na(D,k,_.range,l)}`:na(D,k,O,l)}let le=ce.get(t);if(!k||k===D||O&&O===A||le&&!ga(le,O||D,A)){n.verbose&&k&&k!==D&&console.error(`${Re()} ${d(`SKIP`)} ${i}: ${O||D} can not be rewritten to ${k}`),delete s[t];return}let ue=(e===`pypi`?x.releases?.[k]?.[0]?.upload_time_iso_8601:e===`go`?x.Time:e===`cargo`?x.time?.[k]:``)||``;g.new=A,O&&Li(O)&&(g.newPrint=k),e===`npm`?o.set(t,{name:Qe(t,i),promise:Ii(x.name,k,u,$e,v,p)}):g.info=e===`pypi`?_r(x,b,x.info.name):e===`go`?_o(x.newPath||i):`https://crates.io/crates/${x.name}`,mc(g,ue)};if(await L(Object.keys(s),async t=>{let[n,r]=t.split(`\0`);try{await l(t,n,r)}catch(n){le(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=_r({repository:r.repository,homepage:r.homepage},null,t),mc(i,r.date))})),e===`npm`&&Xe){let e=(await L(Object.entries(ae),async([e,t])=>{try{return await sa(e,t,v)}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)mc(s[t]={old:ae[t].old,new:n,oldPrint:Zn.test(a)?a.substring(0,7):a,newPrint:Zn.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`?Qe(t,i):i,u=ne(c,e,l,i).cooldownOverride??o;u&&!an(n,u,j)&&delete s[t]}})());let tt=e=>ie(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);Se.length&&Ze.push((async()=>{await L(Map.groupBy(Se,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?!oc(e):Qn(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=tt(e);return t||!!(n&&!r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===X.forgeapi?[]:e.filter(oc).map(e=>e.comment)],c=[];try{s.length&&(c=await ur(t,n,i,v,o?[]:s,!!a.length))}catch(t){for(let n of e)le(`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=Vt.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=et(e=>So(t,n,i,e,v)),m=et(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===X.forgeapi?`commits`:`branches`,o=await qn(`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,v);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<20;o++){let o=On({},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(an(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]||``:Qn(a)||(g=``),!g){delete E.actions[t];return}let{useGreatest:_,usePre:v,useRel:y,semvers:b,allowDowngrade:x,allowedVersions:S,pinnedRange:ee,pinNoDowngrade:te,cooldownDays:C}=tt(e),w=Qn(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:Vt,pinnedRange:ee,pinNoDowngrade:te,cooldownDays:C||void 0,now:C?j:void 0},S?l.filter(Dc(`actions`,S)):l):null;if(!w){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,mc(c,await R(p(e)));return}let{tag:ne,commitSha:T,date:re}=w;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=Co(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,mc(c,re||(T?await R(p(T)):``))};await L(e,async e=>{try{await g(e)}catch(t){le(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(E.actions).length||delete E.actions})()),Ce.length&&Ze.push((async()=>{await L(Map.groupBy(Ce,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 rs(e,v);n=t}catch(e){for(let n of t)le(`docker`,n.key,e);return}await L(t,async t=>{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=Oc(n,`docker`,c).tags,f=!t.ref.digestOnly&&Wo(i)?us(d,i,a,u||void 0,u?j:void 0,l,o,s):null,p=f?.newTag??i;if(t.ref.digest){let e=await x(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=Ss(t.ref),mc(r,f?.date)},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),we.length&&Ze.push((async()=>{await L(we,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,allowedVersions:o,pinnedRange:s,pinNoDowngrade:l,cooldownDays:u}=ie(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?j:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await Rs(e.installPath,e.projectDir,v,c);if(!t){delete E.make[e.key];return}let[n]=await co(t,`tool`,Z(e.version),e.projectDir,v,c),r=Oc(n,`go`,o),i=An(r,{...d,mode:`go`,range:Z(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??Fa(t,i),s=`${a}${e.installPath.slice(t.length)}`,l=mr(i,e.version);if(s===e.installPath&&l===e.version){delete E.make[e.key];return}e.newSpec=`${s}@${l}`,f.new=l,f.info=_o(a),mc(f,r.Time)}else{let[t]=await rs(e.image.ref.fullImage,v),n=Oc(t,`docker`,o).tags,r=us(n,e.image.ref.tag,d.semvers,d.cooldownDays,d.now,d.pinnedRange,d.usePre,d.useRel);if(!r){delete E.make[e.key];return}let i=e.image.digest?await x(e.image.ref.namespace,e.image.ref.repo,r.newTag):null;if(e.image.digest&&!i){delete E.make[e.key];return}e.newSpec=js(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=Ss(e.image.ref),mc(f,r.date)}}catch(t){le(`make`,e.key,t)}},{concurrency:r}),Object.keys(E.make).length||delete E.make})());try{await Promise.all(Ze)}finally{n.noCache||await nn()}if(!vc(E))return k.length?{results:{},errors:k}:{results:{},message:`All dependencies are up to date.`};let nt=(e,t)=>{let n=e.split(`
23
+ `),r=new Map(z(e).map(e=>[e.selector,e]));for(let[e,i]of O){let a=E.npm?.[e],o=r.get(i);if(!a||!_c(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(`
24
+ `)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=ni(E[e],r.memberPath);Object.keys(t).length&&Cc(r.absPath,n(r.content,t,r))}},t=new Map(Se.map(e=>[e.key,e.comment])),n=e=>Map.groupBy(e,([e])=>e.split(`\0`)[0]),r=n(Object.entries(E.actions??{})),i=n(Object.entries(E.docker??{})),a=Map.groupBy(we.filter(e=>e.newSpec&&E.make?.[e.key]),e=>e.key.split(`\0`)[0]);for(let n of Object.keys(E).sort((e,t)=>(e===`docker`)-+(t===`docker`)))if(Object.keys(E[n]).length){if(n===`actions`){for(let[e,n]of r){let{absPath:r,content:i}=P[e]||{};if(!r)continue;let a=Oo(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:Zn.test(n.old)?n.newPrint:void 0}}));Cc(r,a),P[e].content=a}continue}if(n===`docker`){for(let[e,t]of i){let n=P[e];if(!n)continue;let{absPath:r,content:i,fileType:a,workflowLines:o}=n;Cc(r,(a===`dockerfile`?ms:a===`compose`?hs:(e,t)=>e.split(`
25
+ `).map((e,n)=>o.has(n)?gs(e,t):e).join(`
26
+ `))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=P[e];n&&Cc(n.absPath,zs(n.content,t.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}continue}if(n===`go`){for(let e of[..._e,...ue.go??[]]){let t=ni(E[n],e.memberPath);if(!Object.keys(t).length)continue;let[r,i]=uo(e.content,t);r!==e.content&&Cc(e.absPath,r),mo(e.projectDir,i,Cc)}for(let e of ve){let t=Object.fromEntries(Object.entries(ni(E[n],e.memberPath)).filter(([e])=>ei(e.split(`\0`)[0])===`replace`));if(Object.keys(t).length){let[n]=uo(e.content,t);n!==e.content&&Cc(e.file,n)}}}else n===`cargo`?e(n,[...ye,...ue.cargo??[]],ic):n===`npm`?(e(n,xe,(e,t,n)=>nt(_i(e,t),n.memberPath)),e(n,[...be,...ue.npm??[]],Ki)):e(n,ue[n]??[],xa)}}let rt=Ec(E);return k.length&&(rt.errors=k),rt}function jc(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Mc(e){let t=Br(e);if(t!==!1)return t===!0||Array.from(t).map(jc)}function Nc(t){if(!t)return e();let n=y(t),r=!1;try{r=d(n).isDirectory()}catch{}return r?n:h(n)}function Pc(e,t){let n=Br(e.file),r=[...n instanceof Set?n:[],...t];return{filesList:r,startDir:Nc(r[0])}}function Fc(e){let t=S({strict:!1,allowPositionals:!0,tokens:!0,options:zr,...e!==void 0&&{args:e}}),n=Object.create(null),r=new Set,i=(e,t)=>{zr[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(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=Vr(d);e&&(f=zr[e].type===`string`&&l!==void 0,u.push({key:e,value:!f||l}))}else for(let e=0;e<d.length;){let t=Vr(d[e]);if(!t){u.length=0;break}if(zr[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}zr[o.name]?.multiple?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 Ic(e,t){let{filesList:n,startDir:r}=Pc(e,t),i=await Jr(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=He(e.timeout,`timeout`)),typeof e.sockets==`string`&&(a.sockets=He(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=e.cooldown);let o=Ur(e.include).map(jc),s=Ur(e.exclude).map(jc);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=Ur(e.types);c.length&&(a.types=c);let l=Gr(e.pin);Object.keys(l).length&&(a.pin=l);let u=Br(e.modes);u instanceof Set&&(a.modes=Array.from(u));for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Mc(e[t]);n!==void 0&&(a[t]=n)}let d=Mc(e[`allow-downgrade`]);d!==void 0&&(a.allowDowngrade=d),n.length&&(a.files=n);for(let t of[`forgeapi`,`pypiapi`,`jsrapi`,`goproxy`,`cargoapi`,`dockerapi`])typeof e[t]==`string`&&(a[t]=e[t]);let f={...i,pin:void 0,...a};return Object.defineProperty(f,Rr,{value:{cliKeys:Object.keys(a)}}),f}export{Re as $,Pe as A,et as B,mo as C,Rr as D,uo as E,V as F,Ve as G,ke as H,Ne as I,De as J,Te as K,ve as L,z as M,Ie as N,Ee as O,Ae as P,ze as Q,Ue as R,po as S,yo as T,Oe as U,je as V,L as W,$e as X,Xe as Y,F as Z,wa as _,Aa as a,Ta as b,no as c,Fa as d,R as et,Za as f,Ea as g,Ka as h,Pa as i,I as j,Fe as k,co as l,qa as m,Ic as n,Ze as nt,Na as o,ka as p,He as q,kc as r,Qe as rt,Ca as s,Fc as t,Me as tt,_o as u,ho as v,vo as w,go as x,ro as y,Le as z};
package/dist/utils.js ADDED
@@ -0,0 +1 @@
1
+ import{$ as e,A as t,B as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,O as f,P as p,Q as m,R as h,U as g,V as _,W as v,X as y,Y as b,Z as x,et as S,j as C,k as w,nt as T,q as E,rt as D,tt as O,z as k}from"./shared.js";export{f as anchorSpecifier,w as cargoTargetTypes,t as cargoTypes,C as commaSeparatedToArray,u as esc,d as expandDepTypes,p as forgeDirs,r as getOrSet,o as goTypes,l as highlightDiff,h as longestFirstAlternation,k as matchesAny,n as memoizeAsync,_ as modeByFileName,a as nonPackageEngines,g as npmTypes,v as pMap,i as parseDuration,c as parsePep508,E as parsePositiveInt,s as parseUvDependencies,b as patternToRegex,y as pushTo,x as serializePep508,m as textTable,e as timestamp,S as tryOrNull,O as uvTypes,T as walkUp,D as walkUpSync};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "18.0.4",
3
+ "version": "18.0.6",
4
4
  "description": "CLI to update npm, uv, cargo, go, docker and actions dependencies",
5
5
  "author": "silverwind",
6
6
  "repository": {
@@ -45,8 +45,8 @@
45
45
  "@types/node": "26.2.0",
46
46
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
47
47
  "@vitest/coverage-v8": "4.1.11",
48
- "eslint": "10.8.1",
49
- "eslint-config-silverwind": "145.0.0",
48
+ "eslint": "10.9.0",
49
+ "eslint-config-silverwind": "145.0.1",
50
50
  "timerel": "5.9.0",
51
51
  "tsdown": "0.22.14",
52
52
  "tsdown-config-silverwind": "4.0.3",
package/dist/renovate.js DELETED
@@ -1 +0,0 @@
1
- import{$ as e,I as t,Q as n,et as r,it as i,nt as a,ot as o,t as s,tt as c}from"./shared.js";import{join as l}from"node:path";import{readFile as u}from"node:fs/promises";const d=[`renovate.json`,`renovate.jsonc`,`renovate.json5`,...[...c,`.gitlab`].flatMap(e=>[`${e}/renovate.json`,`${e}/renovate.jsonc`,`${e}/renovate.json5`]),`.renovaterc`,`.renovaterc.json`,`.renovaterc.jsonc`,`.renovaterc.json5`],f={y:365,year:365,years:365,mo:30,month:30,months:30,w:7,week:7,weeks:7,d:1,day:1,days:1,h:1/24,hour:1/24,hours:1/24,min:1/1440,minute:1/1440,minutes:1/1440,s:1/86400,second:1/86400,seconds:1/86400};function p(e){let t=0,n=!1,r=/(\d+(?:\.\d+)?)\s*([a-z]+)/gi,i;for(;(i=r.exec(e))!==null;){let e=f[i[2].toLowerCase()];if(e===void 0)return;t+=Number(i[1])*e,n=!0}return n?t:void 0}const m={matchPackageNames:e=>e.replace(/\{\/,\}\*\*$/,`*`),packageNames:e=>e,matchPackagePatterns:e=>e===`*`?`*`:`/${e}/`,packagePatterns:e=>e===`*`?`*`:`/${e}/`,matchPackagePrefixes:e=>`${e}*`,excludePackageNames:e=>`!${e}`,excludePackagePatterns:e=>`!/${e}/`,excludePackagePrefixes:e=>`!${e}*`},h=[`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`],g=new Set([`*`,`**`]);function _(e){let t=[];for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(m,n)?m[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||h.includes(n))return;continue}let i=typeof r==`string`?[r]:r;if(!Array.isArray(i))return;for(let n of i){if(typeof n!=`string`||!n)return;t.push(e(n))}}return t}function v(e){let t=Object.groupBy(e,e=>e.startsWith(`!`)&&e.length>1?`negated`:`positive`);return{positive:t.positive??[],negated:t.negated?.map(e=>e.substring(1))??[]}}function y(e,t){return e instanceof RegExp&&t instanceof RegExp?e.source===t.source&&e.flags===t.flags:e===t}async function b(e){let t=(await Promise.all(d.map(async t=>{let n=l(e,...t.split(`/`));try{return{path:n,text:await u(n,`utf8`)}}catch{return null}}))).find(e=>e!==null);if(t)return t;try{let t=l(e,`package.json`),n=JSON.parse(await u(t,`utf8`));if(n&&typeof n==`object`&&n.renovate&&typeof n.renovate==`object`)return{path:t,text:JSON.stringify(n.renovate)}}catch{}}function x(e){let t=/^\/(.+)\/([a-z]*)$/.exec(e);if(!t)return e;try{return new RegExp(t[1],t[2])}catch{return e}}function S(e){return/[*?[\]{}!()|+]/.test(e)}function C(e){let t=null,n=[],i={},a=[];for(let o of e){if(!o||typeof o!=`object`)continue;let e=_(o);if(!e)continue;let{positive:s,negated:c}=v(e);if(o.enabled===!1&&!(s.length&&c.length)){if(!e.length||s.some(e=>g.has(e)))t=[];else if(!s.length)t===null&&(t=c.map(x));else for(let e of s)n.push(x(e))}else if(o.enabled===!0&&(t!==null||n.length)){if(!e.length)t=null,n=[];else if(s.length&&!c.length)for(let e of s){let r=x(e);n=n.filter(e=>!y(e,r)),t?.push(r)}}if(typeof o.minimumReleaseAge==`string`&&!c.length){let t=p(o.minimumReleaseAge);t!==void 0&&a.push({include:e.length?s.map(x):void 0,cooldown:t})}if(typeof o.allowedVersions==`string`&&r(o.allowedVersions))for(let e of s)!S(e)&&typeof x(e)==`string`&&(i[e]=o.allowedVersions)}return{allowed:t,disabled:n,pin:i,cooldowns:a}}function w(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=p(e.minimumReleaseAge);t!==void 0&&t>0&&(n.cooldown=t)}let r=Array.isArray(e.ignoreDeps)?e.ignoreDeps.filter(e=>typeof e==`string`&&!!e):[],{allowed:i,disabled:a,pin:o,cooldowns:s}=C(Array.isArray(e.packageRules)?e.packageRules:[]),c=[...r,...a];return i?.length&&(n.include=i),i&&!i.length&&c.push(`*`),c.length&&(n.exclude=c),Object.keys(o).length&&(n.pin=o,n.pinNoDowngrade=!0),t.cooldown&&s.length&&(n.overrides=s),n}const T={github:(e,t,n)=>`https://raw.githubusercontent.com/${e}/${t}/${n}`,gitlab:(e,t,n)=>`https://gitlab.com/${e}/-/raw/${t}/${n}`,gitea:(e,t,n)=>`https://gitea.com/api/v1/repos/${e}/raw/${n}?ref=${t}`,forgejo:(e,t,n)=>`https://code.forgejo.org/api/v1/repos/${e}/raw/${n}?ref=${t}`};function E(e){if(/^https?:\/\//i.test(e))return{kind:`http`,url:e};let t=e.indexOf(`>`);if(t===-1)return null;let n=e.slice(0,t);if(!Object.hasOwn(T,n))return null;let r=e.slice(t+1).replace(/\([^)]*\)\s*$/,``),i=`HEAD`,a=r.indexOf(`#`);a!==-1&&(i=r.slice(a+1)||`HEAD`,r=r.slice(0,a));let o,s,c=r.indexOf(`//`);if(c!==-1)o=r.slice(c+2),r=r.slice(0,c);else{let e=r.indexOf(`:`);e!==-1&&(s=r.slice(e+1),r=r.slice(0,e))}let l=r.replace(/\/+$/,``);return l.includes(`/`)?{kind:`forge`,forge:n,slug:l,ref:i,name:s,subpath:o}:null}const D=[`default.json`,`default.json5`,`renovate.json`,`renovate.json5`,`.renovaterc.json`,`.renovaterc`];function O(e){return/\.json[5c]?$/.test(e)?[e]:[`${e}.json`,`${e}.json5`]}function k(e,t){if(e===null)return null;let n;try{n=s(e)}catch{throw Error(`invalid JSON in ${t}`)}if(!n||typeof n!=`object`||Array.isArray(n))throw Error(`invalid preset in ${t}`);return n}async function A(e,t){if(e.kind===`http`)return k(await t(e.url),e.url);let n=T[e.forge],r=async r=>{for(let i of r){let r=n(e.slug,e.ref,i),a=k(await t(r),r);if(a)return a}return null};if(e.subpath)return r(O(e.subpath));if(!e.name)return r(D);let[i,...a]=e.name.split(`/`),o=await r(O(i));for(let e of a){let t=o&&Object.hasOwn(o,e)?o[e]:void 0;if(!t||typeof t!=`object`)throw Error(`no preset ${e} in ${i}`);o=t}return o}function j(e,t){let n={...e};for(let[e,r]of Object.entries(t)){let t=n[e];n[e]=Array.isArray(r)&&Array.isArray(t)?[...t,...r]:r}return n}async function M(e,t,n,r){let i={},a=typeof e.extends==`string`?[e.extends]:Array.isArray(e.extends)?e.extends:[];for(let e of a){if(typeof e!=`string`||r>=10||n.has(e))continue;let a=E(e);if(!a)continue;let o;try{o=await A(a,t)}catch(t){throw Error(`Unable to resolve renovate preset ${e}: ${t.message}`)}if(!o)throw Error(`Unable to resolve renovate preset ${e}: not found`);i=j(i,await M(o,t,new Set(n).add(e),r+1))}let{extends:o,...s}=e;return j(i,s)}async function N(e,t){let{getForgeTokens:n,getFetchOpts:r,githubApiUrl:i,urlHost:a}=await import(`./shared2.js`),o=a(e),[s]=o?await n(o,i):[],c={...r(`Bearer`,s).headers};return t&&(c[`if-none-match`]=t),c}function P({noCache:r=!1,timeout:i=1e4}={}){return async a=>{let o=r?null:await n(a),s=await N(a,o?.etag),c;for(let e=0;;e++)try{c=await fetch(a,{headers:s,signal:AbortSignal.timeout(i)});break}catch(n){if(e<2&&t(n))continue;if(o)return o.body;throw Error(`${a}: ${n.message}`)}if(c.status===304&&o)return o.body;if(c.status===404)return null;if(!c.ok){if(o)return o.body;throw Error(`${a}: HTTP ${c.status}`)}let l;try{l=await c.text()}catch(e){if(o)return o.body;throw Error(`${a}: ${e.message}`)}let u=c.headers.get(`etag`);return u&&!r&&e(a,u,l),l}}const F=i(e=>o(e,async e=>{let t=await b(e);if(!t)return null;let n;try{n=s(t.text)}catch(e){throw Error(`Unable to parse renovate config ${t.path}: ${e.message}`)}return!n||typeof n!=`object`?null:{parsed:n,path:t.path}})),I=new Map,L=new Map;async function R(e,t={},n=P()){let r=await F(e);if(!r)return{};let i=a(I,r.path,()=>M(r.parsed,n,new Set,0));return a(L,`${+!!t.cooldown}${r.path}`,async()=>w(await i,t))}export{R as loadRenovateConfig,P as makePresetFetcher};
package/dist/shared2.js DELETED
@@ -1 +0,0 @@
1
- import{E as e,T as t,Z as n,j as r}from"./shared.js";export{t as getFetchOpts,e as getForgeTokens,r as githubApiUrl,n as urlHost};