versions-le-mcp 1.0.0 → 1.0.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.
Files changed (3) hide show
  1. package/README.md +4 -5
  2. package/package.json +1 -2
  3. package/server.js +1 -1
package/README.md CHANGED
@@ -4,8 +4,8 @@
4
4
  <a href="https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.versions-le">
5
5
  <img src="https://img.shields.io/badge/Install%20from-VS%20Code-blue?style=for-the-badge&logo=visualstudiocode" alt="Install from VS Code Marketplace" />
6
6
  </a>
7
- <a href="https://open-vsx.org/extension/OffensiveEdge/versions-le">
8
- <img src="https://img.shields.io/open-vsx/dt/OffensiveEdge/versions-le?style=for-the-badge&label=Open%20VSX&color=blue" alt="Open VSX downloads" />
7
+ <a href="https://open-vsx.org/extension/nolindnaidoo/versions-le">
8
+ <img src="https://img.shields.io/open-vsx/dt/nolindnaidoo/versions-le?style=for-the-badge&label=Open%20VSX&color=blue" alt="Open VSX downloads" />
9
9
  </a>
10
10
  <a href="https://www.npmjs.com/package/versions-le-mcp">
11
11
  <img src="https://img.shields.io/npm/v/versions-le-mcp?style=for-the-badge&label=MCP%20server&color=blue&logo=npm" alt="versions-le-mcp on npm" />
@@ -58,11 +58,10 @@ claude mcp add versions-le -- npx -y versions-le-mcp
58
58
  }
