updates 18.0.7 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/prewarm.js +1 -1
- package/dist/shared.js +24 -24
- package/package.json +9 -9
package/README.md
CHANGED
|
@@ -149,10 +149,13 @@ const output = await updates({
|
|
|
149
149
|
|:-|:-|
|
|
150
150
|
|`UPDATES_FORGE_TOKENS`|Comma-separated list of `host:token` pairs for forge APIs, e.g. `github.com:ghp_xxx,localhost:3500:tok_xxx`. The host must match the URL exactly, port included|
|
|
151
151
|
|`UPDATES_GITHUB_API_TOKEN`|GitHub API token, with `GITHUB_API_TOKEN`, `GH_TOKEN`, `GITHUB_TOKEN` and `HOMEBREW_GITHUB_API_TOKEN` as fallbacks, in that order. Only ever sent to GitHub itself|
|
|
152
|
+
|`pnpm_config__auth`|npm registry credentials as [pnpm](https://pnpm.io/npmrc#_auth) reads them, e.g. `{"https://registry.npmjs.org":{"@":{"authToken":"npm-token"},"@org":{"authToken":"org-token"}}}`. `@` is the registry-wide token, `@org` binds a token and registry to that scope. The `_auth` key of pnpm's global `config.yaml` is read the same way|
|
|
152
153
|
|`GOPROXY`|Go module proxy list, honored as go itself does. Default: `https://proxy.golang.org,direct`|
|
|
153
154
|
|`GONOPROXY`|Comma-separated list of Go module patterns to fetch directly, bypassing the proxy|
|
|
154
155
|
|`GOPRIVATE`|Fallback for `GONOPROXY` when not set|
|
|
155
156
|
|
|
156
157
|
A host in `UPDATES_FORGE_TOKENS` wins over the GitHub tokens. Any non-GitHub forge without a matching entry receives no credentials.
|
|
157
158
|
|
|
159
|
+
npm registries resolve in pnpm's order: `--registry`, then `pnpm_config__auth`, `pnpm-workspace.yaml`, the global `config.yaml`, its `_auth` routes, and finally `.npmrc`. A scope-specific token wins over a registry-wide one.
|
|
160
|
+
|
|
158
161
|
© [silverwind](https://github.com/silverwind), distributed under BSD licence
|
package/dist/prewarm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{env as e}from"node:process";import{basename as t,join as n,resolve as r}from"node:path";import{readFileSync as i,readdirSync as a,statSync as o}from"node:fs";const s=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(
|
|
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{let e=new URL(a).origin;_.add(e===c.forgeapi?`${e}/rate_limit`:`${e}/`)}catch{}}return Array.from(_)}export{d as prewarmOrigins};
|
package/dist/shared.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
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
|
|
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]!==`
|
|
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 j}from"node:crypto";import{homedir as M}from"node:os";function le(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 ue=/^(\s*)([A-Za-z0-9][A-Za-z0-9._-]*)(\s*)((?:\[[^\]]*\])?)(\s*)(.*)$/,de=/^(\s*\()([^)]*)(\)\s*)$/,fe=/^(\s*)(===|==|!=|~=|<=|>=|<|>)(\s*)(\S+)(\s*)$/,pe=new Set([`===`,`==`,`>=`,`~=`]),me=/^v?\d[0-9a-z.!+_-]*$/i;function he(e){let t=[];for(let n of e.split(`,`)){let e=fe.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 N(e){let t=e.indexOf(`;`),n=ue.exec(t===-1?e:e.slice(0,t));if(!n)return null;let[,r,i,a,o,s,c]=n,l=de.exec(c);return{name:i,extras:o,specifiers:he(l?l[2]:c),marker:t===-1?``:e.slice(t),head:`${r}${i}${a}${o}${s}`,open:l?.[1]??``,close:l?.[3]??``}}function ge({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 _e(e){return e.find(({op:e,version:t})=>pe.has(e)&&me.test(t))}function ve(e){let t=[];for(let n of e){if(typeof n!=`string`)continue;let e=N(n);if(!e?.specifiers)continue;let r=_e(e.specifiers);r&&t.push({name:e.name,version:r.version,spec:n})}return t}const ye=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`overrides`,`pnpm.overrides`,`packageManager`],be=[`node`,`deno`,`bun`],P=[`.github`,`.gitea`,`.forgejo`],xe={"pnpm-workspace.yaml":`npm`,"package.json":`npm`,"pyproject.toml":`pypi`,"go.work":`go`,"go.mod":`go`,"Cargo.toml":`cargo`},Se=[`project.dependencies`,`project.optional-dependencies.*`,`dependency-groups.*`],Ce=[`deps`,`indirect`,`replace`,`tool`],we=[`dependencies`,`dev-dependencies`,`build-dependencies`,`workspace.dependencies`],Te=[`target.*.dependencies`,`target.*.dev-dependencies`,`target.*.build-dependencies`];function Ee(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 De(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 Oe(e){return e.split(`,`).filter(Boolean)}function ke(){let e=new Date;return new Date(e.getTime()-e.getTimezoneOffset()*6e4).toISOString().replace(`T`,` `).slice(0,-1)}function Ae(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 je={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Me(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=je[n.toLowerCase()];if(r)return Number(e)*r}if(!/^\d+(?:\.\d+)?$/.test(e))throw Error(`Invalid cooldown value: ${e}`);return Number(e)}function Ne(e,t){let n=Math.round(Number(e));if(!Number.isFinite(n)||n<1)throw Error(`Invalid ${t}: ${e}`);return n}async function F(e,t,{concurrency:n=1/0}={}){let r=Array.from(e);if(!Number.isFinite(n))return Promise.all(r.map(t));let i=Array(r.length),a=0;return await Promise.all(Array.from({length:Math.min(Math.max(n,1),r.length)},async()=>{for(;a<r.length;){let e=a++;i[e]=await t(r[e])}})),i}async function Pe(e){try{return await e}catch{return null}}const I=RegExp.escape?e=>RegExp.escape(e):e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function L(e){return Array.from(e).sort((e,t)=>t.length-e.length).map(I).join(`|`)}const Fe=new WeakMap;var R=class extends RegExp{constructor(e,t,n){super(e,n),Fe.set(this,t)}test(e){return Fe.get(this)(e)}};function Ie(e){let t=[],n=0,r=0;for(let i=0;i<e.length;i++)e[i]===`(`||e[i]===`{`?n++:e[i]===`)`||e[i]===`}`?n--:(e[i]===`|`||e[i]===`,`)&&n===0&&(t.push(e.slice(r,i)),r=i+1);return t.push(e.slice(r)),t}function Le(e,t,n,r){let i=0;for(let a=t;a<e.length;a++)if(e[a]===n)i++;else if(e[a]===r&&--i===0)return a;return-1}function Re(e){let t=/^(-?\d+|[A-Za-z])\.\.(-?\d+|[A-Za-z])(?:\.\.(-?\d+))?$/.exec(e);if(!t)return Ie(e);let n=/^-?\d+$/.test(t[1])&&/^-?\d+$/.test(t[2]),r=n?Number(t[1]):t[1].codePointAt(0),i=n?Number(t[2]):t[2].codePointAt(0),a=Math.abs(Number(t[3])||1)*(r<=i?1:-1),o=[];for(;(a>0?r<=i:r>=i)&&o.length<1e3;)o.push(n?String(r):String.fromCodePoint(r)),r+=a;return o}function z(e){let t=``,n=[],r=e=>{t+=e,n.push({kind:`char`,matcher:RegExp(`^(?:${e})$`,`i`)})};for(let i=0;i<e.length;i++){let a=e[i];if(a===`\\`&&i+1<e.length)r(I(e[++i]));else if(a===`*`&&e[i+1]!==`(`){let r=e[i+1]===`*`;for(;e[i+1]===`*`;)i++;r&&e[i+1]===`/`?(t+=`(?:.*/)?`,n.push({kind:`globstarSlash`}),i++):(t+=`.*`,n.push({kind:`span`,slash:!0}))}else if(a===`?`&&e[i+1]!==`(`)r(`[^/]`);else if(a===`[`){let t=e.indexOf(`]`,i+1);if(t===-1)r(`\\[`);else{let n=e.slice(i+1,t);n.startsWith(`!`)&&(n=`^${n.slice(1)}`),r(`[${n.replaceAll(`\\`,`\\\\`)}]`),i=t}}else if(a===`{`){let a=Le(e,i,`{`,`}`);if(a===-1)r(`\\{`);else{let r=Re(e.slice(i+1,a)).map(z);t+=`(?:${r.map(e=>e.source).join(`|`)})`,n.push({kind:`alternatives`,alternatives:r.map(e=>e.tokens),minimum:1,repeat:!1}),i=a}}else if(`@+?*!`.includes(a)&&e[i+1]===`(`){let o=Le(e,i+1,`(`,`)`);if(o===-1)r(I(a));else{let r=Ie(e.slice(i+2,o)).map(z),s=r.map(e=>e.source).join(`|`);t+=a===`!`?`(?!(?:${s})(?:/|$))[^/]*`:`(?:${s})${a===`@`?``:a}`;let c=r.map(e=>e.tokens);n.push(a===`!`?{kind:`negative`,alternatives:c}:{kind:`alternatives`,alternatives:c,minimum:a===`?`||a===`*`?0:1,repeat:a===`+`||a===`*`}),i=o}}else r(I(a))}return{source:t,tokens:n}}function ze(e,t){let n=new WeakMap,r=(e,n,r)=>{for(let i=n;e.add(i),!(i===t.length||!r&&t[i]===`/`);i++);},i=(e,a)=>{let o=n.get(e);o||(o=new Map,n.set(e,o));let s=o.get(a);if(s)return s;let c=new Set([a]);o.set(a,c);for(let n of e){let e=new Set;for(let a of c)if(n.kind===`char`)a<t.length&&n.matcher.test(t[a])&&e.add(a+1);else if(n.kind===`span`)r(e,a,n.slash);else if(n.kind===`globstarSlash`){e.add(a);for(let n=a;n<t.length;n++)t[n]===`/`&&e.add(n+1)}else if(n.kind===`negative`)n.alternatives.some(e=>[...i(e,a)].some(e=>e===t.length||t[e]===`/`))||r(e,a,!1);else{n.minimum===0&&e.add(a);for(let t of n.alternatives)for(let n of i(t,a))e.add(n);if(n.repeat)for(let t of e)for(let r of n.alternatives)for(let n of i(r,t))e.add(n)}if(c=e,!c.size)break}return o.set(a,c),c};return i(e,0).has(t.length)}function Be(e){if(e instanceof RegExp)return/[gy]/.test(e.flags)?new RegExp(e.source,e.flags.replace(/[gy]/g,``)):e;let t=/^(!?)\/(.*)\/(i?)$/.exec(e);if(t)try{let n=new RegExp(t[2],t[3]);return t[1]?new R(e,e=>!n.test(e)):n}catch{}let n=0;for(;e[n]===`!`&&e[n+1]!==`(`;)n++;let r=n%2==1,{source:i,tokens:a}=z(e.slice(n)),o=e=>ze(a,e);return new R(`^${i}$`,r?e=>!o(e):o,`i`)}async function Ve(e,t){let n=e;for(;;){let e=await t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function He(e,t){let n=e;for(;;){let e=t(n);if(e)return e;let r=u(n);if(r===n)return null;n=r}}function B(e,t,n){let r=e.get(t);r?r.push(n):e.set(t,[n])}function V(e,t,n){let r=e.get(t);if(r!==void 0||e.has(t))return r;let i=n();return e.set(t,i),i}function Ue(e){let t=new Map;return n=>V(t,n,()=>e(n))}const We=`0|[1-9]\\d*`,Ge=/^(?:0|[1-9]\d*)$/,Ke=`0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*`,qe=RegExp(`^v?(${We})\\.(${We})\\.(${We})(?:-((?:${Ke})(?:\\.(?:${Ke}))*))?(?:\\+[0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*)?$`),Je=new Map;function H(e){return typeof e==`string`?V(Je,e,()=>{let t=qe.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r)||!Number.isSafeInteger(i))return null;let a=t[4]?t[4].split(`.`).map(e=>/^\d+$/.test(e)&&Number(e)<2**53-1?Number(e):e):[];return{major:n,minor:r,patch:i,prerelease:a,raw:e,version:`${n}.${r}.${i}${a.length?`-${a.join(`.`)}`:``}`}}):null}function Ye(e,t){let n=typeof e==`number`||/^\d+$/.test(e),r=typeof t==`number`||/^\d+$/.test(t);if(n&&r){let n=String(e),r=String(t);return n.length-r.length||(n<r?-1:+(n>r))}return n?-1:r?1:e<t?-1:+(e>t)}function Xe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function Ze(e,t){let n=Xe(e,t);if(n!==0)return n;let r=e.prerelease.length>0,i=t.prerelease.length>0;if(!r&&!i)return 0;if(r&&!i)return-1;if(!r&&i)return 1;let a=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<a;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=Ye(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function Qe(e){return H(e)?.version??null}function U(e){return H(e)}const $e=new Map,et=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function tt(e){return typeof e==`string`?V($e,e,()=>{let t=et.exec(e);return t?{version:`${t[1]}.${t[2]||`0`}.${t[3]||`0`}`}:null}):null}function nt(e,t){let n=H(e),r=H(t);return!n||!r?null:rt(n,r)}function rt(e,t){let n=Ze(e,t);if(n===0)return null;let r=n>0?e:t,i=n>0?t:e,a=r.prerelease.length>0;if(i.prerelease.length>0&&!a){if(!i.patch&&!i.minor)return`major`;if(Xe(i,r)===0)return i.minor&&!i.patch?`minor`:`patch`}let o=a?`pre`:``;return e.major===t.major?e.minor===t.minor?e.patch===t.patch?`prerelease`:`${o}patch`:`${o}minor`:`${o}major`}function it(e,t){let n=H(e),r=H(t);return n&&r?Ze(n,r):null}function at(e,t){return(it(e,t)??-1)>0}function ot(e){let t=/^v?([^.+-]+(?:\.[^.+-]+){0,2})(-[0-9a-zA-Z.-]+)?(\+[0-9a-zA-Z.-]+)?$/.exec(e);if(!t)return null;let n=t[1].split(`.`),r=[],i=!1;for(let e of n)if(/^[xX*]$/.test(e))i=!0,r.push(null);else{if(i||!Ge.test(e))return null;let t=Number(e);if(!Number.isSafeInteger(t))return null;r.push(t)}for(;r.length<3;)r.push(null);return(t[2]||t[3])&&r.some(e=>e===null)||(t[2]||t[3])&&!H(`${r.join(`.`)}${t[2]??``}${t[3]??``}`)?null:{major:r[0],minor:r[1],patch:r[2],suffix:`${t[2]??``}${t[3]??``}`}}function W(e,t,n,r,i=``){let a=H(`${t}.${n}.${r}${i}`);return a?{op:e,semver:a}:null}function G(...e){let t=e.filter(e=>e!==null);return t.length===e.length?t:null}function st(e,t){let n=Ze(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return!1}}function K(e,t,n){return W(`<`,e,t,n,`-0`)}function ct(e,t){if(e.major===null)return t===`>`||t===`<`?G(K(0,0,0)):[];let n=e.major,r=e.minor??0,i=e.patch??0;if(t===`^`||t===`~`){let a=W(`>=`,n,r,i,e.suffix);return e.minor===null?G(a,K(n+1,0,0)):t===`~`?G(a,K(n,r+1,0)):n===0?e.patch!==null&&r===0?G(a,K(0,0,i+1)):G(a,K(0,r+1,0)):G(a,K(n+1,0,0))}return e.minor!==null&&e.patch!==null?G(W(t||`=`,n,r,i,e.suffix)):!t||t===`=`?e.minor===null?G(W(`>=`,n,0,0),K(n+1,0,0)):G(W(`>=`,n,r,0),K(n,r+1,0)):t===`>`?e.minor===null?G(W(`>=`,n+1,0,0)):G(W(`>=`,n,r+1,0)):t===`<=`?e.minor===null?G(K(n+1,0,0)):G(K(n,r+1,0)):t===`<`?e.minor===null?G(K(n,0,0)):G(K(n,r,0)):G(W(`>=`,n,r,0))}function lt(e,t){let n=ot(e),r=ot(t);if(!n||!r)return null;let i=[];if(n.major!==null){let e=W(`>=`,n.major,n.minor??0,n.patch??0,n.suffix);if(!e)return null;i.push(e)}if(r.major===null)return i;let a=r.minor===null?K(r.major+1,0,0):r.patch===null?K(r.major,r.minor+1,0):W(`<=`,r.major,r.minor,r.patch,r.suffix);return a?(i.push(a),i):null}function ut(e){let t=/^(\S+)\s+-\s+(\S+)$/.exec(e);if(t)return lt(t[1],t[2]);let n=e.replace(/~\s*>\s*/g,`~`).replace(/(>=|<=|>|<|=|~|\^)\s+/g,`$1`),r=[];for(let e of n.split(/\s+/).filter(Boolean)){let t=/^(>=|<=|>|<|=|~|\^)?(.+)$/.exec(e),n=t&&ot(t[2]),i=n?ct(n,t[1]??``):null;if(!i)return null;r.push(...i)}return r}const dt=new Map;function ft(e){return V(dt,e,()=>{let t=e.split(`||`).map(e=>ut(e.trim()));return t.some(e=>e===null)?null:t})}function pt(e,t){return t.some(t=>!st(e,t))?!1:!e.prerelease.length||t.some(t=>t.semver.prerelease.length>0&&t.semver.major===e.major&&t.semver.minor===e.minor&&t.semver.patch===e.patch)}function mt(e,t){return!!ft(t)?.some(t=>pt(e,t))}function ht(e,t){let n=H(e);return!!(n&&mt(n,t))}function gt(e){return typeof e==`string`&&ft(e)?e:null}const _t=`v?(?:(\\d+)!)?(\\d+(?:\\.\\d+)*)(?:[-_.]?(a|b|c|rc|alpha|beta|pre|preview)[-_.]?(\\d+)?)?(?:-(\\d+)|[-_.]?(post|rev|r)[-_.]?(\\d+)?)?(?:[-_.]?(dev)[-_.]?(\\d+)?)?(?:\\+([a-z0-9]+(?:[-_.][a-z0-9]+)*))?`,vt=RegExp(`^${_t}$`,`i`),yt=RegExp(_t,`i`),bt={alpha:`a`,beta:`b`,c:`rc`,pre:`rc`,preview:`rc`},xt=new Map;function q(e){return typeof e==`string`?V(xt,e,()=>{let t=vt.exec(e.trim());if(!t)return null;let n=t[3]?.toLowerCase();return{epoch:t[1]?Number(t[1]):0,release:t[2].split(`.`).map(Number),pre:n?[bt[n]??n,Number(t[4]??0)]:null,post:t[5]===void 0?t[6]===void 0?null:Number(t[7]??0):Number(t[5]),dev:t[8]===void 0?null:Number(t[9]??0),local:t[10]?t[10].toLowerCase().split(/[._-]/).map(e=>/^\d+$/.test(e)?Number(e):e):null,version:e.trim()}}):null}function St(e){return q(e)??q(yt.exec(e)?.[0]??``)}const Ct=e=>!!e.pre||e.dev!==null;function wt(e,t){if(!e||!t)return e?1:t?-1:0;let n=Math.min(e.length,t.length);for(let r=0;r<n;r++){let n=typeof e[r]==`number`;if(n!==(typeof t[r]==`number`))return n?1:-1;if(e[r]<t[r])return-1;if(e[r]>t[r])return 1}return e.length-t.length}function Tt(e,t){if(e.epoch!==t.epoch)return e.epoch-t.epoch;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++){let n=(e.release[r]??0)-(t.release[r]??0);if(n)return n}let r=e.pre?0:e.post===null&&e.dev!==null?-1:1,i=t.pre?0:t.post===null&&t.dev!==null?-1:1;if(r!==i)return r-i;if(e.pre&&t.pre){if(e.pre[0]!==t.pre[0])return e.pre[0]<t.pre[0]?-1:1;if(e.pre[1]!==t.pre[1])return e.pre[1]-t.pre[1]}if((e.post??-1)!==(t.post??-1))return(e.post??-1)-(t.post??-1);let a=e.dev??1/0,o=t.dev??1/0;return a===o?wt(e.local,t.local):a<o?-1:1}function Et(e,t){if(e.epoch!==t.epoch)return`major`;let n=Math.max(e.release.length,t.release.length);for(let r=0;r<n;r++)if((e.release[r]??0)!==(t.release[r]??0))return r===0?`major`:r===1?`minor`:`patch`;return null}function Dt(e,t){let n=Tt(e,t);if(n===0)return null;let r=Et(e,t);return Ct(n>0?e:t)?r?`pre${r}`:`prerelease`:r??`patch`}const Ot=/\d+\.\d+\.\d+(?:-[a-zA-Z0-9_.-]+)?/,J={parse:U,parseRange:e=>U(Ot.exec(e)?.[0]??``)??U(tt(e)?.version??``),compare:Ze,diff:rt,isPrerelease:e=>e.prerelease.length>0,isRangePrerelease:e=>/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e),satisfiesRange:mt},kt=new Map;function At(e){return V(kt,e,()=>{let t=e.trim().replace(/^v/i,``);return(U(t)??U(t.replace(/^(\d+\.\d+)(-.+)$/,`$1.0$2`)))||(/^\d/.test(t)?U(tt(t)?.version??``):null)})}const jt={...J,parse:At,parseRange:At,isRangePrerelease:e=>!!At(e)?.prerelease.length},Mt={parse:q,parseRange:St,compare:Tt,diff:Dt,isPrerelease:Ct,isRangePrerelease:e=>{let t=St(e);return!!(t&&Ct(t))},satisfiesRange:({release:e},t)=>ht(`${e[0]??0}.${e[1]??0}.${e[2]??0}`,t)},Nt=/[A-Za-z_$]/,Pt=/[A-Za-z0-9_$]/;function Ft(e){let t=``,n=0,r=e.length;function i(t){if(e[t+1]===`/`){for(t+=2;t<r&&e[t]!==`
|
|
3
3
|
`;)t++;return t}for(t+=2;t<r&&(e[t]!==`*`||e[t+1]!==`/`);)t++;return t+2}function a(t){for(;t<r;){if(/\s/.test(e[t])){t++;continue}if(e[t]===`/`&&(e[t+1]===`/`||e[t+1]===`*`)){t=i(t);continue}break}return t}for(;n<r;){let o=e[n];if(o===`"`){let i=n++;for(;n<r;){let t=e[n++];if(t===`\\`)n++;else if(t===`"`)break}t+=e.slice(i,n);continue}if(o===`'`){for(t+=`"`,n++;n<r;){let i=e[n];if(i===`\\`){let a=e[n+1];if(a===`'`){t+=`'`,n+=2;continue}if(a===`
|
|
4
|
-
`){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];if(r===`}`||r===`]`){n++;continue}t+=o,n++;continue}if(
|
|
5
|
-
`);if(i===-1)return null;let a=r.substring(0,i),o=r.substring(i+1);if(!a||!o)return null;let s=new Date;return await 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=
|
|
7
|
-
`),
|
|
8
|
-
`)){let[e,a]=i.trim().split(/\s+/);if(
|
|
4
|
+
`){n+=2;continue}t+=i,n+1<r?(t+=a,n+=2):n++;continue}if(i===`"`){t+=`\\"`,n++;continue}if(i===`'`){t+=`"`,n++;break}t+=i,n++}continue}if(o===`/`&&(e[n+1]===`/`||e[n+1]===`*`)){n=i(n),t+=` `;continue}if(o===`,`){let r=e[a(n+1)];if(r===`}`||r===`]`){n++;continue}t+=o,n++;continue}if(Nt.test(o)){let i=n;for(;n<r&&Pt.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 It={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 Lt(e){let t;for(let n of e.matchAll(/(\d+(?:\.\d+)?)\s*([a-z]+)/gi)){let e=It[n[2].toLowerCase()];if(e===void 0)return;t=(t??0)+Number(n[1])*e}return t}const Rt={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}{/,}**`}},zt=new Set([`updateTypes`,`managers`,`datasources`,`depTypeList`,`paths`,`languages`,`baseBranchList`,`sourceUrlPrefixes`,`matchFiles`,`matchPaths`]);function Bt(e){let t={Package:[],Dep:[]};for(let[n,r]of Object.entries(e)){let e=Object.hasOwn(Rt,n)?Rt[n]:void 0;if(!e){if(n.startsWith(`match`)||n.startsWith(`exclude`)||zt.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=Vt(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 Vt(e){let t=/^!?\/(.*)\/(i?)$/.exec(e);if(t)try{return new RegExp(t[1],t[2])}catch{return}}const Ht=new Map,Ut=e=>V(Ht,e,()=>Be(e)),Wt=(e,t,n)=>(!t?.length||t.some(t=>Ut(t).test(e)))&&(!n?.length||n.every(t=>!Ut(t).test(e)));function Gt(e,t,n){return Wt(t,e.matchPackageNames,e.excludePackageNames)&&Wt(n,e.matchDepNames,e.excludeDepNames)}const Kt=new WeakMap;var qt=class extends RegExp{constructor(e,t){super(e),Kt.set(this,t)}testNames(e,t){return Kt.get(this)(e,t)}test(e){return this.testNames(e,e)}};function Jt(e,t,n,r){return e instanceof qt?e.testNames(n,r):e.test(t)}function Yt(e,t){let n=[],r={},i=new Set,a=[];for(let r of e){if(!r||typeof r!=`object`)continue;let e=Bt(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=Lt(r.minimumReleaseAge);e!==void 0&&(c.cooldownDays=e)}if(typeof r.allowedVersions==`string`){let e=gt(r.allowedVersions);if(!e&&!Vt(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&&Gt(t,e,e))?.allowedVersions;t&>(t)&&(r[e]=t)}let o;return n.some(e=>!e.enabled)&&(o=new qt(`renovate-package-rules`,(e,t)=>{let r=!0;for(let i of n)Gt(i.matchers,e,t)&&(r=i.enabled);return!r})),{disabled:o,pin:r,versionRules:a}}function Xt(e,t){if(e.enabled===!1)return{exclude:[`*`]};let n={};if(t.cooldown&&typeof e.minimumReleaseAge==`string`){let t=Lt(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 qt(`^${I(e)}$`,(t,n)=>n===e)):[],{disabled:i,pin:a,versionRules:o}=Yt(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 Zt=[`renovate.json`,`renovate.jsonc`,`renovate.json5`];async function Qt(e,t={}){let n=await Ve(e,async e=>{for(let t of Zt){let n=f(e,t),r;try{r=await re(n,`utf8`)}catch{continue}let i;try{i=Ft(r)}catch(e){throw Error(`Unable to parse renovate config ${n}: ${e.message}`)}if(i&&typeof i==`object`)return{parsed:i,path:n}}return null});return n?Xt(n.parsed,t):{}}const $t=Symbol(`cliBaseConfig`),en={"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`}},tn=new Set([`allow-downgrade`,`greatest`,`minor`,`patch`,`prerelease`,`release`]);function nn(e){return Array.isArray(e)?!e.length||e.includes(!0)?!0:new Set(e.filter(e=>typeof e==`string`).flatMap(Oe)):typeof e==`string`?new Set([e]):typeof e==`boolean`&&e}function rn(e){for(let[t,{short:n}]of Object.entries(en))if(t===e||n===e)return t;return``}function an(e){return new Set(e.map(Be))}function on(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(Oe):[]}function sn(e){for(let[t,n]of Object.entries(e??{}))if(!gt(n))throw Error(`Invalid pin range for ${t}: ${n}`)}function cn(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 sn(t),t}function ln(e){return typeof e==`boolean`?e:!Array.isArray(e)||!e.length?!1:an(e)}const un=Ue(e=>Ve(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})),dn=Ue(async e=>{let t=await un(e)??{},n=await Qt(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??[]]),sn(r.pin),r});function fn(e){return new Promise((t,n)=>{y(e,`utf8`,(e,r)=>e?n(e):t(r))})}const pn=f(r===`win32`?t.LOCALAPPDATA||f(M(),`AppData`,`Local`):t.XDG_CACHE_HOME||f(M(),`.cache`),`updates`),mn=new Map;function hn(e){return j(`sha256`).update(e).digest(`hex`)}const gn=6048e5;async function _n(e,t=pn){try{let n=f(t,`${hn(e)}.cache`);if(Date.now()-(await oe(n)).mtimeMs>gn)return await se(n),null;let r=await fn(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 Pe(D(n,s,s)),{etag:a,body:o}}catch{return null}}const vn=new Set;let yn=0;function bn(e,t,r,i=pn){let a=(async()=>{try{await V(mn,i,()=>T(i,{recursive:!0}))}catch{mn.delete(i);return}let a;try{let o=f(i,`${hn(e)}.cache`);a=`${o}.${n}-${yn++}.tmp`,await O(a,`${t}\n${r}`),await ae(a,o)}catch{a&&await Pe(se(a))}})();vn.add(a),(async()=>{await a,vn.delete(a)})()}async function xn(e=pn,t=4096){for(;vn.size;)await Promise.all(vn);try{let n=(await ie(e)).filter(e=>e.endsWith(`.cache`)),r=(await Promise.all(n.map(async t=>{let n=f(e,t);try{return{path:n,mtime:(await oe(n)).mtimeMs}}catch{return null}}))).filter(e=>e!==null).sort((e,t)=>t.mtime-e.mtime),i=Date.now()-gn,a=r.filter(e=>e.mtime>=i);await Promise.all([...r.slice(a.length),...a.slice(t)].map(e=>Pe(se(e.path))))}catch{}}var Sn=`18.1.0`;function Cn(e,t,n){if(!t||!n)return!0;let r=e?Date.parse(e):NaN;return!Number.isNaN(r)&&(n-r)/864e5>=t}const wn=Sn,Tn=`https://api.github.com`,Y={registry:`https://registry.npmjs.org`,jsrapi:`https://jsr.io`,forgeapi:Tn,pypiapi:`https://pypi.org`,cargoapi:`https://crates.io`,dockerapi:`https://hub.docker.com`,goproxy:`https://proxy.golang.org`},X=e=>e[0]===`v`?e.substring(1):e,En=e=>e.endsWith(`/`)?e.slice(0,-1):e;function Dn(e,t){return{headers:{"user-agent":`updates/${wn}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}const On=new Set([`ECONNRESET`,`ECONNREFUSED`,`ETIMEDOUT`,`EAI_AGAIN`,`EPIPE`,`UND_ERR_SOCKET`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`]);function kn(e){if(e?.name===`TimeoutError`||e?.name===`AbortError`)return!0;let t=e?.code??e?.cause?.code;return typeof t==`string`&&On.has(t)}async function An(e,t){try{return await fetch(e,t)}catch(t){let n=Error(`Failed to fetch ${e}${t?.message?`: ${t.message}`:``}`,{cause:t});throw n.transient=kn(t),n}}async function jn(e,t,n={}){let r=Bn(e);for(let i=0;;i++)try{let a=await r(()=>e.doFetch(t,{...n,signal:AbortSignal.timeout(e.fetchTimeout)})),o=a?.headers?.get?.(`retry-after`)?.trim(),s=o&&!/^\d+$/.test(o)?Date.parse(o):NaN,c=o?/^\d+$/.test(o)?Number(o)*1e3:Number.isNaN(s)?null:Math.max(s-Date.now(),0):null,l=e.fetchTimeout,u=a.status>=500&&a.status<600?c!==null&&c<=l?c:0:(a.status===429||a.status===403&&c!==null)&&(c===null||c<=l)?c??0:null;if(u===null||i>=2)return a;a.body&&await a.body.cancel(),u&&await A(u)}catch(e){if(i>=2||!e?.transient)throw e}}const Mn=e=>t=>JSON.stringify(e(JSON.parse(t))),Nn=new WeakMap;function Pn(e,t,n,r,i,a){let o=JSON.stringify([e,i,a,n.method??`GET`,Array.from(new Headers(n.headers).entries()).sort(),n.body??null,r?.toString()]),s=V(Nn,t,()=>new Map),c=s.get(o);return c||(c=(async()=>{try{let o=t.noCache?null:await _n(i);if(a&&o)return{body:o.body};let s=n.headers,c=o?{...s,"if-none-match":o.etag}:s,l=await jn(t,e,{...n,headers:c});if(l.status===304&&o)return{body:o.body,res:l};if(!l.ok)return{res:l};let u=await l.text();if(r&&u.length>=16384)try{u=r(u)}catch{}let d=a?`immutable`:l.headers.get(`etag`);return d&&!t.noCache&&bn(i,d,u),{body:u,res:l}}finally{s.delete(o)}})(),s.set(o,c)),c}function Fn(e,t,n={},r,i=e){return Pn(e,t,n,r,i,!1)}function In(e,t,n={},r){return Pn(e,t,n,r,e,!0)}async function Z(e,t,n,r,i=!0){let a=V(e,t,()=>new Map),o=a.get(n);if(o)return o;let s=r();a.set(n,s);try{let e=await s;return i||a.delete(n),e}catch(e){throw a.delete(n),e}}const Ln=new ce,Rn=e=>Math.max(e.concurrency||50,1),zn=new WeakMap;function Bn(e){return V(zn,e,()=>{let t=Rn(e),n=0,r=0,i=[];return async e=>{if(Ln.getStore())return e();n<t?n++:await new Promise(e=>{i.push(e)});try{return await Ln.run(!0,e)}finally{r<i.length?(i[r++](),r===i.length&&(i=[],r=0)):n--}}})}function Vn(e,t=J){let n=t.parse(e);return!!(n&&t.isPrerelease(n))}const Hn=new WeakMap,Un=new WeakMap;function Wn(e,t,n,r,i=J){let a=t||i.isRangePrerelease(e),o=r;if(a){let e=t?Hn:Un;o=e.get(r)??new Set(r).add(`prerelease`),t&&(r.has(`patch`)&&o.add(`prepatch`),r.has(`minor`)&&o.add(`preminor`),r.has(`major`)&&o.add(`premajor`)),e.set(r,o)}return{effectiveSemvers:o,skipsPrerelease:e=>(!a||n)&&!!e&&i.isPrerelease(e)}}function Gn(e){return tt(e)?.version??``}function Kn(e,t,{range:n,semvers:r,useGreatest:i,usePre:a,useRel:o,latest:s,pinnedRange:c,pinNoDowngrade:l,allowDowngrade:u,cooldownDays:d,now:f,getVersionDate:p,versioning:m=J}){let h=m.parseRange(n);if(!h)return null;let{effectiveSemvers:g,skipsPrerelease:_}=Wn(n,a,o,r,m),v=s?m.parse(s):null,y=i||a&&!o||v&&c&&!m.satisfiesRange(v,c)?null:v,b=!!(y&&m.compare(h,y)>0),x=!!c&&!l&&!m.satisfiesRange(h,c),S=!!u&&(!!y||m.isPrerelease(h)),C=e?.time,ee=!!(d&&f),w=null;for(let e of t){let t=m.parse(e);if(!t||_(t))continue;let n=m.compare(t,h)<=0;if(n&&!x&&!S||w&&m.compare(t,w)<=0||n&&!x&&y&&m.compare(t,y)!==0||!n&&y&&!b&&m.compare(t,y)>0||c&&!m.satisfiesRange(t,c)||ee&&!Cn(p?p(e):C?.[e],d,f))continue;let r=m.diff(h,t),i=r&&!m.isPrerelease(t)?r.replace(/^pre/,``):r;i&&g.has(i)&&(w=t)}return w?.raw??w?.version??null}function qn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Jn(e,{mode:t,range:n,useGreatest:r,usePre:i,useRel:a,semvers:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l,now:u,allowDowngrade:d}){if(n===`*`)return null;let f=t===`pypi`?Mt:J,p=n.includes(`||`)?n.split(`||`).pop().trim():n,m=[],h=``,g;if(t===`pypi`){let t=e?.releases;if(!t)return null;let n=e=>!(!e||e.yanked);m=Object.keys(t).filter(e=>Array.isArray(t[e])&&t[e].some(n)),g=e=>t[e].reduce((e,t)=>{if(!n(t))return e;let r=t?.upload_time_iso_8601,i=typeof r==`string`?Date.parse(r):NaN;return!Number.isNaN(i)&&i<e.time?{date:r,time:i}:e},{time:1/0}).date,h=e.info?.version??``}else if(t===`npm`||t===`cargo`){if(!e?.versions)return null;if(m=Object.keys(e.versions),h=e[`dist-tags`]?.latest??``,t===`npm`&&!e.versions[Gn(p)]?.deprecated){let t=m.filter(t=>!e.versions[t]?.deprecated);m=t.length?t:m}}else if(t===`go`){let t=Gn(p);if(!t)return null;let{effectiveSemvers:n,skipsPrerelease:r}=Wn(p,i,a,o,f),m=e.old||p,h=f.parseRange(m),g=!!d||!!s&&!c&&!!h&&!f.satisfiesRange(h,s),_=(e,i)=>{let a=Gn(e),o=f.parse(e),c=qn(e);if(!a||!c&&r(o))return!1;let d=nt(m,e)??nt(t,a),p=c?d===`prerelease`?`patch`:d?.replace(/^pre/,``):d;return!p||!n.has(p)||!g&&o&&h&&f.compare(o,h)<0||!Cn(i,l,u)?!1:!s||ht(a,s)};return _(e.new,e.Time)?e.new:_(e.sameMajorNew,e.sameMajorTime)?(e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew):null}return Kn(e,m,{range:p,semvers:o,useGreatest:r,usePre:i,useRel:a,latest:h,pinnedRange:s,pinNoDowngrade:c,allowDowngrade:d,cooldownDays:l,now:u,getVersionDate:g,versioning:f})}function Yn(e){try{return new URL(e).host}catch{return``}}function Xn(e){let n=Oe(t.UPDATES_FORGE_TOKENS??``).find(t=>{let n=t.lastIndexOf(`:`);return n>0&&t.slice(0,n)===e});return n?n.slice(n.lastIndexOf(`:`)+1):null}let Zn;function Qn(){return Zn||=(async()=>{let[{execFile:e},{promisify:t}]=await Promise.all([import(`node:child_process`),import(`node:util`)]);return t(e)})(),Zn}const $n=[`UPDATES_GITHUB_API_TOKEN`,`GITHUB_API_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`HOMEBREW_GITHUB_API_TOKEN`];function er(){return Array.from(new Set($n.map(e=>t[e]).filter(e=>!!e)))}const tr=/^http\.(\S+)\/\.extraheader AUTHORIZATION:\s*basic\s+(\S+)$/i;function nr(e){let t=new Map;for(let n of e.split(/\r?\n/)){let e=tr.exec(n);if(!e)continue;let r=Yn(e[1]),i=k.from(e[2],`base64`).toString(`utf8`),a=i.slice(i.indexOf(`:`)+1);r&&a&&!t.has(r)&&t.set(r,a)}return t}let rr;function ir(){return rr??=(async()=>{try{let{stdout:e}=await(await Qn())(`git`,[`config`,`--get-regexp`,`^http\\..*\\.extraheader$`],{encoding:`utf8`,timeout:5e3});return nr(e)}catch{return new Map}})()}const ar=new Map;async function or(e,t){if(!e)return[];let n=Xn(e);if(n)return[n];let r=e===`api.github.com`?`github.com`:e,i=r===`github.com`||e===Yn(t)?er():[],a=(await ir()).get(r);return Array.from(new Set(a?[...i,a]:i))}var sr=class extends Error{name=`ForgeError`;kind;host;status;reset;constructor(e,t,n,{status:r=0,reset:i=0,cause:a}={}){super(n,{cause:a}),this.kind=e,this.host=t,this.status=r,this.reset=i}};async function cr(e){if(e.status!==403&&e.status!==429)return null;let t=Number(e.headers?.get?.(`x-ratelimit-reset`))||0;if(e.headers?.get?.(`x-ratelimit-remaining`)===`0`||e.headers?.get?.(`retry-after`))return t;try{let{message:n}=await(typeof e.clone==`function`?e.clone():e).json();if(typeof n!=`string`)return null;if(n.includes(`rate limit exceeded`)||n.includes(`abuse detection mechanism`)||n.startsWith(`You have exceeded a secondary rate limit`))return t}catch{}return null}async function lr(e,t,n,r){if(e.status>=500)throw new sr(`server`,n,`Received ${e.status}${e.statusText?` ${e.statusText}`:``} from ${t}`,{status:e.status});let i=await cr(e);if(i===null)return e;throw new sr(`rateLimit`,n,`Rate limit exceeded for ${n}${r?` even though a token was sent`:`, set one for this host in UPDATES_FORGE_TOKENS`}${i?`, resets at ${new Date(i*1e3).toISOString()}`:``}`,{status:e.status,reset:i})}async function ur(e,t,n){let r=Yn(e),i=await or(r,t.forgeApiUrl),a=async a=>{let o=Dn(`Bearer`,a);return o.headers={...o.headers,...n},lr(await jn(t,e,o),e,r,!!i.length)};try{if(!i.length)return await a();let e=ar.get(r);for(let t of e&&i.includes(e)?[e,...i.filter(t=>t!==e)]:i){let n=await a(t);if(n.status!==401&&n.status!==403)return ar.set(r,t),n;t===e&&ar.delete(r)}return await a()}catch(e){throw e instanceof sr?e:new sr(`network`,r,e?.message??String(e),{cause:e})}}function dr(e,t){let n=J.parse(X(t));if(!n)return null;let r=``,i=n;for(let t of e){let e=J.parse(X(t));e&&J.compare(e,i)>0&&(r=t,i=e)}return r||null}function fr(e){let t=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``);return/^[a-z]+:[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?t.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]+\/[a-z0-9-]+$/.test(t)?`https://github.com/${t}`:t}const pr=RegExp(`^(?:[0-9a-f]{6,7}|[0-9a-f]{40}|[0-9a-f]{64})$`,`i`),mr=/^(?=.*[a-f])[0-9a-f]{7,40}$/i;function hr(e){return/^v?\d+(?:\.\d+)*(?:[-+][\w.-]+)?$/.test(e)}function gr(e){let t=e?.commit??e;return t?.committer?.date||t?.author?.date||``}function _r(e){if(!Array.isArray(e))throw TypeError(`Invalid Forge tags response`);return e.map(e=>{if(typeof e?.name!=`string`||e.commit?.sha!==void 0&&typeof e.commit.sha!=`string`)throw TypeError(`Invalid Forge tag entry`);return{name:e.name,commitSha:e.commit?.sha||``}})}const vr=(e,t)=>{if(!t)return _r(e);if(!Array.isArray(e))throw TypeError(`Invalid cached Forge tags response`);return e.map(e=>{if(typeof e?.name!=`string`||typeof e.commitSha!=`string`||e.isStable!==void 0&&typeof e.isStable!=`boolean`)throw TypeError(`Invalid cached Forge tag entry`);return e})},yr=new WeakMap;function br(e,t,n,r){let i=`${n}${e}`;return Z(yr,t,i,async()=>{let n=t.noCache?null:await _n(e),a=await ur(e,t,n?{"if-none-match":n.etag}:void 0);if(a.status===304&&n)return n.body;if(!a.ok)return yr.get(t).delete(i),null;let o=await r(a),s=a.headers.get(`etag`);return s&&!t.noCache&&bn(e,s,o),o})}function xr(e,t=!1){if(!Array.isArray(e))throw TypeError(`Invalid ${t?`cached `:``}Forge releases response`);return e.map(e=>{let n=t?e?.name:e?.tag_name,r=t?e?.isStable:!e?.prerelease&&e?.draft!==!0;if(typeof n!=`string`||(t?typeof r!=`boolean`:typeof e?.prerelease!=`boolean`||e.draft!==void 0&&typeof e.draft!=`boolean`))throw TypeError(`Invalid ${t?`cached `:``}Forge release entry`);return{name:n,isStable:r}})}async function Sr(e,t,n,r){let i=await br(e,t,n,async e=>JSON.stringify({link:e.headers.get(`link`)||``,[n]:r(await e.json(),!1)}));if(!i)return null;let a=JSON.parse(i);if(typeof a?.link!=`string`)throw TypeError(`Invalid cached Forge ${n} response`);return{entries:r(a[n],!0),link:a.link}}function Cr(e){let t=/<([^>]+)>;\s*rel="last"/.exec(e);if(!t)return 0;let n=Number(new URL(t[1]).searchParams.get(`page`));if(!Number.isSafeInteger(n)||n<1)throw TypeError(`Invalid Forge pagination URL`);return Math.min(n,100)}async function wr(e,t,n,r,i){let a=await Sr(e(1),t,n,r);if(!a)return;let o=Cr(a.link),s=Rn(t);for(let c=2,l=1,u=i(a.entries);c<=o&&!u;c+=l,l=Math.min(l*2,s)){let a=await Promise.all(Array.from({length:Math.min(l,o-c+1)},(i,a)=>Sr(e(c+a),t,n,r)));for(let e of a)u=i(e?.entries??[])}}async function Tr(e,t,n){let r=new Map;return await wr(n=>`${Tn}/repos/${e}/${t}/releases?per_page=100&page=${n}`,n,`releases`,xr,e=>{for(let t of e)r.set(t.name,t.isStable);return!1}),r}async function Er(e,t,n,r,i=[]){let a=[],o=new Set(i.filter(Boolean)),s=o.size>0;return await wr(r=>`${e}/repos/${t}/${n}/tags?per_page=100&page=${r}`,r,`tags`,vr,e=>{for(let t of e){for(let e of o)(e===t.name||t.commitSha.startsWith(e))&&o.delete(e);a.push(t)}return s&&!o.size}),a}async function Dr(e,t,n,r,i=[],a=!0){if(e!==`https://api.github.com`||!a)return Er(e,t,n,r,i);let[o,s]=await Promise.allSettled([Er(e,t,n,r,i),Tr(t,n,r)]);if(o.status===`rejected`)throw o.reason;if(s.status===`rejected`&&!(s.reason instanceof sr))throw s.reason;if(s.status===`fulfilled`)for(let e of o.value)s.value.has(e.name)&&(e.isStable=s.value.get(e.name));return o.value}function Or(e,t,n,r){throw e?.status&&e.statusText?Error(`Received ${e.status} ${e.statusText} from ${t}`):Error(`Unable to fetch ${n} from ${r}`)}function kr(e,t,n=``){let r=X(e),i=X(t).split(`.`).length,a=i>=3?r:Array.from({length:i},(e,t)=>r.split(`.`)[t]||`0`).join(`.`);return`${t.startsWith(`v`)?`v`:``}${a}${n}`}function Ar(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}const jr=[`repository`,`Repository`,`repo`,`Repo`,`source`,`Source`,`source code`,`Source code`,`Source Code`,`homepage`,`Homepage`];function Mr({repository:e,homepage:t,info:n},r,i){if(n){let t=n.project_urls;for(let n of jr)if(t?.[n]){e=t[n];break}e??=`https://pypi.org/project/${i}/`}let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=fr(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a+=`/${Ar(a)}/${e.directory}`)),a||t||``)}function Nr(e){let t=e.includes(`:/`)||e.startsWith(`/`);return En(!t&&/[.:/]/.test(e)?`https://${e}`:e)}async function Pr(e,t){for(let{url:n,fallback:r}of e)try{let e=await t(n);if(e!==null)return e}catch(e){if(r===`,`)throw e}return null}function Fr(e){let t=[];for(let n of e.matchAll(/([^,|]*)([,|]?)/g)){let e=n[1].trim();if(!e)continue;let r=n[2]===`|`?`|`:`,`;if(e===`off`||e===`direct`){t.push({url:e,fallback:r});break}t.push({url:Nr(e),fallback:r})}return t}function Ir(e){if(typeof e==`string`)return[{url:En(e),fallback:`,`}];let n=Fr(t.GOPROXY||`${Y.goproxy},direct`);if(!n.length)throw Error(`GOPROXY list is not the empty string, but contains no entries`);return n}function Lr(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim().replace(/\/+$/,``)).filter(Boolean)}const Rr=new Map;function zr(e){return V(Rr,e,()=>{let t=``;for(let n of e.matchAll(/\[([^\]]*)\]|./gs)){let[e,r]=n;t+=r===void 0?e===`*`?`[^/]*`:e===`?`?`[^/]`:I(e):`[${r.replace(/\\/g,`\\\\`)}]`}return RegExp(`^${t}(?:/.*)?$`)})}function Br(e,t){return t.some(t=>zr(t).test(e))}function Vr(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}const Hr=/\/v(\d+)$/,Ur=/^gopkg\.in\/.*?\.v(\d+)$/;function Wr(e){let t=Ur.exec(e)??Hr.exec(e);return t?Number.parseInt(t[1]):1}function Gr(e,t){if(e.startsWith(`gopkg.in/`))return`${e.replace(/\.v\d+$/,``)}.v${t}`;let n=e.replace(Hr,``);return t<=1?n:`${n}/v${t}`}function Kr(e,t){if(t.includes(`+incompatible`))return e;let n=Number.parseInt(X(t));return Number.isNaN(n)||n===Wr(e)?e:Gr(e,n)}const qr=/^(module|require|replace|exclude|tool|use)(?:\s*\(\s*(?:\/\/.*)?$|\s+(.+)$)/,Jr=/^(\S+)\s+(v\S+)/,Yr=/^(\S+)(?:\s+(v\S+))?\s+=>\s+(\S+)(?:\s+(v\S+))?/,Xr=e=>e.replace(/^"(.*)"$/,`$1`);function Zr(e){return e.startsWith(`./`)||e.startsWith(`/`)||e.startsWith(`../`)}function Qr(e){let t=Yr.exec(e);if(!t)return null;let[,n,r,i,a]=t;return{origModule:Xr(n),origVersion:r??``,targetModule:Xr(i),targetVersion:a??``}}function*$r(e){let t=null;for(let[n,r]of e.entries()){let e=r.trim();if(!e||e.startsWith(`//`))continue;if(t){if(/^\)\s*(?:\/\/.*)?$/.test(e)){t=null;continue}yield{kind:t,value:e,lineNumber:n};continue}let i=qr.exec(e);i&&(i[2]===void 0?t=i[1]:yield{kind:i[1],value:i[2],lineNumber:n})}}function ei(e){return e.startsWith(`golang.org/x/`)}async function ti(e,t,n){let r=t,i=t&&!Vn(t.Version)?t:null;for(let t=e+2;r;t++){let e=await n(t);if(!e)break;r=e,Vn(e.Version)||(i=e)}return i??r}function ni(e,t,n,r){let i=n??r;return[{name:e,old:t,new:X(i.Version),Time:i.Time,...i.path!==e&&{newPath:i.path},sameMajorNew:X(r.Version),sameMajorTime:r.Time},null]}function ri(e){for(let{kind:t,value:n}of $r(e.split(/\r?\n/)))if(t===`module`)return Xr(n.split(/\s/,1)[0]);return``}function ii(e){let t={},n={},r={},i={},a={},o=new Set,s=[];for(let i of $r(e.split(/\r?\n/))){if(i.kind===`tool`){s.push(Xr(i.value.split(/\s/,1)[0]));continue}if(i.kind===`exclude`){let e=Jr.exec(i.value);e&&(a[Xr(e[1])]??=[]).push(e[2]);continue}if(i.kind===`replace`){let e=Qr(i.value);e&&(e.targetVersion&&!Zr(e.targetModule)&&(r[e.targetModule]=e.targetVersion),e.origVersion||o.add(e.origModule));continue}if(i.kind!==`require`)continue;let e=Jr.exec(i.value);e&&((i.value.includes(`// indirect`)?n:t)[Xr(e[1])]=e[2])}for(let e of o)delete t[e],delete n[e];let c=[...Object.keys(n),...Object.keys(t)];for(let e of s){let r=``;for(let t of c)(e===t||e.startsWith(`${t}/`))&&t.length>r.length&&(r=t);let a=n[r]?n:t;a[r]&&(i[r]=a[r],delete a[r])}return{deps:t,indirect:n,replace:r,tool:i,...Object.keys(a).length&&{exclude:a}}}const ai=new WeakMap;function oi(e,t,n){let r=t.includes(`|`)?t.slice(t.indexOf(`|`)+1):``,i=r.includes(`:`)?r.slice(r.indexOf(`:`)+1):r,a=V(ai,n,()=>new Map);for(let t of i?[f(e,i,`go.mod`),f(e,`go.mod`)]:[f(e,`go.mod`)]){let e=m(t),n=V(a,e,()=>{try{return new Map(Object.entries(ii(b(e,`utf8`)).exclude??{}).map(([e,t])=>[e,new Set(t)]))}catch{return null}});if(n)return n}return new Map}async function si(e,n,r,i,a){let o=Wr(e),s=async(e,n,a)=>{try{let o=a??`latest`,s=[`list`,`-m`,...a?[]:[`-versions`],`-json`,`${e}@${o}`],{stdout:c}=await i.execFile(`go`,s,{timeout:n,cwd:r,env:{...t,GOPROXY:`direct`}}),l=JSON.parse(c);return{Version:l.Version,Time:l.Time||``,path:e,Versions:l.Versions}}catch(t){let n=String(t?.stderr??``).trim().split(`
|
|
6
|
+
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@${a??`latest`} failed: ${n}`)}},c=async(e,t)=>{let n=await s(e,t),r=a.get(e);if(!r?.has(n.Version))return n;let i=mi((n.Versions??[]).join(`
|
|
7
|
+
`),hi(e),r);if(!i)throw Error(`No non-excluded versions found for ${e}`);return s(e,t,i.Version)},l=e=>Pe(c(e,i.goProbeTimeout)),[u,d]=await Promise.all([c(e,i.fetchTimeout),ei(e)?null:l(Gr(e,o+1))]);return ni(e,n,await ti(o,d,t=>l(Gr(e,t))),u)}const ci={"accept-encoding":`gzip, deflate, br`},li=e=>e===404||e===410;async function ui(e,t,n){try{let t=await e.json();if(t?.Version)return{Version:t.Version,Time:t.Time||``,path:n}}catch{}throw Error(`Invalid response from ${t}`)}const di=async(e,t,n)=>{let r=`${t}/${Vr(n)}/@latest`,i=await e(r);if(i.ok)return ui(i,r,n);if(li(i.status))return null;Or(i,r,n,t)},fi=new WeakMap;function pi(e,t,n,r,i){return Z(fi,e,`latest${t}${r}/${i}`,()=>di(n,r,i))}function mi(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&&Qe(e)&&!n.has(e)&&!(t&&Number.parseInt(X(e))!==t)){if(r){let t=Vn(e);if(t===Vn(r.Version)?!at(e,r.Version):t)continue}r={Version:e,Time:a??``}}}return r}function hi(e){return Hr.test(e)||Ur.test(e)?Wr(e):0}async function gi(e,t,n,r=new Set){let i=Vr(n),a=`${t}/${i}/@v/list`,o=await e(a);if(!o.ok){if(li(o.status))return null;Or(o,a,n,t)}let s=mi(await o.text(),hi(n),r);if(!s)return null;if(s.Time)return{...s,path:n};let c=`${t}/${i}/@v/${Vr(s.Version)}.info`;try{let t=await e(c);if(t.ok)return ui(t,c,n)}catch{}return{...s,path:n}}function _i(e,t,n,r,i,a=new Set){let o=`list${t}${r}/${i}${Array.from(a).sort().join(`\0`)}`;return Z(fi,e,o,()=>gi(n,r,i,a))}async function vi(e,t,n,r,i){let a=Wr(t),o=e=>jn(r,e,{headers:ci}),s=e=>r.doFetch(e,{signal:AbortSignal.timeout(r.goProbeTimeout),headers:ci}),c=pi(r,`primary`,o,e,t),l=(async()=>{let n=await c,a=i.get(t);return n&&!a?.has(n.Version)?n:_i(r,`primary`,o,e,t,a)})(),u=async t=>{try{let[n,a]=await Promise.all([pi(r,`probe`,s,e,t),c]),o=i.get(t);return n&&!o?.has(n.Version)?n:!n&&a?null:_i(r,`probe`,s,e,t,o)}catch{return null}},[d,f]=await Promise.all([l,ei(t)?null:u(Gr(t,a+1))]);return d?ni(t,n,await ti(a,f,e=>u(Gr(t,e))),d):null}async function yi(e,t,n,r,i,a){let o=oi(r,t,i);if(Br(e,a))return si(e,n,r,i,o);let s=await Pr(i.goProxyChain,async t=>{if(t===`off`)throw Error(`Module lookup disabled by GOPROXY=off`);return t===`direct`?si(e,n,r,i,o):vi(t,e,n,i,o)});if(s)return s;throw Error(`Unable to find ${e} on any GOPROXY entry`)}const bi=e=>`("?)${I(e)}\\2`;function xi(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 $r(a))if(e.kind===`require`){let t=Jr.exec(e.value);t&&B(s,Xr(t[1]),e.lineNumber)}else if(e.kind===`replace`){let t=Qr(e.value);t&&B(c,t.targetModule,{...t,lineNumber:e.lineNumber})}else if(e.kind===`tool`){let t=Xr(e.value.split(/\s/,1)[0]);for(;t;){B(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=Kr(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+)${bi(d)}(\\s+)v${I(f)}(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`),p!==d&&t.origModule===d&&!t.origVersion&&(a[n]=a[n].replace(RegExp(`(^\\s*(?:replace\\s+)?)${bi(d)}(?=\\s+=>)`),`$1$2${p}$2`),e=!0)}e&&o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${bi(d)}(\\s+)v\\S+(?=\\s*(?://.*)?$)`),`$1$2${p}$2$3v${u}`)&&(n[d]=p);continue}o(s.get(d),RegExp(`(^\\s*(?:require\\s+)?)${bi(d)}(\\s+)v${I(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+)?)("?)${I(d)}((?:/[^"\\s]+)?)\\2(?=\\s*(?://.*)?$)`),`$1$2${p}$3$2`)}return[a.map((e,t)=>`${e}${i[t]??``}`).join(``),n]}const Si=/\s+|\/\/[^\n]*(?:\n|$)|\/\*[\s\S]*?(?:\*\/|$)|[A-Za-z_][A-Za-z0-9_]*|"(?:\\[\s\S]|[^"\\])*(?:"|$)|`[^`]*(?:`|$)|'(?:\\[\s\S]|[^'\\])*(?:'|$)|./g;function Ci(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(Si)){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 wi=e=>{let t=l(e);return t===`vendor`||t===`testdata`||t[0]===`_`};function Ti(e,t,n){if(!Object.keys(t).length)return;let r=new Map,i=t=>t.length>e.length&&V(r,t,()=>_(f(t,`go.mod`))||i(u(t)));for(let r of v(`**/*.go`,{cwd:e,exclude:wi})){let a=f(e,r);if(i(u(a)))continue;let o=b(a,`utf8`),s=Ci(o,t);s!==o&&n(a,s)}}function Ei(e){let t=[],n={};for(let r of $r(e.split(/\r?\n/)))if(r.kind===`use`)t.push(r.value.split(/\s/,1)[0]);else if(r.kind===`replace`){let e=Qr(r.value);e?.targetVersion&&!Zr(e.targetModule)&&(n[e.targetModule]=e.targetVersion)}return{use:t,replace:n}}function Di(e,t){try{let n=S(m(e));return S(f(n,t,`go.mod`))}catch{return null}}function Oi(e){let t=`https://${ki(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[,e,i,...a]=r;return n.pathname=`/${e}/${i}/${Ar(t)}/${a.join(`/`)}`,n.href}return t}function ki(e){return Hr.test(e)?u(e):e}function Ai(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}function ji(e){return/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):e}function Mi(e){let t=nn(e);if(t!==!1)return t===!0||Array.from(t).map(ji)}function Ni(t){if(!t)return e();let n=m(t),r=!1;try{r=C(n).isDirectory()}catch{}return r?n:u(n)}function Pi(e,t){let n=[...on(e.file),...t];return{filesList:n,startDir:Ni(n[0])}}function Fi(e){let t=o({strict:!1,allowPositionals:!0,tokens:!0,options:en,...e!==void 0&&{args:e}}),n=Object.create(null),r=new Set,i=(e,t)=>{en[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(!rn(o.name))throw Error(`Unknown option: ${o.rawName}`);if(en[o.name]?.type===`string`&&o.value===void 0&&!tn.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=rn(d);e&&(f=en[e].type===`string`&&l!==void 0,u.push({key:e,value:!f||l}))}else for(let e=0;e<d.length;){let t=rn(d[e]);if(!t){u.length=0;break}if(en[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}en[o.name]?.multiple?tn.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 Ii(e,t){let{filesList:n,startDir:r}=Pi(e,t),i=await dn(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=Ne(e.timeout,`timeout`)),typeof e.sockets==`string`&&(a.sockets=Ne(e.sockets,`sockets`)),typeof e.registry==`string`&&(a.registry=e.registry),typeof e.cooldown==`string`&&(a.cooldown=e.cooldown);let o=on(e.include).map(ji),s=on(e.exclude).map(ji);o.length&&(a.include=o),s.length&&(a.exclude=s);let c=on(e.types);c.length&&(a.types=c);let l=cn(e.pin);Object.keys(l).length&&(a.pin=l);let u=on(e.modes);u.length&&(a.modes=u);for(let t of[`greatest`,`prerelease`,`release`,`patch`,`minor`]){let n=Mi(e[t]);n!==void 0&&(a[t]=n)}let d=Mi(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,$t,{value:{cliKeys:Object.keys(a)}}),f}const Li={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`},Ri=new Set(Object.keys(Li));for(let e of Object.values(Li))Li[e]=e;function zi(e,t,n){if(e.includes(`--${t}`))return!0;for(let t of e){if(!/^-[^-]/.test(t))continue;let e=t.slice(1),r=e.indexOf(n);if(r!==-1&&Array.from(e.slice(0,r)).every(e=>!Ri.has(e)))return!0}return!1}async function Bi(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?Li[a[1]]:o?Li[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})){let t=e.endsWith(`/rate_limit`)?`GET`:`HEAD`;(async()=>{try{await(await fetch(e,{method:t})).arrayBuffer()}catch{}})()}}async function Vi(e,t,n=!0){let i=String,o=String,l=zi(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(zi(e,`help`,`h`))return t.stdout(`usage: updates [options] [files...]
|
|
9
9
|
|
|
10
10
|
Options:
|
|
11
11
|
-u, --update Update versions and write dependency file
|
|
@@ -50,23 +50,23 @@ import{cwd as e,env as t,pid as n,platform as r,stderr as i,versions as a}from"n
|
|
|
50
50
|
$ updates -f Dockerfile
|
|
51
51
|
$ updates -f docker-compose.yml
|
|
52
52
|
$ updates -f Makefile
|
|
53
|
-
`),await d();if(
|
|
53
|
+
`),await d();if(zi(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 Bi(e)}catch{}let{args:r,positionals:a}=Fi(e),f=await Ii(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(Hi(m,ki,le,Ae,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 Hi(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 Ui=/^\[\[([^\]]+)\]\]$/,Wi=/^\[([^[\]]+)\]$/,Gi=[`"""`,`'''`],Ki=()=>Object.create(null);function qi(e){let t=Ki(),n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=$i(r[e]).trim();if(!i)continue;let a=Ui.exec(i);if(a){let e=t,r=Qi(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]]=Ki()),e=e[r[t]])}let i=r[r.length-1];Array.isArray(e[i])||(e[i]=[]);let o=Ki();e[i].push(o),n=o;continue}let o=Wi.exec(i);if(o){n=ta(t,Qi(o[1]));continue}let s=ea(i,`=`);if(s<0)continue;let c=i.slice(0,s).trim(),l=i.slice(s+1).trim(),u=Qi(c),d=ta(n,u.slice(0,-1)),f=u[u.length-1],p=Gi.find(e=>l.startsWith(e)&&!l.includes(e,3))??``,m={depth:0,inStr:null};if((l.startsWith(`[`)||l.startsWith(`{`))&&!Xi(l,m)){let t=[l],n=e+1;for(;n<r.length;n++){let e=$i(r[n]);if(t.push(e),Xi(e,m))break}e=n,d[f]=Ji(t.join(`
|
|
54
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?`
|
|
55
55
|
`:``)+r[n].slice(0,e);break}t+=(t?`
|
|
56
|
-
`:``)+r[n]}e=n,d[f]=
|
|
57
|
-
`;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(Number.parseInt(t.slice(1),16));default:return t}})}const
|
|
58
|
-
`).entries()){let e=
|
|
59
|
-
`),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(
|
|
60
|
-
`):e}function 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
|
|
62
|
-
`).map(e=>{if(i!==-1){if(!e.trim()||e.length-e.trimStart().length>i)return e;i=-1}let t=
|
|
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
|
|
56
|
+
`:``)+r[n]}e=n,d[f]=Ji(p+t+p)}else d[f]=Ji(l)}return t}function Ji(e){if(e.startsWith(`[`)){let t=[],n=e.lastIndexOf(`]`);for(let r of Zi(e.slice(1,n<0?e.length:n))){let e=r.trim();e&&t.push(Ji(e))}return t}return e.startsWith(`{`)?Yi(e):e.startsWith(`"""`)?na(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?na(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 Yi(e){let t=Ki(),n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of Zi(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=Ji(e.slice(n+1).trim())}return t}function Xi(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 Zi(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 Qi(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 $i(e){let t=ea(e,`#`);return t<0?e:e.slice(0,t)}function ea(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 ta(e,t){for(let n of t)(!(n in e)||typeof e[n]!=`object`||Array.isArray(e[n]))&&(e[n]=Ki()),e=e[n];return e}function na(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 ra=[[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`]],ia={"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 aa(e){return typeof e==`number`?e:e instanceof Date?e.getTime():Date.parse(e)}function oa(e,{now:t,noAffix:n=!1,times:r=ra,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=ia,longUnits:l=!1,shortUnits:u=!1}={}){let d=(t===void 0?Date.now():aa(t))-aa(e);if(Number.isNaN(d))return o||String(e);let f=d<0;if(f&&(d=-d),d<i)return a;let p=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(d>=t[1])continue;let n=Math.trunc(d/t[0]);p=u?`${n}${t[3]||t[2]}`:`${n} ${l&&t[4]||t[2]}${n>1?`s`:``}`;break}let m=n?p:f?`in ${p}`:`${p} ago`;return s?c[m]??m:m}function sa(e){if(/^\s*\{/.test(e))return JSON.parse(e);let t={};for(let n of e.split(/\r?\n/)){let e=n.trim();if(!e||e.startsWith(`#`)||e.startsWith(`;`))continue;let r=e.indexOf(`=`);if(r===-1)continue;let i=e.slice(r+1).trim();/^(["']).*\1$/s.test(i)&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function ca(e){try{return sa(b(e,`utf-8`))}catch{return}}function la(e,t){return He(t,t=>{let n=f(t,e);try{if(C(n).isFile())return n}catch{}return null})??void 0}function ua(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 da(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=ca(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(la(`.${n}rc`,a));let d=ua(`${n}_`);return d.config&&u(d.config),Object.assign({},...c,d,l.length?{configs:l,config:l[l.length-1]}:void 0)}function fa(e){let t=e.indexOf(`|`);return t===-1?e:e.slice(0,t)}const pa=new WeakMap;function ma(e,t){let n=V(pa,e,()=>{let t=new Map;for(let[n,r]of Object.entries(e)){let[e,...i]=n.split(`\0`),a=e.indexOf(`|`);B(t,a===-1?`.`:e.slice(a+1),[[fa(e),...i].join(`\0`),r])}return t});return Object.fromEntries(n.get(t)??[])}const ha=/[*?{[]/;function ga(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 _a(e,t,n,r=32){let i=await E(t),a=new Set(e.filter(e=>e.startsWith(`!`)).flatMap(e=>ga(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=ha.test(n)?ga(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 F(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 va=/^(\s*)(?:"([^"]*)"|'([^']*)'|([^\s#](?:[^:#]|:(?=\S))*?))\s*:(?:\s+(.*))?$/,ya=/\s#/;function ba(e){let t=va.exec(e);if(!t)return null;let[,n,r,i,a,o=``]=t,s=e.length-o.length,c=o.startsWith(`#`)?0:o.search(ya),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 xa(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 Sa(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(ya);return{value:(i===-1?n:n.slice(0,i)).trimEnd(),valueIndex:t}}function Ca(e,t){if(!e.startsWith(`{`)||!e.endsWith(`}`))return null;let n=[];for(let r of xa(e)??[]){if(r.colon===-1)return null;let e=Sa(r.text.slice(0,r.colon)),i=Sa(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 wa(e){let t,n={},r=!1;for(let i of e.split(/\r?\n/)){let e=ba(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 Ca(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 Ta(e,t){let n=He(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}function Ea(e){let t={},n=[{indent:-1,map:t}];for(let t of e.split(/\r?\n/)){let e=ba(t);if(!e)continue;for(;e.indent<=n.at(-1).indent;)n.pop();let r=n.at(-1).map;e.value?r[e.key]=e.value:(r[e.key]={},n.push({indent:e.indent,map:r[e.key]}))}return t}function Da(e,t){let n={tokens:{},registries:{}};try{let t=typeof e==`string`?JSON.parse(e):e??{};for(let[e,r]of Object.entries(t)){let{host:t,pathname:i,href:a}=new URL(e);for(let[e,{authToken:o}]of Object.entries(r))typeof o==`string`&&(n.tokens[`//${t}${i.replace(/\/$/,``)}/:${e===`@`?``:`${e}:`}_authToken`]=o,n.registries[e===`@`?`default`:e]=a)}}catch(e){throw Error(`Invalid _auth in ${t}: ${e.message}`)}return n}const Oa=new Map;function ka(e){return V(Oa,e,()=>wa(Ta(`pnpm-workspace.yaml`,e)??``))}const Aa=new Map;function ja(){return t.XDG_CONFIG_HOME?f(t.XDG_CONFIG_HOME,`pnpm`):r===`darwin`?f(M(),`Library/Preferences/pnpm`):r===`win32`&&t.LOCALAPPDATA?f(t.LOCALAPPDATA,`pnpm/config`):f(M(),`.config/pnpm`)}function Ma(){let e=ja();return V(Aa,e,()=>{let t=``;try{t=b(f(e,`config.yaml`),`utf8`)}catch(e){if(e.code!==`ENOENT`)throw e}return{...wa(t),auth:Da(Ea(t)._auth,`config.yaml`)}})}function*Na(e){let t=``,n=``,r=-1;for(let[i,a]of e.split(`
|
|
58
|
+
`).entries()){let e=ba(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 Ca(c,l)??[])yield{type:`catalog`,name:e.key,value:e.value,lineIndex:i,valueIndex:e.valueIndex};else if(s===`catalogs`)for(let e of Ca(c,l)??[])for(let t of Ca(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 Ca(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 Pa(e,t){let n=e.split(`
|
|
59
|
+
`),r=!1;for(let{type:i,name:a,value:o,lineIndex:s,valueIndex:c}of Array.from(Na(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 Fa(e){let t=[],n=!1;for(let r of e.split(/\r?\n/)){let e=ba(r);if(e?.indent===0&&e.key===`packages`){if(e.value.startsWith(`[`)&&e.value.endsWith(`]`))for(let n of xa(e.value)??[]){let e=Sa(n.text);e&&t.push(e.value)}n=!0;continue}if(n){let e=r.trim();if(!e||e.startsWith(`#`))continue;if(!e.startsWith(`-`))break;let n=Sa(e.slice(1));n&&t.push(n.value)}}return t}const Ia=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,La=new Set([`resolutions`,`overrides`]);function Ra(e){return/(?:^|\/)((?:@[^/]+\/)?[^/@]+)(?:@[^/]*)?$/.exec(e)?.[1]??e}const za=Y.registry,Ba=new Map,Va=new Map,Ha=e=>e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``);function Ua(){let e=t.pnpm_config__auth||t.PNPM_CONFIG__AUTH||void 0;return V(Va,e??``,()=>Da(e,`pnpm_config__auth`))}function Wa(e){let t=new URL(e.startsWith(`//`)?`http:${e}`:e),n=[],r;for(;r!==`/`&&t.pathname!==r;)r=t.pathname||`/`,n.push(`//${t.host}${r.replace(/\/$/,``)}`),t.pathname=new URL(`..`,new URL(r.endsWith(`/`)?r:`${r}/`,`http://x`)).pathname;return n}function Ga(e,t,n){let r=Wa(e),i=(e,n)=>t[`${e}:${n}`]||t[`${e}/:${n}`],a=n&&r.map(e=>i(e,`${n}:_authToken`)).find(Boolean);if(a)return{token:Ha(a),type:`Bearer`};for(let e of r){let t=i(e,`_authToken`);if(t)return{token:Ha(t),type:`Bearer`};let n=i(e,`username`),r=i(e,`_password`);if(n&&r){let e=Buffer.from(Ha(r),`base64`).toString(`utf8`);return{token:Buffer.from(`${n}:${e}`).toString(`base64`),type:`Basic`}}let a=i(e,`_auth`);if(a)return{token:Ha(a),type:`Basic`}}if(e===za&&t._auth)return{token:Ha(t._auth),type:`Basic`}}function Ka(e,t,n){let r=V(Ba,n??``,()=>da(`npm`,{registry:za},n)),i=Ua(),a=Ma(),o=n?ka(n):{registries:{}},s=e.startsWith(`@`)?e.split(`/`)[0]:``,c=En(s&&(i.registries[s]||o.registries[s]||a.registries[s]||a.auth.registries[s]||r[`${s}:registry`])||t.registry||i.registries.default||o.registries.default||o.registry||a.registries.default||a.registry||a.auth.registries.default||r.registry||za);return{auth:Ga(c,{...r,...a.auth.tokens,...i.tokens},s),registry:c}}const qa=(e,t,n)=>{let r=`${e}/${t.replace(/\//g,`%2f`)}`;return n?`${r}/${n}`:r},Ja=new WeakMap,Ya=new WeakMap,Xa=new WeakMap,Za=new WeakMap,Qa=(e,t)=>`${e}v2${t?`-dates`:``}`;function $a(e){let t={};for(let n of Object.keys(e.versions??{}))t[n]=e.versions[n]?.deprecated?{deprecated:!0}:{};return{name:e.name,"dist-tags":e[`dist-tags`],versions:t,time:e.time,error:e.error}}async function eo(e,t,n,r,i,a,o=``){let s=La.has(t)?Ra(e):t===`packageManager`&&e===`yarn`&&(U(o)?.major??0)>1?`@yarnpkg/cli`:e,{auth:c,registry:l}=Ka(s,n,a),u=qa(l,s),d=Qa(u,!!r.needsDates);return[await Z(Ja,i,d,async()=>{let t=Dn(c?.type,c?.token);r.needsDates||(t.headers={...t.headers,accept:`application/vnd.npm.install-v1+json`});let n=await Fn(u,i,t,Mn($a),d);return`body`in n||Or(n.res,u,e,l),JSON.parse(n.body)}),l]}async function to(e,t,n,r,i,a){let{auth:o,registry:s}=Ka(e,n,a),c=qa(s,e,t);return Z(Ya,i,c,async()=>{try{let n=Dn(o?.type,o?.token),a=await In(c,i,n,Mn(e=>({repository:e.repository,homepage:e.homepage,_npmOperationalInternal:e._npmOperationalInternal?.tmp?{tmp:e._npmOperationalInternal.tmp}:void 0})));if(!(`body`in a))return{};let l=JSON.parse(a.body),u=``,d=/(\d{13})/.exec(l?._npmOperationalInternal?.tmp??``);d&&(u=new Date(Number(d[1])).toISOString());let f=qa(s,e);return!u&&r.needsDates&&(u=(await Ja.get(i)?.get(Qa(f,!0)))?.time?.[t]||``),u||=(await Pe(Z(Xa,i,f,async()=>{let e=await jn(i,f,n);return e.ok?await e.json():null})))?.time?.[t]||``,{repository:l.repository,homepage:l.homepage,date:u}}catch{return{}}})}function no(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function ro(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function io(e){return e.startsWith(`catalog:`)}const ao=/^npm:((?:@[^/@]+\/)?[^@/][^@]*)@(.+)$/;function oo(e){let t=ao.exec(e);return t&>(t[2])?{name:t[1],range:t[2]}:null}const so=/^(?:npm:@jsr\/([^_]+)__([^@]+)|jsr:@([^/]+)\/([^@]+))@(.+)$/,co=/^@([^/]+)\/(.+)$/;function lo(e,t){let n=so.exec(e);if(n)return{scope:n[1]||n[3],name:n[2]||n[4],version:n[5]};if(e.startsWith(`jsr:`)&&!e.startsWith(`jsr:@`)){let n=co.exec(t??``);if(n)return{scope:n[1],name:n[2],version:e.substring(4)}}return{scope:null,name:null,version:``}}async function uo(e,t){if(!co.test(e))throw Error(`Invalid JSR package name: ${e}`);let n=`${t.jsrApiUrl}/${e}/meta.json`;return[await Z(Za,t,n,async()=>{let r=await Fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({latest:e.latest,versions:Object.fromEntries(Object.entries(e.versions??{}).map(([e,t])=>[e,{createdAt:t?.createdAt}]))})));`body`in r||Or(r.res,n,e,`JSR`);let i=JSON.parse(r.body),a={},o={};for(let[e,t]of Object.entries(i.versions??{}))a[e]={version:e,time:t.createdAt},o[e]=t.createdAt;return{name:e,"dist-tags":{latest:i.latest},versions:a,time:o}}),t.jsrApiUrl]}function fo(e,t){try{JSON.parse(e)}catch{return e}let n=new Map,r=0,i=()=>{for(;/\s/.test(e[r]??``);)r++},a=()=>{let t=r++;for(;r<e.length;)if(e[r]===`\\`)r+=2;else if(e[r++]===`"`)break;return{start:t,end:r,value:JSON.parse(e.slice(t,r))}},o=t=>{if(i(),e[r]===`"`)n.set(JSON.stringify(t),a());else if(e[r]===`{`){for(r++,i();e[r]!==`}`&&r<e.length;){let n=a().value;if(i(),e[r++]!==`:`)return;if(o([...t,n]),i(),e[r]===`,`)r++,i();else break}e[r]===`}`&&r++}else if(e[r]===`[`){r++;let n=0;for(i();e[r]!==`]`&&r<e.length&&(o([...t,n++]),i(),e[r]===`,`);)r++,i();e[r]===`]`&&r++}else for(;r<e.length&&!/[,}\]]/.test(e[r]);)r++};o([]);let s=[];for(let[e,r]of Object.entries(t)){let[t,i,a]=e.split(`\0`),o=r.oldOrig||r.old,c=n.get(a||JSON.stringify([t,i])),l=r.new;c||(c=n.get(JSON.stringify([t])),o=`${i}@${o}`,l=`${i}@${l}`),c?.value===o&&s.push({...c,value:JSON.stringify(l)})}for(let t of s.sort((e,t)=>t.start-e.start))e=`${e.slice(0,t.start)}${t.value}${e.slice(t.end)}`;return e}const po=String.raw`[<>]=?|~>|[\^~=]`,mo=new RegExp(String.raw`^(${po})?(\s*)(v?)((?:\d+|[xX*])(?:\.(?:\d+|[xX*]))*)(-[0-9A-Za-z.-]+)?$`),ho=RegExp(`^(?:${po})$`),go=/^[xX*]$/,_o=/\+[0-9A-Za-z.-]+/g,vo=/\|\||[\dxX*]\s+\S/;function yo(e){let t=[];for(let n of e.trim().replaceAll(`||`,` || `).split(/\s+/))t.length&&ho.test(t[t.length-1])?t[t.length-1]+=` ${n}`:t.push(n);return t}function bo(e,t){let n=mo.exec(e);if(!n)return e;let[,r=``,i,a,o,s=``]=n,c=o.split(`.`);if(r===`<`&&c.length<=3&&!/[xX*]/.test(o)){let{major:e,minor:n,patch:a}=U(t);return`${r}${i}${c.length===1?`${e+1}`:c.length===2?`${e}.${n+1}`:!s&&o.endsWith(`.0.0`)?`${e+1}.0.0`:!s&&o.endsWith(`.0`)?`${e}.${n+1}.0`:`${e}.${n}.${a+1}`}`}if(r===`>`||r===`<`)return e;if(t.includes(`-`))return`${r}${i}${a}${t}`;let l=t.split(`.`);return`${r}${i}${a}${c.map((e,t)=>go.test(e)?e:l[t]??`0`).join(`.`)}`}function xo(e,t){if(ht(t,e))return e;let n=yo(e),r=n[n.length-1];if(!r.startsWith(`<`)&&n[n.length-2]!==`-`){let i=bo(r,t);return n.length>1&&r.startsWith(`>`)||i===r?e:`${e} || ${i}`}return n[n.length-1]=bo(r,t),n.join(` `)}function So(e,t,n,r){let i=(n||e).replace(_o,``),a=r===`peerDependencies`||vo.test(i)?xo(i,t):bo(i,t);return ht(t,a)?a:i}function Q(e){if(/[xX*]/.test(e))return e;let t=e.match(Ia);return t?.length===1?e.replace(Ia,Gn(t[0])):e}async function Co(e,t,n){let r=await br(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n,`commits`,async e=>{let[t]=JSON.parse(await e.text());return JSON.stringify(t?[{sha:t.sha,commit:{committer:t.commit?.committer,author:t.commit?.author}}]:[])}),[i]=r?JSON.parse(r):[];return i?{hash:i.sha,commit:i.commit}:{hash:``,commit:{}}}async function wo(e,t,n,r){return(await Er(r.forgeApiUrl,e,t,r,[n])).map(e=>e.name)}function To(e){let t=e.lastIndexOf(`#`);if(t===e.length-1)return null;let n=e.slice(0,t===-1?e.length:t).replace(/^git\+/i,``),r=t===-1?``:e.slice(t+1);if(/^github:/i.test(n))n=n.slice(7);else if(/^git@github\.com:/i.test(n))n=n.replace(/^git@github\.com:/i,``);else if(/^(?:https?|git|ssh):/i.test(n)){let e=/^(?:https?|git|ssh):\/\/(?:[^/@]+@)?github\.com[/:](.+)$/i.exec(n);if(!e)return null;n=e[1]}else if(n.includes(`:`))return null;if(!r){let e=/^([^/]+\/[^/]+)\/(?:.*\/)?([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i.exec(n);if(!e)return null;n=e[1],r=e[2]}n=n.replace(/\.git$/i,``);let i=n.split(`/`);if(i.length!==2||!/^[a-z\d](?:-?[a-z\d]){0,38}$/i.test(i[0])||!/^[a-z\d._-]{1,100}$/i.test(i[1]))return null;let a=r.startsWith(`semver:`)&>(r.slice(7))?r.slice(7):null;return!a&&!mr.test(r)&&!Qe(r)?null:{user:i[0],repo:i[1],ref:a??r,selector:a}}async function Eo(e,t,n){let r=To(t.old);if(!r)return null;let{user:i,repo:a,ref:o,selector:s}=r,c=e=>{let n=t.old.lastIndexOf(o);return`${t.old.slice(0,n)}${e}${t.old.slice(n+o.length)}`};if(mr.test(o)){let{hash:t,commit:r}=await Co(i,a,n);if(!t)return null;let s=gr(r),l=t.substring(0,o.length);if(o.toLowerCase()!==l.toLowerCase())return{key:e,newRange:c(l),user:i,repo:a,oldRef:o,newRef:l,newDate:s}}else{let t=dr(await wo(i,a,o,n),s?Gn(s):o);if(t){let n=s?So(s,X(t),s):t;if(n!==o)return{key:e,newRange:c(n),user:i,repo:a,oldRef:o,newRef:n}}}return null}const Do=/[-_.]+/g,Oo=new WeakMap;function ko(e){let t={};for(let[n,r]of Object.entries(e??{}))t[n]=(r??[]).map(e=>({...e.upload_time_iso_8601&&{upload_time_iso_8601:e.upload_time_iso_8601},...e.yanked&&{yanked:!0}}));return t}async function Ao(e,t){let n=`${t.pypiApiUrl}/pypi/${e.toLowerCase().replace(Do,`-`)}/json`;return[{...await Z(Oo,t,n,async()=>{let r=await Fn(n,t,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>{let{name:t,version:n,project_urls:r}=e.info??{};return{info:{name:t,version:n,project_urls:r},releases:ko(e.releases)}}));if(`body`in r){let e=JSON.parse(r.body);return{...e,releases:ko(e.releases)}}Or(r.res,n,e,t.pypiApiUrl)}),name:e},null]}function jo(e,{op:t,version:n}){if(t===`===`)return n===e.version;if(n.endsWith(`.*`)){let r=q(n.slice(0,-2));if(!r||t!==`==`&&t!==`!=`)return!1;let i=r.epoch===e.epoch&&r.release.every((t,n)=>(e.release[n]??0)===t);return t===`==`?i:!i}let r=q(n);if(!r||r.local&&t!==`==`&&t!==`!=`)return!1;let i=Tt(e.local?{...e,local:null}:e,r),a=r.local?Tt(e,r):i;if(t===`==`)return a===0;if(t===`!=`)return a!==0;if(t===`>=`)return i>=0;if(t===`<=`)return i<=0;let o=e.epoch===r.epoch&&Array.from({length:Math.max(e.release.length,r.release.length)}).every((t,n)=>(e.release[n]??0)===(r.release[n]??0));return t===`>`?i>0&&!(o&&e.post!==null&&r.post===null):t===`<`?i<0&&!(o&&(e.pre||e.dev!==null)&&!r.pre&&r.dev===null):i>=0&&r.release.length>1&&r.epoch===e.epoch&&r.release.slice(0,-1).every((t,n)=>(e.release[n]??0)===t)}function Mo(e,t=e.release){if(!e.local&&t===e.release)return e.version;let n=e.epoch||/^[vV]?\d+!/.test(e.version)?`${e.epoch}!`:``,r=e.pre?`${e.pre[0]}${e.pre[1]}`:``,i=e.post===null?``:`.post${e.post}`,a=e.dev===null?``:`.dev${e.dev}`;return`${n}${t.join(`.`)}${r}${i}${a}`}function No(e,t,n){let r=e.release.findIndex((e,n)=>e>t.release[n]);r===0&&e.release[1]===0?r=1:r===-1&&(r=e.release.length-1);let i=e.release.map((e,t)=>t>r?0:(n.release[t]??0)+Number(t===r));return`${n.epoch?`${n.epoch}!`:``}${i.join(`.`)}`}function Po(e,t){let n=q(e);if(!n)return!1;let r=t.trim();if(!r)return!0;if(q(r))return jo(n,{lead:``,op:`==`,sep:``,version:r,trail:``});let i=N(`x${r}`),a=i?.specifiers;return!i||i.extras||i.marker||!a?.length?!1:a.every(e=>jo(n,e))}function Fo(e,t,n){let r=N(e),i=r?.specifiers,a=q(t),o=q(n);if(!r||!i||!a||!o)return null;let s=_e(i);if(s?.version!==t)return null;for(let e of i){if(e===s)e.version=e.op===`~=`?a.release.length===o.release.length?Mo(o):Mo(o,Array.from({length:a.release.length},(e,t)=>o.release[t]??0)):e.op===`==`||e.op===`===`?n:Mo(o);else if(!jo(o,e)){let t=q(e.version);if(e.op===`<`&&t)e.version=No(t,a,o);else if(e.op===`<=`)e.version=Mo(o);else return null}if(!jo(o,e))return null}return ge(r,i)}function Io(e){let t=[],n=/\s*(?:"((?:\\.|[^"\\])*)"|'([^']*)'|([\w-]+))\s*(?:\.|$)/gy;try{for(;n.lastIndex<e.length;){let r=n.exec(e);if(!r)return[];t.push(r[1]===void 0?r[2]??r[3]:JSON.parse(`"${r[1]}"`))}}catch{return[]}return t}function Lo(e){let t=``,n=!1;for(let r=0;r<e.length;r++){let i=e[r];if(t)t===`"`&&i===`\\`&&!n?n=!0:(i===t&&!n&&(t=``),n=!1);else if(i===`"`||i===`'`)t=i;else if(i===`=`)return r;else if(i===`#`)return-1}return-1}function Ro(e,t){let n=e.indexOf(`[`,t);if(n===-1||e.slice(t,n).trim())return-1;let r=0,i=``,a=!1,o=!1;for(let t=n;t<e.length;t++){let n=e[t];if(o)n===`
|
|
61
|
+
`&&(o=!1);else if(i)i===`"`&&n===`\\`&&!a?a=!0:(n===i&&!a&&(i=``),a=!1);else if(n===`"`||n===`'`)i=n;else if(n===`#`)o=!0;else if(n===`[`)r++;else if(n===`]`&&--r===0)return t+1}return-1}function zo(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=Io(o[1]);else{let o=Lo(a),s=o===-1?``:[...r,...Io(a.slice(0,o))].join(`.`);if(t.has(s)&&!n.has(s)){let t=i+o+1,r=Ro(e,t);r!==-1&&n.set(s,[t,r])}}i+=a.length}return n}function Bo(e,t){let n=new Map;for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`);V(n,t,()=>new Map).set(i,r)}let r=zo(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=L(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}${Fo(n,o||a,s)??n}`});i=`${i.slice(0,t[0])}${o}${i.slice(t[1])}`}return i}function Vo(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:pr.test(o)}}function Ho(e,t){return e?e===`github.com`?Tn:`https://${e}/api/v1`:t}async function Uo(e,t,n,r,i){let a=`${e}/repos/${t}/${n}/git/commits/${r}`;if(!i.noCache){let e=await _n(a);if(e)return e.body}try{let e=await ur(a,i);if(e.status===404)return``;if(!e.ok)return;let t=gr(await e.json());return t&&!i.noCache&&bn(a,`immutable`,t),t}catch(e){if(e instanceof sr)throw e;return}}function Wo(e,t){let n=X(e);return kr(U(n)?.version??n,t)}const Go=/^(\s*(?:-\s*)?)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*([^\r\n]*)\r?$/;function Ko(e,t){let n=Go.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 qo=/^\s*(?:(?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|ratchet:[\w-]+\/[.\w-]+(?:\/[.\w-]+)*)@?((?:[\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?(?:-[a-zA-Z0-9.]+)?)/;function Jo(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?qo.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 Yo=/^https?:\/\//;function Xo(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=Ko(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=Jo(e);if(!l)return e;let{prefix:u,quote:d,value:f,gap:p,comment:m,pinnedVersion:h,pinnedEnd:g}=l,_=Yo.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 Zo=RegExp(`(?:^|/)(?:${L(P)})/(?:workflows/[^/]+|(?:[^/]+/)*action)\\.ya?ml$`);function Qo(e){return Zo.test(e.replace(/\\/g,`/`))}function $o(e){let t=new Set;try{for(let n of x(f(e,`workflows`)))/\.ya?ml$/.test(n)&&t.add(m(f(e,`workflows`,n)))}catch{}try{for(let n of x(e,{recursive:!0,withFileTypes:!0}))n.isFile()&&/^action\.ya?ml$/.test(n.name)&&t.add(m(f(n.parentPath,n.name)))}catch{}return Array.from(t)}const es=/^(v?\d+(?:\.\d+)*(?:_\d+)?)([a-zA-Z][a-zA-Z0-9]*)?(-.+)?$/,ts=/^[ \t]*FROM\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim,ns=/^[ \t]*image:\s*['"]?([^\s'"#]+)['"]?/gm,rs=String.raw`(?<=^[ \t]*(?:-[ \t]+)?|[{,][ \t]*)`,is=/^[ \t]*ARG\s+(\w+)(?:[ =](\S*))?/i,as=/^[ \t]*FROM\s+(?:--platform=\S+\s+)?(\S+)/i,os=e=>e.replace(/\\[ \t]*\r?\n[ \t]*/g,` `);function ss(e,t){return e.replace(/\$\{(\w+)\}|\$(\w+)/g,(e,n,r)=>{let i=t(n||r);return i===void 0?e:i})}function*cs(e,t=!1){let n=new Map,r=!1;for(let i of e.matchAll(/^[ \t]*(?:ARG|FROM)\b[^\r\n]*(?:(?<=\\)[ \t]*\r?\n[^\r\n]*)*/gim)){let e=os(i[0]),a=is.exec(e);if(a){if(!r){let e=a[2]?.replace(/^(['"])(.*)\1$/,`$2`)??``,t=i[0].lastIndexOf(e);n.set(a[1],{value:e,resolved:ss(e,e=>n.get(e)?.resolved),start:t<0?-1:i.index+t})}continue}r=!0;let o=as.exec(e);o&&(yield{instruction:i,args:n,from:o,resolved:ss(o[1],e=>n.get(e)?.[t?`resolved`:`value`])})}}const ls=/^(?:(?:index|registry-1)\.)?docker\.io$/;function us(e){let t=e.split(`/`);return t.length>1&&ls.test(t[0])&&t.shift(),{registry:t.length>2||t.length>1&&(t[0]===`localhost`||t[0].includes(`.`)||t[0].includes(`:`))?t.shift():null,namespace:t.length===1?`library`:t.slice(0,-1).join(`/`),repo:t.at(-1)}}function ds(e){let{registry:t,namespace:n,repo:r}=us(e);if(t)return[e];let i=n===`library`?[r,`library/${r}`]:[`${n}/${r}`];return[...new Set([e,...i,...i.map(e=>`docker.io/${e}`)])]}function fs(e){e=e.replace(/^docker:\/\//,``);let[t,n,...r]=e.split(`@`);if(r.length||n&&!/^[a-z][a-z0-9+._-]*:[0-9a-f]+$/i.test(n))return null;let i=t.lastIndexOf(`:`),a=i!==-1&&t.lastIndexOf(`/`)<i;if(!a&&!n)return null;let o=a?t.substring(0,i):t,s=a?t.substring(i+1):`latest`;if(a&&!n&&!es.test(s))return null;let{registry:c,namespace:l,repo:u}=us(o);return{registry:c,namespace:l,repo:u,tag:s,fullImage:o,...n&&{digest:n},...!a&&{digestOnly:!0}}}function ps(e){let t=es.exec(e);return!t||t[2]&&!t[3]&&mr.test(e)?null:{version:t[1],prerelease:t[2]||``,suffix:t[3]||``}}function ms(e,t,n=``){let r=ps(t);return r?kr(e,r.version,`${n}${r.suffix}`):t}function hs(e,t){let n=[];if(t===ts){for(let{from:t,resolved:r}of cs(e,!0)){let e=fs(r);e&&n.push({ref:e,match:t[1]})}return n}let r=t===ns?gs(e):null;for(let i of e.matchAll(t)){if(r?.has(i.index+i[0].indexOf(`image:`)))continue;let e=fs(i[1]);e&&n.push({ref:e,match:i[1]})}return n}function gs(e){let t=new Set,n=new Map;for(let r of e.matchAll(/^.*$/gm)){if(!r[0].trim())continue;let e=/^[ \t]*/.exec(r[0])[0].length;for(let t of n.keys())t>e&&n.delete(t);let i=n.get(e)??{built:!1,images:[]};if(n.set(e,i),/^[ \t]*build\s*:/.test(r[0])){i.built=!0;for(let e of i.images)t.add(e)}else if(/^[ \t]*image\s*:/.test(r[0])){let n=r.index+e;i.built?t.add(n):i.images.push(n)}}return t}const _s=new WeakMap,vs=new Set([401,403,404]);function ys(e,t,n){return Z(_s,n,`${e}/${t}`,async()=>{let r={dates:{},digests:new Map},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=1000&ordering=last_updated&page=${e}`,o=async r=>{let i=await Fn(r,n,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({count:e.count,next:e.next,results:(e.results||[]).map(e=>({name:e.name,tag_last_pushed:e.tag_last_pushed,last_updated:e.last_updated,digest:e.digest}))})),`${r}#digest`);return`body`in i?JSON.parse(i.body):(vs.has(i.res?.status)||Or(i.res,r,`${e}/${t}`,n.dockerApiUrl),null)},s=e=>{for(let t of e?.results??[])r.dates[t.name]=t.tag_last_pushed||t.last_updated||``,typeof t.digest==`string`&&r.digests.set(t.name,t.digest)},c=await o(a(1));if(!c)return r;s(c);let l=new Set,u=c,d=2;if(c.count){let e=[];for(;d<=20&&d<=Math.ceil(c.count/1e3);d++){let t=a(d);l.add(t),e.push(t)}let t=await F(e,async e=>{try{return{value:await o(e)}}catch(e){return{reason:e}}},{concurrency:Rn(n)});for(let e of t){if(`reason`in e)throw e.reason;if(!e.value)return r;s(e.value),u=e.value}}let f=new URL(i).origin;for(;d<=20&&u.next;d++){let e=new URL(u.next,i),t=e.href;if(e.origin!==f||l.has(t))break;l.add(t);let n=await o(t);if(!n)break;s(n),u=n}return r})}async function bs(e,t,n){return(await ys(e,t,n)).dates}async function xs(e,t,n,r){let i=(await ys(e,t,r)).digests.get(n);if(i)return i;let a=`${r.dockerApiUrl}/v2/repositories/${e}/${t}/tags/${n}`,o=await Fn(a,r,{headers:{"accept-encoding":`gzip, deflate, br`}},Mn(e=>({digest:e.digest})));if(`body`in o){let e=JSON.parse(o.body)?.digest;return typeof e==`string`?e:null}return vs.has(o.res?.status)||Or(o.res,a,`${e}/${t}:${n}`,r.dockerApiUrl),null}const Ss=/^\d?[02468]\.04$/;function Cs(e,t){if(!Ss.test(e))return!1;let[n,r]=e.split(`.`);return t>=Date.UTC(2e3+Number(n),Number(r))}const ws={ubuntu:Cs};function Ts(e,t,n=Date.now()){let r=ws[e];return r?Object.fromEntries(Object.entries(t).filter(([e])=>{let t=ps(e)?.version;return!t||r(t,n)})):t}async function Es(e,t){let{registry:n,namespace:r,repo:i}=us(e);if(n)throw Error(`Non-Docker-Hub registries are not yet supported: ${n}`);return[{tags:Ts(i,await bs(r,i,t)),name:e},null]}const Ds=(e,t)=>t?`${e}-${t}`:e;function Os(e){let t=ps(e);return t?Fs(t.version):``}const ks=/[._]/,As=e=>X(e.version).split(ks).map(Number),js=e=>X(e).replace(/\d+/g,``),Ms=2e7,Ns=e=>Number(X(e).split(ks)[0]);function Ps(e,t){return Ns(e)<Ms||Ns(t)>=Ms}function Fs(e){let t=X(e).split(ks).slice(0,3);return[...t.map(e=>String(Number(e))),...Array(3-t.length).fill(`0`)].join(`.`)}function Is(e,t){let n=As(e),r=As(t);for(let e=0;e<n.length;e++)if(n[e]!==r[e])return n[e]-r[e];return!e.prerelease&&t.prerelease?1:e.prerelease&&!t.prerelease?-1:e.prerelease.localeCompare(t.prerelease)}function Ls(e,t){let n=As(e),r=As(t),i=n.findIndex((e,t)=>e!==r[t]);return i===-1?e.prerelease===t.prerelease?null:`patch`:i===0?`major`:i===1?`minor`:`patch`}function Rs(e,t,n,r,i,a,o=!1,s=!1){let c=ps(t);if(!c)return null;let l=js(c.version),u=Ds(Fs(c.version),c.prerelease),{effectiveSemvers:d,skipsPrerelease:f}=Wn(u,o,s,n),p=l.length>2||l.includes(`_`),m=U(u),h=c,g=``,_=``;for(let[t,u]of Object.entries(e)){let e=ps(t);if(!e||e.suffix!==c.suffix||js(e.version)!==l||!Ps(e.version,c.version)||!Cn(u,r,i))continue;let v=Ds(Fs(e.version),e.prerelease);if(a&&!ht(v,a))continue;if(p){if(e.prerelease&&(!o&&!c.prerelease||s)||Is(e,h)<=0)continue;let r=Ls(c,e);if(!r||!n.has(r))continue;h=e,g=t,_=u;continue}let y=U(v);if(!y||e.prerelease&&f(y))continue;if(y.version===m.version){g&&Date.parse(u)>Date.parse(_)&&(g=t,_=u);continue}let b=J.diff(m,y);b&&d.has(b)&&J.compare(y,m)>0&&(m=y,g=t,_=u)}if(p)return g?{newTag:g,date:_}:null;if(!g||m.version===u)return null;let[v,y=``]=m.version.split(`-`),b=ms(v,t,y),x=b in e?b:g;return x===t?null:{newTag:x,date:_}}const zs=`(?![\\w.@+-])`;function Bs(e){let t=new Map;for(let[n,r]of Object.entries(e)){let e=n.split(`\0`)[1];r.oldDigest?r.newDigest&&t.set(r.digestOnly?`${e}@${r.oldDigest}`:`${e}:${r.oldOrig||r.old}@${r.oldDigest}`,r.digestOnly?`${e}@${r.newDigest}`:`${e}:${r.new}@${r.newDigest}`):t.set(`${e}:${r.oldOrig||r.old}`,`${e}:${r.new}`)}return t}function Vs(e,t,n,r=()=>!0){if(!t.size)return e;let i=L(t.keys()),a=e;for(let e of n)a=a.replace(RegExp(`${rs}(${e})(${i})${zs}`,`gm`),(e,n,i,a)=>r(a)?`${n}${t.get(i)??i}`:e);return a}function Hs(e,t){let n=`(?:[ \\t]+|\\\\[ \\t]*\\r?\\n[ \\t]*)`,r=Bs(t);if(!r.size)return e;let i=L(r.keys()),a=e.replace(RegExp(`^([ \\t]*FROM${n}+(?:--platform=\\S+${n}+)?)(${i})${zs}`,`gim`),(e,t,n)=>`${t}${r.get(n)??n}`),o=new Map;for(let{instruction:e,args:t,from:n,resolved:i}of cs(a)){let a=r.get(i);if(!a)continue;let s=i.lastIndexOf(`@`),c=a.lastIndexOf(`@`),l=i.slice(s+1),u=a.slice(c+1),d=s!==-1&&c!==-1&&l!==u;if(d){let t=e[0].lastIndexOf(l);t!==-1&&o.set(e.index+t,{end:e.index+t+l.length,value:u})}for(let e of n[1].matchAll(/\$(?:\{(\w+)\}|(\w+))/g)){let r=t.get(e[1]||e[2]),i=ss(n[1].slice(0,e.index),e=>t.get(e)?.value),s=ss(n[1].slice(e.index+e[0].length),e=>t.get(e)?.value);d&&(s=s.replace(l,u)),!(!r||r.start<0||!a.startsWith(i)||!a.endsWith(s))&&o.set(r.start,{end:r.start+r.value.length,value:a.slice(i.length,s?-s.length:void 0)})}}let s=a;for(let[e,t]of[...o].sort(([e],[t])=>t-e))s=`${s.slice(0,e)}${t.value}${s.slice(t.end)}`;return s}function Us(e,t){let n=gs(e);return Vs(e,Bs(t),[String.raw`image:\s*['"]?`],e=>!n.has(e))}function Ws(e,t){return Vs(e,Bs(t),[String.raw`(?:container|image):\s*['"]?`,String.raw`uses:\s*['"]?docker://`])}const Gs=[`Dockerfile`,`compose.yml`,`compose.yaml`,`docker-compose.yml`,`docker-compose.yaml`];function Ks(e){return/^(?:docker-|compose).*\.ya?ml$/.test(e)}function qs(e){return/^Dockerfile(\..+)?$/.test(e)}function Js(e){return qs(e)||Ks(e)}function Ys(e){return qs(e)?ts:ns}function Xs(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Zs=[`Makefile`,`makefile`,`GNUmakefile`];function Qs(e){return Zs.includes(e)||e.endsWith(`.mk`)}const $s=/^\s*(?:(?:export|override|private|unexport)\s+)*[A-Za-z_][\w.]*\s*(?:::=|:=|\?=|\+=|=)\s*(.*)$/,ec=/^([^@\s]+)@(v\d\S*)$/,tc=/^[^/\s]+\.[^/\s]+\//;function*nc(e){let t=``;for(let n of[...e.split(/\r?\n/),``]){let e=n.indexOf(`#`),r=e===-1?n:n.slice(0,e),i=0;for(;r[r.length-i-1]===`\\`;)i++;if(i%2){t+=`${r.slice(0,-1)} `;continue}let a=$s.exec(t+r);if(t=``,!a)continue;let o=``,s=``;for(let e of a[1])o?e===o?o=``:s+=e:e===`"`||e===`'`?o=e:/\s/.test(e)?(s&&(yield s),s=``):s+=e;s&&!o&&(yield s)}}function rc(e){let t=[];for(let n of nc(e)){let e=ec.exec(n);if(!e||!tc.test(e[1]))continue;let[,r,i]=e;t.push({installPath:r,version:i})}return t}const ic=/@(sha256:[0-9a-f]{64})$/;function ac(e,t,n){return`${e}:${t}${n?`@${n}`:``}`}function oc(e){let t=ic.exec(e),n=t?.[1]??null,r=t?e.slice(0,t.index):e,i=fs(r.replace(/^docker\.io\//,``));return!i||i.registry||i.namespace===`library`?null:{writtenImage:r.slice(0,r.lastIndexOf(`:`)),ref:i,digest:n}}function sc(e){return Array.from(nc(e)).flatMap(e=>oc(e)??[])}const cc=/\/v(?:[2-9]|[1-9]\d+)(?=\/|$)/,lc=new WeakMap;function uc(e,n,r){return Z(lc,r,`${m(n)}${e}`,async()=>{let i;try{({stdout:i}=await r.execFile(`go`,[`list`,`-m`,`-e`,`-json`,`${e}@latest`],{timeout:r.fetchTimeout,cwd:n,env:{...t,GOPROXY:`direct`}}))}catch(t){let n=String(t?.stderr??``).trim().split(`
|
|
64
|
+
`)[0]||t?.message||String(t);throw Error(`go list -m ${e}@latest failed: ${n}`)}let a;try{a=JSON.parse(i)}catch{throw Error(`go list -m ${e}@latest returned malformed JSON`)}if(a.Error){let t=a.Error.Err;if(a.Origin&&t?.endsWith(`no matching versions for query "latest"`))return null;throw Error(`go list -m ${e}@latest failed: ${t||`unknown error`}`)}if(typeof a.Version!=`string`)throw Error(`go list -m ${e}@latest returned malformed JSON`);return!0},!1)}async function dc(e,t,n,r){return await Pr(r,async r=>r===`off`?!1:r===`direct`?uc(e,t,n):await pi(n,`primary`,e=>jn(n,e,{headers:ci}),r,e)?!0:null)??!1}async function fc(e,t,n,r){let i=cc.exec(e);if(i)return e.slice(0,i.index+i[0].length);let a=Br(e,r)?[{url:`direct`,fallback:`,`}]:n.goProxyChain;if(a[0].url===`off`)return null;let o=e.split(`/`),s=Array.from({length:o.length-1},(e,t)=>o.slice(0,o.length-t).join(`/`));for(let e of a){let r=await Promise.allSettled(s.map(r=>dc(r,t,n,[e]))),i=r.findIndex(e=>e.status===`fulfilled`&&e.value),a=r.slice(0,i===-1?void 0:i).find(e=>e.status===`rejected`);if(a)throw a.reason;if(i!==-1)return s[i]}return null}function pc(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,I).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 mc=new WeakMap;function hc(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 gc(e,t){let n=En(e);return`${n===`https://crates.io`?`https://index.crates.io`:n}/${hc(t)}`}function _c(e){return e.split(`
|
|
65
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(`
|
|
66
|
-
`)}async function
|
|
67
|
-
`)){if(!e)continue;let t;try{t=JSON.parse(e)}catch{continue}if(c++,!t?.vers||t.yanked)continue;let n=t.vers.split(`+`)[0];i[n]={},t.pubtime&&(a[n]=t.pubtime);let r=
|
|
68
|
-
`)){let a=n?null: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(
|
|
70
|
-
`)};if(n.update){let e=(e,t,n)=>{for(let r of t){let t=
|
|
71
|
-
`).map((e,n)=>o.has(n)?
|
|
72
|
-
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=
|
|
66
|
+
`)}async function vc(e,t){let n=gc(t.cratesIoUrl,e);return[await Z(mc,t,n,async()=>{let r=await Fn(n,t,Dn(),_c);`body`in r||Or(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=U(n);r&&(r.prerelease.length?(!s||at(n,s))&&(s=n):(!o||at(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 yc(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];Qe(a)&&B(t,i,a)}return t}const bc=/^\d/,xc=/^(\d+(?:\.\d+)*)((?:\.[*xX])+)$/,Sc=/^(\s*)(.*?)(\s*)$/s,Cc=e=>e.split(/\s*,\s*/).map(e=>{let t=e.trim();return bc.test(t)&&!xc.test(t)?`^${t}`:t}).join(` `);function wc(e,t){let[,n,r,i]=Sc.exec(e);if(r.startsWith(`<`)&&ht(t,r))return e;let a=xc.exec(r),o;if(a){if(U(t)?.prerelease.length)o=t;else{let[,e,n]=a;o=`${t.split(/[-+]/)[0].split(`.`).slice(0,e.split(`.`).length).join(`.`)}${n}`}}else o=bc.test(r)?So(Q(`^${r}`),t,`^${r}`).replace(/^\^/,``):So(Q(r),t,r);return`${n}${o}${i}`}function Tc(e,t){return e.split(/(\s*,\s*)/).map((e,n)=>n%2?e:wc(e,t)).join(``)}function Ec(e,t,n){let r=e.get(t);if(!r)return;let i=Cc(n),a;for(let e of r)ht(e,i)&&(!a||at(e,a))&&(a=e);return a}const Dc=e=>{let t=I(e);return`(?:${t}|"${t}"|'${t}')`},Oc=/^\[(?:"(?:\\.|[^"\\])*"(?:,"(?:\\.|[^"\\])*")*)?\]/,kc=/^[ \t]*\[(\[?)[ \t]*([^[\]]+?)[ \t]*\]\1[ \t]*(?:#.*)?[ \t\r]*$/;function Ac(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 jc(e){let t=[],n=``,r=0;for(let i of e.split(`
|
|
68
|
+
`)){let a=n?null:kc.exec(i);a?(t.length&&(t.at(-1).end=r),t.push({path:a[1]?``:a[2],start:r,end:e.length,rewrites:[]})):n=Ac(i,n),r+=i.length+1}return t}function Mc(e,t){let n=jc(e);for(let[e,r]of Object.entries(t)){let[t,i]=e.split(`\0`),a=r.oldOrig||r.old,o=r.new,s=Dc(i),c=I(a),l=t.startsWith(`[`)?JSON.parse(Oc.exec(t)[0]):t.split(`|`,1)[0].split(`.`),u=`[ \\t]*\\.[ \\t]*`,d=l.map(Dc).join(u),f=RegExp(`^${d}${u}${s}$`),p=RegExp(`^${d}$`),m=n.find(e=>f.test(e.path)),h=m??n.find(e=>p.test(e.path));if(!h)throw Error(`Unable to locate Cargo table for ${t}.${i}`);h.rewrites.push({simpleRe:RegExp(`^(\\s*${s}\\s*=\\s*["'])${c}(["'].*)$`),inlineRe:RegExp(`^(\\s*${s}\\s*=\\s*\\{(?:"[^"\\n]*"|'[^'\\n]*'|[^"'}\\n])*?\\bversion\\s*=\\s*["'])${c}(["'])`),...m&&{versionRe:RegExp(`^(\\s*version\\s*=\\s*["'])${c}(["'].*)$`)},newValue:o})}let r=e;for(let t of n.reverse()){if(!t.rewrites.length)continue;let n=``,i=e.slice(t.start,t.end).replace(/^.*$/gm,e=>{let r=e;if(!n)for(let e of t.rewrites)r=r.replace(e.simpleRe,`$1${e.newValue}$2`).replace(e.inlineRe,`$1${e.newValue}$2`),e.versionRe&&(r=r.replace(e.versionRe,`$1${e.newValue}$2`));return n=Ac(r,n),r});r=r.slice(0,t.start)+i+r.slice(t.end)}return r}const Nc=/^(!?)\/(.*)\/(i?)$/,Pc=e=>e.isHash&&!!e.comment&&!hr(e.comment),Fc=[...new Set(Object.values(xe)),`actions`,`docker`,`make`],Ic=new Set(Fc),Lc={patch:new Set([`patch`]),minor:new Set([`patch`,`minor`]),major:new Set([`patch`,`minor`,`major`])},Rc={"go.work":`go.mod`,"pnpm-workspace.yaml":`package.json`},zc=(e,t)=>En(typeof e==`string`?e:t),Bc=/^(npm:@jsr\/[^@]+@|jsr:@[^@]+@)(.+)$/;function Vc(e){try{return S.native(e)}catch{return m(e)}}function Hc(e,t){let n=new Map,r=new Set(e);return He(t,e=>{for(let t of r){let i=f(e,t);try{g(i),n.set(t,i),r.delete(t)}catch{}}return r.size?null:n}),n}function Uc(e,t){t&&(e.date=t,e.age=oa(t,{noAffix:!0,shortUnits:!0}))}const Wc=(e,t,n)=>`${e}${t}${n===void 0?``:`${n}`}`,Gc=(e,t,n,r)=>Wc(`${e}${t}`,n,r),Kc=(e,t)=>{let n=e.split(`\0`)[0];return n===(t===`.`?fa(n):`${fa(n)}|${t}`)},qc=e=>Object.values(e).some(e=>Object.keys(e).length>0),Jc=e=>e.toLowerCase().replace(/[-_.]+/g,`-`),Yc=(e,t)=>La.has(e)?Ra(t):t;function Xc(e,t){return t===`go`?[e,ki(e)]:t===`docker`?ds(e):t===`pypi`?[e,Jc(e)]:[e]}function $(e,t,n,r,i,a=t,o=e){if(i===`engines`&&be.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let s=Array.from(new Set([...Xc(e,a),...Xc(o,a)])),c=(t,n)=>Jt(t,n,o,e);for(let e of r)if(s.some(t=>c(e,t)))return!1;for(let e of n)if(s.some(t=>c(e,t)))return!0;return!n.size}function Zc(e,t){let n=new Set;if(e?.length)for(let t of e){let e;try{e=C(t)}catch(e){throw Error(`Unable to open ${t}: ${e.message}`)}let r=Vc(t);if(e.isFile())n.add(r);else if(e.isDirectory()){try{for(let e of x(r,{withFileTypes:!0}))e.isFile()&&(Object.hasOwn(xe,e.name)||Js(e.name)||Qs(e.name))&&n.add(m(f(r,e.name)))}catch{}let e=r.replace(/\\/g,`/`),t=P.some(t=>e.endsWith(`/${t}/workflows`)),i=!t&&P.some(t=>e.endsWith(`/${t}`)),a=t?[u(e)]:i?[e]:P.map(t=>f(e,t));for(let e of a)for(let t of $o(e))n.add(t)}else throw Error(`${t} is neither a file nor directory`)}else{let e=new Set(P),r=[...Object.keys(xe),...Gs,...Zs,...P],i=new Set;for(let[a,o]of Hc(r,t)){if(e.has(a)){for(let e of $o(o))n.add(e);continue}let t=Vc(o);i.has(t)||(i.add(t),n.add(m(o)))}try{for(let e of x(t,{withFileTypes:!0})){let r=Js(e.name)&&!Gs.includes(e.name),i=Qs(e.name)&&!Zs.includes(e.name);e.isFile()&&(r||i)&&n.add(f(t,e.name))}}catch{}}let r=[];for(let e of Array.from(n)){let t=l(e);Object.hasOwn(Rc,t)&&(r.push(e),n.delete(f(u(e),Rc[t])))}return r.length?new Set([...r,...n]):n}function Qc(e,t){r===`win32`&&ee(e,0),w(e,t,r===`win32`?{flag:`r+`}:void 0)}const $c=(e,t)=>`${e}${t.split(`\0`,2).join(`\0`)}`;function el(e){if(!e.startsWith(`[`))return e;try{return JSON.parse(e).join(`.`)}catch{return e}}function tl(e){let t={results:{}},n=new Map,r=Object.entries(e).sort(([e],[t])=>Fc.indexOf(e)-Fc.indexOf(t));for(let[e,t]of r)for(let r of Object.keys(t)){let t=$c(e,r);n.set(t,(n.get(t)??0)+1)}for(let[e,i]of r)for(let[r,a]of Object.entries(i)){typeof a.oldPrint==`string`&&(a.old=a.oldPrint),typeof a.newPrint==`string`&&(a.new=a.newPrint),typeof a.oldOrig==`string`&&!no(a.oldOrig)&&(a.old=e===`go`?Ai(a.oldOrig):a.oldOrig),e===`go`?a.new=Ai(a.new):e===`actions`&&!a.digestOnly&&(a.old=X(a.old),a.new=X(a.new)),delete a.oldPrint,delete a.newPrint,delete a.oldOrig,delete a.date;let[i,o,s]=r.split(`\0`),c=s&&n.get($c(e,r))>1?`${o}${e===`actions`?`@`:`:`}${el(s)}`:o,l=t.results[e]??={};(l[el(i)]??={})[c]=a}for(let e of Object.values(t.results))for(let[t,n]of Object.entries(e))e[t]=Object.fromEntries(Object.entries(n).sort(([e],[t])=>e<t?-1:+(e>t)));return t}function nl(e,t){if(!t)return()=>!0;let n=Nc.exec(t);if(n){let e=new RegExp(n[2],n[3]);return n[1]?t=>!e.test(t):t=>e.test(t)}return e===`docker`?e=>ht(Os(e),t):e===`pypi`?e=>Po(e,t):e=>ht(e,t)}function rl(e,t,n){if(!n)return e;let r=nl(t,n),i=e=>Object.fromEntries(Object.entries(e).filter(([e])=>r(e)));if(t===`go`)return{...e,...e.versions&&{versions:i(e.versions)},new:typeof e.new==`string`&&r(e.new)?e.new:``,sameMajorNew:typeof e.sameMajorNew==`string`&&r(e.sameMajorNew)?e.sameMajorNew:``};let a=t===`pypi`?`releases`:t===`docker`?`tags`:`versions`;return{...e,[a]:i(e[a]??{})}}async function il(e={}){let{enableDnsCache:t}=await import(`./dns.js`),n=t();try{return await al(e)}finally{n()}}async function al(t){let n={...t};typeof n.timeout==`number`&&(n.timeout=Ne(n.timeout,`timeout`));let r=n.sockets??50,a=n.timeout??0,o=zc(t.forgeapi,Y.forgeapi),s=Ir(t.goproxy),d=Lr(),p=!n.noColor&&(n.color||i.isTTY),h=e=>p?t=>c(e,String(t),{validateStream:!1}):String,g=h(`magenta`),_=h(`green`),v=h(`red`),y,b={execFile:async(e,t,n)=>(await Qn())(e,t,n),fetchTimeout:a||5e3,goProbeTimeout:a?Math.max(1,Math.floor(a/2)):2500,concurrency:r,forgeApiUrl:o,pypiApiUrl:zc(t.pypiapi,Y.pypiapi),jsrApiUrl:zc(t.jsrapi,Y.jsrapi),goProxyChain:s,cratesIoUrl:zc(t.cargoapi,Y.cargoapi),dockerApiUrl:zc(t.dockerapi,Y.dockerapi),doFetch:(e,t)=>(y??=Bn(b))(async()=>{n.verbose&&console.error(`${ke()} ${g(t?.method||`GET`)} ${e}`);let r=await An(e,t);return n.verbose&&console.error(`${ke()} ${r.ok?_(r.status):v(r.status)} ${e}`),r}),noCache:!!n.noCache},x=new Map,S=async(e,t,n)=>{let r=`${e}${t}${n}`,i=V(x,r,()=>xs(e,t,n,b));try{return await i}catch(e){throw x.get(r)===i&&x.delete(r),e}};for(let e of n.modes??[])if(!Ic.has(e))throw Error(`Invalid mode: ${e}, expected one of: ${Fc.join(`,`)}`);let C=n.modes?.length?new Set(n.modes):Ic,ee=e=>{let t=(e.overrides??[]).map(e=>({include:e.include?.length?an(e.include):void 0,exclude:e.exclude?.length?an(e.exclude):void 0,greatest:e.greatest,prerelease:e.prerelease,release:e.release,patch:e.patch,minor:e.minor,allowDowngrade:e.allowDowngrade,cooldownDays:e.cooldown===void 0?void 0:Me(String(e.cooldown))})),n=e.renovateVersionRules??[];return{greatest:ln(e.greatest),prerelease:ln(e.prerelease),release:ln(e.release),patch:ln(e.patch),minor:ln(e.minor),allowDowngrade:ln(e.allowDowngrade),overrides:t,renovateVersionRules:n,hasCooldownOverride:t.some(e=>e.cooldownDays!==void 0)||n.some(e=>e.cooldownDays!==void 0)}},w=new WeakMap;function te(e,t,n,r=n){let i=V(w,e,()=>new Map),a=`${t}${n}${r}`,o=i.get(a);if(!o){let s=Array.from(new Set([...Xc(n,t),...Xc(r,t)])),c=e=>s.some(t=>De(t,e)),l=c(e.greatest),u=c(e.prerelease),d=c(e.release),f=c(e.patch),p=c(e.minor),m=c(e.allowDowngrade),h,g;for(let t of e.renovateVersionRules)Gt(t,n,r)&&(t.allowedVersions!==void 0&&(g=t.allowedVersions),t.cooldownDays!==void 0&&(h=t.cooldownDays));for(let t of e.overrides)t.include&&s.every(e=>!De(e,t.include))||t.exclude&&s.some(e=>De(e,t.exclude))||(t.greatest!==void 0&&(l=t.greatest),t.prerelease!==void 0&&(u=t.prerelease),t.release!==void 0&&(d=t.release),t.patch!==void 0&&(f=t.patch),t.minor!==void 0&&(p=t.minor),t.allowDowngrade!==void 0&&(m=t.allowDowngrade),t.cooldownDays!==void 0&&(h=t.cooldownDays));let _=f?Lc.patch:p?Lc.minor:Lc.major;o={names:s,useGreatest:l,usePre:u,useRel:d,semvers:_,allowDowngrade:m,cooldownOverride:h,allowedVersions:g},i.set(a,o)}return o}sn(n.pin);let ne=n.pin??{},T=(e,t,n)=>{let r=e.find(e=>ne[e]);if(r)return{pinnedRange:ne[r],pinNoDowngrade:!1};let i=e.find(e=>t[e]),a=!!(i&&Array.isArray(n)&&n.includes(i));return{pinnedRange:i&&!a?t[i]:void 0,pinNoDowngrade:a}},ie=(e,t,n,r,i,a,o)=>{let s=te(e,t,n,r);return{...s,...T(s.names,i,a),cooldownDays:s.cooldownOverride??o}},E={},ae={},oe=new Map,se=new Map,D=new Map,O=new Map,ce=new Map,k=[],A=(e,t,n)=>{let[r,i]=t.split(`\0`);k.push({mode:e,type:r,name:i,error:n?.message||String(n)})},j=(e,t,n)=>{delete E[e][t],A(e,t,n)},M={},le=Date.now(),ue=Vc(e()),de=e=>e.replace(`${ue}/`,``).replace(`${ue}\\`,``),fe=(e,t,n,r,i,a)=>{E[e][Gc(t,n,r)]={old:i,oldOrig:a}},pe=(e,t,n)=>{if(io(n))return;let r=oo(n);if(no(n))E.npm[e]={old:lo(n,t).version,new:``,oldOrig:n};else if(gt(n))E.npm[e]={old:Q(n),new:``,oldOrig:n};else if(r)se.set(e,r),E.npm[e]={old:Q(r.range),new:``,oldOrig:n};else if(ro(n))return;else ae[e]={old:n}},me=(e,t,n,r,i,a,o)=>{let s=new Set(Object.keys(t.tool?.uv?.sources??{}).map(Jc)),c=(t,r)=>{for(let{name:o,version:c,spec:l}of ve(t))s.has(Jc(o))||$(o,e,i,a,r)&&(fe(e,r,n,o,Q(c),c),ce.set(Gc(r,n,o),l))};for(let[s,l]of Ee(r,t)){let t=l||{};if(Array.isArray(t)){if(e!==`pypi`)continue;c(t,s)}else if(typeof t==`string`){let[r,o]=t.split(`@`);$(r,e,i,a,s)&&fe(e,s,n,r,Q(o),o)}else{if(e===`npm`&&(s===`overrides`||s===`pnpm.overrides`)){let r=s===`overrides`?[`overrides`]:[`pnpm`,`overrides`],c=(t,l)=>{for(let[u,d]of Object.entries(t))if(typeof d==`string`){let t=Ra(u===`.`?l.at(-1)??u:u);if(o?.has(t))continue;let c=oo(d);if(!$(t,e,i,a,s,e,c?.name??t))continue;let f=[...r,...l,u],p=JSON.stringify(f),m=Gc(s,n,t,p);pe(m,t,d)}else d&&typeof d==`object`&&!Array.isArray(d)&&c(d,[...l,u])};c(t,[]);continue}for(let[r,l]of Object.entries(t)){if(e===`pypi`&&Array.isArray(l)){c(l,`${s}.${r}`);continue}typeof l==`string`&&(o?.has(Yc(s,r))||$(r,e,i,a,s,e,(e===`npm`?oo(l):null)?.name??r)&&(e===`npm`?pe(Gc(s,n,r),r,l):e===`go`?fe(e,s,n,r,Ai(l),X(l)):gt(l)&&fe(e,s,n,r,Q(l),l)))}}}},he=Zc(n.files,ue),N=new Map(await F(Array.from(he).filter(e=>{if(Qo(e))return C.has(`actions`)||C.has(`docker`);let t=l(e);return Js(t)?C.has(`docker`):Qs(t)?C.has(`make`):C.has(xe[t])}),async e=>{try{return[e,await re(e,`utf8`)]}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}},{concurrency:r})),ge={},_e=[],be=[],P=[],Oe=[],Ae=[],je=[],I=[],L=[],Fe={},R=(e,t,n)=>{(Fe[e]??=new Map).set(t===`.`?``:`|${t}`,n)},Ie=t[$t],Le=Ie&&new Set(Ie.cliKeys),Re=Object.fromEntries(Object.entries(n).filter(([e,t])=>t!==void 0&&(!Le||Le.has(e)))),z=Ue(async e=>{let t={...await dn(e),...Re};return{modeConfig:t,include:an(t.include??[]),exclude:an(t.exclude??[]),versionConfig:ee(t),pin:t.pin??{},pinNoDowngrade:t.pinNoDowngrade,cooldownDays:t.cooldown?Me(String(t.cooldown)):0}});function ze(e,t){return t.types?.length?t.types:e===`npm`?ye:e===`pypi`?Se:e===`go`?t.indirect?Ce:Ce.filter(e=>e!==`indirect`):e===`cargo`?[...we,...Te]:[]}let Be=(e,t)=>({modeConfig:e.modeConfig,versionConfig:e.versionConfig,projectDir:t,pin:e.pin,cooldownDays:e.cooldownDays}),Ve=e=>{let t=[],n=-1;for(let[r,i]of e.split(/\r?\n/).entries()){let e=/^(\s*)(?:"([^"]+)"|'([^']+)'|([^\s:#][^:#]*)):\s*(.*)$/.exec(i);if(!e)continue;let a=e[1].length,o=(e[2]??e[3]??e[4]).trim();if(a===0){n=o===`overrides`?a:-1;continue}if(n===-1||!e[5])continue;let s=e[5].replace(/\s+#.*$/,``).trimEnd(),c=e[5].length-e[5].trimStart().length,l=/^(['"])(.*)\1$/.exec(s.trimStart()),u=l?.[2]??s.trimStart();t.push({selector:o,value:u,lineNumber:r,valueIndex:i.length-e[5].length+c+Number(!!l)})}return t};function He(e,t,n){if(E.docker??={},!$(e.fullImage,`docker`,n.include,n.exclude,`docker`))return;let r=`${e.tag}${e.digest?`@${e.digest}`:``}`,i=Wc(t,e.fullImage,r);if(E.docker[i])return;let a=ps(e.tag);(a||e.digest)&&(E.docker[i]={old:a?.version??e.tag,oldOrig:e.tag,...e.digest&&{oldDigest:e.digest},...e.digestOnly&&{digestOnly:!0}},I.push({key:i,fullImage:e.fullImage,ref:e,versionConfig:n.versionConfig,filePin:n.pin,fileCooldownDays:n.cooldownDays}))}let B=new Map,We=new Map;for(let e of he){let t=l(e);if(t===`package.json`){let t=N.get(e);if(!t)continue;try{let n=JSON.parse(t),r=Array.isArray(n.workspaces)?n.workspaces:n.workspaces?.packages;Array.isArray(r)&&r.some(e=>typeof e==`string`)&&We.set(e,n)}catch{}}else if(t===`Cargo.toml`){let t=N.get(e);if(!t)continue;try{let n=qi(t),r=n.workspace?.members;Array.isArray(r)&&r.length&&B.set(e,n)}catch{}}}let Ge={cargo:B.size,go:Array.from(he).filter(e=>l(e)===`go.work`).length,npm:new Set([...We.keys(),...Array.from(he).filter(e=>l(e)===`pnpm-workspace.yaml`)]).size},Ke=(e,t,n,r,i)=>{let a=M[e]??=[],o=!a.length&&!Ge[e],s=o?`.`:de(t);return a.push({absPath:m(t),content:n,memberPath:s,projectDir:r}),R(e,s,Be(i,r)),o?``:`|${s}`},qe=(e,t)=>{try{return t()}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}},Je=(e,t,n)=>Ge[e]>1?`${de(t)}:${n}`:n,H=(e,t,n,r,i,a,o)=>{let s=Je(`npm`,e,n.memberPath);R(`npm`,s,Be(a,t)),Oe.push({...n,memberPath:s}),me(`npm`,r,s===`.`?``:`|${s}`,i,a.include,a.exclude,o)};for(let e of B.size||We.size?new Set([...B.keys(),...We.keys(),...N.keys()]):N.keys()){if(Qo(e)){let t=C.has(`actions`),n=C.has(`docker`),r=N.get(e),i=de(e),a=await z(u(e)),s=new Set;ge[i]={absPath:e,content:r,fileType:`workflow`,workflowLines:s};let c=[];for(let[e,l]of r.split(/\r?\n/).entries()){if(t){let e=Jo(l),t=e&&Vo(e.value);if(t&&$(t.name,`actions`,a.include,a.exclude,`actions`)){E.actions??={};let n=e.pinnedVersion||/^#\s*(\S+)\s*$/.exec(e.comment)?.[1]||``,r=t.isHash&&n?`${n}@${t.ref}`:t.ref,s=Wc(i,t.name,r);E.actions[s]||(E.actions[s]={old:t.ref},je.push({...t,key:s,comment:n,apiUrl:Ho(t.host,o),versionConfig:a.versionConfig,filePin:a.pin,filePinNoDowngrade:a.pinNoDowngrade,fileCooldownDays:a.cooldownDays}))}}if(!n)continue;let r=Ko(l,c);if(!r)continue;let{indent:u,key:d}=r,f=d===`container`&&c.length===2&&c[0].key===`jobs`,p=d===`image`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`container`||c.length===4&&c[0].key===`jobs`&&c[2].key===`services`),m=d===`uses`&&(c.length===3&&c[0].key===`jobs`&&c[2].key===`steps`||c.length===2&&c[0].key===`runs`&&c[1].key===`steps`);if((f||p||m)&&r.value){let t=fs(r.value.replace(/\s+#.*$/,``).replace(/^(['"])(.*)\1$/,`$2`));t&&(He(t,i,a),s.add(e))}c.push({indent:u,key:d})}continue}let t=l(e),n=m(e);if(Js(t)){let n=N.get(e),r=de(e),i=qs(t)?`dockerfile`:`compose`,a=await z(u(e));ge[r]={absPath:e,content:n,fileType:i};for(let{ref:e}of hs(n,Ys(t)))He(e,r,a);continue}if(Qs(t)){let t=N.get(e),n=de(e),r=await z(u(e));ge[n]={absPath:e,content:t,fileType:`make`},E.make??={};let i={projectDir:u(e),versionConfig:r.versionConfig,filePin:r.pin,filePinNoDowngrade:r.pinNoDowngrade,fileCooldownDays:r.cooldownDays};for(let{installPath:e,version:a}of rc(t)){if(!$(e,`make`,r.include,r.exclude,`make`,`go`))continue;let t=Wc(n,e,a);E.make[t]||(E.make[t]={old:X(a),oldOrig:a},L.push({kind:`go`,key:t,name:e,oldSpec:`${e}@${a}`,installPath:e,version:a,...i}))}for(let e of sc(t)){if(!$(e.writtenImage,`make`,r.include,r.exclude,`make`,`docker`))continue;let t=Wc(n,e.writtenImage,e.ref.tag);if(E.make[t])continue;let a=ps(e.ref.tag);if(!a)continue;let o=ac(e.writtenImage,e.ref.tag,e.digest);E.make[t]={old:a.version,oldOrig:e.ref.tag},L.push({kind:`docker`,key:t,name:e.writtenImage,oldSpec:o,image:e,...i})}continue}let i=xe[t];if(t===`go.work`){E[i]??={};let t=u(n),a=N.get(e),o=Ei(a),[{modeConfig:s,include:c,exclude:l,versionConfig:d,pin:f,cooldownDays:p},m]=await Promise.all([z(t),F(o.use,async e=>{let n=Di(t,e);if(!n)return null;try{return{usePath:e,modPath:n,content:await re(n,`utf8`)}}catch{return null}},{concurrency:r})]),h=ze(i,s),g=Je(i,e,`.`),_=Be({modeConfig:s,versionConfig:d,pin:f,cooldownDays:p},t);R(i,g,_),be.push({file:e,content:a,memberPath:g});let v=new Set,y=[];for(let e of m){if(!e)continue;let t=ri(e.content);t&&v.add(t),y.push({...e,parsed:ii(e.content)})}for(let{usePath:t,modPath:n,content:r,parsed:a}of y){let o=Je(i,e,t);R(i,o,_),_e.push({absPath:n,content:r,projectDir:u(n),memberPath:o}),me(i,a,o===`.`?``:`|${o}`,h,c,l,v)}for(let[e,t]of Object.entries(o.replace))!v.has(e)&&$(e,i,c,l,`replace`)&&fe(i,`replace`,g===`.`?``:`|${g}`,e,Ai(t),X(t));continue}if(t===`go.mod`&&_e.some(e=>e.absPath===n)||t===`package.json`&&Oe.some(e=>e.absPath===n)||t===`Cargo.toml`&&P.some(e=>e.absPath===n))continue;if(t===`Cargo.toml`){E[i]??={};let t=N.get(e),a=B.get(e)??qi(t),o=u(n),s=Hc([`Cargo.lock`],o).get(`Cargo.lock`),c=a.workspace?.members,l=Array.isArray(c)&&c.length>0,[d,f,p]=await Promise.all([z(o),s?re(s,`utf8`):null,l?_a(c,o,`Cargo.toml`,r):[]]),{modeConfig:m,include:h,exclude:g}=d,_=ze(i,m),v=f?yc(f):new Map,y=(e,t)=>{for(let[n,r]of Ee(_,e)){let e=r||{};if(!(typeof e!=`object`||Array.isArray(e))){for(let[r,a]of Object.entries(e))if($(r,i,h,g,n)){if(typeof a==`object`&&a&&`version`in a&&!(`git`in a)&&!(`path`in a)&&!(`registry`in a)){let e=a.version,o=a.package||r;gt(Cc(e))&&(o!==r&&oe.set(Gc(n,t,r),o),fe(i,n,t,r,Ec(v,o,e)??Q(Cc(e)),e))}else typeof a==`string`&>(Cc(a))&&fe(i,n,t,r,Ec(v,r,a)??Q(Cc(a)),a)}}}};if(l){let r=Je(i,e,`.`),s=Be(d,o);R(i,r,s),y(a,r===`.`?``:`|${r}`),P.push({absPath:n,content:t,memberPath:r});for(let t of p){let n=Je(i,e,t.memberPath);R(i,n,s),P.push({...t,memberPath:n}),y(qe(t.absPath,()=>qi(t.content)),`|${n}`)}}else y(a,Ke(i,e,t,o,d));continue}if(t===`package.json`&&We.has(e)){E[i]??={};let t=u(n),a=N.get(e),o=We.get(e),s=Array.isArray(o.workspaces)?o.workspaces:o.workspaces?.packages,c=Array.isArray(s)?s.filter(e=>typeof e==`string`):[],[l,d]=await Promise.all([z(t),_a(c,t,`package.json`,r)]),f=ze(i,l.modeConfig),p=new Set,m=[];for(let e of d){let t=qe(e.absPath,()=>JSON.parse(e.content));typeof t.name==`string`&&t.name&&p.add(t.name),m.push({member:e,pkg:t})}H(e,t,{absPath:n,content:a,memberPath:`.`},o,f,l,p);for(let{member:n,pkg:r}of m)H(e,t,n,r,f,l,p);continue}if(t===`pnpm-workspace.yaml`){E[i]??={};let a=u(n),o=N.get(e),s=Fa(o),c=f(a,`package.json`),[l,d,p]=await Promise.all([z(a),Pe(re(c,`utf8`)),_a(s,a,`package.json`,r)]),h=ze(i,l.modeConfig),g=Je(i,e,t);R(i,g,Be(l,a)),Ae.push({absPath:n,content:o,memberPath:g});for(let{type:e,name:t,value:n}of Na(o))$(t,i,l.include,l.exclude,e,i,oo(n)?.name??t)&&pe(Gc(e,`|${g}`,t),t,n);for(let{selector:e,value:t}of Ve(o)){let n=e.match(/(?:^|>)(?:@[^/>\s]+\/[^@>\s]+|[^@>\s]+)(?=@|>|$)/g)?.at(-1)?.replace(/^>/,``)??e,r=`pnpm-workspace.overrides`;if(!$(e,i,l.include,l.exclude,r,i,n))continue;let a=JSON.stringify(e),o=Gc(r,`|${g}`,e,a);D.set(o,n),O.set(o,e),pe(o,e,t)}if(d!==null){let t=qe(c,()=>JSON.parse(d));H(e,a,{absPath:m(c),content:d,memberPath:`.`},t,h,l)}for(let t of p)H(e,a,t,qe(t.absPath,()=>JSON.parse(t.content)),h,l);continue}E[i]??={};let a=u(n),s=await z(a),{modeConfig:c,include:d,exclude:p}=s,h=ze(i,c),g=N.get(e);me(i,qe(e,()=>i===`npm`?JSON.parse(g):i===`pypi`?qi(g):ii(g)),Ke(i,e,g,a,s),h,d,p)}let Ye=Object.keys(ae).length>0;if(!qc(E)&&!Ye)return{results:{},message:`No dependencies found, nothing to do.`};let Xe=[],Ze=(e,t)=>D.get(e)??se.get(e)?.name??Yc(e.split(`\0`)[0].split(`|`)[0],t),Qe={needsDates:Fe.npm?.values().some(e=>e.cooldownDays||e.versionConfig.hasCooldownOverride)??!1};for(let[e,t]of Object.entries(Fe))(Object.keys(E[e]).length||e===`npm`&&Ye)&&Xe.push((async()=>{let i=t.values().next().value,a=e=>{let n=e.indexOf(`|`);return t.get(n===-1?``:e.slice(n))??i},o=new Map,s=E[e],c=async(t,r,i)=>{let c=fa(r),{modeConfig:l,versionConfig:u,projectDir:f,pin:p,cooldownDays:m}=a(r),h=s[t],_=se.get(t),[v,y]=await(e===`npm`?h.oldOrig&&no(h.oldOrig)?uo(i,b):eo(Ze(t,i),c,l,Qe,b,f,h.old):e===`go`?yi(i,r,h.oldOrig||h.old,f,b,d):e===`cargo`?vc(oe.get(t)??i,b):Ao(i,b)),x=v;if(x.error)throw Error(x.error);let S=c===`packageManager`?i:x.name,{useGreatest:C,usePre:ee,useRel:w,semvers:te,allowDowngrade:ne,allowedVersions:T,pinnedRange:re,pinNoDowngrade:E,cooldownDays:ae}=ie(u,e,S,i,p,l.pinNoDowngrade,m);x=rl(x,e,T);let{old:D,oldOrig:O}=h,k=Jn(x,{usePre:ee,useRel:w,useGreatest:C,semvers:te,range:D,mode:e,pinnedRange:re,pinNoDowngrade:E,allowDowngrade:ne,cooldownDays:ae||void 0,now:ae?le:void 0}),A=``;if((e===`go`||e===`pypi`)&&k)A=k;else if(e===`cargo`&&k&&O)A=Tc(O,k);else if(k){if(O&&no(O)){let e=Bc.exec(O);e?A=`${e[1]}${k}`:O.startsWith(`jsr:`)&&(A=`jsr:${k}`)}else A=_?`npm:${_.name}@${So(D,k,_.range,c)}`:So(D,k,O,c)}let j=ce.get(t);if(!k||k===D||O&&O===A||j&&!Fo(j,O||D,A)){n.verbose&&k&&k!==D&&console.error(`${ke()} ${g(`SKIP`)} ${i}: ${O||D} can not be rewritten to ${k}`),delete s[t];return}let M=(e===`pypi`?x.releases?.[k]?.[0]?.upload_time_iso_8601:e===`go`?x.Time:e===`cargo`?x.time?.[k]:``)||``;h.new=A,O&&no(O)&&(h.newPrint=k),e===`npm`?o.set(t,{name:Ze(t,i),promise:to(x.name,k,l,Qe,b,f)}):h.info=e===`pypi`?Mr(x,y,x.info.name):e===`go`?Oi(x.newPath||i):`https://crates.io/crates/${x.name}`,Uc(h,M)};if(await F(Object.keys(s),async t=>{let[n,r]=t.split(`\0`);try{await c(t,n,r)}catch(n){j(e,t,n)}},{concurrency:r}),await Promise.all(Array.from(o,async([e,{name:t,promise:n}])=>{let r=await n,i=s[e];i&&(i.info=Mr({repository:r.repository,homepage:r.homepage},null,t),Uc(i,r.date))})),e===`npm`&&Ye){let e=(await F(Object.entries(ae),async([e,t])=>{try{return await Eo(e,t,b)}catch(t){return A(`npm`,e,t),null}},{concurrency:r})).filter(e=>e!==null);for(let{key:t,newRange:n,user:r,repo:i,oldRef:a,newRef:o,newDate:c}of e)Uc(s[t]={old:ae[t].old,new:n,oldPrint:mr.test(a)?a.substring(0,7):a,newPrint:mr.test(o)?o.substring(0,7):o,info:`https://github.com/${r}/${i}`},c)}for(let[t,{date:n}]of Object.entries(s)){if(!n)continue;let[r,i]=t.split(`\0`),{cooldownDays:o,versionConfig:c}=a(r);if(!o&&!c.hasCooldownOverride)continue;let l=e===`npm`?Ze(t,i):i,u=te(c,e,l,i).cooldownOverride??o;u&&!Cn(n,u,le)&&delete s[t]}})());let U=e=>ie(e.versionConfig,`actions`,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays);je.length&&Xe.push((async()=>{await F(Map.groupBy(je,e=>`${e.apiUrl}/${e.owner}/${e.repo}`).values(),async e=>{let{apiUrl:t,owner:n,repo:i}=e[0],a=e.filter(e=>e.isHash?!Pc(e):hr(e.ref)),o=a.some(e=>{let{allowDowngrade:t,pinnedRange:n,pinNoDowngrade:r}=U(e);return t||!(!n||r)}),s=[...a.map(e=>e.isHash&&e.comment||e.ref),...t===Y.forgeapi?[]:e.filter(Pc).map(e=>e.comment)],c=[];try{s.length&&(c=await Dr(t,n,i,b,o?[]:s,!!a.length))}catch(t){for(let n of e)j(`actions`,n.key,t);return}let l=[],u=new Map,d=new Map,f=new Map;for(let e of c){d.set(e.name,e);let t=jt.parse(e.name)?.version;if(t&&e.isStable!==!1){let n=u.get(t);n||l.push(t),(!n||e.name.length>n.length)&&u.set(t,e.name)}e.commitSha&&f.set(e.commitSha,e.name)}let p=Ue(e=>Uo(t,n,i,e,b)),m=Ue(async e=>{let r=d.get(e)?.commitSha;if(r)return r;let a=t===Y.forgeapi?`commits`:`branches`,o=await ur(`${t}/repos/${n}/${i}/${a}/${encodeURIComponent(e)}`,b);if(o.status===404)return``;if(!o.ok)throw Error(`Unable to fetch ${n}/${i}@${e}`);let s=await o.json();return typeof s?.sha==`string`?s.sha:typeof s?.id==`string`?s.id:typeof s?.commit?.sha==`string`?s.commit.sha:typeof s?.commit?.id==`string`?s.commit.id:``});async function h(e,t){let r={...e,cooldownDays:void 0,now:void 0},a=new Set;for(let o=0;o<100;o++){let o=Kn({},a.size?t.filter(e=>!a.has(e)):t,r);if(!o)return null;let s=u.get(o),c=d.get(s).commitSha;if(!e.cooldownDays)return{version:o,tag:s,commitSha:c,date:``};let l=c?await p(c):``;if(l===void 0)throw Error(`Unable to fetch the commit date for ${n}/${i}@${s}`);if(Cn(l,e.cooldownDays,e.now))return{version:o,tag:s,commitSha:c,date:l};a.add(o)}return null}let g=async e=>{let{key:t,host:r,ref:a,comment:o,isHash:s}=e,c=E.actions[t],u=`https://${r||`github.com`}/${n}/${i}`,g=a;if(s?g=o||f.get(a)||f.entries().find(([e])=>e.startsWith(a))?.[1]||``:hr(a)||(g=``),!g){delete E.actions[t];return}let{useGreatest:_,usePre:v,useRel:y,semvers:b,allowDowngrade:x,allowedVersions:S,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w}=U(e),te=hr(g)?await h({range:g,semvers:b,useGreatest:_,usePre:v,useRel:y,allowDowngrade:x,versioning:jt,pinnedRange:C,pinNoDowngrade:ee,cooldownDays:w||void 0,now:w?le:void 0},S?l.filter(nl(`actions`,S)):l):null;if(!te){if(!s||!o){delete E.actions[t];return}let e=await m(o);if(!e||e.startsWith(a)||a.startsWith(e)){delete E.actions[t];return}c.old=o,c.new=o,c.oldDigest=a,c.newDigest=e,c.digestOnly=!0,c.info=u,Uc(c,await Pe(p(e)));return}let{tag:ne,commitSha:T,date:re}=te;if(s){if(!T||T.startsWith(a)||a.startsWith(T)){delete E.actions[t];return}c.old=a,c.new=T.substring(0,a.length),c.oldPrint=g,c.newPrint=ne}else{let e=Wo(ne,a);if(e===a){delete E.actions[t];return}c.new=d.has(e)?e:ne}c.info=u,Uc(c,re||(T?await Pe(p(T)):``))};await F(e,async e=>{try{await g(e)}catch(t){j(`actions`,e.key,t)}},{concurrency:r})},{concurrency:r}),Object.keys(E.actions).length||delete E.actions})()),I.length&&Xe.push((async()=>{await F(Map.groupBy(I,e=>e.fullImage).entries(),async([e,t])=>{if(t[0].ref.registry){for(let e of t)delete E.docker[e.key];return}let n;try{let[t]=await Es(e,b);n=t}catch(e){for(let n of t)j(`docker`,n.key,e);return}await F(t,async t=>{try{let r=E.docker[t.key],i=r.oldOrig||r.old,{semvers:a,usePre:o,useRel:s,allowedVersions:c,pinnedRange:l,cooldownDays:u}=ie(t.versionConfig,`docker`,e,e,t.filePin,void 0,t.fileCooldownDays),d=rl(n,`docker`,c).tags,f=!t.ref.digestOnly&&ps(i)?Rs(d,i,a,u||void 0,u?le:void 0,l,o,s):null,p=f?.newTag??i;if(t.ref.digest){let e=await S(t.ref.namespace,t.ref.repo,p);if(!e||e===t.ref.digest&&!f){delete E.docker[t.key];return}r.oldDigest=t.ref.digest,r.newDigest=e,r.digestOnly=t.ref.digestOnly}else if(!f){delete E.docker[t.key];return}r.new=p,r.info=Xs(t.ref),Uc(r,f?.date)}catch(e){j(`docker`,t.key,e)}},{concurrency:r})},{concurrency:r}),Object.keys(E.docker).length||delete E.docker})()),L.length&&Xe.push((async()=>{await F(L,async e=>{let{useGreatest:t,usePre:n,useRel:r,semvers:i,allowDowngrade:a,allowedVersions:o,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l}=ie(e.versionConfig,e.kind,e.name,e.name,e.filePin,e.filePinNoDowngrade,e.fileCooldownDays),u={semvers:i,useGreatest:t,usePre:n,useRel:r,allowDowngrade:a,pinnedRange:s,pinNoDowngrade:c,cooldownDays:l||void 0,now:l?le:void 0},f=E.make[e.key];try{if(e.kind===`go`){let t=await fc(e.installPath,e.projectDir,b,d);if(!t){delete E.make[e.key];return}let[n]=await yi(t,`tool`,X(e.version),e.projectDir,b,d),r=rl(n,`go`,o),i=Jn(r,{...u,mode:`go`,range:X(e.version)});if(!i){delete E.make[e.key];return}let a=r.newPath??Kr(t,i),s=`${a}${e.installPath.slice(t.length)}`,c=kr(i,e.version);if(s===e.installPath&&c===e.version){delete E.make[e.key];return}e.newSpec=`${s}@${c}`,f.new=c,f.info=Oi(a),Uc(f,r.Time)}else{let[t]=await Es(e.image.ref.fullImage,b),n=rl(t,`docker`,o).tags,r=Rs(n,e.image.ref.tag,u.semvers,u.cooldownDays,u.now,u.pinnedRange,u.usePre,u.useRel);if(!r){delete E.make[e.key];return}let i=e.image.digest?await S(e.image.ref.namespace,e.image.ref.repo,r.newTag):null;if(e.image.digest&&!i){delete E.make[e.key];return}e.newSpec=ac(e.image.writtenImage,r.newTag,i),f.new=r.newTag,f.info=Xs(e.image.ref),Uc(f,r.date)}}catch(t){j(`make`,e.key,t)}},{concurrency:r}),Object.keys(E.make).length||delete E.make})());try{await Promise.all(Xe)}finally{n.noCache||await xn()}if(!qc(E))return k.length?{results:{},errors:k}:{results:{},message:`All dependencies are up to date.`};let $e=(e,t)=>{let n=e.split(`
|
|
69
|
+
`),r=new Map(Ve(e).map(e=>[e.selector,e]));for(let[e,i]of O){let a=E.npm?.[e],o=r.get(i);if(!a||!Kc(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=ma(E[e],r.memberPath);Object.keys(t).length&&Qc(r.absPath,n(r.content,t,r))}},t=new Map(je.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(L.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}=ge[e]||{};if(!r)continue;let a=Xo(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:mr.test(n.old)?n.newPrint:void 0}}));Qc(r,a),ge[e].content=a}continue}if(n===`docker`){for(let[e,t]of i){let n=ge[e];if(!n)continue;let{absPath:r,content:i,fileType:a,workflowLines:o}=n;Qc(r,(a===`dockerfile`?Hs:a===`compose`?Us:(e,t)=>e.split(`
|
|
71
|
+
`).map((e,n)=>o.has(n)?Ws(e,t):e).join(`
|
|
72
|
+
`))(i,Object.fromEntries(t)))}continue}if(n===`make`){for(let[e,t]of a){let n=ge[e];n&&Qc(n.absPath,pc(n.content,t.map(e=>({oldSpec:e.oldSpec,newSpec:e.newSpec}))))}continue}if(n===`go`){for(let e of[..._e,...M.go??[]]){let t=ma(E[n],e.memberPath);if(!Object.keys(t).length)continue;let[r,i]=xi(e.content,t);r!==e.content&&Qc(e.absPath,r),Ti(e.projectDir,i,Qc)}for(let e of be){let t=Object.fromEntries(Object.entries(ma(E[n],e.memberPath)).filter(([e])=>fa(e.split(`\0`)[0])===`replace`));if(Object.keys(t).length){let[n]=xi(e.content,t);n!==e.content&&Qc(e.file,n)}}}else n===`cargo`?e(n,[...P,...M.cargo??[]],Mc):n===`npm`?(e(n,Ae,(e,t,n)=>$e(Pa(e,t),n.memberPath)),e(n,[...Oe,...M.npm??[]],fo)):e(n,M[n]??[],Bo)}}let et=tl(E);return k.length&&(et.errors=k),et}export{Vi as n,$t as r,il as t};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "18.0
|
|
3
|
+
"version": "18.1.0",
|
|
4
4
|
"description": "CLI to update npm, uv, cargo, go, docker and actions dependencies",
|
|
5
5
|
"author": "silverwind",
|
|
6
6
|
"repository": {
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"bun": "*"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@types/node": "26.
|
|
45
|
+
"@types/node": "26.4.1",
|
|
46
46
|
"@typescript/native-preview": "7.0.0-dev.20260707.2",
|
|
47
|
-
"@vitest/coverage-v8": "
|
|
47
|
+
"@vitest/coverage-v8": "5.0.0",
|
|
48
48
|
"eslint": "10.9.1",
|
|
49
|
-
"eslint-config-silverwind": "
|
|
49
|
+
"eslint-config-silverwind": "146.0.2",
|
|
50
50
|
"timerel": "5.9.0",
|
|
51
51
|
"tsdown": "0.22.14",
|
|
52
52
|
"tsdown-config-silverwind": "4.0.3",
|
|
53
53
|
"typescript": "6.0.3",
|
|
54
|
-
"typescript-config-silverwind": "20.0.
|
|
55
|
-
"updates-config-silverwind": "4.0.
|
|
56
|
-
"versions": "15.3.
|
|
57
|
-
"vitest": "
|
|
58
|
-
"vitest-config-silverwind": "
|
|
54
|
+
"typescript-config-silverwind": "20.0.4",
|
|
55
|
+
"updates-config-silverwind": "4.0.6",
|
|
56
|
+
"versions": "15.3.8",
|
|
57
|
+
"vitest": "5.0.0",
|
|
58
|
+
"vitest-config-silverwind": "12.0.0"
|
|
59
59
|
},
|
|
60
60
|
"bin": {
|
|
61
61
|
"updates": "dist/index.js"
|