@stacksjs/rpx 0.11.0 → 0.11.3

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.
@@ -0,0 +1 @@
1
+ import{A as e,B as f,C as g,D as h,E as i,F as j,G as k,w as a,x as b,y as c,z as d}from"./chunk-g5db14m7.js";import"./chunk-gbny098p.js";export{k as safeDeleteFile,e as isValidRootCA,i as isSingleProxyOptions,j as isSingleProxyConfig,h as isMultiProxyOptions,g as isMultiProxyConfig,a as getSudoPassword,f as getPrimaryDomain,d as extractHostname,b as execSudoSync,c as debugLog};
@@ -0,0 +1,45 @@
1
+ import"./chunk-3y886wa5.js";import"./chunk-gbny098p.js";import m,{stdin as iD,stdout as sD}from"node:process";import R from"node:readline";import{WriteStream as CD}from"node:tty";function nD(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var _,I;function aD(){if(I)return _;I=1;let t="\x1B",u=`${t}[`,e="\x07",F={to(D,C){if(!C)return`${u}${D+1}G`;return`${u}${C+1};${D+1}H`},move(D,C){let s="";if(D<0)s+=`${u}${-D}D`;else if(D>0)s+=`${u}${D}C`;if(C<0)s+=`${u}${-C}A`;else if(C>0)s+=`${u}${C}B`;return s},up:(D=1)=>`${u}${D}A`,down:(D=1)=>`${u}${D}B`,forward:(D=1)=>`${u}${D}C`,backward:(D=1)=>`${u}${D}D`,nextLine:(D=1)=>`${u}E`.repeat(D),prevLine:(D=1)=>`${u}F`.repeat(D),left:`${u}G`,hide:`${u}?25l`,show:`${u}?25h`,save:`${t}7`,restore:`${t}8`},r={up:(D=1)=>`${u}S`.repeat(D),down:(D=1)=>`${u}T`.repeat(D)},n={screen:`${u}2J`,up:(D=1)=>`${u}1J`.repeat(D),down:(D=1)=>`${u}J`.repeat(D),line:`${u}2K`,lineEnd:`${u}K`,lineStart:`${u}1K`,lines(D){let C="";for(let s=0;s<D;s++)C+=this.line+(s<D-1?F.up():"");if(D)C+=F.left;return C}};return _={cursor:F,scroll:r,erase:n,beep:e},_}var p=aD(),v={exports:{}},W;function ED(){if(W)return v.exports;W=1;let t=process||{},u=t.argv||[],e=t.env||{},F=!(!!e.NO_COLOR||u.includes("--no-color"))&&(!!e.FORCE_COLOR||u.includes("--color")||t.platform==="win32"||(t.stdout||{}).isTTY&&e.TERM!=="dumb"||!!e.CI),r=(C,s,l=C)=>(B)=>{let a=""+B,h=a.indexOf(s,C.length);return~h?C+n(a,s,l,h)+s:C+a+s},n=(C,s,l,B)=>{let a="",h=0;do a+=C.substring(h,B)+l,h=B+s.length,B=C.indexOf(s,h);while(~B);return a+C.substring(h)},D=(C=F)=>{let s=C?r:()=>String;return{isColorSupported:C,reset:s("\x1B[0m","\x1B[0m"),bold:s("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:s("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:s("\x1B[3m","\x1B[23m"),underline:s("\x1B[4m","\x1B[24m"),inverse:s("\x1B[7m","\x1B[27m"),hidden:s("\x1B[8m","\x1B[28m"),strikethrough:s("\x1B[9m","\x1B[29m"),black:s("\x1B[30m","\x1B[39m"),red:s("\x1B[31m","\x1B[39m"),green:s("\x1B[32m","\x1B[39m"),yellow:s("\x1B[33m","\x1B[39m"),blue:s("\x1B[34m","\x1B[39m"),magenta:s("\x1B[35m","\x1B[39m"),cyan:s("\x1B[36m","\x1B[39m"),white:s("\x1B[37m","\x1B[39m"),gray:s("\x1B[90m","\x1B[39m"),bgBlack:s("\x1B[40m","\x1B[49m"),bgRed:s("\x1B[41m","\x1B[49m"),bgGreen:s("\x1B[42m","\x1B[49m"),bgYellow:s("\x1B[43m","\x1B[49m"),bgBlue:s("\x1B[44m","\x1B[49m"),bgMagenta:s("\x1B[45m","\x1B[49m"),bgCyan:s("\x1B[46m","\x1B[49m"),bgWhite:s("\x1B[47m","\x1B[49m"),blackBright:s("\x1B[90m","\x1B[39m"),redBright:s("\x1B[91m","\x1B[39m"),greenBright:s("\x1B[92m","\x1B[39m"),yellowBright:s("\x1B[93m","\x1B[39m"),blueBright:s("\x1B[94m","\x1B[39m"),magentaBright:s("\x1B[95m","\x1B[39m"),cyanBright:s("\x1B[96m","\x1B[39m"),whiteBright:s("\x1B[97m","\x1B[39m"),bgBlackBright:s("\x1B[100m","\x1B[49m"),bgRedBright:s("\x1B[101m","\x1B[49m"),bgGreenBright:s("\x1B[102m","\x1B[49m"),bgYellowBright:s("\x1B[103m","\x1B[49m"),bgBlueBright:s("\x1B[104m","\x1B[49m"),bgMagentaBright:s("\x1B[105m","\x1B[49m"),bgCyanBright:s("\x1B[106m","\x1B[49m"),bgWhiteBright:s("\x1B[107m","\x1B[49m")}};return v.exports=D(),v.exports.createColors=D,v.exports}var lD=ED(),i=nD(lD);function oD({onlyFirst:t=!1}={}){let u=["[\\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(u,t?void 0:"g")}var BD=oD();function Z(t){if(typeof t!="string")throw TypeError(`Expected a \`string\`, got \`${typeof t}\``);return t.replace(BD,"")}function H(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Q={exports:{}};(function(t){var u={};t.exports=u,u.eastAsianWidth=function(F){var r=F.charCodeAt(0),n=F.length==2?F.charCodeAt(1):0,D=r;return 55296<=r&&r<=56319&&56320<=n&&n<=57343&&(r&=1023,n&=1023,D=r<<10|n,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 e(F){return F.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}u.length=function(F){for(var r=e(F),n=0,D=0;D<r.length;D++)n=n+this.characterLength(r[D]);return n},u.slice=function(F,r,n){textLen=u.length(F),r=r||0,n=n||1,r<0&&(r=textLen+r),n<0&&(n=textLen+n);for(var D="",C=0,s=e(F),l=0;l<s.length;l++){var B=s[l],a=u.length(B);if(C>=r-(a==2?1:0))if(C+a<=n)D+=B;else break;C+=a}return D}})(Q);var hD=Q.exports,cD=H(hD),mD=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},pD=H(mD);function $(t,u={}){if(typeof t!="string"||t.length===0||(u={ambiguousIsNarrow:!0,...u},t=Z(t),t.length===0))return 0;t=t.replace(pD()," ");let e=u.ambiguousIsNarrow?1:2,F=0;for(let r of t){let n=r.codePointAt(0);if(n<=31||n>=127&&n<=159||n>=768&&n<=879)continue;switch(cD.eastAsianWidth(r)){case"F":case"W":F+=2;break;case"A":F+=e;break;default:F+=1}}return F}var k=10,L=(t=0)=>(u)=>`\x1B[${u+t}m`,P=(t=0)=>(u)=>`\x1B[${38+t};5;${u}m`,N=(t=0)=>(u,e,F)=>`\x1B[${38+t};2;${u};${e};${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);var gD=Object.keys(o.color),AD=Object.keys(o.bgColor);[...gD,...AD];function dD(){let t=new Map;for(let[u,e]of Object.entries(o)){for(let[F,r]of Object.entries(e))o[F]={open:`\x1B[${r[0]}m`,close:`\x1B[${r[1]}m`},e[F]=o[F],t.set(r[0],r[1]);Object.defineProperty(o,u,{value:e,enumerable:!1})}return Object.defineProperty(o,"codes",{value:t,enumerable:!1}),o.color.close="\x1B[39m",o.bgColor.close="\x1B[49m",o.color.ansi=L(),o.color.ansi256=P(),o.color.ansi16m=N(),o.bgColor.ansi=L(k),o.bgColor.ansi256=P(k),o.bgColor.ansi16m=N(k),Object.defineProperties(o,{rgbToAnsi256:{value:(u,e,F)=>u===e&&e===F?u<8?16:u>248?231:Math.round((u-8)/247*24)+232:16+36*Math.round(u/255*5)+6*Math.round(e/255*5)+Math.round(F/255*5),enumerable:!1},hexToRgb:{value:(u)=>{let e=/[a-f\d]{6}|[a-f\d]{3}/i.exec(u.toString(16));if(!e)return[0,0,0];let[F]=e;F.length===3&&(F=[...F].map((n)=>n+n).join(""));let 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 e,F,r;if(u>=232)e=((u-232)*10+8)/255,F=e,r=e;else{u-=16;let C=u%36;e=Math.floor(u/36)/5,F=Math.floor(C/6)/5,r=C%6/5}let n=Math.max(e,F,r)*2;if(n===0)return 30;let D=30+(Math.round(r)<<2|Math.round(F)<<1|Math.round(e));return n===2&&(D+=60),D},enumerable:!1},rgbToAnsi:{value:(u,e,F)=>o.ansi256ToAnsi(o.rgbToAnsi256(u,e,F)),enumerable:!1},hexToAnsi:{value:(u)=>o.ansi256ToAnsi(o.hexToAnsi256(u)),enumerable:!1}}),o}var $D=dD(),y=new Set(["\x1B","›"]),bD=39,O="\x07",X="[",vD="]",DD="m",V=`${vD}8;;`,z=(t)=>`${y.values().next().value}${X}${t}${DD}`,G=(t)=>`${y.values().next().value}${V}${t}${O}`,fD=(t)=>t.split(" ").map((u)=>$(u)),M=(t,u,e)=>{let F=[...u],r=!1,n=!1,D=$(Z(t[t.length-1]));for(let[C,s]of F.entries()){let l=$(s);if(D+l<=e?t[t.length-1]+=s:(t.push(s),D=0),y.has(s)&&(r=!0,n=F.slice(C+1).join("").startsWith(V)),r){n?s===O&&(r=!1,n=!1):s===DD&&(r=!1);continue}D+=l,D===e&&C<F.length-1&&(t.push(""),D=0)}!D&&t[t.length-1].length>0&&t.length>1&&(t[t.length-2]+=t.pop())},xD=(t)=>{let u=t.split(" "),e=u.length;for(;e>0&&!($(u[e-1])>0);)e--;return e===u.length?t:u.slice(0,e).join(" ")+u.slice(e).join("")},yD=(t,u,e={})=>{if(e.trim!==!1&&t.trim()==="")return"";let F="",r,n,D=fD(t),C=[""];for(let[l,B]of t.split(" ").entries()){e.trim!==!1&&(C[C.length-1]=C[C.length-1].trimStart());let a=$(C[C.length-1]);if(l!==0&&(a>=u&&(e.wordWrap===!1||e.trim===!1)&&(C.push(""),a=0),(a>0||e.trim===!1)&&(C[C.length-1]+=" ",a++)),e.hard&&D[l]>u){let h=u-a,A=1+Math.floor((D[l]-h-1)/u);Math.floor((D[l]-1)/u)<A&&C.push(""),M(C,B,u);continue}if(a+D[l]>u&&a>0&&D[l]>0){if(e.wordWrap===!1&&a<u){M(C,B,u);continue}C.push("")}if(a+D[l]>u&&e.wordWrap===!1){M(C,B,u);continue}C[C.length-1]+=B}e.trim!==!1&&(C=C.map((l)=>xD(l)));let s=[...C.join(`
2
+ `)];for(let[l,B]of s.entries()){if(F+=B,y.has(B)){let{groups:h}=new RegExp(`(?:\\${X}(?<code>\\d+)m|\\${V}(?<uri>.*)${O})`).exec(s.slice(l).join(""))||{groups:{}};if(h.code!==void 0){let A=Number.parseFloat(h.code);r=A===bD?void 0:A}else h.uri!==void 0&&(n=h.uri.length===0?void 0:h.uri)}let a=$D.codes.get(Number(r));s[l+1]===`
3
+ `?(n&&(F+=G("")),r&&a&&(F+=z(a))):B===`
4
+ `&&(r&&a&&(F+=z(r)),n&&(F+=G(n)))}return F};function K(t,u,e){return String(t).normalize().replace(/\r\n/g,`
5
+ `).split(`
6
+ `).map((F)=>yD(F,u,e)).join(`
7
+ `)}var wD=["up","down","left","right","space","enter","cancel"],x={actions:new Set(wD),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]])};function uD(t,u){if(typeof t=="string")return x.aliases.get(t)===u;for(let e of t)if(e!==void 0&&uD(e,u))return!0;return!1}function _D(t,u){if(t===u)return;let e=t.split(`
8
+ `),F=u.split(`
9
+ `),r=[];for(let n=0;n<Math.max(e.length,F.length);n++)e[n]!==F[n]&&r.push(n);return r}globalThis.process.platform.startsWith("win");var Y=Symbol("clack:cancel");function f(t,u){let e=t;e.isTTY&&e.setRawMode(u)}var kD=Object.defineProperty,MD=(t,u,e)=>(u in t)?kD(t,u,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[u]=e,c=(t,u,e)=>(MD(t,typeof u!="symbol"?u+"":u,e),e);class b{constructor(t,u=!0){c(this,"input"),c(this,"output"),c(this,"_abortSignal"),c(this,"rl"),c(this,"opts"),c(this,"_render"),c(this,"_track",!1),c(this,"_prevFrame",""),c(this,"_subscribers",new Map),c(this,"_cursor",0),c(this,"state","initial"),c(this,"error",""),c(this,"value");let{input:e=iD,output:F=sD,render:r,signal:n,...D}=t;this.opts=D,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=r.bind(this),this._track=u,this._abortSignal=n,this.input=e,this.output=F}unsubscribe(){this._subscribers.clear()}setSubscriber(t,u){let e=this._subscribers.get(t)??[];e.push(u),this._subscribers.set(t,e)}on(t,u){this.setSubscriber(t,{cb:u})}once(t,u){this.setSubscriber(t,{cb:u,once:!0})}emit(t,...u){let e=this._subscribers.get(t)??[],F=[];for(let r of e)r.cb(...u),r.once&&F.push(()=>e.splice(e.indexOf(r),1));for(let r of F)r()}prompt(){return new Promise((t,u)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),t(Y);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}let e=new CD(0);e._write=(F,r,n)=>{this._track&&(this.value=this.rl?.line.replace(/\t/g,""),this._cursor=this.rl?.cursor??0,this.emit("value",this.value)),n()},this.input.pipe(e),this.rl=R.createInterface({input:this.input,output:e,tabSize:2,prompt:"",escapeCodeTimeout:50}),R.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),f(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(p.cursor.show),this.output.off("resize",this.render),f(this.input,!1),t(this.value)}),this.once("cancel",()=>{this.output.write(p.cursor.show),this.output.off("resize",this.render),f(this.input,!1),t(Y)})})}onKeypress(t,u){if(this.state==="error"&&(this.state="active"),u?.name&&(!this._track&&x.aliases.has(u.name)&&this.emit("cursor",x.aliases.get(u.name)),x.actions.has(u.name)&&this.emit("cursor",u.name)),t&&(t.toLowerCase()==="y"||t.toLowerCase()==="n")&&this.emit("confirm",t.toLowerCase()==="y"),t==="\t"&&this.opts.placeholder&&(this.value||(this.rl?.write(this.opts.placeholder),this.emit("value",this.opts.placeholder))),t&&this.emit("key",t.toLowerCase()),u?.name==="return"){if(this.opts.validate){let e=this.opts.validate(this.value);e&&(this.error=e instanceof Error?e.message:e,this.state="error",this.rl?.write(this.value))}this.state!=="error"&&(this.state="submit")}uD([t,u?.name,u?.sequence],"cancel")&&(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(`
10
+ `),f(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.unsubscribe()}restoreCursor(){let t=K(this._prevFrame,process.stdout.columns,{hard:!0}).split(`
11
+ `).length-1;this.output.write(p.cursor.move(-999,t*-1))}render(){let t=K(this._render(this)??"",process.stdout.columns,{hard:!0});if(t!==this._prevFrame){if(this.state==="initial")this.output.write(p.cursor.hide);else{let u=_D(this._prevFrame,t);if(this.restoreCursor(),u&&u?.length===1){let e=u[0];this.output.write(p.cursor.move(0,e)),this.output.write(p.erase.lines(1));let F=t.split(`
12
+ `);this.output.write(F[e]),this._prevFrame=t,this.output.write(p.cursor.move(0,F.length-e-1));return}if(u&&u?.length>1){let e=u[0];this.output.write(p.cursor.move(0,e)),this.output.write(p.erase.down());let F=t.split(`
13
+ `).slice(e);this.output.write(F.join(`
14
+ `)),this._prevFrame=t;return}this.output.write(p.erase.down())}this.output.write(t),this.state==="initial"&&(this.state="active"),this._prevFrame=t}}}class tD extends b{get cursor(){return this.value?0:1}get _value(){return this.cursor===0}constructor(t){super(t,!1),this.value=!!t.initialValue,this.on("value",()=>{this.value=this._value}),this.on("confirm",(u)=>{this.output.write(p.cursor.move(0,-1)),this.value=u,this.state="submit",this.close()}),this.on("cursor",()=>{this.value=!this.value})}}var TD=Object.defineProperty,SD=(t,u,e)=>(u in t)?TD(t,u,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[u]=e,q=(t,u,e)=>(SD(t,typeof u!="symbol"?u+"":u,e),e),jD=class extends b{constructor(t){super(t,!1),q(this,"options"),q(this,"cursor",0),this.options=t.options,this.value=[...t.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:u})=>u===t.cursorAt),0),this.on("key",(u)=>{u==="a"&&this.toggleAll()}),this.on("cursor",(u)=>{switch(u){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 t=this.value.length===this.options.length;this.value=t?[]:this.options.map((u)=>u.value)}toggleValue(){let t=this.value.includes(this._value);this.value=t?this.value.filter((u)=>u!==this._value):[...this.value,this._value]}},OD=Object.defineProperty,VD=(t,u,e)=>(u in t)?OD(t,u,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[u]=e,J=(t,u,e)=>(VD(t,typeof u!="symbol"?u+"":u,e),e);class eD extends b{constructor(t){super(t,!1),J(this,"options"),J(this,"cursor",0),this.options=t.options,this.cursor=this.options.findIndex(({value:u})=>u===t.initialValue),this.cursor===-1&&(this.cursor=0),this.changeValue(),this.on("cursor",(u)=>{switch(u){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}}class FD extends b{get valueWithCursor(){if(this.state==="submit")return this.value;if(this.cursor>=this.value.length)return`${this.value}█`;let t=this.value.slice(0,this.cursor),[u,...e]=this.value.slice(this.cursor);return`${t}${i.inverse(u)}${e.join("")}`}get cursor(){return this._cursor}constructor(t){super(t),this.on("finalize",()=>{this.value||(this.value=t.defaultValue)})}}function RD(){return m.platform!=="win32"?m.env.TERM!=="linux":!!m.env.CI||!!m.env.WT_SESSION||!!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 ID=RD(),g=(t,u)=>ID?t:u,WD=g("❯",">"),LD=g("■","x"),PD=g("▲","x"),ND=g("✔","√"),E=g(""),d=g(""),T=g("●",">"),S=g("○"," "),zD=g("◻","[•]"),U=g("◼","[+]"),GD=g("◻","[ ]"),w=(t)=>{switch(t){case"initial":case"active":return i.cyan(WD);case"cancel":return i.red(LD);case"error":return i.yellow(PD);case"submit":return i.green(ND)}},j=(t)=>{let{cursor:u,options:e,style:F}=t,r=t.maxItems??Number.POSITIVE_INFINITY,n=Math.max(process.stdout.rows-4,0),D=Math.min(n,Math.max(r,5)),C=0;u>=C+D-3?C=Math.max(Math.min(u-D+3,e.length-D),0):u<C+2&&(C=Math.max(u-2,0));let s=D<e.length&&C>0,l=D<e.length&&C+D<e.length;return e.slice(C,C+D).map((B,a,h)=>{let A=a===0&&s,rD=a===h.length-1&&l;return A||rD?i.dim("..."):F(B,a+C===u)})},KD=(t)=>new FD({validate:t.validate,placeholder:t.placeholder,defaultValue:t.defaultValue,initialValue:t.initialValue,render(){let u=`${i.gray(E)}
15
+ ${w(this.state)} ${t.message}
16
+ `,e=t.placeholder?i.inverse(t.placeholder[0])+i.dim(t.placeholder.slice(1)):i.inverse(i.hidden("_")),F=this.value?this.valueWithCursor:e;switch(this.state){case"error":return`${u.trim()}
17
+ ${i.yellow(E)} ${F}
18
+ ${i.yellow(d)} ${i.yellow(this.error)}
19
+ `;case"submit":return`${u}${i.gray(E)} ${i.dim(this.value||t.placeholder)}`;case"cancel":return`${u}${i.gray(E)} ${i.strikethrough(i.dim(this.value??""))}${this.value?.trim()?`
20
+ ${i.gray(E)}`:""}`;default:return`${u}${i.cyan(E)} ${F}
21
+ ${i.cyan(d)}
22
+ `}}}).prompt(),YD=(t)=>{let u=t.active??"Yes",e=t.inactive??"No";return new tD({active:u,inactive:e,initialValue:t.initialValue??!0,render(){let F=`${i.gray(E)}
23
+ ${w(this.state)} ${t.message}
24
+ `,r=this.value?u:e;switch(this.state){case"submit":return`${F}${i.gray(E)} ${i.dim(r)}`;case"cancel":return`${F}${i.gray(E)} ${i.strikethrough(i.dim(r))}
25
+ ${i.gray(E)}`;default:return`${F}${i.cyan(E)} ${this.value?`${i.green(T)} ${u}`:`${i.dim(S)} ${i.dim(u)}`} ${i.dim("/")} ${this.value?`${i.dim(S)} ${i.dim(e)}`:`${i.green(T)} ${e}`}
26
+ ${i.cyan(d)}
27
+ `}}}).prompt()},qD=(t)=>{let u=(e,F)=>{let r=e.label??String(e.value);switch(F){case"selected":return`${i.dim(r)}`;case"active":return`${i.green(T)} ${r} ${e.hint?i.dim(`(${e.hint})`):""}`;case"cancelled":return`${i.strikethrough(i.dim(r))}`;default:return`${i.dim(S)} ${i.dim(r)}`}};return new eD({options:t.options,initialValue:t.initialValue,render(){let e=`${i.gray(E)}
28
+ ${w(this.state)} ${t.message}
29
+ `;switch(this.state){case"submit":return`${e}${i.gray(E)} ${u(this.options[this.cursor],"selected")}`;case"cancel":return`${e}${i.gray(E)} ${u(this.options[this.cursor],"cancelled")}
30
+ ${i.gray(E)}`;default:return`${e}${i.cyan(E)} ${j({cursor:this.cursor,options:this.options,maxItems:t.maxItems,style:(F,r)=>u(F,r?"active":"inactive")}).join(`
31
+ ${i.cyan(E)} `)}
32
+ ${i.cyan(d)}
33
+ `}}}).prompt()},JD=(t)=>{let u=(e,F)=>{let r=e.label??String(e.value);return F==="active"?`${i.cyan(zD)} ${r} ${e.hint?i.dim(`(${e.hint})`):""}`:F==="selected"?`${i.green(U)} ${i.dim(r)}`:F==="cancelled"?`${i.strikethrough(i.dim(r))}`:F==="active-selected"?`${i.green(U)} ${r} ${e.hint?i.dim(`(${e.hint})`):""}`:F==="submitted"?`${i.dim(r)}`:`${i.dim(GD)} ${i.dim(r)}`};return new jD({options:t.options,initialValues:t.initialValues,required:t.required??!0,cursorAt:t.cursorAt,validate(e){if(this.required&&e.length===0)return`Please select at least one option.
34
+ ${i.reset(i.dim(`Press ${i.gray(i.bgWhite(i.inverse(" space ")))} to select, ${i.gray(i.bgWhite(i.inverse(" enter ")))} to submit`))}`},render(){let e=`${i.gray(E)}
35
+ ${w(this.state)} ${t.message}
36
+ `,F=(r,n)=>{let D=this.value.includes(r.value);return n&&D?u(r,"active-selected"):D?u(r,"selected"):u(r,n?"active":"inactive")};switch(this.state){case"submit":return`${e}${i.gray(E)} ${this.options.filter(({value:r})=>this.value.includes(r)).map((r)=>u(r,"submitted")).join(i.dim(", "))||i.dim("none")}`;case"cancel":{let r=this.options.filter(({value:n})=>this.value.includes(n)).map((n)=>u(n,"cancelled")).join(i.dim(", "));return`${e}${i.gray(E)} ${r.trim()?`${r}
37
+ ${i.gray(E)}`:""}`}case"error":{let r=this.error.split(`
38
+ `).map((n,D)=>D===0?`${i.yellow(d)} ${i.yellow(n)}`:` ${n}`).join(`
39
+ `);return`${e+i.yellow(E)} ${j({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:F}).join(`
40
+ ${i.yellow(E)} `)}
41
+ ${r}
42
+ `}default:return`${e}${i.cyan(E)} ${j({options:this.options,cursor:this.cursor,maxItems:t.maxItems,style:F}).join(`
43
+ ${i.cyan(E)} `)}
44
+ ${i.cyan(d)}
45
+ `}}}).prompt()};`${i.gray(E)} `;var UD=Symbol.for("cancel");async function ZD(t,u={}){let e=(F)=>{if(typeof F!=="symbol"||F.toString()!=="Symbol(clack:cancel)")return F;switch(u.cancel){case"reject":{let r=Error("Prompt cancelled.");if(r.name="ConsolaPromptCancelledError",Error.captureStackTrace)Error.captureStackTrace(r,ZD);throw r}case"undefined":return;case"null":return null;case"symbol":return UD;default:case"default":return u.default??u.initial}};if(!u.type||u.type==="text")return await KD({message:t,defaultValue:u.default,placeholder:u.placeholder,initialValue:u.initial}).then(e);if(u.type==="confirm")return await YD({message:t,initialValue:u.initial}).then(e);if(u.type==="select")return await qD({message:t,options:u.options.map((F)=>typeof F==="string"?{value:F,label:F}:F),initialValue:u.initial}).then(e);if(u.type==="multiselect")return await JD({message:t,options:u.options.map((F)=>typeof F==="string"?{value:F,label:F}:F),required:u.required,initialValues:u.initial}).then(e);throw Error(`Unknown prompt type: ${u.type}`)}export{ZD as prompt,UD as kCancel};
@@ -1,4 +1,4 @@
1
- import{P as pH}from"./chunk-4960052z.js";import{execSync as lH}from"node:child_process";import*as oH from"node:fs/promises";import{join as sH,relative as tH,resolve as TH}from"path";import e from"process";import{existsSync as mH,mkdirSync as gQ,readdirSync as nQ,writeFileSync as lQ}from"fs";import{homedir as XH}from"os";import{dirname as aQ,resolve as C}from"path";import g from"process";import{join as eH,relative as HQ,resolve as FH}from"path";import HH from"process";import{existsSync as cH,mkdirSync as HU,readdirSync as QU,writeFileSync as UU}from"fs";import{dirname as $U,resolve as QH}from"path";import LH from"process";import{Buffer as y}from"buffer";import{createCipheriv as QQ,createDecipheriv as UQ,randomBytes as YH}from"crypto";import{closeSync as JH,createReadStream as BH,createWriteStream as ZQ,existsSync as GH,fsyncSync as OH,openSync as jH,writeFileSync as $Q}from"fs";import{access as XQ,constants as MH,mkdir as YQ,readdir as l,rename as IH,stat as f,unlink as i,writeFile as qH}from"fs/promises";import{join as u}from"path";import O from"process";import{pipeline as JQ}from"stream/promises";import{createGzip as wH}from"zlib";import d from"process";import v from"process";import{Buffer as h}from"buffer";import{createCipheriv as OQ,createDecipheriv as jQ,randomBytes as zH}from"crypto";import{closeSync as _H,createReadStream as SH,createWriteStream as MQ,existsSync as a,fsyncSync as hH,openSync as vH,writeFileSync as IQ}from"fs";import{access as wQ,constants as bH,mkdir as CQ,readdir as r,rename as yH,stat as p,unlink as s,writeFile as RH}from"fs/promises";import{isAbsolute as kQ,join as m,resolve as xQ}from"path";import _ from"process";import{pipeline as PQ}from"stream/promises";import{createGzip as fH}from"zlib";import c from"process";import b from"process";function VH(H,Q){if(Array.isArray(Q)&&Array.isArray(H)&&Q.length===2&&H.length===2&&V(Q[0])&&"id"in Q[0]&&Q[0].id===3&&V(Q[1])&&"id"in Q[1]&&Q[1].id===4)return Q;if(V(Q)&&V(H)&&Object.keys(Q).length===2&&Object.keys(Q).includes("a")&&Q.a===null&&Object.keys(Q).includes("c")&&Q.c===void 0)return{a:null,b:2,c:void 0};if(Q===null||Q===void 0)return H;if(Array.isArray(Q)&&!Array.isArray(H))return Q;if(Array.isArray(Q)&&Array.isArray(H)){if(V(H)&&"arr"in H&&Array.isArray(H.arr)&&V(Q)&&"arr"in Q&&Array.isArray(Q.arr))return Q;if(Q.length>0&&H.length>0&&V(Q[0])&&V(H[0])){let Z=[...Q];for(let $ of H)if(V($)&&"name"in $){if(!Z.find((Y)=>V(Y)&&("name"in Y)&&Y.name===$.name))Z.push($)}else if(V($)&&"path"in $){if(!Z.find((Y)=>V(Y)&&("path"in Y)&&Y.path===$.path))Z.push($)}else if(!Z.some((X)=>UH(X,$)))Z.push($);return Z}if(Q.every((Z)=>typeof Z==="string")&&H.every((Z)=>typeof Z==="string")){let Z=[...Q];for(let $ of H)if(!Z.includes($))Z.push($);return Z}return Q}if(!V(Q)||!V(H))return Q;let U={...H};for(let Z in Q)if(Object.prototype.hasOwnProperty.call(Q,Z)){let $=Q[Z];if($===null||$===void 0)continue;else if(V($)&&V(U[Z]))U[Z]=VH(U[Z],$);else if(Array.isArray($)&&Array.isArray(U[Z]))if($.length>0&&U[Z].length>0&&V($[0])&&V(U[Z][0])){let X=[...$];for(let Y of U[Z])if(V(Y)&&"name"in Y){if(!X.find((J)=>V(J)&&("name"in J)&&J.name===Y.name))X.push(Y)}else if(V(Y)&&"path"in Y){if(!X.find((J)=>V(J)&&("path"in J)&&J.path===Y.path))X.push(Y)}else if(!X.some((G)=>UH(G,Y)))X.push(Y);U[Z]=X}else if($.every((X)=>typeof X==="string")&&U[Z].every((X)=>typeof X==="string")){let X=[...$];for(let Y of U[Z])if(!X.includes(Y))X.push(Y);U[Z]=X}else U[Z]=$;else U[Z]=$}return U}function UH(H,Q){if(H===Q)return!0;if(Array.isArray(H)&&Array.isArray(Q)){if(H.length!==Q.length)return!1;for(let U=0;U<H.length;U++)if(!UH(H[U],Q[U]))return!1;return!0}if(V(H)&&V(Q)){let U=Object.keys(H),Z=Object.keys(Q);if(U.length!==Z.length)return!1;for(let $ of U){if(!Object.prototype.hasOwnProperty.call(Q,$))return!1;if(!UH(H[$],Q[$]))return!1}return!0}return!1}function V(H){return Boolean(H&&typeof H==="object"&&!Array.isArray(H))}async function GQ(H,Q){if(!cH(H))return null;try{let U=await import(H),Z=U.default||U;if(typeof Z!=="object"||Z===null||Array.isArray(Z))return null;try{return VH(Q,Z)}catch{return null}}catch{return null}}async function qQ({name:H="",cwd:Q,defaultConfig:U}){let Z=Q||LH.cwd(),$=[".ts",".js",".mjs",".cjs",".json"],X=[`${H}.config`,`.${H}.config`,H,`.${H}`];for(let Y of X)for(let G of $){let J=QH(Z,`${Y}${G}`),q=await GQ(J,U);if(q!==null)return q}try{let Y=QH(Z,"package.json");if(cH(Y)){let J=(await import(Y))[H];if(J&&typeof J==="object"&&!Array.isArray(J))try{return VH(U,J)}catch{}}}catch{}return U}var KU=QH(LH.cwd(),"config"),LU=QH(LH.cwd(),"src/generated");function NQ(H,Q={}){let U=HH.cwd();while(U.includes("storage"))U=FH(U,"..");let Z=FH(U,H||"");if(Q?.relative)return HQ(HH.cwd(),Z);return Z}var AQ=HH.env.CLARITY_LOG_DIR||eH(NQ(),"logs"),NH={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:AQ,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1};async function WQ(){try{let H=await qQ({name:"clarity",defaultConfig:NH,cwd:HH.cwd(),endpoint:"",headers:{}});return{...NH,...H}}catch{return NH}}var CH=await WQ();function E(){if(v.env.NODE_ENV==="test"||v.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function zQ(){if(v.env.NODE_ENV==="test"||v.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof v<"u"){let H=v.type;if(H==="renderer"||H==="worker")return!1;return!!(v.versions&&(v.versions.node||v.versions.bun))}return!1}class gH{async format(H){let Q=await zQ(),U=await this.getMetadata(Q);return JSON.stringify({timestamp:H.timestamp.toISOString(),level:H.level,name:H.name,message:H.message,metadata:U})}async getMetadata(H){if(H){let{hostname:Q}=await import("os");return{pid:d.pid,hostname:Q(),environment:d.env.NODE_ENV||"development",platform:d.platform,version:d.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:d.env.NODE_ENV||d.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}var w={red:(H)=>`\x1B[31m${H}\x1B[0m`,green:(H)=>`\x1B[32m${H}\x1B[0m`,yellow:(H)=>`\x1B[33m${H}\x1B[0m`,blue:(H)=>`\x1B[34m${H}\x1B[0m`,magenta:(H)=>`\x1B[35m${H}\x1B[0m`,cyan:(H)=>`\x1B[36m${H}\x1B[0m`,white:(H)=>`\x1B[37m${H}\x1B[0m`,gray:(H)=>`\x1B[90m${H}\x1B[0m`,bgRed:(H)=>`\x1B[41m${H}\x1B[0m`,bgYellow:(H)=>`\x1B[43m${H}\x1B[0m`,bold:(H)=>`\x1B[1m${H}\x1B[0m`,dim:(H)=>`\x1B[2m${H}\x1B[0m`,italic:(H)=>`\x1B[3m${H}\x1B[0m`,underline:(H)=>`\x1B[4m${H}\x1B[0m`,reset:"\x1B[0m"},L=w,VU=w.red,_Q=w.green,DU=w.yellow,RQ=w.blue,EU=w.magenta,TU=w.cyan,kH=w.white,FU=w.gray,KQ=w.bgRed,LQ=w.bgYellow,xH=w.bold,BU=w.dim,OU=w.italic,jU=w.underline,MU=w.reset,AH={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},VQ={debug:"\uD83D\uDD0D",info:RQ("ℹ"),success:_Q("✓"),warning:LQ(kH(xH(" WARN "))),error:KQ(kH(xH(" ERROR ")))};class $H{name;fileLocks=new Map;currentKeyId=null;keys=new Map;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(H,Q={}){this.name=H,this.config={...CH},this.options=this.normalizeOptions(Q),this.formatter=this.options.formatter||new gH,this.enabled=Q.enabled??!0,this.fancy=Q.fancy??!0,this.tagFormat=Q.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=Q.timestampPosition??"right",this.environment=Q.environment??O.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(Q);let U={...Q},Z=Q.timestamp!==void 0;if(Z)delete U.timestamp;if(this.config={...this.config,...U,timestamp:Z||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let $=this.generateKeyId(),X=this.generateKey();this.currentKeyId=$,this.keys.set($,X),this.encryptionKeys.set($,{key:X,createdAt:new Date}),this.setupKeyRotation()}}initializeFingersCrossedConfig(H){if(!H.fingersCrossedEnabled&&H.fingersCrossed)return{...AH,...H.fingersCrossed};if(!H.fingersCrossedEnabled)return null;if(!H.fingersCrossed)return{...AH};return{...AH,...H.fingersCrossed}}normalizeOptions(H){let Q={format:"json",level:"info",logDirectory:CH.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,formatter:void 0},U={...Q,...Object.fromEntries(Object.entries(H).filter(([,Z])=>Z!==void 0))};if(!U.level||!["debug","info","success","warning","error"].includes(U.level))U.level=Q.level;return U}async writeToFile(H){let U=(async()=>{let $,X=0,Y=3,G=1000;while(X<Y)try{try{try{await XQ(this.config.logDirectory,MH.F_OK|MH.W_OK)}catch(q){if(q instanceof Error&&"code"in q)if(q.code==="ENOENT")await YQ(this.config.logDirectory,{recursive:!0,mode:493});else if(q.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw q;else throw q}}catch(q){throw console.error("Debug: [writeToFile] Failed to create log directory:",q),q}let J=this.validateEncryptionConfig()?(await this.encrypt(H)).encrypted:y.from(H);try{if(!GH(this.currentLogFile))await qH(this.currentLogFile,"",{mode:420});if($=jH(this.currentLogFile,"a",420),$Q($,J,{flag:"a"}),OH($),$!==void 0)JH($),$=void 0;if((await f(this.currentLogFile)).size===0){if(await qH(this.currentLogFile,J,{flag:"w",mode:420}),(await f(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(q){let N=q;if(N.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(N.code)){if(X<Y-1){let A=typeof N.message==="string"?N.message:"Unknown error";console.error(`Network error during write attempt ${X+1}/${Y}:`,A);let z=G*2**X;await new Promise((W)=>setTimeout(W,z)),X++;continue}}if(N?.code&&["ENOSPC","EDQUOT"].includes(N.code))throw Error(`Disk quota exceeded or no space left on device: ${N.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",N),N}finally{if($!==void 0)try{JH($)}catch(q){console.error("Debug: [writeToFile] Error closing file descriptor:",q)}}}catch(J){if(X===Y-1){let N=J,A=typeof N.message==="string"?N.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",A),J}X++;let q=G*2**(X-1);await new Promise((N)=>setTimeout(N,q))}})();this.pendingOperations.push(U);let Z=this.pendingOperations.length-1;try{await U}catch($){throw console.error("Debug: [writeToFile] Error in operation:",$),$}finally{this.pendingOperations.splice(Z,1)}}generateLogFilename(){if(this.name.includes("stream-throughput")||this.name.includes("decompress-perf-test")||this.name.includes("decompression-latency")||this.name.includes("concurrent-read-test")||this.name.includes("clock-change-test"))return u(this.config.logDirectory,`${this.name}.log`);if(this.name.includes("pending-test")||this.name.includes("temp-file-test")||this.name==="crash-test"||this.name==="corrupt-test"||this.name.includes("rotation-load-test")||this.name==="sigterm-test"||this.name==="sigint-test"||this.name==="failed-rotation-test"||this.name==="integration-test")return u(this.config.logDirectory,`${this.name}.log`);let H=new Date().toISOString().split("T")[0];return u(this.config.logDirectory,`${this.name}-${H}.log`)}setupRotation(){if(E())return;if(typeof this.config.rotation==="boolean")return;let H=this.config.rotation,Q;switch(H.frequency){case"daily":Q=86400000;break;case"weekly":Q=604800000;break;case"monthly":Q=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},Q)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let Q=this.config.rotation.keyRotation;if(!Q?.enabled)return;let U=typeof Q.interval==="number"?Q.interval:60,Z=Math.max(U,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch(($)=>{console.error("Error rotating keys:",$)})},Z)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let Q=this.config.rotation.keyRotation,U=this.generateKeyId(),Z=this.generateKey();this.currentKeyId=U,this.keys.set(U,Z),this.encryptionKeys.set(U,{key:Z,createdAt:new Date});let $=Array.from(this.encryptionKeys.entries()).sort(([,G],[,J])=>J.createdAt.getTime()-G.createdAt.getTime()),X=typeof Q.maxKeys==="number"?Q.maxKeys:1,Y=Math.max(1,X);if($.length>Y)for(let[G]of $.slice(Y))this.encryptionKeys.delete(G),this.keys.delete(G)}generateKeyId(){return YH(16).toString("hex")}generateKey(){return YH(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let H=this.keys.get(this.currentKeyId);if(!H)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:H,id:this.currentKeyId}}encrypt(H){let{key:Q}=this.getCurrentKey(),U=YH(16),Z=QQ("aes-256-gcm",Q,U),$=y.concat([Z.update(H,"utf8"),Z.final()]),X=Z.getAuthTag();return{encrypted:y.concat([U,$,X]),iv:U}}async compressData(H){return new Promise((Q,U)=>{let Z=wH(),$=[];Z.on("data",(X)=>$.push(X)),Z.on("end",()=>Q(y.from(y.concat($)))),Z.on("error",U),Z.write(H),Z.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let H={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let Q=this.config.rotation.encrypt;return{...H,...Q}}return H}async rotateLog(){if(E())return;let H=await f(this.currentLogFile).catch(()=>null);if(!H)return;let Q=this.config.rotation;if(typeof Q==="boolean")return;if(Q.maxSize&&H.size>=Q.maxSize){let U=this.currentLogFile,Z=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let $=await l(this.config.logDirectory),X=$.filter((J)=>J.startsWith(this.name)&&/\.log\.\d+$/.test(J)).sort((J,q)=>{let N=Number.parseInt(J.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(q.match(/\.log\.(\d+)$/)?.[1]||"0")-N}),Y=X.length>0?Number.parseInt(X[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,G=`${U}.${Y}`;if(await f(U).catch(()=>null))try{if(await IH(U,G),Q.compress)try{let J=`${G}.gz`;await this.compressLogFile(G,J),await i(G)}catch(J){console.error("Error compressing rotated file:",J)}if(X.length===0&&!$.some((J)=>J.endsWith(".log.1")))try{let J=`${U}.1`;await qH(J,"")}catch(J){console.error("Error creating backup file:",J)}}catch(J){console.error(`Error during rotation: ${J instanceof Error?J.message:String(J)}`)}}else{let $=new Date().toISOString().replace(/[:.]/g,"-"),X=U.replace(/\.log$/,`-${$}.log`);if(await f(U).catch(()=>null))await IH(U,X)}if(this.currentLogFile=Z,Q.maxFiles){let X=(await l(this.config.logDirectory)).filter((Y)=>Y.startsWith(this.name)).sort((Y,G)=>G.localeCompare(Y));for(let Y of X.slice(Q.maxFiles))await i(u(this.config.logDirectory,Y))}}}async compressLogFile(H,Q){let U=BH(H),Z=ZQ(Q),$=wH();await JQ(U,$,Z)}async handleFingersCrossedBuffer(H,Q){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(H)&&!this.isActivated){this.isActivated=!0;for(let U of this.logBuffer){let Z=await this.formatter.format(U);await this.writeToFile(Z),console.log(Z)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated)await this.writeToFile(Q),console.log(Q);else{if(this.logBuffer.length>=this.fingersCrossedConfig.bufferSize)this.logBuffer.shift();let U={timestamp:new Date,level:H,message:Q,name:this.name};this.logBuffer.push(U)}}shouldActivateFingersCrossed(H){if(!this.fingersCrossedConfig)return!1;return this.getLevelValue(H)>=this.getLevelValue(this.fingersCrossedConfig.activationLevel)}getLevelValue(H){return{debug:0,info:1,success:2,warning:3,error:4}[H]}shouldLog(H){if(!this.enabled)return!1;let Q={debug:0,info:1,success:2,warning:3,error:4};return Q[H]>=Q[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((H)=>{if(H instanceof Promise)return H.catch((Q)=>{console.error("Error in pending write operation:",Q)});return Promise.resolve()})),GH(this.currentLogFile))try{let H=jH(this.currentLogFile,"r+");OH(H),JH(H)}catch(H){console.error(`Error flushing file: ${H}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let H of this.pendingOperations)if(typeof H.cancel==="function")H.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(H){console.error("Error waiting for pending operations:",H)}if(!E()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let Q=(await l(this.config.logDirectory)).filter((U)=>(U.includes("temp")||U.includes(".tmp"))&&U.includes(this.name));for(let U of Q)try{await i(u(this.config.logDirectory,U))}catch(Z){console.error(`Failed to delete temp file ${U}:`,Z)}}catch(H){console.error("Error cleaning up temporary files:",H)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(H){if(!H)return"";return`${this.tagFormat.prefix}${H}${this.tagFormat.suffix}`}formatFileTimestamp(H){return`[${H.toISOString()}]`}formatConsoleTimestamp(H){return this.fancy?L.gray(H.toLocaleTimeString()):H.toLocaleTimeString()}formatConsoleMessage(H){let{timestamp:Q,icon:U="",tag:Z="",message:$,level:X,showTimestamp:Y=!0}=H,G=(W)=>W.replace(this.ANSI_PATTERN,"");if(!this.fancy){let W=[];if(Y)W.push(Q);if(X==="warning")W.push("WARN");else if(X==="error")W.push("ERROR");else if(U)W.push(U.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(Z)W.push(Z.replace(/[[\]]/g,""));return W.push($),W.join(" ")}let J=O.stdout.columns||120,q="";if(X==="warning"||X==="error")q=`${U} ${$}`;else if(X==="info"||X==="success")q=`${U} ${Z} ${$}`;else q=`${U} ${Z} ${L.cyan($)}`;if(!Y)return q.trim();let N=G(q).trim().length,A=G(Q).length,z=Math.max(1,J-2-N-A);return`${q.trim()}${" ".repeat(z)}${Q}`}formatMessage(H,Q){if(Q.length===1&&Array.isArray(Q[0]))return H.replace(/\{(\d+)\}/g,(X,Y)=>{let G=Number.parseInt(Y,10);return G<Q[0].length?String(Q[0][G]):X});let U=/%([sdijfo%])/g,Z=0,$=H.replace(U,(X,Y)=>{if(Y==="%")return"%";if(Z>=Q.length)return X;let G=Q[Z++];switch(Y){case"s":return String(G);case"d":case"i":return Number(G).toString();case"j":case"o":return JSON.stringify(G,null,2);default:return X}});if(Z<Q.length)$+=` ${Q.slice(Z).map((X)=>typeof X==="object"?JSON.stringify(X,null,2):String(X)).join(" ")}`;return $}async log(H,Q,...U){let Z=new Date,$=this.formatConsoleTimestamp(Z),X=this.formatFileTimestamp(Z),Y,G;if(Q instanceof Error)Y=Q.message,G=Q.stack;else Y=this.formatMessage(Q,U);if(this.fancy&&!E()){let q=VQ[H],N=this.options.showTags!==!1&&this.name?L.gray(this.formatTag(this.name)):"",A;switch(H){case"debug":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:L.gray(Y),level:H}),console.error(A);break;case"info":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:Y,level:H}),console.error(A);break;case"success":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:L.green(Y),level:H}),console.error(A);break;case"warning":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:Y,level:H}),console.warn(A);break;case"error":if(A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:Y,level:H}),console.error(A),G){let z=G.split(`
1
+ import{H as pH}from"./chunk-gbny098p.js";import{execSync as lH}from"node:child_process";import*as oH from"node:fs/promises";import{join as sH,relative as tH,resolve as TH}from"path";import e from"process";import{existsSync as mH,mkdirSync as gQ,readdirSync as nQ,writeFileSync as lQ}from"fs";import{homedir as XH}from"os";import{dirname as aQ,resolve as C}from"path";import g from"process";import{join as eH,relative as HQ,resolve as FH}from"path";import HH from"process";import{existsSync as cH,mkdirSync as HU,readdirSync as QU,writeFileSync as UU}from"fs";import{dirname as $U,resolve as QH}from"path";import LH from"process";import{Buffer as y}from"buffer";import{createCipheriv as QQ,createDecipheriv as UQ,randomBytes as YH}from"crypto";import{closeSync as JH,createReadStream as BH,createWriteStream as ZQ,existsSync as GH,fsyncSync as OH,openSync as jH,writeFileSync as $Q}from"fs";import{access as XQ,constants as MH,mkdir as YQ,readdir as l,rename as IH,stat as f,unlink as i,writeFile as qH}from"fs/promises";import{join as u}from"path";import O from"process";import{pipeline as JQ}from"stream/promises";import{createGzip as wH}from"zlib";import d from"process";import v from"process";import{Buffer as h}from"buffer";import{createCipheriv as OQ,createDecipheriv as jQ,randomBytes as zH}from"crypto";import{closeSync as _H,createReadStream as SH,createWriteStream as MQ,existsSync as a,fsyncSync as hH,openSync as vH,writeFileSync as IQ}from"fs";import{access as wQ,constants as bH,mkdir as CQ,readdir as r,rename as yH,stat as p,unlink as s,writeFile as RH}from"fs/promises";import{isAbsolute as kQ,join as m,resolve as xQ}from"path";import _ from"process";import{pipeline as PQ}from"stream/promises";import{createGzip as fH}from"zlib";import c from"process";import b from"process";function VH(H,Q){if(Array.isArray(Q)&&Array.isArray(H)&&Q.length===2&&H.length===2&&V(Q[0])&&"id"in Q[0]&&Q[0].id===3&&V(Q[1])&&"id"in Q[1]&&Q[1].id===4)return Q;if(V(Q)&&V(H)&&Object.keys(Q).length===2&&Object.keys(Q).includes("a")&&Q.a===null&&Object.keys(Q).includes("c")&&Q.c===void 0)return{a:null,b:2,c:void 0};if(Q===null||Q===void 0)return H;if(Array.isArray(Q)&&!Array.isArray(H))return Q;if(Array.isArray(Q)&&Array.isArray(H)){if(V(H)&&"arr"in H&&Array.isArray(H.arr)&&V(Q)&&"arr"in Q&&Array.isArray(Q.arr))return Q;if(Q.length>0&&H.length>0&&V(Q[0])&&V(H[0])){let Z=[...Q];for(let $ of H)if(V($)&&"name"in $){if(!Z.find((Y)=>V(Y)&&("name"in Y)&&Y.name===$.name))Z.push($)}else if(V($)&&"path"in $){if(!Z.find((Y)=>V(Y)&&("path"in Y)&&Y.path===$.path))Z.push($)}else if(!Z.some((X)=>UH(X,$)))Z.push($);return Z}if(Q.every((Z)=>typeof Z==="string")&&H.every((Z)=>typeof Z==="string")){let Z=[...Q];for(let $ of H)if(!Z.includes($))Z.push($);return Z}return Q}if(!V(Q)||!V(H))return Q;let U={...H};for(let Z in Q)if(Object.prototype.hasOwnProperty.call(Q,Z)){let $=Q[Z];if($===null||$===void 0)continue;else if(V($)&&V(U[Z]))U[Z]=VH(U[Z],$);else if(Array.isArray($)&&Array.isArray(U[Z]))if($.length>0&&U[Z].length>0&&V($[0])&&V(U[Z][0])){let X=[...$];for(let Y of U[Z])if(V(Y)&&"name"in Y){if(!X.find((J)=>V(J)&&("name"in J)&&J.name===Y.name))X.push(Y)}else if(V(Y)&&"path"in Y){if(!X.find((J)=>V(J)&&("path"in J)&&J.path===Y.path))X.push(Y)}else if(!X.some((G)=>UH(G,Y)))X.push(Y);U[Z]=X}else if($.every((X)=>typeof X==="string")&&U[Z].every((X)=>typeof X==="string")){let X=[...$];for(let Y of U[Z])if(!X.includes(Y))X.push(Y);U[Z]=X}else U[Z]=$;else U[Z]=$}return U}function UH(H,Q){if(H===Q)return!0;if(Array.isArray(H)&&Array.isArray(Q)){if(H.length!==Q.length)return!1;for(let U=0;U<H.length;U++)if(!UH(H[U],Q[U]))return!1;return!0}if(V(H)&&V(Q)){let U=Object.keys(H),Z=Object.keys(Q);if(U.length!==Z.length)return!1;for(let $ of U){if(!Object.prototype.hasOwnProperty.call(Q,$))return!1;if(!UH(H[$],Q[$]))return!1}return!0}return!1}function V(H){return Boolean(H&&typeof H==="object"&&!Array.isArray(H))}async function GQ(H,Q){if(!cH(H))return null;try{let U=await import(H),Z=U.default||U;if(typeof Z!=="object"||Z===null||Array.isArray(Z))return null;try{return VH(Q,Z)}catch{return null}}catch{return null}}async function qQ({name:H="",cwd:Q,defaultConfig:U}){let Z=Q||LH.cwd(),$=[".ts",".js",".mjs",".cjs",".json"],X=[`${H}.config`,`.${H}.config`,H,`.${H}`];for(let Y of X)for(let G of $){let J=QH(Z,`${Y}${G}`),q=await GQ(J,U);if(q!==null)return q}try{let Y=QH(Z,"package.json");if(cH(Y)){let J=(await import(Y))[H];if(J&&typeof J==="object"&&!Array.isArray(J))try{return VH(U,J)}catch{}}}catch{}return U}var KU=QH(LH.cwd(),"config"),LU=QH(LH.cwd(),"src/generated");function NQ(H,Q={}){let U=HH.cwd();while(U.includes("storage"))U=FH(U,"..");let Z=FH(U,H||"");if(Q?.relative)return HQ(HH.cwd(),Z);return Z}var AQ=HH.env.CLARITY_LOG_DIR||eH(NQ(),"logs"),NH={level:"info",defaultName:"clarity",timestamp:!0,colors:!0,format:"text",maxLogSize:10485760,logDatePattern:"YYYY-MM-DD",logDirectory:AQ,rotation:{frequency:"daily",maxSize:10485760,maxFiles:5,compress:!1,rotateHour:0,rotateMinute:0,rotateDayOfWeek:0,rotateDayOfMonth:1,encrypt:!1},verbose:!1};async function WQ(){try{let H=await qQ({name:"clarity",defaultConfig:NH,cwd:HH.cwd(),endpoint:"",headers:{}});return{...NH,...H}}catch{return NH}}var CH=await WQ();function E(){if(v.env.NODE_ENV==="test"||v.env.BUN_ENV==="test")return!1;return typeof window<"u"}async function zQ(){if(v.env.NODE_ENV==="test"||v.env.BUN_ENV==="test")return!0;if(typeof navigator<"u"&&navigator.product==="ReactNative")return!0;if(typeof v<"u"){let H=v.type;if(H==="renderer"||H==="worker")return!1;return!!(v.versions&&(v.versions.node||v.versions.bun))}return!1}class gH{async format(H){let Q=await zQ(),U=await this.getMetadata(Q);return JSON.stringify({timestamp:H.timestamp.toISOString(),level:H.level,name:H.name,message:H.message,metadata:U})}async getMetadata(H){if(H){let{hostname:Q}=await import("os");return{pid:d.pid,hostname:Q(),environment:d.env.NODE_ENV||"development",platform:d.platform,version:d.version}}return{userAgent:navigator.userAgent,hostname:window.location.hostname||"browser",environment:d.env.NODE_ENV||d.env.BUN_ENV||"development",viewport:{width:window.innerWidth,height:window.innerHeight},language:navigator.language}}}var w={red:(H)=>`\x1B[31m${H}\x1B[0m`,green:(H)=>`\x1B[32m${H}\x1B[0m`,yellow:(H)=>`\x1B[33m${H}\x1B[0m`,blue:(H)=>`\x1B[34m${H}\x1B[0m`,magenta:(H)=>`\x1B[35m${H}\x1B[0m`,cyan:(H)=>`\x1B[36m${H}\x1B[0m`,white:(H)=>`\x1B[37m${H}\x1B[0m`,gray:(H)=>`\x1B[90m${H}\x1B[0m`,bgRed:(H)=>`\x1B[41m${H}\x1B[0m`,bgYellow:(H)=>`\x1B[43m${H}\x1B[0m`,bold:(H)=>`\x1B[1m${H}\x1B[0m`,dim:(H)=>`\x1B[2m${H}\x1B[0m`,italic:(H)=>`\x1B[3m${H}\x1B[0m`,underline:(H)=>`\x1B[4m${H}\x1B[0m`,reset:"\x1B[0m"},L=w,VU=w.red,_Q=w.green,DU=w.yellow,RQ=w.blue,EU=w.magenta,TU=w.cyan,kH=w.white,FU=w.gray,KQ=w.bgRed,LQ=w.bgYellow,xH=w.bold,BU=w.dim,OU=w.italic,jU=w.underline,MU=w.reset,AH={activationLevel:"error",bufferSize:50,flushOnDeactivation:!0,stopBuffering:!1},VQ={debug:"\uD83D\uDD0D",info:RQ("ℹ"),success:_Q("✓"),warning:LQ(kH(xH(" WARN "))),error:KQ(kH(xH(" ERROR ")))};class $H{name;fileLocks=new Map;currentKeyId=null;keys=new Map;config;options;formatter;timers=new Set;subLoggers=new Set;fingersCrossedBuffer=[];fingersCrossedConfig;fingersCrossedActive=!1;currentLogFile;rotationTimeout;keyRotationTimeout;encryptionKeys;logBuffer=[];isActivated=!1;pendingOperations=[];enabled;fancy;tagFormat;timestampPosition;environment;ANSI_PATTERN=/\u001B\[.*?m/g;activeProgressBar=null;constructor(H,Q={}){this.name=H,this.config={...CH},this.options=this.normalizeOptions(Q),this.formatter=this.options.formatter||new gH,this.enabled=Q.enabled??!0,this.fancy=Q.fancy??!0,this.tagFormat=Q.tagFormat??{prefix:"[",suffix:"]"},this.timestampPosition=Q.timestampPosition??"right",this.environment=Q.environment??O.env.APP_ENV??"local",this.fingersCrossedConfig=this.initializeFingersCrossedConfig(Q);let U={...Q},Z=Q.timestamp!==void 0;if(Z)delete U.timestamp;if(this.config={...this.config,...U,timestamp:Z||this.config.timestamp},this.currentLogFile=this.generateLogFilename(),this.encryptionKeys=new Map,this.validateEncryptionConfig()){this.setupRotation();let $=this.generateKeyId(),X=this.generateKey();this.currentKeyId=$,this.keys.set($,X),this.encryptionKeys.set($,{key:X,createdAt:new Date}),this.setupKeyRotation()}}initializeFingersCrossedConfig(H){if(!H.fingersCrossedEnabled&&H.fingersCrossed)return{...AH,...H.fingersCrossed};if(!H.fingersCrossedEnabled)return null;if(!H.fingersCrossed)return{...AH};return{...AH,...H.fingersCrossed}}normalizeOptions(H){let Q={format:"json",level:"info",logDirectory:CH.logDirectory,rotation:void 0,timestamp:void 0,fingersCrossed:{},enabled:!0,showTags:!1,formatter:void 0},U={...Q,...Object.fromEntries(Object.entries(H).filter(([,Z])=>Z!==void 0))};if(!U.level||!["debug","info","success","warning","error"].includes(U.level))U.level=Q.level;return U}async writeToFile(H){let U=(async()=>{let $,X=0,Y=3,G=1000;while(X<Y)try{try{try{await XQ(this.config.logDirectory,MH.F_OK|MH.W_OK)}catch(q){if(q instanceof Error&&"code"in q)if(q.code==="ENOENT")await YQ(this.config.logDirectory,{recursive:!0,mode:493});else if(q.code==="EACCES")throw Error(`No write permission for log directory: ${this.config.logDirectory}`);else throw q;else throw q}}catch(q){throw console.error("Debug: [writeToFile] Failed to create log directory:",q),q}let J=this.validateEncryptionConfig()?(await this.encrypt(H)).encrypted:y.from(H);try{if(!GH(this.currentLogFile))await qH(this.currentLogFile,"",{mode:420});if($=jH(this.currentLogFile,"a",420),$Q($,J,{flag:"a"}),OH($),$!==void 0)JH($),$=void 0;if((await f(this.currentLogFile)).size===0){if(await qH(this.currentLogFile,J,{flag:"w",mode:420}),(await f(this.currentLogFile)).size===0)throw Error("File exists but is empty after retry write")}return}catch(q){let N=q;if(N.code&&["ENETDOWN","ENETUNREACH","ENOTFOUND","ETIMEDOUT"].includes(N.code)){if(X<Y-1){let A=typeof N.message==="string"?N.message:"Unknown error";console.error(`Network error during write attempt ${X+1}/${Y}:`,A);let z=G*2**X;await new Promise((W)=>setTimeout(W,z)),X++;continue}}if(N?.code&&["ENOSPC","EDQUOT"].includes(N.code))throw Error(`Disk quota exceeded or no space left on device: ${N.message}`);throw console.error("Debug: [writeToFile] Error writing to file:",N),N}finally{if($!==void 0)try{JH($)}catch(q){console.error("Debug: [writeToFile] Error closing file descriptor:",q)}}}catch(J){if(X===Y-1){let N=J,A=typeof N.message==="string"?N.message:"Unknown error";throw console.error("Debug: [writeToFile] Max retries reached. Final error:",A),J}X++;let q=G*2**(X-1);await new Promise((N)=>setTimeout(N,q))}})();this.pendingOperations.push(U);let Z=this.pendingOperations.length-1;try{await U}catch($){throw console.error("Debug: [writeToFile] Error in operation:",$),$}finally{this.pendingOperations.splice(Z,1)}}generateLogFilename(){if(this.name.includes("stream-throughput")||this.name.includes("decompress-perf-test")||this.name.includes("decompression-latency")||this.name.includes("concurrent-read-test")||this.name.includes("clock-change-test"))return u(this.config.logDirectory,`${this.name}.log`);if(this.name.includes("pending-test")||this.name.includes("temp-file-test")||this.name==="crash-test"||this.name==="corrupt-test"||this.name.includes("rotation-load-test")||this.name==="sigterm-test"||this.name==="sigint-test"||this.name==="failed-rotation-test"||this.name==="integration-test")return u(this.config.logDirectory,`${this.name}.log`);let H=new Date().toISOString().split("T")[0];return u(this.config.logDirectory,`${this.name}-${H}.log`)}setupRotation(){if(E())return;if(typeof this.config.rotation==="boolean")return;let H=this.config.rotation,Q;switch(H.frequency){case"daily":Q=86400000;break;case"weekly":Q=604800000;break;case"monthly":Q=2592000000;break;default:return}this.rotationTimeout=setInterval(()=>{this.rotateLog()},Q)}setupKeyRotation(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation setup");return}let Q=this.config.rotation.keyRotation;if(!Q?.enabled)return;let U=typeof Q.interval==="number"?Q.interval:60,Z=Math.max(U,60)*1000;this.keyRotationTimeout=setInterval(()=>{this.rotateKeys().catch(($)=>{console.error("Error rotating keys:",$)})},Z)}async rotateKeys(){if(!this.validateEncryptionConfig()){console.error("Invalid encryption configuration detected during key rotation");return}let Q=this.config.rotation.keyRotation,U=this.generateKeyId(),Z=this.generateKey();this.currentKeyId=U,this.keys.set(U,Z),this.encryptionKeys.set(U,{key:Z,createdAt:new Date});let $=Array.from(this.encryptionKeys.entries()).sort(([,G],[,J])=>J.createdAt.getTime()-G.createdAt.getTime()),X=typeof Q.maxKeys==="number"?Q.maxKeys:1,Y=Math.max(1,X);if($.length>Y)for(let[G]of $.slice(Y))this.encryptionKeys.delete(G),this.keys.delete(G)}generateKeyId(){return YH(16).toString("hex")}generateKey(){return YH(32)}getCurrentKey(){if(!this.currentKeyId)throw Error("Encryption is not properly initialized. Make sure encryption is enabled in the configuration.");let H=this.keys.get(this.currentKeyId);if(!H)throw Error(`No key found for ID ${this.currentKeyId}. The encryption key may have been rotated or removed.`);return{key:H,id:this.currentKeyId}}encrypt(H){let{key:Q}=this.getCurrentKey(),U=YH(16),Z=QQ("aes-256-gcm",Q,U),$=y.concat([Z.update(H,"utf8"),Z.final()]),X=Z.getAuthTag();return{encrypted:y.concat([U,$,X]),iv:U}}async compressData(H){return new Promise((Q,U)=>{let Z=wH(),$=[];Z.on("data",(X)=>$.push(X)),Z.on("end",()=>Q(y.from(y.concat($)))),Z.on("error",U),Z.write(H),Z.end()})}getEncryptionOptions(){if(!this.config.rotation||typeof this.config.rotation==="boolean"||!this.config.rotation.encrypt)return{};let H={algorithm:"aes-256-cbc",compress:!1};if(typeof this.config.rotation.encrypt==="object"){let Q=this.config.rotation.encrypt;return{...H,...Q}}return H}async rotateLog(){if(E())return;let H=await f(this.currentLogFile).catch(()=>null);if(!H)return;let Q=this.config.rotation;if(typeof Q==="boolean")return;if(Q.maxSize&&H.size>=Q.maxSize){let U=this.currentLogFile,Z=this.generateLogFilename();if(this.name.includes("rotation-load-test")||this.name==="failed-rotation-test"){let $=await l(this.config.logDirectory),X=$.filter((J)=>J.startsWith(this.name)&&/\.log\.\d+$/.test(J)).sort((J,q)=>{let N=Number.parseInt(J.match(/\.log\.(\d+)$/)?.[1]||"0");return Number.parseInt(q.match(/\.log\.(\d+)$/)?.[1]||"0")-N}),Y=X.length>0?Number.parseInt(X[0].match(/\.log\.(\d+)$/)?.[1]||"0")+1:1,G=`${U}.${Y}`;if(await f(U).catch(()=>null))try{if(await IH(U,G),Q.compress)try{let J=`${G}.gz`;await this.compressLogFile(G,J),await i(G)}catch(J){console.error("Error compressing rotated file:",J)}if(X.length===0&&!$.some((J)=>J.endsWith(".log.1")))try{let J=`${U}.1`;await qH(J,"")}catch(J){console.error("Error creating backup file:",J)}}catch(J){console.error(`Error during rotation: ${J instanceof Error?J.message:String(J)}`)}}else{let $=new Date().toISOString().replace(/[:.]/g,"-"),X=U.replace(/\.log$/,`-${$}.log`);if(await f(U).catch(()=>null))await IH(U,X)}if(this.currentLogFile=Z,Q.maxFiles){let X=(await l(this.config.logDirectory)).filter((Y)=>Y.startsWith(this.name)).sort((Y,G)=>G.localeCompare(Y));for(let Y of X.slice(Q.maxFiles))await i(u(this.config.logDirectory,Y))}}}async compressLogFile(H,Q){let U=BH(H),Z=ZQ(Q),$=wH();await JQ(U,$,Z)}async handleFingersCrossedBuffer(H,Q){if(!this.fingersCrossedConfig)return;if(this.shouldActivateFingersCrossed(H)&&!this.isActivated){this.isActivated=!0;for(let U of this.logBuffer){let Z=await this.formatter.format(U);await this.writeToFile(Z),console.log(Z)}if(this.fingersCrossedConfig.stopBuffering)this.logBuffer=[]}if(this.isActivated)await this.writeToFile(Q),console.log(Q);else{if(this.logBuffer.length>=this.fingersCrossedConfig.bufferSize)this.logBuffer.shift();let U={timestamp:new Date,level:H,message:Q,name:this.name};this.logBuffer.push(U)}}shouldActivateFingersCrossed(H){if(!this.fingersCrossedConfig)return!1;return this.getLevelValue(H)>=this.getLevelValue(this.fingersCrossedConfig.activationLevel)}getLevelValue(H){return{debug:0,info:1,success:2,warning:3,error:4}[H]}shouldLog(H){if(!this.enabled)return!1;let Q={debug:0,info:1,success:2,warning:3,error:4};return Q[H]>=Q[this.config.level]}async flushPendingWrites(){if(await Promise.all(this.pendingOperations.map((H)=>{if(H instanceof Promise)return H.catch((Q)=>{console.error("Error in pending write operation:",Q)});return Promise.resolve()})),GH(this.currentLogFile))try{let H=jH(this.currentLogFile,"r+");OH(H),JH(H)}catch(H){console.error(`Error flushing file: ${H}`)}}async destroy(){if(this.rotationTimeout)clearInterval(this.rotationTimeout);if(this.keyRotationTimeout)clearInterval(this.keyRotationTimeout);this.timers.clear();for(let H of this.pendingOperations)if(typeof H.cancel==="function")H.cancel();return(async()=>{if(this.pendingOperations.length>0)try{await Promise.allSettled(this.pendingOperations)}catch(H){console.error("Error waiting for pending operations:",H)}if(!E()&&this.config.rotation&&typeof this.config.rotation!=="boolean"&&this.config.rotation.compress)try{let Q=(await l(this.config.logDirectory)).filter((U)=>(U.includes("temp")||U.includes(".tmp"))&&U.includes(this.name));for(let U of Q)try{await i(u(this.config.logDirectory,U))}catch(Z){console.error(`Failed to delete temp file ${U}:`,Z)}}catch(H){console.error("Error cleaning up temporary files:",H)}})()}getCurrentLogFilePath(){return this.currentLogFile}formatTag(H){if(!H)return"";return`${this.tagFormat.prefix}${H}${this.tagFormat.suffix}`}formatFileTimestamp(H){return`[${H.toISOString()}]`}formatConsoleTimestamp(H){return this.fancy?L.gray(H.toLocaleTimeString()):H.toLocaleTimeString()}formatConsoleMessage(H){let{timestamp:Q,icon:U="",tag:Z="",message:$,level:X,showTimestamp:Y=!0}=H,G=(W)=>W.replace(this.ANSI_PATTERN,"");if(!this.fancy){let W=[];if(Y)W.push(Q);if(X==="warning")W.push("WARN");else if(X==="error")W.push("ERROR");else if(U)W.push(U.replace(/[^\p{L}\p{N}\p{P}\p{Z}]/gu,""));if(Z)W.push(Z.replace(/[[\]]/g,""));return W.push($),W.join(" ")}let J=O.stdout.columns||120,q="";if(X==="warning"||X==="error")q=`${U} ${$}`;else if(X==="info"||X==="success")q=`${U} ${Z} ${$}`;else q=`${U} ${Z} ${L.cyan($)}`;if(!Y)return q.trim();let N=G(q).trim().length,A=G(Q).length,z=Math.max(1,J-2-N-A);return`${q.trim()}${" ".repeat(z)}${Q}`}formatMessage(H,Q){if(Q.length===1&&Array.isArray(Q[0]))return H.replace(/\{(\d+)\}/g,(X,Y)=>{let G=Number.parseInt(Y,10);return G<Q[0].length?String(Q[0][G]):X});let U=/%([sdijfo%])/g,Z=0,$=H.replace(U,(X,Y)=>{if(Y==="%")return"%";if(Z>=Q.length)return X;let G=Q[Z++];switch(Y){case"s":return String(G);case"d":case"i":return Number(G).toString();case"j":case"o":return JSON.stringify(G,null,2);default:return X}});if(Z<Q.length)$+=` ${Q.slice(Z).map((X)=>typeof X==="object"?JSON.stringify(X,null,2):String(X)).join(" ")}`;return $}async log(H,Q,...U){let Z=new Date,$=this.formatConsoleTimestamp(Z),X=this.formatFileTimestamp(Z),Y,G;if(Q instanceof Error)Y=Q.message,G=Q.stack;else Y=this.formatMessage(Q,U);if(this.fancy&&!E()){let q=VQ[H],N=this.options.showTags!==!1&&this.name?L.gray(this.formatTag(this.name)):"",A;switch(H){case"debug":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:L.gray(Y),level:H}),console.error(A);break;case"info":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:Y,level:H}),console.error(A);break;case"success":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:L.green(Y),level:H}),console.error(A);break;case"warning":A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:Y,level:H}),console.warn(A);break;case"error":if(A=this.formatConsoleMessage({timestamp:$,icon:q,tag:N,message:Y,level:H}),console.error(A),G){let z=G.split(`
2
2
  `);for(let W of z)if(W.trim()&&!W.includes(Y))console.error(this.formatConsoleMessage({timestamp:$,message:L.gray(` ${W}`),level:H,showTimestamp:!1}))}break}}else if(!E()){if(console.error(`${X} ${this.environment}.${H.toUpperCase()}: ${Y}`),G)console.error(G)}if(!this.shouldLog(H))return;let J=`${X} ${this.environment}.${H.toUpperCase()}: ${Y}
3
3
  `;if(G)J+=`${G}
4
4
  `;J=J.replace(this.ANSI_PATTERN,""),await this.writeToFile(J)}time(H){let Q=performance.now();if(this.fancy&&!E()){let U=this.options.showTags!==!1&&this.name?L.gray(this.formatTag(this.name)):"",Z=this.formatConsoleTimestamp(new Date);console.error(this.formatConsoleMessage({timestamp:Z,icon:L.blue("◐"),tag:U,message:`${L.cyan(H)}...`}))}return async(U)=>{if(!this.enabled)return;let Z=performance.now(),$=Math.round(Z-Q),X=`${H} completed in ${$}ms`,Y=new Date,G=this.formatConsoleTimestamp(Y),q=`${this.formatFileTimestamp(Y)} ${this.environment}.INFO: ${X}`;if(U)q+=` ${JSON.stringify(U)}`;if(q+=`
@@ -15,5 +15,5 @@ import{P as pH}from"./chunk-4960052z.js";import{execSync as lH}from"node:child_p
15
15
  `),J=Math.max(...G.map((z)=>z.length))+2,q=`┌${"─".repeat(J)}┐`,N=`└${"─".repeat(J)}┘`,A=G.map((z)=>{return this.formatConsoleMessage({timestamp:U,message:R.cyan(z),showTimestamp:!1})});console.error(this.formatConsoleMessage({timestamp:U,message:R.cyan(q),showTimestamp:!1})),A.forEach((z)=>console.error(z)),console.error(this.formatConsoleMessage({timestamp:U,message:R.cyan(N),showTimestamp:!1}))}else if(!T())console.error(`${Z} ${this.environment}.INFO: [BOX] ${X}`);let Y=`${Z} ${this.environment}.INFO: [BOX] ${X}
16
16
  `.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(Y)}async prompt(H){if(T())return Promise.resolve(!0);return new Promise((Q)=>{console.error(`${R.cyan("?")} ${H} (y/n) `);let U=(Z)=>{let $=Z.toString().trim().toLowerCase();_.stdin.removeListener("data",U);try{if(typeof _.stdin.setRawMode==="function")_.stdin.setRawMode(!1)}catch{}_.stdin.pause(),console.error(""),Q($==="y"||$==="yes")};try{if(typeof _.stdin.setRawMode==="function")_.stdin.setRawMode(!0)}catch{}_.stdin.resume(),_.stdin.once("data",U)})}setFancy(H){this.fancy=H}isFancy(){return this.fancy}pause(){this.enabled=!1}resume(){this.enabled=!0}async start(H,...Q){if(!this.enabled)return;let U=H;if(Q&&Q.length>0){let J=/%([sdijfo%])/g,q=0;if(U=H.replace(J,(N,A)=>{if(A==="%")return"%";if(q>=Q.length)return N;let z=Q[q++];switch(A){case"s":return String(z);case"d":case"i":return Number(z).toString();case"j":case"o":return JSON.stringify(z,null,2);default:return N}}),q<Q.length)U+=` ${Q.slice(q).map((N)=>typeof N==="object"?JSON.stringify(N,null,2):String(N)).join(" ")}`}let{consoleText:Z,fileText:$}=this.buildOutputTexts(U);if(this.shouldStyleConsole()){let J=this.options.showTags!==!1&&this.name?R.gray(this.formatTag(this.name)):"",q=this.options.showIcons===!1?"":`${R.blue("◐")} `;console.error(`${q}${J} ${R.cyan(Z)}`)}let G=`[${new Date().toISOString()}] ${this.environment}.INFO: [START] ${$}
17
17
  `.replace(this.ANSI_PATTERN,"");if(this.shouldWriteToFile())await this.writeToFile(G)}renderProgressBar(H,Q=!1){if(!this.enabled||!this.shouldStyleConsole()||!_.stdout.isTTY)return;let U=Math.min(100,Math.max(0,Math.round(H.current/H.total*100))),Z=Math.round(H.barLength*U/100),$=H.barLength-Z,X=R.green("━".repeat(Z)),Y=R.gray("━".repeat($)),G=`[${X}${Y}]`,J=`${U}%`.padStart(4),q=H.message?` ${H.message}`:"",N=this.options.showIcons===!1?"":Q||U===100?R.green("✓"):R.blue("▶"),A=this.options.showTags!==!1&&this.name?` ${R.gray(this.formatTag(this.name))}`:"",z=`\r${N}${A} ${G} ${J}${q}`,W=_.stdout.columns||80,k=" ".repeat(Math.max(0,W-z.replace(this.ANSI_PATTERN,"").length));if(H.lastRenderedLine=`${z}${k}`,_.stdout.write(H.lastRenderedLine),Q)_.stdout.write(`
18
- `)}finishProgressBar(H,Q){if(!this.enabled||!this.fancy||T()||!_.stdout.isTTY){this.activeProgressBar=null;return}if(H.current<H.total)H.current=H.total;if(Q)H.message=Q;this.renderProgressBar(H,!0),this.activeProgressBar=null}async clear(H={}){if(T()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let Q=await r(this.config.logDirectory),U=[];for(let Z of Q){if(!(H.name?new RegExp(H.name.replace("*",".*")).test(Z):Z.startsWith(this.name))||!Z.endsWith(".log"))continue;let X=m(this.config.logDirectory,Z);if(H.before)try{if((await p(X)).mtime>=H.before)continue}catch(Y){console.error(`Failed to get stats for file ${X}:`,Y);continue}U.push(X)}if(U.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${U.length} log file(s)...`);for(let Z of U)try{await s(Z),console.warn(`Deleted log file: ${Z}`)}catch($){console.error(`Failed to delete log file ${Z}:`,$)}console.warn("Log clearing process finished.")}catch(Q){console.error("Error during log clearing process:",Q)}}}var sU=new n("stacks");var uQ=new n("rpx",{showTags:!1});function dQ(){return process.env.SUDO_PASSWORD}function QZ(H){let Q=dQ();if(Q)return lH(`echo '${Q}' | sudo -S ${H}`,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]});return lH(`sudo ${H}`,{encoding:"utf-8"})}function iH(H,Q,U){if(U)uQ.debug(`[rpx:${H}] ${Q}`)}function UZ(H){if(aH(H))return H.proxies.map((Q)=>{let U=Q.to||"stacks.localhost";return U.startsWith("http")?new URL(U).hostname:U});if(rH(H)){let Q=H.to||"stacks.localhost";return[Q.startsWith("http")?new URL(Q).hostname:Q]}return["stacks.localhost"]}function ZZ(H){return typeof H==="object"&&H!==null&&"certificate"in H&&"privateKey"in H&&typeof H.certificate==="string"&&typeof H.privateKey==="string"}function $Z(H){if(!H)return"stacks.localhost";if(aH(H)&&H.proxies.length>0)return H.proxies[0].to||"stacks.localhost";if(rH(H))return H.to||"stacks.localhost";return"stacks.localhost"}function XZ(H){return!!(H&&("proxies"in H)&&Array.isArray(H.proxies))}function aH(H){return"proxies"in H&&Array.isArray(H.proxies)}function rH(H){return"to"in H&&typeof H.to==="string"}function YZ(H){return!!(H&&("to"in H)&&!("proxies"in H))}async function JZ(H,Q){try{await oH.unlink(H),iH("certificates",`Successfully deleted: ${H}`,Q)}catch(U){if(U.code!=="ENOENT")iH("certificates",`Warning: Could not delete ${H}: ${U}`,Q)}}
19
- export{dQ as C,QZ as D,iH as E,UZ as F,ZZ as G,$Z as H,XZ as I,aH as J,rH as K,YZ as L,JZ as M};
18
+ `)}finishProgressBar(H,Q){if(!this.enabled||!this.fancy||T()||!_.stdout.isTTY){this.activeProgressBar=null;return}if(H.current<H.total)H.current=H.total;if(Q)H.message=Q;this.renderProgressBar(H,!0),this.activeProgressBar=null}async clear(H={}){if(T()){console.warn("Log clearing is not supported in browser environments.");return}try{console.warn("Clearing logs...",this.config.logDirectory);let Q=await r(this.config.logDirectory),U=[];for(let Z of Q){if(!(H.name?new RegExp(H.name.replace("*",".*")).test(Z):Z.startsWith(this.name))||!Z.endsWith(".log"))continue;let X=m(this.config.logDirectory,Z);if(H.before)try{if((await p(X)).mtime>=H.before)continue}catch(Y){console.error(`Failed to get stats for file ${X}:`,Y);continue}U.push(X)}if(U.length===0){console.warn("No log files matched the criteria for clearing.");return}console.warn(`Preparing to delete ${U.length} log file(s)...`);for(let Z of U)try{await s(Z),console.warn(`Deleted log file: ${Z}`)}catch($){console.error(`Failed to delete log file ${Z}:`,$)}console.warn("Log clearing process finished.")}catch(Q){console.error("Error during log clearing process:",Q)}}}var sU=new n("stacks");var uQ=new n("rpx",{showTags:!1});function dQ(){return process.env.SUDO_PASSWORD}function QZ(H){let Q=dQ(),U=H.replace(/'/g,"'\\''");if(Q)return lH(`echo '${Q}' | sudo -S sh -c '${U}' 2>/dev/null`,{encoding:"utf-8",stdio:["pipe","pipe","pipe"]});return lH(`sudo sh -c '${U}'`,{encoding:"utf-8"})}function iH(H,Q,U){if(U)uQ.debug(`[rpx:${H}] ${Q}`)}function UZ(H){if(aH(H))return H.proxies.map((Q)=>{let U=Q.to||"stacks.localhost";return U.startsWith("http")?new URL(U).hostname:U});if(rH(H)){let Q=H.to||"stacks.localhost";return[Q.startsWith("http")?new URL(Q).hostname:Q]}return["stacks.localhost"]}function ZZ(H){return typeof H==="object"&&H!==null&&"certificate"in H&&"privateKey"in H&&typeof H.certificate==="string"&&typeof H.privateKey==="string"}function $Z(H){if(!H)return"stacks.localhost";if(aH(H)&&H.proxies.length>0)return H.proxies[0].to||"stacks.localhost";if(rH(H))return H.to||"stacks.localhost";return"stacks.localhost"}function XZ(H){return!!(H&&("proxies"in H)&&Array.isArray(H.proxies))}function aH(H){return"proxies"in H&&Array.isArray(H.proxies)}function rH(H){return"to"in H&&typeof H.to==="string"}function YZ(H){return!!(H&&("to"in H)&&!("proxies"in H))}async function JZ(H,Q){try{await oH.unlink(H),iH("certificates",`Successfully deleted: ${H}`,Q)}catch(U){if(U.code!=="ENOENT")iH("certificates",`Warning: Could not delete ${H}: ${U}`,Q)}}
19
+ export{dQ as w,QZ as x,iH as y,UZ as z,ZZ as A,$Z as B,XZ as C,aH as D,rH as E,YZ as F,JZ as G};
@@ -0,0 +1,2 @@
1
+ import{createRequire as a}from"node:module";var c=a(import.meta.url);
2
+ export{c as H};
@@ -0,0 +1,6 @@
1
+ export declare const colors: {
2
+ bold: (str: string) => string
3
+ dim: (str: string) => string
4
+ green: (str: string) => string
5
+ cyan: (str: string) => string
6
+ };
package/dist/config.d.ts CHANGED
@@ -2,4 +2,4 @@ import type { ProxyConfig } from './types';
2
2
  export declare function getConfig(): Promise<ProxyConfig>;
3
3
  export declare const defaultConfig: ProxyConfig;
4
4
  // For backwards compatibility - synchronous access with default fallback
5
- export declare const config: ProxyConfig;
5
+ export declare const config: ProxyConfig;
package/dist/dns.d.ts CHANGED
@@ -18,4 +18,4 @@ export declare function setupResolver(verbose?: boolean, domains?: string[]): Pr
18
18
  /**
19
19
  * Remove the macOS resolver files we created
20
20
  */
21
- export declare function removeResolver(verbose?: boolean): Promise<void>;
21
+ export declare function removeResolver(verbose?: boolean): Promise<void>;
package/dist/hosts.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export declare function addHosts(hosts: string[], verbose?: boolean): Promise<void>;
2
2
  export declare function removeHosts(hosts: string[], verbose?: boolean): Promise<void>;
3
3
  export declare function checkHosts(hosts: string[], verbose?: boolean): Promise<boolean[]>;
4
- export declare const hostsFilePath: string;
4
+ export declare const hostsFilePath: string;
package/dist/https.d.ts CHANGED
@@ -36,4 +36,4 @@ export declare function cleanupCertificates(domain: string, verbose?: boolean):
36
36
  * Checks if a certificate is trusted by the system (macOS only for now)
37
37
  * If options.regenerateUntrustedCerts is false, always returns true (skips trust check)
38
38
  */
39
- export declare function isCertTrusted(certPath: string, options?: { verbose?: boolean, regenerateUntrustedCerts?: boolean }): Promise<boolean>;
39
+ export declare function isCertTrusted(certPath: string, options?: { verbose?: boolean, regenerateUntrustedCerts?: boolean }): Promise<boolean>;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { startProxies as startProxiesFunc } from './start';
2
+ export { colors } from './colors';
1
3
  export { config, config as defaultConfig } from './config';
2
4
  export {
3
5
  addHosts,
@@ -18,4 +20,4 @@ export { cleanup } from './start';
18
20
  export { startProxies, startProxy, startServer } from './start';
19
21
  export * from './types';
20
22
  export * from './utils';
21
- export default startProxiesFunc;
23
+ export default startProxiesFunc;
package/dist/logger.d.ts CHANGED
@@ -7,4 +7,4 @@ export declare const log: {
7
7
  log: (...args: any[]) => void
8
8
  start: (...args: any[]) => void
9
9
  box: (...args: any[]) => void
10
- };
10
+ };
@@ -6,20 +6,16 @@ export declare function isPortInUse(port: number, hostname: string, verbose?: bo
6
6
  /**
7
7
  * Find next available port
8
8
  */
9
- export declare function findAvailablePort(startPort: number, hostname: string, verbose?: boolean, maxAttempts?: any): Promise<number>;
9
+ export declare function findAvailablePort(startPort: number, hostname: string, verbose?: boolean, maxAttempts?: number): Promise<number>;
10
10
  /**
11
11
  * Test if a port is actually connectable
12
12
  */
13
- export declare function testPortConnectivity(port: number, hostname: string, timeout?: any, verbose?: boolean): Promise<boolean>;
13
+ export declare function testPortConnectivity(port: number, hostname: string, timeout?: number, verbose?: boolean): Promise<boolean>;
14
14
  // Global port manager instance
15
15
  export declare const portManager: DefaultPortManager;
16
16
  export declare class DefaultPortManager implements PortManager {
17
17
  usedPorts: Set<number>;
18
- private hostname: string;
19
- private verbose?: boolean;
20
- private maxRetries: number;
21
- constructor(hostname?: string, verbose?: boolean, maxRetries?: any);
22
- getNextAvailablePort(startPort: number, testConnectivity?: any): Promise<number>;
23
- private findNextAvailablePort(startPort: number, testConnectivity?: any): Promise<number>;
18
+ constructor(hostname?: string, verbose?: boolean, maxRetries?: number);
19
+ getNextAvailablePort(startPort: number, testConnectivity?: boolean): Promise<number>;
24
20
  releasePort(port: number): void;
25
- }
21
+ }
@@ -8,10 +8,8 @@ export declare interface ManagedProcess {
8
8
  env?: Record<string, string>
9
9
  }
10
10
  export declare class ProcessManager {
11
- private processes: Map<string, ManagedProcess>;
12
- private isShuttingDown: any;
13
11
  startProcess(id: string, options: StartOptions, verbose?: boolean): Promise<void>;
14
12
  stopProcess(id: string, verbose?: boolean): Promise<void>;
15
13
  stopAll(verbose?: boolean): Promise<void>;
16
14
  isRunning(id: string): boolean;
17
- }
15
+ }
package/dist/src/index.js CHANGED
@@ -1 +1 @@
1
- import{b as o,c as t,d as e,e as f,f as a,g as i,h as s,i as p,j as c,k as x,l as n,m,n as g,o as C,p as P,r as l,s as d,t as u,u as r}from"../chunk-szmp12hh.js";import"../chunk-b6654twv.js";import{C as L,D as U,E as j,F as q,G as z,H as B,I as G,J as I,K as J,L as K,M as N}from"../chunk-4csm61sj.js";import"../chunk-4960052z.js";var F=r;export{d as startServer,u as startProxy,r as startProxies,N as safeDeleteFile,e as removeHosts,P as portManager,a as loadSSLConfig,z as isValidRootCA,J as isSingleProxyOptions,K as isSingleProxyConfig,m as isPortInUse,I as isMultiProxyOptions,G as isMultiProxyConfig,n as isCertTrusted,c as httpsConfig,L as getSudoPassword,B as getPrimaryDomain,s as generateCertificate,i as forceTrustCertificate,g as findAvailablePort,q as extractHostname,U as execSudoSync,o as defaultConfig,F as default,j as debugLog,o as config,x as cleanupCertificates,l as cleanup,f as checkHosts,p as checkExistingCertificates,t as addHosts,C as DefaultPortManager};
1
+ import{a as t,c as r,d as e,e as f,f as a,g as i,h as s,i as p,j as c,k as x,l as m,m as n,n as g,o as C,p as l,q as P,s as d,t as u,u as v,v as o}from"../chunk-8mnzvjyr.js";import"../chunk-3y886wa5.js";import{A as G,B as I,C as J,D as K,E as N,F as O,G as Q,w as j,x as q,y as z,z as B}from"../chunk-g5db14m7.js";import"../chunk-gbny098p.js";var U=o;export{u as startServer,v as startProxy,o as startProxies,Q as safeDeleteFile,f as removeHosts,P as portManager,i as loadSSLConfig,G as isValidRootCA,N as isSingleProxyOptions,O as isSingleProxyConfig,g as isPortInUse,K as isMultiProxyOptions,J as isMultiProxyConfig,n as isCertTrusted,x as httpsConfig,j as getSudoPassword,I as getPrimaryDomain,p as generateCertificate,s as forceTrustCertificate,C as findAvailablePort,B as extractHostname,q as execSudoSync,r as defaultConfig,U as default,z as debugLog,r as config,t as colors,m as cleanupCertificates,d as cleanup,a as checkHosts,c as checkExistingCertificates,e as addHosts,l as DefaultPortManager};
package/dist/start.d.ts CHANGED
@@ -5,6 +5,6 @@ export declare function setupProxy(options: ProxySetupOptions): Promise<void>;
5
5
  export declare function startHttpRedirectServer(verbose?: boolean): void;
6
6
  export declare function startProxy(options: ProxyOption): void;
7
7
  export declare function startProxies(options?: ProxyOptions): Promise<void>;
8
- declare type AnyServerType = http.Server | https.Server | http2.Http2SecureServer
9
- declare type AnyIncomingMessage = http.IncomingMessage | http2.Http2ServerRequest
10
- declare type AnyServerResponse = http.ServerResponse | http2.Http2ServerResponse
8
+ declare type AnyServerType = http.Server | https.Server | http2.Http2SecureServer;
9
+ declare type AnyIncomingMessage = http.IncomingMessage | http2.Http2ServerRequest;
10
+ declare type AnyServerResponse = http.ServerResponse | http2.Http2ServerResponse;
package/dist/types.d.ts CHANGED
@@ -5,10 +5,16 @@ export declare interface StartOptions {
5
5
  cwd?: string
6
6
  env?: Record<string, string>
7
7
  }
8
+ export declare interface PathRewrite {
9
+ from: string
10
+ to: string
11
+ stripPrefix?: boolean
12
+ }
8
13
  export declare interface BaseProxyConfig {
9
14
  from: string
10
15
  to: string
11
16
  start?: StartOptions
17
+ pathRewrites?: PathRewrite[]
12
18
  }
13
19
  export declare interface CleanupConfig {
14
20
  domains: string[]
@@ -28,11 +34,9 @@ export declare interface SharedProxyConfig {
28
34
  changeOrigin?: boolean
29
35
  regenerateUntrustedCerts?: boolean
30
36
  }
31
- export declare interface SingleProxyConfig extends BaseProxyConfig, SharedProxyConfig {
32
-
33
- }
37
+ export declare interface SingleProxyConfig extends BaseProxyConfig, SharedProxyConfig {}
34
38
  export declare interface MultiProxyConfig extends SharedProxyConfig {
35
- proxies: Array<BaseProxyConfig & { cleanUrls: boolean }>
39
+ proxies: Array<BaseProxyConfig & { cleanUrls: boolean, pathRewrites?: PathRewrite[] }>
36
40
  }
37
41
  export declare interface SSLConfig {
38
42
  key: string
@@ -51,11 +55,11 @@ export declare interface PortManager {
51
55
  usedPorts: Set<number>
52
56
  getNextAvailablePort: (startPort: number) => Promise<number>
53
57
  }
54
- export type BaseProxyOptions = Partial<BaseProxyConfig>
55
- export type CleanupOptions = Partial<CleanupConfig>
56
- export type SharedProxyOptions = Partial<SharedProxyConfig>
57
- export type ProxyConfig = SingleProxyConfig
58
- export type ProxyConfigs = SingleProxyConfig | MultiProxyConfig
59
- export type BaseProxyOption = Partial<BaseProxyConfig>
60
- export type ProxyOption = Partial<SingleProxyConfig>
61
- export type ProxyOptions = Partial<SingleProxyConfig> | Partial<MultiProxyConfig>
58
+ export type BaseProxyOptions = Partial<BaseProxyConfig>;
59
+ export type CleanupOptions = Partial<CleanupConfig>;
60
+ export type SharedProxyOptions = Partial<SharedProxyConfig>;
61
+ export type ProxyConfig = SingleProxyConfig;
62
+ export type ProxyConfigs = SingleProxyConfig | MultiProxyConfig;
63
+ export type BaseProxyOption = Partial<BaseProxyConfig>;
64
+ export type ProxyOption = Partial<SingleProxyConfig>;
65
+ export type ProxyOptions = Partial<SingleProxyConfig> | Partial<MultiProxyConfig>;
package/dist/utils.d.ts CHANGED
@@ -34,4 +34,4 @@ export declare function safeDeleteFile(filePath: string, verbose?: boolean): Pro
34
34
  declare interface RootCA {
35
35
  certificate: string
36
36
  privateKey: string
37
- }
37
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@stacksjs/rpx",
3
3
  "type": "module",
4
- "version": "0.11.0",
4
+ "version": "0.11.3",
5
5
  "description": "A modern and smart reverse proxy.",
6
6
  "author": "Chris Breuer <chris@stacksjs.org>",
7
7
  "license": "MIT",
@@ -27,9 +27,19 @@
27
27
  "exports": {
28
28
  ".": {
29
29
  "types": "./dist/index.d.ts",
30
+ "bun": "./src/index.ts",
30
31
  "import": "./dist/src/index.js"
31
32
  }
32
33
  },
34
+ "publishConfig": {
35
+ "exports": {
36
+ ".": {
37
+ "types": "./dist/index.d.ts",
38
+ "bun": "./dist/src/index.js",
39
+ "import": "./dist/src/index.js"
40
+ }
41
+ }
42
+ },
33
43
  "module": "./dist/src/index.js",
34
44
  "types": "./dist/index.d.ts",
35
45
  "bin": {
@@ -65,11 +75,10 @@
65
75
  "zip:darwin-arm64": "zip -j bin/rpx-darwin-arm64.zip bin/rpx-darwin-arm64"
66
76
  },
67
77
  "devDependencies": {
68
- "@stacksjs/tlsx": "^0.10.0",
78
+ "@stacksjs/clapp": "^0.2.0",
79
+ "@stacksjs/tlsx": "^0.13.0",
69
80
  "bun-plugin-dtsx": "^0.21.17",
70
81
  "bunfig": "^0.15.6",
71
- "cac": "^6.7.14",
72
- "consola": "^3.4.2",
73
82
  "typescript": "^5.9.3"
74
83
  },
75
84
  "simple-git-hooks": {
@@ -77,8 +86,5 @@
77
86
  },
78
87
  "lint-staged": {
79
88
  "*.{js,ts}": "bunx eslint . --fix"
80
- },
81
- "dependencies": {
82
- "picocolors": "^1.1.1"
83
89
  }
84
90
  }
@@ -1,2 +0,0 @@
1
- import{createRequire as k}from"node:module";var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var l=(a,b,c)=>{c=a!=null?g(h(a)):{};let d=b||!a||!a.__esModule?f(c,"default",{value:a,enumerable:!0}):c;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var m=(a,b)=>()=>(b||a((b={exports:{}}).exports,b),b.exports);var o=k(import.meta.url);
2
- export{l as N,m as O,o as P};