updates 17.8.0 → 17.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
  # Supported files
9
9
 
10
10
  - `package.json` - supports all npm package managers
11
- - `pyproject.toml` - supports `uv` and `poetry`
11
+ - `pyproject.toml` - supports `uv`
12
12
  - `go.mod` - supports go dependencies
13
13
  - `.{github,gitea,forgejo}/workflows` - supports actions
14
14
  - `Dockerfile*`, `docker-*.{yml,yaml}` - supports Docker Hub images
package/dist/index.js CHANGED
@@ -1,28 +1,10 @@
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 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+=`
3
- `,e===t&&(i+=` `.repeat(a+n+2),i+=`^
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===`
6
- `)return n;if(r===`\r`&&e[n+1]===`
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===`
8
- `||i===`\r`&&e[t+1]===`
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===`
10
- `||t===`\r`&&e[a+1]===`
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
- `&&t++);let a=0,o,s=``,c=t;for(;t<n-1;){let n=e[t++];if(n===`
14
- `||n===`\r`&&e[t]===`
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...]
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){let t={},n=t,r=e.split(/\r?\n/);for(let e=0;e<r.length;e++){let i=r[e].replace(/#.*$/,``).trim();if(!i)continue;let a=/^\[([^\]]+)\]$/.exec(i);if(a){n=t;for(let e of E(a[1]))(!(e in n)||typeof n[e]!=`object`||Array.isArray(n[e]))&&(n[e]={}),n=n[e];continue}let o=ce(i);if(o<0)continue;let s=i.slice(0,o).trim(),c=i.slice(o+1).trim(),l=E(s),u=n;for(let e=0;e<l.length-1;e++)(!(l[e]in u)||typeof u[l[e]]!=`object`||Array.isArray(u[l[e]]))&&(u[l[e]]={}),u=u[l[e]];let d=l[l.length-1];if(c.startsWith(`[`)&&!c.includes(`]`)){let t=[];C(c.slice(1),t);for(let n=e+1;n<r.length;n++){let i=r[n].replace(/#.*$/,``).trim();if(i){if(i.includes(`]`)){C(i.replace(/].*$/,``),t),e=n;break}C(i,t)}}u[d]=t}else u[d]=w(c)}return t}function C(e,t){let n=e.trim();if(!n)return;let r=/"""([\s\S]*?)"""|'''([\s\S]*?)'''|"((?:[^"\\]|\\.)*)"|'([^']*)'|([^,\s\]]+)/g,i;for(;i=r.exec(n);){let e=i[1]??i[2]??(i[3]===void 0?void 0:D(i[3]))??i[4]??i[5];e!==void 0&&e!==``&&t.push(T(e))}}function w(e){if(e.startsWith(`[`)){let t=[];return C(e.slice(1,e.lastIndexOf(`]`)),t),t}return e.startsWith(`{`)?oe(e):e.startsWith(`"""`)?D(e.slice(3,e.lastIndexOf(`"""`))):e.startsWith(`'''`)?e.slice(3,e.lastIndexOf(`'''`)):e.startsWith(`"`)?D(e.slice(1,e.lastIndexOf(`"`))):e.startsWith(`'`)?e.slice(1,e.lastIndexOf(`'`)):T(e)}function T(e){return e===`true`?!0:e===`false`?!1:/^[+-]?\d+$/.test(e)||/^[+-]?\d+\.\d+$/.test(e)?Number(e):e}function oe(e){let t={},n=e.slice(1,e.lastIndexOf(`}`)).trim();if(!n)return t;for(let e of se(n)){let n=e.indexOf(`=`);if(n<0)continue;let r=e.slice(0,n).trim().replace(/^["']|["']$/g,``);t[r]=w(e.slice(n+1).trim())}return t}function se(e){let t=[],n=0,r=null,i=0;for(let a=0;a<e.length;a++){let o=e[a];if(r){if(o===`\\`&&r===`"`){a++;continue}o===r&&(r=null)}else o===`"`||o===`'`?r=o:o===`[`||o===`{`?n++:o===`]`||o===`}`?n--:o===`,`&&n===0&&(t.push(e.slice(i,a)),i=a+1)}return i<e.length&&t.push(e.slice(i)),t}function E(e){let t=[],n=``,r=null;for(let i of e)if(r){if(i===r){r=null;continue}n+=i}else i===`"`||i===`'`?r=i:i===`.`?(t.push(n.trim()),n=``):n+=i;return n.trim()&&t.push(n.trim()),t}function ce(e){let t=null;for(let n=0;n<e.length;n++){let r=e[n];if(t){if(r===`\\`&&t===`"`){n++;continue}r===t&&(t=null)}else if(r===`"`||r===`'`)t=r;else if(r===`=`)return n}return-1}function D(e){return e.replace(/\\(["\\bfnrt]|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/g,(e,t)=>{switch(t[0]){case`"`:return`"`;case`\\`:return`\\`;case`b`:return`\b`;case`f`:return`\f`;case`n`:return`
3
+ `;case`r`:return`\r`;case`t`:return` `;case`u`:case`U`:return String.fromCodePoint(parseInt(t.slice(1),16));default:return t}})}const le=/^v?(\d+)\.(\d+)\.(\d+)(?:-([a-zA-Z0-9._-]+(?:\.[a-zA-Z0-9._-]+)*))?(?:\+[a-zA-Z0-9._-]+)?$/,ue=new Map;function O(e){if(typeof e!=`string`)return null;let t=ue.get(e);if(t!==void 0)return t;let n=le.exec(e.trim());if(!n)return ue.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 ue.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 fe(e,t){return e.major-t.major||e.minor-t.minor||e.patch-t.patch}function k(e,t){let n=fe(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 A(e){return O(e)?.version??null}function pe(e){return O(e)}const me=new Map,he=/(?:^|[^.\d])(\d+)(?:\.(\d+))?(?:\.(\d+))?/;function ge(e){if(typeof e!=`string`)return null;let t=me.get(e);if(t!==void 0)return t;let n=he.exec(e);if(!n)return me.set(e,null),null;let r={version:`${n[1]||`0`}.${n[2]||`0`}.${n[3]||`0`}`};return me.set(e,r),r}function j(e,t){let n=O(e),r=O(t);if(!n||!r||n.version===r.version)return null;let i=k(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(fe(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 _e(e,t){let n=O(e),r=O(t);return!n||!r?!1:k(n,r)>0}function ve(e,t){let n=O(e),r=O(t);return!n||!r?!1:k(n,r)>=0}function ye(e,t){let n=O(e),r=O(t);return!n||!r?!1:k(n,r)<0}function be(e,t){let n=O(e),r=O(t);return!n||!r?!0:k(n,r)!==0}function xe(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=O(`${n}.${t[3]??`0`}.${t[4]??`0`}${t[5]||``}`);return r?{op:t[1]||`=`,semver:r}:null}function Se(e,t){let n=k(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 M(e,t,n){return`${e}.${t}.${n}-0`}function Ce(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 <${M(a+1,0,0)}`;let o=Number(n);return`>=${a}.${o}.${r===void 0?0:Number(r)}${i||``} <${M(a,o+1,0)}`})}function we(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 <${M(a+1,0,0)}`;let s=Number(n);if(r===void 0)return a===0?`>=${a}.${s}.0 <${M(a,s+1,0)}`:`>=${a}.${s}.0 <${M(a+1,0,0)}`;let c=Number(r);return a===0?s===0?`>=${a}.${s}.${c}${o} <${M(a,s,c+1)}`:`>=${a}.${s}.${c}${o} <${M(a,s+1,0)}`:`>=${a}.${s}.${c}${o} <${M(a+1,0,0)}`})}function Te(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?`<${M(p+1,0,0)}`:`<${M(p,Number(o)+1,0)}`:`<=${p}.${Number(o)}.${Number(s)}${c||``}`,`>=${l}.${u}.${d}${f} ${m}`})}function Ee(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 <${M(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 <${M(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 <${M(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 <${M(o+1,0,0)}`}),e)}const De=new Map;function Oe(e){let t=De.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=Te(t),t=we(t),t=Ce(t),t=Ee(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=xe(t);if(!n)return De.set(e,null),null;i.push(n)}if(i.length===0)return De.set(e,null),null;r.push(i)}let i=r.length?r:null;return De.set(e,i),i}function ke(e,t){for(let n of t)if(!Se(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 Ae(e,t){let n=O(e);if(!n)return!1;let r=Oe(t);if(!r)return!1;for(let e of r)if(e.length===0||ke(n,e))return!0;return!1}function je(e){if(typeof e!=`string`)return null;try{return Oe(e)?e:null}catch{return null}}const Me=[[1e3,6e4,`sec`],[6e4,36e5,`min`],[36e5,864e5,`hour`],[864e5,6048e5,`day`],[6048e5,2628e6,`week`],[2628e6,31536e6,`month`],[31536e6,1/0,`year`]],Ne={"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`},Pe={sec:`second`,min:`minute`};function Fe(e){return e instanceof Date?e.getTime():typeof e==`string`?Date.parse(e):e}function N(e,{now:t,noAffix:n=!1,times:r=Me,nowThreshold:i=2e3,nowString:a=`now`,unknownString:o=``,aliases:s=!1,aliasesMap:c=Ne,longUnits:l=!1}={}){let u=Fe(e),d=t===void 0?Date.now():Fe(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&&Pe[t[2]]||t[2])+(m>1?`s`:``);break}}let g=`${m} ${h}`,_;return _=n?g:p?`in ${g}`:`${g} ago`,s?c[_]??_:_}function Ie(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 Le(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 Re=[`dependencies`,`devDependencies`,`peerDependencies`,`optionalDependencies`,`resolutions`,`packageManager`],ze=[`node`,`deno`,`bun`],Be=[`project.dependencies`,`project.optional-dependencies`,`dependency-groups.dev`,`dependency-groups.lint`,`dependency-groups.test`],Ve=[`deps`,`replace`];function P(e,t){for(let n of t instanceof Set?t:[])if(n.test(e))return!0;return!1}function He(e,t){return t.split(`.`).reduce((e,t)=>e?.[t]??null,e)}function Ue(e){return e.split(`,`).filter(Boolean)}function We(e,t,n){return!e||!t?!0:(n-Date.parse(e))/(24*3600*1e3)>=t}function Ge(){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 Ke(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+=`
4
+ `)}return r}const qe={y:365,m:30,w:7,d:1,h:1/24,s:1/86400};function Je(e){let t=/^(\d+(?:\.\d+)?)\s*([a-z])$/i.exec(e);if(t){let[,e,n]=t,r=qe[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 Ye(){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 Xe=`17.8.1`,Ze=5e3,F=e=>e.replace(/^v/,``),I=e=>e.replace(/[|\\{}()[\]^$+*?.-]/g,`\\$&`),L=e=>e.endsWith(`/`)?e.substring(0,e.length-1):e;function Qe(e,t){return{headers:{"user-agent":`updates/${Xe}`,"accept-encoding":`gzip, deflate, br`,...t&&{Authorization:`${e} ${t}`}}}}async function $e(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 R(e){let t=pe(e);return t?!!t.prerelease.length:!1}function et(e){return/[0-9]+\.[0-9]+\.[0-9]+-.+/.test(e)}function tt(e,t,{useRel:n,allowDowngrade:r,name:i,matchesAny:a}){let o=z(e),s=z(t);if(!o||!s)return!0;let c=et(e)||R(e),l=R(t);return c&&!l?_e(s,o)||n:!l&&ye(s,o)?r===!0||a(i,r):!0}function z(e){try{return ge(e)?.version??``}catch{return``}}function nt(e,t,{range:n,semvers:r,usePre:i,useRel:a,useGreatest:o,pinnedRange:s}){let c=z(n);if(!c)return c;i=et(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=pe(n);if(!t?.version||t.prerelease.length&&(!i||a))continue;let c=t.version;if(s&&!Ae(c,s))continue;let d=j(u,c);if(!(!d||!r.has(d)))if(o||!(`time`in e))ve(z(c),u)&&(u=c);else{let t=Date.parse(e.time[n]);t>=0&&t>l&&(u=c,l=t)}}return u||null}function rt(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=>A(e));else if(t===`npm`)d=Object.keys(e.versions).filter(e=>A(e));else if(t===`go`){let t=z(n);if(!t)return null;let r=a||et(n),s=e=>R(e)&&(!r||i),d={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l},f=e.old||n,p=z(e.new);if(p&&!u(e.new)&&!s(e.new)){let n=j(t,p);if(n&&o.has(n)&&tt(f,e.new,d))return e.new}let m=z(e.sameMajorNew);if(m&&!u(e.sameMajorNew)&&!s(e.sameMajorNew)){let n=j(t,m);if(n&&o.has(n)&&tt(f,e.sameMajorNew,d))return e.Time=e.sameMajorTime,delete e.newPath,e.sameMajorNew}return null}let f=nt(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=z(e.info.version)):r=e[`dist-tags`].latest;let d=z(n),p=et(n),m=R(f),h=R(r),g={useRel:i,allowDowngrade:c,name:e.name,matchesAny:l};if(!i&&a||p&&m)return f;if(p&&!m)return tt(n,f,g)?f:null;let _=j(d,r);return _&&_!==`prerelease`&&!o.has(_.replace(/^pre/,``))||i&&R(r)?f:ye(r,d)&&!h?tt(n,r,g)?r:null:!p&&h&&!a||s&&!Ae(r,s)?f:u||r}}const it=new Map;if(t.UPDATES_FORGE_TOKENS)for(let e of t.UPDATES_FORGE_TOKENS.split(`,`)){let t=e.indexOf(`:`);t>0&&it.set(e.substring(0,t),e.substring(t+1))}function at(e){try{let t=it.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 ot(e,t){let n={signal:AbortSignal.timeout(t.fetchTimeout),headers:{"accept-encoding":`gzip, deflate, br`}},r=at(e);return r&&(n.headers={...n.headers,Authorization:`Bearer ${r}`}),t.doFetch(e,n)}function st(e,t,n){let r=F(t);if(!A(r))return null;if(n){let n=t,i=F(t);for(let t of e){let e=F(t);A(e)&&(!n||_e(e,i))&&(n=t,i=e)}if(be(r,i))return n}else{let t=e.at(-1);if(!t)return null;let n=F(t);if(!A(n))return null;if(be(r,n))return t}return null}function ct(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 lt=/^[0-9a-f]{7,}$/i;function ut(e){return e.map(e=>({name:e.name,commitSha:e.commit?.sha||``}))}async function dt(e,t,n,r){try{let i=await ot(`${e}/repos/${t}/${n}/tags?per_page=100`,r);if(!i?.ok)return[];let a=ut(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)=>ot(`${e}/repos/${t}/${n}/tags?per_page=100&page=${a+2}`,r)));for(let e of o)e?.ok&&a.push(...ut(await e.json()))}return a}catch{return[]}}function ft(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 pt(e,t,n=``){let r=t.startsWith(`v`),i=F(e),a=F(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 mt(e){return e.startsWith(`https://bitbucket.org`)?`src/HEAD`:`tree/HEAD`}function ht({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=ct(typeof e==`string`?e:e.url),a&&typeof e!=`string`&&e.directory&&(a=`${a}/${mt(a)}/${e.directory}`)),a||t||``)}function gt(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 _t(e){try{return gt(h(e,`utf-8`))}catch{return}}function vt(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 yt(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 bt(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=_t(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(vt(`.${e}rc`));let u=yt(`${e}_`);return u.config&&c(u.config),Object.assign({},...o,u,s.length?{configs:s,config:s[s.length-1]}:void 0)}const xt=/^.*?:\/\/(.*?@)?(github\.com[:/])/i,St=/^([^/]+)\/([^/#]+)?.*?\/([0-9a-f]+|v?[0-9]+\.[0-9]+\.[0-9]+)$/i,Ct=/[0-9]+(\.[0-9]+)?(\.[0-9]+)?/g,wt=/[0-9]+\.[0-9]+\.[0-9]+(-.+)?/g,Tt=`https://registry.npmjs.org`;let B=null;const Et=new Map;function Dt(){return B||bt(`npm`,{registry:Tt})}function Ot(e){return e.replace(/^\$\{?([^}]*)\}?$/,(e,n)=>t[n]||``)}function kt(e,t){let n=t[`${e}:_authToken`]||t[`${e}/:_authToken`];if(n)return{token:Ot(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(Ot(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:Ot(a),type:`Basic`}}function V(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:Ot(i),type:`Basic`}}function At(e,t){let n=t[`${e}:registry`]||t.registry;return n.endsWith(`/`)?n:`${n}/`}function jt(e,t){B||=Dt();let n=e.startsWith(`@`)?(/@[a-z0-9][\w-.]+/.exec(e)||[``])[0]:``,r=`${n}:${t}`,i=Et.get(r);if(i)return i;let a;if(!e.startsWith(`@`))a={auth:V(t,B),registry:t};else{let e=L(At(n,B));if(e!==t)try{let n=V(e,B);a=n?.token?{auth:n,registry:e}:{auth:V(t,B),registry:t}}catch{a={auth:V(t,B),registry:t}}else a={auth:V(t,B),registry:t}}return Et.set(r,a),a}async function Mt(e,t,n,r,i){B||=Dt();let{auth:a,registry:o}=jt(e,L((typeof r.registry==`string`?r.registry:!1)||n.registry||B.registry||Tt)),c=`${o}/${(t===`resolutions`?s(e):e).replace(/\//g,`%2f`)}`,l=await i.doFetch(c,{signal:AbortSignal.timeout(i.fetchTimeout),...Qe(a?.type,a?.token)});if(l?.ok)return[await l.json(),t,o,e];ft(l,c,e,o)}function H(e){return e.startsWith(`npm:@jsr/`)||e.startsWith(`jsr:`)}function Nt(e){return e.startsWith(`link:`)||e.startsWith(`file:`)}function Pt(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 Ft(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]}ft(s,o,e,`JSR`)}function It(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(`"${I(a)}": *"${o}@${I(s)}"`,`g`);n=n.replace(r,`"${a}": "${o}@${t[e].new}"`)}else{let r=RegExp(`"${I(o)}": *"${I(s)}"`,`g`);n=n.replace(r,`"${o}": "${t[e].new}"`)}}return n}function Lt(e,t,n){let r=e.replace(wt,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 Rt(e){let t=e.match(Ct);return t?.length===1?e.replace(Ct,z(t[0])):e}async function zt(e,t,n){try{let r=await ot(`${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 Bt(e,t,n){return(await dt(n.forgeApiUrl,e,t,n)).map(e=>e.name)}async function Vt(e,t,n,r){let i=t.old.replace(xt,``),[a,o,s,c]=St.exec(i)||[];if(!o||!s||!c)return null;if(lt.test(c)){let{hash:n,commit:i}=await zt(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=st(await Bt(o,s,r),c,n);if(t)return{key:e,newRange:t,user:o,repo:s,oldRef:c,newRef:t}}return null}async function Ht(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];ft(i,r,e,n.pypiApiUrl)}function Ut(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(`("${I(o)} *[<>=~]+ *)${I(s)}(")`,`g`),(n,r,i)=>`${r}${t[e].new}${i}`)}return n}const Wt=x(S);function Gt(){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 Kt(){return(t.GONOPROXY||t.GOPRIVATE||``).split(`,`).map(e=>e.trim()).filter(Boolean)}function qt(e,t){return t.some(t=>e===t||e.startsWith(`${t}/`))}function Jt(e){return e.replace(/[A-Z]/g,e=>`!${e.toLowerCase()}`)}function Yt(e){let t=/\/v(\d+)$/.exec(e);return t?parseInt(t[1]):1}function Xt(e,t){return t<=1?e.replace(/\/v\d+$/,``):`${e.replace(/\/v\d+$/,``)}/v${t}`}function Zt(e){return/\d{14}-[0-9a-f]{12}$/.test(e)}function Qt(e){return`${(e.length+4).toString(16).padStart(4,`0`)}${e}`}function $t(e){let t=[Qt(`command=ls-refs
5
+ `),Qt(`object-format=sha1
6
+ `),`0001`,Qt(`peel
7
+ `),Qt(`ref-prefix refs/tags/${e}v\n`),`0000`];return new Blob([t.join(``)])}function en(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 tn(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}function nn(e){let t=/^((github\.com|gitea\.com)\/[^/]+\/[^/]+)(\/.*)?$/.exec(e);if(t){let e=t[1],n=t[3]||``;return{repoUrl:`https://${e}.git`,tagPrefix:n?`${n.substring(1)}/`:``}}let n=/^golang\.org\/x\/([^/]+)(\/.*)?$/.exec(e);if(n){let e=n[2]||``;return{repoUrl:`https://go.googlesource.com/${n[1]}`,tagPrefix:e?`${e.substring(1)}/`:``}}return null}async function rn(e,t){let n=nn(e);if(n)return n;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 an(e,t,n){try{let r=await rn(e.replace(/\/v\d+$/,``),n);if(!r)return null;let{repoUrl:i,tagPrefix:a}=r,o=$t(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?tn(en(await s.arrayBuffer(),a),t):null}catch{return null}}function on(e,t,n){return[{name:e,old:t,new:t},n,null,e]}async function sn(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 cn(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:F(o),Time:s,...c===e?{}:{newPath:c},sameMajorNew:F(i),sameMajorTime:a},t,null,e]}function ln(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 un(e,n,r,i,a){let o=Yt(e),s=async(e,n)=>{try{let{stdout:r}=await Wt(`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(Xt(e,o+1),a.goProbeTimeout)]);return c?cn(e,n,r,await sn(o,l,t=>s(Xt(e,t),a.goProbeTimeout)),c.Version,c.Time):on(e,r,n)}async function dn(e,t,n,r,i,a){if(qt(e,a))return un(e,t,n,r,i);let o=Jt(e),s=Yt(e),c=async t=>{let n=Xt(e,t);return i.doFetch(`${i.goProxyUrl}/${Jt(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)}),an(e,s,i)]);if(!l.ok)return on(e,n,t);let d,f;try{let e=await l.json();d=e.Version,f=e.Time}catch{return on(e,n,t)}let p=null;return u!==null&&u>s?(p=await c(u),p||=await sn(s,await c(s+1),c)):u===null&&(p=await sn(s,await c(s+1),c)),cn(e,t,n,p,d,f)}function fn(e,t){let n=I(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 pn(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+${I(s)}\\s+)v${I(c)}`,`g`),`$1v${l}`);continue}let u=Yt(s),d=parseInt(l.split(`.`)[0]);if(u!==d&&d>1){let e=Xt(s,d);n=n.replace(RegExp(`${I(s)} +v${I(c)}`,`g`),`${e} v${l}`),r[s]=e}else n=n.replace(RegExp(`(${I(s)}) +v${I(c)}`,`g`),`$1 v${l}`);n=fn(n,s)}return[n,r]}function mn(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(`"${I(e)}(/|")`,`g`),r=a.replace(t,`"${n}$1`);r!==a&&(a=r,o=!0)}o&&n(r,a)}}function hn(e){let t=`https://${gn(e)}`,n=new URL(t),r=n.pathname.split(`/`);if(r.length>3){let[e,i,a,...o]=r;return n.pathname=`/${i}/${a}/${mt(t)}/${o.join(`/`)}`,n.toString()}else return t}function gn(e){return/\/v[0-9]$/.test(e)?c(e):e}function _n(e){return e.replace(/(\d{7})\d{7}-[0-9a-f]{12}$/,`$1`)}const vn=/^\s*-?\s*uses:\s*['"]?([^'"#\s]+)['"]?/gm;function yn(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:lt.test(o)}}function bn(e,t){return e?e===`github.com`?`https://api.github.com`:`https://${e}/api/v1`:t}async function xn(e,t,n,r,i){try{let a=await ot(`${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 Sn(e,t){return pt(pe(F(e))?.version??F(e),t)}function Cn(e,t){let n=e;for(let{name:e,oldRef:r,newRef:i}of t){let t=RegExp(`(uses:\\s*['"]?)${I(e)}@${I(r)}`,`g`);n=n.replace(t,`$1${e}@${i}`)}return n}function wn(e){let t=e.replace(/\\/g,`/`);return/\.github\/workflows\/[^/]+\.(ya?ml)$/.test(t)}function Tn(e){try{return g(e).filter(e=>/\.(ya?ml)$/.test(e)).map(t=>u(l(e,t)))}catch{return[]}}const En=/^(v?\d+(?:\.\d+){0,2})(-.+)?$/,Dn=/^\s*FROM\s+(?:--platform=\S+\s+)?(\S+)/gm,On=/^\s*image:\s*['"]?([^\s'"#]+)['"]?/gm,kn=/^\s*container:\s*['"]?([^\s'"#{}]+:[^\s'"#{}]+)['"]?\s*$/gm,An=/^\s*-?\s*uses:\s*['"]?docker:\/\/([^'"#\s]+)['"]?/gm;function jn(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 Mn(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||!En.test(r)))return null;let{registry:i,namespace:a,repo:o}=jn(n);return{registry:i,namespace:a,repo:o,tag:r,fullImage:n}}function Nn(e){let t=En.exec(e);return t?{version:t[1],suffix:t[2]||``}:null}function Pn(e,t){let n=Nn(t);return n?pt(e,n.version,n.suffix):t}function Fn(e,t){let n=[];for(let r of e.matchAll(t)){let e=Mn(r[1]);e&&n.push({ref:e,match:r[1]})}return n}async function In(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 Ln(e,t,n){let{registry:r,namespace:i,repo:a}=jn(e);if(r)throw Error(`Non-Docker-Hub registries are not yet supported: ${r}`);return[{tags:await In(i,a,n),name:e},t,null,e]}function Rn(e,t,n){let r=Nn(t);if(!r)return null;let i=ge(F(r.version))?.version;if(!i)return null;let a=i,o=``,s=``;for(let[t,i]of Object.entries(e)){let e=Nn(t);if(!e||e.suffix!==r.suffix)continue;let c=ge(F(e.version))?.version;if(!c||!A(c))continue;let l=j(a,c);!l||!n.has(l)||ve(c,a)&&(a=c,o=t,s=i)}if(!o||a===i)return null;let c=Pn(a,t);return c===t?null:{newTag:c,date:s}}function zn(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(I(a),I(o)),`$1${a}:${i.new}`)}return r}function Bn(e,t){return zn(e,t,[(e,t)=>RegExp(`(FROM\\s+(?:--platform=\\S+\\s+)?)${e}:${t}`,`g`)])}function Vn(e,t){return zn(e,t,[(e,t)=>RegExp(`(image:\\s*['"]?)${e}:${t}`,`g`)])}function Hn(e,t){return zn(e,t,[(e,t)=>RegExp(`((?:container|image):\\s*['"]?)${e}:${t}`,`g`),(e,t)=>RegExp(`(uses:\\s*['"]?docker://)${e}:${t}`,`g`)])}const Un=[`Dockerfile`,`docker-compose.yml`,`docker-compose.yaml`];function Wn(e){return/^docker-.+\.ya?ml$/.test(e)}function Gn(e){return/^Dockerfile(\..+)?$/.test(e)}function Kn(e){return Gn(e)||Wn(e)}function qn(e){return Gn(e)?Dn:On}function Jn(e){return e.registry?``:e.namespace===`library`?`https://hub.docker.com/_/${e.repo}`:`https://hub.docker.com/r/${e.namespace}/${e.repo}`}const Yn={"package.json":`npm`,"pyproject.toml":`pypi`,"go.mod":`go`},Xn={"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 U(e){return Array.isArray(e)&&e.every(e=>e===!0)?!0:Array.isArray(e)?new Set(e.flatMap(e=>typeof e==`string`?Ue(e):``).filter(Boolean)):typeof e==`string`?new Set([e]):typeof e==`boolean`?e:!1}function Zn(e){for(let[t,{short:n}]of Object.entries(Xn))if(t===e||n===e)return t;return``}const W=b({strict:!1,allowPositionals:!0,tokens:!0,options:Xn}),G=W.values;for(let[e,t]of W.tokens.entries())if(t.kind===`option`&&t.value?.startsWith(`-`)){let n=Zn(t.value.substring(1)),r=W.tokens[e+1];G[t.name]=[!0],G[n]||(G[n]=[]),r?.kind===`positional`&&r.value?G[n].push(r.value):G[n].push(!0)}const K=W.values,Qn=W.positionals,[$n,er,q]=[`magenta`,`red`,`green`].map(e=>K[`no-color`]?String:t=>te(e,String(t))),J=Z(U(K.greatest)),tr=Z(U(K.prerelease)),nr=Z(U(K.release)),rr=Z(U(K.patch)),ir=Z(U(K.minor)),ar=Z(U(K[`allow-downgrade`])),or=U(K.modes)||new Set([`npm`,`pypi`,`go`,`actions`,`docker`]),sr=typeof K.forgeapi==`string`?L(K.forgeapi):`https://api.github.com`,cr=typeof K.pypiapi==`string`?L(K.pypiapi):`https://pypi.org`,lr=typeof K.jsrapi==`string`?L(K.jsrapi):`https://jsr.io`,ur=typeof K.goproxy==`string`?L(K.goproxy):Gt(),dr=typeof K.dockerapi==`string`?L(K.dockerapi):`https://hub.docker.com`,fr=Kt();function pr(e){let t={};if(Array.isArray(e)){for(let n of e)if(typeof n==`string`){let[e,r]=n.split(`=`,2);e&&r&&je(r)&&(t[e]=r)}}else if(typeof e==`string`){let[n,r]=e.split(`=`,2);n&&r&&je(r)&&(t[n]=r)}return t}function mr(e,t){let n=l(t,e);try{return f(n),n}catch{}let r=c(t);return r===t?null:mr(e,r)}function hr(e){console.error(`${Ge()} ${e}`)}const gr=typeof K.timeout==`string`?Number(K.timeout):0,Y={fetchTimeout:gr||Ze,goProbeTimeout:gr?gr/2:2500,forgeApiUrl:sr,pypiApiUrl:cr,jsrApiUrl:lr,goProxyUrl:ur,dockerApiUrl:dr,doFetch:(e,t)=>$e(e,t,!!K.verbose,hr,$n,q,er),verbose:!!K.verbose};async function _r(e){console.info(K.json?JSON.stringify({message:e}):e),await vr()}async function vr(e,t){if(e){let t=e.stack??e.message,n=e.cause;K.json?console.info(JSON.stringify({error:t,cause:n})):(console.info(er(t)),n&&console.info(er(`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 yr(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`&&!H(n.oldOrig)&&(n.old=t===`go`?_n(n.oldOrig):n.oldOrig),t===`go`&&(n.new=_n(n.new)),t===`actions`&&(n.old=F(n.old),n.new=F(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(K.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(xr(e));return K[`error-on-outdated`]?t?2:0:K[`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 br=e=>ee(e).length;function xr(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`?gn(s):s),n&&l.push(a),l.push(Ie(o.old,o.new,er)),l.push(Ie(o.new,o.old,q)),l.push(o.age||``),l.push(o.info||``),r.push(l)}return Ke(r,br)}function Sr(e,t){return RegExp(`^${I(e).replaceAll(`\\*`,`.*`)}$`,t?`i`:``)}function Cr(e,t,n){return t&&typeof e==`string`?/^\/.+\/$/.test(e)?new RegExp(e.slice(1,-1)):Sr(e,n):e instanceof RegExp?e:Sr(e,n)}function Z(e){if(e instanceof Set){let t=new Set;for(let n of e)t.add(Cr(n,!0,!1));return t}return e}function Q(e,t){let n=new Set;for(let t of e||[])n.add(Cr(t,!0,!0));for(let e of t||[])n.add(Cr(e,!1,!0));return n}function wr(e){return Array.isArray(e)?e.filter(e=>typeof e==`string`).flatMap(e=>Ue(e)):[]}function Tr(e){return rr===!0||P(e,rr)?new Set([`patch`]):ir===!0||P(e,ir)?new Set([`patch`,`minor`]):new Set([`patch`,`minor`,`major`])}function Er(e){return{useGreatest:typeof J==`boolean`?J:P(e,J),usePre:typeof tr==`boolean`?tr:P(e,tr),useRel:typeof nr==`boolean`?nr:P(e,nr),semvers:Tr(e)}}function Dr(t){return t.replace(`${e()}/`,``).replace(`${e()}\\`,``)}function $(e,t,n,r,i){if(i===`engines`&&ze.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 Or(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(Yn)){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(Kn(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 Tn(i))n.add(e),r.add(e)}else throw Error(`${e} is neither a file nor directory`)}else{for(let t of Object.keys(Yn)){let r=mr(t,e());r&&n.add(u(r))}for(let t of Un){let r=mr(t,e());r&&n.add(u(r))}try{for(let t of g(e()))if(Kn(t)&&!Un.includes(t)){let r=l(e(),t);try{m(r).isFile()&&n.add(u(r))}catch{}}}catch{}let t=mr(l(`.github`,`workflows`),e());if(t)for(let e of Tn(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 Ar(){for(let e of[a,i])e?._handle?.setBlocking?.(!0);Ye();let e=typeof K.sockets==`number`?K.sockets:96,{help:t,version:n,file:r,types:o,update:l,include:d,exclude:f,pin:p,cooldown:m}=K;t&&(a.write(`usage: updates [options] [files...]
26
8
 
27
9
  Options:
28
10
  -u, --update Update versions and write dependency file
@@ -42,7 +24,7 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
42
24
  -U, --error-on-unchanged Exit with code 0 when updates are available and 2 when not
43
25
  -r, --registry <url> Override npm registry URL
44
26
  -S, --sockets <num> Maximum number of parallel HTTP sockets opened. Default: 96
45
- -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${mt}
27
+ -T, --timeout <ms> Network request timeout in ms (go probes use half). Default: ${Ze}
46
28
  -M, --modes <mode,...> Which modes to enable. Default: npm,pypi,go,actions,docker
47
29
  -j, --json Output a JSON object
48
30
  -n, --no-color Disable color output
@@ -62,4 +44,4 @@ import{cwd as e,env as t,exit as n,platform as r,stderr as i,stdout as a,version
62
44
  $ updates -f .github
63
45
  $ updates -f Dockerfile
64
46
  $ 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{};
47
+ `),await vr()),n&&(console.info(Xe),await vr());let g={},_={},v={},y={},b=Date.now(),x=0,ee=U(r),te=ee instanceof Set?ee:Qn.length?new Set:!1;if(te instanceof Set)for(let e of Qn)te.add(e);let[ne,S]=Or(te),ie={},C={},w=wr(d),T=wr(f),oe=pr(p),se=[],E=[],ce={};function D(e,t,n){g.docker||={};let r=Q(w,[]),i=Q(T,[]);for(let a of n)for(let{ref:n}of Fn(e,a)){if(!$(n.fullImage,`docker`,r,i,`docker`))continue;let e=`${t}${n.fullImage}`;if(g.docker[e])continue;let a=Nn(n.tag);a&&(g.docker[e]={old:a.version,oldOrig:n.tag},E.push({key:e,fullImage:n.fullImage,ref:n}))}}for(let e of ne){if(wn(e)){let t=or.has(`actions`)||S.has(e),n=or.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=Dr(e);if(ie[i]={absPath:e,content:r},t){g.actions||={};let e=Q(w,[]),t=Q(T,[]),n=Array.from(r.matchAll(vn),e=>yn(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},se.push({...r,key:n,apiUrl:bn(r.host,sr)}))}}n&&(C[i]={absPath:e,content:r,fileType:`workflow`},D(r,i,[On,kn,An]));continue}let t=s(e);if(Kn(t)){if(!or.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=Dr(e),i=Gn(t)?`dockerfile`:`compose`;C[r]={absPath:e,content:n,fileType:i},D(n,r,[qn(t)]);continue}let n=Yn[t];if(!or.has(n)&&!S.has(e))continue;y[n]=e,g[n]||(g[n]={});let r=c(u(e)),i=await kr(r),a=Q(w,i?.include??[]),l=Q(T,i?.exclude??[]),d={...i?.pin,...oe},f=[];Array.isArray(o)?f=o.filter(e=>typeof e==`string`):`types`in i&&Array.isArray(i.types)?f=i.types:n===`npm`?f=Re:n===`pypi`?f=Array.from(Be):n===`go`&&(f=Array.from(Ve));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=ae(v[n]);else{let e=ln(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]||{}:He(p,e)||{},Array.isArray(t)&&n===`pypi`)for(let{name:r,version:i}of Le(t))$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:Rt(i),oldOrig:i});else if(typeof t==`string`){let[r,i]=t.split(`@`);$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:Rt(i),oldOrig:i})}else for(let[r,i]of Object.entries(t))if(n===`npm`&&H(i)&&$(r,n,a,l,e)){let t=Pt(i,r);g[n][`${e}${r}`]={old:t.version,oldOrig:i}}else n!==`go`&&je(i)&&$(r,n,a,l,e)?g[n][`${e}${r}`]={old:Rt(i),oldOrig:i}:n===`npm`&&Nt(i)&&$(r,n,a,l,e)?g[n][`${e}${r}`]={old:`0.0.0`,oldOrig:i}:n===`npm`&&!H(i)&&$(r,n,a,l,e)?_[`${e}${r}`]={old:i}:n===`go`&&$(r,n,a,l,e)&&(g[n][`${e}${r}`]={old:_n(i),oldOrig:F(i)})}x+=Object.keys(g[n]).length+Object.keys(_).length,ce[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 _r(`No dependencies found, nothing to do.`);let le=[];for(let t of Object.keys(ce)){if(!g[t]||!Object.keys(g[t]).length&&!Object.keys(_).length)continue;let{config:n,projectDir:r,pin:i}=ce[t];le.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&&H(r))return Ft(a,i,Y);if(r&&Nt(r))try{return await Mt(a,i,n,K,Y)}catch{return delete g[t][e],null}return Mt(a,i,n,K,Y)}else if(t===`go`)return dn(a,i,g[t][e].oldOrig||g[t][e].old,r,Y,fr);else return Ht(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}=Er(e.name),u=`${n}${o}`,d=g[t][u].old,f=g[t][u].oldOrig,p=i[o],m=rt(e,{usePre:s,useRel:c,useGreatest:a,semvers:l,range:d,mode:t,pinnedRange:p},{allowDowngrade:ar,matchesAny:P,isGoPseudoVersion:Zt}),h=``;if([`go`,`pypi`].includes(t)&&m)h=m;else if(m)if(f&&Nt(f))h=String(Dt()[`save-exact`])===`true`?m:`^${m}`;else if(f&&H(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=Lt(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&&H(f)&&(g[t][u].newPrint=m),t===`npm`)g[t][u].info=ht(e?.versions?.[m],r,e.name);else if(t===`pypi`)g[t][u].info=ht(e,r,e.info.name);else if(t===`go`){let n=e.newPath||o;g[t][u].info=hn(n)}_&&(g[t][u].date=_,g[t][u].age=N(_,{noAffix:!0}))}if(Object.keys(_).length){let n=(await re(Object.entries(_),([e,t])=>{let n=e.split(`\0`)[1];return Vt(e,t,typeof J==`boolean`?J:P(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:lt.test(o)?o.substring(0,7):o,newPrint:lt.test(s)?s.substring(0,7):s,info:`https://github.com/${i}/${a}`,...c?{age:N(c,{noAffix:!0})}:{}}}}let o=m??n.cooldown;if(o)for(let[e,{date:n}]of Object.entries(g[t]))We(n,Je(String(o)),b)||delete g[t][e]})())}se.length&&le.push((async()=>{let t=new Map;for(let e of se){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 dt(e,t,n,Y),a=i.map(e=>e.name),o=a.map(e=>F(e)).filter(e=>A(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 xn(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}=Er(e.name),u=nt({},o,{range:`0.0.0`,semvers:new Set([`patch`,`minor`,`major`]),usePre:t,useRel:n,useGreatest:!0,pinnedRange:oe[e.name]});if(!u){delete g.actions[e.key];continue}let d=a.find(e=>F(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=N(m,{noAffix:!0}))}else{let t=z(F(e.ref));if(!t){delete g.actions[e.key];continue}let{useGreatest:n,usePre:s,useRel:u,semvers:d}=Er(e.name),f=nt({},o,{range:t,semvers:d,usePre:s,useRel:u,useGreatest:n||!0,pinnedRange:oe[e.name]});if(!f||f===t){delete g.actions[e.key];continue}let p=a.find(e=>F(e)===f);if(!p){delete g.actions[e.key];continue}let m=Sn(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=N(e,{noAffix:!0}))}}}},{concurrency:e}),m)for(let[e,{date:t}]of Object.entries(g.actions))We(t,Je(String(m)),b)||delete g.actions[e];Object.keys(g.actions).length||delete g.actions})()),E.length&&le.push((async()=>{let t=new Map;for(let e of E)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 Ln(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}=Er(e.fullImage),a=Rn(n.tags,r,i);if(!a){delete g.docker[e.key];continue}t.new=a.newTag,t.info=Jn(e.ref),a.date&&(t.date=a.date,t.age=N(a.date,{noAffix:!0}))}},{concurrency:e}),m)for(let[e,{date:t}]of Object.entries(g.docker))We(t,Je(String(m)),b)||delete g.docker[e];Object.keys(g.docker).length||delete g.docker})()),await Promise.all(le);let ue=0;for(let e of Object.keys(g))ue+=Object.keys(g[e]).length;if(!ue)return _r(`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 de=new Map;if(g.docker)for(let[e,t]of Object.entries(g.docker)){let[n]=e.split(`\0`);de.has(n)||de.set(n,{}),de.get(n)[e]=t}let fe=yr(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,Cn(r,t))}catch(e){throw Error(`Error writing ${s(n)}: ${e.message}`)}console.info(q(`✨ ${e} updated`))}}continue}if(e===`docker`){for(let[e,t]of de){let n=C[e];if(!n)continue;let{absPath:r,fileType:i}=n,a;try{a=h(r,`utf8`)}catch{continue}try{X(r,(i===`dockerfile`?Bn:i===`compose`?Vn:Hn)(a,t))}catch(e){throw Error(`Error writing ${s(r)}: ${e.message}`)}console.info(q(`✨ ${e} updated`))}continue}try{let t=v[e];if(e===`go`){let[n,r]=pn(t,g[e]);X(y[e],n),mn(c(u(y[e])),r,X)}else{let n=e===`npm`?It:Ut;X(y[e],n(t,g[e]))}}catch(t){throw Error(`Error writing ${s(y[e])}: ${t.message}`)}console.info(q(`✨ ${s(y[e])} updated`))}}await vr(void 0,fe)}try{await Ar()}catch(e){await vr(e)}export{};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "updates",
3
- "version": "17.8.0",
3
+ "version": "17.8.1",
4
4
  "description": "Dependency update tool for npm, uv, golang and actions",
5
5
  "author": "silverwind",
6
6
  "repository": "silverwind/updates",
@@ -21,7 +21,6 @@
21
21
  "eslint": "9.39.3",
22
22
  "eslint-config-silverwind": "121.1.3",
23
23
  "p-map": "7.0.4",
24
- "smol-toml": "1.6.0",
25
24
  "timerel": "5.8.6",
26
25
  "tsdown": "0.20.3",
27
26
  "tsdown-config-silverwind": "1.7.5",