updates 18.0.5 → 18.0.7
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 +3 -3
- package/dist/api.d.ts +1 -7
- package/dist/api.js +1 -1
- package/dist/dns.js +1 -1
- package/dist/index.js +1 -46
- package/dist/prewarm.js +1 -1
- package/dist/shared.js +70 -22
- package/package.json +5 -5
- package/dist/cli.js +0 -1
- package/dist/go.js +0 -1
- package/dist/utils.js +0 -1
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ npx updates -u && npm i
|
|
|
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
46
|
|`-s, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 50|
|
|
47
|
-
|`-T, --timeout <ms>`|Network request timeout in ms. Default: 5000|
|
|
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,
|
|
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/) `renovate.json` is picked up automatically, inheriting `ignoreDeps`, `enabled` and `allowedVersions` from matching `packageRules` as `include`/`exclude`/`pin`. Exact-name `allowedVersions` ranges become pin ceilings that never downgrade.
|
|
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
|
@@ -39,7 +39,7 @@ type Config = {
|
|
|
39
39
|
noColor?: boolean;
|
|
40
40
|
/** Disable HTTP cache */
|
|
41
41
|
noCache?: boolean;
|
|
42
|
-
/** Network request timeout in ms */
|
|
42
|
+
/** Network request timeout in ms, go probes use half */
|
|
43
43
|
timeout?: number;
|
|
44
44
|
/** Maximum number of parallel HTTP sockets */
|
|
45
45
|
sockets?: number;
|
|
@@ -128,17 +128,11 @@ type Output = Output$1 & {
|
|
|
128
128
|
errors?: Array<DepError>;
|
|
129
129
|
};
|
|
130
130
|
type UpdatesOptions = Config & {
|
|
131
|
-
/** Override GitHub/Gitea API URL (for testing) */
|
|
132
131
|
forgeapi?: string;
|
|
133
|
-
/** Override PyPI API URL (for testing) */
|
|
134
132
|
pypiapi?: string;
|
|
135
|
-
/** Override JSR API URL (for testing) */
|
|
136
133
|
jsrapi?: string;
|
|
137
|
-
/** Override Go proxy URL (for testing) */
|
|
138
134
|
goproxy?: string;
|
|
139
|
-
/** Override crates.io API URL (for testing) */
|
|
140
135
|
cargoapi?: string;
|
|
141
|
-
/** Override Docker Hub API URL (for testing) */
|
|
142
136
|
dockerapi?: string;
|
|
143
137
|
};
|
|
144
138
|
declare function updates(opts?: UpdatesOptions): Promise<Output>;
|
package/dist/api.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e,t}from"./shared.js";export{e as cliConfigBaseDir,t as updates};
|
package/dist/dns.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"node:dns";let t=null;function n(){if(
|
|
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/index.js
CHANGED
|
@@ -1,47 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
3
|
-
|
|
4
|
-
Options:
|
|
5
|
-
-u, --update Update versions and write dependency file
|
|
6
|
-
-f, --file <path,...> File or directory to use, defaults to current directory
|
|
7
|
-
-M, --modes <mode,...> Which modes to enable. Default: npm,pypi,go,cargo,actions,docker,make
|
|
8
|
-
-i, --include <dep,...> Include only given dependencies
|
|
9
|
-
-e, --exclude <dep,...> Exclude given dependencies
|
|
10
|
-
-l, --pin <dep=range> Pin dependency to given semver range
|
|
11
|
-
-C, --cooldown <duration> Minimum dependency age, e.g. 7 (days), 1w, 2d, 6h
|
|
12
|
-
-p, --prerelease [<dep,...>] Consider prereleases, implying --greatest
|
|
13
|
-
-R, --release [<dep,...>] Never consider prereleases
|
|
14
|
-
-g, --greatest [<dep,...>] Ignore the latest tag and take the greatest release
|
|
15
|
-
-t, --types <type,...> Dependency types to update
|
|
16
|
-
-P, --patch [<dep,...>] Consider only up to semver-patch
|
|
17
|
-
-m, --minor [<dep,...>] Consider only up to semver-minor
|
|
18
|
-
-d, --allow-downgrade [<dep,...>] Allow downgrading onto a lower latest tag
|
|
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
|
-
-r, --registry <url> Override npm registry URL
|
|
22
|
-
-I, --indirect Include indirect Go dependencies
|
|
23
|
-
-E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
|
|
24
|
-
-U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
|
|
25
|
-
-j, --json Output a JSON object
|
|
26
|
-
-x, --no-cache Disable HTTP cache
|
|
27
|
-
-c, --color Force color output
|
|
28
|
-
-n, --no-color Disable color output
|
|
29
|
-
-v, --version Print the version
|
|
30
|
-
-V, --verbose Print verbose output to stderr
|
|
31
|
-
-h, --help Print this help
|
|
32
|
-
|
|
33
|
-
Examples:
|
|
34
|
-
$ updates
|
|
35
|
-
$ updates -u
|
|
36
|
-
$ updates -C 7
|
|
37
|
-
$ updates -M npm
|
|
38
|
-
$ updates -e react,react-dom
|
|
39
|
-
$ updates -f package.json
|
|
40
|
-
$ updates -f pyproject.toml
|
|
41
|
-
$ updates -f go.mod
|
|
42
|
-
$ updates -f Cargo.toml
|
|
43
|
-
$ updates -f .github
|
|
44
|
-
$ updates -f Dockerfile
|
|
45
|
-
$ updates -f docker-compose.yml
|
|
46
|
-
$ updates -f Makefile
|
|
47
|
-
`),await y()),g(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:_},{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,_,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{};
|
|
2
|
+
import{n as e}from"./shared.js";import{argv as t,exit as n,stderr as r,stdout as i}from"node:process";for(let e of[i,r])e._handle?.setBlocking?.(!0);n(await e(t.slice(2),{stdout:e=>i.write(e),stdoutIsTTY:i.isTTY,moduleUrl:import.meta.url}));export{};
|
package/dist/prewarm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{env as e}from"node:process";import{basename as t,join as n,resolve as r}from"node:path";import{readFileSync as i,readdirSync as a,statSync as o}from"node:fs";const s=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=r(e);try{if(o(t).isFile()){h.add(t);continue}for(let e of a(t,{withFileTypes:!0}))if(e.isFile())h.add(n(t,e.name));else if(s.has(e.name))try{for(let r of a(n(t,e.name,`workflows`),{withFileTypes:!0}))r.isFile()&&/\.ya?ml$/.test(r.name)&&h.add(n(t,e.name,`workflows`,r.name))}catch{}}catch{}}for(let e of h){let n=t(e),r=u(n);if(!(!r||p&&!p.has(r)&&!(r===`actions`&&p.has(`docker`))))try{let t=i(e,`utf8`);if(n===`package.json`){let e;try{e=JSON.parse(t)}catch{continue}let n=l.flatMap(t=>Object.values(e[t]??{}));typeof e.packageManager==`string`&&n.push(e.packageManager.split(`@`,1)[0]);for(let e of n)typeof e!=`string`||/^(?:file|link|workspace):/.test(e)||(/^(?:jsr:|npm:@jsr\/)/.test(e)?m.add(`jsrapi`):/^(?:git(?:\+https?|\+ssh)?:|https?:\/\/[^/]*(?:github|gitea|forgejo)|github:|gitea:|forgejo:)/.test(e)?m.add(`forgeapi`):m.add(`registry`))}else if(n===`pnpm-workspace.yaml`)/\b(?:jsr:|npm:@jsr\/)/.test(t)&&m.add(`jsrapi`),/\b(?:catalogs?|overrides):|:\s*["']?[~^<>=]*\d/.test(t)&&m.add(`registry`);else if(n===`pyproject.toml`)/^[ \t]*["'][A-Za-z0-9][\w.-]*(?:\[[^\]]+\])?\s*(?:[<>=!~]|@)/m.test(t)&&m.add(`pypiapi`);else if(n===`Cargo.toml`)/^\s*\[(?:target\.[^\]]+\.)?(?:dev-|build-)?dependencies\]/m.test(t)&&m.add(`cargoapi`);else if(n===`go.mod`||n===`go.work`)/^\s*(?:require\s+)?\S+\s+v\d/m.test(t)&&m.add(`goproxy`);else if(/^Dockerfile(?:\..+)?$/.test(n)||/^(?:docker-|compose).*\.ya?ml$/.test(n))/^\s*(?:FROM\s+(?:--\S+\s+)*|image\s*:\s*)[^\s#]+[:@]/im.test(t)&&m.add(`dockerapi`);else if([`Makefile`,`makefile`,`GNUmakefile`].includes(n)||n.endsWith(`.mk`))/\bgo\s+install\s+\S+@v\d/.test(t)&&m.add(`goproxy`),/\b(?:docker|image)\b[^\n]*[\w./-]+:[\w.-]+/i.test(t)&&m.add(`dockerapi`);else{let e=-1;for(let n of t.split(/\r?\n/)){let t=n.search(/\S|$/);e!==-1&&(!n.trim()||t>e)||(e=/:\s*[|>](?:[1-9][+-]?|[+-][1-9]?)?\s*(?:#.*)?$/.test(n)?t:-1,(!p||p.has(`actions`))&&/^\s*(?:-\s*)?uses\s*:\s*["']?(?!\.\/|docker:\/\/)[^\s#]+@/.test(n)&&m.add(`forgeapi`),(!p||p.has(`docker`))&&/^\s*(?:(?:container|image)\s*:\s*["']?[^\s#]+[:@]|(?:-\s*)?uses\s*:\s*["']?docker:\/\/)/.test(n)&&m.add(`dockerapi`))}}}catch{}}let _=new Set;for(let t of m){let r=f[t];if(t===`registry`&&typeof r!=`string`)try{r=/^\s*registry\s*=\s*(\S+)\s*$/m.exec(i(n(d,`.npmrc`),`utf8`))?.[1]}catch{}else t===`goproxy`&&typeof r!=`string`&&(r=e.GOPROXY);let a=typeof r==`string`&&r?r:c[t];if(!(t===`goproxy`&&(a=a.split(/[|,]/,1)[0].trim(),a===`off`||a===`direct`)))try{_.add(`${new URL(a).origin}/`)}catch{}}return Array.from(_)}export{d as prewarmOrigins};
|
package/dist/shared.js
CHANGED
|
@@ -1,24 +1,72 @@
|
|
|
1
|
-
import{cwd as e,env as t,pid as n,platform as r,stderr as i}from"node:process";import{
|
|
1
|
+
import{cwd as e,env as t,pid as n,platform as r,stderr as i,versions as a}from"node:process";import{parseArgs as o,stripVTControlCharacters as s,styleText as c}from"node:util";import{basename as l,dirname as u,isAbsolute as d,join as f,relative as p,resolve as m,sep as h}from"node:path";import{accessSync as g,existsSync as _,globSync as v,readFile as y,readFileSync as b,readdirSync as x,realpathSync as S,statSync as C,truncateSync as ee,writeFileSync as w}from"node:fs";import{pathToFileURL as te}from"node:url";import{access as ne,mkdir as T,readFile as re,readdir as ie,realpath as E,rename as ae,stat as oe,unlink as se,utimes as D,writeFile as O}from"node:fs/promises";import{AsyncLocalStorage as ce}from"node:async_hooks";import{Buffer as k}from"node:buffer";import{setTimeout as A}from"node:timers/promises";import{createHash as le}from"node:crypto";import{homedir as ue}from"node:os";function de(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 fe=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,pe=/^(\s*\()([^)]*)(\)\s*)$/,me=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,he=new Set([`===`,`==`,`>=`,`~=`]),ge=/^v?\d[0-9a-z.!+_-]*$/i;function _e(e){let t=[];for(let n of e.split(`,`)){let e=me.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 j(e){let t=e.indexOf(`;`),n=fe.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[,r,i,a,o,s,c]=n,l=pe.exec(c);return{name:i,extras:o,specifiers:_e(l?l[2]:c),marker:t===-1?``:e.slice(t),head:`${r}${i}${a}${o}${s}`,open:l?.[1]??``,close:l?.[3]??``}}function ve({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 ye(e){return e.find(({op:e,version:t})=>he.has(e)&&ge.test(t))}function be(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=j(n);if(!e?.specifiers)continue;let r=ye(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const xe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],Se=[`node`,`deno`,`bun`],M=[`.github`,`.gitea`,`.forgejo`],Ce={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},we=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],Te=[`deps`,`indirect`,`replace`,`tool`],Ee=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],De=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function Oe(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 ke(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 Ae(e){return e.split(`,`).filter(Boolean)}function je(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function Me(e,t){let n=Array(e[0].length).fill(0),r=Array(e.length);for(let i=0;i<e.length;i++){let a=e[i],o=Array(a.length);for(let e=0;e<a.length;e++){let r=t(a[e]);o[e]=r,r>n[e]&&(n[e]=r)}r[i]=o}let i=``;for(let t=0;t<e.length;t++){let a=e[t],o=a.length-1;for(let e=0;e<=o;e++)if(e>0&&(i+=` `),i+=a[e],e!==o){let a=n[e]-r[t][e];a>0&&(i+=` `.repeat(a))}t<e.length-1&&(i+=`
|
|
2
|
+
`)}return i}const Ne={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Pe(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ne[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Fe(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function N(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 Ie(e){try{return await e}catch{return null}}const P=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function F(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(P).join(`|`)}const Le=new WeakMap;var I=class extends RegExp{constructor(e,t,n){super(e,n),Le.set(this,t)}test(e){return Le.get(this)(e)}};function Re(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++)e[i]===`(`||e[i]===`{`?n++:e[i]===`)`||e[i]===`}`?n--:(e[i]===`|`||e[i]===`,`)&&n===0&&(t.push(e.slice(r,i)),r=i+1);return t.push(e.slice(r)),t}function ze(e,t,n,r){let i=0;for(let a=t;a<e.length;a++)if(e[a]===n)i++;else if(e[a]===r&&--i===0)return a;return-1}function Be(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Re(e);let n=/^-?\d+$/.test(t[1])&&/^-?\d+$/.test(t[2]),r=n?Number(t[1]):t[1].codePointAt(0),i=n?Number(t[2]):t[2].codePointAt(0),a=Math.abs(Number(t[3])||1)*(r<=i?1:-1),o=[];for(;(a>0?r<=i:r>=i)&&o.length<1e3;)o.push(n?String(r):String.fromCodePoint(r)),r+=a;return o}function L(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(P(e[++i]));else if(a===`*`&&e[i+1]!==`(`){let r=e[i+1]===`*`;for(;e[i+1]===`*`;)i++;r&&e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else if(a===`?`&&e[i+1]!==`(`)r(`[^/]`);else if(a===`[`){let t=e.indexOf(`]`,i+1);if(t===-1)r(`\\[`);else{let n=e.slice(i+1,t);n.startsWith(`!`)&&(n=`^${n.slice(1)}`),r(`[${n.replaceAll(`\\`,`\\\\`)}]`),i=t}}else if(a===`{`){let a=ze(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=Be(e.slice(i+1,a)).map(L);t+=`(?:${r.map(e=>e.source).join(`|`)})`,n.push({kind:`alternatives`,alternatives:r.map(e=>e.tokens),minimum:1,repeat:!1}),i=a}}else if(`@+?*!`.includes(a)&&e[i+1]===`(`){let o=ze(e,i+1,`(`,`)`);if(o===-1)r(P(a));else{let r=Re(e.slice(i+2,o)).map(L),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(P(a))}return{source:t,tokens:n}}function Ve(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 He(e){if(e instanceof RegExp)return/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e;let t=/^(!?)\/(.*)\/(i?)$/.exec(e);if(t)try{let n=new RegExp(t[2],t[3]);return t[1]?new I(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}=L(e.slice(n)),o=e=>Ve(a,e);return new I(`^${i}$`,r?e=>!o(e):o,`i`)}async function Ue(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function We(e,t){let n=e;for(;;){let e=t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function R(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 Ge(e){let t=new Map;return n=>z(t,n,()=>e(n))}const B=`0|[1-9]\\d*`,Ke=/^(?:0|[1-9]\d*)$/,qe=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,Je=RegExp(`^v?(${B})\\.(${B})\\.(${B})(?:-((?:${qe})(?:\\.(?:${qe}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Ye=new Map;function V(e){return typeof e==`string`?z(Ye,e,()=>{let t=Je.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||!Number.isSafeInteger(i))return null;let a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)&&Number(e)<2**53-1?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,raw:e,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function Xe(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 Ze(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function Qe(e,t){let n=Ze(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=Xe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function $e(e){return V(e)?.version??null}function H(e){return V(e)}const et=new Map,tt=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function nt(e){return typeof e==`string`?z(et,e,()=>{let t=tt.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function rt(e,t){let n=V(e),r=V(t);return!n||!r?null:it(n,r)}function it(e,t){let n=Qe(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(Ze(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function at(e,t){let n=V(e),r=V(t);return n&&r?Qe(n,r):null}function ot(e,t){return(at(e,t)??-1)>0}function st(e){let t=/^v?([^.+-]+(?:\.[^.+-]+){0,2})(-[0-9a-zA-Z.-]+)?(\+[0-9a-zA-Z.-]+)?$/.exec(e);if(!t)return null;let n=t[1].split(`.`),r=[],i=!1;for(let e of n)if(/^[xX*]$/.test(e))i=!0,r.push(null);else{if(i||!Ke.test(e))return null;let t=Number(e);if(!Number.isSafeInteger(t))return null;r.push(t)}for(;r.length<3;)r.push(null);return(t[2]||t[3])&&r.some(e=>e===null)||(t[2]||t[3])&&!V(`${r.join(`.`)}${t[2]??``}${t[3]??``}`)?null:{major:r[0],minor:r[1],patch:r[2],suffix:`${t[2]??``}${t[3]??``}`}}function U(e,t,n,r,i=``){let a=V(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function W(...e){let t=e.filter(e=>e!==null);return t.length===e.length?t:null}function ct(e,t){let n=Qe(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return!1}}function G(e,t,n){return U(`<`,e,t,n,`-0`)}function lt(e,t){if(e.major===null)return t===`>`||t===`<`?W(G(0,0,0)):[];let n=e.major,r=e.minor??0,i=e.patch??0;if(t===`^`||t===`~`){let a=U(`>=`,n,r,i,e.suffix);return e.minor===null?W(a,G(n+1,0,0)):t===`~`?W(a,G(n,r+1,0)):n===0?e.patch!==null&&r===0?W(a,G(0,0,i+1)):W(a,G(0,r+1,0)):W(a,G(n+1,0,0))}return e.minor!==null&&e.patch!==null?W(U(t||`=`,n,r,i,e.suffix)):!t||t===`=`?e.minor===null?W(U(`>=`,n,0,0),G(n+1,0,0)):W(U(`>=`,n,r,0),G(n,r+1,0)):t===`>`?e.minor===null?W(U(`>=`,n+1,0,0)):W(U(`>=`,n,r+1,0)):t===`<=`?e.minor===null?W(G(n+1,0,0)):W(G(n,r+1,0)):t===`<`?e.minor===null?W(G(n,0,0)):W(G(n,r,0)):W(U(`>=`,n,r,0))}function ut(e,t){let n=st(e),r=st(t);if(!n||!r)return null;let i=[];if(n.major!==null){let e=U(`>=`,n.major,n.minor??0,n.patch??0,n.suffix);if(!e)return null;i.push(e)}if(r.major===null)return i;let a=r.minor===null?G(r.major+1,0,0):r.patch===null?G(r.major,r.minor+1,0):U(`<=`,r.major,r.minor,r.patch,r.suffix);return a?(i.push(a),i):null}function dt(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return ut(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&&st(t[2]),i=n?lt(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const ft=new Map;function pt(e){return z(ft,e,()=>{let t=e.split(`||`).map(e=>dt(e.trim()));return t.some(e=>e===null)?null:t})}function mt(e,t){return t.some(t=>!ct(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 ht(e,t){return!!pt(t)?.some(t=>mt(e,t))}function K(e,t){let n=V(e);return!!(n&&ht(n,t))}function q(e){return typeof e==`string`&&pt(e)?e:null}const gt=`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]+)*))?`,_t=RegExp(`^${gt}$`,`i`),vt=RegExp(gt,`i`),yt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},bt=new Map;function J(e){return typeof e==`string`?z(bt,e,()=>{let t=_t.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?[yt[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 xt(e){return J(e)??J(vt.exec(e)?.[0]??``)}const St=e=>!!e.pre||e.dev!==null;function Ct(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 wt(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?Ct(e.local,t.local):a<o?-1:1}function Tt(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 Et(e,t){let n=wt(e,t);if(n===0)return null;let r=Tt(e,t);return St(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Dt=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,Y={parse:H,parseRange:e=>H(Dt.exec(e)?.[0]??``)??H(nt(e)?.version??``),compare:Qe,diff:it,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:ht},Ot=new Map;function kt(e){return z(Ot,e,()=>{let t=e.trim().replace(/^v/i,``);return(H(t)??H(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?H(nt(t)?.version??``):null)})}const At={...Y,parse:kt,parseRange:kt,isRangePrerelease:e=>!!kt(e)?.prerelease.length},jt={parse:J,parseRange:xt,compare:wt,diff:Et,isPrerelease:St,isRangePrerelease:e=>{let t=xt(e);return!!(t&&St(t))},satisfiesRange:({release:e},t)=>K(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Mt=/[A-Za-z_$]/,Nt=/[A-Za-z0-9_$]/;function Pt(e){let t=``,n=0,r=e.length;function i(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
|
|
3
|
+
`;)t++;return t}for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;return t+2}function a(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&(e[t+1]===`/`||e[t+1]===`*`)){t=i(t);continue}break}return t}for(;n<r;){let o=e[n];if(o===`"`){let i=n++;for(;n<r;){let t=e[n++];if(t===`\\`)n++;else if(t===`"`)break}t+=e.slice(i,n);continue}if(o===`'`){for(t+=`"`,n++;n<r;){let i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
|
|
4
|
+
`){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];if(r===`}`||r===`]`){n++;continue}t+=o,n++;continue}if(Mt.test(o)){let i=n;for(;n<r&&Nt.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 Ft={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 It(e){let t;for(let n of e.matchAll(/(\d+(?:\.\d+)?)\s*([a-z]+)/gi)){let e=Ft[n[2].toLowerCase()];if(e===void 0)return;t=(t??0)+Number(n[1])*e}return t}const Lt={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}{/,}**`}},Rt=new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function zt(e){let t={Package:[],Dep:[]};for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(Lt,n)?Lt[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||Rt.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=Bt(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 Bt(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Vt=new Map,Ht=e=>z(Vt,e,()=>He(e)),Ut=(e,t,n)=>(!t?.length||t.some(t=>Ht(t).test(e)))&&(!n?.length||n.every(t=>!Ht(t).test(e)));function Wt(e,t,n){return Ut(t,e.matchPackageNames,e.excludePackageNames)&&Ut(n,e.matchDepNames,e.excludeDepNames)}const Gt=new WeakMap;var Kt=class extends RegExp{constructor(e,t){super(e),Gt.set(this,t)}testNames(e,t){return Gt.get(this)(e,t)}test(e){return this.testNames(e,e)}};function qt(e,t,n,r){return e instanceof Kt?e.testNames(n,r):e.test(t)}function Jt(e,t){let n=[],r={},i=new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=zt(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=It(r.minimumReleaseAge);e!==void 0&&(c.cooldownDays=e)}if(typeof r.allowedVersions==`string`){let e=q(r.allowedVersions);if(!e&&!Bt(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&&Wt(t,e,e))?.allowedVersions;t&&q(t)&&(r[e]=t)}let o;return n.some(e=>!e.enabled)&&(o=new Kt(`renovate-package-rules`,(e,t)=>{let r=!0;for(let i of n)Wt(i.matchers,e,t)&&(r=i.enabled);return!r})),{disabled:o,pin:r,versionRules:a}}function Yt(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=It(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 Kt(`^${P(e)}$`,(t,n)=>n===e)):[],{disabled:i,pin:a,versionRules:o}=Jt(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 Xt=[`renovate.json`,`renovate.jsonc`,`renovate.json5`];async function Zt(e,t={}){let n=await Ue(e,async e=>{for(let t of Xt){let n=f(e,t),r;try{r=await re(n,`utf8`)}catch{continue}let i;try{i=Pt(r)}catch(e){throw Error(`Unable to parse renovate config ${n}: ${e.message}`)}if(i&&typeof i==`object`)return{parsed:i,path:n}}return null});return n?Yt(n.parsed,t):{}}const Qt=Symbol(`cliBaseConfig`),$t={"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`}},en=new Set([`allow-downgrade`,`greatest`,`minor`,`patch`,`prerelease`,`release`]);function tn(e){return Array.isArray(e)?!e.length||e.includes(!0)?!0:new Set(e.filter(e=>typeof e==`string`).flatMap(Ae)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function nn(e){for(let[t,{short:n}]of Object.entries($t))if(t===e||n===e)return t;return``}function rn(e){return new Set(e.map(He))}function an(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(Ae):[]}function on(e){for(let[t,n]of Object.entries(e??{}))if(!q(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function sn(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 on(t),t}function cn(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:rn(e)}const ln=Ge(e=>Ue(e,async e=>{for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=`updates.config.${t}`,r=f(e,n);try{await ne(r)}catch(e){if(e.code===`ENOENT`)continue;throw Error(`Unable to load config file ${n}: ${e.message}`)}try{return(await import(te(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null})),un=Ge(async e=>{let t=await ln(e)??{},n=await Zt(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??[]]),on(r.pin),r});function dn(e){return new Promise((t,n)=>{y(e,`utf8`,(e,r)=>e?n(e):t(r))})}const fn=f(r===`win32`?t.LOCALAPPDATA||f(ue(),`AppData`,`Local`):t.XDG_CACHE_HOME||f(ue(),`.cache`),`updates`),pn=new Map;function mn(e){return le(`sha256`).update(e).digest(`hex`)}const hn=6048e5;async function gn(e,t=fn){try{let n=f(t,`${mn(e)}.cache`);if(Date.now()-(await oe(n)).mtimeMs>hn)return await se(n),null;let r=await dn(n),i=r.indexOf(`
|
|
5
|
+
`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!a||!o)return null;let s=new Date;return await Ie(D(n,s,s)),{etag:a,body:o}}catch{return null}}const _n=new Set;let vn=0;function yn(e,t,r,i=fn){let a=(async()=>{try{await z(pn,i,()=>T(i,{recursive:!0}))}catch{pn.delete(i);return}let a;try{let o=f(i,`${mn(e)}.cache`);a=`${o}.${n}-${vn++}.tmp`,await O(a,`${t}\n${r}`),await ae(a,o)}catch{a&&await Ie(se(a))}})();_n.add(a),(async()=>{await a,_n.delete(a)})()}async function bn(e=fn,t=4096){for(;_n.size;)await Promise.all(_n);try{let n=(await ie(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=f(e,t);try{return{path:n,mtime:(await oe(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-hn,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>Ie(se(e.path))))}catch{}}var xn=`18.0.7`;function Sn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const Cn=xn,wn=`https://api.github.com`,Tn={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:wn,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},X=e=>e[0]===`v`?e.substring(1):e,En=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Dn(e,t){return{headers:{"user-agent":`updates/${Cn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const On=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function kn(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&On.has(t)}async function An(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=kn(t),n}}async function jn(e,t,n={}){let r=Bn(e);for(let i=0;;i++)try{let a=await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})),o=a?.headers?.get?.(`retry-after`)?.trim(),s=o&&!/^\d+$/.test(o)?Date.parse(o):NaN,c=o?/^\d+$/.test(o)?Number(o)*1e3:Number.isNaN(s)?null:Math.max(s-Date.now(),0):null,l=e.fetchTimeout,u=a.status>=500&&a.status<600?c!==null&&c<=l?c:0:(a.status===429||a.status===403&&c!==null)&&(c===null||c<=l)?c??0:null;if(u===null||i>=2)return a;a.body&&await a.body.cancel(),u&&await A(u)}catch(e){if(i>=2||!e?.transient)throw e}}const Mn=e=>t=>JSON.stringify(e(JSON.parse(t))),Nn=new WeakMap;function Pn(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()).sort(),n.body??null,r?.toString()]),s=z(Nn,t,()=>new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await gn(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await jn(t,e,{...n,headers:c});if(l.status===304&&o)return{body:o.body,res:l};if(!l.ok)return{res:l};let u=await l.text();if(r&&u.length>=16384)try{u=r(u)}catch{}let d=a?`immutable`:l.headers.get(`etag`);return d&&!t.noCache&&yn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function Fn(e,t,n={},r,i=e){return Pn(e,t,n,r,i,!1)}function In(e,t,n={},r){return Pn(e,t,n,r,e,!0)}async function Z(e,t,n,r,i=!0){let a=z(e,t,()=>new Map),o=a.get(n);if(o)return o;let s=r();a.set(n,s);try{let e=await s;return i||a.delete(n),e}catch(e){throw a.delete(n),e}}const Ln=new ce,Rn=e=>Math.max(e.concurrency||50,1),zn=new WeakMap;function Bn(e){return z(zn,e,()=>{let t=Rn(e),n=0,r=0,i=[];return async e=>{if(Ln.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await Ln.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function Vn(e,t=Y){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const Hn=new WeakMap,Un=new WeakMap;function Wn(e,t,n,r,i=Y){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?Hn:Un;o=e.get(r)??new Set(r).add(`prerelease`),t&&(r.has(`patch`)&&o.add(`prepatch`),r.has(`minor`)&&o.add(`preminor`),r.has(`major`)&&o.add(`premajor`)),e.set(r,o)}return{effectiveSemvers:o,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function Gn(e){return nt(e)?.version??``}function Kn(e,t,{range:n,semvers:r,useGreatest:i,usePre:a,useRel:o,latest:s,pinnedRange:c,pinNoDowngrade:l,allowDowngrade:u,cooldownDays:d,now:f,getVersionDate:p,versioning:m=Y}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=Wn(n,a,o,r,m),v=s?m.parse(s):null,y=i||a&&!o||v&&c&&!m.satisfiesRange(v,c)?null:v,b=!!(y&&m.compare(h,y)>0),x=!!c&&!l&&!m.satisfiesRange(h,c),S=!!u&&(!!y||m.isPrerelease(h)),C=e?.time,ee=!!(d&&f),w=null;for(let e of t){let t=m.parse(e);if(!t||_(t))continue;let n=m.compare(t,h)<=0;if(n&&!x&&!S||w&&m.compare(t,w)<=0||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||ee&&!Sn(p?p(e):C?.[e],d,f))continue;let r=m.diff(h,t),i=r&&!m.isPrerelease(t)?r.replace(/^pre/,``):r;!i||!g.has(i)||(w=t)}return w?.raw??w?.version??null}function qn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Jn(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?jt:Y,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;let n=e=>!!(e&&!e.yanked);m=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(n)),g=e=>t[e].reduce((e,t)=>{if(!n(t))return e;let r=t?.upload_time_iso_8601,i=typeof r==`string`?Date.parse(r):NaN;return!Number.isNaN(i)&&i<e.time?{date:r,time:i}:e},{time:1/0}).date,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[Gn(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=Gn(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=Wn(p,i,a,o,f),m=e.old||p,h=f.parseRange(m),g=!!d||!!s&&!c&&!!h&&!f.satisfiesRange(h,s),_=(e,i)=>{let a=Gn(e),o=f.parse(e),c=qn(e);if(!a||!c&&r(o))return!1;let d=rt(m,e)??rt(t,a),p=c?d===`prerelease`?`patch`:d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!Sn(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 Kn(e,m,{range:p,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:h,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:g,versioning:f})}function Yn(e){try{return new URL(e).host}catch{return``}}function Xn(e){let n=Ae(t.UPDATES_FORGE_TOKENS??``).find(t=>{let n=t.lastIndexOf(`:`);return n>0&&t.slice(0,n)===e});return n?n.slice(n.lastIndexOf(`:`)+1):null}let Zn;function Qn(){return Zn||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),Zn}const $n=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];let er;function tr(){let e=Array.from(new Set($n.map(e=>t[e]).filter(e=>!!e)));return e.length?Promise.resolve(e):er??=(async()=>{try{let{stdout:e}=await(await Qn())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const nr=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function rr(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=nr.exec(n);if(!e)continue;let r=Yn(e[1]),i=k.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let ir;function ar(){return ir??=(async()=>{try{let{stdout:e}=await(await Qn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return rr(e)}catch{return new Map}})()}const or=new Map;async function sr(e,t){if(!e)return[];let n=Xn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===Yn(t),[a,o]=await Promise.all([i?tr():[],ar()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}var cr=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 lr(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 ur(e,t,n,r){if(e.status>=500)throw new cr(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await lr(e);if(i===null)return e;throw new cr(`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 dr(e,t,n){let r=Yn(e),i=await sr(r,t.forgeApiUrl),a=async a=>{let o=Dn(`Bearer`,a);return o.headers={...o.headers,...n},ur(await jn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=or.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 or.set(r,t),n;t===e&&or.delete(r)}return await a()}catch(e){throw e instanceof cr?e:new cr(`network`,r,e?.message??String(e),{cause:e})}}function fr(e,t){let n=Y.parse(X(t));if(!n)return null;let r=``,i=n;for(let t of e){let e=Y.parse(X(t));e&&Y.compare(e,i)>0&&(r=t,i=e)}return r||null}function pr(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 mr=RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),hr=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function gr(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function _r(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function vr(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 yr=(e,t)=>{if(!t)return vr(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})},br=new WeakMap;function xr(e,t,n,r){let i=`${n}${e}`;return Z(br,t,i,async()=>{let n=t.noCache?null:await gn(e),a=await dr(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return br.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&yn(e,s,o),o})}function Sr(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 Cr(e,t,n,r){let i=await xr(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 wr(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 Tr(e,t,n,r,i){let a=await Cr(e(1),t,n,r);if(!a)return;let o=wr(a.link),s=Rn(t);for(let c=2,l=1,u=i(a.entries);c<=o&&!u;c+=l,l=Math.min(l*2,s)){let a=await Promise.all(Array.from({length:Math.min(l,o-c+1)},(i,a)=>Cr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function Er(e,t,n){let r=new Map;return await Tr(n=>`${wn}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,Sr,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function Dr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await Tr(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,yr,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 Or(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return Dr(e,t,n,r,i);let[o,s]=await Promise.allSettled([Dr(e,t,n,r,i),Er(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof cr))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 kr(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function Ar(e,t,n=``){let r=X(e),i=X(t).split(`.`).length,a=i>=3?r:Array.from({length:i},(e,t)=>r.split(`.`)[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${a}${n}`}function jr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const Mr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function Nr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of Mr)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=pr(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${jr(a)}/${e.directory}`)),a||t||``)}function Pr(e){let t=e.includes(`:/`)||e.startsWith(`/`);return En(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Fr(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 Ir(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:Pr(e),fallback:r})}return t}function Lr(e){if(typeof e==`string`)return[{url:En(e),fallback:`,`}];let n=Ir(t.GOPROXY||`${Tn.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Rr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const zr=new Map;function Br(e){return z(zr,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:P(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function Vr(e,t){return t.some(t=>Br(t).test(e))}function Hr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Ur=/\/v(\d+)$/,Wr=/^gopkg\.in\/.*?\.v(\d+)$/;function Gr(e){let t=Wr.exec(e)??Ur.exec(e);return t?Number.parseInt(t[1]):1}function Kr(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Ur,``);return t<=1?n:`${n}/v${t}`}function qr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(X(t));return Number.isNaN(n)||n===Gr(e)?e:Kr(e,n)}const Jr=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,Yr=/^(\S+)\s+(v\S+)/,Xr=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Zr=e=>e.replace(/^"(.*)"$/,`$1`);function Qr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function $r(e){let t=Xr.exec(e);if(!t)return null;let[,n,r,i,a]=t;return{origModule:Zr(n),origVersion:r??``,targetModule:Zr(i),targetVersion:a??``}}function*ei(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=Jr.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function ti(e){return e.startsWith(`golang.org/x/`)}async function ni(e,t,n){let r=t,i=t&&!Vn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Vn(e.Version)||(i=e)}return i??r}function ri(e,t,n,r){let i=n??r;return[{name:e,old:t,new:X(i.Version),Time:i.Time,...i.path!==e&&{newPath:i.path},sameMajorNew:X(r.Version),sameMajorTime:r.Time},null]}function ii(e){for(let{kind:t,value:n}of ei(e.split(/\r?\n/)))if(t===`module`)return Zr(n.split(/\s/,1)[0]);return``}function ai(e){let t={},n={},r={},i={},a={},o=new Set,s=[];for(let i of ei(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(Zr(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=Yr.exec(i.value);e&&(a[Zr(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=$r(i.value);e&&(e.targetVersion&&!Qr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=Yr.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[Zr(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 oi=new WeakMap;function si(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=z(oi,n,()=>new Map);for(let t of i?[f(e,i,`go.mod`),f(e,`go.mod`)]:[f(e,`go.mod`)]){let e=m(t),n=z(a,e,()=>{try{return new Map(Object.entries(ai(b(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return new Map}async function ci(e,n,r,i,a){let o=Gr(e),s=async(e,n,a)=>{try{let o=a??`latest`,s=[`list`,`-m`,...a?[]:[`-versions`],`-json`,`${e}@${o}`],{stdout:c}=await i.execFile(`go`,s,{timeout:n,cwd:r,env:{...t,GOPROXY:`direct`}}),l=JSON.parse(c);return{Version:l.Version,Time:l.Time||``,path:e,Versions:l.Versions}}catch(t){let n=String(t?.stderr??``).trim().split(`
|
|
6
|
+
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@${a??`latest`} failed: ${n}`)}},c=async(e,t)=>{let n=await s(e,t),r=a.get(e);if(!r?.has(n.Version))return n;let i=hi((n.Versions??[]).join(`
|
|
7
|
+
`),gi(e),r);if(!i)throw Error(`No non-excluded versions found for ${e}`);return s(e,t,i.Version)},l=e=>Ie(c(e,i.goProbeTimeout)),[u,d]=await Promise.all([c(e,i.fetchTimeout),ti(e)?null:l(Kr(e,o+1))]);return ri(e,n,await ni(o,d,t=>l(Kr(e,t))),u)}const li={"accept-encoding":`gzip, deflate, br`},ui=e=>e===404||e===410;async function di(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 fi=async(e,t,n)=>{let r=`${t}/${Hr(n)}/@latest`,i=await e(r);if(i.ok)return di(i,r,n);if(ui(i.status))return null;kr(i,r,n,t)},pi=new WeakMap;function mi(e,t,n,r,i){return Z(pi,e,`latest${t}${r}/${i}`,()=>fi(n,r,i))}function hi(e,t=0,n=new Set){let r=null;for(let i of e.split(`
|
|
8
|
+
`)){let[e,a]=i.trim().split(/\s+/);if(!(!e||!$e(e)||n.has(e))&&!(t&&Number.parseInt(X(e))!==t)){if(r){let t=Vn(e);if(t===Vn(r.Version)?!ot(e,r.Version):t)continue}r={Version:e,Time:a??``}}}return r}function gi(e){return Ur.test(e)||Wr.test(e)?Gr(e):0}async function _i(e,t,n,r=new Set){let i=Hr(n),a=`${t}/${i}/@v/list`,o=await e(a);if(!o.ok){if(ui(o.status))return null;kr(o,a,n,t)}let s=hi(await o.text(),gi(n),r);if(!s)return null;if(s.Time)return{...s,path:n};let c=`${t}/${i}/@v/${Hr(s.Version)}.info`;try{let t=await e(c);if(t.ok)return di(t,c,n)}catch{}return{...s,path:n}}function vi(e,t,n,r,i,a=new Set){let o=`list${t}${r}/${i}${Array.from(a).sort().join(`\0`)}`;return Z(pi,e,o,()=>_i(n,r,i,a))}async function yi(e,t,n,r,i){let a=Gr(t),o=e=>jn(r,e,{headers:li}),s=e=>r.doFetch(e,{signal:AbortSignal.timeout(r.goProbeTimeout),headers:li}),c=mi(r,`primary`,o,e,t),l=(async()=>{let n=await c,a=i.get(t);return n&&!a?.has(n.Version)?n:vi(r,`primary`,o,e,t,a)})(),u=async t=>{try{let[n,a]=await Promise.all([mi(r,`probe`,s,e,t),c]),o=i.get(t);return n&&!o?.has(n.Version)?n:!n&&a?null:vi(r,`probe`,s,e,t,o)}catch{return null}},[d,f]=await Promise.all([l,ti(t)?null:u(Kr(t,a+1))]);return d?ri(t,n,await ni(a,f,e=>u(Kr(t,e))),d):null}async function bi(e,t,n,r,i,a){let o=si(r,t,i);if(Vr(e,a))return ci(e,n,r,i,o);let s=await Fr(i.goProxyChain,async t=>{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);return t===`direct`?ci(e,n,r,i,o):yi(t,e,n,i,o)});if(s)return s;throw Error(`Unable to find ${e} on any GOPROXY entry`)}const xi=e=>`("?)${P(e)}\\2`;function Si(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 ei(a))if(e.kind===`require`){let t=Yr.exec(e.value);t&&R(s,Zr(t[1]),e.lineNumber)}else if(e.kind===`replace`){let t=$r(e.value);t&&R(c,t.targetModule,{...t,lineNumber:e.lineNumber})}else if(e.kind===`tool`){let t=Zr(e.value.split(/\s/,1)[0]);for(;t;){R(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=qr(d,u);if(r===`replace`){let e=!1;for(let t of c.get(d)??[]){if(X(t.targetVersion)!==f)continue;let{lineNumber:n}=t;a[n]=a[n].replace(RegExp(`(=>\\s+)${xi(d)}(\\s+)v${P(f)}(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`),p!==d&&t.origModule===d&&!t.origVersion&&(a[n]=a[n].replace(RegExp(`(^\\s*(?:replace\\s+)?)${xi(d)}(?=\\s+=>)`),`$1$2${p}$2`),e=!0)}e&&o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${xi(d)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&(n[d]=p);continue}o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${xi(d)}(\\s+)v${P(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+)?)("?)${P(d)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),`$1$2${p}$3$2`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const Ci=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function wi(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(Ci)){let e=t[0];if(!(/^\s/.test(e)||e.startsWith(`//`)||e.startsWith(`/*`))){if(a){e===`)`?a=!1:i(e,t.index);continue}e===`import`?o=2:o&&e===`(`?(a=!0,o=0):o&&(i(e,t.index)||--o===0)&&(o=0)}}let s=e;for(let e of r.reverse())s=`${s.slice(0,e.start)}${e.value}${s.slice(e.end)}`;return s}const Ti=e=>{let t=l(e);return t===`vendor`||t===`testdata`||t[0]===`_`};function Ei(e,t,n){if(!Object.keys(t).length)return;let r=new Map,i=t=>t.length>e.length&&z(r,t,()=>_(f(t,`go.mod`))||i(u(t)));for(let r of v(`**/*.go`,{cwd:e,exclude:Ti})){let a=f(e,r);if(i(u(a)))continue;let o=b(a,`utf8`),s=wi(o,t);s!==o&&n(a,s)}}function Di(e){let t=[],n={};for(let r of ei(e.split(/\r?\n/)))if(r.kind===`use`)t.push(r.value.split(/\s/,1)[0]);else if(r.kind===`replace`){let e=$r(r.value);e?.targetVersion&&!Qr(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function Oi(e,t){try{let n=S(m(e));return S(f(n,t,`go.mod`))}catch{return null}}function ki(e){let t=`https://${Ai(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${jr(t)}/${a.join(`/`)}`,n.href}return t}function Ai(e){return Ur.test(e)?u(e):e}function ji(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function Mi(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Ni(e){let t=tn(e);if(t!==!1)return t===!0||Array.from(t).map(Mi)}function Pi(t){if(!t)return e();let n=m(t),r=!1;try{r=C(n).isDirectory()}catch{}return r?n:u(n)}function Fi(e,t){let n=[...an(e.file),...t];return{filesList:n,startDir:Pi(n[0])}}function Ii(e){let t=o({strict:!1,allowPositionals:!0,tokens:!0,options:$t,...e!==void 0&&{args:e}}),n=Object.create(null),r=new Set,i=(e,t)=>{$t[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(!nn(o.name))throw Error(`Unknown option: ${o.rawName}`);if($t[o.name]?.type===`string`&&o.value===void 0&&!en.has(o.name))throw Error(`Missing value for --${o.name}`);if(o.inlineValue||!o.value?.startsWith(`-`)){i(o.name,o.value??!0);continue}let s=o.value.startsWith(`--`),c=t.tokens[e+1],l=c?.kind===`positional`?c.value:void 0,u=[],d=o.value.substring(s?2:1),f=!1;if(s){let e=nn(d);e&&(f=$t[e].type===`string`&&l!==void 0,u.push({key:e,value:!f||l}))}else for(let e=0;e<d.length;){let t=nn(d[e]);if(!t){u.length=0;break}if($t[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}$t[o.name]?.multiple?en.has(o.name)?i(o.name,!0):n[o.name]??=[]:n[o.name]=!0,f&&r.add(a);for(let{key:e,value:t}of u)i(e,t)}return{args:n,positionals:t.positionals.filter((e,t)=>!r.has(t))}}async function Li(e,t){let{filesList:n,startDir:r}=Fi(e,t),i=await un(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=Fe(e.timeout,`timeout`)),typeof e.sockets==`string`&&(a.sockets=Fe(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=e.cooldown);let o=an(e.include).map(Mi),s=an(e.exclude).map(Mi);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=an(e.types);c.length&&(a.types=c);let l=sn(e.pin);Object.keys(l).length&&(a.pin=l);let u=an(e.modes);u.length&&(a.modes=u);for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Ni(e[t]);n!==void 0&&(a[t]=n)}let d=Ni(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,Qt,{value:{cliKeys:Object.keys(a)}}),f}const Ri={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`},zi=new Set(Object.keys(Ri));for(let e of Object.values(Ri))Ri[e]=e;function Bi(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=>!zi.has(e)))return!0}return!1}async function Vi(t){let n={},r;for(let e=0;e<t.length;e++){let i=t[e];if(!i.startsWith(`-`)){r??=i;continue}let a=/^--([^=]+)(?:=(.*))?$/.exec(i),o=/^-([A-Za-z])(.*)$/.exec(i),s=a?Ri[a[1]]:o?Ri[o[1]]:void 0;if(!s)continue;let c=(a?a[2]:o[2])||(t[e+1]?.startsWith(`-`)===!1?t[++e]:void 0);c!==void 0&&(s===`file`||s===`modes`?(n[s]??=[]).push(...c.split(`,`)):n[s]=c)}let i=n.file?.[0]??r,a=i?m(i):e(),o=i?u(a):a;try{C(a).isDirectory()&&(o=a)}catch{}let s={};configSearch:for(let e=o;;e=u(e)){for(let t of[`js`,`ts`,`mjs`,`mts`]){let n=f(e,`updates.config.${t}`);try{if(!C(n).isFile())continue;s=(await import(te(n).href)).default??{};break configSearch}catch{}}if(u(e)===e)break}s={...s,...n};let c=Array.isArray(s.file)?s.file:s.files,{prewarmOrigins:l}=await import(`./prewarm.js`);for(let e of l(o,{...s,files:c}))(async()=>{try{await fetch(e,{method:`HEAD`})}catch{}})()}async function Hi(e,t,n=!0){let i=String,o=String,l=Bi(e,`json`,`j`),u=e=>t.stdout(`${e}\n`),d=async(e,t)=>{if(e){let t=e.message??String(e);u(l?JSON.stringify({error:t}):i(t))}return r===`win32`&&Number(a.node.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),t??+!!e};try{if(Bi(e,`help`,`h`))return t.stdout(`usage: updates [options] [files...]
|
|
9
|
+
|
|
10
|
+
Options:
|
|
11
|
+
-u, --update Update versions and write dependency file
|
|
12
|
+
-f, --file <path,...> File or directory to use, defaults to current directory
|
|
13
|
+
-M, --modes <mode,...> Which modes to enable. Default: npm,pypi,go,cargo,actions,docker,make
|
|
14
|
+
-i, --include <dep,...> Include only given dependencies
|
|
15
|
+
-e, --exclude <dep,...> Exclude given dependencies
|
|
16
|
+
-l, --pin <dep=range> Pin dependency to given semver range
|
|
17
|
+
-C, --cooldown <duration> Minimum dependency age, e.g. 7 (days), 1w, 2d, 6h
|
|
18
|
+
-p, --prerelease [<dep,...>] Consider prereleases, implying --greatest
|
|
19
|
+
-R, --release [<dep,...>] Never consider prereleases
|
|
20
|
+
-g, --greatest [<dep,...>] Ignore the latest tag and take the greatest release
|
|
21
|
+
-t, --types <type,...> Dependency types to update
|
|
22
|
+
-P, --patch [<dep,...>] Consider only up to semver-patch
|
|
23
|
+
-m, --minor [<dep,...>] Consider only up to semver-minor
|
|
24
|
+
-d, --allow-downgrade [<dep,...>] Allow downgrading onto a lower latest tag
|
|
25
|
+
-s, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 50
|
|
26
|
+
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: 5000
|
|
27
|
+
-r, --registry <url> Override npm registry URL
|
|
28
|
+
-I, --indirect Include indirect Go dependencies
|
|
29
|
+
-E, --error-on-outdated Exit with code 2 when updates are available and 0 when not
|
|
30
|
+
-U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
|
|
31
|
+
-j, --json Output a JSON object
|
|
32
|
+
-x, --no-cache Disable HTTP cache
|
|
33
|
+
-c, --color Force color output
|
|
34
|
+
-n, --no-color Disable color output
|
|
35
|
+
-v, --version Print the version
|
|
36
|
+
-V, --verbose Print verbose output to stderr
|
|
37
|
+
-h, --help Print this help
|
|
38
|
+
|
|
39
|
+
Examples:
|
|
40
|
+
$ updates
|
|
41
|
+
$ updates -u
|
|
42
|
+
$ updates -C 7
|
|
43
|
+
$ updates -M npm
|
|
44
|
+
$ updates -e react,react-dom
|
|
45
|
+
$ updates -f package.json
|
|
46
|
+
$ updates -f pyproject.toml
|
|
47
|
+
$ updates -f go.mod
|
|
48
|
+
$ updates -f Cargo.toml
|
|
49
|
+
$ updates -f .github
|
|
50
|
+
$ updates -f Dockerfile
|
|
51
|
+
$ updates -f docker-compose.yml
|
|
52
|
+
$ updates -f Makefile
|
|
53
|
+
`),await d();if(Bi(e,`version`,`v`)){let e;try{e=b(new URL(`package.json`,t.moduleUrl),`utf8`)}catch{e=b(new URL(`../package.json`,t.moduleUrl),`utf8`)}return u(JSON.parse(e).version),await d()}if(n)try{await Vi(e)}catch{}let{args:r,positionals:a}=Ii(e),f=await Li(r,a),{updates:p}=await import(`./api.js`);!f.noColor&&(f.color||t.stdoutIsTTY)&&(i=e=>c(`red`,String(e),{validateStream:!1}),o=e=>c(`green`,String(e),{validateStream:!1})),l=!!f.json;let m=await p(f),h=Object.keys(m.results).length>0,g=m.errors??[];if(f.json?u(JSON.stringify({...m.message&&{message:m.message},...h&&{results:m.results},...g.length&&{errors:g}})):m.message?u(m.message):h&&u(Ui(m,Ai,de,Me,s,i,o)),f.update&&!f.json)for(let e of Object.keys(m.results))u(o(`✨ ${e} updated`));if(!f.json)for(let{mode:e,name:t,error:n}of g)u(i(`${e} ${t}: ${n}`));return await d(void 0,g.length?1:f.errorOnOutdated?h?2:0:f.errorOnUnchanged?h?0:2:0)}catch(e){return await d(e)}}function Ui(e,t,n,r,i,a,o){let s=Object.keys(e.results),c=s.length>1,l=[c?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],u=new Set;for(let r of s){let i=Object.values(e.results[r]).flatMap(e=>Object.entries(e));for(let[e,s]of i.sort(([e],[t])=>e<t?-1:+(e>t))){let i=`${r}|${e}|${s.old}|${s.new}`;u.has(i)||(u.add(i),l.push([r===`go`?t(e):e,...c?[r]:[],n(s.old,s.new,a),n(s.new,s.old,o),s.age||``,s.info||``]))}}return r(l,e=>i(e).length)}const Wi=/^\[\[([^\]]+)\]\]$/,Gi=/^\[([^[\]]+)\]$/,Ki=[`"""`,`'''`],qi=()=>Object.create(null);function Ji(e){let t=qi(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=ea(r[e]).trim();if(!i)continue;let a=Wi.exec(i);if(a){let e=t,r=$i(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]]=qi()),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let o=qi();e[i].push(o),n=o;continue}let o=Gi.exec(i);if(o){n=na(t,$i(o[1]));continue}let s=ta(i,`=`);if(s<0)continue;let c=i.slice(0,s).trim(),l=i.slice(s+1).trim(),u=$i(c),d=na(n,u.slice(0,-1)),f=u[u.length-1],p=Ki.find(e=>l.startsWith(e)&&!l.includes(e,3))??``,m={depth:0,inStr:null};if((l.startsWith(`[`)||l.startsWith(`{`))&&!Zi(l,m)){let t=[l],n=e+1;for(;n<r.length;n++){let e=ea(r[n]);if(t.push(e),Zi(e,m))break}e=n,d[f]=Yi(t.join(`
|
|
54
|
+
`))}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
55
|
`:``)+r[n].slice(0,e);break}t+=(t?`
|
|
3
|
-
`:``)+r[n]}e=n,f
|
|
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
|
|
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 B=class extends RegExp{constructor(e,t,n){super(e,n),We.set(this,t)}test(e){return We.get(this)(e)}};function Ge(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 Ke(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 qe(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Ge(e);let n=/^-?\d+$/.test(t[1])&&/^-?\d+$/.test(t[2]),r=n?Number(t[1]):t[1].codePointAt(0),i=n?Number(t[2]):t[2].codePointAt(0),a=Math.abs(Number(t[3])||1)*(r<=i?1:-1),o=[];for(;(a>0?r<=i:r>=i)&&o.length<1e3;)o.push(n?String(r):String.fromCodePoint(r)),r+=a;return o}function V(e){let t=``,n=[],r=e=>{t+=e,n.push({kind:`char`,matcher:RegExp(`^(?:${e})$`,`i`)})};for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length)r(z(e[++i]));else if(a===`*`&&e[i+1]!==`(`){if(e[i+1]===`*`){for(;e[i+1]===`*`;)i++;e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else 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=Ke(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=qe(e.slice(i+1,a)).map(V);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=Ke(e,i+1,`(`,`)`);if(o===-1)r(z(a));else{let r=Ge(e.slice(i+2,o)).map(V),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 Je(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);let t=new Set(n.alternatives.flatMap(e=>[...i(e,a)]));for(let n of t)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 Ye(e){if(e instanceof RegExp)return/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e;let t=/^(!?)\/(.*)\/(i?)$/.exec(e);if(t)try{let n=new RegExp(t[2],t[3]);return t[1]?new B(e,e=>!n.test(e)):n}catch{}let n=0;for(;e[n]===`!`&&e[n+1]!==`(`;)n++;let r=n%2==1,{source:i,tokens:a}=V(e.slice(n)),o=RegExp(`^${i}$`,`i`),s=e=>Je(a,e);return r?new B(e,e=>!s(e)):new B(o.source,s,o.flags)}async function Xe(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 Ze(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 Qe(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function H(e,t,n){let r=e.get(t);if(r!==void 0||e.has(t))return r;let i=n();return e.set(t,i),i}function $e(e){let t=new Map;return n=>H(t,n,()=>e(n))}const et=`0|[1-9]\\d*`,tt=/^(?:0|[1-9]\d*)$/,nt=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,rt=RegExp(`^v?(${et})\\.(${et})\\.(${et})(?:-((?:${nt})(?:\\.(?:${nt}))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$`),it=new Map;function U(e){return typeof e==`string`?H(it,e,()=>{let t=rt.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 at(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 ot(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function st(e,t){let n=ot(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=at(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function ct(e){return U(e)?.version??null}function W(e){return U(e)}const lt=new Map,ut=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function dt(e){return typeof e==`string`?H(lt,e,()=>{let t=ut.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function ft(e,t){let n=U(e),r=U(t);return!n||!r?null:pt(n,r)}function pt(e,t){if(e.version===t.version)return null;let n=st(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(ot(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 mt(e,t){let n=U(e),r=U(t);return n&&r?st(n,r):null}function ht(e,t){return(mt(e,t)??-1)>0}function gt(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||!tt.test(e))return null;let t=Number(e);if(!Number.isSafeInteger(t))return null;r.push(t)}for(;r.length<3;)r.push(null);return(t[2]||t[3])&&r.some(e=>e===null)||(t[2]||t[3])&&!U(`${r.join(`.`)}${t[2]??``}${t[3]??``}`)?null:{major:r[0],minor:r[1],patch:r[2],suffix:`${t[2]??``}${t[3]??``}`}}function G(e,t,n,r,i=``){let a=U(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function K(...e){let t=e.filter(e=>e!==null);return t.length===e.length?t:null}function _t(e,t){let n=st(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return!1}}function q(e,t,n){return G(`<`,e,t,n,`-0`)}function vt(e,t){if(e.major===null)return e.minor!==null||e.patch!==null?null:t===`>`||t===`<`?K(q(0,0,0)):[];let n=e.major,r=e.minor??0,i=e.patch??0;if(t===`^`||t===`~`){let a=G(`>=`,n,r,i,e.suffix);return e.minor===null?K(a,q(n+1,0,0)):t===`~`?K(a,q(n,r+1,0)):n===0?e.patch!==null&&r===0?K(a,q(0,0,i+1)):K(a,q(0,r+1,0)):K(a,q(n+1,0,0))}return e.minor!==null&&e.patch!==null?K(G(t||`=`,n,r,i,e.suffix)):!t||t===`=`?e.minor===null?K(G(`>=`,n,0,0),q(n+1,0,0)):K(G(`>=`,n,r,0),q(n,r+1,0)):t===`>`?e.minor===null?K(G(`>=`,n+1,0,0)):K(G(`>=`,n,r+1,0)):t===`<=`?e.minor===null?K(q(n+1,0,0)):K(q(n,r+1,0)):t===`<`?e.minor===null?K(q(n,0,0)):K(q(n,r,0)):K(G(`>=`,n,r,0))}function yt(e,t){let n=gt(e),r=gt(t);if(!n||!r)return null;let i=[];if(n.major!==null){let e=G(`>=`,n.major,n.minor??0,n.patch??0,n.suffix);if(!e)return null;i.push(e)}if(r.major===null)return i;let a=r.minor===null?q(r.major+1,0,0):r.patch===null?q(r.major,r.minor+1,0):G(`<=`,r.major,r.minor,r.patch,r.suffix);return a?(i.push(a),i):null}function bt(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return yt(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[2]),i=n?vt(n,t?.[1]??``):null;if(!i)return null;r.push(...i)}return r}const xt=new Map;function St(e){return H(xt,e,()=>{let t=e.split(`||`).map(e=>bt(e.trim()));return t.some(e=>e===null)?null:t})}function Ct(e,t){return t.some(t=>!_t(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 J(e,t){let n=U(e);return n?!!St(t)?.some(e=>Ct(n,e)):!1}function Y(e){return typeof e==`string`&&St(e)?e:null}const wt=`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]+)*))?`,Tt=RegExp(`^${wt}$`,`i`),Et=RegExp(wt,`i`),Dt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},Ot=new Map;function X(e){return typeof e==`string`?H(Ot,e,()=>{let t=Tt.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?[Dt[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 kt(e){return X(e)??X(Et.exec(e)?.[0]??``)}const At=e=>!!(e.pre||e.dev);function jt(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 Mt(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?jt(e.local,t.local):a<o?-1:1}function Nt(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 Pt(e,t){let n=Mt(e,t);if(n===0)return null;let r=Nt(e,t);return At(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Ft=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,It={parse:W,parseRange:e=>W(Ft.exec(e)?.[0]??``)??W(dt(e)?.version??``),compare:st,diff:pt,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:(e,t)=>J(e.version,t)},Lt=new Map;function Rt(e){return H(Lt,e,()=>{let t=e.trim().replace(/^v/i,``);return(W(t)??W(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?W(dt(t)?.version??``):null)})}const zt={...It,parse:Rt,parseRange:Rt,isRangePrerelease:e=>!!Rt(e)?.prerelease.length},Bt={parse:X,parseRange:kt,compare:Mt,diff:Pt,isPrerelease:At,isRangePrerelease:e=>{let t=kt(e);return!!(t&&At(t))},satisfiesRange:({release:e},t)=>J(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Vt=[[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`]],Ht={"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 Ut(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function Wt(e,{now:t,noAffix:n=!1,times:r=Vt,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ht,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():Ut(t))-Ut(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 Gt(e){return new Promise((t,n)=>{s(e,`utf8`,(e,r)=>e?n(e):t(r))})}const Kt=_(r===`win32`?t.LOCALAPPDATA||_(k(),`AppData`,`Local`):t.XDG_CACHE_HOME||_(k(),`.cache`),`updates`),qt=new Map;function Jt(e){return ce(`sha256`).update(e).digest(`hex`)}const Yt=6048e5;async function Xt(e,t=Kt){try{let n=_(t,`${Jt(e)}.cache`);if(Date.now()-(await ie(n)).mtimeMs>Yt)return await E(n),null;let r=await Gt(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 Zt=new Set;let Qt=0;function $t(e,t,r,i=Kt){let a=(async()=>{try{let e=qt.get(i);e||(e=C(i,{recursive:!0}),qt.set(i,e)),await e}catch{qt.delete(i);return}let a;try{let o=_(i,`${Jt(e)}.cache`);a=`${o}.${n}-${Qt++}.tmp`,await oe(a,`${t}\n${r}`),await re(a,o)}catch{a&&await R(E(a))}})();Zt.add(a),(async()=>{await a,Zt.delete(a)})()}async function en(e=Kt){for(;Zt.size;)await Promise.all(Zt);try{let t=(await ne(e)).filter(e=>e.endsWith(`.cache`)),n=(await Promise.all(t.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),r=n.filter(e=>Date.now()-e.mtime<=Yt);await Promise.all([...n.filter(e=>Date.now()-e.mtime>Yt),...r.slice(4096)].map(e=>R(E(e.path))))}catch{}}var tn=`18.0.5`;function nn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const rn=tn,an=`https://api.github.com`,on={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:an,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,sn=e=>e.endsWith(`/`)?e.slice(0,-1):e;function cn(e,t){return{headers:{"user-agent":`updates/${rn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const ln=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function un(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&ln.has(t)}async function dn(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=un(t),n}}async function fn(e,t,n={}){let r=xn(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 pn=e=>t=>JSON.stringify(e(JSON.parse(t))),mn=new WeakMap;function hn(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()).sort(),n.body??null,r?.toString()]),s=H(mn,t,()=>new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await Xt(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await fn(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&&$t(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function gn(e,t,n={},r,i=e){return hn(e,t,n,r,i,!1)}function _n(e,t,n={},r){return hn(e,t,n,r,e,!0)}async function Q(e,t,n,r,i=!0){let a=H(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 vn=new se,yn=e=>Math.max(e.concurrency||50,1),bn=new WeakMap;function xn(e){let t=bn.get(e);if(!t){let n=yn(e),r=0,i=0,a=[];t=async e=>{if(vn.getStore())return e();r<n?r++:await new Promise(e=>{a.push(e)});try{return await vn.run(!0,e)}finally{i<a.length?(a[i++](),i===a.length&&(a=[],i=0)):r--}},bn.set(e,t)}return t}function Sn(e,t=It){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const Cn=new WeakMap,wn=new WeakMap;function Tn(e,t,n,r,i=It){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?Cn:wn;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 En(e){return dt(e)?.version??``}function Dn(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=It}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=Tn(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&&!nn(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 On(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function kn(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?Bt:It,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[En(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=En(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=Tn(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=En(e),o=f.parse(e),c=On(e);if(!a||!c&&r(o))return!1;let d=ft(m,e)??ft(t,a),p=c?d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!nn(i,l,u)?!1:!s||J(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return Dn(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 An(e){try{return new URL(e).host}catch{return``}}function jn(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 Mn;function Nn(){return Mn||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),Mn}const Pn=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];let Fn;function In(){let e=Array.from(new Set(Pn.map(e=>t[e]).filter(e=>!!e)));return e.length?Promise.resolve(e):Fn??=(async()=>{try{let{stdout:e}=await(await Nn())(`gh`,[`auth`,`token`],{encoding:`utf8`,timeout:5e3}),t=e.trim();return t?[t]:[]}catch{return[]}})()}const Ln=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function Rn(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=Ln.exec(n);if(!e)continue;let r=An(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 zn;function Bn(){return zn??=(async()=>{try{let{stdout:e}=await(await Nn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return Rn(e)}catch{return new Map}})()}const Vn=new Map;async function Hn(e,t){if(!e)return[];let n=jn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===An(t),[a,o]=await Promise.all([i?In():[],Bn()]),s=o.get(r);return Array.from(new Set(s?[...a,s]:a))}var Un=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 Wn(e){if(e.status!==403&&e.status!==429)return null;let t=Number(e.headers?.get?.(`x-ratelimit-reset`))||0;if(e.headers?.get?.(`x-ratelimit-remaining`)===`0`||e.headers?.get?.(`retry-after`))return t;try{let{message:n}=await(typeof e.clone==`function`?e.clone():e).json();if(typeof n!=`string`)return null;if(n.includes(`rate limit exceeded`)||n.includes(`abuse detection mechanism`)||n.startsWith(`You have exceeded a secondary rate limit`))return t}catch{}return null}async function Gn(e,t,n,r){if(e.status>=500)throw new Un(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await Wn(e);if(i===null)return e;throw new Un(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS`}${i?`, resets at ${new Date(i*1e3).toISOString()}`:``}`,{status:e.status,reset:i})}async function Kn(e,t,n){let r=An(e),i=await Hn(r,t.forgeApiUrl),a=async a=>{let o=cn(`Bearer`,a);return o.headers={...o.headers,...n},Gn(await fn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=Vn.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 Vn.set(r,t),n;t===e&&Vn.delete(r)}return await a()}catch(e){throw e instanceof Un?e:new Un(`network`,r,e?.message??String(e),{cause:e})}}function qn(e,t){let n=Z(t);if(!ct(n))return null;let r=``,i=``;for(let t of e){let e=Z(t);ct(e)&&(!r||ht(e,i))&&(r=t,i=e)}return r&&ht(i,n)?r:null}function Jn(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const Yn=RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),Xn=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function Zn(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function Qn(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function $n(e){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 er=(e,t)=>{if(!t)return $n(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}})},tr=new WeakMap;function nr(e,t,n,r){let i=`${n}${e}`;return Q(tr,t,i,async()=>{let n=t.noCache?null:await Xt(e),a=await Kn(e,t,n?{"if-none-match":n.etag}:void 0);if(a?.status===304&&n)return n.body;if(!a?.ok)return tr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&$t(e,s,o),o})}function rr(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 ir(e,t,n,r){let i=await nr(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 ar(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 or(e,t,n,r,i){let a=await ir(e(1),t,n,r);if(!a)return;let o=ar(a.link),s=yn(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)=>ir(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function sr(e,t,n){let r=new Map;return await or(n=>`${an}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,rr,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function cr(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await or(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,er,e=>{for(let t of e){for(let e of o)(e===t.name||t.commitSha.startsWith(e))&&o.delete(e);a.push(t)}return s&&!o.size}),a}async function lr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return cr(e,t,n,r,i);let[o,s]=await Promise.allSettled([cr(e,t,n,r,i),sr(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof Un))throw s.reason;if(s.status===`fulfilled`)for(let e of o.value)s.value.has(e.name)&&(e.isStable=s.value.get(e.name));return o.value}function ur(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}const dr=2e7;function fr(e,t){let n=Z(e).split(`.`),r=Z(t).split(`.`);return n.length<r.length?!1:Number(n[0])<dr||Number(r[0])>=dr}function pr(e,t,n=``){let r=Z(e),i=Z(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 mr(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const hr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function gr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of hr)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=Jn(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${mr(a)}/${e.directory}`)),a||t||``)}const _r={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 vr(e){let t;for(let n of e.matchAll(/(\d+(?:\.\d+)?)\s*([a-z]+)/gi)){let e=_r[n[2].toLowerCase()];if(e===void 0)return;t=(t??0)+Number(n[1])*e}return t}const yr={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}{/,}**`}},br=new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function xr(e){let t={Package:[],Dep:[]};for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(yr,n)?yr[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||br.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(`!`)?a:t,i=n===a?e.slice(1):e;n.push(Sr(i)??i),n===t&&!/[*?[\]{}!()|+]/.test(i)&&!Sr(i)&&r.push(i)}t.length&&(n[`match${e}Names`]=t),a.length&&(n[`exclude${e}Names`]=a)}return{matchers:n,literals:r}}function Sr(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Cr=new Map,wr=e=>H(Cr,e,()=>Ye(e)),Tr=(e,t,n)=>(!t?.length||t.some(t=>wr(t).test(e)))&&(!n?.length||n.every(t=>!wr(t).test(e)));function Er(e,t,n){return Tr(t,e.matchPackageNames,e.excludePackageNames)&&Tr(n,e.matchDepNames,e.excludeDepNames)}const Dr=new WeakMap;var Or=class extends RegExp{constructor(e,t){super(e),Dr.set(this,t)}testNames(e,t){return Dr.get(this)(e,t)}test(e){return this.testNames(e,e)}};function kr(e,t,n,r){return e instanceof Or?e.testNames(n,r):e.test(t)}function Ar(e,t){let n=[],r={},i=new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=xr(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=vr(r.minimumReleaseAge);e!==void 0&&(c.cooldownDays=e)}if(typeof r.allowedVersions==`string`){let e=Y(r.allowedVersions);if(!e&&!Sr(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&&Er(t,e,e))?.allowedVersions;t&&Y(t)&&(r[e]=t)}let o;return n.some(e=>!e.enabled)&&(o=new Or(`renovate-package-rules`,(e,t)=>{let r=!0;for(let i of n)Er(i.matchers,e,t)&&(r=i.enabled);return!r})),{disabled:o,pin:r,versionRules:a}}function jr(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=vr(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 Or(`^${z(e)}$`,(t,n)=>n===e)):[],{disabled:i,pin:a,versionRules:o}=Ar(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}function Mr(e){return!!(e&&typeof e==`object`&&(Object.hasOwn(e,`extends`)||Object.values(e).some(Mr)))}async function Nr(e,t={}){let n=await Xe(e,async e=>{let t=_(e,`renovate.json`),n;try{n=await w(t,`utf8`)}catch{return null}let r;try{r=JSON.parse(n)}catch(e){throw Error(`Unable to parse renovate config ${t}: ${e.message}`)}return r&&typeof r==`object`?{parsed:r,path:t}:null});if(!n)return{};if(Mr(n.parsed))throw Error(`Renovate extends is unsupported in ${n.path}`);return jr(n.parsed,t)}const Pr=Symbol(`cliBaseConfig`),Fr={"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 Ir(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 Lr(e){for(let[t,{short:n}]of Object.entries(Fr))if(t===e||n===e)return t;return``}function Rr(e){return new Set(e.map(Ye))}function zr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(I):[]}function Br(e){for(let[t,n]of Object.entries(e??{}))if(!Y(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function Vr(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 Br(t),t}function Hr(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:Rr(e)}const Ur=$e(e=>Xe(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??e}`)}try{return(await import(x(r).href)).default??{}}catch(e){throw Error(`Unable to parse config file ${n}: ${e?.message??e}`)}}return null}));async function Wr(e){let t=await Ur(e)??{},n=await Nr(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??[]]),Br(r.pin),r}function Gr(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 Kr(e){try{return Gr(c(e,`utf-8`))}catch{return}}function qr(e,t){return Ze(t,t=>{let n=_(t,e);try{if(d(n).isFile())return n}catch{}return null})??void 0}function Jr(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 Yr(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=Kr(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(qr(`.${n}rc`,a));let d=Jr(`${n}_`);return d.config&&u(d.config),Object.assign({},...c,d,l.length?{configs:l,config:l[l.length-1]}:void 0)}function Xr(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const Zr=new WeakMap;function Qr(e,t){let n=H(Zr,e,()=>{let t=new Map;for(let[n,r]of Object.entries(e)){let[e,...i]=n.split(`\0`),a=e.indexOf(`|`);Qe(t,a===-1?`.`:e.slice(a+1),[[Xr(e),...i].join(`\0`),r])}return t});return Object.fromEntries(n.get(t)??[])}const $r=/[*?{[]/;function ei(e,t){return o(e,{cwd:t,withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>y(e.parentPath,e.name))}async function ti(e,t,n,r=32){let i=await T(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>ei(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=$r.test(n)?ei(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 ni=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#][^:#]*?))\s*:(?:\s+(.*))?$/,ri=/\s#/;function ii(e){let t=ni.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.search(ri),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 ai(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 oi(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(/\s#/);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function si(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return null;let n=[];for(let r of ai(e)??[]){if(r.colon===-1)return null;let e=oi(r.text.slice(0,r.colon)),i=oi(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 ci(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=ii(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 si(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 li(e,t){let n=Ze(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 ui=new Map;function di(e,t){let n=ui.get(t);n||(n=ci(li(`pnpm-workspace.yaml`,t)??``),ui.set(t,n));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*fi(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
|
|
7
|
-
`).entries()){let e=ii(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 si(c,l)??[])yield{type:`catalog`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex};else if(s===`catalogs`)for(let e of si(c,l)??[])for(let t of si(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 si(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 pi(e,t){let n=e.split(`
|
|
8
|
-
|
|
9
|
-
`):e}function mi(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=ii(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of ai(e.value)??[]){let e=oi(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=oi(e.slice(1));n&&t.push(n.value)}}return t}const hi=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,gi=new Set([`resolutions`,`overrides`]);function _i(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const vi=on.registry,yi=new Map,bi=new Map,xi=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function Si(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:xi(a),type:`Bearer`};let o=i(`username`),s=i(`_password`);if(o&&s){let e=Buffer.from(xi(s),`base64`).toString(`utf8`);return{token:Buffer.from(`${o}:${e}`).toString(`base64`),type:`Basic`}}let c=i(`_auth`);if(c)return{token:xi(c),type:`Basic`};n.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname}if(e===vi&&t._auth)return{token:xi(t._auth),type:`Basic`}}function Ci(e,t,n,r){let i=H(yi,r??``,()=>Yr(`npm`,{registry:vi},r)),a=sn(typeof n.registry==`string`&&n.registry||t.registry||i.registry||vi),o=e.startsWith(`@`)?e.split(`/`)[0]:``,s=r?di(e,r):null,c=o&&r?di(``,r):null;return H(bi,`${r??``}${o}:${a}:${s??``}:${c??``}`,()=>{let e=s?sn(s):a,t=s===c&&o&&i[`${o}:registry`];if(t)try{let n=sn(t);n!==e&&(e=n)}catch{}return{auth:Si(e,i),registry:e}})}const wi=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},Ti=new WeakMap,Ei=new WeakMap,Di=new WeakMap,Oi=new WeakMap,ki=(e,t)=>`${e}\0v2${t?`-dates`:``}`;function Ai(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 ji(e,t,n,r,i,a,o=``){let s=gi.has(t)?_i(e):t===`packageManager`&&e===`yarn`&&(W(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Ci(s,n,r,a),u=wi(l,s),d=ki(u,!!r.needsDates);return[await Q(Ti,i,d,async()=>{let t=cn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await gn(u,i,t,pn(Ai),d);return`body`in n||ur(n.res,u,e,l),JSON.parse(n.body)}),l]}async function Mi(e,t,n,r,i,a){let{auth:o,registry:s}=Ci(e,n,r,a),c=wi(s,e,t);return Q(Ei,i,c,async()=>{try{let n=cn(o?.type,o?.token),a=await _n(c,i,n,pn(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=wi(s,e);return!u&&r.needsDates&&(u=(await Ti.get(i)?.get(ki(f,!0)))?.time?.[t]||``),u||=(await R(Q(Di,i,f,async()=>{let e=await fn(i,f,n);return e?.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function Ni(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Pi(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Fi(e){return e.startsWith(`catalog:`)}const Ii=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function Li(e){let t=Ii.exec(e);return t&&Y(t[2])?{name:t[1],range:t[2]}:null}const Ri=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,zi=/^@([^/]+)\/(.+)$/;function Bi(e,t){let n=Ri.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=zi.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function Vi(e,t){if(!zi.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Q(Oi,t,n,async()=>{let r=await gn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},pn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||ur(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function Hi(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(JSON.stringify(a?JSON.parse(a):[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 Ui=String.raw`[<>]=?|~>|[\^~=]`,Wi=new RegExp(String.raw`^(${Ui})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),Gi=RegExp(`^(?:${Ui})$`),Ki=/^[xX*]$/,qi=/\+[0-9A-Za-z.-]+/g,Ji=/\|\||[\dxX*]\s+\S/;function Yi(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&Gi.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function Xi(e,t){let n=Wi.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}=W(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;let l=t.split(`-`)[0].split(`.`);return l.join(`.`)===t?`${r}${i}${a}${c.map((e,t)=>Ki.test(e)?e:l[t]??`0`).join(`.`)}`:`${r}${i}${a}${t}`}function Zi(e,t){if(J(t,e))return e;let n=Yi(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=Xi(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=Xi(r,t),n.join(` `)}function Qi(e,t,n,r){let i=(n||e).replace(qi,``),a=r===`peerDependencies`||Ji.test(i)?Zi(i,t):Xi(i,t);return J(t,a)?a:i}function $i(e){if(/[xX*]/.test(e))return e;let t=e.match(hi);return t?.length===1?e.replace(hi,En(t[0])):e}async function ea(e,t,n){let r=await nr(`${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 ta(e,t,n,r){return(await cr(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function na(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:`)&&Y(r.slice(7))?r.slice(7):null;return!a&&!Xn.test(r)&&!ct(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function ra(e,t,n){let r=na(t.old);if(!r)return null;let{user:i,repo:a,ref:o,selector:s}=r,c=e=>{let n=t.old.lastIndexOf(o);return`${t.old.slice(0,n)}${e}${t.old.slice(n+o.length)}`};if(Xn.test(o)){let{hash:t,commit:r}=await ea(i,a,n);if(!t)return null;let s=Qn(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=qn(await ta(i,a,o,n),s?En(s):o);if(t){let n=s?Qi(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 ia=/[-_.]+/g,aa=new WeakMap;function oa(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 sa(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(ia,`-`)}/json`;return[{...await Q(aa,t,n,async()=>{let r=await gn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},pn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:oa(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:oa(e.releases)}}ur(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function ca(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=X(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=X(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Mt(e.local?{...e,local:null}:e,r),a=r.local?Mt(e,r):i;if(t===`==`)return a===0;if(t===`!=`)return a!==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: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 la(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 ua(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 da(e,t){let n=X(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(X(r))return ca(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=>ca(n,e))}function fa(e,t,n){let r=Te(e),i=r?.specifiers,a=X(t),o=X(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?la(o):la(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:la(o);else if(!ca(o,e)){let t=X(e.version);e.op===`<`&&t?e.version=ua(t,a,o):e.op===`<=`&&(e.version=la(o))}if(!ca(o,e))return null}return F(r,i)}function pa(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 ma(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 ha(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===`
|
|
10
|
-
`&&(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 ga(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=pa(o[1]);else{let o=ma(a),s=o===-1?``:[...r,...pa(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=ha(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function _a(e,t){let n=new Map;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`);H(n,t,()=>new Map).set(i,r)}let r=ga(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=Array.from(r.keys()).sort((e,t)=>t.length-e.length).map(z).join(`|`),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}${fa(n,o||a,s)??n}`});i=`${i.slice(0,t[0])}${o}${i.slice(t[1])}`}return i}function va(e){let t=e.includes(`:/`)||e.startsWith(`/`);return sn(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function ya(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 ba(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:va(e),fallback:r})}return t}function xa(e){if(typeof e==`string`)return[{url:sn(e),fallback:`,`}];let n=ba(t.GOPROXY||`${on.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Sa(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Ca=new Map;function wa(e){return H(Ca,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 Ta(e,t){return t.some(t=>wa(t).test(e))}function Ea(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Da=/\/v(\d+)$/,Oa=/^gopkg\.in\/.*?\.v(\d+)$/;function ka(e){let t=Oa.exec(e)??Da.exec(e);return t?Number.parseInt(t[1]):1}function Aa(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Da,``);return t<=1?n:`${n}/v${t}`}function ja(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(Z(t).split(`.`)[0]);return Number.isNaN(n)||n===ka(e)?e:Aa(e,n)}const Ma=/^(require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,Na=/^(\S+)\s+(v\S+)/,Pa=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Fa=e=>e.replace(/^"(.*)"$/,`$1`);function Ia(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function La(e){let t=Pa.exec(e);if(!t)return null;let[,n,r,i,a]=t;return{origModule:Fa(n),origVersion:r??``,targetModule:Fa(i),targetVersion:a??``}}function*Ra(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=Ma.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function za(e){return e.startsWith(`golang.org/x/`)}async function Ba(e,t,n){let r=t,i=t&&!Sn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Sn(e.Version)||(i=e)}return i??r}function Va(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 Ha(e){let t={},n={},r={},i={},a={},o=new Set,s=[];for(let i of Ra(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(Fa(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=Na.exec(i.value);e&&(a[Fa(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=La(i.value);e&&(e.targetVersion&&!Ia(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=Na.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[Fa(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 Ua=new WeakMap;function Wa(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=H(Ua,n,()=>new Map);for(let t of i?[_(e,i,`go.mod`),_(e,`go.mod`)]:[_(e,`go.mod`)]){let e=y(t),n=H(a,e,()=>{try{return new Map(Object.entries(Ha(c(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return new Map}async function Ga(e,n,r,i,a){let o=ka(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(`
|
|
11
|
-
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}
|
|
12
|
-
`),$a(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),za(e)?null:l(Aa(e,o+1))]);return Va(e,n,await Ba(o,d,t=>l(Aa(e,t))),u)}const Ka={"accept-encoding":`gzip, deflate, br`},qa=e=>e===404||e===410;async function Ja(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 Ya=async(e,t,n)=>{let r=`${t}/${Ea(n)}/@latest`,i=await e(r);if(i.ok)return Ja(i,r,n);if(qa(i.status))return null;ur(i,r,n,t)},Xa=new WeakMap;function Za(e,t,n,r,i){return Q(Xa,e,`latest${t}${r}/${i}`,()=>Ya(n,r,i))}function Qa(e,t=0,n=new Set){let r=null;for(let i of e.split(`
|
|
13
|
-
`)){let[e,a]=i.trim().split(/\s+/);if(!(!e||!ct(e)||n.has(e))&&!(t&&Number.parseInt(Z(e))!==t)){if(r){let t=Sn(e);if(t===Sn(r.Version)?!ht(e,r.Version):t)continue}r={Version:e,Time:a??``}}}return r}function $a(e){return Da.test(e)||Oa.test(e)?ka(e):0}async function eo(e,t,n,r=new Set){let i=Ea(n),a=`${t}/${i}/@v/list`,o=await e(a);if(!o.ok){if(qa(o.status))return null;ur(o,a,n,t)}let s=Qa(await o.text(),$a(n),r);if(!s)return null;if(s.Time)return{...s,path:n};let c=`${t}/${i}/@v/${Ea(s.Version)}.info`;try{let t=await e(c);if(t.ok)return Ja(t,c,n)}catch{}return{...s,path:n}}function to(e,t,n,r,i,a=new Set){let o=`list${t}${r}/${i}${Array.from(a).sort().join(`\0`)}`;return Q(Xa,e,o,()=>eo(n,r,i,a))}async function no(e,t,n,r,i){let a=ka(t),o=e=>fn(r,e,{headers:Ka}),s=e=>r.doFetch(e,{signal:AbortSignal.timeout(r.goProbeTimeout),headers:Ka}),c=Za(r,`primary`,o,e,t),l=(async()=>{let n=await c;return n&&!i.get(t)?.has(n.Version)?n:to(r,`primary`,o,e,t,i.get(t))})(),u=async t=>{try{let[n,a]=await Promise.all([Za(r,`probe`,s,e,t),c]),o=i.get(t);return n&&!o?.has(n.Version)?n:!n&&a?null:to(r,`probe`,s,e,t,o)}catch{return null}},[d,f]=await Promise.all([l,za(t)?null:u(Aa(t,a+1))]);return d?Va(t,n,await Ba(a,f,e=>u(Aa(t,e))),d):null}async function ro(e,t,n,r,i,a){let o=Wa(r,t,i);if(Ta(e,a))return Ga(e,n,r,i,o);let s=await ya(i.goProxyChain,async t=>{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);return t===`direct`?Ga(e,n,r,i,o):no(t,e,n,i,o)});if(s)return s;throw Error(`Unable to find ${e} on any GOPROXY entry`)}const io=e=>`("?)${z(e)}\\2`;function ao(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 Ra(a))if(e.kind===`require`){let t=Na.exec(e.value);t&&Qe(s,Fa(t[1]),e.lineNumber)}else if(e.kind===`replace`){let t=La(e.value);t&&Qe(c,t.targetModule,{...t,lineNumber:e.lineNumber})}else if(e.kind===`tool`){let t=Fa(e.value.split(/\s/,1)[0]);for(;t;){Qe(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=ja(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+)${io(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+)?)${io(d)}(?=\\s+=>)`),`$1$2${p}$2`),e=!0)}e&&o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${io(d)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&(n[d]=p);continue}o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${io(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 oo=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function so(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(oo)){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 co(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=so(a,t);o!==a&&n(i,o)}}function lo(e){let t=[],n={};for(let r of Ra(e.split(/\r?\n/)))if(r.kind===`use`)t.push(r.value.split(/\s/,1)[0]);else if(r.kind===`replace`){let e=La(r.value);e?.targetVersion&&!Ia(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function uo(e,t){try{let n=u(y(e));return u(_(n,t,`go.mod`))}catch{return null}}function fo(e){let t=`https://${po(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${mr(t)}/${a.join(`/`)}`,n.href}return t}function po(e){return Da.test(e)?h(e):e}function mo(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function ho(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:Yn.test(o)}}function go(e,t){return e?e===`github.com`?an:`https://${e}/api/v1`:t}async function _o(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await Xt(a);if(e)return e.body}try{let e=await Kn(a,i);if(e.status===404)return``;if(!e.ok)return;let t=Qn(await e.json());return t&&!i.noCache&&$t(a,`immutable`,t),t}catch(e){if(e instanceof Un)throw e;return}}function vo(e,t){return pr(W(Z(e))?.version??Z(e),t)}const yo=/^(\s*)(?:-\s*)?(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/,bo=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function xo(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?bo.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 So=/^https?:\/\//;function Co(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
|
|
14
|
-
`).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=yo.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[0]?.key===`jobs`&&r.length===3&&r[2].key===`steps`||r[0]?.key===`runs`&&r.length===2&&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=xo(e);if(!l)return e;let{prefix:u,quote:d,value:f,gap:p,comment:m,pinnedVersion:h,pinnedEnd:g}=l,_=So.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(`
|
|
15
|
-
`)}const wo=RegExp(`(?:^|/)(?:${Ue(Ae)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function To(e){return wo.test(e.replace(/\\/g,`/`))}function Eo(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 Do=/^(v?\d+(?:\.\d+)*)([a-z][a-z0-9]*)?(-.+)?$/i,Oo=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,ko=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,Ao=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,jo=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,Mo=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function No(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*Po(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=Mo(i[0]),a=Ao.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:No(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=jo.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:No(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const Fo=/^(?:(?:index|registry-1)\.)?docker\.io$/;function Io(e){let t=e.split(`/`);return t.length>1&&Fo.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 Lo(e){let{registry:t,namespace:n,repo:r}=Io(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 Ro(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&&(!s||!Do.test(s)))return null;let{registry:c,namespace:l,repo:u}=Io(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function zo(e){let t=Do.exec(e);return t?{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}:null}function Bo(e,t,n=``){let r=zo(t);return r?pr(e,r.version,`${n}${r.suffix}`):t}function Vo(e,t){let n=[];if(t===Oo){for(let{from:t,resolved:r}of Po(e,!0)){let e=Ro(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===ko?Ho(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=Ro(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function Ho(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 Uo=new WeakMap,Wo=new Set([401,403,404]);function Go(e,t,n){return Q(Uo,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 gn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},pn(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):(Wo.has(i.res?.status)||ur(i.res,r,`${e}/${t}`,n.dockerApiUrl),null)},s=e=>{for(let t of e?.results??[])r.dates[t.name]=t.tag_last_pushed||t.last_updated||``,typeof t.digest==`string`&&r.digests.set(t.name,t.digest)},c=await o(a(1));if(!c)return r;s(c);let l=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:yn(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;for(;d<=20&&u.next;d++){let e=new URL(u.next,i);f??=new URL(i).origin;let 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 Ko(e,t,n){return(await Go(e,t,n)).dates}async function qo(e,t,n,r){let i=(await Go(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await gn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},pn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return Wo.has(o.res?.status)||ur(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const Jo=/^\d?[02468]\.04$/;function Yo(e,t){if(!Jo.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const Xo={ubuntu:Yo};function Zo(e,t,n=Date.now()){let r=Xo[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=zo(e)?.version;return!t||r(t,n)})):t}async function Qo(e,t){let{registry:n,namespace:r,repo:i}=Io(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:Zo(i,await Ko(r,i,t)),name:e},null]}const $o=(e,t)=>t?`${e}-${t}`:e;function es(e){let t=Z(e).split(`.`).slice(0,3);return!t.length||t.some(e=>!/^\d+$/.test(e))?null:[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function ts(e,t){let n=Z(e.version).split(`.`).map(Number),r=Z(t.version).split(`.`).map(Number);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 ns(e,t){let n=Z(e.version).split(`.`).map(Number),r=Z(t.version).split(`.`).map(Number),i=n.findIndex((e,t)=>e!==r[t]);return i===-1?e.prerelease===t.prerelease?null:`patch`:i===0?`major`:i===1?`minor`:`patch`}function rs(e,t,n,r,i,a,o=!1,s=!1){let c=zo(t);if(!c)return null;let l=es(c.version);if(!l)return null;let u=Z(c.version).split(`.`).length,d=$o(l,c.prerelease),{effectiveSemvers:f,skipsPrerelease:p}=Tn(d,o,s,n),m=u>3,h=W(d),g=c,_=``,v=``;for(let[t,l]of Object.entries(e)){let e=zo(t);if(!e||e.suffix!==c.suffix||Z(e.version).split(`.`).length!==u||!fr(e.version,c.version)||!nn(l,r,i))continue;if(m){if(e.prerelease&&(!o&&!c.prerelease||s)||ts(e,g)<=0)continue;let r=ns(c,e);if(!r||!n.has(r))continue;g=e,_=t,v=l;continue}let d=es(e.version);if(!d)continue;let y=W($o(d,e.prerelease));if(!y||e.prerelease&&p(y)||a&&!J(d,a))continue;if(y.version===h.version){_&&Date.parse(l)>Date.parse(v)&&(_=t,v=l);continue}let b=It.diff(h,y);!b||!f.has(b)||It.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=Bo(y,t,b),S=x in e?x:_;return S===t?null:{newTag:S,date:v}}const is=`(?![\\w.@+-])`;function as(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 os(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})${is}`,`g`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function ss(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=as(t),i=Ue(r.keys()),a=r.size?e.replace(RegExp(`(FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${is}`,`gi`),(e,t,n)=>`${t}${r.get(n)??n}`):e,o=new Map;for(let{instruction:e,args:t,from:n,resolved:i}of Po(a)){let a=r.get(i);if(!a)continue;let s=i.slice(i.lastIndexOf(`@`)+1),c=a.slice(a.lastIndexOf(`@`)+1),l=i.includes(`@`)&&a.includes(`@`)&&s!==c;if(l){let t=e[0].lastIndexOf(s);t!==-1&&o.set(e.index+t,{end:e.index+t+s.length,value:c})}for(let e of n[1].matchAll(/\$(?:\{(\w+)\}|(\w+))/g)){let r=t.get(e[1]||e[2]),i=No(n[1].slice(0,e.index),e=>t.get(e)?.value),u=No(n[1].slice(e.index+e[0].length),e=>t.get(e)?.value);l&&(u=u.replace(s,c)),!(!r||r.start<0||!a.startsWith(i)||!a.endsWith(u))&&o.set(r.start,{end:r.start+r.value.length,value:a.slice(i.length,u?-u.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 cs(e,t){let n=Ho(e);return os(e,as(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function ls(e,t){return os(e,as(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const us=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function ds(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function fs(e){return/^Dockerfile(\..+)?$/.test(e)}function ps(e){return fs(e)||ds(e)}function ms(e){return fs(e)?Oo:ko}function hs(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const gs=[`Makefile`,`makefile`,`GNUmakefile`];function _s(e){return gs.includes(e)||e.endsWith(`.mk`)}const vs=/^\s*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,ys=/^([^@\s]+)@(v\d\S*)$/,bs=/^[^/\s]+\.[^/\s]+\//;function*xs(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=vs.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 Ss(e){let t=[];for(let n of xs(e)){let e=ys.exec(n);if(!e||!bs.test(e[1]))continue;let[,r,i]=e;t.push({installPath:r,version:i})}return t}const Cs=/@(sha256:[0-9a-f]{64})$/;function ws(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function Ts(e){let t=Cs.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=Ro(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function Es(e){return Array.from(xs(e)).flatMap(e=>Ts(e)??[])}const Ds=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,Os=new WeakMap;function ks(e,n,r){return Q(Os,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(`
|
|
16
|
-
`)[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 As(e,t,n,r){return await ya(r,async r=>r===`off`?!1:r===`direct`?ks(e,t,n):await Za(n,`primary`,e=>fn(n,e,{headers:Ka}),r,e)?!0:null)??!1}async function js(e,t,n,r){let i=Ds.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=Ta(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(`/`)),c=-1;for(let e of a){let r=await Promise.allSettled(s.map(r=>As(r,t,n,[e])));c=r.findIndex(e=>e.status===`fulfilled`&&e.value);let i=r.slice(0,c===-1?void 0:c).find(e=>e.status===`rejected`);if(i)throw i.reason;if(c!==-1)break}return c===-1?null:s[c]}function Ms(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,e=>z(e)).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 Ns=new WeakMap;function Ps(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 Fs(e,t){let n=sn(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${Ps(t)}`}function Is(e){return e.split(`
|
|
56
|
+
`:``)+r[n]}e=n,d[f]=Yi(p+t+p)}else d[f]=Yi(l)}return t}function Yi(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of Qi(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(Yi(e))}return t}return e.startsWith(`{`)?Xi(e):e.startsWith(`"""`)?ra(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?ra(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 Xi(e){let t=qi(),n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of Qi(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=Yi(e.slice(n+1).trim())}return t}function Zi(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t.inStr){if(r===`\\`&&t.inStr===`"`){n++;continue}r===t.inStr&&(t.inStr=null)}else if(r===`"`||r===`'`)t.inStr=r;else if(r===`{`||r===`[`)t.depth++;else if((r===`}`||r===`]`)&&(t.depth--,!t.depth))return!0}return!1}function Qi(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 $i(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 ea(e){let t=ta(e,`#`);return t<0?e:e.slice(0,t)}function ta(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 na(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=qi()),e=e[n];return e}function ra(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`
|
|
57
|
+
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const ia=[[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`]],aa={"1 day ago":`yesterday`,"1 week ago":`last week`,"1 month ago":`last month`,"1 year ago":`last year`,"in 1 day":`tomorrow`,"in 1 week":`next week`,"in 1 month":`next month`,"in 1 year":`next year`};function oa(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function sa(e,{now:t,noAffix:n=!1,times:r=ia,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=aa,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():oa(t))-oa(e);if(Number.isNaN(d))return o||String(e);let f=d<0;if(f&&(d=-d),d<i)return a;let p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(d>=t[1])continue;let n=Math.trunc(d/t[0]);p=u?`${n}${t[3]||t[2]}`:`${n} ${l&&t[4]||t[2]}${n>1?`s`:``}`;break}let m=n?p:f?`in ${p}`:`${p} ago`;return s?c[m]??m:m}function ca(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 la(e){try{return ca(b(e,`utf-8`))}catch{return}}function ua(e,t){return We(t,t=>{let n=f(t,e);try{if(C(n).isFile())return n}catch{}return null})??void 0}function da(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 fa(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=la(e);t&&(c.push(t),l.push(e))}o||(u(f(`/etc`,n,`config`)),u(f(`/etc`,`${n}rc`))),s&&(u(f(s,`.config`,n,`config`)),u(f(s,`.config`,n)),u(f(s,`.${n}`,`config`)),u(f(s,`.${n}rc`))),u(ua(`.${n}rc`,a));let d=da(`${n}_`);return d.config&&u(d.config),Object.assign({},...c,d,l.length?{configs:l,config:l[l.length-1]}:void 0)}function pa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const ma=new WeakMap;function ha(e,t){let n=z(ma,e,()=>{let t=new Map;for(let[n,r]of Object.entries(e)){let[e,...i]=n.split(`\0`),a=e.indexOf(`|`);R(t,a===-1?`.`:e.slice(a+1),[[pa(e),...i].join(`\0`),r])}return t});return Object.fromEntries(n.get(t)??[])}const ga=/[*?{[]/;function _a(e,t){return v(e,{cwd:t,exclude:e=>e.name===`node_modules`,withFileTypes:!0}).filter(e=>e.isDirectory()||e.isSymbolicLink()).map(e=>m(e.parentPath,e.name))}async function va(e,t,n,r=32){let i=await E(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>_a(e.slice(1),t)).map(e=>p(t,e).replace(/\\/g,`/`))),o=new Set,s=[];for(let n of e){if(n.startsWith(`!`))continue;let e=ga.test(n)?_a(n,t):[m(f(t,n))];for(let n of e){let e=p(t,n).replace(/\\/g,`/`);a.has(e)||o.has(n)||(o.add(n),s.push({dir:n,memberPath:`./${e}`}))}}return(await N(s,async({dir:e,memberPath:t})=>{try{let r=await E(f(e,n)),a=p(i,r);return a===`..`||a.startsWith(`..${h}`)||d(a)?null:{absPath:r,content:await re(r,`utf8`),memberPath:t}}catch{return null}},{concurrency:r})).filter(e=>e!==null)}const ya=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#][^:#]*?))\s*:(?:\s+(.*))?$/,ba=/\s#/;function xa(e){let t=ya.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.search(ba),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 Sa(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 Ca(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(ba);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function wa(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return null;let n=[];for(let r of Sa(e)??[]){if(r.colon===-1)return null;let e=Ca(r.text.slice(0,r.colon)),i=Ca(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 Ta(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=xa(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 wa(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 Ea(e,t){let n=We(m(t),t=>{try{return{content:b(f(t,e),`utf8`)}}catch(e){if(e.code!==`ENOENT`)throw e}return null});return n?n.content:null}const Da=new Map;function Oa(e,t){let n=z(Da,t,()=>Ta(Ea(`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*ka(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
|
|
58
|
+
`).entries()){let e=xa(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 wa(c,l)??[])yield{type:`catalog`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex};else if(s===`catalogs`)for(let e of wa(c,l)??[])for(let t of wa(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 wa(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 Aa(e,t){let n=e.split(`
|
|
59
|
+
`),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(ka(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(`
|
|
60
|
+
`):e}function ja(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=xa(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of Sa(e.value)??[]){let e=Ca(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=Ca(e.slice(1));n&&t.push(n.value)}}return t}const Ma=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Na=new Set([`resolutions`,`overrides`]);function Pa(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const Fa=Tn.registry,Ia=new Map,La=new Map,Ra=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function za(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:Ra(a),type:`Bearer`};let o=i(`username`),s=i(`_password`);if(o&&s){let e=Buffer.from(Ra(s),`base64`).toString(`utf8`);return{token:Buffer.from(`${o}:${e}`).toString(`base64`),type:`Basic`}}let c=i(`_auth`);if(c)return{token:Ra(c),type:`Basic`};n.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname}if(e===Fa&&t._auth)return{token:Ra(t._auth),type:`Basic`}}function Ba(e,t,n,r){let i=z(Ia,r??``,()=>fa(`npm`,{registry:Fa},r)),a=En((typeof n.registry==`string`?n.registry:``)||t.registry||i.registry||Fa),o=e.startsWith(`@`)?e.split(`/`)[0]:``,s=r?Oa(e,r):null,c=o&&r?Oa(``,r):null;return z(La,`${r??``}${o}:${a}:${s??``}:${c??``}`,()=>{let e=s?En(s):a,t=s===c&&o&&i[`${o}:registry`];if(t)try{let n=En(t);n!==e&&(e=n)}catch{}return{auth:za(e,i),registry:e}})}const Va=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},Ha=new WeakMap,Ua=new WeakMap,Wa=new WeakMap,Ga=new WeakMap,Ka=(e,t)=>`${e}v2${t?`-dates`:``}`;function qa(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 Ja(e,t,n,r,i,a,o=``){let s=Na.has(t)?Pa(e):t===`packageManager`&&e===`yarn`&&(H(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Ba(s,n,r,a),u=Va(l,s),d=Ka(u,!!r.needsDates);return[await Z(Ha,i,d,async()=>{let t=Dn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await Fn(u,i,t,Mn(qa),d);return`body`in n||kr(n.res,u,e,l),JSON.parse(n.body)}),l]}async function Ya(e,t,n,r,i,a){let{auth:o,registry:s}=Ba(e,n,r,a),c=Va(s,e,t);return Z(Ua,i,c,async()=>{try{let n=Dn(o?.type,o?.token),a=await In(c,i,n,Mn(e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})));if(!(`body`in a))return{};let l=JSON.parse(a.body),u=``,d=/(\d{13})/.exec(l?._npmOperationalInternal?.tmp??``);d&&(u=new Date(Number(d[1])).toISOString());let f=Va(s,e);return!u&&r.needsDates&&(u=(await Ha.get(i)?.get(Ka(f,!0)))?.time?.[t]||``),u||=(await Ie(Z(Wa,i,f,async()=>{let e=await jn(i,f,n);return e.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function Xa(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Za(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Qa(e){return e.startsWith(`catalog:`)}const $a=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function eo(e){let t=$a.exec(e);return t&&q(t[2])?{name:t[1],range:t[2]}:null}const to=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,no=/^@([^/]+)\/(.+)$/;function ro(e,t){let n=to.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=no.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function io(e,t){if(!no.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Z(Ga,t,n,async()=>{let r=await Fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||kr(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function ao(e,t){try{JSON.parse(e)}catch{return e}let n=new Map,r=0,i=()=>{for(;/\s/.test(e[r]??``);)r++},a=()=>{let t=r++;for(;r<e.length;)if(e[r]===`\\`)r+=2;else if(e[r++]===`"`)break;return{start:t,end:r,value:JSON.parse(e.slice(t,r))}},o=t=>{if(i(),e[r]===`"`)n.set(JSON.stringify(t),a());else if(e[r]===`{`){for(r++,i();e[r]!==`}`&&r<e.length;){let n=a().value;if(i(),e[r++]!==`:`)return;if(o([...t,n]),i(),e[r]===`,`)r++,i();else break}e[r]===`}`&&r++}else if(e[r]===`[`){r++;let n=0;for(i();e[r]!==`]`&&r<e.length&&(o([...t,n++]),i(),e[r]===`,`);)r++,i();e[r]===`]`&&r++}else for(;r<e.length&&!/[,}\]]/.test(e[r]);)r++};o([]);let s=[];for(let[e,r]of Object.entries(t)){let[t,i,a]=e.split(`\0`),o=r.oldOrig||r.old,c=n.get(a||JSON.stringify([t,i])),l=r.new;c||(c=n.get(JSON.stringify([t])),o=`${i}@${o}`,l=`${i}@${l}`),c?.value===o&&s.push({...c,value:JSON.stringify(l)})}for(let t of s.sort((e,t)=>t.start-e.start))e=`${e.slice(0,t.start)}${t.value}${e.slice(t.end)}`;return e}const oo=String.raw`[<>]=?|~>|[\^~=]`,so=new RegExp(String.raw`^(${oo})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),co=RegExp(`^(?:${oo})$`),lo=/^[xX*]$/,uo=/\+[0-9A-Za-z.-]+/g,fo=/\|\||[\dxX*]\s+\S/;function po(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&co.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function mo(e,t){let n=so.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}=H(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)=>lo.test(e)?e:l[t]??`0`).join(`.`)}`}function ho(e,t){if(K(t,e))return e;let n=po(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=mo(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=mo(r,t),n.join(` `)}function go(e,t,n,r){let i=(n||e).replace(uo,``),a=r===`peerDependencies`||fo.test(i)?ho(i,t):mo(i,t);return K(t,a)?a:i}function Q(e){if(/[xX*]/.test(e))return e;let t=e.match(Ma);return t?.length===1?e.replace(Ma,Gn(t[0])):e}async function _o(e,t,n){let r=await xr(`${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 vo(e,t,n,r){return(await Dr(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function yo(e){let t=e.lastIndexOf(`#`);if(t===e.length-1)return null;let n=e.slice(0,t===-1?e.length:t).replace(/^git\+/i,``),r=t===-1?``:e.slice(t+1);if(/^github:/i.test(n))n=n.slice(7);else if(/^git@github\.com:/i.test(n))n=n.replace(/^git@github\.com:/i,``);else if(/^(?:https?|git|ssh):/i.test(n)){let e=/^(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:](.+)$/i.exec(n);if(!e)return null;n=e[1]}else if(n.includes(`:`))return null;if(!r){let e=/^([^/]+\/[^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i.exec(n);if(!e)return null;n=e[1],r=e[2]}n=n.replace(/\.git$/i,``);let i=n.split(`/`);if(i.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(i[0])||!/^[a-z\d._-]{1,100}$/i.test(i[1]))return null;let a=r.startsWith(`semver:`)&&q(r.slice(7))?r.slice(7):null;return!a&&!hr.test(r)&&!$e(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function bo(e,t,n){let r=yo(t.old);if(!r)return null;let{user:i,repo:a,ref:o,selector:s}=r,c=e=>{let n=t.old.lastIndexOf(o);return`${t.old.slice(0,n)}${e}${t.old.slice(n+o.length)}`};if(hr.test(o)){let{hash:t,commit:r}=await _o(i,a,n);if(!t)return null;let s=_r(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=fr(await vo(i,a,o,n),s?Gn(s):o);if(t){let n=s?go(s,X(t),s):t;if(n!==o)return{key:e,newRange:c(n),user:i,repo:a,oldRef:o,newRef:n}}}return null}const xo=/[-_.]+/g,So=new WeakMap;function Co(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 wo(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(xo,`-`)}/json`;return[{...await Z(So,t,n,async()=>{let r=await Fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:Co(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:Co(e.releases)}}kr(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function To(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=J(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=J(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=wt(e.local?{...e,local:null}:e,r),a=r.local?wt(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 Eo(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 Do(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 Oo(e,t){let n=J(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(J(r))return To(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=j(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>To(n,e))}function ko(e,t,n){let r=j(e),i=r?.specifiers,a=J(t),o=J(n);if(!r||!i||!a||!o)return null;let s=ye(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?Eo(o):Eo(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:Eo(o);else if(!To(o,e)){let t=J(e.version);if(e.op===`<`&&t)e.version=Do(t,a,o);else if(e.op===`<=`)e.version=Eo(o);else return null}if(!To(o,e))return null}return ve(r,i)}function Ao(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 jo(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 Mo(e,t){let n=e.indexOf(`[`,t);if(n===-1||e.slice(t,n).trim())return-1;let r=0,i=``,a=!1,o=!1;for(let t=n;t<e.length;t++){let n=e[t];if(o)n===`
|
|
61
|
+
`&&(o=!1);else if(i)i===`"`&&n===`\\`&&!a?a=!0:(n===i&&!a&&(i=``),a=!1);else if(n===`"`||n===`'`)i=n;else if(n===`#`)o=!0;else if(n===`[`)r++;else if(n===`]`&&--r===0)return t+1}return-1}function No(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=Ao(o[1]);else{let o=jo(a),s=o===-1?``:[...r,...Ao(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=Mo(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function Po(e,t){let n=new Map;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`);z(n,t,()=>new Map).set(i,r)}let r=No(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=F(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}${ko(n,o||a,s)??n}`});i=`${i.slice(0,t[0])}${o}${i.slice(t[1])}`}return i}function Fo(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:mr.test(o)}}function Io(e,t){return e?e===`github.com`?wn:`https://${e}/api/v1`:t}async function Lo(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await gn(a);if(e)return e.body}try{let e=await dr(a,i);if(e.status===404)return``;if(!e.ok)return;let t=_r(await e.json());return t&&!i.noCache&&yn(a,`immutable`,t),t}catch(e){if(e instanceof cr)throw e;return}}function Ro(e,t){let n=X(e);return Ar(H(n)?.version??n,t)}const zo=/^(\s*(?:-\s*)?)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/;function Bo(e,t){let n=zo.exec(e);if(!n)return null;let r=n[1].length,i=n[1].indexOf(`-`)+1;for(;t.length&&t.at(-1).indent>=(i||r);)t.pop();return{indent:r,key:(n[2]??n[3]??n[4]).trim(),value:n[5]}}const Vo=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function Ho(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?Vo.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 Uo=/^https?:\/\//;function Wo(e,t){let n=new Map(t.map(e=>[`${e.name}@${e.oldRef}${e.oldComment?`#${e.oldComment}`:``}`,e])),r=[],i=-1;return e.split(`
|
|
62
|
+
`).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=Bo(e,r);if(!t)return e;let{indent:a,key:o}=t,s=o===`uses`&&(r.length===3&&r[0].key===`jobs`&&r[2].key===`steps`||r.length===2&&r[0].key===`runs`&&r[1].key===`steps`||r.length===2&&r[0].key===`jobs`),c=t.value.replace(/(?:^|\s)#.*$/,``).trim();if(c||r.push({indent:a,key:o}),/^[>|](?:[+-]?\d?|\d[+-]?)$/.test(c))return i=a,e;if(!s)return e;let l=Ho(e);if(!l)return e;let{prefix:u,quote:d,value:f,gap:p,comment:m,pinnedVersion:h,pinnedEnd:g}=l,_=Uo.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(`
|
|
63
|
+
`)}const Go=RegExp(`(?:^|/)(?:${F(M)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Ko(e){return Go.test(e.replace(/\\/g,`/`))}function qo(e){let t=new Set;try{for(let n of x(f(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(m(f(e,`workflows`,n)))}catch{}try{for(let n of x(e,{recursive:!0,withFileTypes:!0}))!n.isFile()||!/^action\.ya?ml$/.test(n.name)||t.add(m(f(n.parentPath,n.name)))}catch{}return Array.from(t)}const Jo=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,Yo=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,Xo=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,Zo=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,Qo=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,$o=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,es=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function ts(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*ns(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=es(i[0]),a=Qo.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:ts(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=$o.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:ts(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const rs=/^(?:(?:index|registry-1)\.)?docker\.io$/;function is(e){let t=e.split(`/`);return t.length>1&&rs.test(t[0])&&t.shift(),{registry:t.length>2||t.length>1&&(t[0]===`localhost`||t[0].includes(`.`)||t[0].includes(`:`))?t.shift():null,namespace:t.length===1?`library`:t.slice(0,-1).join(`/`),repo:t.at(-1)}}function as(e){let{registry:t,namespace:n,repo:r}=is(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 os(e){e=e.replace(/^docker:\/\//,``);let[t,n,...r]=e.split(`@`);if(r.length||n&&!/^[a-z][a-z0-9+._-]*:[0-9a-f]+$/i.test(n))return null;let i=t.lastIndexOf(`:`),a=i!==-1&&t.lastIndexOf(`/`)<i;if(!a&&!n)return null;let o=a?t.substring(0,i):t,s=a?t.substring(i+1):`latest`;if(a&&!n&&!Jo.test(s))return null;let{registry:c,namespace:l,repo:u}=is(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function ss(e){let t=Jo.exec(e);return!t||t[2]&&!t[3]&&hr.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function cs(e,t,n=``){let r=ss(t);return r?Ar(e,r.version,`${n}${r.suffix}`):t}function ls(e,t){let n=[];if(t===Yo){for(let{from:t,resolved:r}of ns(e,!0)){let e=os(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===Xo?us(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=os(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function us(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 ds=new WeakMap,fs=new Set([401,403,404]);function ps(e,t,n){return Z(ds,n,`${e}/${t}`,async()=>{let r={dates:{},digests:new Map},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=1000&ordering=last_updated&page=${e}`,o=async r=>{let i=await Fn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({count:e.count,next:e.next,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated,digest:e.digest}))})),`${r}#digest`);return`body`in i?JSON.parse(i.body):(fs.has(i.res?.status)||kr(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 N(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:Rn(n)});for(let e of t){if(`reason`in e)throw e.reason;if(!e.value)return r;s(e.value),u=e.value}}let f=new URL(i).origin;for(;d<=20&&u.next;d++){let e=new URL(u.next,i),t=e.href;if(e.origin!==f||l.has(t))break;l.add(t);let n=await o(t);if(!n)break;s(n),u=n}return r})}async function ms(e,t,n){return(await ps(e,t,n)).dates}async function hs(e,t,n,r){let i=(await ps(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await Fn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return fs.has(o.res?.status)||kr(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const gs=/^\d?[02468]\.04$/;function _s(e,t){if(!gs.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const vs={ubuntu:_s};function ys(e,t,n=Date.now()){let r=vs[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=ss(e)?.version;return!t||r(t,n)})):t}async function bs(e,t){let{registry:n,namespace:r,repo:i}=is(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:ys(i,await ms(r,i,t)),name:e},null]}const xs=(e,t)=>t?`${e}-${t}`:e;function Ss(e){let t=ss(e);return t?ks(t.version):``}const Cs=/[._]/,ws=e=>X(e.version).split(Cs).map(Number),Ts=e=>X(e).replace(/\d+/g,``),Es=2e7,Ds=e=>Number(X(e).split(Cs)[0]);function Os(e,t){return Ds(e)<Es||Ds(t)>=Es}function ks(e){let t=X(e).split(Cs).slice(0,3);return[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function As(e,t){let n=ws(e),r=ws(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 js(e,t){let n=ws(e),r=ws(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 Ms(e,t,n,r,i,a,o=!1,s=!1){let c=ss(t);if(!c)return null;let l=Ts(c.version),u=xs(ks(c.version),c.prerelease),{effectiveSemvers:d,skipsPrerelease:f}=Wn(u,o,s,n),p=l.length>2||l.includes(`_`),m=H(u),h=c,g=``,_=``;for(let[t,u]of Object.entries(e)){let e=ss(t);if(!e||e.suffix!==c.suffix||Ts(e.version)!==l||!Os(e.version,c.version)||!Sn(u,r,i))continue;let v=xs(ks(e.version),e.prerelease);if(a&&!K(v,a))continue;if(p){if(e.prerelease&&(!o&&!c.prerelease||s)||As(e,h)<=0)continue;let r=js(c,e);if(!r||!n.has(r))continue;h=e,g=t,_=u;continue}let y=H(v);if(!y||e.prerelease&&f(y))continue;if(y.version===m.version){g&&Date.parse(u)>Date.parse(_)&&(g=t,_=u);continue}let b=Y.diff(m,y);!b||!d.has(b)||Y.compare(y,m)>0&&(m=y,g=t,_=u)}if(p)return g?{newTag:g,date:_}:null;if(!g||m.version===u)return null;let[v,y=``]=m.version.split(`-`),b=cs(v,t,y),x=b in e?b:g;return x===t?null:{newTag:x,date:_}}const Ns=`(?![\\w.@+-])`;function Ps(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 Fs(e,t,n,r=()=>!0){if(!t.size)return e;let i=F(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`${Zo}(${e})(${i})${Ns}`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function Is(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=Ps(t);if(!r.size)return e;let i=F(r.keys()),a=e.replace(RegExp(`^([ \\t]*FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${Ns}`,`gim`),(e,t,n)=>`${t}${r.get(n)??n}`),o=new Map;for(let{instruction:e,args:t,from:n,resolved:i}of ns(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=ts(n[1].slice(0,e.index),e=>t.get(e)?.value),s=ts(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 Ls(e,t){let n=us(e);return Fs(e,Ps(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function Rs(e,t){return Fs(e,Ps(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const zs=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function Bs(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function Vs(e){return/^Dockerfile(\..+)?$/.test(e)}function Hs(e){return Vs(e)||Bs(e)}function Us(e){return Vs(e)?Yo:Xo}function Ws(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Gs=[`Makefile`,`makefile`,`GNUmakefile`];function Ks(e){return Gs.includes(e)||e.endsWith(`.mk`)}const qs=/^\s*(?:(?:export|override|private|unexport)\s+)*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,Js=/^([^@\s]+)@(v\d\S*)$/,Ys=/^[^/\s]+\.[^/\s]+\//;function*Xs(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=qs.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 Zs(e){let t=[];for(let n of Xs(e)){let e=Js.exec(n);if(!e||!Ys.test(e[1]))continue;let[,r,i]=e;t.push({installPath:r,version:i})}return t}const Qs=/@(sha256:[0-9a-f]{64})$/;function $s(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function ec(e){let t=Qs.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=os(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function tc(e){return Array.from(Xs(e)).flatMap(e=>ec(e)??[])}const nc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,rc=new WeakMap;function ic(e,n,r){return Z(rc,r,`${m(n)}${e}`,async()=>{let i;try{({stdout:i}=await r.execFile(`go`,[`list`,`-m`,`-e`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:{...t,GOPROXY:`direct`}}))}catch(t){let n=String(t?.stderr??``).trim().split(`
|
|
64
|
+
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}let a;try{a=JSON.parse(i)}catch{throw Error(`go list -m ${e}@latest returned malformed JSON`)}if(a.Error){let t=a.Error.Err;if(a.Origin&&t?.endsWith(`no matching versions for query "latest"`))return null;throw Error(`go list -m ${e}@latest failed: ${t||`unknown error`}`)}if(typeof a.Version!=`string`)throw Error(`go list -m ${e}@latest returned malformed JSON`);return!0},!1)}async function ac(e,t,n,r){return await Fr(r,async r=>r===`off`?!1:r===`direct`?ic(e,t,n):await mi(n,`primary`,e=>jn(n,e,{headers:li}),r,e)?!0:null)??!1}async function oc(e,t,n,r){let i=nc.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=Vr(e,r)?[{url:`direct`,fallback:`,`}]:n.goProxyChain;if(a[0].url===`off`)return null;let o=e.split(`/`),s=Array.from({length:o.length-1},(e,t)=>o.slice(0,o.length-t).join(`/`));for(let e of a){let r=await Promise.allSettled(s.map(r=>ac(r,t,n,[e]))),i=r.findIndex(e=>e.status===`fulfilled`&&e.value),a=r.slice(0,i===-1?void 0:i).find(e=>e.status===`rejected`);if(a)throw a.reason;if(i!==-1)return s[i]}return null}function sc(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,P).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 cc=new WeakMap;function lc(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 uc(e,t){let n=En(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${lc(t)}`}function dc(e){return e.split(`
|
|
17
65
|
`).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(`
|
|
18
|
-
`)}async function
|
|
19
|
-
`)){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=
|
|
20
|
-
`)){let a=n?null:Js.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=Ys(i,n),r+=i.length+1}return t}function Zs(e,t){let n=Xs(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Ks(i),c=z(a),l=t.startsWith(`[`)?JSON.parse(qs.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(Ks).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=Ys(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Qs=/^(!?)\/(.*)\/(i?)$/,$s=e=>e.isHash&&!!e.comment&&!Zn(e.comment),ec=[...new Set(Object.values(je)),`actions`,`docker`,`make`],tc=new Set(ec),nc={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},rc={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},ic=(e,t)=>sn(typeof e==`string`?e:t),ac=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function oc(e,t){let n=new Map,r=new Set(e);return Ze(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 sc(e,t){t&&(e.date=t,e.age=Wt(t,{noAffix:!0,shortUnits:!0}))}const cc=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,lc=(e,t,n,r)=>cc(`${e}${t}`,n,r),uc=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?Xr(n):`${Xr(n)}|${t}`)},dc=e=>Object.values(e).some(e=>Object.keys(e).length>0),fc=e=>e.toLowerCase().replace(/[-_.]+/g,`-`);function pc(e,t){return t===`go`?[e,po(e)]:t===`docker`?Lo(e):t===`pypi`?[e,fc(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([...pc(e,a),...pc(o,a)])),c=(t,n)=>kr(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 mc(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)||ps(e.name)||_s(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 Eo(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(Ae),r=[...Object.keys(je),...us,...gs,...Ae],i=new Set;for(let[a,o]of oc(r,e())){if(t.has(a)){for(let e of Eo(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=ps(t.name)&&!us.includes(t.name),i=_s(t.name)&&!gs.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(rc,t)&&(r.push(e),n.delete(_(h(e),rc[t])))}return r.length?new Set([...r,...n]):n}function hc(e,t){r===`win32`&&f(e,0),p(e,t,r===`win32`?{flag:`r+`}:void 0)}const gc=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function _c(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function vc(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>ec.indexOf(e)-ec.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=gc(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`&&!Ni(a.oldOrig)&&(a.old=e===`go`?mo(a.oldOrig):a.oldOrig),e===`go`?a.new=mo(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(gc(e,r))>1?`${o}${e===`actions`?`@`:`:`}${_c(s)}`:o,l=t.results[e]??={};(l[_c(i)]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}function yc(e,t){if(!t)return()=>!0;let n=Qs.exec(t);if(n){let e=new RegExp(n[2],n[3]);return n[1]?t=>!e.test(t):t=>e.test(t)}return e===`docker`?e=>J(dt(zo(e)?.version??``)?.version??``,t):e===`pypi`?e=>da(e,t):e=>J(e,t)}function bc(e,t,n){if(!n)return e;let r=yc(t,n),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>r(e)));if(t===`go`)return{...e,...e.versions&&{versions:i(e.versions)},new:typeof e.new==`string`&&r(e.new)?e.new:``,sameMajorNew:typeof e.sameMajorNew==`string`&&r(e.sameMajorNew)?e.sameMajorNew:``};let a=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[a]:i(e[a]??{})}}async function xc(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await Sc(e)}finally{n()}}async function Sc(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=He(n.timeout,`timeout`));let r=n.sockets??50,a=n.timeout??0,o=ic(t.forgeapi,on.forgeapi),s=xa(t.goproxy),c=Sa(),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 Nn())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:ic(t.pypiapi,on.pypiapi),jsrApiUrl:ic(t.jsrapi,on.jsrapi),goProxyUrl:s[0].url,goProxyChain:s,cratesIoUrl:ic(t.cargoapi,on.cargoapi),dockerApiUrl:ic(t.dockerapi,on.dockerapi),doFetch:(e,t)=>(g??=xn(v))(async()=>{n.verbose&&console.error(`${Re()} ${d(t?.method||`GET`)} ${e}`);let r=await dn(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=H(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(!tc.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${ec.join(`,`)}`);let S=n.modes?.length?new Set(n.modes):tc,te=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?Rr(e.include):void 0,exclude:e.exclude?.length?Rr(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))}));return{greatest:Hr(e.greatest),prerelease:Hr(e.prerelease),release:Hr(e.release),patch:Hr(e.patch),minor:Hr(e.minor),allowDowngrade:Hr(e.allowDowngrade),overrides:t,renovateVersionRules:e.renovateVersionRules??[],hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)}};S.has(`actions`)&&In();let C=new WeakMap;function ne(e,t,n,r=n){let i=H(C,e,()=>new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(new Set([...pc(n,t),...pc(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?nc.patch:p?nc.minor:nc.major,_;for(let t of e.renovateVersionRules)Er(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}Br(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)},j={},M=Date.now(),de=e(),fe=e=>e.replace(`${de}/`,``).replace(`${de}\\`,``),pe=(e,t,n,r,i,a)=>{E[e][lc(t,n,r)]={old:i,oldOrig:a}},me=(e,t,n)=>{if(Fi(n))return;let r=Li(n);if(Ni(n))E.npm[e]={old:Bi(n,t).version,new:``,oldOrig:n};else if(Y(n))E.npm[e]={old:$i(n),new:``,oldOrig:n};else if(r)se.set(e,r),E.npm[e]={old:$i(r.range),new:``,oldOrig:n};else if(Pi(n))return;else ae[e]={old:n}},he=(e,t,n,r,i,a)=>{let o=new Set(Object.keys(t.tool?.uv?.sources??{}).map(fc)),s=(t,r)=>{for(let{name:s,version:c,spec:l}of De(t))o.has(fc(s))||$(s,e,i,a,r)&&(pe(e,r,n,s,$i(c),c),ce.set(lc(r,n,s),l))};for(let[o,c]of Ie(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(`@`);$(r,e,i,a,o)&&pe(e,o,n,r,$i(s),s)}else{let r=Object.entries(t);if(e===`npm`&&(o===`overrides`||o===`pnpm.overrides`)){let r=o===`overrides`?[`overrides`]:[`pnpm`,`overrides`],s=(t,c)=>{for(let[l,u]of Object.entries(t))if(typeof u==`string`){let t=_i(l===`.`?c.at(-1)??l:l),s=Li(u);if(!$(t,e,i,a,o,e,s?.name??t))continue;let d=[...r,...c,l],f=JSON.stringify(d),p=lc(o,n,t,f);me(p,t,u)}else u&&typeof u==`object`&&!Array.isArray(u)&&s(u,[...c,l])};s(t,[]);continue}for(let[t,c]of r){if(e===`pypi`&&Array.isArray(c)){s(c,`${o}.${t}`);continue}typeof c==`string`&&$(t,e,i,a,o,e,(e===`npm`?Li(c):null)?.name??t)&&(e===`npm`?me(lc(o,n,t),t,c):e===`go`?pe(e,o,n,t,mo(c),Z(c)):Y(c)&&pe(e,o,n,t,$i(c),c))}}}},ge=mc(n.files),N=new Map(await L(Array.from(ge).filter(e=>{if(To(e))return S.has(`actions`)||S.has(`docker`);let t=m(e);return ps(t)?S.has(`docker`):_s(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[Pr],ke=Ee&&new Set(Ee.cliKeys),Ae=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!ke||ke.has(e)))),I=$e(async e=>{let t={...await Wr(e),...Ae};return{modeConfig:t,include:Rr(t.include??[]),exclude:Rr(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=cc(t,e.fullImage,r);if(E.docker[i])return;let a=zo(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,B=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`)&&B.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=N.get(e);if(!t)continue;try{let n=ue(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&We.set(e,n)}catch{}}}let Ge={cargo:We.size,go:Array.from(ge).filter(e=>m(e)===`go.work`).length,npm:new Set([...B.keys(),...Array.from(ge).filter(e=>m(e)===`pnpm-workspace.yaml`)]).size},Ke=(e,t,n,r,i)=>{let a=j[e]??=[],o=!a.length&&!Ge[e],s=o?`.`:fe(t);return a.push({absPath:y(t),content:n,memberPath:s,projectDir:r}),F(e,s,Be(i,r)),o?``:`|${s}`},qe=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},V=(e,t,n)=>Ge[e]>1?`${fe(t)}:${n}`:n,Je=(e,t,n,r,i,a)=>{let o=V(`npm`,e,n.memberPath);F(`npm`,o,Be(a,t)),be.push({...n,memberPath:o}),he(`npm`,r,o===`.`?``:`|${o}`,i,a.include,a.exclude)};for(let e of We.size||B.size?new Set([...We.keys(),...B.keys(),...N.keys()]):N.keys()){if(To(e)){let t=S.has(`actions`),n=S.has(`docker`),r=N.get(e),i=fe(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=xo(l),t=e&&ho(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=cc(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},Se.push({...t,key:s,comment:n,apiUrl:go(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=r[5].replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`),n=Ro(m?t.replace(/^docker:\/\//,``):t);n&&(Ue(n,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=m(e),n=y(e);if(ps(t)){let n=N.get(e),r=fe(e),i=fs(t)?`dockerfile`:`compose`,a=await I(h(e));P[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of Vo(n,ms(t)))Ue(e,r,a);continue}if(_s(t)){let t=N.get(e),n=fe(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 Ss(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=cc(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 Es(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=cc(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=zo(e.ref.tag);if(!a)continue;let o=ws(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=lo(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=uo(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=V(i,e,`.`),_=Be({modeConfig:s,versionConfig:u,pin:d,cooldownDays:f},t);F(i,g,_),ve.push({file:e,content:a,memberPath:g});for(let t of p){if(!t)continue;let{usePath:n,modPath:r,content:a}=t,o=Ha(a),s=V(i,e,n);F(i,s,_),_e.push({absPath:r,content:a,projectDir:h(r),memberPath:s}),he(i,o,s===`.`?``:`|${s}`,m,c,l)}for(let[e,t]of Object.entries(o.replace))$(e,i,c,l,`replace`)&&pe(i,`replace`,g===`.`?``:`|${g}`,e,mo(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)??ue(t),o=h(n),s=oc([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length,[u,d,f]=await Promise.all([I(o),s?w(s,`utf8`):Promise.resolve(null),l?ti(c,o,`Cargo.toml`,r):Promise.resolve([])]),{modeConfig:p,include:m,exclude:g}=u,_=ze(i,p),v=d?Rs(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;Y(Hs(e))&&(o!==r&&oe.set(lc(n,t,r),o),pe(i,n,t,r,Gs(v,o,e)??$i(Hs(e)),e))}else typeof a==`string`&&Y(Hs(a))&&pe(i,n,t,r,Gs(v,r,a)??$i(Hs(a)),a)}}}};if(l){let r=V(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=V(i,e,t.memberPath);F(i,n,s),ye.push({...t,memberPath:n}),y(qe(t.absPath,()=>ue(t.content)),`|${n}`)}}else y(a,Ke(i,e,t,o,u));continue}if(t===`package.json`&&B.has(e)){E[i]??={};let t=h(n),a=N.get(e),o=B.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),ti(c,t,`package.json`,r)]),d=ze(i,l.modeConfig);Je(e,t,{absPath:n,content:a,memberPath:`.`},o,d,l);for(let n of u)Je(e,t,n,qe(n.absPath,()=>JSON.parse(n.content)),d,l);continue}if(t===`pnpm-workspace.yaml`){E[i]??={};let a=h(n),o=N.get(e),s=mi(o),c=_(a,`package.json`),[l,u,d]=await Promise.all([I(a),R(w(c,`utf8`)),ti(s,a,`package.json`,r)]),f=ze(i,l.modeConfig),p=V(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 fi(o))$(t,i,l.include,l.exclude,e,i,Li(n)?.name??t)&&me(lc(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=lc(r,`|${p}`,e,a);D.set(o,n),O.set(o,e),me(o,e,t)}if(u!==null){let t=qe(c,()=>JSON.parse(u));Je(e,a,{absPath:y(c),content:u,memberPath:`.`},t,f,l)}for(let t of d)Je(e,a,t,qe(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,qe(e,()=>i===`npm`?JSON.parse(f):i===`pypi`?ue(f):Ha(f)),Ke(i,e,f,a,s),d,l,u)}let Ye=Object.keys(ae).length>0;if(!dc(E)&&!Ye)return{results:{},message:`No dependencies found, nothing to do.`};let Xe=[],Ze=(e,t)=>D.get(e)??se.get(e)?.name??(gi.has(e.split(`\0`)[0].split(`|`)[0])?_i(t):t),Qe={needsDates:(Te.npm?.values()??[][Symbol.iterator]()).some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)};for(let[e,t]of Object.entries(Te))!Object.keys(E[e]??{}).length&&(e!==`npm`||!Ye)||Xe.push((async()=>{let i=t.values().next().value,a=e=>{let n=e.indexOf(`|`);return t.get(n===-1?``:e.slice(n))??i},o=new Map,s=E[e],l=async(t,r,i)=>{let l=Xr(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&&Ni(g.oldOrig)?Vi(i,v):ji(Ze(t,i),l,u,Qe,v,p,g.old):e===`go`?ro(i,r,g.oldOrig||g.old,p,v,c):e===`cargo`?Ls(oe.get(t)??i,v):sa(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=bc(x,e,T);let{old:D,oldOrig:O}=g,k=kn(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?M:void 0}),A=``;if((e===`go`||e===`pypi`)&&k)A=k;else if(e===`cargo`&&k&&O)A=Ws(O,k);else if(k){if(O&&Ni(O)){let e=ac.exec(O);e?A=`${e[1]}${k}`:O.startsWith(`jsr:`)&&(A=`jsr:${k}`)}else A=_?`npm:${_.name}@${Qi(D,k,_.range,l)}`:Qi(D,k,O,l)}let le=ce.get(t);if(!k||k===D||O&&O===A||le&&!fa(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 j=(e===`pypi`?x.releases?.[k]?.[0]?.upload_time_iso_8601:e===`go`?x.Time:e===`cargo`?x.time?.[k]:``)||``;g.new=A,O&&Ni(O)&&(g.newPrint=k),e===`npm`?o.set(t,{name:Ze(t,i),promise:Mi(x.name,k,u,Qe,v,p)}):g.info=e===`pypi`?gr(x,b,x.info.name):e===`go`?fo(x.newPath||i):`https://crates.io/crates/${x.name}`,sc(g,j)};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=gr({repository:r.repository,homepage:r.homepage},null,t),sc(i,r.date))})),e===`npm`&&Ye){let e=(await L(Object.entries(ae),async([e,t])=>{try{return await ra(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)sc(s[t]={old:ae[t].old,new:n,oldPrint:Xn.test(a)?a.substring(0,7):a,newPrint:Xn.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`},c)}for(let[t,{date:n}]of Object.entries(s)){if(!n)continue;let[r,i]=t.split(`\0`),{cooldownDays:o,versionConfig:c}=a(r);if(!o&&!c.hasCooldownOverride)continue;let l=e===`npm`?Ze(t,i):i,u=ne(c,e,l,i).cooldownOverride??o;u&&!nn(n,u,M)&&delete s[t]}})());let et=e=>ie(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);Se.length&&Xe.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?!$s(e):Zn(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=et(e);return t||!!(n&&!r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===on.forgeapi?[]:e.filter($s).map(e=>e.comment)],c=[];try{s.length&&(c=await lr(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=zt.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=$e(e=>_o(t,n,i,e,v)),m=$e(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===on.forgeapi?`commits`:`branches`,o=await Kn(`${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=Dn({},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(nn(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]||``:Zn(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}=et(e),w=Zn(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:zt,pinnedRange:ee,pinNoDowngrade:te,cooldownDays:C||void 0,now:C?M:void 0},S?l.filter(yc(`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,sc(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=vo(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,sc(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&&Xe.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 Qo(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=bc(n,`docker`,c).tags,f=!t.ref.digestOnly&&zo(i)?rs(d,i,a,u||void 0,u?M: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=hs(t.ref),sc(r,f?.date)},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),we.length&&Xe.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?M:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await js(e.installPath,e.projectDir,v,c);if(!t){delete E.make[e.key];return}let[n]=await ro(t,`tool`,Z(e.version),e.projectDir,v,c),r=bc(n,`go`,o),i=kn(r,{...d,mode:`go`,range:Z(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??ja(t,i),s=`${a}${e.installPath.slice(t.length)}`,l=pr(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=fo(a),sc(f,r.Time)}else{let[t]=await Qo(e.image.ref.fullImage,v),n=bc(t,`docker`,o).tags,r=rs(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=ws(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=hs(e.image.ref),sc(f,r.date)}}catch(t){le(`make`,e.key,t)}},{concurrency:r}),Object.keys(E.make).length||delete E.make})());try{await Promise.all(Xe)}finally{await en()}if(!dc(E))return k.length?{results:{},errors:k}:{results:{},message:`All dependencies are up to date.`};let tt=(e,t)=>{let n=e.split(`
|
|
21
|
-
`),r=new Map(
|
|
22
|
-
`)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=
|
|
23
|
-
`).map((e,n)=>o.has(n)?
|
|
24
|
-
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=
|
|
66
|
+
`)}async function fc(e,t){let n=uc(t.cratesIoUrl,e);return[await Z(cc,t,n,async()=>{let r=await Fn(n,t,Dn(),dc);`body`in r||kr(r.res,n,e,t.cratesIoUrl);let i={},a={},o=``,s=``,c=0;for(let e of r.body.split(`
|
|
67
|
+
`)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=H(n);r&&(r.prerelease.length?(!s||ot(n,s))&&(s=n):(!o||ot(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 pc(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];$e(a)&&R(t,i,a)}return t}const mc=/^\d/,hc=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,gc=/^(\s*)(.*?)(\s*)$/s,_c=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return mc.test(t)&&!hc.test(t)?`^${t}`:t}).join(` `);function vc(e,t){let[,n,r,i]=gc.exec(e);if(r.startsWith(`<`)&&K(t,r))return e;let a=hc.exec(r),o;if(a){if(H(t)?.prerelease.length)o=t;else{let[,e,n]=a;o=`${t.split(/[-+]/)[0].split(`.`).slice(0,e.split(`.`).length).join(`.`)}${n}`}}else o=mc.test(r)?go(Q(`^${r}`),t,`^${r}`).replace(/^\^/,``):go(Q(r),t,r);return`${n}${o}${i}`}function yc(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:vc(e,t)).join(``)}function bc(e,t,n){let r=e.get(t);if(!r)return;let i=_c(n),a;for(let e of r)K(e,i)&&(!a||ot(e,a))&&(a=e);return a}const xc=e=>{let t=P(e);return`(?:${t}|"${t}"|'${t}')`},Sc=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,Cc=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/;function wc(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 Tc(e){let t=[],n=``,r=0;for(let i of e.split(`
|
|
68
|
+
`)){let a=n?null:Cc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=wc(i,n),r+=i.length+1}return t}function Ec(e,t){let n=Tc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=xc(i),c=P(a),l=t.startsWith(`[`)?JSON.parse(Sc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(xc).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=wc(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Dc=/^(!?)\/(.*)\/(i?)$/,Oc=e=>e.isHash&&!!e.comment&&!gr(e.comment),kc=[...new Set(Object.values(Ce)),`actions`,`docker`,`make`],Ac=new Set(kc),jc={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},Mc={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},Nc=(e,t)=>En(typeof e==`string`?e:t),Pc=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function Fc(e,t){let n=new Map,r=new Set(e);return We(t,e=>{for(let t of r){let i=f(e,t);try{g(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function Ic(e,t){t&&(e.date=t,e.age=sa(t,{noAffix:!0,shortUnits:!0}))}const Lc=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,Rc=(e,t,n,r)=>Lc(`${e}${t}`,n,r),zc=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?pa(n):`${pa(n)}|${t}`)},Bc=e=>Object.values(e).some(e=>Object.keys(e).length>0),Vc=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Hc=(e,t)=>Na.has(e)?Pa(t):t;function Uc(e,t){return t===`go`?[e,Ai(e)]:t===`docker`?as(e):t===`pypi`?[e,Vc(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&Se.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let s=Array.from(new Set([...Uc(e,a),...Uc(o,a)])),c=(t,n)=>qt(t,n,o,e);for(let e of r)if(s.some(t=>c(e,t)))return!1;for(let e of n)if(s.some(t=>c(e,t)))return!0;return!n.size}function Wc(t){let n=new Set;if(t?.length)for(let e of t){let t;try{t=C(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}let r=m(e);try{r=S.native(e)}catch{}if(t.isFile())n.add(r);else if(t.isDirectory()){try{for(let e of x(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(Ce,e.name)||Hs(e.name)||Ks(e.name))&&n.add(m(f(r,e.name)))}catch{}let e=r.replace(/\\/g,`/`),t=M.some(t=>e.endsWith(`/${t}/workflows`)),i=!t&&M.some(t=>e.endsWith(`/${t}`)),a=t?[u(e)]:i?[e]:M.map(t=>f(e,t));for(let e of a)for(let t of qo(e))n.add(t)}else throw Error(`${e} is neither a file nor directory`)}else{let t=new Set(M),r=[...Object.keys(Ce),...zs,...Gs,...M],i=new Set;for(let[a,o]of Fc(r,e())){if(t.has(a)){for(let e of qo(o))n.add(e);continue}let e=m(o);try{e=S.native(o)}catch{}i.has(e)||(i.add(e),n.add(m(o)))}try{for(let t of x(e(),{withFileTypes:!0})){let r=Hs(t.name)&&!zs.includes(t.name),i=Ks(t.name)&&!Gs.includes(t.name);t.isFile()&&(r||i)&&n.add(m(f(e(),t.name)))}}catch{}}let r=[];for(let e of Array.from(n)){let t=l(e);Object.hasOwn(Mc,t)&&(r.push(e),n.delete(f(u(e),Mc[t])))}return r.length?new Set([...r,...n]):n}function Gc(e,t){r===`win32`&&ee(e,0),w(e,t,r===`win32`?{flag:`r+`}:void 0)}const Kc=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function qc(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function Jc(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>kc.indexOf(e)-kc.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=Kc(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,a]of Object.entries(i)){typeof a.oldPrint==`string`&&(a.old=a.oldPrint),typeof a.newPrint==`string`&&(a.new=a.newPrint),typeof a.oldOrig==`string`&&!Xa(a.oldOrig)&&(a.old=e===`go`?ji(a.oldOrig):a.oldOrig),e===`go`?a.new=ji(a.new):e===`actions`&&!a.digestOnly&&(a.old=X(a.old),a.new=X(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get(Kc(e,r))>1?`${o}${e===`actions`?`@`:`:`}${qc(s)}`:o,l=t.results[e]??={};(l[qc(i)]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}function Yc(e,t){if(!t)return()=>!0;let n=Dc.exec(t);if(n){let e=new RegExp(n[2],n[3]);return n[1]?t=>!e.test(t):t=>e.test(t)}return e===`docker`?e=>K(Ss(e),t):e===`pypi`?e=>Oo(e,t):e=>K(e,t)}function Xc(e,t,n){if(!n)return e;let r=Yc(t,n),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>r(e)));if(t===`go`)return{...e,...e.versions&&{versions:i(e.versions)},new:typeof e.new==`string`&&r(e.new)?e.new:``,sameMajorNew:typeof e.sameMajorNew==`string`&&r(e.sameMajorNew)?e.sameMajorNew:``};let a=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[a]:i(e[a]??{})}}async function Zc(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await Qc(e)}finally{n()}}async function Qc(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Fe(n.timeout,`timeout`));let r=n.sockets??50,a=n.timeout??0,o=Nc(t.forgeapi,Tn.forgeapi),s=Lr(t.goproxy),d=Rr(),p=!n.noColor&&(n.color||i.isTTY),h=e=>p?t=>c(e,String(t),{validateStream:!1}):String,g=h(`magenta`),_=h(`green`),v=h(`red`),y,b={execFile:async(e,t,n)=>(await Qn())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:Nc(t.pypiapi,Tn.pypiapi),jsrApiUrl:Nc(t.jsrapi,Tn.jsrapi),goProxyChain:s,cratesIoUrl:Nc(t.cargoapi,Tn.cargoapi),dockerApiUrl:Nc(t.dockerapi,Tn.dockerapi),doFetch:(e,t)=>(y??=Bn(b))(async()=>{n.verbose&&console.error(`${je()} ${g(t?.method||`GET`)} ${e}`);let r=await An(e,t);return n.verbose&&console.error(`${je()} ${r.ok?_(r.status):v(r.status)} ${e}`),r}),noCache:!!n.noCache},x=new Map,S=async(e,t,n)=>{let r=`${e}${t}${n}`,i=z(x,r,()=>hs(e,t,n,b));try{return await i}catch(e){throw x.get(r)===i&&x.delete(r),e}};for(let e of n.modes??[])if(!Ac.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${kc.join(`,`)}`);let C=n.modes?.length?new Set(n.modes):Ac,ee=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?rn(e.include):void 0,exclude:e.exclude?.length?rn(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:Pe(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:cn(e.greatest),prerelease:cn(e.prerelease),release:cn(e.release),patch:cn(e.patch),minor:cn(e.minor),allowDowngrade:cn(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}};C.has(`actions`)&&tr();let w=new WeakMap;function te(e,t,n,r=n){let i=z(w,e,()=>new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(new Set([...Uc(n,t),...Uc(r,t)])),c=e=>s.some(t=>ke(t,e)),l=c(e.greatest),u=c(e.prerelease),d=c(e.release),f=c(e.patch),p=c(e.minor),m=c(e.allowDowngrade),h,g;for(let t of e.renovateVersionRules)Wt(t,n,r)&&(t.allowedVersions!==void 0&&(g=t.allowedVersions),t.cooldownDays!==void 0&&(h=t.cooldownDays));for(let t of e.overrides)t.include&&s.every(e=>!ke(e,t.include))||t.exclude&&s.some(e=>ke(e,t.exclude))||(t.greatest!==void 0&&(l=t.greatest),t.prerelease!==void 0&&(u=t.prerelease),t.release!==void 0&&(d=t.release),t.patch!==void 0&&(f=t.patch),t.minor!==void 0&&(p=t.minor),t.allowDowngrade!==void 0&&(m=t.allowDowngrade),t.cooldownDays!==void 0&&(h=t.cooldownDays));let _=f?jc.patch:p?jc.minor:jc.major;o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:_,allowDowngrade:m,cooldownOverride:h,allowedVersions:g},i.set(a,o)}return o}on(n.pin);let ne=n.pin??{},T=(e,t,n)=>{let r=e.find(e=>ne[e]);if(r)return{pinnedRange:ne[r],pinNoDowngrade:!1};let i=e.find(e=>t[e]),a=!!(i&&Array.isArray(n)&&n.includes(i));return{pinnedRange:i&&!a?t[i]:void 0,pinNoDowngrade:a}},ie=(e,t,n,r,i,a,o)=>{let s=te(e,t,n,r);return{...s,...T(s.names,i,a),cooldownDays:s.cooldownOverride??o}},E={},ae={},oe=new Map,se=new Map,D=new Map,O=new Map,ce=new Map,k=[],A=(e,t,n)=>{let[r,i]=t.split(`\0`);k.push({mode:e,type:r,name:i,error:n?.message||String(n)})},le=(e,t,n)=>{delete E[e][t],A(e,t,n)},ue={},de=Date.now(),fe=e(),pe=e=>e.replace(`${fe}/`,``).replace(`${fe}\\`,``),me=(e,t,n,r,i,a)=>{E[e][Rc(t,n,r)]={old:i,oldOrig:a}},he=(e,t,n)=>{if(Qa(n))return;let r=eo(n);if(Xa(n))E.npm[e]={old:ro(n,t).version,new:``,oldOrig:n};else if(q(n))E.npm[e]={old:Q(n),new:``,oldOrig:n};else if(r)se.set(e,r),E.npm[e]={old:Q(r.range),new:``,oldOrig:n};else if(Za(n))return;else ae[e]={old:n}},ge=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(Vc)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of be(t))s.has(Vc(o))||$(o,e,i,a,r)&&(me(e,r,n,o,Q(c),c),ce.set(Rc(r,n,o),l))};for(let[s,l]of Oe(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)&&me(e,s,n,r,Q(o),o)}else{if(e===`npm`&&(s===`overrides`||s===`pnpm.overrides`)){let r=s===`overrides`?[`overrides`]:[`pnpm`,`overrides`],c=(t,l)=>{for(let[u,d]of Object.entries(t))if(typeof d==`string`){let t=Pa(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=eo(d);if(!$(t,e,i,a,s,e,c?.name??t))continue;let f=[...r,...l,u],p=JSON.stringify(f),m=Rc(s,n,t,p);he(m,t,d)}else d&&typeof d==`object`&&!Array.isArray(d)&&c(d,[...l,u])};c(t,[]);continue}for(let[r,l]of Object.entries(t)){if(e===`pypi`&&Array.isArray(l)){c(l,`${s}.${r}`);continue}typeof l==`string`&&(o?.has(Hc(s,r))||$(r,e,i,a,s,e,(e===`npm`?eo(l):null)?.name??r)&&(e===`npm`?he(Rc(s,n,r),r,l):e===`go`?me(e,s,n,r,ji(l),X(l)):q(l)&&me(e,s,n,r,Q(l),l)))}}}},_e=Wc(n.files),j=new Map(await N(Array.from(_e).filter(e=>{if(Ko(e))return C.has(`actions`)||C.has(`docker`);let t=l(e);return Hs(t)?C.has(`docker`):Ks(t)?C.has(`make`):C.has(Ce[t])}),async e=>{try{return[e,await re(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),ve={},ye=[],Se=[],M=[],Ae=[],Me=[],Ne=[],P=[],F=[],Le={},I=(e,t,n)=>{(Le[e]??=new Map).set(t===`.`?``:`|${t}`,n)},Re=t[Qt],ze=Re&&new Set(Re.cliKeys),Be=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!ze||ze.has(e)))),L=Ge(async e=>{let t={...await un(e),...Be};return{modeConfig:t,include:rn(t.include??[]),exclude:rn(t.exclude??[]),versionConfig:ee(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Pe(String(t.cooldown)):0}});function Ve(e,t){return t.types?.length?t.types:e===`npm`?xe:e===`pypi`?we:e===`go`?t.indirect?Te:Te.filter(e=>e!==`indirect`):e===`cargo`?[...Ee,...De]:[]}let He=(e,t)=>({modeConfig:e.modeConfig,versionConfig:e.versionConfig,projectDir:t,pin:e.pin,cooldownDays:e.cooldownDays}),Ue=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 We(e,t,n){if(E.docker??={},!$(e.fullImage,`docker`,n.include,n.exclude,`docker`))return;let r=`${e.tag}${e.digest?`@${e.digest}`:``}`,i=Lc(t,e.fullImage,r);if(E.docker[i])return;let a=ss(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}},P.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let R=new Map,B=new Map;for(let e of _e){let t=l(e);if(t===`package.json`){let t=j.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`)&&B.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=j.get(e);if(!t)continue;try{let n=Ji(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&R.set(e,n)}catch{}}}let Ke={cargo:R.size,go:Array.from(_e).filter(e=>l(e)===`go.work`).length,npm:new Set([...B.keys(),...Array.from(_e).filter(e=>l(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:m(t),content:n,memberPath:s,projectDir:r}),I(e,s,He(i,r)),o?``:`|${s}`},Je=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},Ye=(e,t,n)=>Ke[e]>1?`${pe(t)}:${n}`:n,V=(e,t,n,r,i,a,o)=>{let s=Ye(`npm`,e,n.memberPath);I(`npm`,s,He(a,t)),Ae.push({...n,memberPath:s}),ge(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of R.size||B.size?new Set([...R.keys(),...B.keys(),...j.keys()]):j.keys()){if(Ko(e)){let t=C.has(`actions`),n=C.has(`docker`),r=j.get(e),i=pe(e),a=await L(u(e)),s=new Set;ve[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=Ho(l),t=e&&Fo(e.value);if(t&&$(t.name,`actions`,a.include,a.exclude,`actions`)){E.actions??={};let n=e.pinnedVersion||/^#\s*(\S+)\s*$/.exec(e.comment)?.[1]||``,r=t.isHash&&n?`${n}@${t.ref}`:t.ref,s=Lc(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},Ne.push({...t,key:s,comment:n,apiUrl:Io(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=Bo(l,c);if(!r)continue;let{indent:u,key:d}=r,f=d===`container`&&c.length===2&&c[0].key===`jobs`,p=d===`image`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`container`||c.length===4&&c[0].key===`jobs`&&c[2].key===`services`),m=d===`uses`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`steps`||c.length===2&&c[0].key===`runs`&&c[1].key===`steps`);if((f||p||m)&&r.value){let t=os(r.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(We(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=l(e),n=m(e);if(Hs(t)){let n=j.get(e),r=pe(e),i=Vs(t)?`dockerfile`:`compose`,a=await L(u(e));ve[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of ls(n,Us(t)))We(e,r,a);continue}if(Ks(t)){let t=j.get(e),n=pe(e),r=await L(u(e));ve[n]={absPath:e,content:t,fileType:`make`},E.make??={};let i={projectDir:u(e),versionConfig:r.versionConfig,filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of Zs(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=Lc(n,e,a);E.make[t]||(E.make[t]={old:X(a),oldOrig:a},F.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of tc(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=Lc(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=ss(e.ref.tag);if(!a)continue;let o=$s(e.writtenImage,e.ref.tag,e.digest);E.make[t]={old:a.version,oldOrig:e.ref.tag},F.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=Ce[t];if(t===`go.work`){E[i]??={};let t=u(n),a=j.get(e),o=Di(a),[{modeConfig:s,include:c,exclude:l,versionConfig:d,pin:f,cooldownDays:p},m]=await Promise.all([L(t),N(o.use,async e=>{let n=Oi(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await re(n,`utf8`)}}catch{return null}},{concurrency:r})]),h=Ve(i,s),g=Ye(i,e,`.`),_=He({modeConfig:s,versionConfig:d,pin:f,cooldownDays:p},t);I(i,g,_),Se.push({file:e,content:a,memberPath:g});let v=new Set,y=[];for(let e of m){if(!e)continue;let t=ii(e.content);t&&v.add(t),y.push({...e,parsed:ai(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=Ye(i,e,t);I(i,o,_),ye.push({absPath:n,content:r,projectDir:u(n),memberPath:o}),ge(i,a,o===`.`?``:`|${o}`,h,c,l,v)}for(let[e,t]of Object.entries(o.replace))!v.has(e)&&$(e,i,c,l,`replace`)&&me(i,`replace`,g===`.`?``:`|${g}`,e,ji(t),X(t));continue}if(t===`go.mod`&&ye.some(e=>e.absPath===n)||t===`package.json`&&Ae.some(e=>e.absPath===n)||t===`Cargo.toml`&&M.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){E[i]??={};let t=j.get(e),a=R.get(e)??Ji(t),o=u(n),s=Fc([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[d,f,p]=await Promise.all([L(o),s?re(s,`utf8`):null,l?va(c,o,`Cargo.toml`,r):[]]),{modeConfig:m,include:h,exclude:g}=d,_=Ve(i,m),v=f?pc(f):new Map,y=(e,t)=>{for(let[n,r]of Oe(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[r,a]of Object.entries(e))if($(r,i,h,g,n)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||r;q(_c(e))&&(o!==r&&oe.set(Rc(n,t,r),o),me(i,n,t,r,bc(v,o,e)??Q(_c(e)),e))}else typeof a==`string`&&q(_c(a))&&me(i,n,t,r,bc(v,r,a)??Q(_c(a)),a)}}}};if(l){let r=Ye(i,e,`.`),s=He(d,o);I(i,r,s),y(a,r===`.`?``:`|${r}`),M.push({absPath:n,content:t,memberPath:r});for(let t of p){let n=Ye(i,e,t.memberPath);I(i,n,s),M.push({...t,memberPath:n}),y(Je(t.absPath,()=>Ji(t.content)),`|${n}`)}}else y(a,qe(i,e,t,o,d));continue}if(t===`package.json`&&B.has(e)){E[i]??={};let t=u(n),a=j.get(e),o=B.get(e),s=Array.isArray(o.workspaces)?o.workspaces:o.workspaces?.packages,c=Array.isArray(s)?s.filter(e=>typeof e==`string`):[],[l,d]=await Promise.all([L(t),va(c,t,`package.json`,r)]),f=Ve(i,l.modeConfig),p=new Set,m=[];for(let e of d){let t=Je(e.absPath,()=>JSON.parse(e.content));typeof t.name==`string`&&t.name&&p.add(t.name),m.push({member:e,pkg:t})}V(e,t,{absPath:n,content:a,memberPath:`.`},o,f,l,p);for(let{member:n,pkg:r}of m)V(e,t,n,r,f,l,p);continue}if(t===`pnpm-workspace.yaml`){E[i]??={};let a=u(n),o=j.get(e),s=ja(o),c=f(a,`package.json`),[l,d,p]=await Promise.all([L(a),Ie(re(c,`utf8`)),va(s,a,`package.json`,r)]),h=Ve(i,l.modeConfig),g=Ye(i,e,t);I(i,g,He(l,a)),Me.push({absPath:n,content:o,memberPath:g});for(let{type:e,name:t,value:n}of ka(o))$(t,i,l.include,l.exclude,e,i,eo(n)?.name??t)&&he(Rc(e,`|${g}`,t),t,n);for(let{selector:e,value:t}of Ue(o)){let n=e.match(/(?:^|>)(?:@[^/>\s]+\/[^@>\s]+|[^@>\s]+)(?=@|>|$)/g)?.at(-1)?.replace(/^>/,``)??e,r=`pnpm-workspace.overrides`;if(!$(e,i,l.include,l.exclude,r,i,n))continue;let a=JSON.stringify(e),o=Rc(r,`|${g}`,e,a);D.set(o,n),O.set(o,e),he(o,e,t)}if(d!==null){let t=Je(c,()=>JSON.parse(d));V(e,a,{absPath:m(c),content:d,memberPath:`.`},t,h,l)}for(let t of p)V(e,a,t,Je(t.absPath,()=>JSON.parse(t.content)),h,l);continue}E[i]??={};let a=u(n),s=await L(a),{modeConfig:c,include:d,exclude:p}=s,h=Ve(i,c),g=j.get(e);ge(i,Je(e,()=>i===`npm`?JSON.parse(g):i===`pypi`?Ji(g):ai(g)),qe(i,e,g,a,s),h,d,p)}let Xe=Object.keys(ae).length>0;if(!Bc(E)&&!Xe)return{results:{},message:`No dependencies found, nothing to do.`};let Ze=[],Qe=(e,t)=>D.get(e)??se.get(e)?.name??Hc(e.split(`\0`)[0].split(`|`)[0],t),$e={needsDates:Le.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Le))!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],c=async(t,r,i)=>{let c=pa(r),{modeConfig:l,versionConfig:u,projectDir:f,pin:p,cooldownDays:m}=a(r),h=s[t],_=se.get(t),[v,y]=await(e===`npm`?h.oldOrig&&Xa(h.oldOrig)?io(i,b):Ja(Qe(t,i),c,l,$e,b,f,h.old):e===`go`?bi(i,r,h.oldOrig||h.old,f,b,d):e===`cargo`?fc(oe.get(t)??i,b):wo(i,b)),x=v;if(x.error)throw Error(x.error);let S=c===`packageManager`?i:x.name,{useGreatest:C,usePre:ee,useRel:w,semvers:te,allowDowngrade:ne,allowedVersions:T,pinnedRange:re,pinNoDowngrade:E,cooldownDays:ae}=ie(u,e,S,i,p,l.pinNoDowngrade,m);x=Xc(x,e,T);let{old:D,oldOrig:O}=h,k=Jn(x,{usePre:ee,useRel:w,useGreatest:C,semvers:te,range:D,mode:e,pinnedRange:re,pinNoDowngrade:E,allowDowngrade:ne,cooldownDays:ae||void 0,now:ae?de:void 0}),A=``;if((e===`go`||e===`pypi`)&&k)A=k;else if(e===`cargo`&&k&&O)A=yc(O,k);else if(k){if(O&&Xa(O)){let e=Pc.exec(O);e?A=`${e[1]}${k}`:O.startsWith(`jsr:`)&&(A=`jsr:${k}`)}else A=_?`npm:${_.name}@${go(D,k,_.range,c)}`:go(D,k,O,c)}let le=ce.get(t);if(!k||k===D||O&&O===A||le&&!ko(le,O||D,A)){n.verbose&&k&&k!==D&&console.error(`${je()} ${g(`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]:``)||``;h.new=A,O&&Xa(O)&&(h.newPrint=k),e===`npm`?o.set(t,{name:Qe(t,i),promise:Ya(x.name,k,l,$e,b,f)}):h.info=e===`pypi`?Nr(x,y,x.info.name):e===`go`?ki(x.newPath||i):`https://crates.io/crates/${x.name}`,Ic(h,ue)};if(await N(Object.keys(s),async t=>{let[n,r]=t.split(`\0`);try{await c(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=Nr({repository:r.repository,homepage:r.homepage},null,t),Ic(i,r.date))})),e===`npm`&&Xe){let e=(await N(Object.entries(ae),async([e,t])=>{try{return await bo(e,t,b)}catch(t){return A(`npm`,e,t),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:c}of e)Ic(s[t]={old:ae[t].old,new:n,oldPrint:hr.test(a)?a.substring(0,7):a,newPrint:hr.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=te(c,e,l,i).cooldownOverride??o;u&&!Sn(n,u,de)&&delete s[t]}})());let H=e=>ie(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);Ne.length&&Ze.push((async()=>{await N(Map.groupBy(Ne,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):gr(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=H(e);return t||!!(n&&!r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===Tn.forgeapi?[]:e.filter(Oc).map(e=>e.comment)],c=[];try{s.length&&(c=await Or(t,n,i,b,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=At.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=Ge(e=>Lo(t,n,i,e,b)),m=Ge(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===Tn.forgeapi?`commits`:`branches`,o=await dr(`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,b);if(o.status===404)return``;if(!o.ok)throw Error(`Unable to fetch ${n}/${i}@${e}`);let s=await o.json();return typeof s?.sha==`string`?s.sha:typeof s?.id==`string`?s.id:typeof s?.commit?.sha==`string`?s.commit.sha:typeof s?.commit?.id==`string`?s.commit.id:``});async function h(e,t){let r={...e,cooldownDays:void 0,now:void 0},a=new Set;for(let o=0;o<100;o++){let o=Kn({},a.size?t.filter(e=>!a.has(e)):t,r);if(!o)return null;let s=u.get(o),c=d.get(s).commitSha;if(!e.cooldownDays)return{version:o,tag:s,commitSha:c,date:``};let l=c?await p(c):``;if(l===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${s}`);if(Sn(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]||``:gr(a)||(g=``),!g){delete E.actions[t];return}let{useGreatest:_,usePre:v,useRel:y,semvers:b,allowDowngrade:x,allowedVersions:S,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w}=H(e),te=gr(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:At,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w||void 0,now:w?de:void 0},S?l.filter(Yc(`actions`,S)):l):null;if(!te){if(!s||!o){delete E.actions[t];return}let e=await m(o);if(!e||e.startsWith(a)||a.startsWith(e)){delete E.actions[t];return}c.old=o,c.new=o,c.oldDigest=a,c.newDigest=e,c.digestOnly=!0,c.info=u,Ic(c,await Ie(p(e)));return}let{tag:ne,commitSha:T,date:re}=te;if(s){if(!T||T.startsWith(a)||a.startsWith(T)){delete E.actions[t];return}c.old=a,c.new=T.substring(0,a.length),c.oldPrint=g,c.newPrint=ne}else{let e=Ro(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,Ic(c,re||(T?await Ie(p(T)):``))};await N(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})()),P.length&&Ze.push((async()=>{await N(Map.groupBy(P,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 bs(e,b);n=t}catch(e){for(let n of t)le(`docker`,n.key,e);return}await N(t,async t=>{try{let r=E.docker[t.key],i=r.oldOrig||r.old,{semvers:a,usePre:o,useRel:s,allowedVersions:c,pinnedRange:l,cooldownDays:u}=ie(t.versionConfig,`docker`,e,e,t.filePin,void 0,t.fileCooldownDays),d=Xc(n,`docker`,c).tags,f=!t.ref.digestOnly&&ss(i)?Ms(d,i,a,u||void 0,u?de:void 0,l,o,s):null,p=f?.newTag??i;if(t.ref.digest){let e=await S(t.ref.namespace,t.ref.repo,p);if(!e||e===t.ref.digest&&!f){delete E.docker[t.key];return}r.oldDigest=t.ref.digest,r.newDigest=e,r.digestOnly=t.ref.digestOnly}else if(!f){delete E.docker[t.key];return}r.new=p,r.info=Ws(t.ref),Ic(r,f?.date)}catch(e){le(`docker`,t.key,e)}},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),F.length&&Ze.push((async()=>{await N(F,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,allowedVersions:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l}=ie(e.versionConfig,e.kind,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays),u={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l||void 0,now:l?de:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await oc(e.installPath,e.projectDir,b,d);if(!t){delete E.make[e.key];return}let[n]=await bi(t,`tool`,X(e.version),e.projectDir,b,d),r=Xc(n,`go`,o),i=Jn(r,{...u,mode:`go`,range:X(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??qr(t,i),s=`${a}${e.installPath.slice(t.length)}`,c=Ar(i,e.version);if(s===e.installPath&&c===e.version){delete E.make[e.key];return}e.newSpec=`${s}@${c}`,f.new=c,f.info=ki(a),Ic(f,r.Time)}else{let[t]=await bs(e.image.ref.fullImage,b),n=Xc(t,`docker`,o).tags,r=Ms(n,e.image.ref.tag,u.semvers,u.cooldownDays,u.now,u.pinnedRange,u.usePre,u.useRel);if(!r){delete E.make[e.key];return}let i=e.image.digest?await S(e.image.ref.namespace,e.image.ref.repo,r.newTag):null;if(e.image.digest&&!i){delete E.make[e.key];return}e.newSpec=$s(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=Ws(e.image.ref),Ic(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 bn()}if(!Bc(E))return k.length?{results:{},errors:k}:{results:{},message:`All dependencies are up to date.`};let et=(e,t)=>{let n=e.split(`
|
|
69
|
+
`),r=new Map(Ue(e).map(e=>[e.selector,e]));for(let[e,i]of O){let a=E.npm?.[e],o=r.get(i);if(!a||!zc(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(`
|
|
70
|
+
`)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=ha(E[e],r.memberPath);Object.keys(t).length&&Gc(r.absPath,n(r.content,t,r))}},t=new Map(Ne.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(F.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}=ve[e]||{};if(!r)continue;let a=Wo(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:hr.test(n.old)?n.newPrint:void 0}}));Gc(r,a),ve[e].content=a}continue}if(n===`docker`){for(let[e,t]of i){let n=ve[e];if(!n)continue;let{absPath:r,content:i,fileType:a,workflowLines:o}=n;Gc(r,(a===`dockerfile`?Is:a===`compose`?Ls:(e,t)=>e.split(`
|
|
71
|
+
`).map((e,n)=>o.has(n)?Rs(e,t):e).join(`
|
|
72
|
+
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=ve[e];n&&Gc(n.absPath,sc(n.content,t.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}continue}if(n===`go`){for(let e of[...ye,...ue.go??[]]){let t=ha(E[n],e.memberPath);if(!Object.keys(t).length)continue;let[r,i]=Si(e.content,t);r!==e.content&&Gc(e.absPath,r),Ei(e.projectDir,i,Gc)}for(let e of Se){let t=Object.fromEntries(Object.entries(ha(E[n],e.memberPath)).filter(([e])=>pa(e.split(`\0`)[0])===`replace`));if(Object.keys(t).length){let[n]=Si(e.content,t);n!==e.content&&Gc(e.file,n)}}}else n===`cargo`?e(n,[...M,...ue.cargo??[]],Ec):n===`npm`?(e(n,Me,(e,t,n)=>et(Aa(e,t),n.memberPath)),e(n,[...Ae,...ue.npm??[]],ao)):e(n,ue[n]??[],Po)}}let tt=Jc(E);return k.length&&(tt.errors=k),tt}export{Hi as n,Qt as r,Zc as t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "18.0.
|
|
3
|
+
"version": "18.0.7",
|
|
4
4
|
"description": "CLI to update npm, uv, cargo, go, docker and actions dependencies",
|
|
5
5
|
"author": "silverwind",
|
|
6
6
|
"repository": {
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"bun": "*"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@types/node": "26.
|
|
45
|
+
"@types/node": "26.3.0",
|
|
46
46
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
47
47
|
"@vitest/coverage-v8": "4.1.11",
|
|
48
|
-
"eslint": "10.9.
|
|
48
|
+
"eslint": "10.9.1",
|
|
49
49
|
"eslint-config-silverwind": "145.0.1",
|
|
50
50
|
"timerel": "5.9.0",
|
|
51
51
|
"tsdown": "0.22.14",
|
|
@@ -53,9 +53,9 @@
|
|
|
53
53
|
"typescript": "6.0.3",
|
|
54
54
|
"typescript-config-silverwind": "20.0.3",
|
|
55
55
|
"updates-config-silverwind": "4.0.5",
|
|
56
|
-
"versions": "15.3.
|
|
56
|
+
"versions": "15.3.7",
|
|
57
57
|
"vitest": "4.1.11",
|
|
58
|
-
"vitest-config-silverwind": "11.6.
|
|
58
|
+
"vitest-config-silverwind": "11.6.1"
|
|
59
59
|
},
|
|
60
60
|
"bin": {
|
|
61
61
|
"updates": "dist/index.js"
|
package/dist/cli.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./shared.js";export{e as parseCliArgs,t as resolveConfig};
|
package/dist/go.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,D as t,E as n,S as r,T as i,_ as a,b as o,c as s,d as c,f as l,g as u,h as d,l as f,m as p,o as m,p as h,s as g,u as _,v,w as y,x as b,y as x}from"./shared.js";export{m as buildGoModulePath,g as encodeGoModulePath,s as extractGoMajor,f as fetchFromGoProxyChain,_ as fetchGoLatestOnce,c as fetchGoProxyInfo,l as getGoInfoUrl,h as goModulePathForVersion,p as goProxyHeaders,d as isGoNoProxy,u as parseGoMod,a as parseGoNoProxy,v as parseGoProxy,x as parseGoWork,o as pickGoListVersion,b as resolveGoProxyChain,r as resolveGoWorkModule,e as rewriteGoImportPaths,y as rewriteGoImports,i as shortenGoModule,n as shortenGoVersion,t as updateGoMod};
|
package/dist/utils.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,P as f,Q as p,R as m,U as h,V as g,W as _,X as v,Y as y,Z as b,et as x,it 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{w as anchorSpecifier,t as cargoTargetTypes,C as cargoTypes,u as commaSeparatedToArray,d as esc,f as expandDepTypes,r as forgeDirs,o as getOrSet,l as goTypes,m as highlightDiff,k as longestFirstAlternation,n as matchesAny,g as memoizeAsync,a as modeByFileName,h as nonPackageEngines,_ as npmTypes,i as pMap,c as parseDuration,E as parsePep508,s as parsePositiveInt,y as parseUvDependencies,v as patternToRegex,b as pushTo,p as serializePep508,e as textTable,x as timestamp,O as tryOrNull,T as uvTypes,D as walkUp,S as walkUpSync};
|