workspace-helper 1.0.4-alpha → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/index.js +34 -34
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -5,6 +5,8 @@ A tool for managing package versions across monorepo workspaces.
|
|
|
5
5
|
[](https://npmjs.org/package/workspace-helper)
|
|
6
6
|
[](https://github.com/nyambogahezron/workspace-helper/blob/main/LICENSE)
|
|
7
7
|
|
|
8
|
+
[](https://workspace-helper-sepia.vercel.app/)
|
|
9
|
+
- [Documentation](https://workspace-helper-sepia.vercel.app/)
|
|
8
10
|
- [Installation](#installation)
|
|
9
11
|
- [Usage](#usage)
|
|
10
12
|
- [Interactive Commands](#interactive-commands)
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as B9}from"node:module";var b9=Object.create;var{getPrototypeOf:I9,defineProperty:l1,getOwnPropertyNames:q9}=Object;var _9=Object.prototype.hasOwnProperty;var N=($,x,b)=>{b=$!=null?b9(I9($)):{};let I=x||!$||!$.__esModule?l1(b,"default",{value:$,enumerable:!0}):b;for(let q of q9($))if(!_9.call(I,q))l1(I,q,{get:()=>$[q],enumerable:!0});return I};var w=($,x)=>()=>(x||$((x={exports:{}}).exports,x),x.exports);var h1=B9(import.meta.url);var n$=w(($4,R1)=>{var D$={to($,x){if(!x)return`\x1B[${$+1}G`;return`\x1B[${x+1};${$+1}H`},move($,x){let b="";if($<0)b+=`\x1B[${-$}D`;else if($>0)b+=`\x1B[${$}C`;if(x<0)b+=`\x1B[${-x}A`;else if(x>0)b+=`\x1B[${x}B`;return b},up:($=1)=>`\x1B[${$}A`,down:($=1)=>`\x1B[${$}B`,forward:($=1)=>`\x1B[${$}C`,backward:($=1)=>`\x1B[${$}D`,nextLine:($=1)=>"\x1B[E".repeat($),prevLine:($=1)=>"\x1B[F".repeat($),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},j9={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},Z9={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let x="";for(let b=0;b<$;b++)x+=this.line+(b<$-1?D$.up():"");if($)x+=D$.left;return x}};R1.exports={cursor:D$,scroll:j9,erase:Z9,beep:"\x07"}});var i=w((x4,i$)=>{var X$=process||{},P1=X$.argv||[],A$=X$.env||{},O9=!(!!A$.NO_COLOR||P1.includes("--no-color"))&&(!!A$.FORCE_COLOR||P1.includes("--color")||X$.platform==="win32"||(X$.stdout||{}).isTTY&&A$.TERM!=="dumb"||!!A$.CI),K9=($,x,b=$)=>(I)=>{let q=""+I,_=q.indexOf(x,$.length);return~_?$+z9(q,x,b,_)+x:$+q+x},z9=($,x,b,I)=>{let q="",_=0;do q+=$.substring(_,I)+b,_=I+x.length,I=$.indexOf(x,_);while(~I);return q+$.substring(_)},C1=($=O9)=>{let x=$?K9:()=>String;return{isColorSupported:$,reset:x("\x1B[0m","\x1B[0m"),bold:x("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:x("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:x("\x1B[3m","\x1B[23m"),underline:x("\x1B[4m","\x1B[24m"),inverse:x("\x1B[7m","\x1B[27m"),hidden:x("\x1B[8m","\x1B[28m"),strikethrough:x("\x1B[9m","\x1B[29m"),black:x("\x1B[30m","\x1B[39m"),red:x("\x1B[31m","\x1B[39m"),green:x("\x1B[32m","\x1B[39m"),yellow:x("\x1B[33m","\x1B[39m"),blue:x("\x1B[34m","\x1B[39m"),magenta:x("\x1B[35m","\x1B[39m"),cyan:x("\x1B[36m","\x1B[39m"),white:x("\x1B[37m","\x1B[39m"),gray:x("\x1B[90m","\x1B[39m"),bgBlack:x("\x1B[40m","\x1B[49m"),bgRed:x("\x1B[41m","\x1B[49m"),bgGreen:x("\x1B[42m","\x1B[49m"),bgYellow:x("\x1B[43m","\x1B[49m"),bgBlue:x("\x1B[44m","\x1B[49m"),bgMagenta:x("\x1B[45m","\x1B[49m"),bgCyan:x("\x1B[46m","\x1B[49m"),bgWhite:x("\x1B[47m","\x1B[49m"),blackBright:x("\x1B[90m","\x1B[39m"),redBright:x("\x1B[91m","\x1B[39m"),greenBright:x("\x1B[92m","\x1B[39m"),yellowBright:x("\x1B[93m","\x1B[39m"),blueBright:x("\x1B[94m","\x1B[39m"),magentaBright:x("\x1B[95m","\x1B[39m"),cyanBright:x("\x1B[96m","\x1B[39m"),whiteBright:x("\x1B[97m","\x1B[39m"),bgBlackBright:x("\x1B[100m","\x1B[49m"),bgRedBright:x("\x1B[101m","\x1B[49m"),bgGreenBright:x("\x1B[102m","\x1B[49m"),bgYellowBright:x("\x1B[103m","\x1B[49m"),bgBlueBright:x("\x1B[104m","\x1B[49m"),bgMagentaBright:x("\x1B[105m","\x1B[49m"),bgCyanBright:x("\x1B[106m","\x1B[49m"),bgWhiteBright:x("\x1B[107m","\x1B[49m")}};i$.exports=C1();i$.exports.createColors=C1});var U$=w((s4,O0)=>{var qx=Number.MAX_SAFE_INTEGER||9007199254740991,_x=["major","premajor","minor","preminor","patch","prepatch","prerelease"];O0.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:qx,RELEASE_TYPES:_x,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Y$=w((a4,K0)=>{var Bx=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};K0.exports=Bx});var B$=w((D,z0)=>{var{MAX_SAFE_COMPONENT_LENGTH:K1,MAX_SAFE_BUILD_LENGTH:jx,MAX_LENGTH:Zx}=U$(),Ox=Y$();D=z0.exports={};var Kx=D.re=[],zx=D.safeRe=[],Q=D.src=[],Qx=D.safeSrc=[],U=D.t={},Ux=0,z1="[a-zA-Z0-9-]",Yx=[["\\s",1],["\\d",Zx],[z1,jx]],Wx=($)=>{for(let[x,b]of Yx)$=$.split(`${x}*`).join(`${x}{0,${b}}`).split(`${x}+`).join(`${x}{1,${b}}`);return $},H=($,x,b)=>{let I=Wx(x),q=Ux++;Ox($,q,x),U[$]=q,Q[q]=x,Qx[q]=I,Kx[q]=new RegExp(x,b?"g":void 0),zx[q]=new RegExp(I,b?"g":void 0)};H("NUMERICIDENTIFIER","0|[1-9]\\d*");H("NUMERICIDENTIFIERLOOSE","\\d+");H("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${z1}*`);H("MAINVERSION",`(${Q[U.NUMERICIDENTIFIER]})\\.(${Q[U.NUMERICIDENTIFIER]})\\.(${Q[U.NUMERICIDENTIFIER]})`);H("MAINVERSIONLOOSE",`(${Q[U.NUMERICIDENTIFIERLOOSE]})\\.(${Q[U.NUMERICIDENTIFIERLOOSE]})\\.(${Q[U.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASEIDENTIFIER",`(?:${Q[U.NONNUMERICIDENTIFIER]}|${Q[U.NUMERICIDENTIFIER]})`);H("PRERELEASEIDENTIFIERLOOSE",`(?:${Q[U.NONNUMERICIDENTIFIER]}|${Q[U.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASE",`(?:-(${Q[U.PRERELEASEIDENTIFIER]}(?:\\.${Q[U.PRERELEASEIDENTIFIER]})*))`);H("PRERELEASELOOSE",`(?:-?(${Q[U.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Q[U.PRERELEASEIDENTIFIERLOOSE]})*))`);H("BUILDIDENTIFIER",`${z1}+`);H("BUILD",`(?:\\+(${Q[U.BUILDIDENTIFIER]}(?:\\.${Q[U.BUILDIDENTIFIER]})*))`);H("FULLPLAIN",`v?${Q[U.MAINVERSION]}${Q[U.PRERELEASE]}?${Q[U.BUILD]}?`);H("FULL",`^${Q[U.FULLPLAIN]}$`);H("LOOSEPLAIN",`[v=\\s]*${Q[U.MAINVERSIONLOOSE]}${Q[U.PRERELEASELOOSE]}?${Q[U.BUILD]}?`);H("LOOSE",`^${Q[U.LOOSEPLAIN]}$`);H("GTLT","((?:<|>)?=?)");H("XRANGEIDENTIFIERLOOSE",`${Q[U.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);H("XRANGEIDENTIFIER",`${Q[U.NUMERICIDENTIFIER]}|x|X|\\*`);H("XRANGEPLAIN",`[v=\\s]*(${Q[U.XRANGEIDENTIFIER]})(?:\\.(${Q[U.XRANGEIDENTIFIER]})(?:\\.(${Q[U.XRANGEIDENTIFIER]})(?:${Q[U.PRERELEASE]})?${Q[U.BUILD]}?)?)?`);H("XRANGEPLAINLOOSE",`[v=\\s]*(${Q[U.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Q[U.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Q[U.XRANGEIDENTIFIERLOOSE]})(?:${Q[U.PRERELEASELOOSE]})?${Q[U.BUILD]}?)?)?`);H("XRANGE",`^${Q[U.GTLT]}\\s*${Q[U.XRANGEPLAIN]}$`);H("XRANGELOOSE",`^${Q[U.GTLT]}\\s*${Q[U.XRANGEPLAINLOOSE]}$`);H("COERCEPLAIN",`(^|[^\\d])(\\d{1,${K1}})(?:\\.(\\d{1,${K1}}))?(?:\\.(\\d{1,${K1}}))?`);H("COERCE",`${Q[U.COERCEPLAIN]}(?:$|[^\\d])`);H("COERCEFULL",Q[U.COERCEPLAIN]+`(?:${Q[U.PRERELEASE]})?(?:${Q[U.BUILD]})?(?:$|[^\\d])`);H("COERCERTL",Q[U.COERCE],!0);H("COERCERTLFULL",Q[U.COERCEFULL],!0);H("LONETILDE","(?:~>?)");H("TILDETRIM",`(\\s*)${Q[U.LONETILDE]}\\s+`,!0);D.tildeTrimReplace="$1~";H("TILDE",`^${Q[U.LONETILDE]}${Q[U.XRANGEPLAIN]}$`);H("TILDELOOSE",`^${Q[U.LONETILDE]}${Q[U.XRANGEPLAINLOOSE]}$`);H("LONECARET","(?:\\^)");H("CARETTRIM",`(\\s*)${Q[U.LONECARET]}\\s+`,!0);D.caretTrimReplace="$1^";H("CARET",`^${Q[U.LONECARET]}${Q[U.XRANGEPLAIN]}$`);H("CARETLOOSE",`^${Q[U.LONECARET]}${Q[U.XRANGEPLAINLOOSE]}$`);H("COMPARATORLOOSE",`^${Q[U.GTLT]}\\s*(${Q[U.LOOSEPLAIN]})$|^$`);H("COMPARATOR",`^${Q[U.GTLT]}\\s*(${Q[U.FULLPLAIN]})$|^$`);H("COMPARATORTRIM",`(\\s*)${Q[U.GTLT]}\\s*(${Q[U.LOOSEPLAIN]}|${Q[U.XRANGEPLAIN]})`,!0);D.comparatorTrimReplace="$1$2$3";H("HYPHENRANGE",`^\\s*(${Q[U.XRANGEPLAIN]})\\s+-\\s+(${Q[U.XRANGEPLAIN]})\\s*$`);H("HYPHENRANGELOOSE",`^\\s*(${Q[U.XRANGEPLAINLOOSE]})\\s+-\\s+(${Q[U.XRANGEPLAINLOOSE]})\\s*$`);H("STAR","(<|>)?=?\\s*\\*");H("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");H("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var u$=w((o4,Q0)=>{var wx=Object.freeze({loose:!0}),Hx=Object.freeze({}),Jx=($)=>{if(!$)return Hx;if(typeof $!=="object")return wx;return $};Q0.exports=Jx});var Q1=w((e4,W0)=>{var U0=/^[0-9]+$/,Y0=($,x)=>{if(typeof $==="number"&&typeof x==="number")return $===x?0:$<x?-1:1;let b=U0.test($),I=U0.test(x);if(b&&I)$=+$,x=+x;return $===x?0:b&&!I?-1:I&&!b?1:$<x?-1:1},Gx=($,x)=>Y0(x,$);W0.exports={compareIdentifiers:Y0,rcompareIdentifiers:Gx}});var h=w(($I,H0)=>{var V$=Y$(),{MAX_LENGTH:w0,MAX_SAFE_INTEGER:T$}=U$(),{safeRe:N$,t:M$}=B$(),Sx=u$(),{compareIdentifiers:U1}=Q1();class t{constructor($,x){if(x=Sx(x),$ instanceof t)if($.loose===!!x.loose&&$.includePrerelease===!!x.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>w0)throw TypeError(`version is longer than ${w0} characters`);V$("SemVer",$,x),this.options=x,this.loose=!!x.loose,this.includePrerelease=!!x.includePrerelease;let b=$.trim().match(x.loose?N$[M$.LOOSE]:N$[M$.FULL]);if(!b)throw TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+b[1],this.minor=+b[2],this.patch=+b[3],this.major>T$||this.major<0)throw TypeError("Invalid major version");if(this.minor>T$||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>T$||this.patch<0)throw TypeError("Invalid patch version");if(!b[4])this.prerelease=[];else this.prerelease=b[4].split(".").map((I)=>{if(/^[0-9]+$/.test(I)){let q=+I;if(q>=0&&q<T$)return q}return I});this.build=b[5]?b[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(V$("SemVer.compare",this.version,this.options,$),!($ instanceof t)){if(typeof $==="string"&&$===this.version)return 0;$=new t($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof t))$=new t($,this.options);if(this.major<$.major)return-1;if(this.major>$.major)return 1;if(this.minor<$.minor)return-1;if(this.minor>$.minor)return 1;if(this.patch<$.patch)return-1;if(this.patch>$.patch)return 1;return 0}comparePre($){if(!($ instanceof t))$=new t($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let x=0;do{let b=this.prerelease[x],I=$.prerelease[x];if(V$("prerelease compare",x,b,I),b===void 0&&I===void 0)return 0;else if(I===void 0)return 1;else if(b===void 0)return-1;else if(b===I)continue;else return U1(b,I)}while(++x)}compareBuild($){if(!($ instanceof t))$=new t($,this.options);let x=0;do{let b=this.build[x],I=$.build[x];if(V$("build compare",x,b,I),b===void 0&&I===void 0)return 0;else if(I===void 0)return 1;else if(b===void 0)return-1;else if(b===I)continue;else return U1(b,I)}while(++x)}inc($,x,b){if($.startsWith("pre")){if(!x&&b===!1)throw Error("invalid increment argument: identifier is empty");if(x){let I=`-${x}`.match(this.options.loose?N$[M$.PRERELEASELOOSE]:N$[M$.PRERELEASE]);if(!I||I[1]!==x)throw Error(`invalid identifier: ${x}`)}}switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",x,b);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",x,b);break;case"prepatch":this.prerelease.length=0,this.inc("patch",x,b),this.inc("pre",x,b);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",x,b);this.inc("pre",x,b);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let I=Number(b)?1:0;if(this.prerelease.length===0)this.prerelease=[I];else{let q=this.prerelease.length;while(--q>=0)if(typeof this.prerelease[q]==="number")this.prerelease[q]++,q=-2;if(q===-1){if(x===this.prerelease.join(".")&&b===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(I)}}if(x){let q=[x,I];if(b===!1)q=[x];if(U1(this.prerelease[0],x)===0){if(isNaN(this.prerelease[1]))this.prerelease=q}else this.prerelease=q}break}default:throw Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}H0.exports=t});var x$=w((xI,G0)=>{var J0=h(),Ax=($,x,b=!1)=>{if($ instanceof J0)return $;try{return new J0($,x)}catch(I){if(!b)return null;throw I}};G0.exports=Ax});var A0=w((yI,S0)=>{var Xx=x$(),Lx=($,x)=>{let b=Xx($,x);return b?b.version:null};S0.exports=Lx});var L0=w((bI,X0)=>{var Ex=x$(),dx=($,x)=>{let b=Ex($.trim().replace(/^[=v]+/,""),x);return b?b.version:null};X0.exports=dx});var l0=w((II,d0)=>{var E0=h(),lx=($,x,b,I,q)=>{if(typeof b==="string")q=I,I=b,b=void 0;try{return new E0($ instanceof E0?$.version:$,b).inc(x,I,q).version}catch(_){return null}};d0.exports=lx});var P0=w((qI,R0)=>{var h0=x$(),hx=($,x)=>{let b=h0($,null,!0),I=h0(x,null,!0),q=b.compare(I);if(q===0)return null;let _=q>0,y=_?b:I,B=_?I:b,j=!!y.prerelease.length;if(!!B.prerelease.length&&!j){if(!B.patch&&!B.minor)return"major";if(B.compareMain(y)===0){if(B.minor&&!B.patch)return"minor";return"patch"}}let K=j?"pre":"";if(b.major!==I.major)return K+"major";if(b.minor!==I.minor)return K+"minor";if(b.patch!==I.patch)return K+"patch";return"prerelease"};R0.exports=hx});var u0=w((_I,C0)=>{var Rx=h(),Px=($,x)=>new Rx($,x).major;C0.exports=Px});var T0=w((BI,V0)=>{var Cx=h(),ux=($,x)=>new Cx($,x).minor;V0.exports=ux});var M0=w((jI,N0)=>{var Vx=h(),Tx=($,x)=>new Vx($,x).patch;N0.exports=Tx});var f0=w((ZI,F0)=>{var Nx=x$(),Mx=($,x)=>{let b=Nx($,x);return b&&b.prerelease.length?b.prerelease:null};F0.exports=Mx});var k=w((OI,k0)=>{var v0=h(),Fx=($,x,b)=>new v0($,b).compare(new v0(x,b));k0.exports=Fx});var m0=w((KI,g0)=>{var fx=k(),vx=($,x,b)=>fx(x,$,b);g0.exports=vx});var t0=w((zI,c0)=>{var kx=k(),gx=($,x)=>kx($,x,!0);c0.exports=gx});var F$=w((QI,n0)=>{var D0=h(),mx=($,x,b)=>{let I=new D0($,b),q=new D0(x,b);return I.compare(q)||I.compareBuild(q)};n0.exports=mx});var r0=w((UI,i0)=>{var cx=F$(),tx=($,x)=>$.sort((b,I)=>cx(b,I,x));i0.exports=tx});var s0=w((YI,p0)=>{var Dx=F$(),nx=($,x)=>$.sort((b,I)=>Dx(I,b,x));p0.exports=nx});var W$=w((WI,a0)=>{var ix=k(),rx=($,x,b)=>ix($,x,b)>0;a0.exports=rx});var f$=w((wI,o0)=>{var px=k(),sx=($,x,b)=>px($,x,b)<0;o0.exports=sx});var Y1=w((HI,e0)=>{var ax=k(),ox=($,x,b)=>ax($,x,b)===0;e0.exports=ox});var W1=w((JI,$2)=>{var ex=k(),$y=($,x,b)=>ex($,x,b)!==0;$2.exports=$y});var v$=w((GI,x2)=>{var xy=k(),yy=($,x,b)=>xy($,x,b)>=0;x2.exports=yy});var k$=w((SI,y2)=>{var by=k(),Iy=($,x,b)=>by($,x,b)<=0;y2.exports=Iy});var w1=w((AI,b2)=>{var qy=Y1(),_y=W1(),By=W$(),jy=v$(),Zy=f$(),Oy=k$(),Ky=($,x,b,I)=>{switch(x){case"===":if(typeof $==="object")$=$.version;if(typeof b==="object")b=b.version;return $===b;case"!==":if(typeof $==="object")$=$.version;if(typeof b==="object")b=b.version;return $!==b;case"":case"=":case"==":return qy($,b,I);case"!=":return _y($,b,I);case">":return By($,b,I);case">=":return jy($,b,I);case"<":return Zy($,b,I);case"<=":return Oy($,b,I);default:throw TypeError(`Invalid operator: ${x}`)}};b2.exports=Ky});var q2=w((XI,I2)=>{var zy=h(),Qy=x$(),{safeRe:g$,t:m$}=B$(),Uy=($,x)=>{if($ instanceof zy)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;x=x||{};let b=null;if(!x.rtl)b=$.match(x.includePrerelease?g$[m$.COERCEFULL]:g$[m$.COERCE]);else{let j=x.includePrerelease?g$[m$.COERCERTLFULL]:g$[m$.COERCERTL],O;while((O=j.exec($))&&(!b||b.index+b[0].length!==$.length)){if(!b||O.index+O[0].length!==b.index+b[0].length)b=O;j.lastIndex=O.index+O[1].length+O[2].length}j.lastIndex=-1}if(b===null)return null;let I=b[2],q=b[3]||"0",_=b[4]||"0",y=x.includePrerelease&&b[5]?`-${b[5]}`:"",B=x.includePrerelease&&b[6]?`+${b[6]}`:"";return Qy(`${I}.${q}.${_}${y}${B}`,x)};I2.exports=Uy});var j2=w((LI,B2)=>{class _2{constructor(){this.max=1000,this.map=new Map}get($){let x=this.map.get($);if(x===void 0)return;else return this.map.delete($),this.map.set($,x),x}delete($){return this.map.delete($)}set($,x){if(!this.delete($)&&x!==void 0){if(this.map.size>=this.max){let I=this.map.keys().next().value;this.delete(I)}this.map.set($,x)}return this}}B2.exports=_2});var g=w((EI,z2)=>{var Yy=/\s+/g;class w${constructor($,x){if(x=wy(x),$ instanceof w$)if($.loose===!!x.loose&&$.includePrerelease===!!x.includePrerelease)return $;else return new w$($.raw,x);if($ instanceof H1)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=x,this.loose=!!x.loose,this.includePrerelease=!!x.includePrerelease,this.raw=$.trim().replace(Yy," "),this.set=this.raw.split("||").map((b)=>this.parseRange(b.trim())).filter((b)=>b.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let b=this.set[0];if(this.set=this.set.filter((I)=>!O2(I[0])),this.set.length===0)this.set=[b];else if(this.set.length>1){for(let I of this.set)if(I.length===1&&Ly(I[0])){this.set=[I];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let x=this.set[$];for(let b=0;b<x.length;b++){if(b>0)this.formatted+=" ";this.formatted+=x[b].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let b=((this.options.includePrerelease&&Ay)|(this.options.loose&&Xy))+":"+$,I=Z2.get(b);if(I)return I;let q=this.options.loose,_=q?C[R.HYPHENRANGELOOSE]:C[R.HYPHENRANGE];$=$.replace(_,Ty(this.options.includePrerelease)),A("hyphen replace",$),$=$.replace(C[R.COMPARATORTRIM],Jy),A("comparator trim",$),$=$.replace(C[R.TILDETRIM],Gy),A("tilde trim",$),$=$.replace(C[R.CARETTRIM],Sy),A("caret trim",$);let y=$.split(" ").map((K)=>Ey(K,this.options)).join(" ").split(/\s+/).map((K)=>Vy(K,this.options));if(q)y=y.filter((K)=>{return A("loose invalid filter",K,this.options),!!K.match(C[R.COMPARATORLOOSE])});A("range list",y);let B=new Map,j=y.map((K)=>new H1(K,this.options));for(let K of j){if(O2(K))return[K];B.set(K.value,K)}if(B.size>1&&B.has(""))B.delete("");let O=[...B.values()];return Z2.set(b,O),O}intersects($,x){if(!($ instanceof w$))throw TypeError("a Range is required");return this.set.some((b)=>{return K2(b,x)&&$.set.some((I)=>{return K2(I,x)&&b.every((q)=>{return I.every((_)=>{return q.intersects(_,x)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new Hy($,this.options)}catch(x){return!1}for(let x=0;x<this.set.length;x++)if(Ny(this.set[x],$,this.options))return!0;return!1}}z2.exports=w$;var Wy=j2(),Z2=new Wy,wy=u$(),H1=H$(),A=Y$(),Hy=h(),{safeRe:C,t:R,comparatorTrimReplace:Jy,tildeTrimReplace:Gy,caretTrimReplace:Sy}=B$(),{FLAG_INCLUDE_PRERELEASE:Ay,FLAG_LOOSE:Xy}=U$(),O2=($)=>$.value==="<0.0.0-0",Ly=($)=>$.value==="",K2=($,x)=>{let b=!0,I=$.slice(),q=I.pop();while(b&&I.length)b=I.every((_)=>{return q.intersects(_,x)}),q=I.pop();return b},Ey=($,x)=>{return $=$.replace(C[R.BUILD],""),A("comp",$,x),$=hy($,x),A("caret",$),$=dy($,x),A("tildes",$),$=Py($,x),A("xrange",$),$=uy($,x),A("stars",$),$},u=($)=>!$||$.toLowerCase()==="x"||$==="*",dy=($,x)=>{return $.trim().split(/\s+/).map((b)=>ly(b,x)).join(" ")},ly=($,x)=>{let b=x.loose?C[R.TILDELOOSE]:C[R.TILDE];return $.replace(b,(I,q,_,y,B)=>{A("tilde",$,I,q,_,y,B);let j;if(u(q))j="";else if(u(_))j=`>=${q}.0.0 <${+q+1}.0.0-0`;else if(u(y))j=`>=${q}.${_}.0 <${q}.${+_+1}.0-0`;else if(B)A("replaceTilde pr",B),j=`>=${q}.${_}.${y}-${B} <${q}.${+_+1}.0-0`;else j=`>=${q}.${_}.${y} <${q}.${+_+1}.0-0`;return A("tilde return",j),j})},hy=($,x)=>{return $.trim().split(/\s+/).map((b)=>Ry(b,x)).join(" ")},Ry=($,x)=>{A("caret",$,x);let b=x.loose?C[R.CARETLOOSE]:C[R.CARET],I=x.includePrerelease?"-0":"";return $.replace(b,(q,_,y,B,j)=>{A("caret",$,q,_,y,B,j);let O;if(u(_))O="";else if(u(y))O=`>=${_}.0.0${I} <${+_+1}.0.0-0`;else if(u(B))if(_==="0")O=`>=${_}.${y}.0${I} <${_}.${+y+1}.0-0`;else O=`>=${_}.${y}.0${I} <${+_+1}.0.0-0`;else if(j)if(A("replaceCaret pr",j),_==="0")if(y==="0")O=`>=${_}.${y}.${B}-${j} <${_}.${y}.${+B+1}-0`;else O=`>=${_}.${y}.${B}-${j} <${_}.${+y+1}.0-0`;else O=`>=${_}.${y}.${B}-${j} <${+_+1}.0.0-0`;else if(A("no pr"),_==="0")if(y==="0")O=`>=${_}.${y}.${B}${I} <${_}.${y}.${+B+1}-0`;else O=`>=${_}.${y}.${B}${I} <${_}.${+y+1}.0-0`;else O=`>=${_}.${y}.${B} <${+_+1}.0.0-0`;return A("caret return",O),O})},Py=($,x)=>{return A("replaceXRanges",$,x),$.split(/\s+/).map((b)=>Cy(b,x)).join(" ")},Cy=($,x)=>{$=$.trim();let b=x.loose?C[R.XRANGELOOSE]:C[R.XRANGE];return $.replace(b,(I,q,_,y,B,j)=>{A("xRange",$,I,q,_,y,B,j);let O=u(_),K=O||u(y),z=K||u(B),W=z;if(q==="="&&W)q="";if(j=x.includePrerelease?"-0":"",O)if(q===">"||q==="<")I="<0.0.0-0";else I="*";else if(q&&W){if(K)y=0;if(B=0,q===">")if(q=">=",K)_=+_+1,y=0,B=0;else y=+y+1,B=0;else if(q==="<=")if(q="<",K)_=+_+1;else y=+y+1;if(q==="<")j="-0";I=`${q+_}.${y}.${B}${j}`}else if(K)I=`>=${_}.0.0${j} <${+_+1}.0.0-0`;else if(z)I=`>=${_}.${y}.0${j} <${_}.${+y+1}.0-0`;return A("xRange return",I),I})},uy=($,x)=>{return A("replaceStars",$,x),$.trim().replace(C[R.STAR],"")},Vy=($,x)=>{return A("replaceGTE0",$,x),$.trim().replace(C[x.includePrerelease?R.GTE0PRE:R.GTE0],"")},Ty=($)=>(x,b,I,q,_,y,B,j,O,K,z,W)=>{if(u(I))b="";else if(u(q))b=`>=${I}.0.0${$?"-0":""}`;else if(u(_))b=`>=${I}.${q}.0${$?"-0":""}`;else if(y)b=`>=${b}`;else b=`>=${b}${$?"-0":""}`;if(u(O))j="";else if(u(K))j=`<${+O+1}.0.0-0`;else if(u(z))j=`<${O}.${+K+1}.0-0`;else if(W)j=`<=${O}.${K}.${z}-${W}`;else if($)j=`<${O}.${K}.${+z+1}-0`;else j=`<=${j}`;return`${b} ${j}`.trim()},Ny=($,x,b)=>{for(let I=0;I<$.length;I++)if(!$[I].test(x))return!1;if(x.prerelease.length&&!b.includePrerelease){for(let I=0;I<$.length;I++){if(A($[I].semver),$[I].semver===H1.ANY)continue;if($[I].semver.prerelease.length>0){let q=$[I].semver;if(q.major===x.major&&q.minor===x.minor&&q.patch===x.patch)return!0}}return!1}return!0}});var H$=w((dI,H2)=>{var J$=Symbol("SemVer ANY");class c${static get ANY(){return J$}constructor($,x){if(x=Q2(x),$ instanceof c$)if($.loose===!!x.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),G1("comparator",$,x),this.options=x,this.loose=!!x.loose,this.parse($),this.semver===J$)this.value="";else this.value=this.operator+this.semver.version;G1("comp",this)}parse($){let x=this.options.loose?U2[Y2.COMPARATORLOOSE]:U2[Y2.COMPARATOR],b=$.match(x);if(!b)throw TypeError(`Invalid comparator: ${$}`);if(this.operator=b[1]!==void 0?b[1]:"",this.operator==="=")this.operator="";if(!b[2])this.semver=J$;else this.semver=new W2(b[2],this.options.loose)}toString(){return this.value}test($){if(G1("Comparator.test",$,this.options.loose),this.semver===J$||$===J$)return!0;if(typeof $==="string")try{$=new W2($,this.options)}catch(x){return!1}return J1($,this.operator,this.semver,this.options)}intersects($,x){if(!($ instanceof c$))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new w2($.value,x).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new w2(this.value,x).test($.semver)}if(x=Q2(x),x.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!x.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(J1(this.semver,"<",$.semver,x)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(J1(this.semver,">",$.semver,x)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}H2.exports=c$;var Q2=u$(),{safeRe:U2,t:Y2}=B$(),J1=w1(),G1=Y$(),W2=h(),w2=g()});var G$=w((lI,J2)=>{var My=g(),Fy=($,x,b)=>{try{x=new My(x,b)}catch(I){return!1}return x.test($)};J2.exports=Fy});var S2=w((hI,G2)=>{var fy=g(),vy=($,x)=>new fy($,x).set.map((b)=>b.map((I)=>I.value).join(" ").trim().split(" "));G2.exports=vy});var X2=w((RI,A2)=>{var ky=h(),gy=g(),my=($,x,b)=>{let I=null,q=null,_=null;try{_=new gy(x,b)}catch(y){return null}return $.forEach((y)=>{if(_.test(y)){if(!I||q.compare(y)===-1)I=y,q=new ky(I,b)}}),I};A2.exports=my});var E2=w((PI,L2)=>{var cy=h(),ty=g(),Dy=($,x,b)=>{let I=null,q=null,_=null;try{_=new ty(x,b)}catch(y){return null}return $.forEach((y)=>{if(_.test(y)){if(!I||q.compare(y)===1)I=y,q=new cy(I,b)}}),I};L2.exports=Dy});var h2=w((CI,l2)=>{var S1=h(),ny=g(),d2=W$(),iy=($,x)=>{$=new ny($,x);let b=new S1("0.0.0");if($.test(b))return b;if(b=new S1("0.0.0-0"),$.test(b))return b;b=null;for(let I=0;I<$.set.length;++I){let q=$.set[I],_=null;if(q.forEach((y)=>{let B=new S1(y.semver.version);switch(y.operator){case">":if(B.prerelease.length===0)B.patch++;else B.prerelease.push(0);B.raw=B.format();case"":case">=":if(!_||d2(B,_))_=B;break;case"<":case"<=":break;default:throw Error(`Unexpected operation: ${y.operator}`)}}),_&&(!b||d2(b,_)))b=_}if(b&&$.test(b))return b;return null};l2.exports=iy});var P2=w((uI,R2)=>{var ry=g(),py=($,x)=>{try{return new ry($,x).range||"*"}catch(b){return null}};R2.exports=py});var t$=w((VI,T2)=>{var sy=h(),V2=H$(),{ANY:ay}=V2,oy=g(),ey=G$(),C2=W$(),u2=f$(),$b=k$(),xb=v$(),yb=($,x,b,I)=>{$=new sy($,I),x=new oy(x,I);let q,_,y,B,j;switch(b){case">":q=C2,_=$b,y=u2,B=">",j=">=";break;case"<":q=u2,_=xb,y=C2,B="<",j="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"')}if(ey($,x,I))return!1;for(let O=0;O<x.set.length;++O){let K=x.set[O],z=null,W=null;if(K.forEach((Y)=>{if(Y.semver===ay)Y=new V2(">=0.0.0");if(z=z||Y,W=W||Y,q(Y.semver,z.semver,I))z=Y;else if(y(Y.semver,W.semver,I))W=Y}),z.operator===B||z.operator===j)return!1;if((!W.operator||W.operator===B)&&_($,W.semver))return!1;else if(W.operator===j&&y($,W.semver))return!1}return!0};T2.exports=yb});var M2=w((TI,N2)=>{var bb=t$(),Ib=($,x,b)=>bb($,x,">",b);N2.exports=Ib});var f2=w((NI,F2)=>{var qb=t$(),_b=($,x,b)=>qb($,x,"<",b);F2.exports=_b});var g2=w((MI,k2)=>{var v2=g(),Bb=($,x,b)=>{return $=new v2($,b),x=new v2(x,b),$.intersects(x,b)};k2.exports=Bb});var c2=w((FI,m2)=>{var jb=G$(),Zb=k();m2.exports=($,x,b)=>{let I=[],q=null,_=null,y=$.sort((K,z)=>Zb(K,z,b));for(let K of y)if(jb(K,x,b)){if(_=K,!q)q=K}else{if(_)I.push([q,_]);_=null,q=null}if(q)I.push([q,null]);let B=[];for(let[K,z]of I)if(K===z)B.push(K);else if(!z&&K===y[0])B.push("*");else if(!z)B.push(`>=${K}`);else if(K===y[0])B.push(`<=${z}`);else B.push(`${K} - ${z}`);let j=B.join(" || "),O=typeof x.raw==="string"?x.raw:String(x);return j.length<O.length?j:x}});var p2=w((fI,r2)=>{var t2=g(),X1=H$(),{ANY:A1}=X1,S$=G$(),L1=k(),Ob=($,x,b={})=>{if($===x)return!0;$=new t2($,b),x=new t2(x,b);let I=!1;$:for(let q of $.set){for(let _ of x.set){let y=zb(q,_,b);if(I=I||y!==null,y)continue $}if(I)return!1}return!0},Kb=[new X1(">=0.0.0-0")],D2=[new X1(">=0.0.0")],zb=($,x,b)=>{if($===x)return!0;if($.length===1&&$[0].semver===A1)if(x.length===1&&x[0].semver===A1)return!0;else if(b.includePrerelease)$=Kb;else $=D2;if(x.length===1&&x[0].semver===A1)if(b.includePrerelease)return!0;else x=D2;let I=new Set,q,_;for(let Y of $)if(Y.operator===">"||Y.operator===">=")q=n2(q,Y,b);else if(Y.operator==="<"||Y.operator==="<=")_=i2(_,Y,b);else I.add(Y.semver);if(I.size>1)return null;let y;if(q&&_){if(y=L1(q.semver,_.semver,b),y>0)return null;else if(y===0&&(q.operator!==">="||_.operator!=="<="))return null}for(let Y of I){if(q&&!S$(Y,String(q),b))return null;if(_&&!S$(Y,String(_),b))return null;for(let F of x)if(!S$(Y,String(F),b))return!1;return!0}let B,j,O,K,z=_&&!b.includePrerelease&&_.semver.prerelease.length?_.semver:!1,W=q&&!b.includePrerelease&&q.semver.prerelease.length?q.semver:!1;if(z&&z.prerelease.length===1&&_.operator==="<"&&z.prerelease[0]===0)z=!1;for(let Y of x){if(K=K||Y.operator===">"||Y.operator===">=",O=O||Y.operator==="<"||Y.operator==="<=",q){if(W){if(Y.semver.prerelease&&Y.semver.prerelease.length&&Y.semver.major===W.major&&Y.semver.minor===W.minor&&Y.semver.patch===W.patch)W=!1}if(Y.operator===">"||Y.operator===">="){if(B=n2(q,Y,b),B===Y&&B!==q)return!1}else if(q.operator===">="&&!S$(q.semver,String(Y),b))return!1}if(_){if(z){if(Y.semver.prerelease&&Y.semver.prerelease.length&&Y.semver.major===z.major&&Y.semver.minor===z.minor&&Y.semver.patch===z.patch)z=!1}if(Y.operator==="<"||Y.operator==="<="){if(j=i2(_,Y,b),j===Y&&j!==_)return!1}else if(_.operator==="<="&&!S$(_.semver,String(Y),b))return!1}if(!Y.operator&&(_||q)&&y!==0)return!1}if(q&&O&&!_&&y!==0)return!1;if(_&&K&&!q&&y!==0)return!1;if(W||z)return!1;return!0},n2=($,x,b)=>{if(!$)return x;let I=L1($.semver,x.semver,b);return I>0?$:I<0?x:x.operator===">"&&$.operator===">="?x:$},i2=($,x,b)=>{if(!$)return x;let I=L1($.semver,x.semver,b);return I<0?$:I>0?x:x.operator==="<"&&$.operator==="<="?x:$};r2.exports=Ob});var e2=w((vI,o2)=>{var E1=B$(),s2=U$(),Qb=h(),a2=Q1(),Ub=x$(),Yb=A0(),Wb=L0(),wb=l0(),Hb=P0(),Jb=u0(),Gb=T0(),Sb=M0(),Ab=f0(),Xb=k(),Lb=m0(),Eb=t0(),db=F$(),lb=r0(),hb=s0(),Rb=W$(),Pb=f$(),Cb=Y1(),ub=W1(),Vb=v$(),Tb=k$(),Nb=w1(),Mb=q2(),Fb=H$(),fb=g(),vb=G$(),kb=S2(),gb=X2(),mb=E2(),cb=h2(),tb=P2(),Db=t$(),nb=M2(),ib=f2(),rb=g2(),pb=c2(),sb=p2();o2.exports={parse:Ub,valid:Yb,clean:Wb,inc:wb,diff:Hb,major:Jb,minor:Gb,patch:Sb,prerelease:Ab,compare:Xb,rcompare:Lb,compareLoose:Eb,compareBuild:db,sort:lb,rsort:hb,gt:Rb,lt:Pb,eq:Cb,neq:ub,gte:Vb,lte:Tb,cmp:Nb,coerce:Mb,Comparator:Fb,Range:fb,satisfies:vb,toComparators:kb,maxSatisfying:gb,minSatisfying:mb,minVersion:cb,validRange:tb,outside:Db,gtr:nb,ltr:ib,intersects:rb,simplifyRange:pb,subset:sb,SemVer:Qb,re:E1.re,src:E1.src,tokens:E1.t,SEMVER_SPEC_VERSION:s2.SEMVER_SPEC_VERSION,RELEASE_TYPES:s2.RELEASE_TYPES,compareIdentifiers:a2.compareIdentifiers,rcompareIdentifiers:a2.rcompareIdentifiers}});var l=N(n$(),1),E$=N(i(),1);import{stdin as m1,stdout as c1}from"node:process";import*as s from"node:readline";import u1 from"node:readline";import{WriteStream as Q9}from"node:tty";function U9({onlyFirst:$=!1}={}){let x=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(x,$?void 0:"g")}var Y9=U9();function t1($){if(typeof $!="string")throw TypeError(`Expected a \`string\`, got \`${typeof $}\``);return $.replace(Y9,"")}function D1($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var n1={exports:{}};(function($){var x={};$.exports=x,x.eastAsianWidth=function(I){var q=I.charCodeAt(0),_=I.length==2?I.charCodeAt(1):0,y=q;return 55296<=q&&q<=56319&&56320<=_&&_<=57343&&(q&=1023,_&=1023,y=q<<10|_,y+=65536),y==12288||65281<=y&&y<=65376||65504<=y&&y<=65510?"F":y==8361||65377<=y&&y<=65470||65474<=y&&y<=65479||65482<=y&&y<=65487||65490<=y&&y<=65495||65498<=y&&y<=65500||65512<=y&&y<=65518?"H":4352<=y&&y<=4447||4515<=y&&y<=4519||4602<=y&&y<=4607||9001<=y&&y<=9002||11904<=y&&y<=11929||11931<=y&&y<=12019||12032<=y&&y<=12245||12272<=y&&y<=12283||12289<=y&&y<=12350||12353<=y&&y<=12438||12441<=y&&y<=12543||12549<=y&&y<=12589||12593<=y&&y<=12686||12688<=y&&y<=12730||12736<=y&&y<=12771||12784<=y&&y<=12830||12832<=y&&y<=12871||12880<=y&&y<=13054||13056<=y&&y<=19903||19968<=y&&y<=42124||42128<=y&&y<=42182||43360<=y&&y<=43388||44032<=y&&y<=55203||55216<=y&&y<=55238||55243<=y&&y<=55291||63744<=y&&y<=64255||65040<=y&&y<=65049||65072<=y&&y<=65106||65108<=y&&y<=65126||65128<=y&&y<=65131||110592<=y&&y<=110593||127488<=y&&y<=127490||127504<=y&&y<=127546||127552<=y&&y<=127560||127568<=y&&y<=127569||131072<=y&&y<=194367||177984<=y&&y<=196605||196608<=y&&y<=262141?"W":32<=y&&y<=126||162<=y&&y<=163||165<=y&&y<=166||y==172||y==175||10214<=y&&y<=10221||10629<=y&&y<=10630?"Na":y==161||y==164||167<=y&&y<=168||y==170||173<=y&&y<=174||176<=y&&y<=180||182<=y&&y<=186||188<=y&&y<=191||y==198||y==208||215<=y&&y<=216||222<=y&&y<=225||y==230||232<=y&&y<=234||236<=y&&y<=237||y==240||242<=y&&y<=243||247<=y&&y<=250||y==252||y==254||y==257||y==273||y==275||y==283||294<=y&&y<=295||y==299||305<=y&&y<=307||y==312||319<=y&&y<=322||y==324||328<=y&&y<=331||y==333||338<=y&&y<=339||358<=y&&y<=359||y==363||y==462||y==464||y==466||y==468||y==470||y==472||y==474||y==476||y==593||y==609||y==708||y==711||713<=y&&y<=715||y==717||y==720||728<=y&&y<=731||y==733||y==735||768<=y&&y<=879||913<=y&&y<=929||931<=y&&y<=937||945<=y&&y<=961||963<=y&&y<=969||y==1025||1040<=y&&y<=1103||y==1105||y==8208||8211<=y&&y<=8214||8216<=y&&y<=8217||8220<=y&&y<=8221||8224<=y&&y<=8226||8228<=y&&y<=8231||y==8240||8242<=y&&y<=8243||y==8245||y==8251||y==8254||y==8308||y==8319||8321<=y&&y<=8324||y==8364||y==8451||y==8453||y==8457||y==8467||y==8470||8481<=y&&y<=8482||y==8486||y==8491||8531<=y&&y<=8532||8539<=y&&y<=8542||8544<=y&&y<=8555||8560<=y&&y<=8569||y==8585||8592<=y&&y<=8601||8632<=y&&y<=8633||y==8658||y==8660||y==8679||y==8704||8706<=y&&y<=8707||8711<=y&&y<=8712||y==8715||y==8719||y==8721||y==8725||y==8730||8733<=y&&y<=8736||y==8739||y==8741||8743<=y&&y<=8748||y==8750||8756<=y&&y<=8759||8764<=y&&y<=8765||y==8776||y==8780||y==8786||8800<=y&&y<=8801||8804<=y&&y<=8807||8810<=y&&y<=8811||8814<=y&&y<=8815||8834<=y&&y<=8835||8838<=y&&y<=8839||y==8853||y==8857||y==8869||y==8895||y==8978||9312<=y&&y<=9449||9451<=y&&y<=9547||9552<=y&&y<=9587||9600<=y&&y<=9615||9618<=y&&y<=9621||9632<=y&&y<=9633||9635<=y&&y<=9641||9650<=y&&y<=9651||9654<=y&&y<=9655||9660<=y&&y<=9661||9664<=y&&y<=9665||9670<=y&&y<=9672||y==9675||9678<=y&&y<=9681||9698<=y&&y<=9701||y==9711||9733<=y&&y<=9734||y==9737||9742<=y&&y<=9743||9748<=y&&y<=9749||y==9756||y==9758||y==9792||y==9794||9824<=y&&y<=9825||9827<=y&&y<=9829||9831<=y&&y<=9834||9836<=y&&y<=9837||y==9839||9886<=y&&y<=9887||9918<=y&&y<=9919||9924<=y&&y<=9933||9935<=y&&y<=9953||y==9955||9960<=y&&y<=9983||y==10045||y==10071||10102<=y&&y<=10111||11093<=y&&y<=11097||12872<=y&&y<=12879||57344<=y&&y<=63743||65024<=y&&y<=65039||y==65533||127232<=y&&y<=127242||127248<=y&&y<=127277||127280<=y&&y<=127337||127344<=y&&y<=127386||917760<=y&&y<=917999||983040<=y&&y<=1048573||1048576<=y&&y<=1114109?"A":"N"},x.characterLength=function(I){var q=this.eastAsianWidth(I);return q=="F"||q=="W"||q=="A"?2:1};function b(I){return I.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}x.length=function(I){for(var q=b(I),_=0,y=0;y<q.length;y++)_=_+this.characterLength(q[y]);return _},x.slice=function(I,q,_){textLen=x.length(I),q=q||0,_=_||1,q<0&&(q=textLen+q),_<0&&(_=textLen+_);for(var y="",B=0,j=b(I),O=0;O<j.length;O++){var K=j[O],z=x.length(K);if(B>=q-(z==2?1:0))if(B+z<=_)y+=K;else break;B+=z}return y}})(n1);var W9=n1.exports,w9=D1(W9),H9=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},J9=D1(H9);function j$($,x={}){if(typeof $!="string"||$.length===0||(x={ambiguousIsNarrow:!0,...x},$=t1($),$.length===0))return 0;$=$.replace(J9()," ");let b=x.ambiguousIsNarrow?1:2,I=0;for(let q of $){let _=q.codePointAt(0);if(_<=31||_>=127&&_<=159||_>=768&&_<=879)continue;switch(w9.eastAsianWidth(q)){case"F":case"W":I+=2;break;case"A":I+=b;break;default:I+=1}}return I}var r$=10,V1=($=0)=>(x)=>`\x1B[${x+$}m`,T1=($=0)=>(x)=>`\x1B[${38+$};5;${x}m`,N1=($=0)=>(x,b,I)=>`\x1B[${38+$};2;${x};${b};${I}m`,X={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(X.modifier);var G9=Object.keys(X.color),S9=Object.keys(X.bgColor);[...G9,...S9];function A9(){let $=new Map;for(let[x,b]of Object.entries(X)){for(let[I,q]of Object.entries(b))X[I]={open:`\x1B[${q[0]}m`,close:`\x1B[${q[1]}m`},b[I]=X[I],$.set(q[0],q[1]);Object.defineProperty(X,x,{value:b,enumerable:!1})}return Object.defineProperty(X,"codes",{value:$,enumerable:!1}),X.color.close="\x1B[39m",X.bgColor.close="\x1B[49m",X.color.ansi=V1(),X.color.ansi256=T1(),X.color.ansi16m=N1(),X.bgColor.ansi=V1(r$),X.bgColor.ansi256=T1(r$),X.bgColor.ansi16m=N1(r$),Object.defineProperties(X,{rgbToAnsi256:{value:(x,b,I)=>x===b&&b===I?x<8?16:x>248?231:Math.round((x-8)/247*24)+232:16+36*Math.round(x/255*5)+6*Math.round(b/255*5)+Math.round(I/255*5),enumerable:!1},hexToRgb:{value:(x)=>{let b=/[a-f\d]{6}|[a-f\d]{3}/i.exec(x.toString(16));if(!b)return[0,0,0];let[I]=b;I.length===3&&(I=[...I].map((_)=>_+_).join(""));let q=Number.parseInt(I,16);return[q>>16&255,q>>8&255,q&255]},enumerable:!1},hexToAnsi256:{value:(x)=>X.rgbToAnsi256(...X.hexToRgb(x)),enumerable:!1},ansi256ToAnsi:{value:(x)=>{if(x<8)return 30+x;if(x<16)return 90+(x-8);let b,I,q;if(x>=232)b=((x-232)*10+8)/255,I=b,q=b;else{x-=16;let B=x%36;b=Math.floor(x/36)/5,I=Math.floor(B/6)/5,q=B%6/5}let _=Math.max(b,I,q)*2;if(_===0)return 30;let y=30+(Math.round(q)<<2|Math.round(I)<<1|Math.round(b));return _===2&&(y+=60),y},enumerable:!1},rgbToAnsi:{value:(x,b,I)=>X.ansi256ToAnsi(X.rgbToAnsi256(x,b,I)),enumerable:!1},hexToAnsi:{value:(x)=>X.ansi256ToAnsi(X.hexToAnsi256(x)),enumerable:!1}}),X}var X9=A9(),d$=new Set(["\x1B",""]),L9=39,s$="\x07",i1="[",E9="]",r1="m",a$=`${E9}8;;`,M1=($)=>`${d$.values().next().value}${i1}${$}${r1}`,F1=($)=>`${d$.values().next().value}${a$}${$}${s$}`,d9=($)=>$.split(" ").map((x)=>j$(x)),p$=($,x,b)=>{let I=[...x],q=!1,_=!1,y=j$(t1($[$.length-1]));for(let[B,j]of I.entries()){let O=j$(j);if(y+O<=b?$[$.length-1]+=j:($.push(j),y=0),d$.has(j)&&(q=!0,_=I.slice(B+1).join("").startsWith(a$)),q){_?j===s$&&(q=!1,_=!1):j===r1&&(q=!1);continue}y+=O,y===b&&B<I.length-1&&($.push(""),y=0)}!y&&$[$.length-1].length>0&&$.length>1&&($[$.length-2]+=$.pop())},l9=($)=>{let x=$.split(" "),b=x.length;for(;b>0&&!(j$(x[b-1])>0);)b--;return b===x.length?$:x.slice(0,b).join(" ")+x.slice(b).join("")},h9=($,x,b={})=>{if(b.trim!==!1&&$.trim()==="")return"";let I="",q,_,y=d9($),B=[""];for(let[O,K]of $.split(" ").entries()){b.trim!==!1&&(B[B.length-1]=B[B.length-1].trimStart());let z=j$(B[B.length-1]);if(O!==0&&(z>=x&&(b.wordWrap===!1||b.trim===!1)&&(B.push(""),z=0),(z>0||b.trim===!1)&&(B[B.length-1]+=" ",z++)),b.hard&&y[O]>x){let W=x-z,Y=1+Math.floor((y[O]-W-1)/x);Math.floor((y[O]-1)/x)<Y&&B.push(""),p$(B,K,x);continue}if(z+y[O]>x&&z>0&&y[O]>0){if(b.wordWrap===!1&&z<x){p$(B,K,x);continue}B.push("")}if(z+y[O]>x&&b.wordWrap===!1){p$(B,K,x);continue}B[B.length-1]+=K}b.trim!==!1&&(B=B.map((O)=>l9(O)));let j=[...B.join(`
|
|
3
|
-
`)];for(let[O,K]of
|
|
4
|
-
`?(_&&(I+=F1("")),q&&
|
|
5
|
-
`&&(q&&
|
|
2
|
+
import{createRequire as j9}from"node:module";var b9=Object.create;var{getPrototypeOf:I9,defineProperty:l1,getOwnPropertyNames:q9}=Object;var _9=Object.prototype.hasOwnProperty;var N=($,x,b)=>{b=$!=null?b9(I9($)):{};let I=x||!$||!$.__esModule?l1(b,"default",{value:$,enumerable:!0}):b;for(let q of q9($))if(!_9.call(I,q))l1(I,q,{get:()=>$[q],enumerable:!0});return I};var w=($,x)=>()=>(x||$((x={exports:{}}).exports,x),x.exports);var h1=j9(import.meta.url);var n$=w(($4,R1)=>{var D$={to($,x){if(!x)return`\x1B[${$+1}G`;return`\x1B[${x+1};${$+1}H`},move($,x){let b="";if($<0)b+=`\x1B[${-$}D`;else if($>0)b+=`\x1B[${$}C`;if(x<0)b+=`\x1B[${-x}A`;else if(x>0)b+=`\x1B[${x}B`;return b},up:($=1)=>`\x1B[${$}A`,down:($=1)=>`\x1B[${$}B`,forward:($=1)=>`\x1B[${$}C`,backward:($=1)=>`\x1B[${$}D`,nextLine:($=1)=>"\x1B[E".repeat($),prevLine:($=1)=>"\x1B[F".repeat($),left:"\x1B[G",hide:"\x1B[?25l",show:"\x1B[?25h",save:"\x1B7",restore:"\x1B8"},B9={up:($=1)=>"\x1B[S".repeat($),down:($=1)=>"\x1B[T".repeat($)},Z9={screen:"\x1B[2J",up:($=1)=>"\x1B[1J".repeat($),down:($=1)=>"\x1B[J".repeat($),line:"\x1B[2K",lineEnd:"\x1B[K",lineStart:"\x1B[1K",lines($){let x="";for(let b=0;b<$;b++)x+=this.line+(b<$-1?D$.up():"");if($)x+=D$.left;return x}};R1.exports={cursor:D$,scroll:B9,erase:Z9,beep:"\x07"}});var i=w((x4,i$)=>{var X$=process||{},P1=X$.argv||[],A$=X$.env||{},O9=!(!!A$.NO_COLOR||P1.includes("--no-color"))&&(!!A$.FORCE_COLOR||P1.includes("--color")||X$.platform==="win32"||(X$.stdout||{}).isTTY&&A$.TERM!=="dumb"||!!A$.CI),K9=($,x,b=$)=>(I)=>{let q=""+I,_=q.indexOf(x,$.length);return~_?$+Q9(q,x,b,_)+x:$+q+x},Q9=($,x,b,I)=>{let q="",_=0;do q+=$.substring(_,I)+b,_=I+x.length,I=$.indexOf(x,_);while(~I);return q+$.substring(_)},C1=($=O9)=>{let x=$?K9:()=>String;return{isColorSupported:$,reset:x("\x1B[0m","\x1B[0m"),bold:x("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:x("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:x("\x1B[3m","\x1B[23m"),underline:x("\x1B[4m","\x1B[24m"),inverse:x("\x1B[7m","\x1B[27m"),hidden:x("\x1B[8m","\x1B[28m"),strikethrough:x("\x1B[9m","\x1B[29m"),black:x("\x1B[30m","\x1B[39m"),red:x("\x1B[31m","\x1B[39m"),green:x("\x1B[32m","\x1B[39m"),yellow:x("\x1B[33m","\x1B[39m"),blue:x("\x1B[34m","\x1B[39m"),magenta:x("\x1B[35m","\x1B[39m"),cyan:x("\x1B[36m","\x1B[39m"),white:x("\x1B[37m","\x1B[39m"),gray:x("\x1B[90m","\x1B[39m"),bgBlack:x("\x1B[40m","\x1B[49m"),bgRed:x("\x1B[41m","\x1B[49m"),bgGreen:x("\x1B[42m","\x1B[49m"),bgYellow:x("\x1B[43m","\x1B[49m"),bgBlue:x("\x1B[44m","\x1B[49m"),bgMagenta:x("\x1B[45m","\x1B[49m"),bgCyan:x("\x1B[46m","\x1B[49m"),bgWhite:x("\x1B[47m","\x1B[49m"),blackBright:x("\x1B[90m","\x1B[39m"),redBright:x("\x1B[91m","\x1B[39m"),greenBright:x("\x1B[92m","\x1B[39m"),yellowBright:x("\x1B[93m","\x1B[39m"),blueBright:x("\x1B[94m","\x1B[39m"),magentaBright:x("\x1B[95m","\x1B[39m"),cyanBright:x("\x1B[96m","\x1B[39m"),whiteBright:x("\x1B[97m","\x1B[39m"),bgBlackBright:x("\x1B[100m","\x1B[49m"),bgRedBright:x("\x1B[101m","\x1B[49m"),bgGreenBright:x("\x1B[102m","\x1B[49m"),bgYellowBright:x("\x1B[103m","\x1B[49m"),bgBlueBright:x("\x1B[104m","\x1B[49m"),bgMagentaBright:x("\x1B[105m","\x1B[49m"),bgCyanBright:x("\x1B[106m","\x1B[49m"),bgWhiteBright:x("\x1B[107m","\x1B[49m")}};i$.exports=C1();i$.exports.createColors=C1});var U$=w((s4,O0)=>{var qx=Number.MAX_SAFE_INTEGER||9007199254740991,_x=["major","premajor","minor","preminor","patch","prepatch","prerelease"];O0.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:16,MAX_SAFE_BUILD_LENGTH:250,MAX_SAFE_INTEGER:qx,RELEASE_TYPES:_x,SEMVER_SPEC_VERSION:"2.0.0",FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Y$=w((a4,K0)=>{var jx=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...$)=>console.error("SEMVER",...$):()=>{};K0.exports=jx});var j$=w((D,Q0)=>{var{MAX_SAFE_COMPONENT_LENGTH:K1,MAX_SAFE_BUILD_LENGTH:Bx,MAX_LENGTH:Zx}=U$(),Ox=Y$();D=Q0.exports={};var Kx=D.re=[],Qx=D.safeRe=[],z=D.src=[],zx=D.safeSrc=[],U=D.t={},Ux=0,Q1="[a-zA-Z0-9-]",Yx=[["\\s",1],["\\d",Zx],[Q1,Bx]],Wx=($)=>{for(let[x,b]of Yx)$=$.split(`${x}*`).join(`${x}{0,${b}}`).split(`${x}+`).join(`${x}{1,${b}}`);return $},H=($,x,b)=>{let I=Wx(x),q=Ux++;Ox($,q,x),U[$]=q,z[q]=x,zx[q]=I,Kx[q]=new RegExp(x,b?"g":void 0),Qx[q]=new RegExp(I,b?"g":void 0)};H("NUMERICIDENTIFIER","0|[1-9]\\d*");H("NUMERICIDENTIFIERLOOSE","\\d+");H("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Q1}*`);H("MAINVERSION",`(${z[U.NUMERICIDENTIFIER]})\\.(${z[U.NUMERICIDENTIFIER]})\\.(${z[U.NUMERICIDENTIFIER]})`);H("MAINVERSIONLOOSE",`(${z[U.NUMERICIDENTIFIERLOOSE]})\\.(${z[U.NUMERICIDENTIFIERLOOSE]})\\.(${z[U.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASEIDENTIFIER",`(?:${z[U.NONNUMERICIDENTIFIER]}|${z[U.NUMERICIDENTIFIER]})`);H("PRERELEASEIDENTIFIERLOOSE",`(?:${z[U.NONNUMERICIDENTIFIER]}|${z[U.NUMERICIDENTIFIERLOOSE]})`);H("PRERELEASE",`(?:-(${z[U.PRERELEASEIDENTIFIER]}(?:\\.${z[U.PRERELEASEIDENTIFIER]})*))`);H("PRERELEASELOOSE",`(?:-?(${z[U.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${z[U.PRERELEASEIDENTIFIERLOOSE]})*))`);H("BUILDIDENTIFIER",`${Q1}+`);H("BUILD",`(?:\\+(${z[U.BUILDIDENTIFIER]}(?:\\.${z[U.BUILDIDENTIFIER]})*))`);H("FULLPLAIN",`v?${z[U.MAINVERSION]}${z[U.PRERELEASE]}?${z[U.BUILD]}?`);H("FULL",`^${z[U.FULLPLAIN]}$`);H("LOOSEPLAIN",`[v=\\s]*${z[U.MAINVERSIONLOOSE]}${z[U.PRERELEASELOOSE]}?${z[U.BUILD]}?`);H("LOOSE",`^${z[U.LOOSEPLAIN]}$`);H("GTLT","((?:<|>)?=?)");H("XRANGEIDENTIFIERLOOSE",`${z[U.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);H("XRANGEIDENTIFIER",`${z[U.NUMERICIDENTIFIER]}|x|X|\\*`);H("XRANGEPLAIN",`[v=\\s]*(${z[U.XRANGEIDENTIFIER]})(?:\\.(${z[U.XRANGEIDENTIFIER]})(?:\\.(${z[U.XRANGEIDENTIFIER]})(?:${z[U.PRERELEASE]})?${z[U.BUILD]}?)?)?`);H("XRANGEPLAINLOOSE",`[v=\\s]*(${z[U.XRANGEIDENTIFIERLOOSE]})(?:\\.(${z[U.XRANGEIDENTIFIERLOOSE]})(?:\\.(${z[U.XRANGEIDENTIFIERLOOSE]})(?:${z[U.PRERELEASELOOSE]})?${z[U.BUILD]}?)?)?`);H("XRANGE",`^${z[U.GTLT]}\\s*${z[U.XRANGEPLAIN]}$`);H("XRANGELOOSE",`^${z[U.GTLT]}\\s*${z[U.XRANGEPLAINLOOSE]}$`);H("COERCEPLAIN",`(^|[^\\d])(\\d{1,${K1}})(?:\\.(\\d{1,${K1}}))?(?:\\.(\\d{1,${K1}}))?`);H("COERCE",`${z[U.COERCEPLAIN]}(?:$|[^\\d])`);H("COERCEFULL",z[U.COERCEPLAIN]+`(?:${z[U.PRERELEASE]})?(?:${z[U.BUILD]})?(?:$|[^\\d])`);H("COERCERTL",z[U.COERCE],!0);H("COERCERTLFULL",z[U.COERCEFULL],!0);H("LONETILDE","(?:~>?)");H("TILDETRIM",`(\\s*)${z[U.LONETILDE]}\\s+`,!0);D.tildeTrimReplace="$1~";H("TILDE",`^${z[U.LONETILDE]}${z[U.XRANGEPLAIN]}$`);H("TILDELOOSE",`^${z[U.LONETILDE]}${z[U.XRANGEPLAINLOOSE]}$`);H("LONECARET","(?:\\^)");H("CARETTRIM",`(\\s*)${z[U.LONECARET]}\\s+`,!0);D.caretTrimReplace="$1^";H("CARET",`^${z[U.LONECARET]}${z[U.XRANGEPLAIN]}$`);H("CARETLOOSE",`^${z[U.LONECARET]}${z[U.XRANGEPLAINLOOSE]}$`);H("COMPARATORLOOSE",`^${z[U.GTLT]}\\s*(${z[U.LOOSEPLAIN]})$|^$`);H("COMPARATOR",`^${z[U.GTLT]}\\s*(${z[U.FULLPLAIN]})$|^$`);H("COMPARATORTRIM",`(\\s*)${z[U.GTLT]}\\s*(${z[U.LOOSEPLAIN]}|${z[U.XRANGEPLAIN]})`,!0);D.comparatorTrimReplace="$1$2$3";H("HYPHENRANGE",`^\\s*(${z[U.XRANGEPLAIN]})\\s+-\\s+(${z[U.XRANGEPLAIN]})\\s*$`);H("HYPHENRANGELOOSE",`^\\s*(${z[U.XRANGEPLAINLOOSE]})\\s+-\\s+(${z[U.XRANGEPLAINLOOSE]})\\s*$`);H("STAR","(<|>)?=?\\s*\\*");H("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");H("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var u$=w((o4,z0)=>{var wx=Object.freeze({loose:!0}),Hx=Object.freeze({}),Jx=($)=>{if(!$)return Hx;if(typeof $!=="object")return wx;return $};z0.exports=Jx});var z1=w((e4,W0)=>{var U0=/^[0-9]+$/,Y0=($,x)=>{if(typeof $==="number"&&typeof x==="number")return $===x?0:$<x?-1:1;let b=U0.test($),I=U0.test(x);if(b&&I)$=+$,x=+x;return $===x?0:b&&!I?-1:I&&!b?1:$<x?-1:1},Gx=($,x)=>Y0(x,$);W0.exports={compareIdentifiers:Y0,rcompareIdentifiers:Gx}});var h=w(($I,H0)=>{var V$=Y$(),{MAX_LENGTH:w0,MAX_SAFE_INTEGER:T$}=U$(),{safeRe:N$,t:M$}=j$(),Sx=u$(),{compareIdentifiers:U1}=z1();class t{constructor($,x){if(x=Sx(x),$ instanceof t)if($.loose===!!x.loose&&$.includePrerelease===!!x.includePrerelease)return $;else $=$.version;else if(typeof $!=="string")throw TypeError(`Invalid version. Must be a string. Got type "${typeof $}".`);if($.length>w0)throw TypeError(`version is longer than ${w0} characters`);V$("SemVer",$,x),this.options=x,this.loose=!!x.loose,this.includePrerelease=!!x.includePrerelease;let b=$.trim().match(x.loose?N$[M$.LOOSE]:N$[M$.FULL]);if(!b)throw TypeError(`Invalid Version: ${$}`);if(this.raw=$,this.major=+b[1],this.minor=+b[2],this.patch=+b[3],this.major>T$||this.major<0)throw TypeError("Invalid major version");if(this.minor>T$||this.minor<0)throw TypeError("Invalid minor version");if(this.patch>T$||this.patch<0)throw TypeError("Invalid patch version");if(!b[4])this.prerelease=[];else this.prerelease=b[4].split(".").map((I)=>{if(/^[0-9]+$/.test(I)){let q=+I;if(q>=0&&q<T$)return q}return I});this.build=b[5]?b[5].split("."):[],this.format()}format(){if(this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length)this.version+=`-${this.prerelease.join(".")}`;return this.version}toString(){return this.version}compare($){if(V$("SemVer.compare",this.version,this.options,$),!($ instanceof t)){if(typeof $==="string"&&$===this.version)return 0;$=new t($,this.options)}if($.version===this.version)return 0;return this.compareMain($)||this.comparePre($)}compareMain($){if(!($ instanceof t))$=new t($,this.options);if(this.major<$.major)return-1;if(this.major>$.major)return 1;if(this.minor<$.minor)return-1;if(this.minor>$.minor)return 1;if(this.patch<$.patch)return-1;if(this.patch>$.patch)return 1;return 0}comparePre($){if(!($ instanceof t))$=new t($,this.options);if(this.prerelease.length&&!$.prerelease.length)return-1;else if(!this.prerelease.length&&$.prerelease.length)return 1;else if(!this.prerelease.length&&!$.prerelease.length)return 0;let x=0;do{let b=this.prerelease[x],I=$.prerelease[x];if(V$("prerelease compare",x,b,I),b===void 0&&I===void 0)return 0;else if(I===void 0)return 1;else if(b===void 0)return-1;else if(b===I)continue;else return U1(b,I)}while(++x)}compareBuild($){if(!($ instanceof t))$=new t($,this.options);let x=0;do{let b=this.build[x],I=$.build[x];if(V$("build compare",x,b,I),b===void 0&&I===void 0)return 0;else if(I===void 0)return 1;else if(b===void 0)return-1;else if(b===I)continue;else return U1(b,I)}while(++x)}inc($,x,b){if($.startsWith("pre")){if(!x&&b===!1)throw Error("invalid increment argument: identifier is empty");if(x){let I=`-${x}`.match(this.options.loose?N$[M$.PRERELEASELOOSE]:N$[M$.PRERELEASE]);if(!I||I[1]!==x)throw Error(`invalid identifier: ${x}`)}}switch($){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",x,b);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",x,b);break;case"prepatch":this.prerelease.length=0,this.inc("patch",x,b),this.inc("pre",x,b);break;case"prerelease":if(this.prerelease.length===0)this.inc("patch",x,b);this.inc("pre",x,b);break;case"release":if(this.prerelease.length===0)throw Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":if(this.minor!==0||this.patch!==0||this.prerelease.length===0)this.major++;this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":if(this.patch!==0||this.prerelease.length===0)this.minor++;this.patch=0,this.prerelease=[];break;case"patch":if(this.prerelease.length===0)this.patch++;this.prerelease=[];break;case"pre":{let I=Number(b)?1:0;if(this.prerelease.length===0)this.prerelease=[I];else{let q=this.prerelease.length;while(--q>=0)if(typeof this.prerelease[q]==="number")this.prerelease[q]++,q=-2;if(q===-1){if(x===this.prerelease.join(".")&&b===!1)throw Error("invalid increment argument: identifier already exists");this.prerelease.push(I)}}if(x){let q=[x,I];if(b===!1)q=[x];if(U1(this.prerelease[0],x)===0){if(isNaN(this.prerelease[1]))this.prerelease=q}else this.prerelease=q}break}default:throw Error(`invalid increment argument: ${$}`)}if(this.raw=this.format(),this.build.length)this.raw+=`+${this.build.join(".")}`;return this}}H0.exports=t});var x$=w((xI,G0)=>{var J0=h(),Ax=($,x,b=!1)=>{if($ instanceof J0)return $;try{return new J0($,x)}catch(I){if(!b)return null;throw I}};G0.exports=Ax});var A0=w((yI,S0)=>{var Xx=x$(),Lx=($,x)=>{let b=Xx($,x);return b?b.version:null};S0.exports=Lx});var L0=w((bI,X0)=>{var dx=x$(),Ex=($,x)=>{let b=dx($.trim().replace(/^[=v]+/,""),x);return b?b.version:null};X0.exports=Ex});var l0=w((II,E0)=>{var d0=h(),lx=($,x,b,I,q)=>{if(typeof b==="string")q=I,I=b,b=void 0;try{return new d0($ instanceof d0?$.version:$,b).inc(x,I,q).version}catch(_){return null}};E0.exports=lx});var P0=w((qI,R0)=>{var h0=x$(),hx=($,x)=>{let b=h0($,null,!0),I=h0(x,null,!0),q=b.compare(I);if(q===0)return null;let _=q>0,y=_?b:I,j=_?I:b,B=!!y.prerelease.length;if(!!j.prerelease.length&&!B){if(!j.patch&&!j.minor)return"major";if(j.compareMain(y)===0){if(j.minor&&!j.patch)return"minor";return"patch"}}let K=B?"pre":"";if(b.major!==I.major)return K+"major";if(b.minor!==I.minor)return K+"minor";if(b.patch!==I.patch)return K+"patch";return"prerelease"};R0.exports=hx});var u0=w((_I,C0)=>{var Rx=h(),Px=($,x)=>new Rx($,x).major;C0.exports=Px});var T0=w((jI,V0)=>{var Cx=h(),ux=($,x)=>new Cx($,x).minor;V0.exports=ux});var M0=w((BI,N0)=>{var Vx=h(),Tx=($,x)=>new Vx($,x).patch;N0.exports=Tx});var f0=w((ZI,F0)=>{var Nx=x$(),Mx=($,x)=>{let b=Nx($,x);return b&&b.prerelease.length?b.prerelease:null};F0.exports=Mx});var k=w((OI,k0)=>{var v0=h(),Fx=($,x,b)=>new v0($,b).compare(new v0(x,b));k0.exports=Fx});var m0=w((KI,g0)=>{var fx=k(),vx=($,x,b)=>fx(x,$,b);g0.exports=vx});var t0=w((QI,c0)=>{var kx=k(),gx=($,x)=>kx($,x,!0);c0.exports=gx});var F$=w((zI,n0)=>{var D0=h(),mx=($,x,b)=>{let I=new D0($,b),q=new D0(x,b);return I.compare(q)||I.compareBuild(q)};n0.exports=mx});var r0=w((UI,i0)=>{var cx=F$(),tx=($,x)=>$.sort((b,I)=>cx(b,I,x));i0.exports=tx});var s0=w((YI,p0)=>{var Dx=F$(),nx=($,x)=>$.sort((b,I)=>Dx(I,b,x));p0.exports=nx});var W$=w((WI,a0)=>{var ix=k(),rx=($,x,b)=>ix($,x,b)>0;a0.exports=rx});var f$=w((wI,o0)=>{var px=k(),sx=($,x,b)=>px($,x,b)<0;o0.exports=sx});var Y1=w((HI,e0)=>{var ax=k(),ox=($,x,b)=>ax($,x,b)===0;e0.exports=ox});var W1=w((JI,$2)=>{var ex=k(),$y=($,x,b)=>ex($,x,b)!==0;$2.exports=$y});var v$=w((GI,x2)=>{var xy=k(),yy=($,x,b)=>xy($,x,b)>=0;x2.exports=yy});var k$=w((SI,y2)=>{var by=k(),Iy=($,x,b)=>by($,x,b)<=0;y2.exports=Iy});var w1=w((AI,b2)=>{var qy=Y1(),_y=W1(),jy=W$(),By=v$(),Zy=f$(),Oy=k$(),Ky=($,x,b,I)=>{switch(x){case"===":if(typeof $==="object")$=$.version;if(typeof b==="object")b=b.version;return $===b;case"!==":if(typeof $==="object")$=$.version;if(typeof b==="object")b=b.version;return $!==b;case"":case"=":case"==":return qy($,b,I);case"!=":return _y($,b,I);case">":return jy($,b,I);case">=":return By($,b,I);case"<":return Zy($,b,I);case"<=":return Oy($,b,I);default:throw TypeError(`Invalid operator: ${x}`)}};b2.exports=Ky});var q2=w((XI,I2)=>{var Qy=h(),zy=x$(),{safeRe:g$,t:m$}=j$(),Uy=($,x)=>{if($ instanceof Qy)return $;if(typeof $==="number")$=String($);if(typeof $!=="string")return null;x=x||{};let b=null;if(!x.rtl)b=$.match(x.includePrerelease?g$[m$.COERCEFULL]:g$[m$.COERCE]);else{let B=x.includePrerelease?g$[m$.COERCERTLFULL]:g$[m$.COERCERTL],O;while((O=B.exec($))&&(!b||b.index+b[0].length!==$.length)){if(!b||O.index+O[0].length!==b.index+b[0].length)b=O;B.lastIndex=O.index+O[1].length+O[2].length}B.lastIndex=-1}if(b===null)return null;let I=b[2],q=b[3]||"0",_=b[4]||"0",y=x.includePrerelease&&b[5]?`-${b[5]}`:"",j=x.includePrerelease&&b[6]?`+${b[6]}`:"";return zy(`${I}.${q}.${_}${y}${j}`,x)};I2.exports=Uy});var B2=w((LI,j2)=>{class _2{constructor(){this.max=1000,this.map=new Map}get($){let x=this.map.get($);if(x===void 0)return;else return this.map.delete($),this.map.set($,x),x}delete($){return this.map.delete($)}set($,x){if(!this.delete($)&&x!==void 0){if(this.map.size>=this.max){let I=this.map.keys().next().value;this.delete(I)}this.map.set($,x)}return this}}j2.exports=_2});var g=w((dI,Q2)=>{var Yy=/\s+/g;class w${constructor($,x){if(x=wy(x),$ instanceof w$)if($.loose===!!x.loose&&$.includePrerelease===!!x.includePrerelease)return $;else return new w$($.raw,x);if($ instanceof H1)return this.raw=$.value,this.set=[[$]],this.formatted=void 0,this;if(this.options=x,this.loose=!!x.loose,this.includePrerelease=!!x.includePrerelease,this.raw=$.trim().replace(Yy," "),this.set=this.raw.split("||").map((b)=>this.parseRange(b.trim())).filter((b)=>b.length),!this.set.length)throw TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let b=this.set[0];if(this.set=this.set.filter((I)=>!O2(I[0])),this.set.length===0)this.set=[b];else if(this.set.length>1){for(let I of this.set)if(I.length===1&&Ly(I[0])){this.set=[I];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let $=0;$<this.set.length;$++){if($>0)this.formatted+="||";let x=this.set[$];for(let b=0;b<x.length;b++){if(b>0)this.formatted+=" ";this.formatted+=x[b].toString().trim()}}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange($){let b=((this.options.includePrerelease&&Ay)|(this.options.loose&&Xy))+":"+$,I=Z2.get(b);if(I)return I;let q=this.options.loose,_=q?C[R.HYPHENRANGELOOSE]:C[R.HYPHENRANGE];$=$.replace(_,Ty(this.options.includePrerelease)),A("hyphen replace",$),$=$.replace(C[R.COMPARATORTRIM],Jy),A("comparator trim",$),$=$.replace(C[R.TILDETRIM],Gy),A("tilde trim",$),$=$.replace(C[R.CARETTRIM],Sy),A("caret trim",$);let y=$.split(" ").map((K)=>dy(K,this.options)).join(" ").split(/\s+/).map((K)=>Vy(K,this.options));if(q)y=y.filter((K)=>{return A("loose invalid filter",K,this.options),!!K.match(C[R.COMPARATORLOOSE])});A("range list",y);let j=new Map,B=y.map((K)=>new H1(K,this.options));for(let K of B){if(O2(K))return[K];j.set(K.value,K)}if(j.size>1&&j.has(""))j.delete("");let O=[...j.values()];return Z2.set(b,O),O}intersects($,x){if(!($ instanceof w$))throw TypeError("a Range is required");return this.set.some((b)=>{return K2(b,x)&&$.set.some((I)=>{return K2(I,x)&&b.every((q)=>{return I.every((_)=>{return q.intersects(_,x)})})})})}test($){if(!$)return!1;if(typeof $==="string")try{$=new Hy($,this.options)}catch(x){return!1}for(let x=0;x<this.set.length;x++)if(Ny(this.set[x],$,this.options))return!0;return!1}}Q2.exports=w$;var Wy=B2(),Z2=new Wy,wy=u$(),H1=H$(),A=Y$(),Hy=h(),{safeRe:C,t:R,comparatorTrimReplace:Jy,tildeTrimReplace:Gy,caretTrimReplace:Sy}=j$(),{FLAG_INCLUDE_PRERELEASE:Ay,FLAG_LOOSE:Xy}=U$(),O2=($)=>$.value==="<0.0.0-0",Ly=($)=>$.value==="",K2=($,x)=>{let b=!0,I=$.slice(),q=I.pop();while(b&&I.length)b=I.every((_)=>{return q.intersects(_,x)}),q=I.pop();return b},dy=($,x)=>{return $=$.replace(C[R.BUILD],""),A("comp",$,x),$=hy($,x),A("caret",$),$=Ey($,x),A("tildes",$),$=Py($,x),A("xrange",$),$=uy($,x),A("stars",$),$},u=($)=>!$||$.toLowerCase()==="x"||$==="*",Ey=($,x)=>{return $.trim().split(/\s+/).map((b)=>ly(b,x)).join(" ")},ly=($,x)=>{let b=x.loose?C[R.TILDELOOSE]:C[R.TILDE];return $.replace(b,(I,q,_,y,j)=>{A("tilde",$,I,q,_,y,j);let B;if(u(q))B="";else if(u(_))B=`>=${q}.0.0 <${+q+1}.0.0-0`;else if(u(y))B=`>=${q}.${_}.0 <${q}.${+_+1}.0-0`;else if(j)A("replaceTilde pr",j),B=`>=${q}.${_}.${y}-${j} <${q}.${+_+1}.0-0`;else B=`>=${q}.${_}.${y} <${q}.${+_+1}.0-0`;return A("tilde return",B),B})},hy=($,x)=>{return $.trim().split(/\s+/).map((b)=>Ry(b,x)).join(" ")},Ry=($,x)=>{A("caret",$,x);let b=x.loose?C[R.CARETLOOSE]:C[R.CARET],I=x.includePrerelease?"-0":"";return $.replace(b,(q,_,y,j,B)=>{A("caret",$,q,_,y,j,B);let O;if(u(_))O="";else if(u(y))O=`>=${_}.0.0${I} <${+_+1}.0.0-0`;else if(u(j))if(_==="0")O=`>=${_}.${y}.0${I} <${_}.${+y+1}.0-0`;else O=`>=${_}.${y}.0${I} <${+_+1}.0.0-0`;else if(B)if(A("replaceCaret pr",B),_==="0")if(y==="0")O=`>=${_}.${y}.${j}-${B} <${_}.${y}.${+j+1}-0`;else O=`>=${_}.${y}.${j}-${B} <${_}.${+y+1}.0-0`;else O=`>=${_}.${y}.${j}-${B} <${+_+1}.0.0-0`;else if(A("no pr"),_==="0")if(y==="0")O=`>=${_}.${y}.${j}${I} <${_}.${y}.${+j+1}-0`;else O=`>=${_}.${y}.${j}${I} <${_}.${+y+1}.0-0`;else O=`>=${_}.${y}.${j} <${+_+1}.0.0-0`;return A("caret return",O),O})},Py=($,x)=>{return A("replaceXRanges",$,x),$.split(/\s+/).map((b)=>Cy(b,x)).join(" ")},Cy=($,x)=>{$=$.trim();let b=x.loose?C[R.XRANGELOOSE]:C[R.XRANGE];return $.replace(b,(I,q,_,y,j,B)=>{A("xRange",$,I,q,_,y,j,B);let O=u(_),K=O||u(y),Q=K||u(j),W=Q;if(q==="="&&W)q="";if(B=x.includePrerelease?"-0":"",O)if(q===">"||q==="<")I="<0.0.0-0";else I="*";else if(q&&W){if(K)y=0;if(j=0,q===">")if(q=">=",K)_=+_+1,y=0,j=0;else y=+y+1,j=0;else if(q==="<=")if(q="<",K)_=+_+1;else y=+y+1;if(q==="<")B="-0";I=`${q+_}.${y}.${j}${B}`}else if(K)I=`>=${_}.0.0${B} <${+_+1}.0.0-0`;else if(Q)I=`>=${_}.${y}.0${B} <${_}.${+y+1}.0-0`;return A("xRange return",I),I})},uy=($,x)=>{return A("replaceStars",$,x),$.trim().replace(C[R.STAR],"")},Vy=($,x)=>{return A("replaceGTE0",$,x),$.trim().replace(C[x.includePrerelease?R.GTE0PRE:R.GTE0],"")},Ty=($)=>(x,b,I,q,_,y,j,B,O,K,Q,W)=>{if(u(I))b="";else if(u(q))b=`>=${I}.0.0${$?"-0":""}`;else if(u(_))b=`>=${I}.${q}.0${$?"-0":""}`;else if(y)b=`>=${b}`;else b=`>=${b}${$?"-0":""}`;if(u(O))B="";else if(u(K))B=`<${+O+1}.0.0-0`;else if(u(Q))B=`<${O}.${+K+1}.0-0`;else if(W)B=`<=${O}.${K}.${Q}-${W}`;else if($)B=`<${O}.${K}.${+Q+1}-0`;else B=`<=${B}`;return`${b} ${B}`.trim()},Ny=($,x,b)=>{for(let I=0;I<$.length;I++)if(!$[I].test(x))return!1;if(x.prerelease.length&&!b.includePrerelease){for(let I=0;I<$.length;I++){if(A($[I].semver),$[I].semver===H1.ANY)continue;if($[I].semver.prerelease.length>0){let q=$[I].semver;if(q.major===x.major&&q.minor===x.minor&&q.patch===x.patch)return!0}}return!1}return!0}});var H$=w((EI,H2)=>{var J$=Symbol("SemVer ANY");class c${static get ANY(){return J$}constructor($,x){if(x=z2(x),$ instanceof c$)if($.loose===!!x.loose)return $;else $=$.value;if($=$.trim().split(/\s+/).join(" "),G1("comparator",$,x),this.options=x,this.loose=!!x.loose,this.parse($),this.semver===J$)this.value="";else this.value=this.operator+this.semver.version;G1("comp",this)}parse($){let x=this.options.loose?U2[Y2.COMPARATORLOOSE]:U2[Y2.COMPARATOR],b=$.match(x);if(!b)throw TypeError(`Invalid comparator: ${$}`);if(this.operator=b[1]!==void 0?b[1]:"",this.operator==="=")this.operator="";if(!b[2])this.semver=J$;else this.semver=new W2(b[2],this.options.loose)}toString(){return this.value}test($){if(G1("Comparator.test",$,this.options.loose),this.semver===J$||$===J$)return!0;if(typeof $==="string")try{$=new W2($,this.options)}catch(x){return!1}return J1($,this.operator,this.semver,this.options)}intersects($,x){if(!($ instanceof c$))throw TypeError("a Comparator is required");if(this.operator===""){if(this.value==="")return!0;return new w2($.value,x).test(this.value)}else if($.operator===""){if($.value==="")return!0;return new w2(this.value,x).test($.semver)}if(x=z2(x),x.includePrerelease&&(this.value==="<0.0.0-0"||$.value==="<0.0.0-0"))return!1;if(!x.includePrerelease&&(this.value.startsWith("<0.0.0")||$.value.startsWith("<0.0.0")))return!1;if(this.operator.startsWith(">")&&$.operator.startsWith(">"))return!0;if(this.operator.startsWith("<")&&$.operator.startsWith("<"))return!0;if(this.semver.version===$.semver.version&&this.operator.includes("=")&&$.operator.includes("="))return!0;if(J1(this.semver,"<",$.semver,x)&&this.operator.startsWith(">")&&$.operator.startsWith("<"))return!0;if(J1(this.semver,">",$.semver,x)&&this.operator.startsWith("<")&&$.operator.startsWith(">"))return!0;return!1}}H2.exports=c$;var z2=u$(),{safeRe:U2,t:Y2}=j$(),J1=w1(),G1=Y$(),W2=h(),w2=g()});var G$=w((lI,J2)=>{var My=g(),Fy=($,x,b)=>{try{x=new My(x,b)}catch(I){return!1}return x.test($)};J2.exports=Fy});var S2=w((hI,G2)=>{var fy=g(),vy=($,x)=>new fy($,x).set.map((b)=>b.map((I)=>I.value).join(" ").trim().split(" "));G2.exports=vy});var X2=w((RI,A2)=>{var ky=h(),gy=g(),my=($,x,b)=>{let I=null,q=null,_=null;try{_=new gy(x,b)}catch(y){return null}return $.forEach((y)=>{if(_.test(y)){if(!I||q.compare(y)===-1)I=y,q=new ky(I,b)}}),I};A2.exports=my});var d2=w((PI,L2)=>{var cy=h(),ty=g(),Dy=($,x,b)=>{let I=null,q=null,_=null;try{_=new ty(x,b)}catch(y){return null}return $.forEach((y)=>{if(_.test(y)){if(!I||q.compare(y)===1)I=y,q=new cy(I,b)}}),I};L2.exports=Dy});var h2=w((CI,l2)=>{var S1=h(),ny=g(),E2=W$(),iy=($,x)=>{$=new ny($,x);let b=new S1("0.0.0");if($.test(b))return b;if(b=new S1("0.0.0-0"),$.test(b))return b;b=null;for(let I=0;I<$.set.length;++I){let q=$.set[I],_=null;if(q.forEach((y)=>{let j=new S1(y.semver.version);switch(y.operator){case">":if(j.prerelease.length===0)j.patch++;else j.prerelease.push(0);j.raw=j.format();case"":case">=":if(!_||E2(j,_))_=j;break;case"<":case"<=":break;default:throw Error(`Unexpected operation: ${y.operator}`)}}),_&&(!b||E2(b,_)))b=_}if(b&&$.test(b))return b;return null};l2.exports=iy});var P2=w((uI,R2)=>{var ry=g(),py=($,x)=>{try{return new ry($,x).range||"*"}catch(b){return null}};R2.exports=py});var t$=w((VI,T2)=>{var sy=h(),V2=H$(),{ANY:ay}=V2,oy=g(),ey=G$(),C2=W$(),u2=f$(),$b=k$(),xb=v$(),yb=($,x,b,I)=>{$=new sy($,I),x=new oy(x,I);let q,_,y,j,B;switch(b){case">":q=C2,_=$b,y=u2,j=">",B=">=";break;case"<":q=u2,_=xb,y=C2,j="<",B="<=";break;default:throw TypeError('Must provide a hilo val of "<" or ">"')}if(ey($,x,I))return!1;for(let O=0;O<x.set.length;++O){let K=x.set[O],Q=null,W=null;if(K.forEach((Y)=>{if(Y.semver===ay)Y=new V2(">=0.0.0");if(Q=Q||Y,W=W||Y,q(Y.semver,Q.semver,I))Q=Y;else if(y(Y.semver,W.semver,I))W=Y}),Q.operator===j||Q.operator===B)return!1;if((!W.operator||W.operator===j)&&_($,W.semver))return!1;else if(W.operator===B&&y($,W.semver))return!1}return!0};T2.exports=yb});var M2=w((TI,N2)=>{var bb=t$(),Ib=($,x,b)=>bb($,x,">",b);N2.exports=Ib});var f2=w((NI,F2)=>{var qb=t$(),_b=($,x,b)=>qb($,x,"<",b);F2.exports=_b});var g2=w((MI,k2)=>{var v2=g(),jb=($,x,b)=>{return $=new v2($,b),x=new v2(x,b),$.intersects(x,b)};k2.exports=jb});var c2=w((FI,m2)=>{var Bb=G$(),Zb=k();m2.exports=($,x,b)=>{let I=[],q=null,_=null,y=$.sort((K,Q)=>Zb(K,Q,b));for(let K of y)if(Bb(K,x,b)){if(_=K,!q)q=K}else{if(_)I.push([q,_]);_=null,q=null}if(q)I.push([q,null]);let j=[];for(let[K,Q]of I)if(K===Q)j.push(K);else if(!Q&&K===y[0])j.push("*");else if(!Q)j.push(`>=${K}`);else if(K===y[0])j.push(`<=${Q}`);else j.push(`${K} - ${Q}`);let B=j.join(" || "),O=typeof x.raw==="string"?x.raw:String(x);return B.length<O.length?B:x}});var p2=w((fI,r2)=>{var t2=g(),X1=H$(),{ANY:A1}=X1,S$=G$(),L1=k(),Ob=($,x,b={})=>{if($===x)return!0;$=new t2($,b),x=new t2(x,b);let I=!1;$:for(let q of $.set){for(let _ of x.set){let y=Qb(q,_,b);if(I=I||y!==null,y)continue $}if(I)return!1}return!0},Kb=[new X1(">=0.0.0-0")],D2=[new X1(">=0.0.0")],Qb=($,x,b)=>{if($===x)return!0;if($.length===1&&$[0].semver===A1)if(x.length===1&&x[0].semver===A1)return!0;else if(b.includePrerelease)$=Kb;else $=D2;if(x.length===1&&x[0].semver===A1)if(b.includePrerelease)return!0;else x=D2;let I=new Set,q,_;for(let Y of $)if(Y.operator===">"||Y.operator===">=")q=n2(q,Y,b);else if(Y.operator==="<"||Y.operator==="<=")_=i2(_,Y,b);else I.add(Y.semver);if(I.size>1)return null;let y;if(q&&_){if(y=L1(q.semver,_.semver,b),y>0)return null;else if(y===0&&(q.operator!==">="||_.operator!=="<="))return null}for(let Y of I){if(q&&!S$(Y,String(q),b))return null;if(_&&!S$(Y,String(_),b))return null;for(let F of x)if(!S$(Y,String(F),b))return!1;return!0}let j,B,O,K,Q=_&&!b.includePrerelease&&_.semver.prerelease.length?_.semver:!1,W=q&&!b.includePrerelease&&q.semver.prerelease.length?q.semver:!1;if(Q&&Q.prerelease.length===1&&_.operator==="<"&&Q.prerelease[0]===0)Q=!1;for(let Y of x){if(K=K||Y.operator===">"||Y.operator===">=",O=O||Y.operator==="<"||Y.operator==="<=",q){if(W){if(Y.semver.prerelease&&Y.semver.prerelease.length&&Y.semver.major===W.major&&Y.semver.minor===W.minor&&Y.semver.patch===W.patch)W=!1}if(Y.operator===">"||Y.operator===">="){if(j=n2(q,Y,b),j===Y&&j!==q)return!1}else if(q.operator===">="&&!S$(q.semver,String(Y),b))return!1}if(_){if(Q){if(Y.semver.prerelease&&Y.semver.prerelease.length&&Y.semver.major===Q.major&&Y.semver.minor===Q.minor&&Y.semver.patch===Q.patch)Q=!1}if(Y.operator==="<"||Y.operator==="<="){if(B=i2(_,Y,b),B===Y&&B!==_)return!1}else if(_.operator==="<="&&!S$(_.semver,String(Y),b))return!1}if(!Y.operator&&(_||q)&&y!==0)return!1}if(q&&O&&!_&&y!==0)return!1;if(_&&K&&!q&&y!==0)return!1;if(W||Q)return!1;return!0},n2=($,x,b)=>{if(!$)return x;let I=L1($.semver,x.semver,b);return I>0?$:I<0?x:x.operator===">"&&$.operator===">="?x:$},i2=($,x,b)=>{if(!$)return x;let I=L1($.semver,x.semver,b);return I<0?$:I>0?x:x.operator==="<"&&$.operator==="<="?x:$};r2.exports=Ob});var e2=w((vI,o2)=>{var d1=j$(),s2=U$(),zb=h(),a2=z1(),Ub=x$(),Yb=A0(),Wb=L0(),wb=l0(),Hb=P0(),Jb=u0(),Gb=T0(),Sb=M0(),Ab=f0(),Xb=k(),Lb=m0(),db=t0(),Eb=F$(),lb=r0(),hb=s0(),Rb=W$(),Pb=f$(),Cb=Y1(),ub=W1(),Vb=v$(),Tb=k$(),Nb=w1(),Mb=q2(),Fb=H$(),fb=g(),vb=G$(),kb=S2(),gb=X2(),mb=d2(),cb=h2(),tb=P2(),Db=t$(),nb=M2(),ib=f2(),rb=g2(),pb=c2(),sb=p2();o2.exports={parse:Ub,valid:Yb,clean:Wb,inc:wb,diff:Hb,major:Jb,minor:Gb,patch:Sb,prerelease:Ab,compare:Xb,rcompare:Lb,compareLoose:db,compareBuild:Eb,sort:lb,rsort:hb,gt:Rb,lt:Pb,eq:Cb,neq:ub,gte:Vb,lte:Tb,cmp:Nb,coerce:Mb,Comparator:Fb,Range:fb,satisfies:vb,toComparators:kb,maxSatisfying:gb,minSatisfying:mb,minVersion:cb,validRange:tb,outside:Db,gtr:nb,ltr:ib,intersects:rb,simplifyRange:pb,subset:sb,SemVer:zb,re:d1.re,src:d1.src,tokens:d1.t,SEMVER_SPEC_VERSION:s2.SEMVER_SPEC_VERSION,RELEASE_TYPES:s2.RELEASE_TYPES,compareIdentifiers:a2.compareIdentifiers,rcompareIdentifiers:a2.rcompareIdentifiers}});var l=N(n$(),1),d$=N(i(),1);import{stdin as m1,stdout as c1}from"node:process";import*as s from"node:readline";import u1 from"node:readline";import{WriteStream as z9}from"node:tty";function U9({onlyFirst:$=!1}={}){let x=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?(?:\\u0007|\\u001B\\u005C|\\u009C))","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp(x,$?void 0:"g")}var Y9=U9();function t1($){if(typeof $!="string")throw TypeError(`Expected a \`string\`, got \`${typeof $}\``);return $.replace(Y9,"")}function D1($){return $&&$.__esModule&&Object.prototype.hasOwnProperty.call($,"default")?$.default:$}var n1={exports:{}};(function($){var x={};$.exports=x,x.eastAsianWidth=function(I){var q=I.charCodeAt(0),_=I.length==2?I.charCodeAt(1):0,y=q;return 55296<=q&&q<=56319&&56320<=_&&_<=57343&&(q&=1023,_&=1023,y=q<<10|_,y+=65536),y==12288||65281<=y&&y<=65376||65504<=y&&y<=65510?"F":y==8361||65377<=y&&y<=65470||65474<=y&&y<=65479||65482<=y&&y<=65487||65490<=y&&y<=65495||65498<=y&&y<=65500||65512<=y&&y<=65518?"H":4352<=y&&y<=4447||4515<=y&&y<=4519||4602<=y&&y<=4607||9001<=y&&y<=9002||11904<=y&&y<=11929||11931<=y&&y<=12019||12032<=y&&y<=12245||12272<=y&&y<=12283||12289<=y&&y<=12350||12353<=y&&y<=12438||12441<=y&&y<=12543||12549<=y&&y<=12589||12593<=y&&y<=12686||12688<=y&&y<=12730||12736<=y&&y<=12771||12784<=y&&y<=12830||12832<=y&&y<=12871||12880<=y&&y<=13054||13056<=y&&y<=19903||19968<=y&&y<=42124||42128<=y&&y<=42182||43360<=y&&y<=43388||44032<=y&&y<=55203||55216<=y&&y<=55238||55243<=y&&y<=55291||63744<=y&&y<=64255||65040<=y&&y<=65049||65072<=y&&y<=65106||65108<=y&&y<=65126||65128<=y&&y<=65131||110592<=y&&y<=110593||127488<=y&&y<=127490||127504<=y&&y<=127546||127552<=y&&y<=127560||127568<=y&&y<=127569||131072<=y&&y<=194367||177984<=y&&y<=196605||196608<=y&&y<=262141?"W":32<=y&&y<=126||162<=y&&y<=163||165<=y&&y<=166||y==172||y==175||10214<=y&&y<=10221||10629<=y&&y<=10630?"Na":y==161||y==164||167<=y&&y<=168||y==170||173<=y&&y<=174||176<=y&&y<=180||182<=y&&y<=186||188<=y&&y<=191||y==198||y==208||215<=y&&y<=216||222<=y&&y<=225||y==230||232<=y&&y<=234||236<=y&&y<=237||y==240||242<=y&&y<=243||247<=y&&y<=250||y==252||y==254||y==257||y==273||y==275||y==283||294<=y&&y<=295||y==299||305<=y&&y<=307||y==312||319<=y&&y<=322||y==324||328<=y&&y<=331||y==333||338<=y&&y<=339||358<=y&&y<=359||y==363||y==462||y==464||y==466||y==468||y==470||y==472||y==474||y==476||y==593||y==609||y==708||y==711||713<=y&&y<=715||y==717||y==720||728<=y&&y<=731||y==733||y==735||768<=y&&y<=879||913<=y&&y<=929||931<=y&&y<=937||945<=y&&y<=961||963<=y&&y<=969||y==1025||1040<=y&&y<=1103||y==1105||y==8208||8211<=y&&y<=8214||8216<=y&&y<=8217||8220<=y&&y<=8221||8224<=y&&y<=8226||8228<=y&&y<=8231||y==8240||8242<=y&&y<=8243||y==8245||y==8251||y==8254||y==8308||y==8319||8321<=y&&y<=8324||y==8364||y==8451||y==8453||y==8457||y==8467||y==8470||8481<=y&&y<=8482||y==8486||y==8491||8531<=y&&y<=8532||8539<=y&&y<=8542||8544<=y&&y<=8555||8560<=y&&y<=8569||y==8585||8592<=y&&y<=8601||8632<=y&&y<=8633||y==8658||y==8660||y==8679||y==8704||8706<=y&&y<=8707||8711<=y&&y<=8712||y==8715||y==8719||y==8721||y==8725||y==8730||8733<=y&&y<=8736||y==8739||y==8741||8743<=y&&y<=8748||y==8750||8756<=y&&y<=8759||8764<=y&&y<=8765||y==8776||y==8780||y==8786||8800<=y&&y<=8801||8804<=y&&y<=8807||8810<=y&&y<=8811||8814<=y&&y<=8815||8834<=y&&y<=8835||8838<=y&&y<=8839||y==8853||y==8857||y==8869||y==8895||y==8978||9312<=y&&y<=9449||9451<=y&&y<=9547||9552<=y&&y<=9587||9600<=y&&y<=9615||9618<=y&&y<=9621||9632<=y&&y<=9633||9635<=y&&y<=9641||9650<=y&&y<=9651||9654<=y&&y<=9655||9660<=y&&y<=9661||9664<=y&&y<=9665||9670<=y&&y<=9672||y==9675||9678<=y&&y<=9681||9698<=y&&y<=9701||y==9711||9733<=y&&y<=9734||y==9737||9742<=y&&y<=9743||9748<=y&&y<=9749||y==9756||y==9758||y==9792||y==9794||9824<=y&&y<=9825||9827<=y&&y<=9829||9831<=y&&y<=9834||9836<=y&&y<=9837||y==9839||9886<=y&&y<=9887||9918<=y&&y<=9919||9924<=y&&y<=9933||9935<=y&&y<=9953||y==9955||9960<=y&&y<=9983||y==10045||y==10071||10102<=y&&y<=10111||11093<=y&&y<=11097||12872<=y&&y<=12879||57344<=y&&y<=63743||65024<=y&&y<=65039||y==65533||127232<=y&&y<=127242||127248<=y&&y<=127277||127280<=y&&y<=127337||127344<=y&&y<=127386||917760<=y&&y<=917999||983040<=y&&y<=1048573||1048576<=y&&y<=1114109?"A":"N"},x.characterLength=function(I){var q=this.eastAsianWidth(I);return q=="F"||q=="W"||q=="A"?2:1};function b(I){return I.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}x.length=function(I){for(var q=b(I),_=0,y=0;y<q.length;y++)_=_+this.characterLength(q[y]);return _},x.slice=function(I,q,_){textLen=x.length(I),q=q||0,_=_||1,q<0&&(q=textLen+q),_<0&&(_=textLen+_);for(var y="",j=0,B=b(I),O=0;O<B.length;O++){var K=B[O],Q=x.length(K);if(j>=q-(Q==2?1:0))if(j+Q<=_)y+=K;else break;j+=Q}return y}})(n1);var W9=n1.exports,w9=D1(W9),H9=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g},J9=D1(H9);function B$($,x={}){if(typeof $!="string"||$.length===0||(x={ambiguousIsNarrow:!0,...x},$=t1($),$.length===0))return 0;$=$.replace(J9()," ");let b=x.ambiguousIsNarrow?1:2,I=0;for(let q of $){let _=q.codePointAt(0);if(_<=31||_>=127&&_<=159||_>=768&&_<=879)continue;switch(w9.eastAsianWidth(q)){case"F":case"W":I+=2;break;case"A":I+=b;break;default:I+=1}}return I}var r$=10,V1=($=0)=>(x)=>`\x1B[${x+$}m`,T1=($=0)=>(x)=>`\x1B[${38+$};5;${x}m`,N1=($=0)=>(x,b,I)=>`\x1B[${38+$};2;${x};${b};${I}m`,X={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(X.modifier);var G9=Object.keys(X.color),S9=Object.keys(X.bgColor);[...G9,...S9];function A9(){let $=new Map;for(let[x,b]of Object.entries(X)){for(let[I,q]of Object.entries(b))X[I]={open:`\x1B[${q[0]}m`,close:`\x1B[${q[1]}m`},b[I]=X[I],$.set(q[0],q[1]);Object.defineProperty(X,x,{value:b,enumerable:!1})}return Object.defineProperty(X,"codes",{value:$,enumerable:!1}),X.color.close="\x1B[39m",X.bgColor.close="\x1B[49m",X.color.ansi=V1(),X.color.ansi256=T1(),X.color.ansi16m=N1(),X.bgColor.ansi=V1(r$),X.bgColor.ansi256=T1(r$),X.bgColor.ansi16m=N1(r$),Object.defineProperties(X,{rgbToAnsi256:{value:(x,b,I)=>x===b&&b===I?x<8?16:x>248?231:Math.round((x-8)/247*24)+232:16+36*Math.round(x/255*5)+6*Math.round(b/255*5)+Math.round(I/255*5),enumerable:!1},hexToRgb:{value:(x)=>{let b=/[a-f\d]{6}|[a-f\d]{3}/i.exec(x.toString(16));if(!b)return[0,0,0];let[I]=b;I.length===3&&(I=[...I].map((_)=>_+_).join(""));let q=Number.parseInt(I,16);return[q>>16&255,q>>8&255,q&255]},enumerable:!1},hexToAnsi256:{value:(x)=>X.rgbToAnsi256(...X.hexToRgb(x)),enumerable:!1},ansi256ToAnsi:{value:(x)=>{if(x<8)return 30+x;if(x<16)return 90+(x-8);let b,I,q;if(x>=232)b=((x-232)*10+8)/255,I=b,q=b;else{x-=16;let j=x%36;b=Math.floor(x/36)/5,I=Math.floor(j/6)/5,q=j%6/5}let _=Math.max(b,I,q)*2;if(_===0)return 30;let y=30+(Math.round(q)<<2|Math.round(I)<<1|Math.round(b));return _===2&&(y+=60),y},enumerable:!1},rgbToAnsi:{value:(x,b,I)=>X.ansi256ToAnsi(X.rgbToAnsi256(x,b,I)),enumerable:!1},hexToAnsi:{value:(x)=>X.ansi256ToAnsi(X.hexToAnsi256(x)),enumerable:!1}}),X}var X9=A9(),E$=new Set(["\x1B",""]),L9=39,s$="\x07",i1="[",d9="]",r1="m",a$=`${d9}8;;`,M1=($)=>`${E$.values().next().value}${i1}${$}${r1}`,F1=($)=>`${E$.values().next().value}${a$}${$}${s$}`,E9=($)=>$.split(" ").map((x)=>B$(x)),p$=($,x,b)=>{let I=[...x],q=!1,_=!1,y=B$(t1($[$.length-1]));for(let[j,B]of I.entries()){let O=B$(B);if(y+O<=b?$[$.length-1]+=B:($.push(B),y=0),E$.has(B)&&(q=!0,_=I.slice(j+1).join("").startsWith(a$)),q){_?B===s$&&(q=!1,_=!1):B===r1&&(q=!1);continue}y+=O,y===b&&j<I.length-1&&($.push(""),y=0)}!y&&$[$.length-1].length>0&&$.length>1&&($[$.length-2]+=$.pop())},l9=($)=>{let x=$.split(" "),b=x.length;for(;b>0&&!(B$(x[b-1])>0);)b--;return b===x.length?$:x.slice(0,b).join(" ")+x.slice(b).join("")},h9=($,x,b={})=>{if(b.trim!==!1&&$.trim()==="")return"";let I="",q,_,y=E9($),j=[""];for(let[O,K]of $.split(" ").entries()){b.trim!==!1&&(j[j.length-1]=j[j.length-1].trimStart());let Q=B$(j[j.length-1]);if(O!==0&&(Q>=x&&(b.wordWrap===!1||b.trim===!1)&&(j.push(""),Q=0),(Q>0||b.trim===!1)&&(j[j.length-1]+=" ",Q++)),b.hard&&y[O]>x){let W=x-Q,Y=1+Math.floor((y[O]-W-1)/x);Math.floor((y[O]-1)/x)<Y&&j.push(""),p$(j,K,x);continue}if(Q+y[O]>x&&Q>0&&y[O]>0){if(b.wordWrap===!1&&Q<x){p$(j,K,x);continue}j.push("")}if(Q+y[O]>x&&b.wordWrap===!1){p$(j,K,x);continue}j[j.length-1]+=K}b.trim!==!1&&(j=j.map((O)=>l9(O)));let B=[...j.join(`
|
|
3
|
+
`)];for(let[O,K]of B.entries()){if(I+=K,E$.has(K)){let{groups:W}=new RegExp(`(?:\\${i1}(?<code>\\d+)m|\\${a$}(?<uri>.*)${s$})`).exec(B.slice(O).join(""))||{groups:{}};if(W.code!==void 0){let Y=Number.parseFloat(W.code);q=Y===L9?void 0:Y}else W.uri!==void 0&&(_=W.uri.length===0?void 0:W.uri)}let Q=X9.codes.get(Number(q));B[O+1]===`
|
|
4
|
+
`?(_&&(I+=F1("")),q&&Q&&(I+=M1(Q))):K===`
|
|
5
|
+
`&&(q&&Q&&(I+=M1(q)),_&&(I+=F1(_)))}return I};function f1($,x,b){return String($).normalize().replace(/\r\n/g,`
|
|
6
6
|
`).split(`
|
|
7
7
|
`).map((I)=>h9(I,x,b)).join(`
|
|
8
8
|
`)}var R9=Object.defineProperty,P9=($,x,b)=>(x in $)?R9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,f=($,x,b)=>(P9($,typeof x!="symbol"?x+"":x,b),b);function C9($,x){if($===x)return;let b=$.split(`
|
|
9
9
|
`),I=x.split(`
|
|
10
|
-
`),q=[];for(let _=0;_<Math.max(b.length,I.length);_++)b[_]!==I[_]&&q.push(_);return q}var p1=Symbol("clack:cancel");function P($){return $===p1}function L$($,x){$.isTTY&&$.setRawMode(x)}var v1=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),u9=new Set(["up","down","left","right","space","enter"]);class Z${constructor({render:$,input:x=m1,output:b=c1,...I},q=!0){f(this,"input"),f(this,"output"),f(this,"rl"),f(this,"opts"),f(this,"_track",!1),f(this,"_render"),f(this,"_cursor",0),f(this,"state","initial"),f(this,"value"),f(this,"error",""),f(this,"subscribers",new Map),f(this,"_prevFrame",""),this.opts=I,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=$.bind(this),this._track=q,this.input=x,this.output=b}prompt(){let $=new
|
|
10
|
+
`),q=[];for(let _=0;_<Math.max(b.length,I.length);_++)b[_]!==I[_]&&q.push(_);return q}var p1=Symbol("clack:cancel");function P($){return $===p1}function L$($,x){$.isTTY&&$.setRawMode(x)}var v1=new Map([["k","up"],["j","down"],["h","left"],["l","right"]]),u9=new Set(["up","down","left","right","space","enter"]);class Z${constructor({render:$,input:x=m1,output:b=c1,...I},q=!0){f(this,"input"),f(this,"output"),f(this,"rl"),f(this,"opts"),f(this,"_track",!1),f(this,"_render"),f(this,"_cursor",0),f(this,"state","initial"),f(this,"value"),f(this,"error",""),f(this,"subscribers",new Map),f(this,"_prevFrame",""),this.opts=I,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=$.bind(this),this._track=q,this.input=x,this.output=b}prompt(){let $=new z9(0);return $._write=(x,b,I)=>{this._track&&(this.value=this.rl.line.replace(/\t/g,""),this._cursor=this.rl.cursor,this.emit("value",this.value)),I()},this.input.pipe($),this.rl=u1.createInterface({input:this.input,output:$,tabSize:2,prompt:"",escapeCodeTimeout:50}),u1.emitKeypressEvents(this.input,this.rl),this.rl.prompt(),this.opts.initialValue!==void 0&&this._track&&this.rl.write(this.opts.initialValue),this.input.on("keypress",this.onKeypress),L$(this.input,!0),this.output.on("resize",this.render),this.render(),new Promise((x,b)=>{this.once("submit",()=>{this.output.write(l.cursor.show),this.output.off("resize",this.render),L$(this.input,!1),x(this.value)}),this.once("cancel",()=>{this.output.write(l.cursor.show),this.output.off("resize",this.render),L$(this.input,!1),x(p1)})})}on($,x){let b=this.subscribers.get($)??[];b.push({cb:x}),this.subscribers.set($,b)}once($,x){let b=this.subscribers.get($)??[];b.push({cb:x,once:!0}),this.subscribers.set($,b)}emit($,...x){let b=this.subscribers.get($)??[],I=[];for(let q of b)q.cb(...x),q.once&&I.push(()=>b.splice(b.indexOf(q),1));for(let q of I)q()}unsubscribe(){this.subscribers.clear()}onKeypress($,x){if(this.state==="error"&&(this.state="active"),x?.name&&!this._track&&v1.has(x.name)&&this.emit("cursor",v1.get(x.name)),x?.name&&u9.has(x.name)&&this.emit("cursor",x.name),$&&($.toLowerCase()==="y"||$.toLowerCase()==="n")&&this.emit("confirm",$.toLowerCase()==="y"),$==="\t"&&this.opts.placeholder&&(this.value||(this.rl.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),$&&this.emit("key",$.toLowerCase()),x?.name==="return"){if(this.opts.validate){let b=this.opts.validate(this.value);b&&(this.error=b,this.state="error",this.rl.write(this.value))}this.state!=="error"&&(this.state="submit")}$==="\x03"&&(this.state="cancel"),(this.state==="submit"||this.state==="cancel")&&this.emit("finalize"),this.render(),(this.state==="submit"||this.state==="cancel")&&this.close()}close(){this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
11
11
|
`),L$(this.input,!1),this.rl.close(),this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let $=f1(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
|
|
12
12
|
`).length-1;this.output.write(l.cursor.move(-999,$*-1))}render(){let $=f1(this._render(this)??"",process.stdout.columns,{hard:!0});if($!==this._prevFrame){if(this.state==="initial")this.output.write(l.cursor.hide);else{let x=C9(this._prevFrame,$);if(this.restoreCursor(),x&&x?.length===1){let b=x[0];this.output.write(l.cursor.move(0,b)),this.output.write(l.erase.lines(1));let I=$.split(`
|
|
13
13
|
`);this.output.write(I[b]),this._prevFrame=$,this.output.write(l.cursor.move(0,I.length-b-1));return}else if(x&&x?.length>1){let b=x[0];this.output.write(l.cursor.move(0,b)),this.output.write(l.erase.down());let I=$.split(`
|
|
14
14
|
`).slice(b);this.output.write(I.join(`
|
|
15
|
-
`)),this._prevFrame=$;return}this.output.write(l.erase.down())}this.output.write($),this.state==="initial"&&(this.state="active"),this._prevFrame=$}}}class o$ extends Z${get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor($){super($,!1),this.value=!!$.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(x)=>{this.output.write(l.cursor.move(0,-1)),this.value=x,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var V9=Object.defineProperty,T9=($,x,b)=>(x in $)?V9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,k1=($,x,b)=>(T9($,typeof x!="symbol"?x+"":x,b),b),s1=class extends Z${constructor($){super($,!1),k1(this,"options"),k1(this,"cursor",0),this.options=$.options,this.value=[...$.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:x})=>x===$.cursorAt),0),this.on("key",(x)=>{x==="a"&&this.toggleAll()}),this.on("cursor",(x)=>{switch(x){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let $=this.value.length===this.options.length;this.value=$?[]:this.options.map((x)=>x.value)}toggleValue(){let $=this.value.includes(this._value);this.value=$?this.value.filter((x)=>x!==this._value):[...this.value,this._value]}};var N9=Object.defineProperty,M9=($,x,b)=>(x in $)?N9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,g1=($,x,b)=>(M9($,typeof x!="symbol"?x+"":x,b),b),a1=class extends Z${constructor($){super($,!1),g1(this,"options"),g1(this,"cursor",0),this.options=$.options,this.cursor=this.options.findIndex(({value:x})=>x===$.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(x)=>{switch(x){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};var F9=Object.defineProperty,f9=($,x,b)=>(x in $)?F9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,v9=($,x,b)=>(f9($,typeof x!="symbol"?x+"":x,b),b);class e$ extends Z${constructor($){super($),v9(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=$.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${
|
|
15
|
+
`)),this._prevFrame=$;return}this.output.write(l.erase.down())}this.output.write($),this.state==="initial"&&(this.state="active"),this._prevFrame=$}}}class o$ extends Z${get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor($){super($,!1),this.value=!!$.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(x)=>{this.output.write(l.cursor.move(0,-1)),this.value=x,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var V9=Object.defineProperty,T9=($,x,b)=>(x in $)?V9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,k1=($,x,b)=>(T9($,typeof x!="symbol"?x+"":x,b),b),s1=class extends Z${constructor($){super($,!1),k1(this,"options"),k1(this,"cursor",0),this.options=$.options,this.value=[...$.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:x})=>x===$.cursorAt),0),this.on("key",(x)=>{x==="a"&&this.toggleAll()}),this.on("cursor",(x)=>{switch(x){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break;case"space":this.toggleValue();break}})}get _value(){return this.options[this.cursor].value}toggleAll(){let $=this.value.length===this.options.length;this.value=$?[]:this.options.map((x)=>x.value)}toggleValue(){let $=this.value.includes(this._value);this.value=$?this.value.filter((x)=>x!==this._value):[...this.value,this._value]}};var N9=Object.defineProperty,M9=($,x,b)=>(x in $)?N9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,g1=($,x,b)=>(M9($,typeof x!="symbol"?x+"":x,b),b),a1=class extends Z${constructor($){super($,!1),g1(this,"options"),g1(this,"cursor",0),this.options=$.options,this.cursor=this.options.findIndex(({value:x})=>x===$.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(x)=>{switch(x){case"left":case"up":this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break;case"down":case"right":this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}this.changeValue()})}get _value(){return this.options[this.cursor]}changeValue(){this.value=this._value.value}};var F9=Object.defineProperty,f9=($,x,b)=>(x in $)?F9($,x,{enumerable:!0,configurable:!0,writable:!0,value:b}):$[x]=b,v9=($,x,b)=>(f9($,typeof x!="symbol"?x+"":x,b),b);class e$ extends Z${constructor($){super($),v9(this,"valueWithCursor",""),this.on("finalize",()=>{this.value||(this.value=$.defaultValue),this.valueWithCursor=this.value}),this.on("value",()=>{if(this.cursor>=this.value.length)this.valueWithCursor=`${this.value}${d$.default.inverse(d$.default.hidden("_"))}`;else{let x=this.value.slice(0,this.cursor),b=this.value.slice(this.cursor);this.valueWithCursor=`${x}${d$.default.inverse(b[0])}${b.slice(1)}`}})}get cursor(){return this._cursor}}var k9=globalThis.process.platform.startsWith("win");function o1({input:$=m1,output:x=c1,overwrite:b=!0,hideCursor:I=!0}={}){let q=s.createInterface({input:$,output:x,prompt:"",tabSize:1});s.emitKeypressEvents($,q),$.isTTY&&$.setRawMode(!0);let _=(y,{name:j})=>{if(String(y)==="\x03"){I&&x.write(l.cursor.show),process.exit(0);return}if(!b)return;s.moveCursor(x,j==="return"?0:-1,j==="return"?-1:0,()=>{s.clearLine(x,1,()=>{$.once("keypress",_)})})};return I&&x.write(l.cursor.hide),$.once("keypress",_),()=>{$.off("keypress",_),I&&x.write(l.cursor.show),$.isTTY&&!k9&&$.setRawMode(!1),q.terminal=!1,q.close()}}var Z=N(i(),1),b$=N(n$(),1);import m from"node:process";function g9(){return m.platform!=="win32"?m.env.TERM!=="linux":Boolean(m.env.CI)||Boolean(m.env.WT_SESSION)||Boolean(m.env.TERMINUS_SUBLIME)||m.env.ConEmuTask==="{cmd::Cmder}"||m.env.TERM_PROGRAM==="Terminus-Sublime"||m.env.TERM_PROGRAM==="vscode"||m.env.TERM==="xterm-256color"||m.env.TERM==="alacritty"||m.env.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var x1=g9(),L=($,x)=>x1?$:x,m9=L("◆","*"),x0=L("■","x"),y0=L("▲","x"),I1=L("◇","o"),c9=L("┌","T"),J=L("│","|"),a=L("└","—"),y1=L("●",">"),b1=L("○"," "),t9=L("◻","[•]"),e1=L("◼","[+]"),D9=L("◻","[ ]"),z4=L("▪","•"),$0=L("─","-"),n9=L("╮","+"),i9=L("├","+"),r9=L("╯","+"),U4=L("●","•"),Y4=L("◆","*"),W4=L("▲","!"),w4=L("■","x"),l$=($)=>{switch($){case"initial":case"active":return Z.default.cyan(m9);case"cancel":return Z.default.red(x0);case"error":return Z.default.yellow(y0);case"submit":return Z.default.green(I1)}},I$=($)=>new e$({validate:$.validate,placeholder:$.placeholder,defaultValue:$.defaultValue,initialValue:$.initialValue,render(){let x=`${Z.default.gray(J)}
|
|
16
16
|
${l$(this.state)} ${$.message}
|
|
17
17
|
`,b=$.placeholder?Z.default.inverse($.placeholder[0])+Z.default.dim($.placeholder.slice(1)):Z.default.inverse(Z.default.hidden("_")),I=this.value?this.valueWithCursor:b;switch(this.state){case"error":return`${x.trim()}
|
|
18
18
|
${Z.default.yellow(J)} ${I}
|
|
@@ -28,7 +28,7 @@ ${Z.default.cyan(a)}
|
|
|
28
28
|
`}}}).prompt()},M=($)=>{let x=(I,q)=>{let _=I.label??String(I.value);return q==="active"?`${Z.default.green(y1)} ${_} ${I.hint?Z.default.dim(`(${I.hint})`):""}`:q==="selected"?`${Z.default.dim(_)}`:q==="cancelled"?`${Z.default.strikethrough(Z.default.dim(_))}`:`${Z.default.dim(b1)} ${Z.default.dim(_)}`},b=0;return new a1({options:$.options,initialValue:$.initialValue,render(){let I=`${Z.default.gray(J)}
|
|
29
29
|
${l$(this.state)} ${$.message}
|
|
30
30
|
`;switch(this.state){case"submit":return`${I}${Z.default.gray(J)} ${x(this.options[this.cursor],"selected")}`;case"cancel":return`${I}${Z.default.gray(J)} ${x(this.options[this.cursor],"cancelled")}
|
|
31
|
-
${Z.default.gray(J)}`;default:{let q=$.maxItems===void 0?1/0:Math.max($.maxItems,5);this.cursor>=b+q-3?b=Math.max(Math.min(this.cursor-q+3,this.options.length-q),0):this.cursor<b+2&&(b=Math.max(this.cursor-2,0));let _=q<this.options.length&&b>0,y=q<this.options.length&&b+q<this.options.length;return`${I}${Z.default.cyan(J)} ${this.options.slice(b,b+q).map((B,
|
|
31
|
+
${Z.default.gray(J)}`;default:{let q=$.maxItems===void 0?1/0:Math.max($.maxItems,5);this.cursor>=b+q-3?b=Math.max(Math.min(this.cursor-q+3,this.options.length-q),0):this.cursor<b+2&&(b=Math.max(this.cursor-2,0));let _=q<this.options.length&&b>0,y=q<this.options.length&&b+q<this.options.length;return`${I}${Z.default.cyan(J)} ${this.options.slice(b,b+q).map((j,B,O)=>B===0&&_?Z.default.dim("..."):B===O.length-1&&y?Z.default.dim("..."):x(j,B+b===this.cursor?"active":"inactive")).join(`
|
|
32
32
|
${Z.default.cyan(J)} `)}
|
|
33
33
|
${Z.default.cyan(a)}
|
|
34
34
|
`}}}}).prompt()};var b0=($)=>{let x=(b,I)=>{let q=b.label??String(b.value);return I==="active"?`${Z.default.cyan(t9)} ${q} ${b.hint?Z.default.dim(`(${b.hint})`):""}`:I==="selected"?`${Z.default.green(e1)} ${Z.default.dim(q)}`:I==="cancelled"?`${Z.default.strikethrough(Z.default.dim(q))}`:I==="active-selected"?`${Z.default.green(e1)} ${q} ${b.hint?Z.default.dim(`(${b.hint})`):""}`:I==="submitted"?`${Z.default.dim(q)}`:`${Z.default.dim(D9)} ${Z.default.dim(q)}`};return new s1({options:$.options,initialValues:$.initialValues,required:$.required??!0,cursorAt:$.cursorAt,validate(b){if(this.required&&b.length===0)return`Please select at least one option.
|
|
@@ -37,16 +37,16 @@ ${l$(this.state)} ${$.message}
|
|
|
37
37
|
`;switch(this.state){case"submit":return`${b}${Z.default.gray(J)} ${this.options.filter(({value:I})=>this.value.includes(I)).map((I)=>x(I,"submitted")).join(Z.default.dim(", "))||Z.default.dim("none")}`;case"cancel":{let I=this.options.filter(({value:q})=>this.value.includes(q)).map((q)=>x(q,"cancelled")).join(Z.default.dim(", "));return`${b}${Z.default.gray(J)} ${I.trim()?`${I}
|
|
38
38
|
${Z.default.gray(J)}`:""}`}case"error":{let I=this.error.split(`
|
|
39
39
|
`).map((q,_)=>_===0?`${Z.default.yellow(a)} ${Z.default.yellow(q)}`:` ${q}`).join(`
|
|
40
|
-
`);return b+Z.default.yellow(J)+" "+this.options.map((q,_)=>{let y=this.value.includes(q.value),
|
|
40
|
+
`);return b+Z.default.yellow(J)+" "+this.options.map((q,_)=>{let y=this.value.includes(q.value),j=_===this.cursor;return j&&y?x(q,"active-selected"):y?x(q,"selected"):x(q,j?"active":"inactive")}).join(`
|
|
41
41
|
${Z.default.yellow(J)} `)+`
|
|
42
42
|
`+I+`
|
|
43
43
|
`}default:return`${b}${Z.default.cyan(J)} ${this.options.map((I,q)=>{let _=this.value.includes(I.value),y=q===this.cursor;return y&&_?x(I,"active-selected"):_?x(I,"selected"):x(I,y?"active":"inactive")}).join(`
|
|
44
44
|
${Z.default.cyan(J)} `)}
|
|
45
45
|
${Z.default.cyan(a)}
|
|
46
|
-
`}}}).prompt()};var $1=($)=>$.replace(p9(),""),
|
|
46
|
+
`}}}).prompt()};var $1=($)=>$.replace(p9(),""),d=($="",x="")=>{let b=`
|
|
47
47
|
${$}
|
|
48
48
|
`.split(`
|
|
49
|
-
`),I=$1(x).length,q=Math.max(b.reduce((y,
|
|
49
|
+
`),I=$1(x).length,q=Math.max(b.reduce((y,j)=>(j=$1(j),j.length>y?j.length:y),0),I)+2,_=b.map((y)=>`${Z.default.gray(J)} ${Z.default.dim(y)}${" ".repeat(q-$1(y).length)}${Z.default.gray(J)}`).join(`
|
|
50
50
|
`);process.stdout.write(`${Z.default.gray(J)}
|
|
51
51
|
${Z.default.green(I1)} ${Z.default.reset(x)} ${Z.default.gray($0.repeat(Math.max(q-I-1,1))+n9)}
|
|
52
52
|
${_}
|
|
@@ -58,8 +58,8 @@ ${Z.default.gray(i9+$0.repeat(q+2)+r9)}
|
|
|
58
58
|
${Z.default.gray(a)} ${$}
|
|
59
59
|
|
|
60
60
|
`)};var e=()=>{let $=x1?["◒","◐","◓","◑"]:["•","o","O","0"],x=x1?80:120,b,I,q=!1,_="",y=(K="")=>{q=!0,b=o1(),_=K.replace(/\.+$/,""),process.stdout.write(`${Z.default.gray(J)}
|
|
61
|
-
`);let
|
|
62
|
-
`),b()},
|
|
61
|
+
`);let Q=0,W=0;I=setInterval(()=>{let Y=Z.default.magenta($[Q]),F=".".repeat(Math.floor(W)).slice(0,3);process.stdout.write(b$.cursor.move(-999,0)),process.stdout.write(b$.erase.down(1)),process.stdout.write(`${Y} ${_}${F}`),Q=Q+1<$.length?Q+1:0,W=W<$.length?W+0.125:0},x)},j=(K="",Q=0)=>{_=K??_,q=!1,clearInterval(I);let W=Q===0?Z.default.green(I1):Q===1?Z.default.red(x0):Z.default.red(y0);process.stdout.write(b$.cursor.move(-999,0)),process.stdout.write(b$.erase.down(1)),process.stdout.write(`${W} ${_}
|
|
62
|
+
`),b()},B=(K="")=>{_=K??_},O=(K)=>{let Q=K>1?"Something went wrong":"Canceled";q&&j(Q,K)};return process.on("uncaughtExceptionMonitor",()=>O(2)),process.on("unhandledRejection",()=>O(2)),process.on("SIGINT",()=>O(1)),process.on("SIGTERM",()=>O(1)),process.on("exit",O),{start:y,stop:j,message:B}};function p9(){let $=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"].join("|");return new RegExp($,"g")}import{readFile as yx,writeFile as bx}from"node:fs/promises";import{join as Ix}from"node:path";var o=N(i(),1);var h$=N(i(),1);var O$={name:"workspace-helper",version:"1.0.4",description:"CLI tool to detect and fix mismatched dependency versions in monorepos",keywords:["monorepo","dependency","version","align","cli"],bugs:{url:"https://github.com/nyambogahezron/workspace-helper/issues"},homepage:"https://workspace-helper-sepia.vercel.app/",private:!1,scripts:{build:"bun build ./src/index.ts --outdir ./dist --target=node --minify && tsc --emitDeclarationOnly --declaration","docs:build":"cd docs && bun install && bun run build",dev:"bun run ./src/index.ts",start:"bun run ./dist/index.js",format:"biome format --write .",lint:"biome lint --write .",prepare:"husky",prepublishOnly:"npm run build"},main:"./dist/index.js",types:"./dist/src/index.d.ts",files:["dist"],bin:{wh:"dist/index.js","workspace-helper":"dist/index.js",wva:"dist/index.js","align-versions":"dist/index.js"},repository:{type:"git",url:"git+https://github.com/nyambogahezron/workspace-helper.git"},author:"Hezron Nyamboga <hezronnyamboga01@gmail.com>",license:"MIT",devDependencies:{"@biomejs/biome":"2.3.15","@clack/prompts":"^0.7.0","@types/bun":"^1.3.9","@types/jest":"^30.0.0","@types/node":"^20.0.0","@types/semver":"^7.7.1",husky:"^9.1.7",jest:"^30.2.0",picocolors:"^1.1.1",semver:"^7.7.4","ts-jest":"^29.4.6",typescript:"^5.8.3"}};function a9($){return $.replace(/\^|~/,"").split(".")}var o9=`
|
|
63
63
|
__ __ __
|
|
64
64
|
/ \\ / | / |
|
|
65
65
|
$$ \\ /$$/______ $$ |__ ______ ______ ______
|
|
@@ -69,26 +69,26 @@ $$ \\ /$$/______ $$ |__ ______ ______ ______
|
|
|
69
69
|
$$ | /$$$$$$$ | $$ | | $$$$$$$$/ $$ | $$$$$$$$/
|
|
70
70
|
$$ | $$ $$ | $$ | | $$ |$$ | $$ |
|
|
71
71
|
$$/ $$$$$$$/ $$/ $$$$$$$/ $$/ $$$$$$$/
|
|
72
|
-
`;function K$(){let $=a9(O$.version);console.log(h$.default.cyan(h$.default.bold(o9))),console.log(h$.default.dim(`v${
|
|
72
|
+
`;function K$(){let $=a9(O$.version);console.log(h$.default.cyan(h$.default.bold(o9))),console.log(h$.default.dim(`v${$.join(".")}`)),console.log("")}var G=N(i(),1);import{existsSync as R$,readFileSync as e9}from"node:fs";import{join as $x}from"node:path";async function Q$($){try{let{spawn:x}=await import("node:child_process");return(await new Promise((I,q)=>{let _=x("npm",["view",$,"version"],{stdio:["pipe","pipe","pipe"]}),y="",j="";_.stdout?.on("data",(B)=>{y+=B.toString()}),_.stderr?.on("data",(B)=>{j+=B.toString()}),_.on("close",(B)=>{if(B===0)I(y.trim());else q(Error(j||"Failed to fetch package info"))}),setTimeout(()=>{_.kill(),q(Error("Timeout: npm request took too long"))},1e4)})).trim()}catch(x){return null}}function q0($,x){let b=$.replace(/[\^~]/g,"");return!x.map((q)=>q.replace(/[\^~]/g,"")).includes(b)}async function P$($,x){let b=new Map,I=$x(x,"package.json");if(R$(I))try{if(JSON.parse(e9(I,"utf-8")).workspaces)return b.set(x,$),Array.from(b.entries()).map(([_,y])=>({path:_,workspaces:y}))}catch(q){}return $.forEach((q)=>{let _=q;if(!b.has(_))b.set(_,[]);b.get(_)?.push(q)}),Array.from(b.entries()).map(([q,_])=>({path:q,workspaces:_}))}async function C$(){if(R$("pnpm-lock.yaml"))return"pnpm install";if(R$("yarn.lock"))return"yarn install";if(R$("bun.lockb"))return"bun install";return"npm install"}class q1{workspaces;executeSyncVersions;installPackages;constructor($,x,b){this.workspaces=$;this.executeSyncVersions=x;this.installPackages=b}async findAndResolveConflicts(){let $=e();$.start("Analyzing package versions across workspaces...");let x=new Map;this.workspaces.forEach((q)=>{let _={...q.packageJson.dependencies,...q.packageJson.devDependencies,...q.packageJson.peerDependencies};Object.entries(_).forEach(([y,j])=>{if(!x.has(y))x.set(y,new Map);let B=x.get(y);if(!B)return;if(!B.has(j))B.set(j,[]);B.get(j)?.push(q)})});let b=Array.from(x.entries()).filter(([,q])=>q.size>1).sort(([q],[_])=>q.localeCompare(_));if($.stop("Analysis completed"),b.length===0)d("No version conflicts found! All packages have consistent versions across workspaces.","All Clear"),process.exit(0);this.displayConflictsSummary(b);let I=await M({message:"How would you like to resolve conflicts?",options:[{value:"all",label:"Resolve all conflicts interactively"},{value:"specific",label:"Choose specific packages to resolve"},{value:"auto",label:"Auto-resolve to most common versions"},{value:"latest",label:"Auto-resolve all to latest versions"}]});if(I==="all")await this.resolveAllConflicts(b);else if(I==="specific")await this.resolveSpecificConflicts(b);else if(I==="auto")await this.autoResolveToMostCommon(b);else if(I==="latest")await this.autoResolveToLatest(b)}displayConflictsSummary($){let x=`
|
|
73
73
|
`;x+=G.default.red(`Found ${$.length} package${$.length>1?"s":""} with version conflicts:
|
|
74
74
|
|
|
75
75
|
`),$.forEach(([b,I])=>{x+=G.default.bold(G.default.yellow(`${b}
|
|
76
76
|
`)),Array.from(I.entries()).forEach(([q,_])=>{x+=` ${G.default.cyan(q)} ${G.default.dim(`(${_.length} workspace${_.length>1?"s":""})
|
|
77
77
|
`)}`,_.forEach((y)=>{x+=` ${G.default.gray("├─")} ${y.name}
|
|
78
78
|
`})}),x+=`
|
|
79
|
-
`}),
|
|
79
|
+
`}),d(x,"Version Conflicts Detected")}async resolveAllConflicts($){let x=await M({message:"How would you like to resolve all conflicts?",options:[{value:"inuse",label:" Choose a version in use for each package (bulk)"},{value:"latest",label:"Use latest version from npm for all"},{value:"interactive",label:"Resolve each conflict interactively (default)"}]}),b=[];if(x==="inuse")b=await this.resolveBulkInUse($);else if(x==="latest")b=await this.resolveBulkLatest($);else b=await this.resolveInteractively($);if(b.length>0){if(await c({message:"Install packages now? (Recommended after resolving conflicts)",initialValue:!0}))await this.installPackages(b)}process.exit(0)}async resolveBulkInUse($){let x=[];for(let[b,I]of $){let q=Array.from(I.keys()).map((j)=>({value:j,label:`${j} ${G.default.dim(`(used in ${I.get(j)?.length??0} workspace${(I.get(j)?.length??0)>1?"s":""})`)}`}));q.push({value:"latest",label:`${G.default.green("Use latest from npm")}`}),q.push({value:"skip",label:`${G.default.gray("Skip (do nothing)")}`});let _=await M({message:`Select version to use for ${b}:`,options:q});if(_==="skip"){d(`Skipped resolution for ${b}`,"Skipped");continue}let y=_;if(_==="latest")y=await Q$(b)||"latest";await this.executeSyncVersions(b,y,I,!1,!0),x.push(...Array.from(I.values()).flat().map((j)=>j.path))}return v(G.default.green(" All conflicts resolved to chosen in-use versions!")),[...new Set(x)]}async resolveBulkLatest($){let x=[];for(let[b,I]of $){let _=await Q$(b)||"latest";await this.executeSyncVersions(b,_,I,!1,!0),x.push(...Array.from(I.values()).flat().map((y)=>y.path))}return v(G.default.green(" All conflicts resolved to latest versions!")),[...new Set(x)]}async resolveInteractively($){let x=[];for(let[b,I]of $){let q=await this.resolvePackageConflict(b,I);x.push(...q)}return v(G.default.green(" All conflicts resolved successfully!")),[...new Set(x)]}async resolveSpecificConflicts($){let x=await b0({message:"Select packages to resolve:",options:$.map(([I,q])=>({value:I,label:` ${I} ${G.default.dim(`(${q.size} versions)`)}`}))}),b=$.filter(([I])=>x.includes(I));for(let[I,q]of b)await this.resolvePackageConflict(I,q);v(G.default.green(" Selected conflicts resolved successfully!")),process.exit(0)}async resolvePackageConflict($,x){let b=`
|
|
80
80
|
`;b+=G.default.bold(G.default.cyan(` Resolving: ${$}
|
|
81
81
|
|
|
82
82
|
`)),Array.from(x.entries()).forEach(([O,K])=>{b+=G.default.yellow(`Version ${O}:
|
|
83
|
-
`),K.forEach((
|
|
83
|
+
`),K.forEach((Q)=>{b+=` ${G.default.gray("├─")} ${Q.name}
|
|
84
84
|
`}),b+=`
|
|
85
|
-
`}),
|
|
85
|
+
`}),d(b,`Conflict Resolution for ${$}`);let I=await Q$($),q=Array.from(x.keys()),_=I?q0(I,q):!1;if(I){let O=`
|
|
86
86
|
Latest version on npm: ${G.default.green(I)}${_?G.default.yellow("(newer than current versions)"):G.default.gray(" (already in use)")}
|
|
87
|
-
`;
|
|
87
|
+
`;d(O,"NPM Registry Info")}let y=[...Array.from(x.keys()).map((O)=>({value:O,label:`${O} ${G.default.dim(`(used in ${x.get(O)?.length??0} workspace${(x.get(O)?.length??0)>1?"s":""})`)}`})),...I?[{value:I,label:`${I} ${G.default.green("(latest from npm)")} ${_?G.default.yellow("[NEW]"):""}`}]:[],{value:"custom",label:" Enter custom version"},{value:"skip",label:" Skip this package"}],j=await M({message:`Select target version for ${$}:`,options:y});if(j==="skip")return d(`Skipped resolution for ${$}`,"Skipped"),[];let B=j;if(j==="custom")B=await I$({message:`Enter custom version for ${$}:`,placeholder:"e.g., ^5.6.0, latest, ~4.0.0",validate:(K)=>K.length===0?"Version is required":void 0});return await this.executeSyncVersions($,B,x,!1,!0),Array.from(x.values()).flat().map((O)=>O.path)}async autoResolveToMostCommon($){let x=[];for(let[b,I]of $){let q="",_=0;for(let[y,j]of I.entries())if(j.length>_)_=j.length,q=y;await this.executeSyncVersions(b,q,I,!1,!0),x.push(...Array.from(I.values()).flat().map((y)=>y.path))}return v(G.default.green(" All conflicts resolved to most common versions!")),[...new Set(x)]}async autoResolveToLatest($){let x=[];for(let[b,I]of $){let _=await Q$(b)||"latest";await this.executeSyncVersions(b,_,I,!1,!0),x.push(...Array.from(I.values()).flat().map((y)=>y.path))}return v(G.default.green(" All conflicts resolved to latest versions!")),[...new Set(x)]}}var _1=N(i(),1);class j1{workspaces;constructor($){this.workspaces=$}async syncPackageVersions(){let $=await I$({message:"Enter package name to sync:",placeholder:"e.g., typescript, react"});if(P($)){q$("Operation cancelled");return}let x=new Map;if(this.workspaces.forEach((_)=>{let y={..._.packageJson.dependencies,..._.packageJson.devDependencies};if(y[$]){let j=y[$];if(!x.has(j))x.set(j,[]);x.get(j)?.push(_)}}),x.size===0){d(`Package "${String($)}" not found in any workspace`,"No Package Found");return}if(x.size===1){d(`Package "${String($)}" already has consistent version: ${Array.from(x.keys())[0]}`,"Already Synced");return}let b=`
|
|
88
88
|
`;x.forEach((_,y)=>{b+=_1.default.yellow(`Version ${y}:
|
|
89
|
-
`),_.forEach((
|
|
89
|
+
`),_.forEach((j)=>{b+=` ${_1.default.gray("├─")} ${j.name}
|
|
90
90
|
`}),b+=`
|
|
91
|
-
`}),
|
|
91
|
+
`}),d(b,`Current versions of "${String($)}"`);let I=await M({message:"Select version to sync to:",options:Array.from(x.keys()).map((_)=>({value:_,label:`${_} (used in ${x.get(_)?.length??0} workspace${(x.get(_)?.length??0)>1?"s":""})`}))});if(P(I)){q$("Operation cancelled");return}let q=await c({message:"Run in dry-run mode?",initialValue:!0});if(P(q)){q$("Operation cancelled");return}return{packageName:$,targetVersion:I,versions:x,dryRun:q}}}import{relative as _0}from"node:path";var T=N(i(),1);class B1{rootPath;constructor($){this.rootPath=$}getTypeIcon($){return $==="app"?"[APP]":$==="package"?"":"[ROOT]"}hasPackage($,x){return!!{...$.packageJson.dependencies,...$.packageJson.devDependencies,...$.packageJson.peerDependencies}[x]}async showManualInstallInstructions($){let b=await C$(),I=`
|
|
92
92
|
`;I+=T.default.yellow(`Manual Installation Instructions:
|
|
93
93
|
|
|
94
94
|
`),I+=T.default.gray(`Run the following commands to install packages manually:
|
|
@@ -97,22 +97,22 @@ Latest version on npm: ${G.default.green(I)}${_?G.default.yellow("(newer than cu
|
|
|
97
97
|
`),I+=T.default.gray(` cd ${y||"."}
|
|
98
98
|
`),I+=T.default.green(` ${b}
|
|
99
99
|
|
|
100
|
-
`)}),
|
|
100
|
+
`)}),d(I,"Manual Installation")}displayPackageList($){let x=`
|
|
101
101
|
`;Object.entries($).sort(([b],[I])=>b.localeCompare(I)).forEach(([b,I])=>{x+=T.default.bold(T.default.cyan(` ${b}
|
|
102
102
|
`)),Array.from(I.entries()).sort(([q],[_])=>q.localeCompare(_)).forEach(([q,_])=>{x+=` ${T.default.yellow(q)} ${T.default.dim(`(${_.length} workspace${_.length>1?"s":""})
|
|
103
103
|
`)}`,_.forEach((y)=>{x+=` ${T.default.gray("├─")} ${y.name}
|
|
104
104
|
`})}),x+=`
|
|
105
|
-
`}),
|
|
105
|
+
`}),d(x,"All Packages")}formatVersionChange($,x){return`${T.default.dim(String($))} → ${T.default.green(String(x))}`}formatWorkspacePath($){let x=_0(this.rootPath,$.path);return`${this.getTypeIcon($.type)} ${$.name} ${T.default.dim(`(${x})`)}`}}import{existsSync as z$}from"node:fs";import{readdir as j0,readFile as Z1}from"node:fs/promises";import{join as $$,relative as xx}from"node:path";var _$=N(i(),1);class O1{rootPath;workspaces=[];constructor($){this.rootPath=$}async scanWorkspaces(){let $=e();$.start(" Scanning workspace for package.json files...");try{let x=$$(this.rootPath,"package.json");if(z$(x)){let q=JSON.parse(await Z1(x,"utf-8"));this.workspaces.push({path:this.rootPath,name:q.name||"root",type:"root",packageJson:q})}let b=$$(this.rootPath,"apps");if(z$(b)){let q=await j0(b);for(let _ of q){let y=$$(b,_),j=$$(y,"package.json");if(z$(j)){let B=JSON.parse(await Z1(j,"utf-8"));this.workspaces.push({path:y,name:B.name||_,type:"app",packageJson:B})}}}let I=$$(this.rootPath,"packages");if(z$(I)){let q=await j0(I);for(let _ of q){let y=$$(I,_),j=$$(y,"package.json");if(z$(j)){let B=JSON.parse(await Z1(j,"utf-8"));this.workspaces.push({path:y,name:B.name||_,type:"package",packageJson:B})}}}return $.stop(`Found ${this.workspaces.length} workspaces`),this.workspaces}catch(x){throw $.stop("Failed to scan workspaces"),x}}displayWorkspaces(){let $=this.workspaces.reduce((b,I)=>{if(!b[I.type])b[I.type]=[];return b[I.type].push(I),b},{}),x=`
|
|
106
106
|
`;Object.entries($).forEach(([b,I])=>{let q=b==="app"?"[APP]":b==="package"?"":"[ROOT]";x+=_$.default.bold(_$.default.cyan(`${q} ${b.toUpperCase()}S:
|
|
107
107
|
`)),I.forEach((_)=>{let y=xx(this.rootPath,_.path);x+=` ${_$.default.gray("├─")} ${_$.default.white(_.name)} ${_$.default.dim(`(${y})
|
|
108
108
|
`)}`}),x+=`
|
|
109
|
-
`}),
|
|
110
|
-
`)}}_.stop(I?"[PREVIEW] Preview completed":"Sync completed");let
|
|
111
|
-
`;if(y.forEach((
|
|
112
|
-
`}),
|
|
109
|
+
`}),d(x,"Available Workspaces")}getWorkspaces(){return this.workspaces}setWorkspaces($){this.workspaces=$}findWorkspaceByName($){return this.workspaces.find((x)=>x.name===$)}getWorkspacesByType($){return this.workspaces.filter((x)=>x.type===$)}getAllPackages(){let $=new Map;return this.workspaces.forEach((x)=>{let b={...x.packageJson.dependencies,...x.packageJson.devDependencies,...x.packageJson.peerDependencies};Object.entries(b).forEach(([I,q])=>{if(!$.has(I))$.set(I,new Map);let _=$.get(I);if(!_)return;if(!_.has(q))_.set(q,[]);_.get(q)?.push(x)})}),Object.fromEntries($)}}class B0{rootPath;workspaceManager;packageOps;conflictResolver;ui;constructor($=process.cwd()){this.rootPath=$;this.workspaceManager=new O1($),this.ui=new B1($),this.packageOps=null,this.conflictResolver=null}async init(){console.clear(),K$(),I0(o.default.bold(o.default.cyan(" Package Updater"))),await this.workspaceManager.scanWorkspaces();let $=this.workspaceManager.getWorkspaces();this.packageOps=new j1($),this.conflictResolver=new q1($,(x,b,I,q,_)=>this.executeSyncVersions(x,b,I,q,_),(x)=>this.installPackages(x))}async run(){try{let $=await M({message:"What would you like to do?",options:[{value:"sync",label:"Sync package versions"},{value:"conflicts",label:"Find and resolve version conflicts"},{value:"list",label:"List all packages"}]});if(P($)){q$("Operation cancelled");return}switch($){case"sync":{let x=await this.packageOps.syncPackageVersions();if(x)await this.executeSyncVersions(x.packageName,x.targetVersion,x.versions,x.dryRun);break}case"conflicts":await this.conflictResolver.findAndResolveConflicts();break;case"list":await this.listPackages();break}}catch($){v(o.default.red(`An error occurred: ${$.message}`)),process.exit(1)}}async listPackages(){let $=this.workspaceManager.getAllPackages();this.ui.displayPackageList($)}async executeSyncVersions($,x,b,I,q){let _=e();_.start(I?"Previewing sync...":"Syncing versions...");let y=[];try{for(let[B,O]of b.entries()){if(B===x)continue;for(let K of O){let Q=Ix(K.path,"package.json"),W=JSON.parse(await yx(Q,"utf-8")),Y="";if(W.dependencies?.[$]){if(Y="dependencies",!I)W.dependencies[$]=x}else if(W.devDependencies?.[$]){if(Y="devDependencies",!I)W.devDependencies[$]=x}else if(W.peerDependencies?.[$]){if(Y="peerDependencies",!I)W.peerDependencies[$]=x}if(y.push({workspace:K.name,before:B,after:x,type:Y}),!I)await bx(Q,`${JSON.stringify(W,null,2)}
|
|
110
|
+
`)}}_.stop(I?"[PREVIEW] Preview completed":"Sync completed");let j=`
|
|
111
|
+
`;if(y.forEach((B)=>{j+=`[SYNC] ${B.workspace}: ${o.default.dim(String(B.before))} → ${o.default.green(String(B.after))} ${o.default.gray(`(${B.type})`)}
|
|
112
|
+
`}),d(j,I?"Preview Sync":"Applied Sync"),I){if(await c({message:"Apply these changes?",initialValue:!1}))await this.executeSyncVersions($,x,b,!1,q)}else if(!q){if(await c({message:"Install packages now? (Recommended after version changes)",initialValue:!0})){let O=Array.from(b.values()).flat().map((K)=>K.path);await this.installPackages(O)}v(o.default.green(" Version sync completed successfully!")),process.exit(0)}}catch(j){throw _.stop("Sync failed"),j}}async installPackages($){let x=e();x.start(" Installing packages...");try{let b=await C$(),I=await P$($,this.rootPath);for(let{path:q}of I){let{spawn:_}=await import("node:child_process"),y=this.getInstallCommand(b),[j,...B]=y;x.message(`Installing in ${q}...`),await new Promise((O,K)=>{let Q=_(j,B,{cwd:q,stdio:["inherit","pipe","pipe"]}),W="",Y="";Q.stdout?.on("data",(F)=>{W+=F.toString()}),Q.stderr?.on("data",(F)=>{Y+=F.toString()}),Q.on("close",(F)=>{if(F===0)O();else K(Error(`Installation failed in ${q}: ${Y||"Unknown error"}`))}),setTimeout(()=>{Q.kill(),K(Error("Installation timeout"))},300000)})}x.stop("Installation completed")}catch(b){throw x.stop("Installation failed"),await this.ui.showManualInstallInstructions($),b}}getInstallCommand($){if($.includes("pnpm"))return["pnpm","install"];if($.includes("yarn"))return["yarn"];if($.includes("bun"))return["bun","install"];return["npm","install"]}}var Z0=B0;import{execFileSync as y$}from"node:child_process";import S from"node:fs";import r from"node:path";var p=N(e2(),1);function $9($,x=[]){let b=S.readdirSync($);for(let I of b){let q=r.join($,I);if(S.statSync(q).isDirectory()){if(I!=="node_modules"&&I!==".git"&&I!==".release-temp"&&I!=="dist")$9(q,x)}else if(I==="package.json")x.push(q)}return x}async function E1(){let $=r.join(process.cwd(),".gitignore"),x=".release-temp";if(S.existsSync($)){if(!S.readFileSync($,"utf-8").includes(".release-temp"))S.appendFileSync($,`
|
|
113
113
|
.release-temp
|
|
114
114
|
`),console.log("Added .release-temp to .gitignore")}else S.writeFileSync($,`.release-temp
|
|
115
|
-
`),console.log("Created .gitignore with .release-temp");let b=r.join(process.cwd(),".release-temp"),I=S.existsSync(b),q=await M({message:"Choose a action:",options:[{value:"new",label:"Create new release"},...I?[{value:"resume",label:"Resume pending release"}]:[],{value:"list",label:"List all releases"}]});if(P(q))console.log("Operation cancelled"),process.exit(0);if(q==="new"||q==="resume"){let _="",y="";if(q==="resume"){let V=S.readdirSync(b).find((n)=>n.endsWith(".md")&&!n.endsWith("-changelog.md"));if(V)_=V.replace(".md",""),console.log(`Resuming release for version: ${_}`);else{console.error("Could not find pending release files. Starting new.");let n=O$.version;y=p.default.inc(n,"patch")||n}}else{let
|
|
115
|
+
`),console.log("Created .gitignore with .release-temp");let b=r.join(process.cwd(),".release-temp"),I=S.existsSync(b),q=await M({message:"Choose a action:",options:[{value:"new",label:"Create new release"},...I?[{value:"resume",label:"Resume pending release"}]:[],{value:"list",label:"List all releases"}]});if(P(q))console.log("Operation cancelled"),process.exit(0);if(q==="new"||q==="resume"){let _="",y="";if(q==="resume"){let V=S.readdirSync(b).find((n)=>n.endsWith(".md")&&!n.endsWith("-changelog.md"));if(V)_=V.replace(".md",""),console.log(`Resuming release for version: ${_}`);else{console.error("Could not find pending release files. Starting new.");let n=O$.version;y=p.default.inc(n,"patch")||n}}else{let E=O$.version;y=p.default.inc(E,"patch")||E,_=await I$({message:"Enter version",placeholder:y,validate(V){if(!V)return;if(!p.default.valid(V))return"Invalid version"}})}if(!S.existsSync(b))S.mkdirSync(b,{recursive:!0});let j=r.join(b,`${_||y}.md`),B=r.join(b,`${_||y}-changelog.md`);if(!S.existsSync(j)){let E=`## ${_||y}
|
|
116
116
|
|
|
117
117
|
### Features
|
|
118
118
|
|
|
@@ -121,7 +121,7 @@ Latest version on npm: ${G.default.green(I)}${_?G.default.yellow("(newer than cu
|
|
|
121
121
|
### Fixes
|
|
122
122
|
|
|
123
123
|
-
|
|
124
|
-
`;S.writeFileSync(
|
|
124
|
+
`;S.writeFileSync(j,E)}if(!S.existsSync(B)){let E=`## ${_||y}
|
|
125
125
|
|
|
126
126
|
### Features
|
|
127
127
|
|
|
@@ -130,12 +130,12 @@ Latest version on npm: ${G.default.green(I)}${_?G.default.yellow("(newer than cu
|
|
|
130
130
|
### Fixes
|
|
131
131
|
|
|
132
132
|
-
|
|
133
|
-
`;S.writeFileSync(
|
|
134
|
-
Release notes created at: ${
|
|
133
|
+
`;S.writeFileSync(B,E)}console.log(`
|
|
134
|
+
Release notes created at: ${j}`),console.log(`Changelog entry created at: ${B}`),console.log("Please edit these files with your release notes and changelog entry.");let O=()=>{if(S.existsSync(j))S.unlinkSync(j);if(S.existsSync(B))S.unlinkSync(B);if(S.existsSync(b))S.rmdirSync(b)},K=await c({message:"Are you ready to continue?"});if(P(K)||!K)console.log("Operation paused. Files preserved in .release-temp for resumption."),process.exit(0);let Q=await c({message:"Do you want to update CHANGELOG.md?"});if(P(Q))console.log("Operation paused. Files preserved in .release-temp for resumption."),process.exit(0);if(Q){let E=S.readFileSync(B,"utf-8"),V=r.join(process.cwd(),"CHANGELOG.md"),n=`# Changelog
|
|
135
135
|
|
|
136
|
-
`;if(S.existsSync(V))n=S.readFileSync(V,"utf-8");if(!n.includes(_||y)){let y9=`${
|
|
136
|
+
`;if(S.existsSync(V))n=S.readFileSync(V,"utf-8");if(!n.includes(_||y)){let y9=`${E}
|
|
137
137
|
|
|
138
|
-
${n}`;S.writeFileSync(V,y9),console.log("CHANGELOG.md updated.")}else console.log("CHANGELOG.md already contains this version. Skipping update.")}let W=await c({message:"Do you want to create the release (git tag & push)?"});if(P(W)||!W)console.log("Operation paused. Files preserved in .release-temp for resumption."),process.exit(0);let Y=_||y;console.log(`Updating all package.json files to version ${Y}...`);let F=$9(process.cwd());for(let
|
|
139
|
-
`),console.log(`Updated ${r.relative(process.cwd(),
|
|
140
|
-
`).map((
|
|
141
|
-
Releases:`),
|
|
138
|
+
${n}`;S.writeFileSync(V,y9),console.log("CHANGELOG.md updated.")}else console.log("CHANGELOG.md already contains this version. Skipping update.")}let W=await c({message:"Do you want to create the release (git tag & push)?"});if(P(W)||!W)console.log("Operation paused. Files preserved in .release-temp for resumption."),process.exit(0);let Y=_||y;console.log(`Updating all package.json files to version ${Y}...`);let F=$9(process.cwd());for(let E of F)try{let V=JSON.parse(S.readFileSync(E,"utf-8"));V.version=Y,S.writeFileSync(E,`${JSON.stringify(V,null,2)}
|
|
139
|
+
`),console.log(`Updated ${r.relative(process.cwd(),E)}`)}catch(V){console.error(`Failed to update ${r.relative(process.cwd(),E)}:`,V)}console.log("Pushing changes...");let x9=F.map((E)=>r.relative(process.cwd(),E));y$("git",["add",...x9,"CHANGELOG.md"],{stdio:"inherit"}),y$("git",["commit","-m",`chore(release): v${Y}`],{stdio:"inherit"}),y$("git",["push"],{stdio:"inherit"}),y$("git",["tag",`v${Y}`],{stdio:"inherit"}),y$("git",["push","origin",`v${Y}`],{stdio:"inherit"}),console.log("Creating GitHub Release..."),y$("gh",["release","create",`v${_||y}`,"--title",`v${_||y}`,"--notes-file",j],{stdio:"inherit"}),O(),console.log(`Release v${_||y} created successfully!`),process.exit(0)}if(q==="list"){try{let j=y$("git",["tag"],{encoding:"utf-8"}).split(`
|
|
140
|
+
`).map((B)=>B.trim()).filter((B)=>B.length>0).filter((B)=>p.default.valid(p.default.clean(B)));if(j.length===0)console.log("No releases found.");else{let B=j.sort((O,K)=>{let Q=p.default.clean(O),W=p.default.clean(K);if(!Q||!W)return 0;return p.default.rcompare(Q,W)});console.log(`
|
|
141
|
+
Releases:`),B.forEach((O)=>{console.log(` - ${O}`)})}}catch(_){console.error("Failed to list releases:",_ instanceof Error?_.message:String(_))}process.exit(0)}}async function ab(){K$();let $=await M({message:"Choose a command:",options:[{value:"manage-release",label:"Manage Releases"},{value:"align-versions",label:"Align Versions"}]});if(P($))v("Operation cancelled"),process.exit(0);if($==="manage-release")await E1();else if($==="align-versions"){let x=new Z0;await x.init(),await x.run()}}ab().catch(console.error);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "workspace-helper",
|
|
3
|
-
"version": "1.0.4
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "CLI tool to detect and fix mismatched dependency versions in monorepos",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"monorepo",
|
|
@@ -12,10 +12,11 @@
|
|
|
12
12
|
"bugs": {
|
|
13
13
|
"url": "https://github.com/nyambogahezron/workspace-helper/issues"
|
|
14
14
|
},
|
|
15
|
-
"homepage": "https://
|
|
15
|
+
"homepage": "https://workspace-helper-sepia.vercel.app/",
|
|
16
16
|
"private": false,
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "bun build ./src/index.ts --outdir ./dist --target=node --minify && tsc --emitDeclarationOnly --declaration",
|
|
19
|
+
"docs:build": "cd docs && bun install && bun run build",
|
|
19
20
|
"dev": "bun run ./src/index.ts",
|
|
20
21
|
"start": "bun run ./dist/index.js",
|
|
21
22
|
"format": "biome format --write .",
|
|
@@ -54,4 +55,4 @@
|
|
|
54
55
|
"ts-jest": "^29.4.6",
|
|
55
56
|
"typescript": "^5.8.3"
|
|
56
57
|
}
|
|
57
|
-
}
|
|
58
|
+
}
|