updates 17.6.2 → 17.8.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 +2 -1
- package/dist/index.js +23 -24
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- `pyproject.toml` - supports `uv` and `poetry`
|
|
12
12
|
- `go.mod` - supports go dependencies
|
|
13
13
|
- `.{github,gitea,forgejo}/workflows` - supports actions
|
|
14
|
+
- `Dockerfile*`, `docker-*.{yml,yaml}` - supports Docker Hub images
|
|
14
15
|
|
|
15
16
|
# Usage
|
|
16
17
|
|
|
@@ -44,7 +45,7 @@ npx updates -u && npm i
|
|
|
44
45
|
|`-r, --registry <url>`|Override npm registry URL|
|
|
45
46
|
|`-S, --sockets <num>`|Maximum number of parallel HTTP sockets opened. Default: 96|
|
|
46
47
|
|`-T, --timeout <ms>`|Network request timeout in ms (go probes use half). Default: 5000|
|
|
47
|
-
|`-M, --modes <mode,...>`|Which modes to enable. Either `npm`, `pypi`, `go`, `actions`. Default: `npm,pypi,go,actions`|
|
|
48
|
+
|`-M, --modes <mode,...>`|Which modes to enable. Either `npm`, `pypi`, `go`, `actions`, `docker`. Default: `npm,pypi,go,actions,docker`|
|
|
48
49
|
|`-j, --json`|Output a JSON object|
|
|
49
50
|
|`-n, --no-color`|Disable color output|
|
|
50
51
|
|`-v, --version`|Print the version|
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,versions as o}from"node:process";import{basename as s,dirname as c,join as l,resolve as u}from"node:path";import{pathToFileURL as d}from"node:url";import{accessSync as f,globSync as p,lstatSync as m,readFileSync as h,readdirSync as g,statSync as _,truncateSync as v,writeFileSync as y}from"node:fs";import{parseArgs as b,promisify as x,stripVTControlCharacters as S,styleText as C}from"node:util";import ee from"node:dns";import{execFile as te}from"node:child_process";var ne=Object.defineProperty,w=(e,t)=>()=>(e&&(t=e(e=0)),t),re=(e,t)=>{let n={};for(var r in e)ne(n,r,{get:e[r],enumerable:!0});return t||ne(n,Symbol.toStringTag,{value:`Module`}),n};async function ie(e,t,{concurrency:n=1/0,stopOnError:r=!0,signal:i}={}){return new Promise((a,o)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!=`function`)throw TypeError(`Mapper function is required`);if(!(Number.isSafeInteger(n)&&n>=1||n===1/0))throw TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let s=[],c=[],l=new Map,u=!1,d=!1,f=!1,p=0,m=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),g=()=>{y(i.reason)},_=()=>{i?.removeEventListener(`abort`,g)},v=e=>{a(e),_()},y=e=>{u=!0,d=!0,o(e),_()};i&&(i.aborted&&y(i.reason),i.addEventListener(`abort`,g,{once:!0}));let b=async()=>{if(d)return;let e=await h.next(),n=m;if(m++,e.done){if(f=!0,p===0&&!d){if(!r&&c.length>0){y(AggregateError(c));return}if(d=!0,l.size===0){v(s);return}let e=[];for(let[t,n]of s.entries())l.get(t)!==T&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===T&&l.set(n,i),s[n]=i,p--,await b()}catch(e){if(r)y(e);else{c.push(e),p--;try{await b()}catch(e){y(e)}}}})()};(async()=>{for(let e=0;e<n;e++){try{await b()}catch(e){y(e);break}if(f||u)break}})()})}const T=Symbol(`skip`),ae=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,E=new Map;function D(e){if(typeof e!=`string`)return null;let t=E.get(e);if(t!==void 0)return t;let n=ae.exec(e.trim());if(!n)return E.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return E.set(e,s),s}function oe(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:e>t?1:0}function se(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function O(e,t){let n=se(e,t);if(n!==0)return n;if(!e.prerelease.length&&!t.prerelease.length)return 0;if(e.prerelease.length&&!t.prerelease.length)return-1;if(!e.prerelease.length&&t.prerelease.length)return 1;let r=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<r;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=oe(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function k(e){return D(e)?.version??null}function ce(e){return D(e)}const le=new Map,ue=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function de(e){if(typeof e!=`string`)return null;let t=le.get(e);if(t!==void 0)return t;let n=ue.exec(e);if(!n)return le.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return le.set(e,r),r}function fe(e,t){let n=D(e),r=D(t);if(!n||!r||n.version===r.version)return null;let i=O(n,r),a=i>0?n:r,o=i>0?r:n,s=a.prerelease.length>0;if(o.prerelease.length>0&&!s){if(!o.patch&&!o.minor)return`major`;if(se(o,a)===0)return o.minor&&!o.patch?`minor`:`patch`}let c=s?`pre`:``;return n.major===r.major?n.minor===r.minor?n.patch===r.patch?`prerelease`:`${c}patch`:`${c}minor`:`${c}major`}function pe(e,t){let n=D(e),r=D(t);return!n||!r?!1:O(n,r)>0}function me(e,t){let n=D(e),r=D(t);return!n||!r?!1:O(n,r)>=0}function he(e,t){let n=D(e),r=D(t);return!n||!r?!1:O(n,r)<0}function ge(e,t){let n=D(e),r=D(t);return!n||!r?!0:O(n,r)!==0}function _e(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=D(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function ve(e,t){let n=O(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function A(e,t,n){return`${e}.${t}.${n}-0`}function ye(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${A(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${A(a,o+1,0)}`})}function be(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${A(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${A(a,s+1,0)}`:`>=${a}.${s}.0 <${A(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${A(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${A(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${A(a+1,0,0)}`})}function xe(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${A(p+1,0,0)}`:`<${A(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function Se(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${A(n+1,0,0)}`}),e=e.replace(/v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${A(r,i+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)\.(\d+)(?=\s|$)/g,(t,n,r,i,a)=>{let o=e.substring(0,a).trimEnd();if(/[<>=]$/.test(o))return t;let s=Number(r),c=Number(i);return`${n}>=${s}.${c}.0 <${A(s,c+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)(?=\s|$)/g,(t,n,r,i)=>{let a=e.substring(0,i).trimEnd();if(/[<>=]$/.test(a))return t;let o=Number(r);return`${n}>=${o}.0.0 <${A(o+1,0,0)}`}),e)}const Ce=new Map;function we(e){let t=Ce.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=xe(t),t=be(t),t=ye(t),t=Se(t),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=_e(t);if(!n)return Ce.set(e,null),null;i.push(n)}if(i.length===0)return Ce.set(e,null),null;r.push(i)}let i=r.length?r:null;return Ce.set(e,i),i}function Te(e,t){for(let n of t)if(!ve(e,n))return!1;if(e.prerelease.length>0){for(let n of t)if(n.semver.prerelease.length>0&&n.semver.major===e.major&&n.semver.minor===e.minor&&n.semver.patch===e.patch)return!0;return!1}return!0}function Ee(e,t){let n=D(e);if(!n)return!1;let r=we(t);if(!r)return!1;for(let e of r)if(e.length===0||Te(n,e))return!0;return!1}function De(e){if(typeof e!=`string`)return null;try{return we(e)?e:null}catch{return null}}const Oe=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],ke={"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`},Ae={sec:`second`,min:`minute`};function je(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function Me(e,{now:t,noAffix:n=!1,times:r=Oe,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=ke,longUnits:l=!1}={}){let u=je(e);if(t=t===void 0?Date.now():je(t),Number.isNaN(u))return o||String(e);let d=!1,f=t-u;if(f<0&&(d=!0,f=Math.abs(f)),f<i)return a;let p=0,m=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(f>=t[1])){p=Math.floor(f/t[0]),m=(l&&Ae[t[2]]||t[2])+(p>1?`s`:``);break}}let h=`${d&&!n?`in `:``}${p} ${m}${!d&&!n?` ago`:``}`;return s?c[h]??h:h}function Ne(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&&!/\d/.test(e[t]);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}function Pe(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/);e&&/^[0-9.a-z]+$/.test(r)&&t.push({name:e,version:r})}return t}const Fe=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],Ie=[`node`,`deno`,`bun`],Le=[`tool.poetry.dependencies`,`tool.poetry.dev-dependencies`,`tool.poetry.test-dependencies`,`tool.poetry.group.dev.dependencies`,`tool.poetry.group.test.dependencies`],Re=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],ze=[`deps`,`replace`];function j(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function Be(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ve(e){return e.split(`,`).filter(Boolean)}function He(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Ue(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`)].join(``)}function We(e,t,n=` `){let r=``,i=Array(e[0].length).fill(0);for(let n of e)for(let[e,r]of n.entries()){let n=t(r);n>i[e]&&(i[e]=n)}for(let[a,o]of e.entries()){for(let[e,a]of o.entries()){e>0&&(r+=n);let s=` `.repeat(i[e]-t(a));r+=a+(e===o.length-1?``:s)}a<e.length-1&&(r+=`
|
|
3
|
-
`)}return r}const Ge={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Ke(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=Ge[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}function qe(){let e=new Map,t=new Map,n=ee.lookup;ee.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(ee,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}const Je=`17.6.2`,Ye=5e3,M=e=>e.replace(/^v/,``),N=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),P=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function Xe(e,t){return{headers:{"user-agent":`updates/${Je}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function Ze(e,t,n,r,i,a,o){n&&r&&i&&r(`${i(`fetch`)} ${e}`);let s=await fetch(e,t);return n&&r&&a&&o&&r(`${s.ok?a(s.status):o(s.status)} ${e}`),s}function F(e){let t=ce(e);return t?!!t.prerelease.length:!1}function Qe(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function $e(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=I(e),s=I(t);if(!o||!s)return!0;let c=Qe(e)||F(e),l=F(t);return c&&!l?pe(s,o)||n:!l&&he(s,o)?r===!0||a(i,r):!0}function I(e){try{return de(e)?.version??``}catch{return``}}function et(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=I(n);if(!c)return c;i=Qe(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let l=0,u=c;for(let n of t){let t=ce(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!Ee(c,s))continue;let d=fe(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))me(I(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function tt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>k(e));else if(t===`npm`)d=Object.keys(e.versions).filter(e=>k(e));else if(t===`go`){let t=I(n);if(!t)return null;let r=a||Qe(n),s=e=>F(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=I(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=fe(t,p);if(n&&o.has(n)&&$e(f,e.new,d))return e.new}let m=I(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=fe(t,m);if(n&&o.has(n)&&$e(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=et(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=I(e.info.version)):r=e[`dist-tags`].latest;let d=I(n),p=Qe(n),m=F(f),h=F(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return $e(n,f,g)?f:null;let _=fe(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&F(r)?f:he(r,d)&&!h?$e(n,r,g)?r:null:!p&&h&&!a||s&&!Ee(r,s)?f:u||r}}const nt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&nt.set(e.substring(0,t),e.substring(t+1))}function rt(e){try{let t=nt.get(new URL(e).hostname);if(t)return t}catch{}return t.UPDATES_GITHUB_API_TOKEN||t.GITHUB_API_TOKEN||t.GH_TOKEN||t.GITHUB_TOKEN||t.HOMEBREW_GITHUB_API_TOKEN}function L(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=rt(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function it(e,t,n){let r=M(t);if(!k(r))return null;if(n){let n=t,i=M(t);for(let t of e){let e=M(t);k(e)&&(!n||pe(e,i))&&(n=t,i=e)}if(ge(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=M(t);if(!k(n))return null;if(ge(r,n))return t}return null}function at(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}function ot(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function st({repository:e,homepage:t,info:n},r,i){n&&(e=n.project_urls.repository||n.project_urls.Repository||n.project_urls.repo||n.project_urls.Repo||n.project_urls.source||n.project_urls.Source||n.project_urls[`source code`]||n.project_urls[`Source code`]||n.project_urls[`Source Code`]||n.project_urls.homepage||n.project_urls.Homepage||`https://pypi.org/project/${i}/`);let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=at(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${ot(a)}/${e.directory}`)),a||t||``)}function ct(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();i.length>=2&&(i.startsWith(`"`)&&i.endsWith(`"`)||i.startsWith(`'`)&&i.endsWith(`'`))&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function lt(e){try{return ct(h(e,`utf-8`))}catch{return}}function ut(t){let n=e();for(;;){let e=l(n,t);try{return _(e),e}catch{}let r=c(n);if(r===n)break;n=r}}function dt(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function ft(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=lt(e);t&&(o.push(t),s.push(e))}i||(c(l(`/etc`,e,`config`)),c(l(`/etc`,`${e}rc`))),a&&(c(l(a,`.config`,e,`config`)),c(l(a,`.config`,e)),c(l(a,`.${e}`,`config`)),c(l(a,`.${e}rc`))),c(ut(`.${e}rc`));let u=dt(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const pt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,mt=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,ht=/^[0-9a-f]{7,}$/i,gt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,_t=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,vt=`https://registry.npmjs.org`;let R=null;const yt=new Map;function bt(){return R||ft(`npm`,{registry:vt})}function xt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function St(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:xt(n),type:`Bearer`};let r=t[`${e}:username`]||t[`${e}/:username`],i=t[`${e}:_password`]||t[`${e}/:_password`];if(r&&i){let e=Buffer.from(xt(i),`base64`).toString(`utf8`);return{token:Buffer.from(`${r}:${e}`).toString(`base64`),type:`Basic`,username:r,password:e}}let a=t[`${e}:_auth`]||t[`${e}/:_auth`];if(a)return{token:xt(a),type:`Basic`}}function z(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=St(`//${n.host}${r.replace(/\/$/,``)}`,t);if(e)return e;let i=r.endsWith(`/`)?r:`${r}/`;n.pathname=new URL(`..`,new URL(i,`http://x`)).pathname}let i=t._auth;if(i)return{token:xt(i),type:`Basic`}}function Ct(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function wt(e,t){R||=bt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=yt.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:z(t,R),registry:t};else{let e=P(Ct(n,R));if(e!==t)try{let n=z(e,R);a=n?.token?{auth:n,registry:e}:{auth:z(t,R),registry:t}}catch{a={auth:z(t,R),registry:t}}else a={auth:z(t,R),registry:t}}return yt.set(r,a),a}async function Tt(e,t,n,r,i){R||=bt();let{auth:a,registry:o}=wt(e,P((typeof r.registry==`string`?r.registry:!1)||n.registry||R.registry||vt)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...Xe(a?.type,a?.token)});if(l?.ok)return[await l.json(),t,o,e];throw l?.status&&l?.statusText?Error(`Received ${l.status} ${l.statusText} from ${c}`):Error(`Unable to fetch ${e} from ${o}`)}function B(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Et(e,t){if(e.startsWith(`npm:@jsr/`)){let t=/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:@`)){let t=/^jsr:@([^/]+)\/([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:`)){let n=e.substring(4);if(t?.startsWith(`@`)){let e=/^@([^/]+)\/(.+)$/.exec(t);if(e)return{scope:e[1],name:e[2],version:n}}}return{scope:null,name:null,version:``}}async function Dt(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}else if(s?.status&&s?.statusText)throw Error(`Received ${s.status} ${s.statusText} from ${o}`);else throw Error(`Unable to fetch ${e} from JSR`)}function Ot(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;if(a===`packageManager`){let r=RegExp(`"${N(a)}": *"${o}@${N(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${N(o)}": *"${N(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function kt(e,t,n){let r=e.replace(_t,t);if(n&&n!==e&&/^[\^~]/.test(r)){let e=n.substring(1).split(`.`),t=r.substring(1).split(`.`);e.length!==t.length&&(r=`${r[0]}${t.slice(0,e.length).join(`.`)}`)}if(n&&n!==e&&r.startsWith(`>=`)){let e=/^>=\s/.test(n)?`>= `:`>=`,t=n.replace(/^>=\s*/,``),i=r.replace(/^>=\s*/,``),a=t.split(`.`),o=i.split(`.`);a.length!==o.length&&(r=`${e}${o.slice(0,a.length).join(`.`)}`)}return r}function At(e){let t=e.match(gt);return t?.length===1?e.replace(gt,I(t[0])):e}async function jt(e,t,n){try{let r=await L(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function Mt(e,t,n){return(await Pt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}function Nt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Pt(e,t,n,r){try{let i=await L(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=Nt(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>L(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...Nt(await e.json()))}return a}catch{return[]}}async function Ft(e,t,n,r){let i=t.old.replace(pt,``),[a,o,s,c]=mt.exec(i)||[];if(!o||!s||!c)return null;if(ht.test(c)){let{hash:n,commit:i}=await jt(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=it(await Mt(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function It(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];throw i?.status&&i?.statusText?Error(`Received ${i.status} ${i.statusText} from ${r}`):Error(`Unable to fetch ${e} from ${n.pypiApiUrl}`)}function Lt(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`${N(o)} *= *"${N(s)}"`,`g`),`${o} = "${t[e].new}"`),n=n.replace(RegExp(`("${N(o)} *[<>=~]+ *)${N(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const Rt=x(te);function zt(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return e.endsWith(`/`)?e.substring(0,e.length-1):e}return`https://proxy.golang.org`}function Bt(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function Vt(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Ht(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Ut(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function V(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Wt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Gt(e){let t={},n={},r=new Set,i=e.split(/\r?\n/),a=!1,o=!1;for(let e of i){let i=e.trim();if(/^require\s*\(/.test(i)){a=!0;continue}if(/^replace\s*\(/.test(i)){o=!0;continue}if(i===`)`){a=!1,o=!1;continue}if(i.includes(`// indirect`))continue;if(o||/^replace\s+/.test(i)){let e=o?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i);if(e){let[,t,i,a]=e;!i.startsWith(`./`)&&!i.startsWith(`/`)&&!i.startsWith(`../`)&&(n[i]=a,r.add(t))}continue}let s=a?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);s&&(t[s[1]]=s[2])}for(let e of r)delete t[e];return{deps:t,replace:n}}async function Kt(e,n,r,i,a){let o=[{name:e,old:r,new:r},n,null,e],s=Ut(e),c=async(e,n)=>{try{let{stdout:r}=await Rt(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},[l,u]=await Promise.all([c(e,a.fetchTimeout),c(V(e,s+1),a.goProbeTimeout)]);if(!l)return o;let d=l.Version,f=l.Time,p=d,m=f,h=e,g=e=>{p=e.Version,m=e.Time,h=e.path};if(u){g(u);let t=await c(V(e,s+2),a.goProbeTimeout);if(t){g(t);for(let t=s+3;t<=s+100;t+=20){let n=Math.min(t+20,s+101),r=Array.from({length:n-t},(n,r)=>c(V(e,t+r),a.goProbeTimeout)),i=await Promise.all(r),o=!1;for(let e of i){if(!e)break;g(e),o=!0}if(!o||i.some(e=>!e))break}}}return[{name:e,old:r,new:M(p),Time:m,...h===e?{}:{newPath:h},sameMajorNew:M(d),sameMajorTime:f},n,null,e]}async function qt(e,t,n,r,i,a){let o=[{name:e,old:n,new:n},t,null,e];if(Vt(e,a))return Kt(e,t,n,r,i);let s=Ht(e),c=Ut(e),l=async t=>{let n=V(e,t);return i.doFetch(`${i.goProxyUrl}/${Ht(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},[u,d]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${s}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),l(c+1)]);if(!u.ok)return o;let f,p;try{let e=await u.json();f=e.Version,p=e.Time}catch{return o}let m=f,h=p,g=e,_=e=>{m=e.Version,h=e.Time,g=e.path};if(d){_(d);let e=await l(c+2);if(e){_(e);for(let e=c+3;e<=c+100;e+=20){let t=Math.min(e+20,c+101),n=Array.from({length:t-e},(t,n)=>({result:l(e+n)})),r=await Promise.all(n.map(e=>e.result)),i=!1;for(let e of r){if(!e)break;_(e),i=!0}if(!i||r.some(e=>!e))break}}}return[{name:e,old:n,new:M(m),Time:h,...g===e?{}:{newPath:g},sameMajorNew:M(f),sameMajorTime:p},t,null,e]}function Jt(e,t){let n=N(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function Yt(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${N(s)}\\s+)v${N(c)}`,`g`),`$1v${l}`);continue}let u=Ut(s),d=parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=V(s,d);n=n.replace(RegExp(`${N(s)} +v${N(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${N(s)}) +v${N(c)}`,`g`),`$1 v${l}`);n=Jt(n,s)}return[n,r]}function Xt(e,t,n){if(!Object.keys(t).length)return;let r=p(`**/*.go`,{cwd:e});for(let i of r){let r=l(e,i),a=h(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${N(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function Zt(e){let t=`https://${Qt(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${ot(t)}/${o.join(`/`)}`,n.toString()}else return t}function Qt(e){return/\/v[0-9]$/.test(e)?c(e):e}function $t(e){return e.replace(/-.*/,``)}const en=/^\s*-?\s*uses:\s*['"]?([^'"#\s]+)['"]?/gm,tn=/^[0-9a-f]{7,}$/i;function nn(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:tn.test(o)}}function rn(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}function an(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function on(e,t,n,r){try{let i=await L(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=an(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>L(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...an(await e.json()))}return a}catch{return[]}}async function sn(e,t,n,r,i){try{let a=await L(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function cn(e,t){let n=t.startsWith(`v`),r=ce(M(e)),i=M(t).split(`.`).length,a;return a=r?i===1?String(r.major):i===2?`${r.major}.${r.minor}`:r.version:M(e),n?`v${a}`:a}function ln(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${N(e)}@${N(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function un(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function dn(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}function fn(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}function pn(e,t,n){let r=e.split(/\r\n|\n|\r/g),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
|
|
2
|
+
import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,versions as o}from"node:process";import{basename as s,dirname as c,join as l,resolve as u}from"node:path";import{pathToFileURL as d}from"node:url";import{accessSync as f,globSync as p,lstatSync as m,readFileSync as h,readdirSync as g,statSync as _,truncateSync as v,writeFileSync as y}from"node:fs";import{parseArgs as b,promisify as x,stripVTControlCharacters as ee,styleText as te}from"node:util";import ne from"node:dns";import{execFile as S}from"node:child_process";async function re(e,t,{concurrency:n=1/0,stopOnError:r=!0,signal:i}={}){return new Promise((a,o)=>{if(e[Symbol.iterator]===void 0&&e[Symbol.asyncIterator]===void 0)throw TypeError(`Expected \`input\` to be either an \`Iterable\` or \`AsyncIterable\`, got (${typeof e})`);if(typeof t!=`function`)throw TypeError(`Mapper function is required`);if(!(Number.isSafeInteger(n)&&n>=1||n===1/0))throw TypeError(`Expected \`concurrency\` to be an integer from 1 and up or \`Infinity\`, got \`${n}\` (${typeof n})`);let s=[],c=[],l=new Map,u=!1,d=!1,f=!1,p=0,m=0,h=e[Symbol.iterator]===void 0?e[Symbol.asyncIterator]():e[Symbol.iterator](),g=()=>{y(i.reason)},_=()=>{i?.removeEventListener(`abort`,g)},v=e=>{a(e),_()},y=e=>{u=!0,d=!0,o(e),_()};i&&(i.aborted&&y(i.reason),i.addEventListener(`abort`,g,{once:!0}));let b=async()=>{if(d)return;let e=await h.next(),n=m;if(m++,e.done){if(f=!0,p===0&&!d){if(!r&&c.length>0){y(AggregateError(c));return}if(d=!0,l.size===0){v(s);return}let e=[];for(let[t,n]of s.entries())l.get(t)!==ie&&e.push(n);v(e)}return}p++,(async()=>{try{let r=await e.value;if(d)return;let i=await t(r,n);i===ie&&l.set(n,i),s[n]=i,p--,await b()}catch(e){if(r)y(e);else{c.push(e),p--;try{await b()}catch(e){y(e)}}}})()};(async()=>{for(let e=0;e<n;e++){try{await b()}catch(e){y(e);break}if(f||u)break}})()})}const ie=Symbol(`skip`);function ae(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return[n.length,n.pop().length+1]}function oe(e,t,n){let r=e.split(/\r\n|\n|\r/g),i=``,a=(Math.log10(t+1)|0)+1;for(let e=t-1;e<=t+1;e++){let o=r[e-1];o&&(i+=e.toString().padEnd(a,` `),i+=`: `,i+=o,i+=`
|
|
4
3
|
`,e===t&&(i+=` `.repeat(a+n+2),i+=`^
|
|
5
|
-
`))}return i}var
|
|
6
|
-
`,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}function
|
|
4
|
+
`))}return i}var C=class extends Error{line;column;codeblock;constructor(e,t){let[n,r]=ae(t.toml,t.ptr),i=oe(t.toml,n,r);super(`Invalid TOML document: ${e}\n\n${i}`,t),this.line=n,this.column=r,this.codeblock=i}};function se(e,t){let n=0;for(;e[t-++n]===`\\`;);return--n&&n%2}function w(e,t=0,n=e.length){let r=e.indexOf(`
|
|
5
|
+
`,t);return e[r-1]===`\r`&&r--,r<=n?r:-1}function T(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
|
|
7
6
|
`)return n;if(r===`\r`&&e[n+1]===`
|
|
8
|
-
`)return n+1;if(r<` `&&r!==` `||r===``)throw new
|
|
7
|
+
`)return n+1;if(r<` `&&r!==` `||r===``)throw new C(`control characters are not allowed in comments`,{toml:e,ptr:t})}return e.length}function E(e,t,n,r){let i;for(;(i=e[t])===` `||i===` `||!n&&(i===`
|
|
9
8
|
`||i===`\r`&&e[t+1]===`
|
|
10
|
-
`);)t++;return r||i!==`#`?t:
|
|
9
|
+
`);)t++;return r||i!==`#`?t:E(e,T(e,t),n)}function ce(e,t,n,r,i=!1){if(!r)return t=w(e,t),t<0?e.length:t;for(let a=t;a<e.length;a++){let t=e[a];if(t===`#`)a=w(e,a);else if(t===n)return a+1;else if(t===r||i&&(t===`
|
|
11
10
|
`||t===`\r`&&e[a+1]===`
|
|
12
|
-
`))return a}throw new
|
|
11
|
+
`))return a}throw new C(`cannot find end of structure`,{toml:e,ptr:t})}function D(e,t){let n=e[t],r=n===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):n;t+=r.length-1;do t=e.indexOf(r,++t);while(t>-1&&n!==`'`&&se(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}let le=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;var O=class e extends Date{#e=!1;#t=!1;#n=null;constructor(e){let t=!0,n=!0,r=`Z`;if(typeof e==`string`){let i=e.match(le);i?(i[1]||(t=!1,e=`0000-01-01T${e}`),n=!!i[2],n&&e[10]===` `&&(e=e.replace(` `,`T`)),i[2]&&+i[2]>23?e=``:(r=i[3]||null,e=e.toUpperCase(),!r&&n&&(e+=`Z`))):e=``}super(e),isNaN(this.getTime())||(this.#e=t,this.#t=n,this.#n=r)}isDateTime(){return this.#e&&this.#t}isLocal(){return!this.#e||!this.#t||!this.#n}isDate(){return this.#e&&!this.#t}isTime(){return this.#t&&!this.#e}isValid(){return this.#e||this.#t}toISOString(){let e=super.toISOString();if(this.isDate())return e.slice(0,10);if(this.isTime())return e.slice(11,23);if(this.#n===null)return e.slice(0,-1);if(this.#n===`Z`)return e;let t=this.#n.slice(1,3)*60+ +this.#n.slice(4,6);return t=this.#n[0]===`-`?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#n}static wrapAsOffsetDateTime(t,n=`Z`){let r=new e(t);return r.#n=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#n=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#t=!1,n.#n=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=!1,n.#n=null,n}};let ue=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,de=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,fe=/^[+-]?0[0-9_]/,pe=/^[0-9a-f]{2,8}$/i,me={b:`\b`,t:` `,n:`
|
|
12
|
+
`,f:`\f`,r:`\r`,e:`\x1B`,'"':`"`,"\\":`\\`};function he(e,t=0,n=e.length){let r=e[t]===`'`,i=e[t++]===e[t]&&e[t]===e[t+1];i&&(n-=2,e[t+=2]===`\r`&&t++,e[t]===`
|
|
13
13
|
`&&t++);let a=0,o,s=``,c=t;for(;t<n-1;){let n=e[t++];if(n===`
|
|
14
14
|
`||n===`\r`&&e[t]===`
|
|
15
|
-
`){if(!i)throw new
|
|
16
|
-
`||n===` `||n===` `||n===`\r`)){if(t=
|
|
17
|
-
`&&e[t]!==`\r`)throw new
|
|
18
|
-
|
|
19
|
-
`&&
|
|
20
|
-
`&&
|
|
21
|
-
`&&
|
|
22
|
-
`&&e[s]!==`\r`)throw new H(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=W(e,s)}return r}var Vn=w((()=>{Rn(),Nn(),yn(),U()}));function G(e){let t=typeof e;if(t===`object`){if(Array.isArray(e))return`array`;if(e instanceof Date)return`date`}return t}function Hn(e){for(let t=0;t<e.length;t++)if(G(e[t])!==`object`)return!1;return e.length!=0}function Un(e){return JSON.stringify(e).replace(/\x7f/g,`\\u007f`)}function Wn(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);if(t===`number`)return isNaN(e)?`nan`:e===1/0?`inf`:e===-1/0?`-inf`:r&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t===`bigint`||t===`boolean`)return e.toString();if(t===`string`)return Un(e);if(t===`date`){if(isNaN(e.getTime()))throw TypeError(`cannot serialize invalid date`);return e.toISOString()}if(t===`object`)return Gn(e,n,r);if(t===`array`)return Kn(e,n,r)}function Gn(e,t,n){let r=Object.keys(e);if(r.length===0)return`{}`;let i=`{ `;for(let a=0;a<r.length;a++){let o=r[a];a&&(i+=`, `),i+=Xn.test(o)?o:Un(o),i+=` = `,i+=Wn(e[o],G(e[o]),t-1,n)}return i+` }`}function Kn(e,t,n){if(e.length===0)return`[]`;let r=`[ `;for(let i=0;i<e.length;i++){if(i&&(r+=`, `),e[i]===null||e[i]===void 0)throw TypeError(`arrays cannot contain null or undefined values`);r+=Wn(e[i],G(e[i]),t-1,n)}return r+` ]`}function qn(e,t,n,r){if(n===0)throw Error(`Could not stringify the object: maximum object depth exceeded`);let i=``;for(let a=0;a<e.length;a++)i+=`${i&&`
|
|
23
|
-
`
|
|
24
|
-
`)
|
|
25
|
-
`)+Jn(e,t[c],e,r-1,i)}else a+=s,a+=` = `,a+=Wn(t[c],e,r,i),a+=`
|
|
26
|
-
`}}return e&&(a||!o)&&(a=a?`[${e}]\n${a}`:`[${e}]`),a&&o?`${a}\n${o}`:a||o}function Yn(e,{maxDepth:t=1e3,numbersAsFloat:n=!1}={}){if(G(e)!==`object`)throw TypeError(`stringify can only be called with an object`);let r=Jn(0,e,``,t,n);return r[r.length-1]===`
|
|
27
|
-
`?r:r+`
|
|
28
|
-
`}var Xn,Zn=w((()=>{Xn=/^[a-z0-9-_]+$/i})),Qn=re({TomlDate:()=>xn,TomlError:()=>H,default:()=>$n,parse:()=>Bn,stringify:()=>Yn}),$n,er=w((()=>{Vn(),Zn(),Sn(),U(),$n={parse:Bn,stringify:Yn,TomlDate:xn,TomlError:H}}));const tr={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},nr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},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-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function K(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Ve(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function rr(e){for(let[t,{short:n}]of Object.entries(nr))if(t===e||n===e)return t;return``}const q=b({strict:!1,allowPositionals:!0,tokens:!0,options:nr}),J=q.values;for(let[e,t]of q.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=rr(t.value.substring(1)),r=q.tokens[e+1];J[t.name]=[!0],J[n]||(J[n]=[]),r.kind===`positional`&&r.value?J[n].push(r.value):J[n].push(!0)}const Y=q.values,ir=q.positionals,[ar,or,sr]=[`magenta`,`red`,`green`].map(e=>Y[`no-color`]?String:t=>C(e,String(t))),X=Q(K(Y.greatest)),cr=Q(K(Y.prerelease)),lr=Q(K(Y.release)),ur=Q(K(Y.patch)),dr=Q(K(Y.minor)),fr=Q(K(Y[`allow-downgrade`])),pr=K(Y.modes)||new Set([`npm`,`pypi`,`go`,`actions`]),mr=typeof Y.forgeapi==`string`?P(Y.forgeapi):`https://api.github.com`,hr=typeof Y.pypiapi==`string`?P(Y.pypiapi):`https://pypi.org`,gr=typeof Y.jsrapi==`string`?P(Y.jsrapi):`https://jsr.io`,_r=typeof Y.goproxy==`string`?P(Y.goproxy):zt(),vr=Bt();function yr(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&De(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&De(r)&&(t[n]=r)}return t}function br(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:br(e,r)}function xr(e){console.error(`${Ue()} ${e}`)}const Sr=typeof Y.timeout==`string`?Number(Y.timeout):0,Z={fetchTimeout:Sr||Ye,goProbeTimeout:Sr?Sr/2:2500,forgeApiUrl:mr,pypiApiUrl:hr,jsrApiUrl:gr,goProxyUrl:_r,doFetch:(e,t)=>Ze(e,t,!!Y.verbose,xr,ar,sr,or),verbose:!!Y.verbose};async function Cr(e){console.info(Y.json?JSON.stringify({message:e}):e),await wr()}async function wr(e,t){if(e){let t=e.stack??e.message,n=e.cause;Y.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(or(t)),n&&console.info(or(`Caused by: ${String(n)}`)))}r===`win32`&&Number(o?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),n(t||e?1:0)}function Tr(e={}){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!B(n.oldOrig)&&(n.old=n.oldOrig),t===`actions`&&(n.old=M(n.old),n.new=M(n.new)),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;if(Y.json){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`);t.results[n]||(t.results[n]={}),t.results[n][e]||(t.results[n][e]={}),t.results[n][e][a]=i}console.info(JSON.stringify(t))}else t&&console.info(Or(e));return Y[`error-on-outdated`]?t?2:0:Y[`error-on-unchanged`]?t?0:2:0}function Er(e,t){r===`win32`&&v(e,0),y(e,t,r===`win32`?{flag:`r+`}:void 0)}const Dr=e=>S(e).length;function Or(e){let t=Object.keys(e).filter(t=>Object.keys(e[t]).length>0),n=t.length>1,r=[n?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],i=new Set;for(let a of t)for(let[t,o]of Object.entries(e[a])){let[e,s]=t.split(`\0`),c=`${a}|${s}`;if(i.has(c))continue;i.add(c);let l=[];l.push(a===`go`?Qt(s):s),n&&l.push(a),l.push(Ne(o.old,o.new,or)),l.push(Ne(o.new,o.old,sr)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return We(r,Dr)}function kr(e,t){return RegExp(`^${N(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Ar(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):kr(e,n):e instanceof RegExp?e:kr(e,n)}function Q(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(Ar(n,!0,!1));return t}return e}function jr(e,t){let n=new Set;for(let t of e||[])n.add(Ar(t,!0,!0));for(let e of t||[])n.add(Ar(e,!1,!0));return n}function Mr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Ve(e)):[]}function Nr(e){return ur===!0||j(e,ur)?new Set([`patch`]):dr===!0||j(e,dr)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Pr(e){return{useGreatest:typeof X==`boolean`?X:j(e,X),usePre:typeof cr==`boolean`?cr:j(e,cr),useRel:typeof lr==`boolean`?lr:j(e,lr),semvers:Nr(e)}}function Fr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}function $(e,t,n,r,i){if(i===`engines`&&Ie.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Ir(t){let n=new Set,r=new Set;if(t)for(let e of t){let t;try{t=m(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile()){let t=u(e);n.add(t),r.add(t)}else if(t?.isDirectory()){for(let t of Object.keys(tr)){let r=l(e,t),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(u(r))}let t=u(e).replace(/\\/g,`/`),i;i=t.endsWith(`.github/workflows`)?t:t.endsWith(`.github`)?l(t,`workflows`):l(t,`.github`,`workflows`);for(let e of dn(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(tr)){let r=br(t,e());r&&n.add(u(r))}let t=br(l(`.github`,`workflows`),e());if(t)for(let e of dn(t))n.add(e)}return[n,r]}async function Lr(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=l(e,...t.split(`/`)),r=d(n);try{f(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return n}async function Rr(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);qe();let e=typeof Y.sockets==`number`?Y.sockets:96,{help:t,version:n,file:r,types:o,update:l,include:d,exclude:f,pin:p,cooldown:m}=Y;t&&(a.write(`usage: updates [options] [files...]
|
|
15
|
+
`){if(!i)throw new C(`newlines are not allowed in strings`,{toml:e,ptr:t-1})}else if(n<` `&&n!==` `||n===``)throw new C(`control characters are not allowed in strings`,{toml:e,ptr:t-1});if(o){if(o=!1,n===`x`||n===`u`||n===`U`){let r=e.slice(t,t+=n===`x`?2:n===`u`?4:8);if(!pe.test(r))throw new C(`invalid unicode escape`,{toml:e,ptr:a});try{s+=String.fromCodePoint(parseInt(r,16))}catch{throw new C(`invalid unicode escape`,{toml:e,ptr:a})}}else if(i&&(n===`
|
|
16
|
+
`||n===` `||n===` `||n===`\r`)){if(t=E(e,t-1,!0),e[t]!==`
|
|
17
|
+
`&&e[t]!==`\r`)throw new C(`invalid escape: only line-ending whitespace may be escaped`,{toml:e,ptr:a});t=E(e,t)}else if(n in me)s+=me[n];else throw new C(`unrecognized escape sequence`,{toml:e,ptr:a});c=t}else !r&&n===`\\`&&(a=t-1,o=!0,s+=e.slice(c,a))}return s+e.slice(c,n-1)}function ge(e,t,n,r){if(e===`true`)return!0;if(e===`false`)return!1;if(e===`-inf`)return-1/0;if(e===`inf`||e===`+inf`)return 1/0;if(e===`nan`||e===`+nan`||e===`-nan`)return NaN;if(e===`-0`)return r?0n:0;let i=ue.test(e);if(i||de.test(e)){if(fe.test(e))throw new C(`leading zeroes are not allowed`,{toml:t,ptr:n});e=e.replace(/_/g,``);let a=+e;if(isNaN(a))throw new C(`invalid number`,{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(a))&&!r)throw new C(`integer value cannot be represented losslessly`,{toml:t,ptr:n});(i||r===!0)&&(a=BigInt(e))}return a}let a=new O(e);if(!a.isValid())throw new C(`invalid value`,{toml:t,ptr:n});return a}function _e(e,t,n){let r=e.slice(t,n),i=r.indexOf(`#`);return i>-1&&(T(e,i),r=r.slice(0,i)),[r.trimEnd(),i]}function ve(e,t,n,r,i){if(r===0)throw new C(`document contains excessively nested structures. aborting.`,{toml:e,ptr:t});let a=e[t];if(a===`[`||a===`{`){let[o,s]=a===`[`?Se(e,t,r,i):xe(e,t,r,i);if(n){if(s=E(e,s),e[s]===`,`)s++;else if(e[s]!==n)throw new C(`expected comma or end of structure`,{toml:e,ptr:s})}return[o,s]}let o;if(a===`"`||a===`'`){o=D(e,t);let r=he(e,t,o);if(n){if(o=E(e,o),e[o]&&e[o]!==`,`&&e[o]!==n&&e[o]!==`
|
|
18
|
+
`&&e[o]!==`\r`)throw new C(`unexpected character encountered`,{toml:e,ptr:o});o+=+(e[o]===`,`)}return[r,o]}o=ce(e,t,`,`,n);let s=_e(e,t,o-+(e[o-1]===`,`));if(!s[0])throw new C(`incomplete key-value declaration: no value specified`,{toml:e,ptr:t});return n&&s[1]>-1&&(o=E(e,t+s[1]),o+=+(e[o]===`,`)),[ge(s[0],e,t,i),o]}let ye=/^[a-zA-Z0-9-_]+[ \t]*$/;function be(e,t,n=`=`){let r=t-1,i=[],a=e.indexOf(n,t);if(a<0)throw new C(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});do{let o=e[t=++r];if(o!==` `&&o!==` `)if(o===`"`||o===`'`){if(o===e[t+1]&&o===e[t+2])throw new C(`multiline strings are not allowed in keys`,{toml:e,ptr:t});let s=D(e,t);if(s<0)throw new C(`unfinished string encountered`,{toml:e,ptr:t});r=e.indexOf(`.`,s);let c=e.slice(s,r<0||r>a?a:r),l=w(c);if(l>-1)throw new C(`newlines are not allowed in keys`,{toml:e,ptr:t+r+l});if(c.trimStart())throw new C(`found extra tokens after the string part`,{toml:e,ptr:s});if(a<s&&(a=e.indexOf(n,s),a<0))throw new C(`incomplete key-value: cannot find end of key`,{toml:e,ptr:t});i.push(he(e,t,s))}else{r=e.indexOf(`.`,t);let n=e.slice(t,r<0||r>a?a:r);if(!ye.test(n))throw new C(`only letter, numbers, dashes and underscores are allowed in keys`,{toml:e,ptr:t});i.push(n.trimEnd())}}while(r+1&&r<a);return[i,E(e,a+1,!0,!0)]}function xe(e,t,n,r){let i={},a=new Set,o;for(t++;(o=e[t++])!==`}`&&o;)if(o===`,`)throw new C(`expected value, found comma`,{toml:e,ptr:t-1});else if(o===`#`)t=T(e,t);else if(o!==` `&&o!==` `&&o!==`
|
|
19
|
+
`&&o!==`\r`){let o,s=i,c=!1,[l,u]=be(e,t-1);for(let n=0;n<l.length;n++){if(n&&(s=c?s[o]:s[o]={}),o=l[n],(c=Object.hasOwn(s,o))&&(typeof s[o]!=`object`||a.has(s[o])))throw new C(`trying to redefine an already defined value`,{toml:e,ptr:t});!c&&o===`__proto__`&&Object.defineProperty(s,o,{enumerable:!0,configurable:!0,writable:!0})}if(c)throw new C(`trying to redefine an already defined value`,{toml:e,ptr:t});let[d,f]=ve(e,u,`}`,n-1,r);a.add(d),s[o]=d,t=f}if(!o)throw new C(`unfinished table encountered`,{toml:e,ptr:t});return[i,t]}function Se(e,t,n,r){let i=[],a;for(t++;(a=e[t++])!==`]`&&a;)if(a===`,`)throw new C(`expected value, found comma`,{toml:e,ptr:t-1});else if(a===`#`)t=T(e,t);else if(a!==` `&&a!==` `&&a!==`
|
|
20
|
+
`&&a!==`\r`){let a=ve(e,t-1,`]`,n-1,r);i.push(a[0]),t=a[1]}if(!a)throw new C(`unfinished array encountered`,{toml:e,ptr:t});return[i,t]}function Ce(e,t,n,r){let i=t,a=n,o,s=!1,c;for(let t=0;t<e.length;t++){if(t){if(i=s?i[o]:i[o]={},a=(c=a[o]).c,r===0&&(c.t===1||c.t===2))return null;if(c.t===2){let e=i.length-1;i=i[e],a=a[e].c}}if(o=e[t],(s=Object.hasOwn(i,o))&&a[o]?.t===0&&a[o]?.d)return null;s||(o===`__proto__`&&(Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(a,o,{enumerable:!0,configurable:!0,writable:!0})),a[o]={t:t<e.length-1&&r===2?3:r,d:!1,i:0,c:{}})}if(c=a[o],c.t!==r&&!(r===1&&c.t===3)||(r===2&&(c.d||(c.d=!0,i[o]=[]),i[o].push(i={}),c.c[c.i++]=c={t:1,d:!1,i:0,c:{}}),c.d))return null;if(c.d=!0,r===1)i=s?i[o]:i[o]={};else if(r===0&&s)return null;return[o,i,c.c]}function we(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},a=r,o=i;for(let s=E(e,0);s<e.length;){if(e[s]===`[`){let t=e[++s]===`[`,n=be(e,s+=+t,`]`);if(t){if(e[n[1]-1]!==`]`)throw new C(`expected end of table declaration`,{toml:e,ptr:n[1]-1});n[1]++}let c=Ce(n[0],r,i,t?2:1);if(!c)throw new C(`trying to redefine an already defined table or value`,{toml:e,ptr:s});o=c[2],a=c[1],s=n[1]}else{let r=be(e,s),i=Ce(r[0],a,o,0);if(!i)throw new C(`trying to redefine an already defined table or value`,{toml:e,ptr:s});let c=ve(e,r[1],void 0,t,n);i[1][i[0]]=c[0],s=c[1]}if(s=E(e,s,!0),e[s]&&e[s]!==`
|
|
21
|
+
`&&e[s]!==`\r`)throw new C(`each key-value declaration must be followed by an end-of-line`,{toml:e,ptr:s});s=E(e,s)}return r}const Te=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,Ee=new Map;function k(e){if(typeof e!=`string`)return null;let t=Ee.get(e);if(t!==void 0)return t;let n=Te.exec(e.trim());if(!n)return Ee.set(e,null),null;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=n[4]?n[4].split(`.`).map(e=>/^\d+$/.test(e)?Number(e):e):[],s={major:r,minor:i,patch:a,prerelease:o,version:`${r}.${i}.${a}${o.length?`-${o.join(`.`)}`:``}`};return Ee.set(e,s),s}function De(e,t){let n=typeof e==`number`,r=typeof t==`number`;return n&&r?e-t:n?-1:r?1:e<t?-1:e>t?1:0}function Oe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function A(e,t){let n=Oe(e,t);if(n!==0)return n;if(!e.prerelease.length&&!t.prerelease.length)return 0;if(e.prerelease.length&&!t.prerelease.length)return-1;if(!e.prerelease.length&&t.prerelease.length)return 1;let r=Math.max(e.prerelease.length,t.prerelease.length);for(let n=0;n<r;n++){if(e.prerelease[n]===void 0)return-1;if(t.prerelease[n]===void 0)return 1;let r=De(e.prerelease[n],t.prerelease[n]);if(r!==0)return r}return 0}function j(e){return k(e)?.version??null}function ke(e){return k(e)}const Ae=new Map,je=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function Me(e){if(typeof e!=`string`)return null;let t=Ae.get(e);if(t!==void 0)return t;let n=je.exec(e);if(!n)return Ae.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return Ae.set(e,r),r}function M(e,t){let n=k(e),r=k(t);if(!n||!r||n.version===r.version)return null;let i=A(n,r),a=i>0?n:r,o=i>0?r:n,s=a.prerelease.length>0;if(o.prerelease.length>0&&!s){if(!o.patch&&!o.minor)return`major`;if(Oe(o,a)===0)return o.minor&&!o.patch?`minor`:`patch`}let c=s?`pre`:``;return n.major===r.major?n.minor===r.minor?n.patch===r.patch?`prerelease`:`${c}patch`:`${c}minor`:`${c}major`}function Ne(e,t){let n=k(e),r=k(t);return!n||!r?!1:A(n,r)>0}function Pe(e,t){let n=k(e),r=k(t);return!n||!r?!1:A(n,r)>=0}function Fe(e,t){let n=k(e),r=k(t);return!n||!r?!1:A(n,r)<0}function Ie(e,t){let n=k(e),r=k(t);return!n||!r?!0:A(n,r)!==0}function Le(e){let t=/^(>=|<=|>|<|=)?\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)$/.exec(e.trim());if(!t)return null;let n=t[2],r=k(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function Re(e,t){let n=A(e,t.semver);switch(t.op){case`>=`:return n>=0;case`<=`:return n<=0;case`>`:return n>0;case`<`:return n<0;case`=`:return n===0;default:return n===0}}function N(e,t,n){return`${e}.${t}.${n}-0`}function ze(e){return e.replace(/~\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t);if(n===void 0)return`>=${a}.0.0 <${N(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${N(a,o+1,0)}`})}function Be(e){return e.replace(/\^\s*v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i)=>{let a=Number(t),o=i||``;if(n===void 0)return`>=${a}.0.0 <${N(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${N(a,s+1,0)}`:`>=${a}.${s}.0 <${N(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${N(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${N(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${N(a+1,0,0)}`})}function Ve(e){return e.replace(/v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)\s+-\s+v?(\d+)(?:\.(\d+))?(?:\.(\d+))?((?:-[a-zA-Z0-9._-]+)?)/g,(e,t,n,r,i,a,o,s,c)=>{let l=Number(t),u=n===void 0?0:Number(n),d=r===void 0?0:Number(r),f=i||``,p=Number(a),m;return m=s===void 0?o===void 0?`<${N(p+1,0,0)}`:`<${N(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function He(e){return/^\s*[*xX]\s*$/.test(e)?`>=0.0.0`:(e=e.replace(/v?(\d+)\.[xX*](?:\.[xX*])?/g,(e,t)=>{let n=Number(t);return`>=${n}.0.0 <${N(n+1,0,0)}`}),e=e.replace(/v?(\d+)\.(\d+)\.[xX*]/g,(e,t,n)=>{let r=Number(t),i=Number(n);return`>=${r}.${i}.0 <${N(r,i+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)\.(\d+)(?=\s|$)/g,(t,n,r,i,a)=>{let o=e.substring(0,a).trimEnd();if(/[<>=]$/.test(o))return t;let s=Number(r),c=Number(i);return`${n}>=${s}.${c}.0 <${N(s,c+1,0)}`}),e=e.replace(/(^|[\s|])(\d+)(?=\s|$)/g,(t,n,r,i)=>{let a=e.substring(0,i).trimEnd();if(/[<>=]$/.test(a))return t;let o=Number(r);return`${n}>=${o}.0.0 <${N(o+1,0,0)}`}),e)}const Ue=new Map;function We(e){let t=Ue.get(e);if(t!==void 0)return t;let n=e.split(`||`).map(e=>e.trim()),r=[];for(let t of n){if(!t){r.push([]);continue}t=Ve(t),t=Be(t),t=ze(t),t=He(t),t=t.replace(/(^|[\s])v?(\d+\.\d+\.\d+(?:-[a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*)?)\b/g,(e,t)=>/[<>=]/.test(t)?e:`${t}=${e.trim()}`),t=t.replace(/(>=|<=|>|<|=)\s+/g,`$1`);let n=t.split(/\s+/).filter(Boolean),i=[];for(let t of n){let n=Le(t);if(!n)return Ue.set(e,null),null;i.push(n)}if(i.length===0)return Ue.set(e,null),null;r.push(i)}let i=r.length?r:null;return Ue.set(e,i),i}function Ge(e,t){for(let n of t)if(!Re(e,n))return!1;if(e.prerelease.length>0){for(let n of t)if(n.semver.prerelease.length>0&&n.semver.major===e.major&&n.semver.minor===e.minor&&n.semver.patch===e.patch)return!0;return!1}return!0}function Ke(e,t){let n=k(e);if(!n)return!1;let r=We(t);if(!r)return!1;for(let e of r)if(e.length===0||Ge(n,e))return!0;return!1}function qe(e){if(typeof e!=`string`)return null;try{return We(e)?e:null}catch{return null}}const Je=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ye={"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`},Xe={sec:`second`,min:`minute`};function Ze(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function P(e,{now:t,noAffix:n=!1,times:r=Je,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ye,longUnits:l=!1}={}){let u=Ze(e),d=t===void 0?Date.now():Ze(t);if(u!==u)return o||String(e);let f=d-u,p=f<0;if(p&&(f=-f),f<i)return a;let m=0,h=``;for(let e=0,t=r.length;e<t;e++){let t=r[e];if(!(f>=t[1])){m=f/t[0]|0,h=(l&&Xe[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function Qe(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&&!/\d/.test(e[t]);)t++;r=t}}let i=e.substring(r);return i?e.substring(0,r)+n(i):e}function $e(e){let t=[];for(let n of e){let[e,r]=n.replaceAll(/\s+/g,``).split(/[<>=~]+/);e&&/^[0-9.a-z]+$/.test(r)&&t.push({name:e,version:r})}return t}const et=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],tt=[`node`,`deno`,`bun`],nt=[`tool.poetry.dependencies`,`tool.poetry.dev-dependencies`,`tool.poetry.test-dependencies`,`tool.poetry.group.dev.dependencies`,`tool.poetry.group.test.dependencies`],rt=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],it=[`deps`,`replace`];function F(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function at(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function ot(e){return e.split(`,`).filter(Boolean)}function st(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function ct(){let e=new Date;return[e.getFullYear(),`-`,String(e.getMonth()+1).padStart(2,`0`),`-`,String(e.getDate()).padStart(2,`0`),` `,String(e.getHours()).padStart(2,`0`),`:`,String(e.getMinutes()).padStart(2,`0`),`:`,String(e.getSeconds()).padStart(2,`0`)].join(``)}function lt(e,t,n=` `){let r=``,i=Array(e[0].length).fill(0);for(let n of e)for(let[e,r]of n.entries()){let n=t(r);n>i[e]&&(i[e]=n)}for(let[a,o]of e.entries()){for(let[e,a]of o.entries()){e>0&&(r+=n);let s=` `.repeat(i[e]-t(a));r+=a+(e===o.length-1?``:s)}a<e.length-1&&(r+=`
|
|
22
|
+
`)}return r}const ut={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function dt(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=ut[n.toLowerCase()];if(r)return Number(e)*r}let n=Number(e);if(!Number.isFinite(n))throw Error(`Invalid cooldown value: ${e}`);return n}function ft(){let e=new Map,t=new Map,n=ne.lookup;ne.lookup=function(r,...i){let a={},o;typeof i[0]==`function`?o=i[0]:(a=typeof i[0]==`number`?{family:i[0]}:i[0]||{},o=i[1]);let s=e.get(r);if(s){a.all?o(null,s):o(null,s[0].address,s[0].family);return}if(t.has(r)){t.get(r).push({options:a,callback:o});return}t.set(r,[{options:a,callback:o}]),n.call(ne,r,{all:!0},(n,i)=>{let a=t.get(r);t.delete(r),!n&&i?.length&&e.set(r,i);for(let{options:e,callback:t}of a)n?t(n):e.all?t(null,i):t(null,i[0].address,i[0].family)})}}const pt=`17.8.0`,mt=5e3,I=e=>e.replace(/^v/,``),L=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),R=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function ht(e,t){return{headers:{"user-agent":`updates/${pt}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function gt(e,t,n,r,i,a,o){n&&r&&i&&r(`${i(`fetch`)} ${e}`);let s=await fetch(e,t);return n&&r&&a&&o&&r(`${s.ok?a(s.status):o(s.status)} ${e}`),s}function z(e){let t=ke(e);return t?!!t.prerelease.length:!1}function _t(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function vt(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=B(e),s=B(t);if(!o||!s)return!0;let c=_t(e)||z(e),l=z(t);return c&&!l?Ne(s,o)||n:!l&&Fe(s,o)?r===!0||a(i,r):!0}function B(e){try{return Me(e)?.version??``}catch{return``}}function yt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=B(n);if(!c)return c;i=_t(n)||i,i&&(r.add(`prerelease`),r.has(`patch`)&&r.add(`prepatch`),r.has(`minor`)&&r.add(`preminor`),r.has(`major`)&&r.add(`premajor`));let l=0,u=c;for(let n of t){let t=ke(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!Ke(c,s))continue;let d=M(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))Pe(B(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function bt(e,{mode:t,range:n,useGreatest:r,useRel:i,usePre:a,semvers:o,pinnedRange:s},{allowDowngrade:c,matchesAny:l,isGoPseudoVersion:u}){if(n===`*`||n.includes(`||`))return null;let d=[];if(t===`pypi`)d=Object.keys(e.releases).filter(e=>j(e));else if(t===`npm`)d=Object.keys(e.versions).filter(e=>j(e));else if(t===`go`){let t=B(n);if(!t)return null;let r=a||_t(n),s=e=>z(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=B(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=M(t,p);if(n&&o.has(n)&&vt(f,e.new,d))return e.new}let m=B(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=M(t,m);if(n&&o.has(n)&&vt(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=yt(e,d,{range:n,semvers:o,usePre:a,useRel:i,useGreatest:r,pinnedRange:s});if(!f)return null;if(r)return f;{let r=``,u=``;t===`pypi`?(u=e.info.version,r=B(e.info.version)):r=e[`dist-tags`].latest;let d=B(n),p=_t(n),m=z(f),h=z(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return vt(n,f,g)?f:null;let _=M(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&z(r)?f:Fe(r,d)&&!h?vt(n,r,g)?r:null:!p&&h&&!a||s&&!Ke(r,s)?f:u||r}}const xt=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&xt.set(e.substring(0,t),e.substring(t+1))}function St(e){try{let t=xt.get(new URL(e).hostname);if(t)return t}catch{}return t.UPDATES_GITHUB_API_TOKEN||t.GITHUB_API_TOKEN||t.GH_TOKEN||t.GITHUB_TOKEN||t.HOMEBREW_GITHUB_API_TOKEN}function Ct(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=St(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function wt(e,t,n){let r=I(t);if(!j(r))return null;if(n){let n=t,i=I(t);for(let t of e){let e=I(t);j(e)&&(!n||Ne(e,i))&&(n=t,i=e)}if(Ie(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=I(t);if(!j(n))return null;if(Ie(r,n))return t}return null}function Tt(e){return e=e.replace(`git@`,``).replace(/.+?\/\//,`https://`).replace(/\.git$/,``),/^[a-z]+:[a-z0-9-]\/[a-z0-9-]$/.test(e)?e.replace(/^(.+?):/,(e,t)=>`https://${t}.com/`):/^[a-z0-9-]\/[a-z0-9-]$/.test(e)?`https://github.com/${e}`:e}const Et=/^[0-9a-f]{7,}$/i;function Dt(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function Ot(e,t,n,r){try{let i=await Ct(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=Dt(await i.json()),o=i.headers.get(`link`)||``,s=/<([^>]+)>;\s*rel="last"/.exec(o);if(s){let i=Number(new URL(s[1]).searchParams.get(`page`)),o=await Promise.all(Array.from({length:i-1},(i,a)=>Ct(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...Dt(await e.json()))}return a}catch{return[]}}function kt(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 At(e,t,n=``){let r=t.startsWith(`v`),i=I(e),a=I(t).split(`.`).length,o=i.split(`.`),s;return s=a===1?o[0]:a===2?`${o[0]}.${o[1]||`0`}`:i,`${r?`v`:``}${s}${n}`}function jt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function Mt({repository:e,homepage:t,info:n},r,i){n&&(e=n.project_urls.repository||n.project_urls.Repository||n.project_urls.repo||n.project_urls.Repo||n.project_urls.source||n.project_urls.Source||n.project_urls[`source code`]||n.project_urls[`Source code`]||n.project_urls[`Source Code`]||n.project_urls.homepage||n.project_urls.Homepage||`https://pypi.org/project/${i}/`);let a=``;return r===`https://npm.pkg.github.com`?`https://github.com/${i.replace(/^@/,``)}`:(e&&(a=Tt(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${jt(a)}/${e.directory}`)),a||t||``)}function Nt(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();i.length>=2&&(i.startsWith(`"`)&&i.endsWith(`"`)||i.startsWith(`'`)&&i.endsWith(`'`))&&(i=i.slice(1,-1)),t[e.slice(0,r).trim()]=i}return t}function Pt(e){try{return Nt(h(e,`utf-8`))}catch{return}}function Ft(t){let n=e();for(;;){let e=l(n,t);try{return _(e),e}catch{}let r=c(n);if(r===n)break;n=r}}function It(e){let n={},r=e.toLowerCase();for(let[i,a]of Object.entries(t))if(i.toLowerCase().startsWith(r)){let t=i.substring(e.length).split(`__`).filter(Boolean);if(t.length===0)continue;let r=n;for(let e=0;e<t.length;e++){let n=t[e];if(e===t.length-1)r[n]=a;else if(r[n]===void 0&&(r[n]={}),typeof r[n]==`object`)r=r[n];else break}}return n}function Lt(e,n={}){let i=r===`win32`,a=i?t.USERPROFILE:t.HOME,o=[{...n}],s=[];function c(e){if(!e||s.includes(e))return;let t=Pt(e);t&&(o.push(t),s.push(e))}i||(c(l(`/etc`,e,`config`)),c(l(`/etc`,`${e}rc`))),a&&(c(l(a,`.config`,e,`config`)),c(l(a,`.config`,e)),c(l(a,`.${e}`,`config`)),c(l(a,`.${e}rc`))),c(Ft(`.${e}rc`));let u=It(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const Rt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,zt=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Bt=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,Vt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,Ht=`https://registry.npmjs.org`;let V=null;const Ut=new Map;function Wt(){return V||Lt(`npm`,{registry:Ht})}function Gt(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function Kt(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:Gt(n),type:`Bearer`};let r=t[`${e}:username`]||t[`${e}/:username`],i=t[`${e}:_password`]||t[`${e}/:_password`];if(r&&i){let e=Buffer.from(Gt(i),`base64`).toString(`utf8`);return{token:Buffer.from(`${r}:${e}`).toString(`base64`),type:`Basic`,username:r,password:e}}let a=t[`${e}:_auth`]||t[`${e}/:_auth`];if(a)return{token:Gt(a),type:`Basic`}}function H(e,t){let n=new URL(e.startsWith(`//`)?`http:${e}`:e),r;for(;r!==`/`&&n.pathname!==r;){r=n.pathname||`/`;let e=Kt(`//${n.host}${r.replace(/\/$/,``)}`,t);if(e)return e;let i=r.endsWith(`/`)?r:`${r}/`;n.pathname=new URL(`..`,new URL(i,`http://x`)).pathname}let i=t._auth;if(i)return{token:Gt(i),type:`Basic`}}function qt(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function Jt(e,t){V||=Wt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Ut.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:H(t,V),registry:t};else{let e=R(qt(n,V));if(e!==t)try{let n=H(e,V);a=n?.token?{auth:n,registry:e}:{auth:H(t,V),registry:t}}catch{a={auth:H(t,V),registry:t}}else a={auth:H(t,V),registry:t}}return Ut.set(r,a),a}async function Yt(e,t,n,r,i){V||=Wt();let{auth:a,registry:o}=Jt(e,R((typeof r.registry==`string`?r.registry:!1)||n.registry||V.registry||Ht)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...ht(a?.type,a?.token)});if(l?.ok)return[await l.json(),t,o,e];kt(l,c,e,o)}function U(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Xt(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Zt(e,t){if(e.startsWith(`npm:@jsr/`)){let t=/^npm:@jsr\/([^_]+)__([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:@`)){let t=/^jsr:@([^/]+)\/([^@]+)@(.+)$/.exec(e);if(t)return{scope:t[1],name:t[2],version:t[3]}}else if(e.startsWith(`jsr:`)){let n=e.substring(4);if(t?.startsWith(`@`)){let e=/^@([^/]+)\/(.+)$/.exec(t);if(e)return{scope:e[1],name:e[2],version:n}}}return{scope:null,name:null,version:``}}async function Qt(e,t,n){let r=/^@([^/]+)\/(.+)$/.exec(e);if(!r)throw Error(`Invalid JSR package name: ${e}`);let[,i,a]=r,o=`${n.jsrApiUrl}/@${i}/${a}/meta.json`,s=await n.doFetch(o,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(s?.ok){let r=await s.json(),i={},a={};for(let[e,t]of Object.entries(r.versions))i[e]={version:e,time:t.createdAt},a[e]=t.createdAt;return[{name:e,"dist-tags":{latest:r.latest},versions:i,time:a},t,n.jsrApiUrl,e]}kt(s,o,e,`JSR`)}function $t(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;if(a===`packageManager`){let r=RegExp(`"${L(a)}": *"${o}@${L(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${L(o)}": *"${L(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function en(e,t,n){let r=e.replace(Vt,t);if(n&&n!==e&&/^[\^~]/.test(r)){let e=n.substring(1).split(`.`),t=r.substring(1).split(`.`);e.length!==t.length&&(r=`${r[0]}${t.slice(0,e.length).join(`.`)}`)}if(n&&n!==e&&r.startsWith(`>=`)){let e=/^>=\s/.test(n)?`>= `:`>=`,t=n.replace(/^>=\s*/,``),i=r.replace(/^>=\s*/,``),a=t.split(`.`),o=i.split(`.`);a.length!==o.length&&(r=`${e}${o.slice(0,a.length).join(`.`)}`)}return r}function tn(e){let t=e.match(Bt);return t?.length===1?e.replace(Bt,B(t[0])):e}async function nn(e,t,n){try{let r=await Ct(`${n.forgeApiUrl}/repos/${e}/${t}/commits`,n);if(!r?.ok)return{hash:``,commit:{}};let{sha:i,commit:a}=(await r.json())[0];return{hash:i,commit:a}}catch{return{hash:``,commit:{}}}}async function rn(e,t,n){return(await Ot(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function an(e,t,n,r){let i=t.old.replace(Rt,``),[a,o,s,c]=zt.exec(i)||[];if(!o||!s||!c)return null;if(Et.test(c)){let{hash:n,commit:i}=await nn(o,s,r);if(!n)return null;let a=i?.committer?.date??i?.author?.date,l=n.substring(0,c.length);if(c!==l)return{key:e,newRange:t.old.replace(c,l),user:o,repo:s,oldRef:c,newRef:l,newDate:a}}else{let t=wt(await rn(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function on(e,t,n){let r=`${n.pypiApiUrl}/pypi/${e}/json`,i=await n.doFetch(r,{signal:AbortSignal.timeout(n.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}});if(i?.ok)return[await i.json(),t,null,e];kt(i,r,e,n.pypiApiUrl)}function sn(e,t){let n=e;for(let[e,{old:r,oldOrig:i}]of Object.entries(t)){let[a,o]=e.split(`\0`),s=i||r;n=n.replace(RegExp(`${L(o)} *= *"${L(s)}"`,`g`),`${o} = "${t[e].new}"`),n=n.replace(RegExp(`("${L(o)} *[<>=~]+ *)${L(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const cn=x(S);function ln(){let e=t.GOPROXY||`https://proxy.golang.org,direct`;for(let t of e.split(/[,|]/)){let e=t.trim();if(e&&e!==`direct`&&e!==`off`)return e.endsWith(`/`)?e.substring(0,e.length-1):e}return`https://proxy.golang.org`}function un(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function dn(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function fn(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function pn(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function mn(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function hn(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function gn(e){return`${(e.length+4).toString(16).padStart(4,`0`)}${e}`}function _n(e){let t=[gn(`command=ls-refs
|
|
23
|
+
`),gn(`object-format=sha1
|
|
24
|
+
`),`0001`,gn(`peel
|
|
25
|
+
`),gn(`ref-prefix refs/tags/${e}v\n`),`0000`];return new Blob([t.join(``)])}function vn(e,t){let n=new TextDecoder().decode(e),r=[],i=`refs/tags/${t}`,a=0;for(;a<n.length&&!n.startsWith(`0000`,a);){let e=n.substring(a,a+4),t=parseInt(e,16);if(t===0||isNaN(t))break;let o=n.substring(a+4,a+t);a+=t;let s=o.indexOf(` `);if(s===-1)continue;let c=o.substring(s+1).trim();if(c.endsWith(`^{}`)||!c.startsWith(i))continue;let l=c.substring(i.length);l&&r.push(l)}return r}function yn(e,t){let n=t;for(let t of e){let e=/^v(\d+)\./.exec(t);if(e){let t=parseInt(e[1]);t>n&&(n=t)}}return n>t?n:null}async function bn(e,t){try{let n=await t.doFetch(`https://${e}?go-get=1`,{signal:AbortSignal.timeout(t.goProbeTimeout)});if(!n.ok)return null;let r=await n.text(),i=/<meta\s+name="go-import"\s+content="([^"]+)"/.exec(r)||/<meta\s+content="([^"]+)"\s+name="go-import"/.exec(r);if(!i)return null;let[a,o,s]=i[1].trim().split(/\s+/);return o===`git`?{repoUrl:s,tagPrefix:e.length>a.length?`${e.substring(a.length+1)}/`:``}:null}catch{return null}}async function xn(e,t,n){try{let r=await bn(e.replace(/\/v\d+$/,``),n);if(!r)return null;let{repoUrl:i,tagPrefix:a}=r,o=_n(a),s=await n.doFetch(`${i}/git-upload-pack`,{method:`POST`,headers:{"Git-Protocol":`version=2`,"Content-Type":`application/x-git-upload-pack-request`},body:o,signal:AbortSignal.timeout(n.goProbeTimeout)});return s.ok?yn(vn(await s.arrayBuffer(),a),t):null}catch{return null}}function Sn(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function Cn(e,t,n){if(!t)return null;let r=t,i=e+1,a=1,o=null;for(;o===null;){let t=i+a;if(t>e+100){o=e+101;break}let s=await n(t);s?(r=s,i=t,a*=2):o=t}for(;i+1<o;){let e=Math.floor((i+o)/2),t=await n(e);t?(r=t,i=e):o=e}return r}function wn(e,t,n,r,i,a){let o=r?.Version??i,s=r?.Time??a,c=r?.path??e;return[{name:e,old:n,new:I(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:I(i),sameMajorTime:a},t,null,e]}function Tn(e){let t={},n={},r=new Set,i=e.split(/\r?\n/),a=!1,o=!1;for(let e of i){let i=e.trim();if(/^require\s*\(/.test(i)){a=!0;continue}if(/^replace\s*\(/.test(i)){o=!0;continue}if(i===`)`){a=!1,o=!1;continue}if(i.includes(`// indirect`))continue;if(o||/^replace\s+/.test(i)){let e=o?/^(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i):/^replace\s+(\S+)(?:\s+v\S+)?\s+=>\s+(\S+)\s+(v\S+)/.exec(i);if(e){let[,t,i,a]=e;!i.startsWith(`./`)&&!i.startsWith(`/`)&&!i.startsWith(`../`)&&(n[i]=a,r.add(t))}continue}let s=a?/^(\S+)\s+(v\S+)/.exec(i):/^require\s+(\S+)\s+(v\S+)/.exec(i);s&&(t[s[1]]=s[2])}for(let e of r)delete t[e];return{deps:t,replace:n}}async function En(e,n,r,i,a){let o=pn(e),s=async(e,n)=>{try{let{stdout:r}=await cn(`go`,[`list`,`-m`,`-json`,`${e}@latest`],{timeout:n,cwd:i,env:t}),a=JSON.parse(r);return{Version:a.Version,Time:a.Time||``,path:e}}catch{return null}},[c,l]=await Promise.all([s(e,a.fetchTimeout),s(mn(e,o+1),a.goProbeTimeout)]);return c?wn(e,n,r,await Cn(o,l,t=>s(mn(e,t),a.goProbeTimeout)),c.Version,c.Time):Sn(e,r,n)}async function Dn(e,t,n,r,i,a){if(dn(e,a))return En(e,t,n,r,i);let o=fn(e),s=pn(e),c=async t=>{let n=mn(e,t);return i.doFetch(`${i.goProxyUrl}/${fn(n)}/@latest`,{signal:AbortSignal.timeout(i.goProbeTimeout)}).then(async e=>e.ok?{...await e.json(),path:n}:null).catch(()=>null)},[l,u]=await Promise.all([i.doFetch(`${i.goProxyUrl}/${o}/@latest`,{signal:AbortSignal.timeout(i.fetchTimeout)}),xn(e,s,i)]);if(!l.ok)return Sn(e,n,t);let d,f;try{let e=await l.json();d=e.Version,f=e.Time}catch{return Sn(e,n,t)}let p=null;return u!==null&&u>s?(p=await c(u),p||=await Cn(s,await c(s+1),c)):u===null&&(p=await Cn(s,await c(s+1),c)),wn(e,t,n,p,d,f)}function On(e,t){let n=L(t);return e=e.replace(RegExp(`^replace\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(RegExp(`^\\s+${n}(\\s+v\\S+)?\\s+=>\\s+\\S+(\\s+v\\S+)?\\s*\\n`,`gm`),``),e=e.replace(/^replace\s*\(\s*\)\s*\n/gm,``),e}function kn(e,t){let n=e,r={};for(let[e,{old:i,oldOrig:a}]of Object.entries(t)){let[o,s]=e.split(`\0`),c=a||i,l=t[e].new;if(o===`replace`){n=n.replace(RegExp(`(=>\\s+${L(s)}\\s+)v${L(c)}`,`g`),`$1v${l}`);continue}let u=pn(s),d=parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=mn(s,d);n=n.replace(RegExp(`${L(s)} +v${L(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${L(s)}) +v${L(c)}`,`g`),`$1 v${l}`);n=On(n,s)}return[n,r]}function An(e,t,n){if(!Object.keys(t).length)return;let r=p(`**/*.go`,{cwd:e});for(let i of r){let r=l(e,i),a=h(r,`utf8`),o=!1;for(let[e,n]of Object.entries(t)){let t=RegExp(`"${L(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function jn(e){let t=`https://${Mn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${jt(t)}/${o.join(`/`)}`,n.toString()}else return t}function Mn(e){return/\/v[0-9]$/.test(e)?c(e):e}function Nn(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const Pn=/^\s*-?\s*uses:\s*['"]?([^'"#\s]+)['"]?/gm;function Fn(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:Et.test(o)}}function In(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function Ln(e,t,n,r,i){try{let a=await Ct(`${e}/repos/${t}/${n}/git/commits/${r}`,i);if(!a?.ok)return``;let o=await a.json();return o?.committer?.date||o?.author?.date||``}catch{return``}}function Rn(e,t){return At(ke(I(e))?.version??I(e),t)}function zn(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${L(e)}@${L(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function Bn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function Vn(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}const Hn=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Un=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,Wn=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,Gn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}]+)['"]?\s*$/gm,Kn=/^\s*-?\s*uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function qn(e){let t=e.split(`/`);return t.length===1?{registry:null,namespace:`library`,repo:t[0]}:t.length===2&&!t[0].includes(`.`)&&!t[0].includes(`:`)?{registry:null,namespace:t[0],repo:t[1]}:{registry:t[0],namespace:t.slice(1,-1).join(`/`)||t[1],repo:t[t.length-1]}}function Jn(e){if(e=e.replace(/^docker:\/\//,``),e.includes(`@`))return null;let t=e.lastIndexOf(`:`),n,r;if(t===-1||e.lastIndexOf(`/`)>t||(n=e.substring(0,t),r=e.substring(t+1),!r||!Hn.test(r)))return null;let{registry:i,namespace:a,repo:o}=qn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Yn(e){let t=Hn.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Xn(e,t){let n=Yn(t);return n?At(e,n.version,n.suffix):t}function Zn(e,t){let n=[];for(let r of e.matchAll(t)){let e=Jn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function Qn(e,t,n){let r={},i=`${n.dockerApiUrl}/v2/repositories/${e}/${t}/tags`,a=e=>`${i}?page_size=100&ordering=last_updated&page=${e}`,o=e=>{for(let t of e.results||[])r[t.name]=t.tag_last_pushed||t.last_updated||``},s=Array.from({length:10},(e,t)=>n.doFetch(a(t+1),{signal:AbortSignal.timeout(n.fetchTimeout)}).then(async e=>e?.ok?e.json():null).catch(()=>null)),c=await Promise.all(s),l=c[0];if(!l)return r;let u=Math.min(Math.ceil((l.count||0)/100),10);for(let e=0;e<u;e++)c[e]&&o(c[e]);return r}async function $n(e,t,n){let{registry:r,namespace:i,repo:a}=qn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await Qn(i,a,n),name:e},t,null,e]}function er(e,t,n){let r=Yn(t);if(!r)return null;let i=Me(I(r.version))?.version;if(!i)return null;let a=i,o=``,s=``;for(let[t,i]of Object.entries(e)){let e=Yn(t);if(!e||e.suffix!==r.suffix)continue;let c=Me(I(e.version))?.version;if(!c||!j(c))continue;let l=M(a,c);!l||!n.has(l)||Pe(c,a)&&(a=c,o=t,s=i)}if(!o||a===i)return null;let c=Xn(a,t);return c===t?null:{newTag:c,date:s}}function tr(e,t,n){let r=e;for(let[e,i]of Object.entries(t)){let[t,a]=e.split(`\0`),o=i.oldOrig||i.old;for(let e of n)r=r.replace(e(L(a),L(o)),`$1${a}:${i.new}`)}return r}function nr(e,t){return tr(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function rr(e,t){return tr(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function ir(e,t){return tr(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const ar=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function or(e){return/^docker-.+\.ya?ml$/.test(e)}function sr(e){return/^Dockerfile(\..+)?$/.test(e)}function cr(e){return sr(e)||or(e)}function lr(e){return sr(e)?Un:Wn}function ur(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const dr={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},fr={"allow-downgrade":{short:`d`,type:`string`,multiple:!0},"error-on-outdated":{short:`E`,type:`boolean`},"error-on-unchanged":{short:`U`,type:`boolean`},exclude:{short:`e`,type:`string`,multiple:!0},file:{short:`f`,type:`string`,multiple:!0},forgeapi:{type:`string`},goproxy:{type:`string`},dockerapi:{type:`string`},greatest:{short:`g`,type:`string`,multiple:!0},help:{short:`h`,type:`boolean`},include:{short:`i`,type:`string`,multiple:!0},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-color":{short:`n`,type:`boolean`},patch:{short:`P`,type:`string`,multiple:!0},pin:{short:`l`,type:`string`,multiple:!0},prerelease:{short:`p`,type:`string`,multiple:!0},pypiapi:{type:`string`},registry:{short:`r`,type:`string`},release:{short:`R`,type:`string`,multiple:!0},sockets:{short:`s`,type:`string`},timeout:{short:`T`,type:`string`},types:{short:`t`,type:`string`,multiple:!0},update:{short:`u`,type:`boolean`},verbose:{short:`V`,type:`boolean`},version:{short:`v`,type:`boolean`}};function W(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?ot(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function pr(e){for(let[t,{short:n}]of Object.entries(fr))if(t===e||n===e)return t;return``}const G=b({strict:!1,allowPositionals:!0,tokens:!0,options:fr}),K=G.values;for(let[e,t]of G.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=pr(t.value.substring(1)),r=G.tokens[e+1];K[t.name]=[!0],K[n]||(K[n]=[]),r?.kind===`positional`&&r.value?K[n].push(r.value):K[n].push(!0)}const q=G.values,mr=G.positionals,[hr,gr,_r]=[`magenta`,`red`,`green`].map(e=>q[`no-color`]?String:t=>te(e,String(t))),J=Z(W(q.greatest)),vr=Z(W(q.prerelease)),yr=Z(W(q.release)),br=Z(W(q.patch)),xr=Z(W(q.minor)),Sr=Z(W(q[`allow-downgrade`])),Cr=W(q.modes)||new Set([`npm`,`pypi`,`go`,`actions`,`docker`]),wr=typeof q.forgeapi==`string`?R(q.forgeapi):`https://api.github.com`,Tr=typeof q.pypiapi==`string`?R(q.pypiapi):`https://pypi.org`,Er=typeof q.jsrapi==`string`?R(q.jsrapi):`https://jsr.io`,Dr=typeof q.goproxy==`string`?R(q.goproxy):ln(),Or=typeof q.dockerapi==`string`?R(q.dockerapi):`https://hub.docker.com`,kr=un();function Ar(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&qe(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&qe(r)&&(t[n]=r)}return t}function jr(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:jr(e,r)}function Mr(e){console.error(`${ct()} ${e}`)}const Nr=typeof q.timeout==`string`?Number(q.timeout):0,Y={fetchTimeout:Nr||mt,goProbeTimeout:Nr?Nr/2:2500,forgeApiUrl:wr,pypiApiUrl:Tr,jsrApiUrl:Er,goProxyUrl:Dr,dockerApiUrl:Or,doFetch:(e,t)=>gt(e,t,!!q.verbose,Mr,hr,_r,gr),verbose:!!q.verbose};async function Pr(e){console.info(q.json?JSON.stringify({message:e}):e),await Fr()}async function Fr(e,t){if(e){let t=e.stack??e.message,n=e.cause;q.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(gr(t)),n&&console.info(gr(`Caused by: ${String(n)}`)))}r===`win32`&&Number(o?.node?.split(`.`)[0])>=23&&await new Promise(e=>setTimeout(e,50)),n(t||e?1:0)}function Ir(e={}){for(let t of Object.keys(e))for(let n of Object.values(e[t]))typeof n.oldPrint==`string`&&(n.old=n.oldPrint),typeof n.newPrint==`string`&&(n.new=n.newPrint),typeof n.oldOrig==`string`&&!U(n.oldOrig)&&(n.old=t===`go`?Nn(n.oldOrig):n.oldOrig),t===`go`&&(n.new=Nn(n.new)),t===`actions`&&(n.old=I(n.old),n.new=I(n.new)),delete n.oldPrint,delete n.newPrint,delete n.oldOrig,delete n.date;let t=0;for(let n of Object.keys(e))t+=Object.keys(e[n]).length;if(q.json){let t={results:{}};for(let n of Object.keys(e))for(let[r,i]of Object.entries(e[n])){let[e,a]=r.split(`\0`);t.results[n]||(t.results[n]={}),t.results[n][e]||(t.results[n][e]={}),t.results[n][e][a]=i}console.info(JSON.stringify(t))}else t&&console.info(Rr(e));return q[`error-on-outdated`]?t?2:0:q[`error-on-unchanged`]?t?0:2:0}function X(e,t){r===`win32`&&v(e,0),y(e,t,r===`win32`?{flag:`r+`}:void 0)}const Lr=e=>ee(e).length;function Rr(e){let t=Object.keys(e).filter(t=>Object.keys(e[t]).length>0),n=t.length>1,r=[n?[`NAME`,`MODE`,`OLD`,`NEW`,`AGE`,`INFO`]:[`NAME`,`OLD`,`NEW`,`AGE`,`INFO`]],i=new Set;for(let a of t)for(let[t,o]of Object.entries(e[a])){let[e,s]=t.split(`\0`),c=`${a}|${s}`;if(i.has(c))continue;i.add(c);let l=[];l.push(a===`go`?Mn(s):s),n&&l.push(a),l.push(Qe(o.old,o.new,gr)),l.push(Qe(o.new,o.old,_r)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return lt(r,Lr)}function zr(e,t){return RegExp(`^${L(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Br(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):zr(e,n):e instanceof RegExp?e:zr(e,n)}function Z(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(Br(n,!0,!1));return t}return e}function Q(e,t){let n=new Set;for(let t of e||[])n.add(Br(t,!0,!0));for(let e of t||[])n.add(Br(e,!1,!0));return n}function Vr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>ot(e)):[]}function Hr(e){return br===!0||F(e,br)?new Set([`patch`]):xr===!0||F(e,xr)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Ur(e){return{useGreatest:typeof J==`boolean`?J:F(e,J),usePre:typeof vr==`boolean`?vr:F(e,vr),useRel:typeof yr==`boolean`?yr:F(e,yr),semvers:Hr(e)}}function Wr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}function $(e,t,n,r,i){if(i===`engines`&&tt.includes(e)||t===`pypi`&&e===`python`)return!1;if(!n.size&&!r.size)return!0;let a=t===`go`?e.replace(/\/v\d+$/,``):e;for(let t of r)if(t.test(e)||t.test(a))return!1;for(let t of n)if(t.test(e)||t.test(a))return!0;return!n.size}function Gr(t){let n=new Set,r=new Set;if(t)for(let e of t){let t;try{t=m(e)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}if(t?.isFile()){let t=u(e);n.add(t),r.add(t)}else if(t?.isDirectory()){for(let t of Object.keys(dr)){let r=l(e,t),i=null;try{i=m(r)}catch{}i?.isFile()&&n.add(u(r))}try{for(let t of g(e))if(cr(t)){let i=l(e,t);try{m(i).isFile()&&(n.add(u(i)),r.add(u(i)))}catch{}}}catch{}let t=u(e).replace(/\\/g,`/`),i;i=t.endsWith(`.github/workflows`)?t:t.endsWith(`.github`)?l(t,`workflows`):l(t,`.github`,`workflows`);for(let e of Vn(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(dr)){let r=jr(t,e());r&&n.add(u(r))}for(let t of ar){let r=jr(t,e());r&&n.add(u(r))}try{for(let t of g(e()))if(cr(t)&&!ar.includes(t)){let r=l(e(),t);try{m(r).isFile()&&n.add(u(r))}catch{}}}catch{}let t=jr(l(`.github`,`workflows`),e());if(t)for(let e of Vn(t))n.add(e)}return[n,r]}async function Kr(e){let t=[];for(let e of[`js`,`ts`,`mjs`,`mts`])t.push(`updates.config.${e}`);let n={};try{({default:n}=await Promise.any(t.map(async t=>{let n=l(e,...t.split(`/`)),r=d(n);try{f(n)}catch{throw Error(`File not found: ${t}`)}try{return await import(r.href)}catch(e){throw Error(`Unable to parse config file ${t}: ${e.message}`)}})))}catch(e){if(e instanceof AggregateError){let t=e.errors.filter(e=>e.message.startsWith(`Unable to parse`));if(t.length>0)throw t[0]}}return n}async function qr(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);ft();let e=typeof q.sockets==`number`?q.sockets:96,{help:t,version:n,file:r,types:o,update:l,include:d,exclude:f,pin:p,cooldown:m}=q;t&&(a.write(`usage: updates [options] [files...]
|
|
29
26
|
|
|
30
27
|
Options:
|
|
31
28
|
-u, --update Update versions and write dependency file
|
|
@@ -45,8 +42,8 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
|
|
|
45
42
|
-U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
|
|
46
43
|
-r, --registry <url> Override npm registry URL
|
|
47
44
|
-S, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 96
|
|
48
|
-
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${
|
|
49
|
-
-M, --modes <mode,...> Which modes to enable.
|
|
45
|
+
-T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${mt}
|
|
46
|
+
-M, --modes <mode,...> Which modes to enable. Default: npm,pypi,go,actions,docker
|
|
50
47
|
-j, --json Output a JSON object
|
|
51
48
|
-n, --no-color Disable color output
|
|
52
49
|
-v, --version Print the version
|
|
@@ -63,4 +60,6 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
|
|
|
63
60
|
$ updates -f pyproject.toml
|
|
64
61
|
$ updates -f go.mod
|
|
65
62
|
$ updates -f .github
|
|
66
|
-
|
|
63
|
+
$ updates -f Dockerfile
|
|
64
|
+
$ updates -f docker-compose.yml
|
|
65
|
+
`),await Fr()),n&&(console.info(pt),await Fr());let g={},_={},v={},y={},b=Date.now(),x=0,ee=W(r),te=ee instanceof Set?ee:mr.length?new Set:!1;if(te instanceof Set)for(let e of mr)te.add(e);let[ne,S]=Gr(te),ie={},ae={},oe=Vr(d),C=Vr(f),se=Ar(p),w=[],T=[],E={};function ce(e,t,n){g.docker||={};let r=Q(oe,[]),i=Q(C,[]);for(let a of n)for(let{ref:n}of Zn(e,a)){if(!$(n.fullImage,`docker`,r,i,`docker`))continue;let e=`${t}${n.fullImage}`;if(g.docker[e])continue;let a=Yn(n.tag);a&&(g.docker[e]={old:a.version,oldOrig:n.tag},T.push({key:e,fullImage:n.fullImage,ref:n}))}}for(let e of ne){if(Bn(e)){let t=Cr.has(`actions`)||S.has(e),n=Cr.has(`docker`)||S.has(e);if(!t&&!n)continue;let r;try{r=h(e,`utf8`)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}let i=Wr(e);if(ie[i]={absPath:e,content:r},t){g.actions||={};let e=Q(oe,[]),t=Q(C,[]),n=Array.from(r.matchAll(Pn),e=>Fn(e[1])).filter(e=>e!==null);for(let r of n){if(!$(r.name,`actions`,e,t,`actions`))continue;let n=`${i}${r.name}`;g.actions[n]||(g.actions[n]={old:r.ref},w.push({...r,key:n,apiUrl:In(r.host,wr)}))}}n&&(ae[i]={absPath:e,content:r,fileType:`workflow`},ce(r,i,[Wn,Gn,Kn]));continue}let t=s(e);if(cr(t)){if(!Cr.has(`docker`)&&!S.has(e))continue;let n;try{n=h(e,`utf8`)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}let r=Wr(e),i=sr(t)?`dockerfile`:`compose`;ae[r]={absPath:e,content:n,fileType:i},ce(n,r,[lr(t)]);continue}let n=dr[t];if(!Cr.has(n)&&!S.has(e))continue;y[n]=e,g[n]||(g[n]={});let r=c(u(e)),i=await Kr(r),a=Q(oe,i?.include??[]),l=Q(C,i?.exclude??[]),d={...i?.pin,...se},f=[];Array.isArray(o)?f=o.filter(e=>typeof e==`string`):`types`in i&&Array.isArray(i.types)?f=i.types:n===`npm`?f=et:n===`pypi`?f=[...rt,...nt]:n===`go`&&(f=Array.from(it));let p={};try{v[n]=h(e,`utf8`)}catch(t){throw Error(`Unable to open ${e}: ${t.message}`)}try{if(n===`npm`)p=JSON.parse(v[n]);else if(n===`pypi`)p=we(v[n]);else{let e=Tn(v[n]);p.deps=e.deps,p.replace=e.replace}}catch(t){throw Error(`Error parsing ${e}: ${t.message}`)}for(let e of f){let t;if(t=n===`npm`||n===`go`?p[e]||{}:at(p,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of $e(t))$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:tn(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:tn(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`npm`&&U(i)&&$(r,n,a,l,e)){let t=Zt(i,r);g[n][`${e}${r}`]={old:t.version,oldOrig:i}}else n!==`go`&&qe(i)&&$(r,n,a,l,e)?g[n][`${e}${r}`]={old:tn(i),oldOrig:i}:n===`npm`&&Xt(i)&&$(r,n,a,l,e)?g[n][`${e}${r}`]={old:`0.0.0`,oldOrig:i}:n===`npm`&&!U(i)&&$(r,n,a,l,e)?_[`${e}${r}`]={old:i}:n===`go`&&$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:Nn(i),oldOrig:I(i)})}x+=Object.keys(g[n]).length+Object.keys(_).length,E[n]={config:i,projectDir:r,pin:d}}if(g.actions&&(x+=Object.keys(g.actions).length),g.docker&&(x+=Object.keys(g.docker).length),x===0)return Pr(`No dependencies found, nothing to do.`);let D=[];for(let t of Object.keys(E)){if(!g[t]||!Object.keys(g[t]).length&&!Object.keys(_).length)continue;let{config:n,projectDir:r,pin:i}=E[t];D.push((async()=>{let a=(await re(Object.keys(g[t]),async e=>{let[i,a]=e.split(`\0`);if(t===`npm`){let{oldOrig:r}=g[t][e];if(r&&U(r))return Qt(a,i,Y);if(r&&Xt(r))try{return await Yt(a,i,n,q,Y)}catch{return delete g[t][e],null}return Yt(a,i,n,q,Y)}else if(t===`go`)return Dn(a,i,g[t][e].oldOrig||g[t][e].old,r,Y,kr);else return on(a,i,Y)},{concurrency:e})).filter(Boolean);for(let[e,n,r,o]of a){if(e?.error)throw Error(e.error);let{useGreatest:a,usePre:s,useRel:c,semvers:l}=Ur(e.name),u=`${n}${o}`,d=g[t][u].old,f=g[t][u].oldOrig,p=i[o],m=bt(e,{usePre:s,useRel:c,useGreatest:a,semvers:l,range:d,mode:t,pinnedRange:p},{allowDowngrade:Sr,matchesAny:F,isGoPseudoVersion:hn}),h=``;if([`go`,`pypi`].includes(t)&&m)h=m;else if(m)if(f&&Xt(f))h=String(Wt()[`save-exact`])===`true`?m:`^${m}`;else if(f&&U(f))if(f.startsWith(`npm:@jsr/`)){let e=/^(npm:@jsr\/[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else if(f.startsWith(`jsr:@`)){let e=/^(jsr:@[^@]+@)(.+)$/.exec(f);e&&(h=`${e[1]}${m}`)}else f.startsWith(`jsr:`)&&(h=`jsr:${m}`);else h=en(d,m,f);if(!m||m===d||f&&f===h){delete g[t][u];continue}let _=``;if(t===`npm`&&e.time?.[m]?_=e.time[m]:t===`pypi`&&e.releases?.[m]?.[0]?.upload_time_iso_8601?_=e.releases[m][0].upload_time_iso_8601:t===`go`&&e.Time&&(_=e.Time),g[t][u].new=h,f&&U(f)&&(g[t][u].newPrint=m),t===`npm`)g[t][u].info=Mt(e?.versions?.[m],r,e.name);else if(t===`pypi`)g[t][u].info=Mt(e,r,e.info.name);else if(t===`go`){let n=e.newPath||o;g[t][u].info=jn(n)}_&&(g[t][u].date=_,g[t][u].age=P(_,{noAffix:!0}))}if(Object.keys(_).length){let n=(await re(Object.entries(_),([e,t])=>{let n=e.split(`\0`)[1];return an(e,t,typeof J==`boolean`?J:F(n,J),Y)},{concurrency:e})).filter(e=>e!==null);for(let e of n){let{key:n,newRange:r,user:i,repo:a,oldRef:o,newRef:s,newDate:c}=e;g[t][n]={old:_[n].old,new:r,oldPrint:Et.test(o)?o.substring(0,7):o,newPrint:Et.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`,...c?{age:P(c,{noAffix:!0})}:{}}}}let o=m??n.cooldown;if(o)for(let[e,{date:n}]of Object.entries(g[t]))st(n,dt(String(o)),b)||delete g[t][e]})())}w.length&&D.push((async()=>{let t=new Map;for(let e of w){let n=`${e.apiUrl}/${e.owner}/${e.repo}`;t.has(n)||t.set(n,{apiUrl:e.apiUrl,owner:e.owner,repo:e.repo,infos:[]}),t.get(n).infos.push(e)}if(await re(t.values(),async({apiUrl:e,owner:t,repo:n,infos:r})=>{let i=await Ot(e,t,n,Y),a=i.map(e=>e.name),o=a.map(e=>I(e)).filter(e=>j(e)),s=new Map;for(let e of i)e.commitSha&&s.set(e.commitSha,e.name);let c=new Map;async function l(r){if(c.has(r))return c.get(r);let i=await Ln(e,t,n,r,Y);return c.set(r,i),i}for(let e of r){let r=g.actions[e.key],c=`https://${e.host||`github.com`}/${t}/${n}`;if(e.isHash){let{usePre:t,useRel:n}=Ur(e.name),u=yt({},o,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:se[e.name]});if(!u){delete g.actions[e.key];continue}let d=a.find(e=>I(e)===u);if(!d){delete g.actions[e.key];continue}let f=i.find(e=>e.name===d)?.commitSha;if(!f||f===e.ref||f.startsWith(e.ref)||e.ref.startsWith(f)){delete g.actions[e.key];continue}let p=s.get(e.ref)||Array.from(s.entries()).find(([t])=>t.startsWith(e.ref))?.[1];r.old=e.ref,r.new=f.substring(0,e.ref.length),r.oldPrint=p||e.ref.substring(0,7),r.newPrint=d,r.info=c;let m=await l(f);m&&(r.date=m,r.age=P(m,{noAffix:!0}))}else{let t=B(I(e.ref));if(!t){delete g.actions[e.key];continue}let{useGreatest:n,usePre:s,useRel:u,semvers:d}=Ur(e.name),f=yt({},o,{range:t,semvers:d,usePre:s,useRel:u,useGreatest:n||!0,pinnedRange:se[e.name]});if(!f||f===t){delete g.actions[e.key];continue}let p=a.find(e=>I(e)===f);if(!p){delete g.actions[e.key];continue}let m=Rn(p,e.ref);if(m===e.ref){delete g.actions[e.key];continue}r.new=m,r.info=c;let h=i.find(e=>e.name===p);if(h?.commitSha){let e=await l(h.commitSha);e&&(r.date=e,r.age=P(e,{noAffix:!0}))}}}},{concurrency:e}),m)for(let[e,{date:t}]of Object.entries(g.actions))st(t,dt(String(m)),b)||delete g.actions[e];Object.keys(g.actions).length||delete g.actions})()),T.length&&D.push((async()=>{let t=new Map;for(let e of T)t.has(e.fullImage)||t.set(e.fullImage,[]),t.get(e.fullImage).push(e);if(await re(t.entries(),async([e,t])=>{let n;try{let[t]=await $n(e,`docker`,Y);n=t}catch{for(let e of t)delete g.docker[e.key];return}for(let e of t){let t=g.docker[e.key],r=t.oldOrig||t.old,{semvers:i}=Ur(e.fullImage),a=er(n.tags,r,i);if(!a){delete g.docker[e.key];continue}t.new=a.newTag,t.info=ur(e.ref),a.date&&(t.date=a.date,t.age=P(a.date,{noAffix:!0}))}},{concurrency:e}),m)for(let[e,{date:t}]of Object.entries(g.docker))st(t,dt(String(m)),b)||delete g.docker[e];Object.keys(g.docker).length||delete g.docker})()),await Promise.all(D);let le=0;for(let e of Object.keys(g))le+=Object.keys(g[e]).length;if(!le)return Pr(`All dependencies are up to date.`);let O=new Map;if(g.actions)for(let[e,t]of Object.entries(g.actions)){let[n,r]=e.split(`\0`);O.has(n)||O.set(n,[]),O.get(n).push({name:r,oldRef:t.old,newRef:t.new})}let ue=new Map;if(g.docker)for(let[e,t]of Object.entries(g.docker)){let[n]=e.split(`\0`);ue.has(n)||ue.set(n,{}),ue.get(n)[e]=t}let de=Ir(g);if(l){for(let e of Object.keys(g))if(Object.keys(g[e]).length){if(e===`actions`){for(let[e,t]of O){let{absPath:n,content:r}=ie[e]||{};if(n){try{X(n,zn(r,t))}catch(e){throw Error(`Error writing ${s(n)}: ${e.message}`)}console.info(_r(`✨ ${e} updated`))}}continue}if(e===`docker`){for(let[e,t]of ue){let n=ae[e];if(!n)continue;let{absPath:r,fileType:i}=n,a;try{a=h(r,`utf8`)}catch{continue}try{X(r,(i===`dockerfile`?nr:i===`compose`?rr:ir)(a,t))}catch(e){throw Error(`Error writing ${s(r)}: ${e.message}`)}console.info(_r(`✨ ${e} updated`))}continue}try{let t=v[e];if(e===`go`){let[n,r]=kn(t,g[e]);X(y[e],n),An(c(u(y[e])),r,X)}else{let n=e===`npm`?$t:sn;X(y[e],n(t,g[e]))}}catch(t){throw Error(`Error writing ${s(y[e])}: ${t.message}`)}console.info(_r(`✨ ${s(y[e])} updated`))}}await Fr(void 0,de)}try{await qr()}catch(e){await Fr(e)}export{};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "updates",
|
|
3
|
-
"version": "17.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "17.8.0",
|
|
4
|
+
"description": "Dependency update tool for npm, uv, golang and actions",
|
|
5
5
|
"author": "silverwind",
|
|
6
6
|
"repository": "silverwind/updates",
|
|
7
7
|
"license": "BSD-2-Clause",
|
|
@@ -16,19 +16,19 @@
|
|
|
16
16
|
"node": ">=22"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@types/node": "25.3.
|
|
20
|
-
"@typescript/native-preview": "7.0.0-dev.
|
|
19
|
+
"@types/node": "25.3.2",
|
|
20
|
+
"@typescript/native-preview": "7.0.0-dev.20260228.1",
|
|
21
21
|
"eslint": "9.39.3",
|
|
22
|
-
"eslint-config-silverwind": "121.1.
|
|
22
|
+
"eslint-config-silverwind": "121.1.3",
|
|
23
23
|
"p-map": "7.0.4",
|
|
24
24
|
"smol-toml": "1.6.0",
|
|
25
|
-
"timerel": "5.8.
|
|
25
|
+
"timerel": "5.8.6",
|
|
26
26
|
"tsdown": "0.20.3",
|
|
27
27
|
"tsdown-config-silverwind": "1.7.5",
|
|
28
28
|
"typescript": "5.9.3",
|
|
29
29
|
"typescript-config-silverwind": "15.0.0",
|
|
30
30
|
"updates-config-silverwind": "1.0.3",
|
|
31
|
-
"versions": "14.
|
|
31
|
+
"versions": "14.2.0",
|
|
32
32
|
"vitest": "4.0.18",
|
|
33
33
|
"vitest-config-silverwind": "10.6.3"
|
|
34
34
|
}
|