likec4 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import{stdin as Q,stdout as X}from"node:process";import L from"node:readline";import{WriteStream as DD}from"node:tty";import{Z as uD,l as eD,n as i}from"../shared/likec4.DLr42w54.mjs";import tD from"tty";import"node:util";import"node:path";import"node:fs";import"node:url";import"@hpcc-js/wasm-graphviz";import"node:child_process";import"node:string_decoder";import"child_process";import"path";import"fs";import"node:timers/promises";import"node:os";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"vite";import"buffer";import"util";import"os";import"crypto";import"net";import"url";const w="\x1B",a=`${w}[`,FD="\x07",y={to(e,u){return u?`${a}${u+1};${e+1}H`:`${a}${e+1}G`},move(e,u){let t="";return e<0?t+=`${a}${-e}D`:e>0&&(t+=`${a}${e}C`),u<0?t+=`${a}${-u}A`:u>0&&(t+=`${a}${u}B`),t},up:(e=1)=>`${a}${e}A`,down:(e=1)=>`${a}${e}B`,forward:(e=1)=>`${a}${e}C`,backward:(e=1)=>`${a}${e}D`,nextLine:(e=1)=>`${a}E`.repeat(e),prevLine:(e=1)=>`${a}F`.repeat(e),left:`${a}G`,hide:`${a}?25l`,show:`${a}?25h`,save:`${w}7`,restore:`${w}8`},rD={up:(e=1)=>`${a}S`.repeat(e),down:(e=1)=>`${a}T`.repeat(e)},iD={screen:`${a}2J`,up:(e=1)=>`${a}1J`.repeat(e),down:(e=1)=>`${a}J`.repeat(e),line:`${a}2K`,lineEnd:`${a}K`,lineStart:`${a}1K`,lines(e){let u="";for(let t=0;t<e;t++)u+=this.line+(t<e-1?y.up():"");return e&&(u+=y.left),u}};var p={cursor:y,scroll:rD,erase:iD,beep:FD},S={exports:{}};let sD=tD,CD=!("NO_COLOR"in process.env||process.argv.includes("--no-color"))&&("FORCE_COLOR"in process.env||process.argv.includes("--color")||process.platform==="win32"||sD.isatty(1)&&process.env.TERM!=="dumb"||"CI"in process.env),E=(e,u,t=e)=>F=>{let r=""+F,s=r.indexOf(u,e.length);return~s?e+R(r,u,t,s)+u:e+r+u},R=(e,u,t,F)=>{let r=e.substring(0,F)+t,s=e.substring(F+u.length),D=s.indexOf(u);return~D?r+R(s,u,t,D):r+s},z=(e=CD)=>({isColorSupported:e,reset:e?u=>`\x1B[0m${u}\x1B[0m`:String,bold:e?E("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"):String,dim:e?E("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"):String,italic:e?E("\x1B[3m","\x1B[23m"):String,underline:e?E("\x1B[4m","\x1B[24m"):String,inverse:e?E("\x1B[7m","\x1B[27m"):String,hidden:e?E("\x1B[8m","\x1B[28m"):String,strikethrough:e?E("\x1B[9m","\x1B[29m"):String,black:e?E("\x1B[30m","\x1B[39m"):String,red:e?E("\x1B[31m","\x1B[39m"):String,green:e?E("\x1B[32m","\x1B[39m"):String,yellow:e?E("\x1B[33m","\x1B[39m"):String,blue:e?E("\x1B[34m","\x1B[39m"):String,magenta:e?E("\x1B[35m","\x1B[39m"):String,cyan:e?E("\x1B[36m","\x1B[39m"):String,white:e?E("\x1B[37m","\x1B[39m"):String,gray:e?E("\x1B[90m","\x1B[39m"):String,bgBlack:e?E("\x1B[40m","\x1B[49m"):String,bgRed:e?E("\x1B[41m","\x1B[49m"):String,bgGreen:e?E("\x1B[42m","\x1B[49m"):String,bgYellow:e?E("\x1B[43m","\x1B[49m"):String,bgBlue:e?E("\x1B[44m","\x1B[49m"):String,bgMagenta:e?E("\x1B[45m","\x1B[49m"):String,bgCyan:e?E("\x1B[46m","\x1B[49m"):String,bgWhite:e?E("\x1B[47m","\x1B[49m"):String});S.exports=z(),S.exports.createColors=z;var nD=S.exports;const k=uD(nD);function ED({onlyFirst:e=!1}={}){const u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,e?void 0:"g")}function N(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(ED(),"")}var _={},oD={get exports(){return _},set exports(e){_=e}};(function(e){var u={};e.exports=u,u.eastAsianWidth=function(F){var r=F.charCodeAt(0),s=F.length==2?F.charCodeAt(1):0,D=r;return 55296<=r&&r<=56319&&56320<=s&&s<=57343&&(r&=1023,s&=1023,D=r<<10|s,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?"F":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?"H":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?"W":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?"Na":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?"A":"N"},u.characterLength=function(F){var r=this.eastAsianWidth(F);return r=="F"||r=="W"||r=="A"?2:1};function t(F){return F.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}u.length=function(F){for(var r=t(F),s=0,D=0;D<r.length;D++)s=s+this.characterLength(r[D]);return s},u.slice=function(F,r,s){textLen=u.length(F),r=r||0,s=s||1,r<0&&(r=textLen+r),s<0&&(s=textLen+s);for(var D="",C=0,h=t(F),l=0;l<h.length;l++){var c=h[l],B=u.length(c);if(C>=r-(B==2?1:0))if(C+B<=s)D+=c;else break;C+=B}return D}})(oD);const aD=_;var lD=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};function d(e,u={}){if(typeof e!="string"||e.length===0||(u={ambiguousIsNarrow:!0,...u},e=N(e),e.length===0))return 0;e=e.replace(lD()," ");const t=u.ambiguousIsNarrow?1:2;let F=0;for(const r of e){const s=r.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879))switch(aD.eastAsianWidth(r)){case"F":case"W":F+=2;break;case"A":F+=t;break;default:F+=1}}return F}const j=10,K=(e=0)=>u=>`\x1B[${u+e}m`,I=(e=0)=>u=>`\x1B[${38+e};5;${u}m`,P=(e=0)=>(u,t,F)=>`\x1B[${38+e};2;${u};${t};${F}m`,o={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(o.modifier);const BD=Object.keys(o.color),hD=Object.keys(o.bgColor);[...BD,...hD];function cD(){const e=new Map;for(const[u,t]of Object.entries(o)){for(const[F,r]of Object.entries(t))o[F]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},t[F]=o[F],e.set(r[0],r[1]);Object.defineProperty(o,u,{value:t,enumerable:!1})}return Object.defineProperty(o,"codes",{value:e,enumerable:!1}),o.color.close="\x1B[39m",o.bgColor.close="\x1B[49m",o.color.ansi=K(),o.color.ansi256=I(),o.color.ansi16m=P(),o.bgColor.ansi=K(j),o.bgColor.ansi256=I(j),o.bgColor.ansi16m=P(j),Object.defineProperties(o,{rgbToAnsi256:{value:(u,t,F)=>u===t&&t===F?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(t/255*5)+Math.round(F/255*5),enumerable:!1},hexToRgb:{value:u=>{const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!t)return[0,0,0];let[F]=t;F.length===3&&(F=[...F].map(s=>s+s).join(""));const r=Number.parseInt(F,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:u=>o.rgbToAnsi256(...o.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value:u=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let t,F,r;if(u>=232)t=((u-232)*10+8)/255,F=t,r=t;else{u-=16;const C=u%36;t=Math.floor(u/36)/5,F=Math.floor(C/6)/5,r=C%6/5}const s=Math.max(t,F,r)*2;if(s===0)return 30;let D=30+(Math.round(r)<<2|Math.round(F)<<1|Math.round(t));return s===2&&(D+=60),D},enumerable:!1},rgbToAnsi:{value:(u,t,F)=>o.ansi256ToAnsi(o.rgbToAnsi256(u,t,F)),enumerable:!1},hexToAnsi:{value:u=>o.ansi256ToAnsi(o.hexToAnsi256(u)),enumerable:!1}}),o}const pD=cD(),v=new Set(["\x1B","\x9B"]),mD=39,V="\x07",G="[",AD="]",q="m",M=`${AD}8;;`,Z=e=>`${v.values().next().value}${G}${e}${q}`,Y=e=>`${v.values().next().value}${M}${e}${V}`,gD=e=>e.split(" ").map(u=>d(u)),W=(e,u,t)=>{const F=[...u];let r=!1,s=!1,D=d(N(e[e.length-1]));for(const[C,h]of F.entries()){const l=d(h);if(D+l<=t?e[e.length-1]+=h:(e.push(h),D=0),v.has(h)&&(r=!0,s=F.slice(C+1).join("").startsWith(M)),r){s?h===V&&(r=!1,s=!1):h===q&&(r=!1);continue}D+=l,D===t&&C<F.length-1&&(e.push(""),D=0)}!D&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},dD=e=>{const u=e.split(" ");let t=u.length;for(;t>0&&!(d(u[t-1])>0);)t--;return t===u.length?e:u.slice(0,t).join(" ")+u.slice(t).join("")},$D=(e,u,t={})=>{if(t.trim!==!1&&e.trim()==="")return"";let F="",r,s;const D=gD(e);let C=[""];for(const[l,c]of e.split(" ").entries()){t.trim!==!1&&(C[C.length-1]=C[C.length-1].trimStart());let B=d(C[C.length-1]);if(l!==0&&(B>=u&&(t.wordWrap===!1||t.trim===!1)&&(C.push(""),B=0),(B>0||t.trim===!1)&&(C[C.length-1]+=" ",B++)),t.hard&&D[l]>u){const A=u-B,$=1+Math.floor((D[l]-A-1)/u);Math.floor((D[l]-1)/u)<$&&C.push(""),W(C,c,u);continue}if(B+D[l]>u&&B>0&&D[l]>0){if(t.wordWrap===!1&&B<u){W(C,c,u);continue}C.push("")}if(B+D[l]>u&&t.wordWrap===!1){W(C,c,u);continue}C[C.length-1]+=c}t.trim!==!1&&(C=C.map(l=>dD(l)));const h=[...C.join(`
1
+ import{stdin as Q,stdout as X}from"node:process";import L from"node:readline";import{WriteStream as DD}from"node:tty";import{Z as uD,j as eD,l as i}from"../shared/likec4.D5WUQlNc.mjs";import tD from"tty";import"node:util";import"node:path";import"node:fs";import"node:url";import"util";import"path";import"os";import"crypto";import"net";import"url";import"fs";import"child_process";import"node:fs/promises";import"@hpcc-js/wasm-graphviz";import"node:child_process";import"node:string_decoder";import"node:timers/promises";import"node:os";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"vite";import"buffer";const w="\x1B",a=`${w}[`,FD="\x07",y={to(e,u){return u?`${a}${u+1};${e+1}H`:`${a}${e+1}G`},move(e,u){let t="";return e<0?t+=`${a}${-e}D`:e>0&&(t+=`${a}${e}C`),u<0?t+=`${a}${-u}A`:u>0&&(t+=`${a}${u}B`),t},up:(e=1)=>`${a}${e}A`,down:(e=1)=>`${a}${e}B`,forward:(e=1)=>`${a}${e}C`,backward:(e=1)=>`${a}${e}D`,nextLine:(e=1)=>`${a}E`.repeat(e),prevLine:(e=1)=>`${a}F`.repeat(e),left:`${a}G`,hide:`${a}?25l`,show:`${a}?25h`,save:`${w}7`,restore:`${w}8`},rD={up:(e=1)=>`${a}S`.repeat(e),down:(e=1)=>`${a}T`.repeat(e)},iD={screen:`${a}2J`,up:(e=1)=>`${a}1J`.repeat(e),down:(e=1)=>`${a}J`.repeat(e),line:`${a}2K`,lineEnd:`${a}K`,lineStart:`${a}1K`,lines(e){let u="";for(let t=0;t<e;t++)u+=this.line+(t<e-1?y.up():"");return e&&(u+=y.left),u}};var p={cursor:y,scroll:rD,erase:iD,beep:FD},S={exports:{}};let sD=tD,CD=!("NO_COLOR"in process.env||process.argv.includes("--no-color"))&&("FORCE_COLOR"in process.env||process.argv.includes("--color")||process.platform==="win32"||sD.isatty(1)&&process.env.TERM!=="dumb"||"CI"in process.env),E=(e,u,t=e)=>F=>{let r=""+F,s=r.indexOf(u,e.length);return~s?e+R(r,u,t,s)+u:e+r+u},R=(e,u,t,F)=>{let r=e.substring(0,F)+t,s=e.substring(F+u.length),D=s.indexOf(u);return~D?r+R(s,u,t,D):r+s},z=(e=CD)=>({isColorSupported:e,reset:e?u=>`\x1B[0m${u}\x1B[0m`:String,bold:e?E("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"):String,dim:e?E("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"):String,italic:e?E("\x1B[3m","\x1B[23m"):String,underline:e?E("\x1B[4m","\x1B[24m"):String,inverse:e?E("\x1B[7m","\x1B[27m"):String,hidden:e?E("\x1B[8m","\x1B[28m"):String,strikethrough:e?E("\x1B[9m","\x1B[29m"):String,black:e?E("\x1B[30m","\x1B[39m"):String,red:e?E("\x1B[31m","\x1B[39m"):String,green:e?E("\x1B[32m","\x1B[39m"):String,yellow:e?E("\x1B[33m","\x1B[39m"):String,blue:e?E("\x1B[34m","\x1B[39m"):String,magenta:e?E("\x1B[35m","\x1B[39m"):String,cyan:e?E("\x1B[36m","\x1B[39m"):String,white:e?E("\x1B[37m","\x1B[39m"):String,gray:e?E("\x1B[90m","\x1B[39m"):String,bgBlack:e?E("\x1B[40m","\x1B[49m"):String,bgRed:e?E("\x1B[41m","\x1B[49m"):String,bgGreen:e?E("\x1B[42m","\x1B[49m"):String,bgYellow:e?E("\x1B[43m","\x1B[49m"):String,bgBlue:e?E("\x1B[44m","\x1B[49m"):String,bgMagenta:e?E("\x1B[45m","\x1B[49m"):String,bgCyan:e?E("\x1B[46m","\x1B[49m"):String,bgWhite:e?E("\x1B[47m","\x1B[49m"):String});S.exports=z(),S.exports.createColors=z;var nD=S.exports;const k=uD(nD);function ED({onlyFirst:e=!1}={}){const u=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(u,e?void 0:"g")}function N(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(ED(),"")}var _={},oD={get exports(){return _},set exports(e){_=e}};(function(e){var u={};e.exports=u,u.eastAsianWidth=function(F){var r=F.charCodeAt(0),s=F.length==2?F.charCodeAt(1):0,D=r;return 55296<=r&&r<=56319&&56320<=s&&s<=57343&&(r&=1023,s&=1023,D=r<<10|s,D+=65536),D==12288||65281<=D&&D<=65376||65504<=D&&D<=65510?"F":D==8361||65377<=D&&D<=65470||65474<=D&&D<=65479||65482<=D&&D<=65487||65490<=D&&D<=65495||65498<=D&&D<=65500||65512<=D&&D<=65518?"H":4352<=D&&D<=4447||4515<=D&&D<=4519||4602<=D&&D<=4607||9001<=D&&D<=9002||11904<=D&&D<=11929||11931<=D&&D<=12019||12032<=D&&D<=12245||12272<=D&&D<=12283||12289<=D&&D<=12350||12353<=D&&D<=12438||12441<=D&&D<=12543||12549<=D&&D<=12589||12593<=D&&D<=12686||12688<=D&&D<=12730||12736<=D&&D<=12771||12784<=D&&D<=12830||12832<=D&&D<=12871||12880<=D&&D<=13054||13056<=D&&D<=19903||19968<=D&&D<=42124||42128<=D&&D<=42182||43360<=D&&D<=43388||44032<=D&&D<=55203||55216<=D&&D<=55238||55243<=D&&D<=55291||63744<=D&&D<=64255||65040<=D&&D<=65049||65072<=D&&D<=65106||65108<=D&&D<=65126||65128<=D&&D<=65131||110592<=D&&D<=110593||127488<=D&&D<=127490||127504<=D&&D<=127546||127552<=D&&D<=127560||127568<=D&&D<=127569||131072<=D&&D<=194367||177984<=D&&D<=196605||196608<=D&&D<=262141?"W":32<=D&&D<=126||162<=D&&D<=163||165<=D&&D<=166||D==172||D==175||10214<=D&&D<=10221||10629<=D&&D<=10630?"Na":D==161||D==164||167<=D&&D<=168||D==170||173<=D&&D<=174||176<=D&&D<=180||182<=D&&D<=186||188<=D&&D<=191||D==198||D==208||215<=D&&D<=216||222<=D&&D<=225||D==230||232<=D&&D<=234||236<=D&&D<=237||D==240||242<=D&&D<=243||247<=D&&D<=250||D==252||D==254||D==257||D==273||D==275||D==283||294<=D&&D<=295||D==299||305<=D&&D<=307||D==312||319<=D&&D<=322||D==324||328<=D&&D<=331||D==333||338<=D&&D<=339||358<=D&&D<=359||D==363||D==462||D==464||D==466||D==468||D==470||D==472||D==474||D==476||D==593||D==609||D==708||D==711||713<=D&&D<=715||D==717||D==720||728<=D&&D<=731||D==733||D==735||768<=D&&D<=879||913<=D&&D<=929||931<=D&&D<=937||945<=D&&D<=961||963<=D&&D<=969||D==1025||1040<=D&&D<=1103||D==1105||D==8208||8211<=D&&D<=8214||8216<=D&&D<=8217||8220<=D&&D<=8221||8224<=D&&D<=8226||8228<=D&&D<=8231||D==8240||8242<=D&&D<=8243||D==8245||D==8251||D==8254||D==8308||D==8319||8321<=D&&D<=8324||D==8364||D==8451||D==8453||D==8457||D==8467||D==8470||8481<=D&&D<=8482||D==8486||D==8491||8531<=D&&D<=8532||8539<=D&&D<=8542||8544<=D&&D<=8555||8560<=D&&D<=8569||D==8585||8592<=D&&D<=8601||8632<=D&&D<=8633||D==8658||D==8660||D==8679||D==8704||8706<=D&&D<=8707||8711<=D&&D<=8712||D==8715||D==8719||D==8721||D==8725||D==8730||8733<=D&&D<=8736||D==8739||D==8741||8743<=D&&D<=8748||D==8750||8756<=D&&D<=8759||8764<=D&&D<=8765||D==8776||D==8780||D==8786||8800<=D&&D<=8801||8804<=D&&D<=8807||8810<=D&&D<=8811||8814<=D&&D<=8815||8834<=D&&D<=8835||8838<=D&&D<=8839||D==8853||D==8857||D==8869||D==8895||D==8978||9312<=D&&D<=9449||9451<=D&&D<=9547||9552<=D&&D<=9587||9600<=D&&D<=9615||9618<=D&&D<=9621||9632<=D&&D<=9633||9635<=D&&D<=9641||9650<=D&&D<=9651||9654<=D&&D<=9655||9660<=D&&D<=9661||9664<=D&&D<=9665||9670<=D&&D<=9672||D==9675||9678<=D&&D<=9681||9698<=D&&D<=9701||D==9711||9733<=D&&D<=9734||D==9737||9742<=D&&D<=9743||9748<=D&&D<=9749||D==9756||D==9758||D==9792||D==9794||9824<=D&&D<=9825||9827<=D&&D<=9829||9831<=D&&D<=9834||9836<=D&&D<=9837||D==9839||9886<=D&&D<=9887||9918<=D&&D<=9919||9924<=D&&D<=9933||9935<=D&&D<=9953||D==9955||9960<=D&&D<=9983||D==10045||D==10071||10102<=D&&D<=10111||11093<=D&&D<=11097||12872<=D&&D<=12879||57344<=D&&D<=63743||65024<=D&&D<=65039||D==65533||127232<=D&&D<=127242||127248<=D&&D<=127277||127280<=D&&D<=127337||127344<=D&&D<=127386||917760<=D&&D<=917999||983040<=D&&D<=1048573||1048576<=D&&D<=1114109?"A":"N"},u.characterLength=function(F){var r=this.eastAsianWidth(F);return r=="F"||r=="W"||r=="A"?2:1};function t(F){return F.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}u.length=function(F){for(var r=t(F),s=0,D=0;D<r.length;D++)s=s+this.characterLength(r[D]);return s},u.slice=function(F,r,s){textLen=u.length(F),r=r||0,s=s||1,r<0&&(r=textLen+r),s<0&&(s=textLen+s);for(var D="",C=0,h=t(F),l=0;l<h.length;l++){var c=h[l],B=u.length(c);if(C>=r-(B==2?1:0))if(C+B<=s)D+=c;else break;C+=B}return D}})(oD);const aD=_;var lD=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};function d(e,u={}){if(typeof e!="string"||e.length===0||(u={ambiguousIsNarrow:!0,...u},e=N(e),e.length===0))return 0;e=e.replace(lD()," ");const t=u.ambiguousIsNarrow?1:2;let F=0;for(const r of e){const s=r.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879))switch(aD.eastAsianWidth(r)){case"F":case"W":F+=2;break;case"A":F+=t;break;default:F+=1}}return F}const j=10,K=(e=0)=>u=>`\x1B[${u+e}m`,I=(e=0)=>u=>`\x1B[${38+e};5;${u}m`,P=(e=0)=>(u,t,F)=>`\x1B[${38+e};2;${u};${t};${F}m`,o={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(o.modifier);const BD=Object.keys(o.color),hD=Object.keys(o.bgColor);[...BD,...hD];function cD(){const e=new Map;for(const[u,t]of Object.entries(o)){for(const[F,r]of Object.entries(t))o[F]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},t[F]=o[F],e.set(r[0],r[1]);Object.defineProperty(o,u,{value:t,enumerable:!1})}return Object.defineProperty(o,"codes",{value:e,enumerable:!1}),o.color.close="\x1B[39m",o.bgColor.close="\x1B[49m",o.color.ansi=K(),o.color.ansi256=I(),o.color.ansi16m=P(),o.bgColor.ansi=K(j),o.bgColor.ansi256=I(j),o.bgColor.ansi16m=P(j),Object.defineProperties(o,{rgbToAnsi256:{value:(u,t,F)=>u===t&&t===F?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(t/255*5)+Math.round(F/255*5),enumerable:!1},hexToRgb:{value:u=>{const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!t)return[0,0,0];let[F]=t;F.length===3&&(F=[...F].map(s=>s+s).join(""));const r=Number.parseInt(F,16);return[r>>16&255,r>>8&255,r&255]},enumerable:!1},hexToAnsi256:{value:u=>o.rgbToAnsi256(...o.hexToRgb(u)),enumerable:!1},ansi256ToAnsi:{value:u=>{if(u<8)return 30+u;if(u<16)return 90+(u-8);let t,F,r;if(u>=232)t=((u-232)*10+8)/255,F=t,r=t;else{u-=16;const C=u%36;t=Math.floor(u/36)/5,F=Math.floor(C/6)/5,r=C%6/5}const s=Math.max(t,F,r)*2;if(s===0)return 30;let D=30+(Math.round(r)<<2|Math.round(F)<<1|Math.round(t));return s===2&&(D+=60),D},enumerable:!1},rgbToAnsi:{value:(u,t,F)=>o.ansi256ToAnsi(o.rgbToAnsi256(u,t,F)),enumerable:!1},hexToAnsi:{value:u=>o.ansi256ToAnsi(o.hexToAnsi256(u)),enumerable:!1}}),o}const pD=cD(),v=new Set(["\x1B","\x9B"]),mD=39,V="\x07",G="[",AD="]",q="m",M=`${AD}8;;`,Z=e=>`${v.values().next().value}${G}${e}${q}`,Y=e=>`${v.values().next().value}${M}${e}${V}`,gD=e=>e.split(" ").map(u=>d(u)),W=(e,u,t)=>{const F=[...u];let r=!1,s=!1,D=d(N(e[e.length-1]));for(const[C,h]of F.entries()){const l=d(h);if(D+l<=t?e[e.length-1]+=h:(e.push(h),D=0),v.has(h)&&(r=!0,s=F.slice(C+1).join("").startsWith(M)),r){s?h===V&&(r=!1,s=!1):h===q&&(r=!1);continue}D+=l,D===t&&C<F.length-1&&(e.push(""),D=0)}!D&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},dD=e=>{const u=e.split(" ");let t=u.length;for(;t>0&&!(d(u[t-1])>0);)t--;return t===u.length?e:u.slice(0,t).join(" ")+u.slice(t).join("")},$D=(e,u,t={})=>{if(t.trim!==!1&&e.trim()==="")return"";let F="",r,s;const D=gD(e);let C=[""];for(const[l,c]of e.split(" ").entries()){t.trim!==!1&&(C[C.length-1]=C[C.length-1].trimStart());let B=d(C[C.length-1]);if(l!==0&&(B>=u&&(t.wordWrap===!1||t.trim===!1)&&(C.push(""),B=0),(B>0||t.trim===!1)&&(C[C.length-1]+=" ",B++)),t.hard&&D[l]>u){const A=u-B,$=1+Math.floor((D[l]-A-1)/u);Math.floor((D[l]-1)/u)<$&&C.push(""),W(C,c,u);continue}if(B+D[l]>u&&B>0&&D[l]>0){if(t.wordWrap===!1&&B<u){W(C,c,u);continue}C.push("")}if(B+D[l]>u&&t.wordWrap===!1){W(C,c,u);continue}C[C.length-1]+=c}t.trim!==!1&&(C=C.map(l=>dD(l)));const h=[...C.join(`
2
2
  `)];for(const[l,c]of h.entries()){if(F+=c,v.has(c)){const{groups:A}=new RegExp(`(?:\\${G}(?<code>\\d+)m|\\${M}(?<uri>.*)${V})`).exec(h.slice(l).join(""))||{groups:{}};if(A.code!==void 0){const $=Number.parseFloat(A.code);r=$===mD?void 0:$}else A.uri!==void 0&&(s=A.uri.length===0?void 0:A.uri)}const B=pD.codes.get(Number(r));h[l+1]===`
3
3
  `?(s&&(F+=Y("")),r&&B&&(F+=Z(B))):c===`
4
4
  `&&(r&&B&&(F+=Z(r)),s&&(F+=Y(s)))}return F};function H(e,u,t){return String(e).normalize().replace(/\r\n/g,`
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{hrtime as zr,cwd as hi,stdout as Hr,exit as Gr,argv as Yr}from"node:process";import{o as qt,p as pi,q as qr,T as Jr,N as mi,r as Kr,u as gi,v as Qr,B as Xr,D as Di,E as Ci,G as Zr,I as b,K as es,O as De,P as ts,Q as ns,R as ke,S as is,U as rs,W as ss,X as wi,Y as Ai,j as qe,a as us,_ as os,a0 as Jt,e as Ei,L as yn,a1 as bi,a2 as as,a3 as Fi,a4 as yi,a5 as vi,a6 as cs}from"../shared/likec4.DLr42w54.mjs";import{notStrictEqual as ls,strictEqual as fs}from"assert";import{resolve as je,dirname as vn,normalize as ds,basename as hs,extname as ps,relative as ms}from"path";import{statSync as Bi,readdirSync as gs,readFileSync as Bn,writeFile as Ds}from"fs";import{format as Oi,inspect as Cs}from"util";import{fileURLToPath as ws}from"url";import{resolve as Q,dirname as _t,join as St,extname as Kt,relative as wt,isAbsolute as _i,basename as On}from"node:path";import{existsSync as rt,copyFileSync as Si,rmSync as Ii}from"node:fs";import{mkdtemp as Qt,writeFile as At,mkdir as Je,stat as xi,copyFile as As,rm as Es}from"node:fs/promises";import bs,{tmpdir as Xt}from"node:os";import{fileURLToPath as Fs}from"node:url";import{build as It,createServer as ys,preview as vs}from"vite";import{chromium as $i}from"playwright";import Bs from"node:net";import{setTimeout as Os}from"node:timers/promises";import _s from"@vitejs/plugin-react-swc";import"tty";import"@hpcc-js/wasm-graphviz";import"node:util";import"node:tty";import"node:child_process";import"node:string_decoder";import"child_process";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"buffer";import"os";import"crypto";import"net";const Ss={right:Ns,center:Ls},Is=0,Zt=1,xs=2,en=3;class $s{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){const t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);const t=e.map(n=>typeof n=="string"?this.colFromString(n):n);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){const t=e.split(`
2
+ import{hrtime as zr,cwd as hi,stdout as Hr,exit as Gr,argv as Yr}from"node:process";import{n as qt,o as pi,p as qr,T as Jr,N as mi,q as Kr,r as gi,u as Qr,v as Xr,z as Di,B as Ci,D as Zr,G as b,I as es,K as De,O as ts,P as ns,Q as ke,S as is,U as rs,W as ss,X as wi,_ as Ai,h as qe,k as us,$ as os,a0 as Jt,f as Ei,L as yn,a1 as bi,a2 as as,a3 as Fi,a4 as yi,a5 as vi,a6 as cs}from"../shared/likec4.D5WUQlNc.mjs";import{notStrictEqual as ls,strictEqual as fs}from"assert";import{resolve as je,dirname as vn,normalize as ds,basename as hs,extname as ps,relative as ms}from"path";import{statSync as Bi,readdirSync as gs,readFileSync as Bn,writeFile as Ds}from"fs";import{format as Oi,inspect as Cs}from"util";import{fileURLToPath as ws}from"url";import{resolve as Q,dirname as _t,join as St,extname as Kt,relative as wt,isAbsolute as _i,basename as On}from"node:path";import{existsSync as rt,copyFileSync as Si,rmSync as Ii}from"node:fs";import{mkdtemp as Qt,writeFile as At,mkdir as Je,stat as xi,copyFile as As,rm as Es}from"node:fs/promises";import bs,{tmpdir as Xt}from"node:os";import{fileURLToPath as Fs}from"node:url";import{build as It,createServer as ys,preview as vs}from"vite";import{chromium as $i}from"playwright";import Bs from"node:net";import{setTimeout as Os}from"node:timers/promises";import _s from"@vitejs/plugin-react-swc";import"tty";import"node:util";import"os";import"crypto";import"net";import"child_process";import"@hpcc-js/wasm-graphviz";import"node:tty";import"node:child_process";import"node:string_decoder";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"buffer";const Ss={right:Ns,center:Ls},Is=0,Zt=1,xs=2,en=3;class $s{constructor(e){var t;this.width=e.width,this.wrap=(t=e.wrap)!==null&&t!==void 0?t:!0,this.rows=[]}span(...e){const t=this.div(...e);t.span=!0}resetOutput(){this.rows=[]}div(...e){if(e.length===0&&this.div(""),this.wrap&&this.shouldApplyLayoutDSL(...e)&&typeof e[0]=="string")return this.applyLayoutDSL(e[0]);const t=e.map(n=>typeof n=="string"?this.colFromString(n):n);return this.rows.push(t),t}shouldApplyLayoutDSL(...e){return e.length===1&&typeof e[0]=="string"&&/[\t\n]/.test(e[0])}applyLayoutDSL(e){const t=e.split(`
3
3
  `).map(r=>r.split(" "));let n=0;return t.forEach(r=>{r.length>1&&Ee.stringWidth(r[0])>n&&(n=Math.min(Math.floor(this.width*.5),Ee.stringWidth(r[0])))}),t.forEach(r=>{this.div(...r.map((s,u)=>({text:s.trim(),padding:this.measurePadding(s),width:u===0&&r.length>1?n:void 0})))}),this.rows[this.rows.length-1]}colFromString(e){return{text:e,padding:this.measurePadding(e)}}measurePadding(e){const t=Ee.stripAnsi(e);return[0,t.match(/\s*$/)[0].length,0,t.match(/^\s*/)[0].length]}toString(){const e=[];return this.rows.forEach(t=>{this.rowToString(t,e)}),e.filter(t=>!t.hidden).map(t=>t.text).join(`
4
4
  `)}rowToString(e,t){return this.rasterize(e).forEach((n,r)=>{let s="";n.forEach((u,a)=>{const{width:c}=e[a],h=this.negatePadding(e[a]);let l=u;if(h>Ee.stringWidth(u)&&(l+=" ".repeat(h-Ee.stringWidth(u))),e[a].align&&e[a].align!=="left"&&this.wrap){const m=Ss[e[a].align];l=m(l,h),Ee.stringWidth(l)<h&&(l+=" ".repeat((c||0)-Ee.stringWidth(l)-1))}const f=e[a].padding||[0,0,0,0];f[en]&&(s+=" ".repeat(f[en])),s+=ji(e[a],l,"| "),s+=l,s+=ji(e[a],l," |"),f[Zt]&&(s+=" ".repeat(f[Zt])),r===0&&t.length>0&&(s=this.renderInline(s,t[t.length-1]))}),t.push({text:s.replace(/ +$/,""),span:e.span})}),t}renderInline(e,t){const n=e.match(/^ */),r=n?n[0].length:0,s=t.text,u=Ee.stringWidth(s.trimRight());return t.span?this.wrap?r<u?e:(t.hidden=!0,s.trimRight()+" ".repeat(r-u)+e.trimLeft()):(t.hidden=!0,s+e):e}rasterize(e){const t=[],n=this.columnWidths(e);let r;return e.forEach((s,u)=>{s.width=n[u],this.wrap?r=Ee.wrap(s.text,this.negatePadding(s),{hard:!0}).split(`
5
5
  `):r=s.text.split(`
@@ -291,7 +291,7 @@ if (import.meta.hot) {
291
291
  }
292
292
  })
293
293
  }
294
- `}const Oo={id:"virtual:likec4/dot-sources",virtualId:"\0likec4-plugin/dot-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/dot-sources"));const t=await i.views.viewsAsGraphvizOut(),n=ts(t,({id:r,svg:s,dot:u})=>[r,{dot:u,svg:s}]);return bo(n)}},_o={id:"virtual:likec4/d2-sources",virtualId:"\0likec4-plugin/d2-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/d2-sources"));const t=await i.views.computedViews();return Eo(t)}},So={id:"virtual:likec4/mmd-sources",virtualId:"\0likec4-plugin/mmd-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/mmd-sources"));const t=await i.views.computedViews();return vo(t)}},Io={id:"virtual:likec4/icons",virtualId:"\0likec4-plugin/icons.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/icons"));const t=await i.views.computedViews();return Fo(t)}},xo={id:"virtual:likec4/overview-graph",virtualId:"\0likec4-plugin/overview-graph.js",async load({likec4:i,logger:e,useOverviewGraph:t}){if(t===!0)try{e.info(b.dim("generating virtual:likec4/overview-graph"));const n=await i.views.overviewGraph();return $r(n)}catch(n){e.error(n)}return e.info(b.dim("generating empty virtual:likec4/overview-graph")),$r({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}})}},jr={id:"virtual:likec4/previews",virtualId:"\0likec4-plugin/previews.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(b.dim("generating virtual:likec4/previews"));const n=await i.views.computedViews();return Bo(n,t)}},$o={id:"virtual:likec4/model",virtualId:"\0likec4-plugin/model.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(b.dim("generating virtual:likec4/model"));const n=await i.layoutedModel();return yo(n)}},ni=[Io,Oo,_o,So,xo,jr,$o],jo=i=>{const e=i.toLowerCase();return e.endsWith(".c4")||e.endsWith(".likec4")||e.endsWith(".like-c4")};function ii({useOverviewGraph:i=!1,languageServices:e}){let t,n=e.workspace;return{name:"vite-plugin-likec4",configResolved(r){if(t=r.logger,i){const s=r.resolve.alias.find(u=>u.find==="likec4/previews")?.replacement;s?(n=s,t.info(b.dim("likec4/previews alias")+" "+b.dim(n))):t.warn("likec4/previews alias not found")}},resolveId(r){const s=ni.find(u=>u.id===r);return s?s.virtualId:null},async load(r){const s=ni.find(u=>u.virtualId===r);return s?await s.load({logger:t,likec4:e,assetsDir:n,useOverviewGraph:i}):null},configureServer(r){const s=es(1),u=()=>{s.clearQueue(),s(async()=>{const[h]=e.getErrors();if(h){r.ws.send({type:"error",err:{name:"LikeC4ValidationError",message:"Validation error: "+h.message.slice(0,500),stack:"",plugin:"vite-plugin-likec4",loc:{file:h.sourceFsPath,line:h.range.start.line+1,column:h.range.start.character+1}}});return}for(const l of ni){const f=r.moduleGraph.getModuleById(l.virtualId);if(f&&f.importers.size>0){t.info(`${b.green("trigger hmr")} ${b.dim(f.url)}`);try{await r.reloadModule(f)}catch(m){t.error(m)}}}})},a=e.workspace;t.info(`${b.dim("watch")} ${a}`);const c=h=>l=>{jo(l)&&e.notifyUpdate({[h]:l})};if(r.watcher.add(a).on("add",c("changed")).on("change",c("changed")).on("unlink",c("removed")),i&&!n.startsWith(e.workspace)){t.info(`${b.dim("watch")} ${n}`);const h=()=>{const l=r.moduleGraph.getModuleById(jr.virtualId);l&&l.importers.size>0&&r.reloadModule(l)};r.watcher.add(n).on("add",h).on("change",h).on("unlink",h)}e.onModelUpdate(()=>{De.debug("likec4 model update"),u()})}}}const ri=_t(Fs(import.meta.url)),Po=`
294
+ `}const Oo={id:"virtual:likec4/dot-sources",virtualId:"\0likec4-plugin/dot-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/dot-sources"));const t=await i.viewsService.viewsAsGraphvizOut(),n=ts(t,({id:r,svg:s,dot:u})=>[r,{dot:u,svg:s}]);return bo(n)}},_o={id:"virtual:likec4/d2-sources",virtualId:"\0likec4-plugin/d2-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/d2-sources"));const t=await i.viewsService.computedViews();return Eo(t)}},So={id:"virtual:likec4/mmd-sources",virtualId:"\0likec4-plugin/mmd-sources.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/mmd-sources"));const t=await i.viewsService.computedViews();return vo(t)}},Io={id:"virtual:likec4/icons",virtualId:"\0likec4-plugin/icons.js",async load({likec4:i,logger:e}){e.info(b.dim("generating virtual:likec4/icons"));const t=await i.viewsService.computedViews();return Fo(t)}},xo={id:"virtual:likec4/overview-graph",virtualId:"\0likec4-plugin/overview-graph.js",async load({likec4:i,logger:e,useOverviewGraph:t}){if(t===!0)try{e.info(b.dim("generating virtual:likec4/overview-graph"));const n=await i.viewsService.overviewGraph();return $r(n)}catch(n){e.error(n)}return e.info(b.dim("generating empty virtual:likec4/overview-graph")),$r({nodes:[],edges:[],bounds:{x:0,y:0,width:10,height:10}})}},jr={id:"virtual:likec4/previews",virtualId:"\0likec4-plugin/previews.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(b.dim("generating virtual:likec4/previews"));const n=await i.viewsService.computedViews();return Bo(n,t)}},$o={id:"virtual:likec4/model",virtualId:"\0likec4-plugin/model.js",async load({likec4:i,logger:e,assetsDir:t}){e.info(b.dim("generating virtual:likec4/model"));const n=await i.layoutedModel();return yo(n)}},ni=[Io,Oo,_o,So,xo,jr,$o],jo=i=>{const e=i.toLowerCase();return e.endsWith(".c4")||e.endsWith(".likec4")||e.endsWith(".like-c4")};function ii({useOverviewGraph:i=!1,languageServices:e}){let t,n=e.workspace;return{name:"vite-plugin-likec4",configResolved(r){if(t=r.logger,i){const s=r.resolve.alias.find(u=>u.find==="likec4/previews")?.replacement;s?(n=s,t.info(b.dim("likec4/previews alias")+" "+b.dim(n))):t.warn("likec4/previews alias not found")}},resolveId(r){const s=ni.find(u=>u.id===r);return s?s.virtualId:null},async load(r){const s=ni.find(u=>u.virtualId===r);return s?await s.load({logger:t,likec4:e,assetsDir:n,useOverviewGraph:i}):null},configureServer(r){const s=es(1),u=()=>{s.clearQueue(),s(async()=>{const[h]=e.getErrors();if(h){r.ws.send({type:"error",err:{name:"LikeC4ValidationError",message:"Validation error: "+h.message.slice(0,500),stack:"",plugin:"vite-plugin-likec4",loc:{file:h.sourceFsPath,line:h.range.start.line+1,column:h.range.start.character+1}}});return}for(const l of ni){const f=r.moduleGraph.getModuleById(l.virtualId);if(f&&f.importers.size>0){t.info(`${b.green("trigger hmr")} ${b.dim(f.url)}`);try{await r.reloadModule(f)}catch(m){t.error(m)}}}})},a=e.workspace;t.info(`${b.dim("watch")} ${a}`);const c=h=>l=>{jo(l)&&e.notifyUpdate({[h]:l})};if(r.watcher.add(a).on("add",c("changed")).on("change",c("changed")).on("unlink",c("removed")),i&&!n.startsWith(e.workspace)){t.info(`${b.dim("watch")} ${n}`);const h=()=>{const l=r.moduleGraph.getModuleById(jr.virtualId);l&&l.importers.size>0&&r.reloadModule(l)};r.watcher.add(n).on("add",h).on("change",h).on("unlink",h)}e.onModelUpdate(()=>{De.debug("likec4 model update"),u()})}}}const ri=_t(Fs(import.meta.url)),Po=`
295
295
  /* prettier-ignore-start */
296
296
  /* eslint-disable */
297
297
 
@@ -311,7 +311,7 @@ ${i.join(`
311
311
  `+"".padEnd(9," "))].join(`
312
312
  `))}class Lr extends Error{constructor(e){super(`${e} is locked`)}}const Ot={old:new Set,young:new Set},ko=1e3*15,wn=1024,An=65535;let Gt;const To=()=>{const i=bs.networkInterfaces(),e=new Set([void 0,"0.0.0.0"]);for(const t of Object.values(i))for(const n of t)e.add(n.address);return e},Mr=i=>new Promise((e,t)=>{const n=Bs.createServer();n.unref(),n.on("error",t),n.listen(i,()=>{const{port:r}=n.address();n.close(()=>{e(r)})})}),kr=async(i,e)=>{if(i.host||i.port===0)return Mr(i);for(const t of e)try{await Mr({port:i.port,host:t})}catch(n){if(!["EADDRNOTAVAIL","EINVAL"].includes(n.code))throw n}return i.port},Ro=function*(i){i&&(yield*i),yield 0};async function fi(i){let e,t=new Set;if(i&&(i.port&&(e=typeof i.port=="number"?[i.port]:i.port),i.exclude)){const r=i.exclude;if(typeof r[Symbol.iterator]!="function")throw new TypeError("The `exclude` option must be an iterable.");for(const s of r){if(typeof s!="number")throw new TypeError("Each item in the `exclude` option must be a number corresponding to the port you want excluded.");if(!Number.isSafeInteger(s))throw new TypeError(`Number ${s} in the exclude option is not a safe integer and can't be used`)}t=new Set(r)}Gt===void 0&&(Gt=setTimeout(()=>{Gt=void 0,Ot.old=Ot.young,Ot.young=new Set},ko),Gt.unref&&Gt.unref());const n=To();for(const r of Ro(e))try{if(t.has(r))continue;let s=await kr({...i,port:r},n);for(;Ot.old.has(s)||Ot.young.has(s);){if(r!==0)throw new Lr(r);s=await kr({...i,port:r},n)}return Ot.young.add(s),s}catch(s){if(!["EADDRINUSE","EACCES"].includes(s.code)&&!(s instanceof Lr))throw s}throw new Error("No available ports found")}function En(i,e){if(!Number.isInteger(i)||!Number.isInteger(e))throw new TypeError("`from` and `to` must be integer numbers");if(i<wn||i>An)throw new RangeError(`'from' must be between ${wn} and ${An}`);if(e<wn||e>An)throw new RangeError(`'to' must be between ${wn} and ${An}`);if(i>e)throw new RangeError("`to` must be greater than or equal to `from`");return function*(n,r){for(let s=n;s<=r;s++)yield s}(i,e)}async function Tr({buildWebcomponent:i=!0,hmr:e=!0,webcomponentPrefix:t="likec4",languageServices:n,likec4AssetsDir:r,openBrowser:s,...u}){r??=await Qt(St(Xt(),".likec4-assets-"));const{isDev:a,...c}=await ci({...u,languageServices:n,likec4AssetsDir:r,webcomponentPrefix:t}),h=await fi({port:[5173,...En(61e3,61010),...En(62002,62010)]}),l=await fi({port:En(24678,24690)}),f=await oi();let m;if(i){const F=await li({webcomponentPrefix:t,languageServices:n,outDir:f,base:c.base});m=It({...F,logLevel:"warn"}).catch(w=>(De.warn("webcomponent build failed",w),De.warn("Ignoring error and continuing"),Promise.resolve()))}const C=await ys({...c,define:Object.assign({},c.define,e&&{"process.env.NODE_ENV":'"development"'}),mode:e?"development":c.mode,publicDir:f,server:{host:"0.0.0.0",port:h,hmr:e&&{overlay:!0,port:l},fs:{strict:!1},open:s??!a}});return await C.listen(),m&&await m,C}async function Wo({browserContext:i,views:e,output:t,logger:n,timeout:r,maxAttempts:s,outputType:u,theme:a}){let c;const h=e.map(m=>({view:m,attempt:1})),l=[];let f;for(;f=h.shift();){const{view:m,attempt:C}=f,F=`/export/${encodeURIComponent(m.id)}`;try{if(C>1){c&&(c.close({runBeforeUnload:!0}).catch(M=>n.error(`failed to close page: ${M}`)),c=void 0);const B=Ai(C*200,{min:200,max:1e3});n.info(b.cyan(F)+b.dim(` attempt ${C} of ${s} after ${B}ms`)),await Os(B)}else m.hasLayoutDrift&&n.warn(b.yellow("Drift detected, manual layout can not be applied, view may be invalid: ")+b.red(m.id)),n.info(b.cyan(F));c??=await i.newPage(),await c.goto(F+`?padding=20&theme=${a}`);const w=c.getByRole("presentation");await w.waitFor(),m.nodes.some(B=>Ci(B.icon)&&B.icon.toLowerCase().startsWith("http"))&&await Uo(c,r);let p=".";u==="relative"&&(p=m.relativePath??".",p.includes("/")?p=p.slice(0,p.lastIndexOf("/")):p=".");const y=Q(t,p,`${m.id}.png`);await w.screenshot({path:y,omitBackground:!0}),l.push({view:m,path:y})}catch(w){c?.close({runBeforeUnload:!0}).catch(p=>n.error(`failed to close page: ${p}`)),n.error(b.red("failed "+F+`
313
313
  `+w)),C<s&&(h.push({view:m,attempt:C+1}),n.info(b.dim(`retry ${F}`))),c=void 0}}return l}async function Uo(i,e){let t=await i.locator("//img").all();if(!t.length)return;const n=t.map(r=>r.evaluate(s=>s.complete||new Promise((u,a)=>{s.onload=u,s.onerror=a}),{timeout:Math.max(3e4,e)}));await Promise.allSettled(n)}async function Rr({logger:i,serverUrl:e,theme:t="light",timeoutMs:n=15e3,views:r,output:s,outputType:u="relative",maxAttempts:a=3}){i.info(`${b.cyan("export output")} ${b.dim(s)}`),i.info(`${b.cyan("from server")} ${b.dim(e)}`);const c=$i.executablePath();i.info(b.cyan("Start chromium")),i.info(b.dim(c));const h=await $i.launch();i.info(b.cyan("Color scheme: ")+t);const l=await h.newContext({deviceScaleFactor:2,colorScheme:t,baseURL:e,isMobile:!1});l.setDefaultNavigationTimeout(n),l.setDefaultTimeout(n);try{return await Wo({browserContext:l,views:r,output:s,outputType:u,logger:i,maxAttempts:a,timeout:n,theme:t})}finally{i.info(b.cyan("close chromium")),await l.close(),await h.close()}}async function Wr({path:i,useDotBin:e,theme:t="light",output:n,outputType:r,serverUrl:s,ignore:u=!1,timeoutMs:a=1e4,maxAttempts:c=3}){const h=ke("c4:export"),l=zr(),f=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n??=f.workspace;const m=await f.diagrams();if(!us(m,1))throw h.warn("no views found"),new Error("no views found");let C;if(!s&&(h.info(b.cyan("start preview server")),C=await Tr({languageServices:f,buildWebcomponent:!1,openBrowser:!1,useOverviewGraph:!1,hmr:!1}),s=Pr(C),!s))throw h.error("Vite server is not ready, no resolvedUrls"),new Error("Vite server is not ready, no resolvedUrls");try{const F=await Rr({logger:h,serverUrl:s,theme:t,timeoutMs:a,views:m,output:n,outputType:r,maxAttempts:c}),{pretty:w}=os(l);if(F.length>0&&h.info(b.green(`exported ${F.length} views in ${w}`)),F.length!==m.length&&(u&&F.length>0?h.info(b.dim("ignore")+" "+b.red(`failed ${m.length-F.length} out of ${m.length} views`)):h.error(b.red(`failed ${m.length-F.length} out of ${m.length} views`))),F.length!==m.length&&(F.length===0||!u))throw new Error(`Failed ${m.length-F.length} out of ${m.length} views`)}finally{C&&(h.info(b.cyan("stop server")),await C.close().catch(F=>{h.error(F)}))}}const{cyan:Ur,dim:Vr}=b;async function Vo({path:i,useDotBin:e,useHashHistory:t,webcomponentPrefix:n,useOverview:r=!1,output:s,base:u}){const a=ke("c4:build"),c=await qe.fromWorkspace(i,{graphviz:e?"binary":"wasm",logger:"vite"}),h=s??Q(c.workspace,"dist");let l=Q(h,"assets");if(r)try{l=Q(h,"assets","previews"),await Je(l,{recursive:!0}),a.info(`${Ur("Generate previews")} ${Vr(l)}
314
- `),await Wr({path:i,useDotBin:e,output:l,outputType:"flat",ignore:!0})}catch(f){a.error(b.red("Failed to generate previews")),a.error(f),a.warn(b.yellow("Ignore previews and continue build")),Ii(l,{recursive:!0,force:!0}),r=!1}await Mo({base:u,useHashHistory:t,customLogger:a,useOverviewGraph:r,webcomponentPrefix:n,languageServices:c,likec4AssetsDir:l,outputDir:s}),r&&(a.info(`${Ur("clean previews")} ${Vr(l)}`),Ii(l,{recursive:!0,force:!0}))}const zo={command:"build [path]",aliases:["bundle"],describe:"Build a static website",builder:i=>i.positional("path",hn).option("output",{alias:"o",type:"string",desc:"output directory for production build",normalize:!0,coerce:Q}).option("base",Dr).option("use-hash-history",gr).option("use-dot",We).option("webcomponent-prefix",Gn).option("use-overview",Cr).example(`${b.green("$0 build -o ./build ./src")}`,b.gray("Search for likec4 files in 'src' and output static site to 'build'")),handler:async i=>{await Vo({path:i.path,output:i.output,base:i.base,useHashHistory:i["use-hash-history"],useDotBin:i["use-dot"],useOverview:i["use-overview"]??!1,webcomponentPrefix:i["webcomponent-prefix"]})}};async function Ho(i,e,t){const n=".ts";e=e??Q(i.workspace,"likec4.generated"+n),Kt(e)!==n&&(e=e+n),await Je(_t(e),{recursive:!0});const r=await i.diagrams(),s=Ao([...r]);await At(e,s),t.info(`${b.dim("generated")} ${wt(process.cwd(),e)}`)}async function Go(i,e,t){await Je(e,{recursive:!0}),t.info(`${b.dim("format")} ${b.green("dot")}`),t.info(`${b.dim("outdir")} ${e}`);const n=new Set,r=await i.views.layoutViews();let s=0;for(const{diagram:u,dot:a}of r)try{const c=u.relativePath??"";c!==""&&!n.has(c)&&(await Je(Q(e,c),{recursive:!0}),n.add(c));const h=Q(e,c,u.id+".dot");yn(a,`dot for ${u.id} not found`),await At(h,a),t.info(`${b.dim("generated")} ${wt(process.cwd(),h)}`),s++}catch(c){t.error(`error while generating ${u.id}`,{error:c})}s>0&&t.info(`${b.dim("total")} ${s} files`)}async function Yo(i,e,t,n){await Je(t,{recursive:!0}),n.info(`${b.dim("format")} ${b.green(e)}`),n.info(`${b.dim("outdir")} ${t}`);let r,s;switch(e){case"d2":r=".d2",s=Or;break;case"mermaid":r=".mmd",s=_r;break;default:Ei(e)}const u=new Set,a=await i.diagrams();let c=0;for(const h of a)try{let l=h.relativePath??".";l.includes("/")?l=l.slice(0,l.lastIndexOf("/")):l=".",l!==""&&!u.has(l)&&(await Je(Q(t,l),{recursive:!0}),u.add(l));const f=Q(t,l,h.id+r),m=s(h);await At(f,m),n.info(`${b.dim("generated")} ${wt(process.cwd(),f)}`),c++}catch(l){n.error(`error while generating ${h.id}`,{error:l})}c>0&&n.info(`${b.dim("total")} ${c} files`)}async function bn({path:i,useDotBin:e,...t}){const n=ke("c4:codegen"),r=Jt(n),s=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});if((await s.views.computedViews()).length===0)throw n.warn("no views found"),process.exitCode=1,new Error("no views found");switch(t.format){case"views":{await Ho(s,t.outfile,n);break}case"dot":{await Go(s,t.outdir??i,n);break}case"d2":case"mermaid":{await Yo(s,t.format,t.outdir??i,n);break}default:Ei(t)}r.stopAndLog()}async function qo({languageServices:i,outDir:e,filename:t="likec4-react.mjs"}){const n=ke("c4:react"),r=ui();return n.info(b.cyan("outDir")+" "+b.dim(e)),{customLogger:n,root:r,configFile:!1,clearScreen:!1,publicDir:!1,mode:"production",esbuild:{banner:`'use client'
314
+ `),await Wr({path:i,useDotBin:e,output:l,outputType:"flat",ignore:!0})}catch(f){a.error(b.red("Failed to generate previews")),a.error(f),a.warn(b.yellow("Ignore previews and continue build")),Ii(l,{recursive:!0,force:!0}),r=!1}await Mo({base:u,useHashHistory:t,customLogger:a,useOverviewGraph:r,webcomponentPrefix:n,languageServices:c,likec4AssetsDir:l,outputDir:s}),r&&(a.info(`${Ur("clean previews")} ${Vr(l)}`),Ii(l,{recursive:!0,force:!0}))}const zo={command:"build [path]",aliases:["bundle"],describe:"Build a static website",builder:i=>i.positional("path",hn).option("output",{alias:"o",type:"string",desc:"output directory for production build",normalize:!0,coerce:Q}).option("base",Dr).option("use-hash-history",gr).option("use-dot",We).option("webcomponent-prefix",Gn).option("use-overview",Cr).example(`${b.green("$0 build -o ./build ./src")}`,b.gray("Search for likec4 files in 'src' and output static site to 'build'")),handler:async i=>{await Vo({path:i.path,output:i.output,base:i.base,useHashHistory:i["use-hash-history"],useDotBin:i["use-dot"],useOverview:i["use-overview"]??!1,webcomponentPrefix:i["webcomponent-prefix"]})}};async function Ho(i,e,t){const n=".ts";e=e??Q(i.workspace,"likec4.generated"+n),Kt(e)!==n&&(e=e+n),await Je(_t(e),{recursive:!0});const r=await i.diagrams(),s=Ao([...r]);await At(e,s),t.info(`${b.dim("generated")} ${wt(process.cwd(),e)}`)}async function Go(i,e,t){await Je(e,{recursive:!0}),t.info(`${b.dim("format")} ${b.green("dot")}`),t.info(`${b.dim("outdir")} ${e}`);const n=new Set,r=await i.viewsService.layoutViews();let s=0;for(const{diagram:u,dot:a}of r)try{const c=u.relativePath??"";c!==""&&!n.has(c)&&(await Je(Q(e,c),{recursive:!0}),n.add(c));const h=Q(e,c,u.id+".dot");yn(a,`dot for ${u.id} not found`),await At(h,a),t.info(`${b.dim("generated")} ${wt(process.cwd(),h)}`),s++}catch(c){t.error(`error while generating ${u.id}`,{error:c})}s>0&&t.info(`${b.dim("total")} ${s} files`)}async function Yo(i,e,t,n){await Je(t,{recursive:!0}),n.info(`${b.dim("format")} ${b.green(e)}`),n.info(`${b.dim("outdir")} ${t}`);let r,s;switch(e){case"d2":r=".d2",s=Or;break;case"mermaid":r=".mmd",s=_r;break;default:Ei(e)}const u=new Set,a=await i.diagrams();let c=0;for(const h of a)try{let l=h.relativePath??".";l.includes("/")?l=l.slice(0,l.lastIndexOf("/")):l=".",l!==""&&!u.has(l)&&(await Je(Q(t,l),{recursive:!0}),u.add(l));const f=Q(t,l,h.id+r),m=s(h);await At(f,m),n.info(`${b.dim("generated")} ${wt(process.cwd(),f)}`),c++}catch(l){n.error(`error while generating ${h.id}`,{error:l})}c>0&&n.info(`${b.dim("total")} ${c} files`)}async function bn({path:i,useDotBin:e,...t}){const n=ke("c4:codegen"),r=Jt(n),s=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});if((await s.viewsService.computedViews()).length===0)throw n.warn("no views found"),process.exitCode=1,new Error("no views found");switch(t.format){case"views":{await Ho(s,t.outfile,n);break}case"dot":{await Go(s,t.outdir??i,n);break}case"d2":case"mermaid":{await Yo(s,t.format,t.outdir??i,n);break}default:Ei(t)}r.stopAndLog()}async function qo({languageServices:i,outDir:e,filename:t="likec4-react.mjs"}){const n=ke("c4:react"),r=ui();return n.info(b.cyan("outDir")+" "+b.dim(e)),{customLogger:n,root:r,configFile:!1,clearScreen:!1,publicDir:!1,mode:"production",esbuild:{banner:`'use client'
315
315
  `+si.banner,footer:si.footer,jsx:"transform",jsxDev:!1,jsxSideEffects:!1,minifyIdentifiers:!1,minifySyntax:!1,minifyWhitespace:!1,tsconfigRaw:{compilerOptions:{target:"ES2022",useDefineForClassFields:!0,verbatimModuleSyntax:!0,jsx:"react-jsx"}}},build:{outDir:e,emptyOutDir:!1,sourcemap:!1,minify:!1,target:"es2022",copyPublicDir:!1,chunkSizeWarningLimit:ai,lib:{entry:"react/likec4.tsx",fileName(s,u){return t},formats:["es"]},rollupOptions:{output:{compact:!1,exports:"named"},external:["likec4/react","react","react-dom","react/jsx-runtime","react/jsx-dev-runtime","react-dom/client",/likec4\/icons\/.*/],onwarn(s,u){s.code!=="SOURCEMAP_ERROR"&&u(s)}}},plugins:[_s({}),ii({languageServices:i,useOverviewGraph:!1})]}}function di(i){const e=[...i].sort(as).map(t=>` | ${JSON.stringify(t)}`);return e.length===0&&e.push(" never"),e.join(`
316
316
  `)+";"}async function Jo({path:i,useDotBin:e,outfile:t}){const n=ke("c4:codegen"),r=Jt(n),s=await qe.fromWorkspace(i,{logger:"vite",graphviz:e?"binary":"wasm"});n.info(`${b.dim("format")} ${b.green("react")}`);const u=await s.diagrams();if(u.length===0)throw process.exitCode=1,new Error("no views found");u.forEach(p=>{p.hasLayoutDrift&&n.warn(b.yellow("drift detected, manual layout can not be applied, view:")+" "+b.red(p.id))});let a=Q(s.workspace,"likec4-views.js");if(t&&(a=_i(t)?t:Q(t),rt(t)&&(await xi(t)).isDirectory()))throw new Error(`output file is a directory: ${t}`);const c=_t(a);n.info(`${b.dim("outdir")} ${c}`);const h=On(a);n.info(`${b.dim("filename")} ${h}`);const l=Kt(h).toLocaleLowerCase();if(![".js",".mjs",".jsx"].includes(l))throw n.error(`output file ${t} has extension "${l}"`),new Error(`output file ${t} must be a .js, .jsx or .mjs`);const f=await qo({languageServices:s,outDir:c,filename:h});await It({...f,logLevel:"warn"});const m=u.reduce((p,y)=>(p.ids.add(y.id),y.tags?.forEach(B=>p.tags.add(B)),y.nodes.forEach(B=>{B.tags?.forEach(M=>p.tags.add(M)),p.kinds.add(B.kind)}),y.edges.forEach(B=>{B.tags?.forEach(M=>p.tags.add(M))}),p),{ids:new Set,tags:new Set,kinds:new Set}),C=di(m.ids),F=di(m.tags),w=di(m.kinds);await At(Q(c,On(a,l)+(l===".mjs"?".d.mts":".d.ts")),`
317
317
  /* prettier-ignore-start */
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LiteralUnion, Tagged, TupleToUnion, NonEmptyTuple, Class, IsNumericLiteral, IfNever, Simplify, SetRequired, ValueOf, ConditionalPick } from 'type-fest';
2
2
 
3
3
  type NonEmptyArray<T> = [T, ...T[]];
4
- type IconUrl = Tagged<string, 'IconUrl'>;
4
+ type IconUrl = Tagged<string, 'IconUrl'> | 'none';
5
5
  type CustomColor$1 = string;
6
6
  type Point = readonly [x: number, y: number];
7
7
  interface XYPoint {
@@ -1404,6 +1404,10 @@ declare namespace LikeC4Model {
1404
1404
  siblings(): readonly ElementModel<M>[];
1405
1405
  descendants(): readonly ElementModel<M>[];
1406
1406
  children(): readonly ElementModel<M>[];
1407
+ /**
1408
+ * First 'view of' current element
1409
+ */
1410
+ viewOf(): M;
1407
1411
  /**
1408
1412
  * All views 'view of' current element
1409
1413
  */
@@ -15701,7 +15705,7 @@ interface IconProperty extends AstNode {
15701
15705
  readonly $type: 'IconProperty';
15702
15706
  key: 'icon';
15703
15707
  libicon?: Reference<LibIcon>;
15704
- value?: Uri;
15708
+ value?: 'none' | Uri;
15705
15709
  }
15706
15710
  declare const IconProperty = "IconProperty";
15707
15711
  interface IncludePredicate extends AstNode {
@@ -17326,17 +17330,13 @@ declare class LikeC4 {
17326
17330
  private modelLayoutedRef;
17327
17331
  private logger;
17328
17332
  private langiumDocuments;
17329
- readonly views: Views;
17330
17333
  private constructor();
17334
+ get viewsService(): Views;
17331
17335
  /**
17332
17336
  * Diagram is a computed view, layouted using Graphviz
17333
17337
  * Used in React components
17334
17338
  */
17335
17339
  diagrams(): Promise<DiagramView[]>;
17336
- /**
17337
- * @deprecated use computedModel
17338
- */
17339
- model(): LikeC4Model.Computed;
17340
17340
  /**
17341
17341
  * Synchronously builds architecture model
17342
17342
  * Only compute views predicates {@link ComputedView} - i.e. no layout
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LiteralUnion, Tagged, TupleToUnion, NonEmptyTuple, Class, IsNumericLiteral, IfNever, Simplify, SetRequired, ValueOf, ConditionalPick } from 'type-fest';
2
2
 
3
3
  type NonEmptyArray<T> = [T, ...T[]];
4
- type IconUrl = Tagged<string, 'IconUrl'>;
4
+ type IconUrl = Tagged<string, 'IconUrl'> | 'none';
5
5
  type CustomColor$1 = string;
6
6
  type Point = readonly [x: number, y: number];
7
7
  interface XYPoint {
@@ -1404,6 +1404,10 @@ declare namespace LikeC4Model {
1404
1404
  siblings(): readonly ElementModel<M>[];
1405
1405
  descendants(): readonly ElementModel<M>[];
1406
1406
  children(): readonly ElementModel<M>[];
1407
+ /**
1408
+ * First 'view of' current element
1409
+ */
1410
+ viewOf(): M;
1407
1411
  /**
1408
1412
  * All views 'view of' current element
1409
1413
  */
@@ -15701,7 +15705,7 @@ interface IconProperty extends AstNode {
15701
15705
  readonly $type: 'IconProperty';
15702
15706
  key: 'icon';
15703
15707
  libicon?: Reference<LibIcon>;
15704
- value?: Uri;
15708
+ value?: 'none' | Uri;
15705
15709
  }
15706
15710
  declare const IconProperty = "IconProperty";
15707
15711
  interface IncludePredicate extends AstNode {
@@ -17326,17 +17330,13 @@ declare class LikeC4 {
17326
17330
  private modelLayoutedRef;
17327
17331
  private logger;
17328
17332
  private langiumDocuments;
17329
- readonly views: Views;
17330
17333
  private constructor();
17334
+ get viewsService(): Views;
17331
17335
  /**
17332
17336
  * Diagram is a computed view, layouted using Graphviz
17333
17337
  * Used in React components
17334
17338
  */
17335
17339
  diagrams(): Promise<DiagramView[]>;
17336
- /**
17337
- * @deprecated use computedModel
17338
- */
17339
- model(): LikeC4Model.Computed;
17340
17340
  /**
17341
17341
  * Synchronously builds architecture model
17342
17342
  * Only compute views predicates {@link ComputedView} - i.e. no layout
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{H as BorderStyles,$ as ElementColors,J as ElementShapes,j as LikeC4,z as LikeC4Builder,t as LikeC4DiagramModel,m as LikeC4Model,s as LikeC4ViewModel,g as RelationshipColors,x as ancestorsFqn,A as commonAncestor,i as compareByFqnHierarchically,k as compareFqnHierarchically,M as compareRelations,h as defaultTheme,y as extractStep,a as hasAtLeast,L as invariant,b as isAncestor,w as isComputedDynamicView,c as isDescendantOf,d as isSameHierarchy,V as isStepEdgeId,C as nameFromFqn,F as nonNullable,e as nonexhaustive,f as parentFqn}from"./shared/likec4.DLr42w54.mjs";import"node:fs";import"node:path";import"node:url";import"tty";import"@hpcc-js/wasm-graphviz";import"node:util";import"node:process";import"node:tty";import"node:child_process";import"node:string_decoder";import"child_process";import"path";import"fs";import"node:timers/promises";import"node:os";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"vite";import"buffer";import"util";import"os";import"crypto";import"net";import"url";
1
+ export{H as BorderStyles,C as ElementColors,J as ElementShapes,h as LikeC4,Y as LikeC4Builder,t as LikeC4DiagramModel,m as LikeC4Model,s as LikeC4ViewModel,g as RelationshipColors,x as ancestorsFqn,A as commonAncestor,c as compareByFqnHierarchically,E as compareFqnHierarchically,a as compareRelations,d as defaultTheme,y as extractStep,k as hasAtLeast,L as invariant,b as isAncestor,w as isComputedDynamicView,R as isDescendantOf,e as isSameHierarchy,V as isStepEdgeId,M as nameFromFqn,F as nonNullable,f as nonexhaustive,i as parentFqn}from"./shared/likec4.D5WUQlNc.mjs";import"node:fs";import"node:path";import"node:url";import"tty";import"node:util";import"util";import"path";import"os";import"crypto";import"net";import"url";import"fs";import"child_process";import"node:fs/promises";import"@hpcc-js/wasm-graphviz";import"node:process";import"node:tty";import"node:child_process";import"node:string_decoder";import"node:timers/promises";import"node:os";import"node:events";import"node:v8";import"node:stream";import"node:buffer";import"node:stream/promises";import"vite";import"buffer";