59
59
  ```
60
60
 
61
- **VS Code and Zed** need nothing here. Install the extension instead — it
61
+ **VS Code** needs nothing here. Install the extension instead — it
62
62
  carries this server and registers it for you:
63
63
  [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=nolindnaidoo.versions-le)
64
- · [Open VSX](https://open-vsx.org/extension/OffensiveEdge/versions-le)
65
- · [Zed](https://zed.dev/docs/ai/mcp) *(no listing yet — add it by hand)*
64
+ · [Open VSX](https://open-vsx.org/extension/nolindnaidoo/versions-le)
66
65
 
67
66
  **No Node?** The same `compare_versions` tool ships in a static Rust binary:
68
67
  `cargo install versions-le`, then `versions-le mcp`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "versions-le-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "mcpName": "io.github.nolindnaidoo/versions-le",
5
5
  "description": "Find where one dependency is constrained differently across a repository's manifests.",
6
6
  "keywords": [
@@ -11,7 +11,6 @@
11
11
  "ai-agent",
12
12
  "claude",
13
13
  "cursor",
14
- "zed",
15
14
  "vscode",
16
15
  "llm-tools",
17
16
  "versions-le",
package/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var Ve="versions-le",Ie="1.0.0";var An=0xffffffffffffffffn,X=class extends Error{},g=()=>{throw new X};function C(n){let e=0,t=0n;for(;e<n.length&&n.charAt(e)>="0"&&n.charAt(e)<="9";)t===0n&&e>0&&g(),t=t*10n+BigInt(n.charCodeAt(e)-48),t>An&&g(),e++;return e===0&&g(),[t,n.slice(e)]}function De(n){return n.startsWith(".")||g(),n.slice(1)}function re(n){return n.startsWith("*")||n.startsWith("x")||n.startsWith("X")?n.slice(1):void 0}function I(n,e){let t=0,r=0,i=!1;for(;;){let s=n.charAt(t+r);if(/^[A-Za-z-]$/.test(s))r++,i=!0;else if(/^[0-9]$/.test(s))r++;else{let o=s;if(r===0){if(t===0&&o!==".")return["",n];g()}if(e&&r>1&&!i&&n.slice(t).startsWith("0")&&g(),t+=r,o===".")t++,r=0,i=!1;else return[n.slice(0,t),n.slice(t)]}}}function se(n){try{return n()}catch(e){if(e instanceof X)return;throw e}}function Fe(n){return se(()=>{n===""&&g();let[e,t]=C(n);t=De(t);let[r,i]=C(t);t=De(i);let[s,o]=C(t);if(t=o,t==="")return{major:e,minor:r,patch:s,pre:"",build:""};let a="";t.startsWith("-")&&([a,t]=I(t.slice(1),!0),a===""&&g());let c="";return t.startsWith("+")&&([c,t]=I(t.slice(1),!1),c===""&&g()),t!==""&&g(),{major:e,minor:r,patch:s,pre:a,build:c}})}function oe(n){return se(()=>{let[e,t]=I(n,!0);return t!==""&&g(),e})}function Cn(n){return n.startsWith("=")?["exact",n.slice(1)]:n.startsWith(">=")?["greaterEq",n.slice(2)]:n.startsWith(">")?["greater",n.slice(1)]:n.startsWith("<=")?["lessEq",n.slice(2)]:n.startsWith("<")?["less",n.slice(1)]:n.startsWith("~")?["tilde",n.slice(1)]:n.startsWith("^")?["caret",n.slice(1)]:["caret",n]}var V=n=>n.replace(/^ +/,"");function Mn(n){let[e,t]=Cn(n),r=n.length===t.length;t=V(t);let[i,s]=C(t);t=s;let o=!1,a,c;if(t.startsWith(".")){t=t.slice(1);let f=re(t);f!==void 0?(o=!0,r&&(e="wildcard"),t=f):[a,t]=C(t)}if(t.startsWith(".")){t=t.slice(1);let f=re(t);f!==void 0?(r&&(e="wildcard"),t=f):o?g():[c,t]=C(t)}let d="";if(c!==void 0&&t.startsWith("-")&&([d,t]=I(t.slice(1),!0),d===""&&g()),c!==void 0&&t.startsWith("+")){let f;[f,t]=I(t.slice(1),!1),f===""&&g()}return[{op:e,major:i,minor:a,patch:c,pre:d},V(t)]}var Pn=32;function qe(n){return se(()=>{let e=V(n),t=re(e);if(t!==void 0){if(V(t)==="")return[];g()}let r=[],i=e;for(;;){let[s,o]=Mn(i);if(r.push(s),o==="")return r;o.startsWith(",")||g(),r.length===Pn&&g(),i=V(o.slice(1))}})}var J=n=>/^[0-9]*$/.test(n);function h(n,e){let t=Array.from(n),r=Array.from(e);for(let i=0;i<Math.min(t.length,r.length);i++){let s=t[i].codePointAt(0),o=r[i].codePointAt(0);if(s!==o)return s<o?-1:1}return t.length===r.length?0:t.length<r.length?-1:1}var Wn=n=>n<0?-1:n>0?1:0,ie=(n,e)=>Wn(n-e),te=(n,e)=>n<e?-1:n>e?1:0;function Vn(n,e){if(n===e)return 0;if(n==="")return 1;if(e==="")return-1;let t=n.split("."),r=e.split(".");for(let i=0;i<t.length;i++){let s=t[i],o=r[i];if(o===void 0)return 1;let[a,c]=[J(s),J(o)],d;if(a&&c)d=ie(s.length,o.length)||h(s,o);else{if(a)return-1;if(c)return 1;d=h(s,o)}if(d!==0)return d}return r.length>t.length?-1:0}function In(n,e){if(n===e)return 0;let t=n.split("."),r=e.split(".");for(let i=0;i<t.length;i++){let s=t[i],o=r[i];if(o===void 0)return 1;let[a,c]=[J(s),J(o)],d;if(a&&c){let[f,m]=[s.replace(/^0+/,""),o.replace(/^0+/,"")];d=ie(f.length,m.length)||h(f,m)||ie(s.length,o.length)}else{if(a)return-1;if(c)return 1;d=h(s,o)}if(d!==0)return d}return r.length>t.length?-1:0}function E(n,e){return te(n.major,e.major)||te(n.minor,e.minor)||te(n.patch,e.patch)||Vn(n.pre,e.pre)||In(n.build,e.build)}var Le=(n,e)=>E(n,e)===0;function ae(n){let e=`${n.major}.${n.minor}.${n.patch}`;return n.pre!==""&&(e+=`-${n.pre}`),n.build!==""&&(e+=`+${n.build}`),e}var Z="\\t\\n\\v\\f\\r \\u0085\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000",Dn=new RegExp(`^[${Z}]+`),Fn=new RegExp(`[${Z}]+$`),qn=new RegExp(`^[${Z}]$`,"u"),Be=n=>qn.test(n),Ln=n=>n.replace(Dn,""),Bn=n=>n.replace(Fn,""),p=n=>Bn(Ln(n)),rr=new TextEncoder;var Un=new RegExp(`[${Z}]+`),Ue=n=>n.split(Un).filter(e=>e!=="");function ce(n){if(n==="")return[];let e=n.split(`
2
+ "use strict";var Ve="versions-le",Ie="1.0.1";var An=0xffffffffffffffffn,X=class extends Error{},g=()=>{throw new X};function C(n){let e=0,t=0n;for(;e<n.length&&n.charAt(e)>="0"&&n.charAt(e)<="9";)t===0n&&e>0&&g(),t=t*10n+BigInt(n.charCodeAt(e)-48),t>An&&g(),e++;return e===0&&g(),[t,n.slice(e)]}function De(n){return n.startsWith(".")||g(),n.slice(1)}function re(n){return n.startsWith("*")||n.startsWith("x")||n.startsWith("X")?n.slice(1):void 0}function I(n,e){let t=0,r=0,i=!1;for(;;){let s=n.charAt(t+r);if(/^[A-Za-z-]$/.test(s))r++,i=!0;else if(/^[0-9]$/.test(s))r++;else{let o=s;if(r===0){if(t===0&&o!==".")return["",n];g()}if(e&&r>1&&!i&&n.slice(t).startsWith("0")&&g(),t+=r,o===".")t++,r=0,i=!1;else return[n.slice(0,t),n.slice(t)]}}}function se(n){try{return n()}catch(e){if(e instanceof X)return;throw e}}function Fe(n){return se(()=>{n===""&&g();let[e,t]=C(n);t=De(t);let[r,i]=C(t);t=De(i);let[s,o]=C(t);if(t=o,t==="")return{major:e,minor:r,patch:s,pre:"",build:""};let a="";t.startsWith("-")&&([a,t]=I(t.slice(1),!0),a===""&&g());let c="";return t.startsWith("+")&&([c,t]=I(t.slice(1),!1),c===""&&g()),t!==""&&g(),{major:e,minor:r,patch:s,pre:a,build:c}})}function oe(n){return se(()=>{let[e,t]=I(n,!0);return t!==""&&g(),e})}function Cn(n){return n.startsWith("=")?["exact",n.slice(1)]:n.startsWith(">=")?["greaterEq",n.slice(2)]:n.startsWith(">")?["greater",n.slice(1)]:n.startsWith("<=")?["lessEq",n.slice(2)]:n.startsWith("<")?["less",n.slice(1)]:n.startsWith("~")?["tilde",n.slice(1)]:n.startsWith("^")?["caret",n.slice(1)]:["caret",n]}var V=n=>n.replace(/^ +/,"");function Mn(n){let[e,t]=Cn(n),r=n.length===t.length;t=V(t);let[i,s]=C(t);t=s;let o=!1,a,c;if(t.startsWith(".")){t=t.slice(1);let f=re(t);f!==void 0?(o=!0,r&&(e="wildcard"),t=f):[a,t]=C(t)}if(t.startsWith(".")){t=t.slice(1);let f=re(t);f!==void 0?(r&&(e="wildcard"),t=f):o?g():[c,t]=C(t)}let d="";if(c!==void 0&&t.startsWith("-")&&([d,t]=I(t.slice(1),!0),d===""&&g()),c!==void 0&&t.startsWith("+")){let f;[f,t]=I(t.slice(1),!1),f===""&&g()}return[{op:e,major:i,minor:a,patch:c,pre:d},V(t)]}var Pn=32;function qe(n){return se(()=>{let e=V(n),t=re(e);if(t!==void 0){if(V(t)==="")return[];g()}let r=[],i=e;for(;;){let[s,o]=Mn(i);if(r.push(s),o==="")return r;o.startsWith(",")||g(),r.length===Pn&&g(),i=V(o.slice(1))}})}var J=n=>/^[0-9]*$/.test(n);function h(n,e){let t=Array.from(n),r=Array.from(e);for(let i=0;i<Math.min(t.length,r.length);i++){let s=t[i].codePointAt(0),o=r[i].codePointAt(0);if(s!==o)return s<o?-1:1}return t.length===r.length?0:t.length<r.length?-1:1}var Wn=n=>n<0?-1:n>0?1:0,ie=(n,e)=>Wn(n-e),te=(n,e)=>n<e?-1:n>e?1:0;function Vn(n,e){if(n===e)return 0;if(n==="")return 1;if(e==="")return-1;let t=n.split("."),r=e.split(".");for(let i=0;i<t.length;i++){let s=t[i],o=r[i];if(o===void 0)return 1;let[a,c]=[J(s),J(o)],d;if(a&&c)d=ie(s.length,o.length)||h(s,o);else{if(a)return-1;if(c)return 1;d=h(s,o)}if(d!==0)return d}return r.length>t.length?-1:0}function In(n,e){if(n===e)return 0;let t=n.split("."),r=e.split(".");for(let i=0;i<t.length;i++){let s=t[i],o=r[i];if(o===void 0)return 1;let[a,c]=[J(s),J(o)],d;if(a&&c){let[f,m]=[s.replace(/^0+/,""),o.replace(/^0+/,"")];d=ie(f.length,m.length)||h(f,m)||ie(s.length,o.length)}else{if(a)return-1;if(c)return 1;d=h(s,o)}if(d!==0)return d}return r.length>t.length?-1:0}function E(n,e){return te(n.major,e.major)||te(n.minor,e.minor)||te(n.patch,e.patch)||Vn(n.pre,e.pre)||In(n.build,e.build)}var Le=(n,e)=>E(n,e)===0;function ae(n){let e=`${n.major}.${n.minor}.${n.patch}`;return n.pre!==""&&(e+=`-${n.pre}`),n.build!==""&&(e+=`+${n.build}`),e}var Z="\\t\\n\\v\\f\\r \\u0085\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000",Dn=new RegExp(`^[${Z}]+`),Fn=new RegExp(`[${Z}]+$`),qn=new RegExp(`^[${Z}]$`,"u"),Be=n=>qn.test(n),Ln=n=>n.replace(Dn,""),Bn=n=>n.replace(Fn,""),p=n=>Bn(Ln(n)),rr=new TextEncoder;var Un=new RegExp(`[${Z}]+`),Ue=n=>n.split(Un).filter(e=>e!=="");function ce(n){if(n==="")return[];let e=n.split(`
3
3
  `);return e.at(-1)===""&&e.pop(),e.map(t=>t.endsWith("\r")?t.slice(0,-1):t)}var R=n=>({kind:"range",range:{intervals:n}}),w=n=>({kind:"unknown",reason:n}),v=n=>({kind:"malformed",reason:n}),j={lower:void 0,upper:void 0},S=n=>n.kind==="range"?n.range:void 0,le=n=>n.kind==="malformed"?n.reason:void 0;function fe(n){if(n.intervals.some(t=>t.lower===void 0))return;let e;for(let t of n.intervals){let r=t.lower.version;(e===void 0||E(r,e)<0)&&(e=r)}return e}function Xe(n){return n.intervals.some(e=>[e.lower,e.upper].some(t=>t!==void 0&&t.version.pre!==""))}var ze=(n,e)=>n===void 0||e===void 0?n===e:n.inclusive===e.inclusive&&Le(n.version,e.version);function Je(n,e){return n.intervals.length===e.intervals.length&&n.intervals.every((t,r)=>{let i=e.intervals[r];return ze(t.lower,i.lower)&&ze(t.upper,i.upper)})}function Ze(n,e){return!n.intervals.some(t=>e.intervals.some(r=>H(t,r)!==void 0))}function H(n,e){let t=zn(n.lower,e.lower),r=Kn(n.upper,e.upper),i=!0;if(t!==void 0&&r!==void 0){let s=E(t.version,r.version);i=s<0||s===0&&t.inclusive&&r.inclusive}return i?{lower:t,upper:r}:void 0}function zn(n,e){if(n===void 0||e===void 0)return n??e;let t=E(n.version,e.version);return t>0?n:t<0?e:{version:n.version,inclusive:n.inclusive&&e.inclusive}}function Kn(n,e){if(n===void 0||e===void 0)return n??e;let t=E(n.version,e.version);return t<0?n:t>0?e:{version:n.version,inclusive:n.inclusive&&e.inclusive}}function pe(n){let e=p(n);if(e==="")return v("an empty version requirement");let t=qe(e);if(t===void 0)return v("not a Cargo version requirement");if(t.length===0)return R([j]);let r=j;for(let i of t){let s=H(r,Xn(i));if(s===void 0)return v("a requirement no version can satisfy");r=s}return R([r])}function Xn(n){let e={major:n.major,minor:n.minor,patch:n.patch,pre:n.pre};switch(n.op){case"exact":case"wildcard":return Ee(e);case"greater":return Ye(e);case"greaterEq":return q(e);case"less":return we(e);case"lessEq":return ke(e);case"tilde":return Qe(e);case"caret":return en(e)}}function me(n){let e=M(p(n));return e===void 0?v("not a version"):e.major===void 0?w("a wildcard minimum version"):R([q(e)])}function D(n){let e=p(n);if(e==="")return R([j]);let t=Qn(e);if(t!==void 0)return w(t);let r=[];for(let i of e.split("||")){let s=Jn(p(i));if("kind"in s)return s;s.interval!==void 0&&r.push(s.interval)}return r.length===0?v("a range no version can satisfy"):R(r)}function Jn(n){let e=Hn(n);if(e.length===0)return{interval:j};if(e.length===3&&e[1]==="-"){let r=M(e[0]),i=M(e[2]);return r===void 0||i===void 0?v("not a version range"):{interval:{lower:q(r).lower,upper:ke(i).upper}}}let t=j;for(let r of e){let i=Gn(r);if("kind"in i)return i;let s=H(t,i);if(s===void 0)return{interval:void 0};t=s}return{interval:t}}var Zn=Object.freeze([">=","<=",">","<","=","~"]);function Hn(n){let e=[],t;for(let r of Ue(n)){if(t!==void 0){e.push(`${t}${r}`),t=void 0;continue}if(Zn.includes(r)||r==="^"){t=r;continue}e.push(r)}return t!==void 0&&e.push(t),e}function Gn(n){let[e,t]=Ge(n);if(e!==""&&p(t)==="")return v("an operator with no version");let r=M(t);if(r===void 0)return Yn(n);if(r.major===void 0)return j;switch(e){case"^":return en(r);case"~":return Qe(r);case">=":return q(r);case">":return Ye(r);case"<=":return ke(r);case"<":return we(r);default:return Ee(r)}}function Yn(n){return/^[A-Za-z][A-Za-z0-9-]*$/.test(n)?w("a dist tag is a moving target, not a version range"):v("not an npm version range")}function Qn(n){if(n.includes("://")||n.startsWith("git@"))return"a URL or git specifier resolves outside the registry";if(n.includes(":"))return"a protocol specifier resolves outside the registry";if(n.includes("/")||n.startsWith("."))return"a path or repository shorthand resolves outside the registry"}function he(n){let e=p(n);if(e==="")return R([j]);let t=j;for(let r of e.split(",")){let i=p(r);if(i==="")return v("an empty version clause");let s=et(i);if("kind"in s)return s;let o=H(t,s);if(o===void 0)return v("a specifier no version can satisfy");t=o}return R([t])}function et(n){for(let[s,o]of[["~=","PEP 440 compatible-release (~=)"],["!=","PEP 440 version exclusion (!=)"],["===","PEP 440 arbitrary equality (===)"]])if(n.startsWith(s))return w(o);let[e,t]=Ge(n),r=p(t);if(r.includes("*"))return w("a PEP 440 wildcard release clause");let i=tt(r);if(i===void 0)return nt(r);switch(e){case">=":return q(i);case">":return ot(i);case"<=":return at(i);case"<":return we(i);case"==":return st(i);default:return w("a PEP 440 clause with no operator")}}function nt(n){for(let e of["!","+","post","dev","*"])if(n.includes(e))return w("a PEP 440 version form this tool does not model");return v("not a PEP 440 version")}function tt(n){let e=rt(n);if(e===void 0)return;let t=M(e[0]);if(t!==void 0)return{...t,pre:e[1]}}function rt(n){let e=n.search(/[A-Za-z]/);if(e===-1)return[n,""];let t=n.slice(0,e),r=n.slice(e),i=r.search(/[0-9]/),s=i===-1?0:i,o=r.slice(0,s),a=r.slice(s);if(!["a","b","rc"].includes(o)||a==="")return;let c=oe(`${o}.${a}`);if(c!==void 0)return[t.replace(/\.+$/,""),c]}function He(n){let e=Fe(p(n).replace(/^v+/,""));return e===void 0?v("not a go module version"):R([be(e)])}function ge(n){let e=p(n);if(ye(e))return w("a commit SHA is a pin, but not a version");let t=M(e);return t===void 0?w("a branch or tag name is a moving reference, not a version"):t.major===void 0?w("a wildcard action reference"):R([Ee(t)])}function ye(n){return/^[0-9A-Fa-f]*$/.test(n)&&(n.length===40||n.length>=7&&/[A-Fa-f]/.test(n))}var F=Object.freeze(["latest","stable","nightly","beta","current","node","lts"]);function xe(n){let e=p(n);return F.includes(e)||e.startsWith("lts/")?w("a channel name is a moving target, not a version"):D(e)}var de=0xffffffffffffffffn,Ke=n=>n==="*"||n==="x"||n==="X";function it(n){if(!/^\+?[0-9]+$/.test(n))return;let e=BigInt(n.replace(/^\+/,""));return e>de?void 0:e}function M(n){let e=p(n);if((e.startsWith("v")||e.startsWith("V"))&&(e=e.slice(1)),e===""||Ke(e))return{major:void 0,minor:void 0,patch:void 0,pre:""};e=e.split("+")[0];let t=e,r="",i=e.indexOf("-");if(i!==-1){t=e.slice(0,i);let d=oe(e.slice(i+1));if(d===void 0)return;r=d}let s=[void 0,void 0,void 0],o=t.split("."),a=0;for(;a<3;a++){let d=o[a];if(d===void 0||Ke(d)){d!==void 0&&a++;break}let f=it(d);if(f===void 0)return;s[a]=f}let c=o[a];if(!(c!==void 0&&c!=="")&&s[0]!==void 0)return{major:s[0],minor:s[1],patch:s[2],pre:r}}function Ge(n){for(let e of[">=","<=","==","^","~",">","<","="])if(n.startsWith(e))return[e,n.slice(e.length)];return["",n]}var T=n=>n+1n>de?de:n+1n,N=(n,e,t,r)=>({major:n,minor:e,patch:t,pre:r,build:""}),b=n=>N(n.major??0n,n.minor??0n,n.patch??0n,n.pre);function ve(n){if(n.major!==void 0){if(n.minor===void 0)return N(T(n.major),0n,0n,"");if(n.patch===void 0)return N(n.major,T(n.minor),0n,"")}}var be=n=>({lower:{version:n,inclusive:!0},upper:{version:n,inclusive:!0}}),q=n=>({lower:{version:b(n),inclusive:!0},upper:void 0});function Ye(n){let e=ve(n);return e!==void 0?{lower:{version:e,inclusive:!0},upper:void 0}:{lower:{version:b(n),inclusive:!1},upper:void 0}}var we=n=>({lower:void 0,upper:{version:b(n),inclusive:!1}});function ke(n){let e=ve(n);return e!==void 0?{lower:void 0,upper:{version:e,inclusive:!1}}:{lower:void 0,upper:{version:b(n),inclusive:!0}}}function Ee(n){let e=ve(n);return e!==void 0?{lower:{version:b(n),inclusive:!0},upper:{version:e,inclusive:!1}}:be(b(n))}var st=n=>be(b(n)),ot=n=>({lower:{version:b(n),inclusive:!1},upper:void 0}),at=n=>({lower:void 0,upper:{version:b(n),inclusive:!0}});function Qe(n){let e=n.major??0n,t=n.minor!==void 0?N(e,T(n.minor),0n,""):N(T(e),0n,0n,"");return ue(b(n),t)}function en(n){let e=n.major??0n;if(e>0n)return ue(b(n),N(T(e),0n,0n,""));let t;return n.minor===0n&&n.patch!==void 0?t=N(0n,0n,T(n.patch),""):n.minor!==void 0?t=N(0n,T(n.minor),0n,""):t=N(1n,0n,0n,""),ue(b(n),t)}var ue=(n,e)=>({lower:{version:n,inclusive:!0},upper:{version:e,inclusive:!1}});var Ne=Object.freeze(["cargo","ci","go","npm","python"]),L=n=>Ne.indexOf(n),nn=Object.freeze({"package-json":"npm","cargo-toml":"cargo","pyproject-toml":"python","go-mod":"go",workflow:"ci"});function dt(n){return n.split(/[/\\]/).at(-1)}function tn(n){let e=n.replace(/\\/g,"/");if((e.startsWith(".github/workflows/")||e.includes("/.github/workflows/"))&&(e.endsWith(".yml")||e.endsWith(".yaml")))return"workflow";switch(dt(e)){case"package.json":return"package-json";case"Cargo.toml":return"cargo-toml";case"pyproject.toml":return"pyproject-toml";case"go.mod":return"go-mod";default:return}}function rn(n){let e=p(n);return e===""||e.includes("${{")||e.includes(",")||e.startsWith("[")?!1:e.startsWith("v")||e.startsWith("V")?/^[0-9]/.test(e.slice(1)):/^[0-9^~><=*]/.test(e)?!0:F.includes(e)||e.startsWith("lts/")}function sn(n){let e=n.startsWith("/"),t=n.split("/").filter((r,i)=>r!==""&&(r!=="."||i===0));return(e?"/":"")+t.join("/")}var P=Object.freeze({kind:"other"}),B=class extends Error{},l=Object.freeze({eofList:"EOF while parsing a list",eofObject:"EOF while parsing an object",eofString:"EOF while parsing a string",eofValue:"EOF while parsing a value",colon:"expected `:`",listCommaOrEnd:"expected `,` or `]`",objectCommaOrEnd:"expected `,` or `}`",ident:"expected ident",value:"expected value",escape:"invalid escape",number:"invalid number",range:"number out of range",control:"control character (\\u0000-\\u001F) found while parsing a string",key:"key must be a string",loneSurrogate:"lone leading surrogate in hex escape",hexEnd:"unexpected end of hex escape",trailingComma:"trailing comma",trailingCharacters:"trailing characters",recursion:"recursion limit exceeded"}),Re=0xffffffffffffffffn,G=2147483647,ut=Array.from({length:309},(n,e)=>+`1e${e}`),on=new TextDecoder("utf-8",{ignoreBOM:!0});function dn(n){let e=new Se(new TextEncoder().encode(n));try{let t=e.value();return e.end(),t}catch(t){throw t instanceof B?new Error(t.message):t}}var Se=class{constructor(e){this.bytes=e}bytes;index=0;remainingDepth=128;at(e){let t=0,r=1;for(let i=0;i<e;i++)this.bytes[i]===10&&(r++,t=i+1);return`at line ${r} column ${e-t}`}error(e){return new B(`${e} ${this.at(this.index)}`)}peekError(e){return new B(`${e} ${this.at(Math.min(this.bytes.length,this.index+1))}`)}peek(){return this.bytes[this.index]}peekOrNull(){return this.bytes[this.index]??0}next(){if(!(this.index>=this.bytes.length))return this.bytes[this.index++]}whitespace(){for(;;){let e=this.peek();if(e!==32&&e!==10&&e!==9&&e!==13)return e;this.index++}}end(){if(this.whitespace()!==void 0)throw this.peekError(l.trailingCharacters)}value(){let e=this.whitespace();if(e===void 0)throw this.peekError(l.eofValue);switch(e){case 110:return this.index++,this.ident("ull"),P;case 116:return this.index++,this.ident("rue"),P;case 102:return this.index++,this.ident("alse"),P;case 45:return this.index++,this.integer(),P;case 34:return this.index++,{kind:"text",text:this.string()};case 91:return this.descend(),this.index++,this.sequence(),this.remainingDepth++,this.endSequence(),P;case 123:{this.descend(),this.index++;let t=this.map();return this.remainingDepth++,this.endMap(),{kind:"object",entries:lt(t)}}default:if(e>=48&&e<=57)return this.integer(),P;throw this.peekError(l.value)}}descend(){if(this.remainingDepth--,this.remainingDepth===0)throw this.peekError(l.recursion)}ident(e){for(let t of e){let r=this.next();if(r===void 0)throw this.error(l.eofValue);if(r!==t.charCodeAt(0))throw this.error(l.ident)}}map(){let e=[],t=!0;for(;;){let r=this.whitespace();if(r===void 0)throw this.peekError(l.eofObject);if(r===125)return e;if(t){if(t=!1,r!==34)throw this.peekError(l.key)}else if(r===44){this.index++;let s=this.whitespace();if(s===125)throw this.peekError(l.trailingComma);if(s===void 0)throw this.peekError(l.eofValue);if(s!==34)throw this.peekError(l.key)}else throw this.peekError(l.objectCommaOrEnd);this.index++;let i=this.string();this.colon(),e.push([i,this.value()])}}colon(){let e=this.whitespace();if(e===58){this.index++;return}throw e===void 0?this.peekError(l.eofObject):this.peekError(l.colon)}endMap(){let e=this.whitespace();if(e===125){this.index++;return}throw e===44?this.peekError(l.trailingComma):e===void 0?this.peekError(l.eofObject):this.peekError(l.trailingCharacters)}sequence(){let e=!0;for(;;){let t=this.whitespace();if(t===void 0)throw this.peekError(l.eofList);if(t===93)return;if(e)e=!1;else if(t===44){this.index++;let r=this.whitespace();if(r===93)throw this.peekError(l.trailingComma);if(r===void 0)throw this.peekError(l.eofValue)}else throw this.peekError(l.listCommaOrEnd);this.value()}}endSequence(){let e=this.whitespace();if(e===93){this.index++;return}throw e===44?(this.index++,this.whitespace()===93?this.peekError(l.trailingComma):this.peekError(l.trailingCharacters)):e===void 0?this.peekError(l.eofList):this.peekError(l.trailingCharacters)}integer(){let e=this.next();if(e===void 0)throw this.error(l.eofValue);if(e===48){if(_(this.peekOrNull()))throw this.peekError(l.number);this.number(0n);return}if(e<49||e>57)throw this.error(l.number);let t=BigInt(e-48);for(;;){let r=this.peekOrNull();if(!_(r)){this.number(t);return}let i=BigInt(r-48);if(an(t,i)){this.longInteger(t);return}this.index++,t=t*10n+i}}number(e){let t=this.peekOrNull();t===46?this.decimal(e,0):(t===101||t===69)&&this.exponent(e,0)}decimal(e,t){this.index++;let r=e,i=0;for(;;){let a=this.peekOrNull();if(!_(a))break;let c=BigInt(a-48);if(an(r,c)){this.decimalOverflow(r,t+i);return}this.index++,r=r*10n+c,i--}if(i===0)throw this.peek()!==void 0?this.peekError(l.number):this.peekError(l.eofValue);let s=t+i,o=this.peekOrNull();o===101||o===69?this.exponent(r,s):this.fromParts(r,s)}exponent(e,t){this.index++;let r=!0,i=this.peekOrNull();i===43?this.index++:i===45&&(this.index++,r=!1);let s=this.next();if(s===void 0)throw this.error(l.eofValue);if(!_(s))throw this.error(l.number);let o=s-48;for(;;){let c=this.peekOrNull();if(!_(c))break;this.index++;let d=c-48;if(o>=Math.floor(G/10)&&(o>Math.floor(G/10)||d>G%10)){this.exponentOverflow(e===0n,r);return}o=o*10+d}let a=cn(r?t+o:t-o);this.fromParts(e,a)}longInteger(e){let t=0;for(;;){let r=this.peekOrNull();if(_(r)){this.index++,t++;continue}if(r===46){this.decimal(e,t);return}if(r===101||r===69){this.exponent(e,t);return}this.fromParts(e,t);return}}decimalOverflow(e,t){for(;_(this.peekOrNull());)this.index++;let r=this.peekOrNull();r===101||r===69?this.exponent(e,t):this.fromParts(e,t)}exponentOverflow(e,t){if(!e&&t)throw this.error(l.range);for(;_(this.peekOrNull());)this.index++}fromParts(e,t){let r=Number(e),i=t;for(;;){let s=ut[Math.abs(i)];if(s!==void 0){if(i>=0&&(r*=s,!Number.isFinite(r)))throw this.error(l.range);return}if(r===0)return;if(i>=0)throw this.error(l.range);r/=1e308,i+=308}}string(){let e=this.bytes,t=this.index,r=[];for(;;){for(;this.index<e.length;){let s=e[this.index];if(s===34||s===92||s<32)break;this.index++}if(this.index===e.length)throw this.error(l.eofString);let i=e[this.index];if(i===34)return r.push(on.decode(e.subarray(t,this.index))),this.index++,r.join("");if(i===92){r.push(on.decode(e.subarray(t,this.index))),this.index++,r.push(this.escape()),t=this.index;continue}throw this.index++,this.error(l.control)}}escape(){let e=this.next();if(e===void 0)throw this.error(l.eofString);switch(e){case 34:return'"';case 92:return"\\";case 47:return"/";case 98:return"\b";case 102:return"\f";case 110:return`
4
4
  `;case 114:return"\r";case 116:return" ";case 117:return this.unicodeEscape();default:throw this.error(l.escape)}}unicodeEscape(){let e=this.hex();if(e>=56320&&e<=57343)throw this.error(l.loneSurrogate);if(e<55296||e>56319)return String.fromCharCode(e);if(this.peekOrEof()!==92)throw this.index++,this.error(l.hexEnd);if(this.index++,this.peekOrEof()!==117)throw this.index++,this.error(l.hexEnd);this.index++;let t=this.hex();if(t<56320||t>57343)throw this.error(l.loneSurrogate);return String.fromCharCode(e,t)}peekOrEof(){let e=this.peek();if(e===void 0)throw this.error(l.eofString);return e}hex(){if(this.bytes.length-this.index<4)throw this.index=this.bytes.length,this.error(l.eofString);let e=0,t=!0;for(let r=0;r<4;r++){let i=ft(this.bytes[this.index+r]);i<0&&(t=!1),e=e*16+i}if(this.index+=4,!t)throw this.error(l.escape);return e}};function lt(n){let e=new Map;for(let[t,r]of n)e.set(t,r);return[...e.entries()].sort(([t],[r])=>h(t,r))}function _(n){return n>=48&&n<=57}function ft(n){return n>=48&&n<=57?n-48:n>=65&&n<=70?n-65+10:n>=97&&n<=102?n-97+10:-1}function an(n,e){return n>=Re/10n&&(n>Re/10n||e>Re%10n)}function cn(n){return Math.max(-2147483648,Math.min(G,n))}var Y=class extends Error{},u=()=>{throw new Y},A=()=>({kind:"table",implicit:!1,dotted:!1,inline:!1,entries:new Map}),pt=n=>/^[A-Za-z0-9_-]$/.test(n),$e=n=>n===" "||n===" ";function mt(n){return n===9||n>=32&&n<=126||n>=128}var je=class{constructor(e){this.text=e;e.startsWith("\uFEFF")&&(this.at=1)}text;at=0;root=A();current=A();header;peek(e=0){return this.text.charAt(this.at+e)}eof(){return this.at>=this.text.length}skipWs(){for(;$e(this.peek());)this.at++}comment(){if(this.peek()==="#")for(this.at++;!this.eof();){let e=this.text.codePointAt(this.at);if(e===10||e===13&&this.peek(1)===`
5
5
  `)return;mt(e)||u(),this.at+=e>65535?2:1}}newline(){return this.peek()===`