gdx 0.4.4 → 0.4.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/index.js +470 -464
- package/dist/workers/generic.worker.min.js +1 -0
- package/package.json +21 -20
- package/scripts/postinstall.cjs +272 -272
package/dist/index.js
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
import{createRequire as s_}from"node:module";var m_=Object.create;var{getPrototypeOf:p_,defineProperty:mQ,getOwnPropertyNames:u_}=Object;var d_=Object.prototype.hasOwnProperty;function c_(Z){return this[Z]}var l_,n_,DX=(Z,Y,Q)=>{var J=Z!=null&&typeof Z==="object";if(J){var q=Y?l_??=new WeakMap:n_??=new WeakMap,X=q.get(Z);if(X)return X}Q=Z!=null?m_(p_(Z)):{};let z=Y||!Z||!Z.__esModule?mQ(Q,"default",{value:Z,enumerable:!0}):Q;for(let W of u_(Z))if(!d_.call(z,W))mQ(z,W,{get:c_.bind(Z,W),enumerable:!0});if(J)q.set(Z,z);return z};var I6=(Z,Y)=>()=>(Y||Z((Y={exports:{}}).exports,Y),Y.exports);var o_=(Z)=>Z;function i_(Z,Y){this[Z]=o_.bind(null,Y)}var b4=(Z,Y)=>{for(var Q in Y)mQ(Z,Q,{get:Y[Q],enumerable:!0,configurable:!0,set:i_.bind(Y,Q)})};var j=(Z,Y)=>()=>(Z&&(Y=Z(Z=0)),Y);var W6=s_(import.meta.url);import{createRequire as a_}from"module";class MX{value;start;end;constructor(Z,Y,Q){this.value=Z,this.start=Y,this.end=Q}}class uQ{TF;IDF;TF_IDF;constructor(Z){this.TF=Z}}class jX{x;y;z;r;t;get unit(){return this.#Y}get dimension(){return this.#Q}#Y;#Q=0;constructor(Z,Y,Q=null){if(this.x=Z,this.y=Y,this.z=Q,Q)this.#Q=3;else if(Y)this.#Q=2;else if(Z)this.#Q=1}toPolarCoords(Z="r"){this.#Y=Z;let{r:Y,t:Q}=L.MathKit.toPolarCoords(this.x,this.y,Z);return this.r=Y,this.t=Q,this}toCartesianCoords(){if(!this.#Y&&this.x)return this;let{x:Z,y:Y}=L.MathKit.toCartesianCoords(this.r,this.t,this.#Y);return this.x=Z,this.y=Y,this}setUnit(Z){if(!Z||Z!="d"&&Z!="r")throw Error("unit must be 'r' or 'd', given: "+Z);if(this.#Y==Z)return;if(Z=="r")this.#Y=Z,this.t=L.MathKit.radians(this.t);else this.#Y=Z,this.t=L.MathKit.degrees(this.t)}}class _X{constructor(Z,Y,Q,J,q,X,z){this.x=Z,this.y=Y,this.f=Q,this.ymid=J,this.iterations=q,this.events=z,this.msg=X}_at(Z,Y){function Q(O){return O*O}let J,q,X,z,W,U,K,B,$,F;return J=this.x[Y],q=this.x[Y+1],z=this.y[Y],W=this.y[Y+1],K=q-J,X=J+0.5*K,U=this.ymid[Y],B=this.f[Y]-z*(1/(J-X)+2/(J-q)),$=this.f[Y+1]-W*(1/(q-X)+2/(q-J)),F=[Q(Z-q)*(Z-X)/Q(J-q)/(J-X),Q(Z-J)*Q(Z-q)/Q(J-X)/Q(q-X),Q(Z-J)*(Z-X)/Q(q-J)/(q-X),(Z-J)*Q(Z-q)*(Z-X)/Q(J-q)/(J-X),(Z-q)*Q(Z-J)*(Z-X)/Q(J-q)/(q-X)],z*F[0]+U*F[1]+W*F[2]+B*F[3]+$*F[4]}at(Z){let Y,Q,J;if(typeof Z!=="number"){let X=Z.length,z=Array(X);for(Y=X-1;Y!==-1;--Y)z[Y]=this.at(Z[Y]);return z}let q=this.x;Y=0,Q=q.length-1;while(Q-Y>1)if(J=Math.floor(0.5*(Y+Q)),q[J]<=Z)Y=J;else Q=J;return this._at(Z,Y)}}class U8{value;index;type;constructor(Z,Y,Q=-1){this.value=Z,this.type=Y,this.index=Q}valueOf(){return this.value}toString(){return this.value.toString()}}class S4{type;UPID=null;callback;constructor(Z,Y,Q=null){if(Q)this.type=1,this.UPID=Q;else this.type=Z;this.callback=Y}}function e_(Z){return Z==null||typeof Z=="number"||typeof Z=="string"||typeof Z=="boolean"||Z instanceof ArrayBuffer||Z instanceof MessagePort||Z instanceof ReadableStream||Z instanceof WritableStream||Z instanceof TransformStream}var r_,v4,t_,W8,pQ="[#*0-9]\\uFE0F?\\u20E3|©\\uFE0F?|[®\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA]\\uFE0F?|[\\u231A\\u231B]|[\\u2328\\u23CF]\\uFE0F?|[\\u23E9-\\u23EC]|[\\u23ED-\\u23EF]\\uFE0F?|\\u23F0|[\\u23F1\\u23F2]\\uFE0F?|\\u23F3|[\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC]\\uFE0F?|[\\u25FD\\u25FE]|[\\u2600-\\u2604\\u260E\\u2611]\\uFE0F?|[\\u2614\\u2615]|\\u2618\\uFE0F?|\\u261D(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642]\\uFE0F?|[\\u2648-\\u2653]|[\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E]\\uFE0F?|\\u267F|\\u2692\\uFE0F?|\\u2693|[\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0]\\uFE0F?|\\u26A1|\\u26A7\\uFE0F?|[\\u26AA\\u26AB]|[\\u26B0\\u26B1]\\uFE0F?|[\\u26BD\\u26BE\\u26C4\\u26C5]|\\u26C8\\uFE0F?|\\u26CE|[\\u26CF\\u26D1\\u26D3]\\uFE0F?|\\u26D4|\\u26E9\\uFE0F?|\\u26EA|[\\u26F0\\u26F1]\\uFE0F?|[\\u26F2\\u26F3]|\\u26F4\\uFE0F?|\\u26F5|[\\u26F7\\u26F8]\\uFE0F?|\\u26F9(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uFE0F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\u26FA\\u26FD]|\\u2702\\uFE0F?|\\u2705|[\\u2708\\u2709]\\uFE0F?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|\\u270F\\uFE0F?|[\\u2712\\u2714\\u2716\\u271D\\u2721]\\uFE0F?|\\u2728|[\\u2733\\u2734\\u2744\\u2747]\\uFE0F?|[\\u274C\\u274E\\u2753-\\u2755\\u2757]|\\u2763\\uFE0F?|\\u2764(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uFE0F(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?)?|[\\u2795-\\u2797]|\\u27A1\\uFE0F?|[\\u27B0\\u27BF]|[\\u2934\\u2935\\u2B05-\\u2B07]\\uFE0F?|[\\u2B1B\\u2B1C\\u2B50\\u2B55]|[\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|\\uD83C(?:[\\uDC04\\uDCCF]|[\\uDD70\\uDD71\\uDD7E\\uDD7F]\\uFE0F?|[\\uDD8E\\uDD91-\\uDD9A]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDE01|\\uDE02\\uFE0F?|[\\uDE1A\\uDE2F\\uDE32-\\uDE36]|\\uDE37\\uFE0F?|[\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20]|[\\uDF21\\uDF24-\\uDF2C]\\uFE0F?|[\\uDF2D-\\uDF35]|\\uDF36\\uFE0F?|[\\uDF37-\\uDF7C]|\\uDF7D\\uFE0F?|[\\uDF7E-\\uDF84]|\\uDF85(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDF86-\\uDF93]|[\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F]\\uFE0F?|[\\uDFA0-\\uDFC1]|\\uDFC2(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDFC5\\uDFC6]|\\uDFC7(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC8\\uDFC9]|\\uDFCA(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDFCB\\uDFCC](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uFE0F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDFCD\\uDFCE]\\uFE0F?|[\\uDFCF-\\uDFD3]|[\\uDFD4-\\uDFDF]\\uFE0F?|[\\uDFE0-\\uDFF0]|\\uDFF3(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08)|\\uFE0F(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?)?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?|[\\uDFF5\\uDFF7]\\uFE0F?|[\\uDFF8-\\uDFFF])|\\uD83D(?:[\\uDC00-\\uDC07]|\\uDC08(?:\\u200D\\u2B1B)?|[\\uDC09-\\uDC14]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|[\\uDC16-\\uDC3A]|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|[\\uDC3C-\\uDC3E]|\\uDC3F\\uFE0F?|\\uDC40|\\uDC41(?:\\u200D\\uD83D\\uDDE8\\uFE0F?|\\uFE0F(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?)?|[\\uDC42\\uDC43](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC44\\uDC45]|[\\uDC46-\\uDC50](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC51-\\uDC65]|[\\uDC66\\uDC67](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92])|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92])|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?))?|\\uDC6A|[\\uDC6B-\\uDC6D](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC6E(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDC70\\uDC71](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC72(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC73(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDC74-\\uDC76](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC77(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC78(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC79-\\uDC7B]|\\uDC7C(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC7D-\\uDC80]|[\\uDC81\\uDC82](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC83(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC84|\\uDC85(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC86\\uDC87](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDC88-\\uDC8E]|\\uDC8F(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC90|\\uDC91(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC92-\\uDCA9]|\\uDCAA(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDCAB-\\uDCFC]|\\uDCFD\\uFE0F?|[\\uDCFF-\\uDD3D]|[\\uDD49\\uDD4A]\\uFE0F?|[\\uDD4B-\\uDD4E\\uDD50-\\uDD67]|[\\uDD6F\\uDD70\\uDD73]\\uFE0F?|\\uDD74(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|\\uDD75(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uFE0F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDD76-\\uDD79]\\uFE0F?|\\uDD7A(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD87\\uDD8A-\\uDD8D]\\uFE0F?|\\uDD90(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDD95\\uDD96](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDA4|[\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA]\\uFE0F?|[\\uDDFB-\\uDE2D]|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|[\\uDE2F-\\uDE34]|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|[\\uDE37-\\uDE44]|[\\uDE45-\\uDE47](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDE48-\\uDE4A]|\\uDE4B(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDE4C(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDE4D\\uDE4E](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDE4F(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDE80-\\uDEA2]|\\uDEA3(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDEA4-\\uDEB3]|[\\uDEB4-\\uDEB6](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDEB7-\\uDEBF]|\\uDEC0(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDEC1-\\uDEC5]|\\uDECB\\uFE0F?|\\uDECC(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDECD-\\uDECF]\\uFE0F?|[\\uDED0-\\uDED2\\uDED5-\\uDED7]|[\\uDEE0-\\uDEE5\\uDEE9]\\uFE0F?|[\\uDEEB\\uDEEC]|[\\uDEF0\\uDEF3]\\uFE0F?|[\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB])|\\uD83E(?:\\uDD0C(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD0D\\uDD0E]|\\uDD0F(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD10-\\uDD17]|[\\uDD18-\\uDD1C](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDD1D|[\\uDD1E\\uDD1F](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD20-\\uDD25]|\\uDD26(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDD27-\\uDD2F]|[\\uDD30-\\uDD34](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDD35(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDD36(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD37-\\uDD39](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDD3A|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD3D\\uDD3E](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDD3F-\\uDD45\\uDD47-\\uDD76]|\\uDD77(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD78\\uDD7A-\\uDDB4]|[\\uDDB5\\uDDB6](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDB7|[\\uDDB8\\uDDB9](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDDBA|\\uDDBB(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDDBC-\\uDDCB]|[\\uDDCD-\\uDDCF](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDDD0|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?))?|[\\uDDD2\\uDDD3](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD4(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDDD5(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDDD6-\\uDDDD](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])",L,Hy,NX,Wy,H7,Uy,IX,Ky,By,e0,$y,Fy,LX,hZ,Vy,Oy,Dy,wX,My,jy,_y,Ny,o,Iy,W7,s0,Ly,wy,Ay,Gy,Cy,Ry,Ty,ky,Ey,v6,xy,Py,by,vy,Sy,yy,fy,hy,gy,my,AX,py,uy,dy,y4,cy,GX,Z6,f4,M0,ly,ny,oy,iy,sy,dQ,ay,ry,ty,ey,Zf,Yf,Qf,Jf,qf,Xf,CX,zf,RX,Hf,Wf,Uf,h4,Kf,y0,K8,TX,Bf,$f,t,Ff,Vf,Of,Df,Mf,L6,jf,_f,u;var z0=j(()=>{r_=a_(import.meta.url),v4=typeof window>"u"||typeof process<"u",t_={dgram:null,worker_threads:null,os:null,fs:null,mathjs:null},W8={consoleTimeInstances:null};L={_modules:t_,arrFindLast(Z,Y){for(let Q=Z.length-1;Q>=0;Q--)if(Y(Z[Q],Q,Z))return Z[Q];return},arrToString(Z,Y={}){let{maxDepth:Q=4,indent:J=3,maxRow:q=10,maxCol:X=20,color:z=!1,defColor:W=void 0,noHeader:U=!1}=Y;if(Q<1)Q=1;let K={color:z,defColor:W},B=L.getDimensions(Z,"max"),$=B.length*0.4,F=typeof J=="number"?" ".repeat(J):J,O=null;if(z)O={magenta:L.ncc(11550650),gray:L.ncc(4802889),_default:L.ncc(W)};if(!U&&(!(Z instanceof Array)||B.length>2||Math.max(...B)>5))return _(Z)+V(Z,0);else return V(Z,0);function V(N,w,G=0){let I="";if(w>Q-1)if(z)return O.gray+`... [${D(N)||"Array"}]`+O._default;else return`... [${D(N)||"Array"}]`;if(!L.isArrayLike(N))return I+L.yuString(N,K);let A;if(w>$)A=L.getDimensions(N,"max");else A=B.slice(w);let x=B[w+1]!=null&&(A[2]!=null||A[1]>2)&&w<Q-1,T=G?F.repeat(G):"",S=T+F,y=x?`[
|
|
2
|
-
`+S:"[",g=
|
|
3
|
-
`+T+"]":"]",
|
|
4
|
-
`+S,z)I+=
|
|
5
|
-
`+S:", "}return I+=g,I}function
|
|
6
|
-
`);else Y=
|
|
7
|
-
`),Y=
|
|
8
|
-
`),W++}}return Y;function q(z){let W=new RegExp(/[{[]/),U=new RegExp(/[}\]]/);if(W.test(z))return 1;if(U.test(z))return 0;return null}function X(z,W){let U=1/0,K;for(let B=0,$=z[B];B<z.length;$=z[++B]){let
|
|
1
|
+
import{createRequire as FN}from"node:module";var qN=Object.create;var{getPrototypeOf:XN,defineProperty:oQ,getOwnPropertyNames:zN}=Object;var HN=Object.prototype.hasOwnProperty;function WN(Z){return this[Z]}var UN,KN,RX=(Z,Y,Q)=>{var J=Z!=null&&typeof Z==="object";if(J){var q=Y?UN??=new WeakMap:KN??=new WeakMap,X=q.get(Z);if(X)return X}Q=Z!=null?qN(XN(Z)):{};let z=Y||!Z||!Z.__esModule?oQ(Q,"default",{value:Z,enumerable:!0}):Q;for(let W of zN(Z))if(!HN.call(z,W))oQ(z,W,{get:WN.bind(Z,W),enumerable:!0});if(J)q.set(Z,z);return z};var L6=(Z,Y)=>()=>(Y||Z((Y={exports:{}}).exports,Y),Y.exports);var BN=(Z)=>Z;function $N(Z,Y){this[Z]=BN.bind(null,Y)}var y8=(Z,Y)=>{for(var Q in Y)oQ(Z,Q,{get:Y[Q],enumerable:!0,configurable:!0,set:$N.bind(Y,Q)})};var N=(Z,Y)=>()=>(Z&&(Y=Z(Z=0)),Y);var U6=FN(import.meta.url);import{createRequire as VN}from"module";class TX{value;start;end;constructor(Z,Y,Q){this.value=Z,this.start=Y,this.end=Q}}class sQ{TF;IDF;TF_IDF;constructor(Z){this.TF=Z}}class kX{x;y;z;r;t;get unit(){return this.#Y}get dimension(){return this.#Q}#Y;#Q=0;constructor(Z,Y,Q=null){if(this.x=Z,this.y=Y,this.z=Q,Q)this.#Q=3;else if(Y)this.#Q=2;else if(Z)this.#Q=1}toPolarCoords(Z="r"){this.#Y=Z;let{r:Y,t:Q}=w.MathKit.toPolarCoords(this.x,this.y,Z);return this.r=Y,this.t=Q,this}toCartesianCoords(){if(!this.#Y&&this.x)return this;let{x:Z,y:Y}=w.MathKit.toCartesianCoords(this.r,this.t,this.#Y);return this.x=Z,this.y=Y,this}setUnit(Z){if(!Z||Z!="d"&&Z!="r")throw Error("unit must be 'r' or 'd', given: "+Z);if(this.#Y==Z)return;if(Z=="r")this.#Y=Z,this.t=w.MathKit.radians(this.t);else this.#Y=Z,this.t=w.MathKit.degrees(this.t)}}class EX{constructor(Z,Y,Q,J,q,X,z){this.x=Z,this.y=Y,this.f=Q,this.ymid=J,this.iterations=q,this.events=z,this.msg=X}_at(Z,Y){function Q(D){return D*D}let J,q,X,z,W,U,K,B,$,V;return J=this.x[Y],q=this.x[Y+1],z=this.y[Y],W=this.y[Y+1],K=q-J,X=J+0.5*K,U=this.ymid[Y],B=this.f[Y]-z*(1/(J-X)+2/(J-q)),$=this.f[Y+1]-W*(1/(q-X)+2/(q-J)),V=[Q(Z-q)*(Z-X)/Q(J-q)/(J-X),Q(Z-J)*Q(Z-q)/Q(J-X)/Q(q-X),Q(Z-J)*(Z-X)/Q(q-J)/(q-X),(Z-J)*Q(Z-q)*(Z-X)/Q(J-q)/(J-X),(Z-q)*Q(Z-J)*(Z-X)/Q(J-q)/(q-X)],z*V[0]+U*V[1]+W*V[2]+B*V[3]+$*V[4]}at(Z){let Y,Q,J;if(typeof Z!=="number"){let X=Z.length,z=Array(X);for(Y=X-1;Y!==-1;--Y)z[Y]=this.at(Z[Y]);return z}let q=this.x;Y=0,Q=q.length-1;while(Q-Y>1)if(J=Math.floor(0.5*(Y+Q)),q[J]<=Z)Y=J;else Q=J;return this._at(Z,Y)}}class K4{value;index;type;constructor(Z,Y,Q=-1){this.value=Z,this.type=Y,this.index=Q}valueOf(){return this.value}toString(){return this.value.toString()}}class h8{type;UPID=null;callback;constructor(Z,Y,Q=null){if(Q)this.type=1,this.UPID=Q;else this.type=Z;this.callback=Y}}function MN(Z){return Z==null||typeof Z=="number"||typeof Z=="string"||typeof Z=="boolean"||Z instanceof ArrayBuffer||Z instanceof MessagePort||Z instanceof ReadableStream||Z instanceof WritableStream||Z instanceof TransformStream}var ON,f8,DN,U4,iQ="[#*0-9]\\uFE0F?\\u20E3|©\\uFE0F?|[®\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA]\\uFE0F?|[\\u231A\\u231B]|[\\u2328\\u23CF]\\uFE0F?|[\\u23E9-\\u23EC]|[\\u23ED-\\u23EF]\\uFE0F?|\\u23F0|[\\u23F1\\u23F2]\\uFE0F?|\\u23F3|[\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC]\\uFE0F?|[\\u25FD\\u25FE]|[\\u2600-\\u2604\\u260E\\u2611]\\uFE0F?|[\\u2614\\u2615]|\\u2618\\uFE0F?|\\u261D(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642]\\uFE0F?|[\\u2648-\\u2653]|[\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E]\\uFE0F?|\\u267F|\\u2692\\uFE0F?|\\u2693|[\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0]\\uFE0F?|\\u26A1|\\u26A7\\uFE0F?|[\\u26AA\\u26AB]|[\\u26B0\\u26B1]\\uFE0F?|[\\u26BD\\u26BE\\u26C4\\u26C5]|\\u26C8\\uFE0F?|\\u26CE|[\\u26CF\\u26D1\\u26D3]\\uFE0F?|\\u26D4|\\u26E9\\uFE0F?|\\u26EA|[\\u26F0\\u26F1]\\uFE0F?|[\\u26F2\\u26F3]|\\u26F4\\uFE0F?|\\u26F5|[\\u26F7\\u26F8]\\uFE0F?|\\u26F9(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uFE0F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\u26FA\\u26FD]|\\u2702\\uFE0F?|\\u2705|[\\u2708\\u2709]\\uFE0F?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270C\\u270D](?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|\\u270F\\uFE0F?|[\\u2712\\u2714\\u2716\\u271D\\u2721]\\uFE0F?|\\u2728|[\\u2733\\u2734\\u2744\\u2747]\\uFE0F?|[\\u274C\\u274E\\u2753-\\u2755\\u2757]|\\u2763\\uFE0F?|\\u2764(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79)|\\uFE0F(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?)?|[\\u2795-\\u2797]|\\u27A1\\uFE0F?|[\\u27B0\\u27BF]|[\\u2934\\u2935\\u2B05-\\u2B07]\\uFE0F?|[\\u2B1B\\u2B1C\\u2B50\\u2B55]|[\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|\\uD83C(?:[\\uDC04\\uDCCF]|[\\uDD70\\uDD71\\uDD7E\\uDD7F]\\uFE0F?|[\\uDD8E\\uDD91-\\uDD9A]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDE01|\\uDE02\\uFE0F?|[\\uDE1A\\uDE2F\\uDE32-\\uDE36]|\\uDE37\\uFE0F?|[\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20]|[\\uDF21\\uDF24-\\uDF2C]\\uFE0F?|[\\uDF2D-\\uDF35]|\\uDF36\\uFE0F?|[\\uDF37-\\uDF7C]|\\uDF7D\\uFE0F?|[\\uDF7E-\\uDF84]|\\uDF85(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDF86-\\uDF93]|[\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F]\\uFE0F?|[\\uDFA0-\\uDFC1]|\\uDFC2(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC3\\uDFC4](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDFC5\\uDFC6]|\\uDFC7(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC8\\uDFC9]|\\uDFCA(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDFCB\\uDFCC](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uFE0F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDFCD\\uDFCE]\\uFE0F?|[\\uDFCF-\\uDFD3]|[\\uDFD4-\\uDFDF]\\uFE0F?|[\\uDFE0-\\uDFF0]|\\uDFF3(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08)|\\uFE0F(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?)?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?|[\\uDFF5\\uDFF7]\\uFE0F?|[\\uDFF8-\\uDFFF])|\\uD83D(?:[\\uDC00-\\uDC07]|\\uDC08(?:\\u200D\\u2B1B)?|[\\uDC09-\\uDC14]|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|[\\uDC16-\\uDC3A]|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|[\\uDC3C-\\uDC3E]|\\uDC3F\\uFE0F?|\\uDC40|\\uDC41(?:\\u200D\\uD83D\\uDDE8\\uFE0F?|\\uFE0F(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?)?|[\\uDC42\\uDC43](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC44\\uDC45]|[\\uDC46-\\uDC50](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC51-\\uDC65]|[\\uDC66\\uDC67](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92])|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92])|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?))?|\\uDC6A|[\\uDC6B-\\uDC6D](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC6E(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDC70\\uDC71](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC72(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC73(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDC74-\\uDC76](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC77(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC78(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC79-\\uDC7B]|\\uDC7C(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC7D-\\uDC80]|[\\uDC81\\uDC82](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDC83(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC84|\\uDC85(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC86\\uDC87](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDC88-\\uDC8E]|\\uDC8F(?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDC90|\\uDC91(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC92-\\uDCA9]|\\uDCAA(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDCAB-\\uDCFC]|\\uDCFD\\uFE0F?|[\\uDCFF-\\uDD3D]|[\\uDD49\\uDD4A]\\uFE0F?|[\\uDD4B-\\uDD4E\\uDD50-\\uDD67]|[\\uDD6F\\uDD70\\uDD73]\\uFE0F?|\\uDD74(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|\\uDD75(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uFE0F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDD76-\\uDD79]\\uFE0F?|\\uDD7A(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD87\\uDD8A-\\uDD8D]\\uFE0F?|\\uDD90(?:\\uD83C[\\uDFFB-\\uDFFF]|\\uFE0F)?|[\\uDD95\\uDD96](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDA4|[\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA]\\uFE0F?|[\\uDDFB-\\uDE2D]|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|[\\uDE2F-\\uDE34]|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|[\\uDE37-\\uDE44]|[\\uDE45-\\uDE47](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDE48-\\uDE4A]|\\uDE4B(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDE4C(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDE4D\\uDE4E](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDE4F(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDE80-\\uDEA2]|\\uDEA3(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDEA4-\\uDEB3]|[\\uDEB4-\\uDEB6](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDEB7-\\uDEBF]|\\uDEC0(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDEC1-\\uDEC5]|\\uDECB\\uFE0F?|\\uDECC(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDECD-\\uDECF]\\uFE0F?|[\\uDED0-\\uDED2\\uDED5-\\uDED7]|[\\uDEE0-\\uDEE5\\uDEE9]\\uFE0F?|[\\uDEEB\\uDEEC]|[\\uDEF0\\uDEF3]\\uFE0F?|[\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB])|\\uD83E(?:\\uDD0C(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD0D\\uDD0E]|\\uDD0F(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD10-\\uDD17]|[\\uDD18-\\uDD1C](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDD1D|[\\uDD1E\\uDD1F](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD20-\\uDD25]|\\uDD26(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDD27-\\uDD2F]|[\\uDD30-\\uDD34](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDD35(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDD36(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD37-\\uDD39](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDD3A|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD3D\\uDD3E](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDD3F-\\uDD45\\uDD47-\\uDD76]|\\uDD77(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD78\\uDD7A-\\uDDB4]|[\\uDDB5\\uDDB6](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDB7|[\\uDDB8\\uDDB9](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDDBA|\\uDDBB(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDDBC-\\uDDCB]|[\\uDDCD-\\uDDCF](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDDD0|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF]|[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])))?))?|[\\uDDD2\\uDDD3](?:\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDD4(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|\\uDDD5(?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDDD6-\\uDDDD](?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDE0-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])",w,yy,PX,fy,K7,hy,xX,gy,my,Q6,py,uy,bX,mZ,dy,cy,ly,vX,ny,oy,iy,sy,o,ay,B7,r0,ry,ty,ey,Zf,Yf,Qf,Jf,qf,Xf,S6,zf,Hf,Wf,Uf,Kf,Bf,$f,Ff,Vf,Of,SX,Df,Mf,jf,g8,_f,yX,o0,m8,M0,Nf,If,Lf,wf,Af,aQ,Gf,Cf,Rf,Tf,kf,Ef,Pf,xf,bf,vf,fX,Sf,hX,yf,ff,hf,p8,gf,b0,B4,gX,mf,pf,t,uf,df,cf,lf,nf,w6,of,sf,u;var z0=N(()=>{ON=VN(import.meta.url),f8=typeof window>"u"||typeof process<"u",DN={dgram:null,worker_threads:null,os:null,fs:null,mathjs:null},U4={consoleTimeInstances:null};w={_modules:DN,arrFindLast(Z,Y){for(let Q=Z.length-1;Q>=0;Q--)if(Y(Z[Q],Q,Z))return Z[Q];return},arrToString(Z,Y={}){let{maxDepth:Q=4,indent:J=3,maxRow:q=10,maxCol:X=20,color:z=!1,defColor:W=void 0,noHeader:U=!1}=Y;if(Q<1)Q=1;let K={color:z,defColor:W},B=w.getDimensions(Z,"max"),$=B.length*0.4,V=typeof J=="number"?" ".repeat(J):J,D=null;if(z)D={magenta:w.ncc(11550650),gray:w.ncc(4802889),_default:w.ncc(W)};if(!U&&(!(Z instanceof Array)||B.length>2||Math.max(...B)>5))return j(Z)+F(Z,0);else return F(Z,0);function F(_,L,A=0){let I="";if(L>Q-1)if(z)return D.gray+`... [${O(_)||"Array"}]`+D._default;else return`... [${O(_)||"Array"}]`;if(!w.isArrayLike(_))return I+w.yuString(_,K);let G;if(L>$)G=w.getDimensions(_,"max");else G=B.slice(L);let P=B[L+1]!=null&&(G[2]!=null||G[1]>2)&&L<Q-1,T=A?V.repeat(A):"",S=T+V,y=P?`[
|
|
2
|
+
`+S:"[",g=P?`
|
|
3
|
+
`+T+"]":"]",x=_.length;I+=y;for(let c=0;c<x;c++){if(w.isArrayLike(_[c]))I+=O(_[c])+F(_[c],L+1,P?A+1:A);else I+=w.yuString(_[c],K);if(P){if(c>=q-2){if(I+=`,
|
|
4
|
+
`+S,z)I+=D.gray+"... ("+(x-q+1)+" more)"+D._default;else I+="... ("+(x-q+1)+" more)";break}}else if(c>=X-2){if(z)I+=", "+D.gray+"... ("+(x-X+1)+" more)"+D._default;else I+=", ... ("+(x-X+1)+" more)";break}if(c!=x-1)I+=P?`,
|
|
5
|
+
`+S:", "}return I+=g,I}function O(_){if(_ instanceof Array)return"";if(z)return D.magenta+`${_.constructor.name}: `+D._default;else return`${_.constructor.name}: `}function j(_){if(!w.isArrayLike(_))return"";if(z)return D.magenta+`${_.constructor.name}(${B}): `+D._default;else return`${_.constructor.name}(${B}): `}},argvHasFlag(Z,Y=process?.argv){if(!Y||typeof Z!="string")return!1;let Q=Z.startsWith("-")?"":Z.length===1?"-":"--",J=Y.indexOf(Q+Z),q=Y.indexOf("--");return J!==-1&&(q===-1||J<q)},async asyncSleep(Z){return new Promise((Q)=>{if(!Z||Z<4||typeof Z!="number")Q();setTimeout(Q,Z)})},beautifyJson(Z){Z=Z.replace(/\s/,"");let Y=Z+"",Q=w.getMatchAllIndexes(Z.matchAll(/[{[]/g)).sort((z,W)=>z-W),J=w.getMatchAllIndexes(Z.matchAll(/[}\]]/g)).sort((z,W)=>z-W);for(let z=0,W=0,U=0;U<Z.length;){let K=Q[X(Q,U)],B=J[X(J,U)];if(K=K==null?1/0:K,K<B)z++,U=K+1;else z--,U=B+1;let $=Q[X(Q,U)],V=J[X(J,U)],D=$<V?$:V,F="".padEnd(z,"\t");if(q(Y[U+W-1]))Y=w.strSplice(Y,U+W,0,`
|
|
6
|
+
`);else Y=w.strSplice(Y,U+W-1,0,`
|
|
7
|
+
`),Y=w.strSplice(Y,U+W,0,F),W+=F.length;W++;let O=Z.substring(U,D),j=w.getMatchAllIndexes(O.matchAll(/"/g)).filter((L)=>L!=0?O[L-1]!="\\":!0);if(j.length%2!=0)throw Error('cannot match Double-Quote correctly from string: "'+O+'"');let _=w.getMatchAllIndexes(O.matchAll(/[,]/g)).filter((L)=>{for(let A=0;A<j.length;A+=2)if(L>j[A]&&L<j[A+1])return!1;return!0});for(let L=0;L<_.length+1;L++){let A=L==0?U+W:_[L-1]+W+U+1;if(q(Y[A-1])==null)Y=w.strSplice(Y,A,0,F),W+=F.length;if(!Y[_[L]+W+U])break;Y=w.strSplice(Y,_[L]+1+W+U,0,`
|
|
8
|
+
`),W++}}return Y;function q(z){let W=new RegExp(/[{[]/),U=new RegExp(/[}\]]/);if(W.test(z))return 1;if(U.test(z))return 0;return null}function X(z,W){let U=1/0,K;for(let B=0,$=z[B];B<z.length;$=z[++B]){let V=$-W;if(!V)return B;if(V<0)continue;if(V<U)U=V,K=B}return K}},beforeExit(Z,Y=!1){if(Y)process.stdin.resume();let Q=!1,J=!1;["exit","SIGINT","SIGUSR1","SIGUSR2","uncaughtException","SIGTERM"].forEach((q)=>{process.on(q,(...X)=>{if(["SIGINT","SIGUSR1","SIGUSR2"].includes(q))if(Q)console.log("Forcefully Exiting..."),process.exit(1);else Q=!0;if(J)return;else J=!0;let z=Z(q,...X);if(z instanceof Promise){z.then(()=>{if(q!=="exit"&&Y)process.exit(0)}).catch((W)=>{if(console.error("Error in beforeExit callback:",W),q!=="exit"&&Y)process.exit(1)});return}if(q!=="exit"&&Y)process.exit(0)})})},changeDateTimezone(Z,Y){let Q=new Date(`${Z.toLocaleString("en-US",{timeZone:Y})}`),J=Z.getTime()-Q.getTime();return new Date(Z.getTime()-J)},charTypeAt(Z,Y){let Q=w.CONSTS.UNICODES_RANGE_TABLE;if(Z<0)Z=Y.length+Z;let J=Y.charCodeAt(Z);if(isNaN(J))return null;for(let q=Q.length>>1,X=0;q>=0&&q<Q.length;X++){if(X>(Q.length>>1)+1)break;if(w.isArrayLike(Q[q].to)){for(let z=0;z<Q[q].to.length;z++)if(J>=Q[q].from[z]&&J<=Q[q].to[z])return Q[q].type;if(J>Q[q].from[0])q++;else q--}else{if(J>=Q[q].from&&J<=Q[q].to)return Q[q].type;if(J>Q[q].from)q++;else q--}}return null},CheckCache:class Z{static#Y=null;static#Q=null;static#Z=null;static get supportsColor(){if(this.#Y==null)this.#Y=w.supportsColor();return this.#Y??0}static get supportsHyperlink(){if(this.#Q==null)this.#Q=w.supportsHyperlink();return this.#Q}static set supportsColor(Y){this.#Y=Y}static set supportsHyperlink(Y){this.#Q=Y}static get forceColor(){if(!f8)this.#Z=!1;if(this.#Z===void 0){let Y=process.env;if(w.argvHasFlag("no-color")||w.argvHasFlag("no-colors")||w.argvHasFlag("color=false"))this.#Z=!1;else if(w.argvHasFlag("color")||w.argvHasFlag("colors")||w.argvHasFlag("color=true")||w.argvHasFlag("color=always"))this.#Z=!0;if("FORCE_COLOR"in Y)this.#Z=Y.FORCE_COLOR.length===0||parseInt(Y.FORCE_COLOR,10)!==0}return this.#Z}static set forceColor(Y){this.#Z=Y}},cleanArr(Z,Y=null){if(Y&&Y instanceof Array)return Z.filter((Q)=>{return!Y.includes(Q)});if(Y!==null)return Z.filter((Q)=>{return Q!==Y});return Z.filter((Q)=>Q!==""&&Q!=="\r"&&!w.isEmptyArray(Q)&&!w.isEmptyObject(Q))},cleanComments(Z){return Z.replace(w.REGEXP.JSComments,(Y,Q)=>Q?"":Y)},cleanString(Z){return Z.normalize().replace(w.REGEXP.ANSICode,"")},CONSTS:Object.freeze({UNICODES_RANGE_TABLE:[Object.freeze({type:"generic.en.upper",regex:/[\x41-\x5a]/g,from:65,to:90}),Object.freeze({type:"generic.en.lower",regex:/[\x61-\x7a]/g,from:97,to:122}),Object.freeze({type:"generic.jp.full",regex:/[\u2E80-\u2FD5\u3400-\u4DB5\u4E00-\u9FCB\uF900-\uFA6A\u3000-\u303f\u3041-\u3096\u30a0-\u30ff\uFF00-\uFFEF]/g,from:new Int16Array([11904,13312,19968,63744,12288,12353,12448,65280]),to:new Int16Array([12245,19893,40907,64106,12351,12438,12543,65519])}),Object.freeze({type:"generic.cn.full",regex:/[\u4e00-\u9fff]/g,from:19968,to:40959}),Object.freeze({type:"generic.jp.half",regex:/[\uff5f-\uff9f]/g,from:65375,to:65439})],AsyncFunction:(async()=>{}).constructor,GeneratorFunction:function*(){}.constructor,AnsiColorCodes:Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",reset:"\x1B[0m",bright:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m","~italic":"\x1B[23m",underline:"\x1B[4m","~underline":"\x1B[24m",blink:"\x1B[5m","~blink":"\x1B[25m",invert:"\x1B[7m","~invert":"\x1B[27m",hidden:"\x1B[8m","~hidden":"\x1B[28m",strikethrough:"\x1B[9m","~strikethrough":"\x1B[29m",normal:"\x1B[22m",bgblack:"\x1B[40m",bgred:"\x1B[41m",bggreen:"\x1B[42m",bgyellow:"\x1B[43m",bgblue:"\x1B[44m",bgmagenta:"\x1B[45m",bgcyan:"\x1B[46m",bgwhite:"\x1B[47m"})}),Convert:{decimalColorToRGB(Z){return{r:Z>>16&255,g:Z>>8&255,b:Z&255}},basicColorFromRgb(Z){let Y=Z.r>127,Q=Z.g>127,J=Z.b>127;switch(Y+Q+J){case 3:return"white";case 0:return"black";case 2:if(!Y)return"cyan";else if(!Q)return"magenta";else if(!J)return"yellow";case 1:if(Y)return"red";else if(Q)return"green";else if(J)return"blue"}},_8bitColorFromRgb(Z){let{r:Y,g:Q,b:J}=Z;if(Y===Q&&Q===J){if(Y<8)return 16;if(Y>248)return 231;return Math.round((Y-8)/247*24)+232}let q=Math.round(Y/255*5),X=Math.round(Q/255*5),z=Math.round(J/255*5);return 16+36*q+6*X+z}},ConsoleTime:class Z{static lookbackLimit=100;static elapsedStart(Y){if(U4.consoleTimeInstances==null){U4.consoleTimeInstances=new Map([[Y,[w.getProcessTime()]]]);return}if(!U4.consoleTimeInstances.has(Y)){U4.consoleTimeInstances.set(Y,[w.getProcessTime()]);return}let Q=U4.consoleTimeInstances.get(Y);if(Q.unshift(w.getProcessTime()),this.lookbackLimit>0&&Q.length>=this.lookbackLimit)Q.pop()}static elapsedEnd(Y){if(!U4.consoleTimeInstances.has(Y))return;let Q=U4.consoleTimeInstances.get(Y),J=Q[0];Q[0]=w.getProcessTime()-J}static condense(Y){let Q=U4.consoleTimeInstances.get(Y);if(!Q)return null;let J=0;for(let q of Q)J+=q;return J/=Q.length,U4.consoleTimeInstances.delete(Y),{print(){console.log(Y+": "+w.toShortNum(J)+"s")},valueOf:()=>J,toString:()=>Y+": "+w.toShortNum(J)+"s",value:J}}},compareDate(Z,Y,Q,J="day"){if(!Z||!Q)return!1;let q=U(Z),X=U(Q),z=q.next(),W=X.next();do if(z.value!==W.value)switch(Y){case">":return z.value>W.value;case"<":return z.value<W.value;case">=":return z.value>=W.value;case"<=":return z.value<=W.value;default:return!1}while(!(z=q.next()).done&&!(W=X.next()).done);return Y[1]==="=";function*U(K){if(yield K.getFullYear(),J==="year")return;if(yield K.getMonth(),J==="month")return;yield K.getDate()}},DataScienceKit:{frequencyOf(Z){if(!Z||typeof Z!="string"&&!w.isArrayLike(Z))return new Map;let Y=[...new Set(Z)],Q=new Map(Y.map((J)=>[J,0]));for(let J of Z)Y.forEach((q)=>{if(q==J)Q.set(q,Q.get(q)+1)});return Q},LCS_of(Z,Y,Q=(J,q)=>J===q){if(!(Z?.length&&Y?.length))return[];let J=[],q=Y.length,X=Z.length;while(J.length<X)J.push(Array(q));for(let K=0;K<J.length;K++)for(let B=0;B<J[K].length;B++){if(Q(Z[K],Y[B])){let D=U(K-1,B-1);J[K][B]=[D+1,3];continue}let $=U(K,B-1),V=U(K-1,B);if($>V)J[K][B]=[$,2];else J[K][B]=[V,1]}let z=[];return W(X-1,q-1),z;function W(K,B){if(K<0||B<0)return;switch(J[K][B][1]){case 1:W(K-1,B);break;case 2:W(K,B-1);break;case 3:z.unshift(Z[K]),W(K-1,B-1);break}}function U(K,B){if(K<0||B<0)return 0;else return J[K][B][0]}},LCSLength_of(Z,Y,Q=(J,q)=>J===q){if(!(Z?.length&&Y?.length))return 0;let J=[],q=Y.length,X=Z.length;while(J.length<X)J.push(Array(q));for(let W=0;W<J.length;W++)for(let U=0;U<J[W].length;U++){if(Q(Z[W],Y[U])){let $=z(W-1,U-1);J[W][U]=[$+1,3];continue}let K=z(W,U-1),B=z(W-1,U);if(K>B)J[W][U]=[K,2];else J[W][U]=[B,1]}return J[X-1][q-1][0];function z(W,U){if(W<0||U<0)return 0;else return J[W][U][0]}},TFIDF_of(Z){let Y=Z.length,Q=Array(Y),J=new Map;for(let X=0;X<Y;X++){let z=Z[X].length,W=w.DataScienceKit.frequencyOf(Z[X]);Q[X]=new Map;for(let U=0;U<z;U++){if(!Q[X].has(Z[X][U]))Q[X].set(Z[X][U],new sQ(W.get(Z[X][U])/z));if(!J.has(Z[X][U]))J.set(Z[X][U],0)}}let q=[...J.keys()];for(let X=0;X<q.length;X++)for(let z of Z)if(z.includes(q[X]))J.set(q[X],J.get(q[X])+1);for(let[X,z]of J)J.set(X,Math.log10(Y/z));for(let X of Q)for(let[z,W]of X)W.IDF=J.get(z),W.TF_IDF=W.IDF*W.TF;return Q},TFIDF_extends(Z,Y){let Q=Z.concat(Array(Y.length)),J=new Map,q=Q.length;for(let z=0;z<q;z++){let W,U,K=!1,B=z-Z.length;if(!Q[z])K=!0,W=Y[B].length,U=w.DataScienceKit.frequencyOf(Y[B]),Q[z]=new Map;else W=Q[z].size;for(let $=0;$<W;$++){if(K&&!Q[z].has(Y[B][$])){if(Q[z].set(Y[B][$],new sQ(U.get(Y[B][$])/W)),!J.has(Y[B][$]))J.set(Y[B][$],0);continue}let V=[...Q[z].keys()][$];if(!J.has(V))J.set(V,0)}}let X=[...J.keys()];for(let z=0;z<X.length;z++)for(let W of Q)if(W.has(X[z]))J.set(X[z],J.get(X[z])+1);for(let[z,W]of J)J.set(z,Math.log10(q/W));for(let z of Q)for(let[W,U]of z)U.IDF=J.get(W),U.TF_IDF=U.IDF*U.TF;return Q},wagnerFischer_of(Z,Y,Q=(J,q)=>J===q){let J=[],q,X;for(q=0;q<=Z.length;q++)J[q]=[q];for(X=0;X<=Y.length;X++)J[0][X]=X;for(q=1;q<=Z.length;q++)for(X=1;X<=Y.length;X++){if(Q(Z[q-1],Y[X-1])){J[q][X]=J[q-1][X-1];continue}J[q][X]=Math.min(J[q-1][X-1]+1,Math.min(J[q][X-1]+1,J[q-1][X]+1))}return{distance:J[Z.length][Y.length],getOperations(){let z=J.length-1,W=J[0].length-1,U=[],K=new w.SafeTrue;while((z>0||W>0)&&K.True)switch(B(z,W,J)){case 2:U.push({type:"delete",index:z-1,value:Z[z-1]}),z--;break;case 0:U.push({type:"insert",index:z,value:Y[W-1]}),W--;break;case 1:if(J[z][W]!==J[z-1][W-1])U.push({type:"replace",index:z-1,value:Y[W-1]});z--,W--;break}return U;function B($,V,D){let F=[D[$][V-1],D[$-1][V-1],D[$-1][V]];if(V<=0)return 2;if($<=0)return 0;if(F[0]==F[1])if(F[2]==F[1])return 1;else return 0;let O=F[0],j=0;for(let _=1;_<F.length;_++)if(F[_]<O)O=F[_],j=_;return j}}}}},deferredFunc(Z,Y=200,Q=!1){let J=null;return function(...q){let X=!1;if(Q&&!J)Z(...q),X=!0;clearTimeout(J),J=setTimeout(()=>{if(J=null,!X)Z(...q)},Y)}},digitAt(Z,Y){try{return parseInt((Y+"").at(Z))}catch{return 0}},digitAtRange(Z,Y,Q){if(!Q)return;Z=Z<0?void 0:Z??void 0,Y=Y<0?void 0:Y??void 0;let J=(Q+"").slice(Z,Y);return parseInt(J.length?J:"0")},getDimensions(Z,Y="max"){let Q=[],J=Y==="min"?Math.min:Math.max,q=Y==="min"?1/0:0,X=q,z=[],W=0;if(!w.isArrayLike(Z))return Q;if(Q.push(Z.length),Y==="symmetric")U(Z,0);else K(Z,0,!0);return Q;function U(B,$){if(!w.isArrayLike(B?.[Q[$]-1]))return;Q.push(B[Q[$]-1].length),U(B[Q[$]-1],$+1)}function K(B,$,V=!1,D=[]){for(let F=0;F<Q[$];F++){if(!w.isArrayLike(B[F]))continue;if(B[F].length!=X){if(Y==="fixed"&&X!==q)throw Error(`Array length mismatched at depth ${$+1} position (${[...D,F].join(",")}):
|
|
9
9
|
expected length: ${X}
|
|
10
|
-
actual length: ${B[
|
|
11
|
-
Name: `,J)X+=
|
|
12
|
-
Code: `,J)X+=
|
|
13
|
-
Stack: `,J)X+=L.ncc(5592405)+Y.stack+L.ncc(q);else X+=Y.stack;return X}},escapeRegExp(Z){return Z.replace(/[[\]{}.*$^|\-?+,:\\]/g,"\\$&")},estimateStrComplexity(Z){if(L.hasEmojiEst(Z))return 2;let Q=!1;for(let q of L.CONSTS.UNICODES_RANGE_TABLE){if(!q.type.endsWith("full"))continue;if(Q=q.regex.test(Z))break}if(Q)return 1;if(L.REGEXP.ANSICode.test(Z))return 0;return-1},ex_length(Z,Y=0){if(typeof Z!=="string")throw TypeError("argument must be a string");if(Y<0)return Z.length;Z=L.cleanString(Z);let Q=Z.length;if(Y<1)return Q;let J=Z;for(let K of L.CONSTS.UNICODES_RANGE_TABLE){if(!K.type.endsWith("full"))continue;J=J.replace(K.regex,"")}let q=Q+(Q-J.length);if(Y<2)return q;let X=Z.match(L.REGEXP.EmojiEach)??[],z=0,W=0,U=/^\p{Emoji_Presentation}$/u;for(let K of X){if(!(K.includes("️")||U.test(K)))continue;z+=K.length,W++}return W*2+(q-z)},fileNameCleaner(Z,Y="_"){if(!Z||typeof Z!="string")throw Error("the given `rawName` isn't a string");return Z.trim().replace(/[|/*\\<>"?:]/g,Y)},fixFilePath(Z,Y="_"){if(!Z||!Z?.length)throw"path is either falsy or empty!";return Z.replace(/[:?"<>|*]/g,Y)},fixYTurl(Z){if(Z=Z||void 0,!Z)throw"url can't be falsy!!";if(Z.includes("youtu.be"))Z=Z.replace("https://youtu.be/","https://www.youtube.com/watch?v=");if(Z.includes("&list="))Z=Z.split("&list=")[0];if(Z.includes("?si="))Z=Z.split("?si=")[0];if(Z.includes("https")==!1)Z="https://www."+Z;return Z},fileTypeOf(Z){let Y=Z.slice(Z.lastIndexOf(".")+1).toLowerCase(),Q=Y=="jpg"||Y=="png"||Y=="svg"||Y=="jfif"||Y=="pbm"||Y=="pgm"||Y=="jpeg",J=Y=="txt"||Y=="bat"||Y=="text"||Y=="md"||Y=="json"||Y=="step"||Y=="js"||Y=="cs"||Y=="cpp"||Y=="gitignore"||Y=="java"||Y=="py"||Y=="config"||Y=="cfg"||Y=="ts"||Y=="env",q=Y=="exe"||Y=="vpk"||Y=="qc"||Y=="smd"||Y=="vmt"||Y=="vtf"||Y=="zip"||Y=="7z"||Y=="bin"||Y=="ipynb"||Y=="pyc"||Y=="jar",X=Y=="aiff"||Y=="aif"||Y=="aifc"||Y=="flac"||Y=="mp3"||Y=="mp4"||Y=="mp4a"||Y=="m4a"||Y=="mkv"||Y=="mov"||Y=="wav"||Y=="gif"||Y=="webm";if(Q)return"image";else if(J)return"text";else if(q)return"binary";else if(X)return"media";return null},getMatchAllIndexes(Z){if(!Z)return[];let Y=[];for(let Q of Z)Y.push(Q.index);return Y},getMatchAllResults(Z){if(!Z)return[];let Y=[];for(let Q of Z)Y.push(new MX(Q[0],Q.index,Q.index+Q[0].length));return Y},getRandomInt(Z,Y){return Math.round(Math.random()*(Y-Z)+Z)},getProcessTime(){let Z=process.hrtime();return Z[0]*1000+Z[1]/1e6},hasEmojiEst(Z){for(let Y of Z){let Q=Y.codePointAt(0);if(Q<9728)continue;if(Q>=128512&&Q<=128591||Q>=127744&&Q<=128511||Q>=128640&&Q<=128767||Q>=129280&&Q<=129535||Q>=129648&&Q<=129791||Q>=9728&&Q<=10175||Q>=8960&&Q<=9215)return!0}return!1},hyperlink(Z,Y,Q=!0){if(Y=encodeURI(Y.replace(/\\/g,"/")),!L.CheckCache.supportsHyperlink){if(Q)return Y;return Z}return`\x1B]8;;${Y}\x07${Z}\x1B]8;;\x07`},IDGenerator(Z=null,Y="CCNNNN"){let Q=!1,J=Y.length,q=new L.SafeTrue;while(q.True){let X=Array(J);for(let z=0;z<J;z++)switch(Y[z]){case"C":{let W=L.getRandomInt(65,116);if(W>90)W+=6;X[z]=String.fromCharCode(W);continue}case"N":X[z]=L.getRandomInt(0,9).toString();continue;case"B":{let W=L.getRandomInt(48,109);if(W>57&&W<84)W+=7;else if(W>83)W+=13;X[z]=String.fromCharCode(W);continue}default:X[z]=Y[z];break}if(Z){if(Z instanceof Set)Q=Z.has(X);else Q=Z.includes(X);if(!Q)return X.join("")}else return X.join("")}return null},includesWord(Z,Y,Q=!1){if(!Q)Y=Y.toLowerCase(),Z=Z.toLowerCase();Y=Y.padStart(Y.length+1," ").padEnd(Y.length+2," ");let J=Y.search(Z);if(J!==-1){let q=Y.substring(J-1),X=Y.substring(J+Z.length);if(q.search(L.REGEXP.Seperators)==0&&X.search(L.REGEXP.Seperators)==0)return!0}return!1},IPC:class Z{static Listener=S4;#Y;#Q=new Map;#Z;#J=!1;#q=new Set;peersAddress="localhost";peersPort;listenPort;get protocol(){return this.#Z}constructor(Y="udp4",Q={}){if(!v4)throw Error("IPC is only available on JSRuntime, due to the use of Node modules");let{peersPort:J=null,peersAddress:q=null,listenPort:X=null}=typeof Q=="number"?{listenPort:Q}:Q;if(Y!="nodeworker"&&Y!="udp4"&&Y!="udp6")throw Error(`protocol must be 'nodeworker', 'udp4' or 'udp6' instead given '${Y}'`);if(this.#Z=Y,!L._modules.dgram&&Y!="nodeworker")throw Error(`module 'dgram' not loaded use 'Tools._modules.dgram = require("dgram")' to load it`);if(Y=="nodeworker"){if(!L._modules.worker_threads)throw Error(`module 'worker_threads' not loaded use 'Tools._modules.worker_threads = require("worker_threads")' to load it`);if(!X){if(L._modules.worker_threads.isMainThread)throw Error("when using `nodeworker` protocol, `port` must be provided if on the main thread");this.#Y=L._modules.worker_threads.parentPort,this.#X();return}if(!(X instanceof L._modules.worker_threads.Worker)&&X!==L._modules.worker_threads.parentPort&&X!=null)throw Error(`port must be a type of 'Worker' or a 'parentPort' instead given '${typeof X}'`);this.#Y=X,this.#X();return}if(!J)throw Error("peersPort must be provided for `udp4` or `udp6` protocol");this.listenPort=X,this.peersAddress=q,this.peersPort=J,this.#Y=L._modules.dgram.createSocket(Y),this.#X()}async#X(){if(this.#Y.on("message",this.#z),this.protocol=="nodeworker")return;if(!this.listenPort)return;try{this.#Y.bind(this.listenPort),this.#J=!0}catch(Y){switch(Y.code){case"ERR_SOCKET_BAD_PORT":throw new L.Err(`Tools.IPC: port ${this.listenPort} is not valid`,"IPC_ERR_SOCKET_BAD_PORT",Y.code,Y.stack);case"EADDRINUSE":throw new L.Err(`Tools.IPC: port ${this.listenPort} is already in use`,"IPC_EADDRINUSE",Y.code,Y.stack);default:throw L.Err.from(Y,"IPC_BIND_ERROR").message=`Tools.IPC: failed to bind port ${this.listenPort} `+Y.message}}}bind(Y,Q){if(this.protocol=="nodeworker")return;if(this.peersAddress=Y,this.listenPort=Q,!this.#J)this.#X();return this}close(){if(this.protocol=="nodeworker")return;this.#Y.close()}async advSend(Y,Q){return new Promise((J,q)=>{if(!Y)throw Error("channel must be provided");if(typeof Y!="string")throw Error(`channel must be a type of 'string' instead given '${typeof Y}'`);let{contents:X,UPID:z}=Q;if(!(X instanceof Array))X=[X];let W;try{W=this.protocol=="nodeworker"?{channel:Y,UPID:z,contents:X.map((U)=>{if(e_(U))return U;return"@JSON:"+JSON.stringify(U,L.JSONReplacer)})}:Buffer.from(JSON.stringify({channel:Y,UPID:z,contents:X},L.JSONReplacer))}catch(U){q(L.Err.from(U,"IPC_SERIALIZE_ERROR").message="Tools.IPC: failed to serialize payload,"+U.message);return}if(this.protocol=="nodeworker"){this.#Y.postMessage(W),J();return}this.#Y.send(W,this.peersPort,this.peersAddress,(U)=>{if(U)q(U);J()})})}async send(Y,...Q){return this.advSend(Y,{contents:Q})}on(Y,Q){let J=this.#Q.get(Y);if(!J){this.#Q.set(Y,[new S4(0,Q)]);return}return J.push(new S4(0,Q)),this}once(Y,Q,J=null){let q=this.#Q.get(Y);if(!q){this.#Q.set(Y,[new S4(1,Q,J)]);return}return q.push(new S4(1,Q,J)),this}remove(Y){if(typeof Y=="string")return this.#Q.delete(Y),!0;if(typeof Y!="function")throw Error(`listener must be a type of 'string' or 'function' instead given '${typeof Y}'`);for(let[Q,J]of this.#Q){let q=J.find((z)=>z.callback==Y);if(!q)continue;if(!J.filter((z)=>z.callback!=Y))return this.#Q.delete(Q),!0;return this.#Q.set(Q,J.filter((z)=>z.callback!=q)),!0}return!1}async ask(Y,Q,...J){return new Promise((q,X)=>{let z;if(Q)z=setTimeout(()=>{X(new L.Err(`Tools.IPC: ask timeout on channel: ${Y}`,"IPCAskTimeout"))},Q);let W=this.#H();this.once(Y,(U)=>{if(Q)clearTimeout(z);q(U)},W),this.advSend(Y,{contents:J,UPID:W})})}onAsk(Y,Q){let J=this,q=async function(...X){J.#q.add(this.UPID);let z=await Q(...X);J.advSend(Y,{contents:[z],UPID:this.UPID}),J.#q.delete(this.UPID)};return this.on(Y,q),this}#z=(Y)=>{let Q;try{Q=this.protocol=="nodeworker"?{channel:Y.channel,UPID:Y.UPID,contents:Y.contents.map((q)=>{if(typeof q=="string"&&q.startsWith("@JSON:"))return JSON.parse(q.slice(6),L.JSONReviver);return q})}:JSON.parse(Y.toString(),L.JSONReviver)}catch(q){throw L.Err.from(q,"IPC_DESERIALIZE_ERROR").message="Tools.IPC: failed to deserialize payload,"+q.message}let J=this.#Q.get(Q.channel);if(!J)return;for(let q of J){if(q.UPID){if(q.UPID!=Q.UPID)continue;this.#q.delete(q.UPID)}if(q.callback.call(Q,...Q.contents),q.type==1||q.UPID)this.remove(q.callback)}};#H(){let Y=L.IDGenerator(this.#q,"BBBBBBBB");return this.#q.add(Y),Y}},isArrayLike(Z){let Y=Z?.length;return Array.isArray(Z)||!!Z&&Y!=null&&typeof Z==="object"&&typeof Y==="number"&&(Y===0||Y>0&&(Y-1 in Z))},isArrowFunction(Z){if(typeof Z!=="function")return!1;if(Object.hasOwnProperty.call(Z,"prototype"))return!1;try{return Z.arguments,!1}catch{}return Z.toString().slice(0,20).includes("=>")},isAsyncFunction(Z){if(typeof Z!=="function")return!1;if(Z.constructor?.name==="AsyncFunction")return!0;return(Z instanceof L.CONSTS.AsyncFunction&&L.CONSTS.AsyncFunction!==Function&&L.CONSTS.AsyncFunction!==L.CONSTS.GeneratorFunction)===!0},isClass:(Z)=>{if(typeof Z!=="function")return!1;return Z.toString().startsWith("class")},isNumber:(Z)=>{return/^[0-9]+$|^[0-9]+\\.[0-9]+$/.test(Z)},isEmptyArray:(Z)=>L.isArrayLike(Z)&&!Z.length,isEmptyObject:(Z)=>!L.isArrayLike(Z)&&Z instanceof Object&&!L.propertiesCount(Z),isError(Z){return L.Err.isError(Z)},isValidFilePath(Z){if(!Z||!Z?.length)return!1;if(/[:?"<>|*]/g.test(Z))return!1;return!0},JSONReplacer(Z,Y){if(Y instanceof Map)return{"@dataType":"Map","@value":Array.from(Y.entries())};if(Y instanceof Set)return{"@dataType":"Set","@value":Array.from(Y.values())};switch(typeof Y){case"function":return{"@dataType":"function","@value":Y.toString().replace(/\n* {2,}|\n/g,"")};case"bigint":return{"@dataType":"BigInt","@value":Y.toString()};case"object":for(let Q in Y)if(Y[Q]instanceof Date)Y[Q]={"@dataType":"Date","@value":Y[Q].valueOf()};return Y}return Y},JSONReviver(Z,Y){if(!Y||!Y["@dataType"])return Y;switch(Y["@dataType"]){case"function":return Function("return "+Y["@value"])();case"BigInt":return BigInt(Y["@value"]);case"Map":return new Map(Y["@value"]);case"Set":return new Set(Y["@value"]);case"Date":return new Date(Y["@value"])}return Y},jsTime:{howLong(Z,Y=new Date){let Q=Y.getTime()-Z.getTime();return L.jsTime.getTimeFromMS(Q).modern()},getTimeFromMS(Z){Z=Math.abs(Z);let Y=Z>262800200,Q={year:0,month:0,days:0,hr:0,min:0,sec:0,ms:0},J=[["year",31556926000],["month",2629743830],["days",86400000],["hr",3600000],["min",60000],["sec",1000],["ms",1]];for(let q=0;q<J.length;q++){if(Z<J[q][1])continue;let X=J[q-1]?Z%J[q-1][1]:Z;Q[J[q][0]]=Math.floor(X/J[q][1])}if(Y)return{...Q,toString(){return`${Q.year}:${Q.month}:${Q.days}|${Q.hr}:${Q.min}:${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}`},modern(){if(Q.year+Q.month+Q.days+Q.sec+Q.min+Q.hr==0)return`${L.maxFraction(Q.ms,4)}ms`;else if(Q.year+Q.month+Q.days+Q.min+Q.hr==0)return`${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}s`;else if(Q.year+Q.month+Q.days+Q.hr==0)return`${Q.min}min ${Q.sec}s`;else if(Q.year+Q.month+Q.days==0)return`${Q.hr}hr ${Q.min}min`;else if(Q.year+Q.month==0)return`${Q.days}days ${Q.hr}hr`;else if(Q.year==0)return`${Q.month}months ${Q.days}days`;else return`${Q.year}years ${Q.month}months`}};return{...Q,toString(){return`${Q.hr}:${Q.min}:${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}`},modern(){if(Q.sec+Q.min+Q.hr==0)return`${L.maxFraction(Q.ms,4)}ms`;else if(Q.min+Q.hr==0)return`${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}s`;else if(Q.hr==0)return`${Q.min}min ${Q.sec}s`;else return`${Q.hr}hr ${Q.min}min`}}}},lazySplit:function*(Z,Y){if(Y===""){for(let q of Z)yield q;return}let Q=0,J;while((J=Z.indexOf(Y,Q))!==-1)yield Z.substring(Q,J),Q=J+Y.length;yield Q?Z.substring(Q):Z},remap(Z,Y){if(Z instanceof Map){let J=new Map;for(let[q,X]of Z){let z=Y(q,X,J);if(z===void 0)continue;if(z===null)J.set(q,X);if(z.key===void 0)J.set(q,z);if(J.set(z.key,z.value),z.key!==q&&J.has(q))J.delete(q)}return J}let Q={};for(let J in Z){let q=Y(J,Z[J],Q);if(q===void 0)continue;if(q===null){Q[J]=Z[J];continue}if(q.key===void 0){Q[J]=q;continue}if(Q[q.key]=q.value,q.key!==J&&Q[J]!==void 0)delete Q[J]}return Q},MathKit:{clamp(Z,Y,Q){return Math.min(Math.max(Z,Y),Q)},degrees(Z){return Z*180/Math.PI},distanceFrom(Z,Y){let Q=Y.x-Z.x,J=Y.y-Z.y,q=Y.z-Z.z;return Math.sqrt(Q**2+(isNaN(J)?0:J**2)+(isNaN(q)?0:q**2))},dopri(Z,Y,Q,J,q=0.000001,X=1000,z){let W=[Z],U=[Q],K=[J(Z,Q)],B,$,F,O,V,D,_=[],N=0.2,w=[0.075,0.225],G=[0.9777777777777777,-3.7333333333333334,3.5555555555555554],I=[2.9525986892242035,-11.595793324188385,9.822892851699436,-0.2908093278463649],A=[2.8462752525252526,-10.757575757575758,8.906422717743473,0.2784090909090909,-0.2735313036020583],x=[0.09114583333333333,0,0.44923629829290207,0.6510416666666666,-0.322376179245283,0.13095238095238096],T=[0.10013431883002395,0,0.3918321794184259,-0.02982460176594817,0.05893268337240795,-0.04497888809104361,0.023904308236133973],S=[0.2,0.3,0.8,0.8888888888888888,1,1],y=[-0.0012326388888888888,0,0.0042527702905061394,-0.03697916666666667,0.05086379716981132,-0.0419047619047619,0.025],g=0,P,c,v=(Y-Z)/10,J0=0,h,s,m,n,a,r=new _X(W,U,K,_,-1,"");if(typeof z==="function")m=z(Z,Q);while(Z<Y&&J0<X){if(++J0,Z+v>Y)v=Y-Z;if(B=J(Z+S[0]*v,Q+N*v*K[g]),$=J(Z+S[1]*v,Q+w[0]*v*K[g]+w[1]*v*B),F=J(Z+S[2]*v,Q+G[0]*v*K[g]+G[1]*v*B+G[2]*v*$),O=J(Z+S[3]*v,Q+I[0]*v*K[g]+I[1]*v*B+I[2]*v*$+I[3]*v*F),V=J(Z+S[4]*v,Q+A[0]*v*K[g]+A[1]*v*B+A[2]*v*$+A[3]*v*F+A[4]*v*O),h=Q+K[g]*v*x[0]+$*v*x[2]+F*v*x[3]+O*v*x[4]+V*v*x[5],D=J(Z+v,h),P=K[g]*v*y[0]+$*v*y[2]+F*v*y[3]+O*v*y[4]+V*v*y[5]+D*v*y[6],s=Math.abs(P),s>q){if(v=0.2*v*Math.pow(q/s,0.25),Z+v===Z){r.msg="Step size became too small";break}continue}if(_[g]=Q+K[g]*v*T[0]+$*v*T[2]+F*v*T[3]+O*v*T[4]+V*v*T[5]+D*v*T[6],++g,W[g]=Z+v,U[g]=h,K[g]=D,typeof z==="function"){let V0,_0=Z,Y0=Z+0.5*v,N0;if(n=z(Y0,_[g-1]),a=m<0&&0<n,a){let u0,k0,C0=0,P0=1,i0=1;while(!0){if(typeof m==="number")N0=(i0*n*_0-P0*m*Y0)/(i0*n-P0*m);else{N0=Y0;for(c=m.length-1;c!==-1;--c)if(m[c]<0&&n[c]>0)N0=Math.min(N0,(i0*n[c]*_0-P0*m[c]*Y0)/(i0*n[c]-P0*m[c]))}if(N0<=_0||N0>=Y0)break;if(V0=r._at(N0,g-1),k0=z(N0,V0),u0=m<0&&0<k0,u0){if(Y0=N0,n=k0,a=u0,i0=1,C0===-1)P0*=0.5;else P0=1;C0=-1}else{if(_0=N0,m=k0,P0=1,C0===1)i0*=0.5;else i0=1;C0=1}}return h=r._at(0.5*(Z+N0),g-1),r.f[g]=J(N0,V0),r.x[g]=N0,r.y[g]=V0,r.ymid[g-1]=h,r.events=a,r.iterations=J0,r}_0=Y0,Y0=Z+v,m=n,n=z(Y0,h),a=m<0&&0<n}Z+=v,Q=h,m=n,v=Math.min(0.8*v*Math.pow(q/s,0.25),4*v)}return r.iterations=J0,r},integral(Z,Y,Q){if(Q>Y)throw Error("lower bound must be less than upper bound");if(Q==Y)return 0;if(!L._modules.mathjs)throw Error(`module 'mathjs' not loaded use 'Tools._modules.mathjs = require("mathjs")' to load it`);let J;if(typeof Z=="string")J=L._modules.mathjs.compile(Z);else J=Z;if(typeof Q=="string")Q=L._modules.mathjs.evaluate(Q);if(typeof Y=="string")Y=L._modules.mathjs.evaluate(Y);let q=(X)=>J.evaluate({x:X});return L.MathKit.dopri(Q,Y,0,q).at(Y)},lerp(Z,Y,Q){return Z+(Y-Z)*Q},Lsh_us(Z,Y){return Z*2**Y},not_us16(Z){return Z^65535},not_us32(Z){return Z^4294967295},not_us8(Z){return Z^255},map(Z,Y,Q,J,q){return Z=L.MathKit.clamp(Z,Y,Q),(Z-Y)/(Q-Y)*(q-J)+J},Point:jX,radians(Z){return Z*Math.PI/180},Rsh_us(Z,Y){return Math.floor(Z/2**Y)},sum:(...Z)=>{return Z.flat(5).reduce((Y,Q)=>Y+Q,0)},toPolarCoords(Z,Y,Q="r"){if(!Q||Q!="d"&&Q!="r")throw Error("unit must be 'r' or 'd', given: "+Q);let J=Math.atan(Y/Z);if(Y<0&&Z<0)J+=360;else if(Z<0)J+=180;return{r:Math.sqrt(Z**2+Y**2),t:Q=="d"?J:L.MathKit.radians(J)}},toCartesianCoords(Z,Y,Q=null,J="r"){if(!J||J!="d"&&J!="r")throw Error("unit must be 'r' or 'd', given: "+J);if(Q!==null&&typeof Q!="number")throw Error("polar must be a number");if(J=="d"){if(Y=L.MathKit.radians(Y),Q!==null)Q=L.MathKit.radians(Q)}if(Q===null)return{x:Z*Math.cos(Y),y:Z*Math.sin(Y)};else return{x:Z*Math.sin(Q)*Math.cos(Y),y:Z*Math.sin(Q)*Math.sin(Y),z:Z*Math.cos(Q)}}},maxFraction(Z,Y,Q=!1){let J=Z.toString();if(!J.includes("."))return J;let q=10**Y;return Z=(Q?Math.floor(Z*q):Math.round(Z*q))/q,Z.toString()},ncc(Z=null,Y=null,Q=null){if(L.CheckCache.supportsColor===0)return"";if(Z==null)return"\x1B[0m";if(typeof Z=="number"){let J=L.Convert.decimalColorToRGB(Z);switch(Q?1:L.CheckCache.supportsColor){default:return"";case 1:Z=(Y=="bg"?"bg":"")+L.Convert.basicColorFromRgb(J);case 2:{let X=L.Convert._8bitColorFromRgb(J);return`\x1B[${Y=="bg"?"4":"3"}8;5;${X}m`}case 3:return`\x1B[${Y=="bg"?"4":"3"}8;2;${J.r};${J.g};${J.b}m`}}else Z=Z.toLowerCase();return L.CONSTS.AnsiColorCodes[Z]||"\x1B[37m"},nearestNumber(Z,Y){let Q=1/0,J=null;for(let q=0,X=Z[q];q<Z.length;){let z=Math.abs(Y-X);if(!z)return q;if(z<Q)Q=z,J=q;X=Z[++q]}return J},objectMap(Z,Y){return L.remap(Z,Y)},objValueAt(Z,Y){return Z[Object.keys(Z).at(Y)]},objToString(Z,Y={}){let{maxDepth:Q=4,indent:J=3,maxKeys:q=20,color:X=!1,defColor:z=void 0,noHeader:W=!1}=Y;if(Q<1)Q=1;let U={color:X,defColor:z},K=typeof J=="number"?" ".repeat(J):J,B=null;if(X)B={cyan:L.ncc(4764610),magenta:L.ncc(11550650),gray:L.ncc(4802889),yellow:L.ncc(12754962),_default:L.ncc(z)};if(Z==null||typeof Z!=="object")return L.yuString(Z,U);if(L.isArrayLike(Z))return L.arrToString(Z,{color:X,defColor:z,maxDepth:Q,indent:J});if(Z instanceof Map||Z instanceof Set||Z instanceof Promise||Z instanceof Date||Z instanceof RegExp)return L.yuString(Z,U);if(L.isError(Z))return L.Err.toString(Z,{color:X,defColor:z});let $=Z.constructor?.name||"Object",F=$!=="Object",V=Object.keys(Z).length,D="";if(!W&&(F||V>5))if(X)D=B.magenta+`${$}(${V}) `+B._default;else D=`${$}(${V}) `;return D+_(Z,0);function _(N,w,G=0){if(w>Q-1)if(X)return B.gray+"... {Object}"+B._default;else return"... {Object}";if(N==null)return L.yuString(N,U);if(typeof N!=="object"||N instanceof Date||N instanceof RegExp)return L.yuString(N,U);if(L.isArrayLike(N))return L.arrToString(N,{color:X,defColor:z,maxDepth:Q-w,indent:J,noHeader:!0});if(N instanceof Map||N instanceof Set)return L.yuString(N,U);let I=Object.keys(N),A=I.length;if(A===0)return"{}";let x=A>3||w>0,T=G?K.repeat(G):"",S=T+K,y=x?`{
|
|
14
|
-
`+S:"{ ",g=Math.min(I.length,q-1);for(let
|
|
15
|
-
`+S:", "}if(I.length>q-1){let
|
|
16
|
-
`+S:", ",y+=B.gray+`... (${
|
|
17
|
-
`+S:", ",y+=`... (${
|
|
18
|
-
`+T+"}":" }",y}},propertiesCount(Z){return Object.keys(Z).length},padEnd(Z,Y,Q=" ",J=0){let q=
|
|
19
|
-
`),["","\r"]),z={},W=null,U="",K,B=0,$=!1;for(let
|
|
20
|
-
at \`${
|
|
21
|
-
`+"".padStart(I+10+
|
|
22
|
-
at \`${
|
|
23
|
-
`+" ".padStart(
|
|
24
|
-
`),this.reset()}reset(){this.progress=0,this
|
|
25
|
-
`;else if(typeof
|
|
26
|
-
|
|
27
|
-
[${
|
|
28
|
-
`;if(
|
|
29
|
-
`:`${
|
|
30
|
-
`;if(z)if(
|
|
31
|
-
`;else{let c=
|
|
32
|
-
$`,"m"),I);B=
|
|
10
|
+
actual length: ${B[F].length}`);X=J(X,B[F].length)}z.push([B[F],$+1,!1,[...D,F]])}if(V&&X!==q){Q.push(X),X=q;let F=[...z];z=[];for(let O=0;O<F.length;O++){if(O==F.length-1)F[O][2]=!0;if(++W>5000){queueMicrotask(()=>{W=0,K(...F[O])});continue}K(...F[O])}}}},Err:class Z extends Error{constructor(Y,Q=null,J=null,q=null){if(w.isError(Y)){if(!Q)Q=Y.name;if(!J)J=Y.code??Y.exitCode;if(!q)q=Y.stack;Y=Y.message}super(Y);if(Q)this.name=Q;if(J)this.code=J;if(q)this.stack=q}toString(Y={}){if(!this||!w.isError(this))return"[Error unknown]";return w.Err.toString(this,Y)}static from(Y,Q=null,J=null,q=null){return new w.Err(Y,Q,J,q)}static isError(Y){if(Y instanceof Error)return!0;if(Object.prototype.isPrototypeOf.call(Error.prototype,Y))return!0;return typeof Y?.message=="string"&&typeof Y?.stack=="string"}static toString(Y,Q={}){let{color:J=!1,defColor:q=void 0}=Q,X=(J?w.ncc("Red")+"ERROR"+w.ncc(q):"ERROR")+" Message: ";if(J)X+=w.ncc("Red")+(Y?.message??"[unknown]")+w.ncc(q);else X+=Y?.message??"[unknown]";if(Y?.name)if(X+=`
|
|
11
|
+
Name: `,J)X+=w.ncc("Red")+Y.name+w.ncc(q);else X+=Y.name;if(Y?.code)if(X+=`
|
|
12
|
+
Code: `,J)X+=w.ncc("Yellow")+Y.code+w.ncc(q);else X+=Y.code;if(Y?.stack)if(X+=`
|
|
13
|
+
Stack: `,J)X+=w.ncc(5592405)+Y.stack+w.ncc(q);else X+=Y.stack;return X}},escapeRegExp(Z){return Z.replace(/[[\]{}.*$^|\-?+,:\\]/g,"\\$&")},estimateStrComplexity(Z){if(w.hasEmojiEst(Z))return 2;let Q=!1;for(let q of w.CONSTS.UNICODES_RANGE_TABLE){if(!q.type.endsWith("full"))continue;if(Q=q.regex.test(Z))break}if(Q)return 1;if(w.REGEXP.ANSICode.test(Z))return 0;return-1},ex_length(Z,Y=0){if(typeof Z!=="string")throw TypeError("argument must be a string");if(Y<0)return Z.length;Z=w.cleanString(Z);let Q=Z.length;if(Y<1)return Q;let J=Z;for(let K of w.CONSTS.UNICODES_RANGE_TABLE){if(!K.type.endsWith("full"))continue;J=J.replace(K.regex,"")}let q=Q+(Q-J.length);if(Y<2)return q;let X=Z.match(w.REGEXP.EmojiEach)??[],z=0,W=0,U=/^\p{Emoji_Presentation}$/u;for(let K of X){if(!(K.includes("️")||U.test(K)))continue;z+=K.length,W++}return W*2+(q-z)},fileNameCleaner(Z,Y="_"){if(!Z||typeof Z!="string")throw Error("the given `rawName` isn't a string");return Z.trim().replace(/[|/*\\<>"?:]/g,Y)},fixFilePath(Z,Y="_"){if(!Z||!Z?.length)throw"path is either falsy or empty!";return Z.replace(/[:?"<>|*]/g,Y)},fixYTurl(Z){if(Z=Z||void 0,!Z)throw"url can't be falsy!!";if(Z.includes("youtu.be"))Z=Z.replace("https://youtu.be/","https://www.youtube.com/watch?v=");if(Z.includes("&list="))Z=Z.split("&list=")[0];if(Z.includes("?si="))Z=Z.split("?si=")[0];if(Z.includes("https")==!1)Z="https://www."+Z;return Z},fileTypeOf(Z){let Y=Z.slice(Z.lastIndexOf(".")+1).toLowerCase(),Q=Y=="jpg"||Y=="png"||Y=="svg"||Y=="jfif"||Y=="pbm"||Y=="pgm"||Y=="jpeg",J=Y=="txt"||Y=="bat"||Y=="text"||Y=="md"||Y=="json"||Y=="step"||Y=="js"||Y=="cs"||Y=="cpp"||Y=="gitignore"||Y=="java"||Y=="py"||Y=="config"||Y=="cfg"||Y=="ts"||Y=="env",q=Y=="exe"||Y=="vpk"||Y=="qc"||Y=="smd"||Y=="vmt"||Y=="vtf"||Y=="zip"||Y=="7z"||Y=="bin"||Y=="ipynb"||Y=="pyc"||Y=="jar",X=Y=="aiff"||Y=="aif"||Y=="aifc"||Y=="flac"||Y=="mp3"||Y=="mp4"||Y=="mp4a"||Y=="m4a"||Y=="mkv"||Y=="mov"||Y=="wav"||Y=="gif"||Y=="webm";if(Q)return"image";else if(J)return"text";else if(q)return"binary";else if(X)return"media";return null},getMatchAllIndexes(Z){if(!Z)return[];let Y=[];for(let Q of Z)Y.push(Q.index);return Y},getMatchAllResults(Z){if(!Z)return[];let Y=[];for(let Q of Z)Y.push(new TX(Q[0],Q.index,Q.index+Q[0].length));return Y},getRandomInt(Z,Y){return Math.round(Math.random()*(Y-Z)+Z)},getProcessTime(){let Z=process.hrtime();return Z[0]*1000+Z[1]/1e6},hasEmojiEst(Z){for(let Y of Z){let Q=Y.codePointAt(0);if(Q<9728)continue;if(Q>=128512&&Q<=128591||Q>=127744&&Q<=128511||Q>=128640&&Q<=128767||Q>=129280&&Q<=129535||Q>=129648&&Q<=129791||Q>=9728&&Q<=10175||Q>=8960&&Q<=9215)return!0}return!1},hyperlink(Z,Y,Q=!0){if(Y=encodeURI(Y.replace(/\\/g,"/")),!w.CheckCache.supportsHyperlink){if(Q)return Y;return Z}return`\x1B]8;;${Y}\x07${Z}\x1B]8;;\x07`},IDGenerator(Z=null,Y="CCNNNN"){let Q=!1,J=Y.length,q=new w.SafeTrue;while(q.True){let X=Array(J);for(let z=0;z<J;z++)switch(Y[z]){case"C":{let W=w.getRandomInt(65,116);if(W>90)W+=6;X[z]=String.fromCharCode(W);continue}case"N":X[z]=w.getRandomInt(0,9).toString();continue;case"B":{let W=w.getRandomInt(48,109);if(W>57&&W<84)W+=7;else if(W>83)W+=13;X[z]=String.fromCharCode(W);continue}default:X[z]=Y[z];break}if(Z){if(Z instanceof Set)Q=Z.has(X);else Q=Z.includes(X);if(!Q)return X.join("")}else return X.join("")}return null},includesWord(Z,Y,Q=!1){if(!Q)Y=Y.toLowerCase(),Z=Z.toLowerCase();Y=Y.padStart(Y.length+1," ").padEnd(Y.length+2," ");let J=Y.search(Z);if(J!==-1){let q=Y.substring(J-1),X=Y.substring(J+Z.length);if(q.search(w.REGEXP.Seperators)==0&&X.search(w.REGEXP.Seperators)==0)return!0}return!1},IPC:class Z{static Listener=h8;_socket;_listeners=new Map;_proto;_isBound=!1;_UPIDsSet=new Set;peersAddress="localhost";peersPort;listenPort;get protocol(){return this._proto}constructor(Y="udp4",Q={}){if(!f8)throw Error("IPC is only available on JSRuntime, due to the use of Node modules");let{peersPort:J=null,peersAddress:q=null,listenPort:X=null}=typeof Q=="number"?{listenPort:Q}:Q;if(Y!="nodeworker"&&Y!="udp4"&&Y!="udp6")throw Error(`protocol must be 'nodeworker', 'udp4' or 'udp6' instead given '${Y}'`);if(this._proto=Y,!w._modules.dgram&&Y!="nodeworker")throw Error(`module 'dgram' not loaded use 'Tools._modules.dgram = require("dgram")' to load it`);if(Y=="nodeworker"){if(!w._modules.worker_threads)throw Error(`module 'worker_threads' not loaded use 'Tools._modules.worker_threads = require("worker_threads")' to load it`);if(!X){if(w._modules.worker_threads.isMainThread)throw Error("when using `nodeworker` protocol, `port` must be provided if on the main thread");this._socket=w._modules.worker_threads.parentPort,this._init();return}if(!(X instanceof w._modules.worker_threads.Worker)&&X!==w._modules.worker_threads.parentPort&&X!=null)throw Error(`port must be a type of 'Worker' or a 'parentPort' instead given '${typeof X}'`);this._socket=X,this._init();return}if(!J)throw Error("peersPort must be provided for `udp4` or `udp6` protocol");this.listenPort=X,this.peersAddress=q,this.peersPort=J,this._socket=w._modules.dgram.createSocket(Y),this._init()}async _init(){if(this._socket.on("message",this._handleIncomePackage),this.protocol=="nodeworker")return;if(!this.listenPort)return;try{this._socket.bind(this.listenPort),this._isBound=!0}catch(Y){switch(Y.code){case"ERR_SOCKET_BAD_PORT":throw new w.Err(`Tools.IPC: port ${this.listenPort} is not valid`,"IPC_ERR_SOCKET_BAD_PORT",Y.code,Y.stack);case"EADDRINUSE":throw new w.Err(`Tools.IPC: port ${this.listenPort} is already in use`,"IPC_EADDRINUSE",Y.code,Y.stack);default:throw w.Err.from(Y,"IPC_BIND_ERROR").message=`Tools.IPC: failed to bind port ${this.listenPort} `+Y.message}}}bind(Y,Q){if(this.protocol=="nodeworker")return;if(this.peersAddress=Y,this.listenPort=Q,!this._isBound)this._init();return this}close(){if(this.protocol=="nodeworker")return;this._socket.close()}async advSend(Y,Q){return new Promise((J,q)=>{if(!Y)throw Error("channel must be provided");if(typeof Y!="string")throw Error(`channel must be a type of 'string' instead given '${typeof Y}'`);let{contents:X,UPID:z}=Q;if(!(X instanceof Array))X=[X];let W;try{W=this.protocol=="nodeworker"?{channel:Y,UPID:z,contents:X.map((U)=>{if(MN(U))return U;return"@JSON:"+JSON.stringify(U,w.JSONReplacer)})}:Buffer.from(JSON.stringify({channel:Y,UPID:z,contents:X},w.JSONReplacer))}catch(U){q(w.Err.from(U,"IPC_SERIALIZE_ERROR").message="Tools.IPC: failed to serialize payload,"+U.message);return}if(this.protocol=="nodeworker"){this._socket.postMessage(W),J();return}this._socket.send(W,this.peersPort,this.peersAddress,(U)=>{if(U)q(U);J()})})}async send(Y,...Q){return this.advSend(Y,{contents:Q})}on(Y,Q){let J=this._listeners.get(Y);if(!J){this._listeners.set(Y,[new h8(0,Q)]);return}return J.push(new h8(0,Q)),this}once(Y,Q,J=null){let q=this._listeners.get(Y);if(!q){this._listeners.set(Y,[new h8(1,Q,J)]);return}return q.push(new h8(1,Q,J)),this}remove(Y){if(typeof Y=="string")return this._listeners.delete(Y),!0;if(typeof Y!="function")throw Error(`listener must be a type of 'string' or 'function' instead given '${typeof Y}'`);for(let[Q,J]of this._listeners){let q=J.find((z)=>z.callback==Y);if(!q)continue;if(!J.filter((z)=>z.callback!=Y))return this._listeners.delete(Q),!0;return this._listeners.set(Q,J.filter((z)=>z.callback!=q)),!0}return!1}async ask(Y,Q,...J){return new Promise((q,X)=>{let z;if(Q)z=setTimeout(()=>{X(new w.Err(`Tools.IPC: ask timeout on channel: ${Y}`,"IPCAskTimeout"))},Q);let W=this._createUPID();this.once(Y,(U)=>{if(Q)clearTimeout(z);q(U)},W),this.advSend(Y,{contents:J,UPID:W})})}onAsk(Y,Q){let J=this,q=async function(...X){J._UPIDsSet.add(this.UPID);let z=await Q(...X);J.advSend(Y,{contents:[z],UPID:this.UPID}),J._UPIDsSet.delete(this.UPID)};return this.on(Y,q),this}_handleIncomePackage=(Y)=>{let Q;try{Q=this.protocol=="nodeworker"?{channel:Y.channel,UPID:Y.UPID,contents:Y.contents.map((q)=>{if(typeof q=="string"&&q.startsWith("@JSON:"))return JSON.parse(q.slice(6),w.JSONReviver);return q})}:JSON.parse(Y.toString(),w.JSONReviver)}catch(q){throw w.Err.from(q,"IPC_DESERIALIZE_ERROR").message="Tools.IPC: failed to deserialize payload,"+q.message}let J=this._listeners.get(Q.channel);if(!J)return;for(let q of J){if(q.UPID){if(q.UPID!=Q.UPID)continue;this._UPIDsSet.delete(q.UPID)}if(q.callback.call(Q,...Q.contents),q.type==1||q.UPID)this.remove(q.callback)}};_createUPID(){let Y=w.IDGenerator(this._UPIDsSet,"BBBBBBBB");return this._UPIDsSet.add(Y),Y}},isArrayLike(Z){let Y=Z?.length;return Array.isArray(Z)||!!Z&&Y!=null&&typeof Z==="object"&&typeof Y==="number"&&(Y===0||Y>0&&(Y-1 in Z))},isArrowFunction(Z){if(typeof Z!=="function")return!1;if(Object.hasOwnProperty.call(Z,"prototype"))return!1;try{return Z.arguments,!1}catch{}return Z.toString().slice(0,20).includes("=>")},isAsyncFunction(Z){if(typeof Z!=="function")return!1;if(Z.constructor?.name==="AsyncFunction")return!0;return(Z instanceof w.CONSTS.AsyncFunction&&w.CONSTS.AsyncFunction!==Function&&w.CONSTS.AsyncFunction!==w.CONSTS.GeneratorFunction)===!0},isClass:(Z)=>{if(typeof Z!=="function")return!1;return Z.toString().startsWith("class")},isNumber:(Z)=>{return/^[0-9]+$|^[0-9]+\\.[0-9]+$/.test(Z)},isEmptyArray:(Z)=>w.isArrayLike(Z)&&!Z.length,isEmptyObject:(Z)=>!w.isArrayLike(Z)&&Z instanceof Object&&!w.propertiesCount(Z),isError(Z){return w.Err.isError(Z)},isValidFilePath(Z){if(!Z||!Z?.length)return!1;if(/[:?"<>|*]/g.test(Z))return!1;return!0},JSONReplacer(Z,Y){if(Y instanceof Map)return{"@dataType":"Map","@value":Array.from(Y.entries())};if(Y instanceof Set)return{"@dataType":"Set","@value":Array.from(Y.values())};switch(typeof Y){case"function":return{"@dataType":"function","@value":Y.toString().replace(/\n* {2,}|\n/g,"")};case"bigint":return{"@dataType":"BigInt","@value":Y.toString()};case"object":for(let Q in Y)if(Y[Q]instanceof Date)Y[Q]={"@dataType":"Date","@value":Y[Q].valueOf()};return Y}return Y},JSONReviver(Z,Y){if(!Y||!Y["@dataType"])return Y;switch(Y["@dataType"]){case"function":return Function("return "+Y["@value"])();case"BigInt":return BigInt(Y["@value"]);case"Map":return new Map(Y["@value"]);case"Set":return new Set(Y["@value"]);case"Date":return new Date(Y["@value"])}return Y},jsTime:{howLong(Z,Y=new Date){let Q=Y.getTime()-Z.getTime();return w.jsTime.getTimeFromMS(Q).modern()},getTimeFromMS(Z){Z=Math.abs(Z);let Y=Z>262800200,Q={year:0,month:0,days:0,hr:0,min:0,sec:0,ms:0},J=[["year",31556926000],["month",2629743830],["days",86400000],["hr",3600000],["min",60000],["sec",1000],["ms",1]];for(let q=0;q<J.length;q++){if(Z<J[q][1])continue;let X=J[q-1]?Z%J[q-1][1]:Z;Q[J[q][0]]=Math.floor(X/J[q][1])}if(Y)return{...Q,toString(){return`${Q.year}:${Q.month}:${Q.days}|${Q.hr}:${Q.min}:${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}`},modern(){if(Q.year+Q.month+Q.days+Q.sec+Q.min+Q.hr==0)return`${w.maxFraction(Q.ms,4)}ms`;else if(Q.year+Q.month+Q.days+Q.min+Q.hr==0)return`${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}s`;else if(Q.year+Q.month+Q.days+Q.hr==0)return`${Q.min}min ${Q.sec}s`;else if(Q.year+Q.month+Q.days==0)return`${Q.hr}hr ${Q.min}min`;else if(Q.year+Q.month==0)return`${Q.days}days ${Q.hr}hr`;else if(Q.year==0)return`${Q.month}months ${Q.days}days`;else return`${Q.year}years ${Q.month}months`}};return{...Q,toString(){return`${Q.hr}:${Q.min}:${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}`},modern(){if(Q.sec+Q.min+Q.hr==0)return`${w.maxFraction(Q.ms,4)}ms`;else if(Q.min+Q.hr==0)return`${Q.sec}.${Math.round(Q.ms).toString().padStart(3,"0")}s`;else if(Q.hr==0)return`${Q.min}min ${Q.sec}s`;else return`${Q.hr}hr ${Q.min}min`}}}},lazySplit:function*(Z,Y){if(Y===""){for(let q of Z)yield q;return}let Q=0,J;while((J=Z.indexOf(Y,Q))!==-1)yield Z.substring(Q,J),Q=J+Y.length;yield Q?Z.substring(Q):Z},remap(Z,Y){if(Z instanceof Map){let J=new Map;for(let[q,X]of Z){let z=Y(q,X,J);if(z===void 0)continue;if(z===null)J.set(q,X);if(z.key===void 0)J.set(q,z);if(J.set(z.key,z.value),z.key!==q&&J.has(q))J.delete(q)}return J}let Q={};for(let J in Z){let q=Y(J,Z[J],Q);if(q===void 0)continue;if(q===null){Q[J]=Z[J];continue}if(q.key===void 0){Q[J]=q;continue}if(Q[q.key]=q.value,q.key!==J&&Q[J]!==void 0)delete Q[J]}return Q},MathKit:{clamp(Z,Y,Q){return Math.min(Math.max(Z,Y),Q)},degrees(Z){return Z*180/Math.PI},distanceFrom(Z,Y){let Q=Y.x-Z.x,J=Y.y-Z.y,q=Y.z-Z.z;return Math.sqrt(Q**2+(isNaN(J)?0:J**2)+(isNaN(q)?0:q**2))},dopri(Z,Y,Q,J,q=0.000001,X=1000,z){let W=[Z],U=[Q],K=[J(Z,Q)],B,$,V,D,F,O,j=[],_=0.2,L=[0.075,0.225],A=[0.9777777777777777,-3.7333333333333334,3.5555555555555554],I=[2.9525986892242035,-11.595793324188385,9.822892851699436,-0.2908093278463649],G=[2.8462752525252526,-10.757575757575758,8.906422717743473,0.2784090909090909,-0.2735313036020583],P=[0.09114583333333333,0,0.44923629829290207,0.6510416666666666,-0.322376179245283,0.13095238095238096],T=[0.10013431883002395,0,0.3918321794184259,-0.02982460176594817,0.05893268337240795,-0.04497888809104361,0.023904308236133973],S=[0.2,0.3,0.8,0.8888888888888888,1,1],y=[-0.0012326388888888888,0,0.0042527702905061394,-0.03697916666666667,0.05086379716981132,-0.0419047619047619,0.025],g=0,x,c,v=(Y-Z)/10,J0=0,h,s,m,n,a,r=new EX(W,U,K,j,-1,"");if(typeof z==="function")m=z(Z,Q);while(Z<Y&&J0<X){if(++J0,Z+v>Y)v=Y-Z;if(B=J(Z+S[0]*v,Q+_*v*K[g]),$=J(Z+S[1]*v,Q+L[0]*v*K[g]+L[1]*v*B),V=J(Z+S[2]*v,Q+A[0]*v*K[g]+A[1]*v*B+A[2]*v*$),D=J(Z+S[3]*v,Q+I[0]*v*K[g]+I[1]*v*B+I[2]*v*$+I[3]*v*V),F=J(Z+S[4]*v,Q+G[0]*v*K[g]+G[1]*v*B+G[2]*v*$+G[3]*v*V+G[4]*v*D),h=Q+K[g]*v*P[0]+$*v*P[2]+V*v*P[3]+D*v*P[4]+F*v*P[5],O=J(Z+v,h),x=K[g]*v*y[0]+$*v*y[2]+V*v*y[3]+D*v*y[4]+F*v*y[5]+O*v*y[6],s=Math.abs(x),s>q){if(v=0.2*v*Math.pow(q/s,0.25),Z+v===Z){r.msg="Step size became too small";break}continue}if(j[g]=Q+K[g]*v*T[0]+$*v*T[2]+V*v*T[3]+D*v*T[4]+F*v*T[5]+O*v*T[6],++g,W[g]=Z+v,U[g]=h,K[g]=O,typeof z==="function"){let V0,_0=Z,Y0=Z+0.5*v,N0;if(n=z(Y0,j[g-1]),a=m<0&&0<n,a){let u0,k0,C0=0,x0=1,a0=1;while(!0){if(typeof m==="number")N0=(a0*n*_0-x0*m*Y0)/(a0*n-x0*m);else{N0=Y0;for(c=m.length-1;c!==-1;--c)if(m[c]<0&&n[c]>0)N0=Math.min(N0,(a0*n[c]*_0-x0*m[c]*Y0)/(a0*n[c]-x0*m[c]))}if(N0<=_0||N0>=Y0)break;if(V0=r._at(N0,g-1),k0=z(N0,V0),u0=m<0&&0<k0,u0){if(Y0=N0,n=k0,a=u0,a0=1,C0===-1)x0*=0.5;else x0=1;C0=-1}else{if(_0=N0,m=k0,x0=1,C0===1)a0*=0.5;else a0=1;C0=1}}return h=r._at(0.5*(Z+N0),g-1),r.f[g]=J(N0,V0),r.x[g]=N0,r.y[g]=V0,r.ymid[g-1]=h,r.events=a,r.iterations=J0,r}_0=Y0,Y0=Z+v,m=n,n=z(Y0,h),a=m<0&&0<n}Z+=v,Q=h,m=n,v=Math.min(0.8*v*Math.pow(q/s,0.25),4*v)}return r.iterations=J0,r},integral(Z,Y,Q){if(Q>Y)throw Error("lower bound must be less than upper bound");if(Q==Y)return 0;if(!w._modules.mathjs)throw Error(`module 'mathjs' not loaded use 'Tools._modules.mathjs = require("mathjs")' to load it`);let J;if(typeof Z=="string")J=w._modules.mathjs.compile(Z);else J=Z;if(typeof Q=="string")Q=w._modules.mathjs.evaluate(Q);if(typeof Y=="string")Y=w._modules.mathjs.evaluate(Y);let q=(X)=>J.evaluate({x:X});return w.MathKit.dopri(Q,Y,0,q).at(Y)},lerp(Z,Y,Q){return Z+(Y-Z)*Q},Lsh_us(Z,Y){return Z*2**Y},not_us16(Z){return Z^65535},not_us32(Z){return Z^4294967295},not_us8(Z){return Z^255},map(Z,Y,Q,J,q){return Z=w.MathKit.clamp(Z,Y,Q),(Z-Y)/(Q-Y)*(q-J)+J},Point:kX,radians(Z){return Z*Math.PI/180},Rsh_us(Z,Y){return Math.floor(Z/2**Y)},sum:(...Z)=>{return Z.flat(5).reduce((Y,Q)=>Y+Q,0)},toPolarCoords(Z,Y,Q="r"){if(!Q||Q!="d"&&Q!="r")throw Error("unit must be 'r' or 'd', given: "+Q);let J=Math.atan(Y/Z);if(Y<0&&Z<0)J+=360;else if(Z<0)J+=180;return{r:Math.sqrt(Z**2+Y**2),t:Q=="d"?J:w.MathKit.radians(J)}},toCartesianCoords(Z,Y,Q=null,J="r"){if(!J||J!="d"&&J!="r")throw Error("unit must be 'r' or 'd', given: "+J);if(Q!==null&&typeof Q!="number")throw Error("polar must be a number");if(J=="d"){if(Y=w.MathKit.radians(Y),Q!==null)Q=w.MathKit.radians(Q)}if(Q===null)return{x:Z*Math.cos(Y),y:Z*Math.sin(Y)};else return{x:Z*Math.sin(Q)*Math.cos(Y),y:Z*Math.sin(Q)*Math.sin(Y),z:Z*Math.cos(Q)}}},maxFraction(Z,Y,Q=!1){let J=Z.toString();if(!J.includes("."))return J;let q=10**Y;return Z=(Q?Math.floor(Z*q):Math.round(Z*q))/q,Z.toString()},ncc(Z=null,Y=null,Q=null){if(w.CheckCache.supportsColor===0)return"";if(Z==null)return"\x1B[0m";if(typeof Z=="number"){let J=w.Convert.decimalColorToRGB(Z);switch(Q?1:w.CheckCache.supportsColor){default:return"";case 1:Z=(Y=="bg"?"bg":"")+w.Convert.basicColorFromRgb(J);case 2:{let X=w.Convert._8bitColorFromRgb(J);return`\x1B[${Y=="bg"?"4":"3"}8;5;${X}m`}case 3:return`\x1B[${Y=="bg"?"4":"3"}8;2;${J.r};${J.g};${J.b}m`}}else Z=Z.toLowerCase();return w.CONSTS.AnsiColorCodes[Z]||"\x1B[37m"},nearestNumber(Z,Y){let Q=1/0,J=null;for(let q=0,X=Z[q];q<Z.length;){let z=Math.abs(Y-X);if(!z)return q;if(z<Q)Q=z,J=q;X=Z[++q]}return J},objectMap(Z,Y){return w.remap(Z,Y)},objValueAt(Z,Y){return Z[Object.keys(Z).at(Y)]},objToString(Z,Y={}){let{maxDepth:Q=4,indent:J=3,maxKeys:q=20,color:X=!1,defColor:z=void 0,noHeader:W=!1}=Y;if(Q<1)Q=1;let U={color:X,defColor:z},K=typeof J=="number"?" ".repeat(J):J,B=null;if(X)B={cyan:w.ncc(4764610),magenta:w.ncc(11550650),gray:w.ncc(4802889),yellow:w.ncc(12754962),_default:w.ncc(z)};if(Z==null||typeof Z!=="object")return w.yuString(Z,U);if(w.isArrayLike(Z))return w.arrToString(Z,{color:X,defColor:z,maxDepth:Q,indent:J});if(Z instanceof Map||Z instanceof Set||Z instanceof Promise||Z instanceof Date||Z instanceof RegExp)return w.yuString(Z,U);if(w.isError(Z))return w.Err.toString(Z,{color:X,defColor:z});let $=Z.constructor?.name||"Object",V=$!=="Object",F=Object.keys(Z).length,O="";if(!W&&(V||F>5))if(X)O=B.magenta+`${$}(${F}) `+B._default;else O=`${$}(${F}) `;return O+j(Z,0);function j(_,L,A=0){if(L>Q-1)if(X)return B.gray+"... {Object}"+B._default;else return"... {Object}";if(_==null)return w.yuString(_,U);if(typeof _!=="object"||_ instanceof Date||_ instanceof RegExp)return w.yuString(_,U);if(w.isArrayLike(_))return w.arrToString(_,{color:X,defColor:z,maxDepth:Q-L,indent:J,noHeader:!0});if(_ instanceof Map||_ instanceof Set)return w.yuString(_,U);let I=Object.keys(_),G=I.length;if(G===0)return"{}";let P=G>3||L>0,T=A?K.repeat(A):"",S=T+K,y=P?`{
|
|
14
|
+
`+S:"{ ",g=Math.min(I.length,q-1);for(let x=0;x<g;x++){let c=I[x],v=_[c];if(X)y+=B.cyan+c+B._default+": ";else y+=c+": ";if(v&&typeof v==="object"&&!w.isArrayLike(v)&&!(v instanceof Date)&&!(v instanceof RegExp)&&!(v instanceof Map)&&!(v instanceof Set)&&!(v instanceof Promise)){let J0=v.constructor?.name||"Object";if(J0!=="Object"&&X)y+=B.magenta+J0+" "+B._default;else if(J0!=="Object")y+=J0+" ";y+=j(v,L+1,P?A+1:A)}else y+=w.yuString(v,U);if(x<g-1)y+=P?`,
|
|
15
|
+
`+S:", "}if(I.length>q-1){let x=I.length-g;if(X)y+=P?`,
|
|
16
|
+
`+S:", ",y+=B.gray+`... (${x} more)`+B._default;else y+=P?`,
|
|
17
|
+
`+S:", ",y+=`... (${x} more)`}return y+=P?`
|
|
18
|
+
`+T+"}":" }",y}},propertiesCount(Z){return Object.keys(Z).length},padEnd(Z,Y,Q=" ",J=0){let q=w.ex_length(Z,J);if(q>=Y)return Z;return Z+Q.repeat(Y-q)},padStart(Z,Y,Q=" ",J=0){let q=w.ex_length(Z,J);if(q>=Y)return Z;return Q.repeat(Y-q)+Z},parseArgs(Z,Y,Q=!1){let J={_unmatched:[]},q=new Set;for(let z in Y)if(Y[z]?.required)q.add(z);for(let z=0;z<Z.length;z++){let W=!1;for(let U in Y){if(!Y[U]?.pattern)throw Error("invalid template: Object structure missmatched. every entries requires `pattern` property");if(!X(Z[z],Y[U].pattern))continue;if(q.delete(U),Y[U]?.isFlag||Y[U]?.type=="flag"){W=!0,J[U]=new K4(!0,"flag",z);continue}let K=!1;if(z+1<Z.length){for(let B in Y)if(X(Z[z+1],Y[B].pattern))K=!0}if(z+1>=Z.length||K)throw Error(`argument '${Z[z]}' requires a Value`);switch(Y[U]?.type){case"int":if(isNaN((J[U]=new K4(parseInt(Z[++z]),Y[U]?.type,z)).value))throw Error(`argument '${Z[z-1]}' requires a Value of type '${Y[U]?.type}'`);break;case"float":if(isNaN((J[U]=new K4(parseFloat(Z[++z]),Y[U]?.type,z)).value))throw Error(`argument '${Z[z-1]}' requires a Value of type '${Y[U]?.type}'`);break;case"choice":if(!Y[U]?.choices?.length)throw Error("invalid template: Object structure missmatched. entry of type 'choice' requires `choices` property");if(!X(Z[++z],Y[U].choices)&&Y[U]?.default==null)throw Error(`invalid value for '${Z[z-1]}' argument, requires any of these Choices: ${Y[U].choices}`);J[U]=new K4(Z[z],Y[U]?.type,z);break;case"string":case void 0:J[U]=new K4(Z[++z],Y[U]?.type,z);break;default:throw Error(`invalid template: entry of type '${Y[U]?.type}' is not supported`)}W=!0}if(!W)J._unmatched.push(new K4(Z[z],void 0,z))}if(q.size>0)throw Error(`argument(s) '${[...q]}' is required.`);for(let z in Y){if(Y[z]?.isFlag||Y[z]?.type=="flag"){if(!J[z])J[z]=new K4(!1,"flag");continue}if(!J[z])J[z]=new K4(Y[z]?.default?Y[z]?.default:null,Y[z]?.type)}return J;function X(z,W){for(let U of W){if(!Q){if(z.toLowerCase()==U.toLowerCase())return!0;continue}if(z==U)return!0}return!1}},parseBool(Z,Y=!1){if(typeof Z=="boolean")return Z;Z=Z.toLowerCase();let Q=Z=="true"?!0:!1;if(!Y)return Q;if(!(Z=="true"||Z=="false"))return null;return Q},parseConfig(Z,Y=null,Q={}){let{ignoreGroups:J=!1,multiValues:q=!1}=Q,X=w.cleanArr(Z.trim().split(`
|
|
19
|
+
`),["","\r"]),z={},W=null,U="",K,B=0,$=!1;for(let D=0;D<X.length;D++){let F=X[D].trim();if(/^[#;]/.test(F))continue;if(F.startsWith("[")){if(J)continue;{let I=!1;for(let G=1;G<F.length;G++)if(F[G]=="]"&&F[G-1]!="\\"){if(W=F.slice(1,G),!z[W])z[W]={};I=!0;break}if(!I)throw Error(`Tools.parseConfig(): invalid syntax, missing ']' at the end of the group. at \`${F}\``);else continue}}if($){if(U+=X[D],!V(D,X))continue;if($=!1,W)z[W][K]=JSON.parse(U,Y);else z[K]=JSON.parse(U,Y);continue}let O=w.cleanArr(F.split("="));if(O.length>2)throw Error(`Tools.parseConfig(): invalid syntax, '=' cannot occur more than one time. at \`${F}\``);else if(O.length==1&&!$)if(F.includes("="))throw Error(`Tools.parseConfig(): invalid syntax, expected expresion after '='. at \`${F}\``);else throw Error(`Tools.parseConfig(): expected expresion. at \`${F}\``);else if(!O.length)throw Error(`Tools.parseConfig(): unknown operator. \`${F}\``);O=[O[0].trim(),O[1].trim()];let j=w.getMatchAllIndexes(O[1].matchAll(/["']/g)).filter((I,G,P)=>{if(O[1][I-1]=="\\"){O[1]=O[1].slice(0,I-1)+O[1].slice(I);for(let T=G+1;T<P.length;T++)P[T]--;return!1}return!0}),_=O[1].search("#"),L=j[0],A=!1;if(L!=null&&(_==-1||L<_)){let I=j[1]==null?-1:j[1],G=O[1].slice(I+2).trim();if(G&&!/^[#;]/.test(G))throw Error(`Tools.parseConfig(): invalid syntax, unexpected charactor(s).
|
|
20
|
+
at \`${F}\`
|
|
21
|
+
`+"".padStart(I+10+O[0].length," ")+"^");if(I==-1)throw Error(`Tools.parseConfig(): invalid syntax, missing closing quote.
|
|
22
|
+
at \`${F}\`
|
|
23
|
+
`+" ".padStart(L+7+O[0].length," ")+"^");A=!0,O[1]=O[1].slice(L+1,I)}else if(_!=-1){if(O[1]=O[1].slice(0,O[1].indexOf("#")).trim(),!O[1])throw Error(`Tools.parseConfig(): invalid syntax, expected expresion after '='. at \`${F}\``)}if(/^[0-9]/.test(O[0]))throw Error(`Tools.parseConfig(): Key cannot starts with Numbers. at \`${F}\``);{let I=O[0].replace(/[a-z$_0-9.]/gi,"");if(I.length!==0)throw Error(`Tools.parseConfig(): these character(s) "${I}" can not be Parse. at \`${F}\``)}if(/^[[{]/.test(O[1])){if(B=0,[K,U]=O,V(1,O)){if(W)z[W][K]=JSON.parse(U,Y);else z[K]=JSON.parse(U,Y);continue}$=!0;continue}{let I=W?z[W]:z;if(q&&Object.hasOwnProperty.call(I,O[0])){if(I[O[0]].$multiValues===void 0)I[O[0]]=[I[O[0]]],I[O[0]].$multiValues=!0;I[O[0]].push(A?O[1]:w.parseValue(O[1]))}else I[O[0]]=A?O[1]:w.parseValue(O[1])}}return z;function V(D,F){if(B+=[...F[D].matchAll(w.REGEXP.OpenSCBrackets)].filter((O)=>O[1]).length,B-=[...F[D].matchAll(w.REGEXP.CloseSCBrackets)].filter((O)=>O[1]).length,B<=0)return!0;return!1}},parseValue(Z){if(typeof Z!="string")return Z;switch(Z.toLowerCase()){case"true":return!0;case"false":return!1;case"null":return null;case"":case"undefined":return;default:if(!isNaN(Z))return Number(Z);return Z}},pass(Z,Y=null){if(Y)Y(Z);else console?.log(Z);return Z},Progress:class Z{stdout=process.stdout;progress=0;spd=0;lastCheck=null;printInterval;updateInterval;total;_tracker=0;_firstPrint=!0;_printFunction;constructor(Y,Q=null,J=500,q=100){if(!Y)throw Error("printTemplate is required");this.total=Q,this.printInterval=J,this.updateInterval=q,this.setPrintTemplate(Y),this.lastCheck=Date.now()}update(Y=1){if(!this._printFunction)return;this._tracker+=Y,this.progress+=Y;let Q=Date.now()-this.lastCheck;if(Q>this.updateInterval&&this._tracker>4)this.spd=this._tracker*this.updateInterval/Q,this._tracker=0,this.lastCheck=Date.now();if(this.lastPrint+this.printInterval>Date.now())return;if(this.lastPrint=Date.now(),!this._firstPrint)this.stdout.clearLine(),this.stdout.cursorTo(0);else this._firstPrint=!1;if(!this.total){this._printFunction();return}this._printFunction()}done(){if(this.progress!=this.total){if(!this._firstPrint)this.stdout.clearLine(),this.stdout.cursorTo(0);this.progress=this.total,this._printFunction()}this.stdout.write(`
|
|
24
|
+
`),this.reset()}reset(){this.progress=0,this._tracker=0,this.spd=0,this.lastCheck=Date.now(),this._firstPrint=!0}setPrintTemplate(Y){Y=Y.replace(/%total%/g,"${this.total}"),Y=Y.replace(/%spd%/g,"${this.spd.toFixed(1)}"),Y=Y.replace(/%prog%/g,"${this.progress}"),this._printFunction=Function("this.stdout.write(`"+Y+"`);").bind(this)}},proximate(Z,Y,Q){if(Z<Y+Q&&Z>Y-Q)return Y;else return Z},randomPick(Z){if(Z.length<=1)return Z[0];return Z[Math.floor(Math.random()*Z.length)]},redexOf(Z,Y,Q=0){let J=typeof this!=="string";if(!Z&&J)return-1;if(!J)Z=this;if(!Z.length)return-1;if(!(Y instanceof RegExp))if(Q>=0)return Z.indexOf(Y,Q);else return Z.lastIndexOf(Y,Z.length+Q);let q,X;if(Q>=0){q=-1;do{X=Z.substring(++q);let z=X.search(Y);if(z==-1)return-1;q=z+q}while(q<Q)}else{q=-1;do{X=Z.substring(++q);let z=X.search(Y);if(z==-1)return q-1;q=z+q}while(q<Z.length+Q)}return q},REGEXP:Object.freeze({Seperators:/[-\s_・⧸/\\;:()[\]、,.'""!^**=+「【】」()]/g,SoftWrapSeperators:/\x1b(?:\[[0-9;]*m|\]8;;[^\x07\x1b]*(?:\x07|\x1b\\))|([\s,.;:()[\]})])/g,HardWrapSeperators:/\x1b(?:\[[0-9;]*m|\]8;;[^\x07\x1b]*(?:\x07|\x1b\\))|([-_・⧸/\\、'""!^**=+「【】」()])/g,ValidEmail:/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,ANSICode:/\x1b(\[[0-9;]*m|\]8;;[^\x07\x1b]*(?:\x07|\x1b\\))/g,EmojiDetection:new RegExp(iQ),EmojiEach:new RegExp(iQ,"g"),EmojiEachGroup:new RegExp("(?:"+iQ+")+","g"),IniGroups:/^[\t ]*\[(.+)\][\t ]*$/gm,JSComments:/\\"|"(?:\\"|[^"])*"|(\/\/.*|\/\*[\s\S]*?\*\/)/g,OpenSCBrackets:/\\"|"(?:\\"|[^"])*"|([[{])/g,CloseSCBrackets:/\\"|"(?:\\"|[^"])*"|([\]}])/g}),resolveNodeEnv(Z,Y=/%(\w+)%/g){return Z.replace(Y,(Q,J)=>{let q=J;if(process.env[q]==null)return Q;return process.env[q]})},SafeTrue:class Z{_i=0;limit=0;noWarning=!1;constructor(Y=10000000000,Q=!1){this.limit=Y,this.noWarning=Q}get True(){if(this._i++>=this.limit){if(!this.noWarning)process?.emitWarning("SafeTrue limit reached");return!1}return!0}},search(Z,Y,Q={}){let J=w.REGEXP.Seperators,q=Q.maxResult,X=Q.TF_IDFMaps instanceof Array?[...Q.TF_IDFMaps]:Q.TF_IDFMaps;if(!q)if(typeof Q=="number")q=Q;else q=1/0;if(Y=Y.trim().toLowerCase(),Y=="")return null;let z=[...Z];if(z.forEach((K,B,$)=>$[B]=K.trim().toLowerCase()),X==="builtin")X=w.DataScienceKit.TFIDF_of(z.concat(Y).map((K)=>w.cleanArr(K.split(J))));class W{constructor(K,B,$=-1,V=null){this.score=B,this.string=K,this.matchIndex=$,this.scores=V}}let U=[];for(let K=0;K<z.length;K++){let B=z[K].replace(J,"");if(z[K]==Y||B==Y)U.unshift(new W(Z[K],Y.length<<2,K));let $,V,D,F;$=V=D=F=0;for(let j of w.cleanArr(Y.split(J))){let _=0;if(w.includesWord(j,z[K],!1))if(X&&X[K]?.has(j))_=j.length*X[K].get(j).TF_IDF*2.9,$+=_;else _=j.length,V+=_;else if(z[K].includes(j))_=j.length*0.3,D+=_;let L=w.DataScienceKit.LCSLength_of(j,z[K])*0.4;F+=L}let O=$+V+D+F;U.push(new W(null,O,K,{tfidf_s:$,word_s:V,includes_s:D,lcs_s:F,TF_IDFMap:X?.[K]}))}U.sort((K,B)=>B.score-K.score);for(let K=0;K<q;K++){if(!U[K])break;if(U[K].string!=null)continue;U[K].string=Z[U[K].matchIndex]}return U.slice(0,q)},sleep(Z){if(!Z||Z<0)return;let Y=Date.now();while(Date.now()-Y<Z);},SpawnMirror:class Z{static STDIO_MIRROR=["inherit","pipe","pipe"];static createMirror(Y){Y?.stdout?.pipe(process.stdout),Y?.stderr?.pipe(process.stderr)}},strClamp(Z,Y,Q="mid",J=0){let q=w.ex_length(Z,J);if(q<=Y)return Z.padEnd(Y," ");let X=q-(q-Y)-3;switch(Q){default:if(f8)process?.emitWarning(`'${Q}' is not a valid location type.`);else throw Error(`'${Q}' is not a valid location type.`);case"mid":{let z=X>>1;return w.strSlice(Z,0,z,J)+"..."+w.strSlice(Z,q-z,void 0,J)}case"end":return w.strSlice(Z,0,X,J)+"...";case"start":return"..."+w.strSlice(Z,X,void 0,J)}},stringifyConfig(Z,Y={}){let{ignoreList:Q=[],minify:J=!1,replacer:q,mode:X="merge",useIniGroup:z=!1,alwaysWrapStrInQuotes:W=!1,oldConfigStr:U=""}=Y,K=new w.SafeTrue(1e5),B=X=="merge"?U:"";for(let F in Z){if(Q.includes(F))continue;if(!z){$(F,Z);continue}if(F===""||typeof Z[F]!=="object"){$(F,Z,"");continue}for(let O in Z[F]){if(Q.includes(O))continue;$(O,Z[F],F)}}return B;function $(F,O,j,_=!1){let L="";if(O[F]!=null&&typeof O[F]==="object")if(O[F].$multiValues){for(let x of O[F])$(F,{[F]:x},j,!0);return}else L=`${JSON.stringify(O[F],q,J?null:3)}
|
|
25
|
+
`;else if(typeof O[F]=="string")if(W||/\s|[{[}\]]/.test(O[F]))L=`"${O[F]}"`;else L=`${O[F]}`;else L=`${O[F]}`;let A=_?-1:w.redexOf(B,new RegExp(`^[ \\t]*\\b${F}\\s*=`,"m")),I;if(j==="")I=-3;else I=z?B.indexOf(`[${j}]`):null;let G=I===-1;if(G)I=B.length+2,B+=`
|
|
26
|
+
|
|
27
|
+
[${j}]
|
|
28
|
+
`;if(A==-1){let x=J?`${F}=${L}
|
|
29
|
+
`:`${F} = ${L}
|
|
30
|
+
`;if(z)if(G)B+=x+`
|
|
31
|
+
`;else{let c=w.redexOf(B,new RegExp(`^\\s*
|
|
32
|
+
$`,"m"),I);B=w.strSplice(B,c,0,x)}else B+=x;return}let P=null,T=null;if(z)P=w.redexOf(B.slice(0,A),w.REGEXP.IniGroups,-1),T=P==I?j:B.slice(P+1,B.slice(P,A).indexOf("]")+P);let S=B.indexOf("=",A)+1,y=w.getMatchAllIndexes(B.slice(S).matchAll(/(?<!\\)[#\n;]/g))?.[0]??-1;if(y==-1)y=B.length;else y+=S;let g=B[y]===`
|
|
33
33
|
`?y:B.indexOf(`
|
|
34
|
-
`,y+1);if(
|
|
35
|
-
Reason: loop limit reached`);return
|
|
36
|
-
`);for(let T=0;T<
|
|
37
|
-
`)),
|
|
38
|
-
`:""))}return W.join("");function
|
|
39
|
-
`,J.liveLog)console.log(z);return X==="void"?void 0:X}};attachTracer(Y,Q=""){if(Q.length>100)return this;if(typeof Y!=="object")return this;for(let J of Object.getOwnPropertyNames(Y)){let q=Y[J];if(Object.prototype.toString.call(q)==="[object Function]"){if(!
|
|
40
|
-
`){if(
|
|
41
|
-
`),_0=null;for(let Y0=0;Y0<V0.length;Y0++){if(_0)V0[Y0]=_0+V0[Y0];_0=
|
|
42
|
-
`);function y(h){if(typeof h==="number"){let m=Math.max(0,Math.floor(h));return[m,m,m,m]}if(!h.length)return[1,1,1,1];let s=h.map((m)=>Math.max(0,Math.floor(m||0)));switch(s.length){case 1:return[s[0],s[0],s[0],s[0]];case 2:return[s[0],s[1],s[0],s[1]];case 3:return[s[0],s[1],s[2],s[1]];default:return[s[0],s[1],s[2],s[3]]}}function g(h,s){if(typeof h==="string")return Array(s).fill(h);return Array(s).fill("left").map((m,n)=>h[n]??h[h.length-1]??"left")}function
|
|
43
|
-
`)z-=1,W+=1;else if(K==="u"&&Y[W+2]==="{")W=Y.indexOf("}",W+3);else W+=
|
|
44
|
-
`]),
|
|
34
|
+
`,y+1);if(D(S,y))y=V(S);if(T&&T!==j){let x=B.slice(A,g+1),c=g-A,v=S-A,J0=y-A;if(B=w.strSplice(B,A,c+1,""),I>A)I-=c;else I++;A=I+j.length+2,S=A+v,y=A+J0,B=w.strSplice(B,A,0,x)}B=w.strSplice(B,S,y-S,(J?"":" ")+L);{let x=0;while(B[S+(x-2)]==" ")x--;if(J&&x<0)B=w.strSplice(B,S+x-1,-x,"");else if(!J&&x!==-1)B=w.strSplice(B,S+x-1,-x," ")}}function V(F){let O=0,j=F,_=!1;do{if(j++,_){if(B[j]=='"'&&B[j-1]!="\\")_=!1;continue}if(B[j]=='"'){_=!0;continue}if(B[j]=="{"||B[j]=="[")O++;if(B[j]=="}"||B[j]=="]")O--}while(O&&K.True);if(K.True==!1)throw Error(`failed to write config
|
|
35
|
+
Reason: loop limit reached`);return j+1}function D(F,O){return/^[\t ]*[[{]/.test(B.slice(F,O))}},strJustify(Z,Y,Q={}){let{filler:J=" ",align:q="center",overflow:X="hidden",collapseLocation:z="end",redundancyLv:W=0}=Q,U=Z instanceof Array,K=U?Z.join(""):Z,B=w.ex_length(K,W);if(B>Y){if(X=="collapse")return w.strLimit(K,Y,z);if(X=="hidden")return K.slice(0,Y);return K}switch(q){case"spacebetween":if(U){let $=J.repeat((Y-B)/(Z.length-1));return Z.reduce((V,D,F)=>{if(F==0)return V;return V+$+D},Z[0])}default:case"center":return w.strSurround(K,J,Y);case"right":return w.padStart(K,Y,J);case"left":return w.padEnd(K,Y,J)}},strLimit(Z,Y,Q="mid",J=0){let q=w.ex_length(Z,J);if(q<=Y)return Z;let X=q-(q-Y)-3;switch(Q){default:if(f8)process?.emitWarning(`'${Q}' is not a valid location type.`);else throw Error(`'${Q}' is not a valid location type.`);case"mid":{let z=X>>1;return w.strSlice(Z,0,z)+"..."+w.strSlice(Z,q-z+1)}case"end":return w.strSlice(Z,0,X)+"...";case"start":return"..."+w.strSlice(Z,q-X)}},strSlice(Z,Y,Q,J=0){let q=[...Z.matchAll(w.REGEXP.ANSICode)].map((W)=>{return{start:W.index,end:W.index+W[0].length,length:W[0].length}});if(!Q)Q=w.ex_length(Z,J);let X=0,z=0;for(let W=0;W<q.length;W++){if(q[W].start-X<Y)X+=q[W].length;if(q[W].start-z<=Q)z+=q[W].length;if(q[W].start-z>Q)break}return Z.slice(Y+X,Q+z)},strSplice(Z,Y,Q,J=null){if(Q<0)Q=0;if(Y<Z.length*-1)Y=0;if(J)return Z.slice(0,Y)+J+(Y<0&&Q+Y>=0?"":Z.slice(Y+Q));else return Z.slice(0,Y)+(Y<0&&Q+Y>=0?"":Z.slice(Y+Q))},strSurround(Z,Y,Q,J=0){let q=w.ex_length(Z,J),X=Math.ceil(Q/2-q/2);return w.padEnd(" ",X,Y,J)+w.padEnd(Z,Q/2+q/2,Y,J)},strWrap(Z,Y,Q={}){if(!Z)return"";let{indent:J="",firstIndent:q="",mode:X="softboundary",redundancyLv:z=0}=Q,W=[],U=X=="softboundary",K=Y*0.67,B=w.REGEXP.ANSICode,$=/[\s,.;:()[\]})]/,V=/[-_・⧸/\\、'""!^**=+「【】」()]/,D=typeof Intl<"u"&&Intl.Segmenter?new Intl.Segmenter(void 0,{granularity:"grapheme"}):null,F=new Map;if(typeof q=="number")q="".padEnd(q," ");if(typeof J=="number")J="".padEnd(J," ");let O=Z.split(`
|
|
36
|
+
`);for(let T=0;T<O.length;T++){let S=!1;while(j(O[T])){let g=L(O[T]),x=g>0?g:Math.min(O[T].length,Y);if(!U)x=_(O[T]);else x=P(O[T],x);if(x>=O[T].length)break;if(J!=null)if(q!=null)W.push(q),q=null;else W.push(J);let c=O[T].substring(0,x);W.push(I(c).concat(`
|
|
37
|
+
`)),O[T]=O[T].substring(x).trimStart(),S=!0}if(J!=null)if(q!=null)W.push(q),q=null;else W.push(J);let y=S?I(O[T]):O[T];W.push(y.concat(T<O.length-1?`
|
|
38
|
+
`:""))}return W.join("");function j(T){let S=w.ex_length(T,z);if(S>Y)return!0;if(U)return!1;if(S!==Y)return!1;if(z<0)return!1;B.lastIndex=0;let y=B.test(T);if(B.lastIndex=0,!y)return!1;return T.length>Y}function _(T){let S=0,y=0,g=0;B.lastIndex=0;let x=B.exec(T);while(x){let v=x.index??0;if(v>g){let m=c(T.slice(g,v),g);if(m>0)return m}let J0=v,h=J0+x[0].length,s=z<0?x[0].length:0;if(S+s>Y){if(y>0)return y;return J0>0?J0:h}S+=s,g=h,x=B.exec(T)}if(g<T.length){let v=c(T.slice(g),g);if(v>0)return v;g=T.length}if(j(T)&&y>0&&y<T.length)return y;return g||T.length;function c(v,J0){if(!v)return 0;let h=0,s=(m)=>{let n=J0+h,a=n+m.length,r=A(m),V0=S+r;if(V0>Y){if(y>0)return y;return n>0?n:a}if(S=V0,/\s/.test(m))y=n;else if($.test(m)||V.test(m))y=a;return h+=m.length,0};if(D&&z>=2){for(let m of D.segment(v)){let n=s(m.segment);if(n>0)return n}return 0}if(z>=2){let m=w.REGEXP.EmojiEach,n=0;while(n<v.length){m.lastIndex=n;let a=m.exec(v),r=null;if(a&&a.index===n)r=a[0],n+=r.length;else{let _0=v.codePointAt(n);r=String.fromCodePoint(_0),n+=r.length}let V0=s(r);if(V0>0)return V0}return 0}for(let m of v){let n=s(m);if(n>0)return n}return 0}}function L(T){let S=0,y=0,g=0,x=null,c=null,v=null,J0=null,h=null,s=null,m=!1,n=0;B.lastIndex=0;let a=B.exec(T);while(a&&!m){let Y0=a.index??0;if(Y0>n){if(V0(T.slice(n,Y0)))break}if(_0(a[0],!0))break;n=Y0+a[0].length,a=B.exec(T)}if(!m&&n<T.length)V0(T.slice(n));if(!U){let Y0=G(c,x)??g??y??T.length;return typeof Y0=="number"?Y0:Y0.breakIndex}let r=v??J0??x??c;if(s){let Y0=s.width-Y;if(Y0>0&&Y0<=Math.max(2,Math.ceil(Y*0.15)))return s.breakIndex}if(h){let Y0=h.width-Y,N0=Math.max(2,Math.ceil(Y*0.2));if(!h.isWhitespace&&Y0>0&&Y0<=N0)return h.breakIndex;if(h.isWhitespace&&z==1&&Y0>0&&Y0<=Math.max(1,Math.ceil(Y*0.12))){let u0=r?r.breakIndex:0,k0=T.slice(u0,h.breakIndex);if(/[^\x00-\x7F]/.test(k0))return h.breakIndex}if(r){let u0=T.slice(r.breakIndex,h.breakIndex).trim();if(z<=0&&h.isWhitespace&&Y0>0&&Y0<=N0&&/^[A-Za-z][A-Za-z'-]{0,11}$/.test(u0))return h.breakIndex}}if(r)return r.breakIndex;if(h)return h.breakIndex;if(s)return s.breakIndex;return y||T.length;function V0(Y0){if(!Y0)return!1;if(D&&z>=2){for(let N0 of D.segment(Y0))if(_0(N0.segment,!1))return!0;return!1}if(z>=2){let N0=w.REGEXP.EmojiEach,u0=0;while(u0<Y0.length){N0.lastIndex=u0;let k0=N0.exec(Y0),C0=null;if(k0&&k0.index===u0)C0=k0[0],u0+=C0.length;else{let x0=Y0.codePointAt(u0);C0=String.fromCodePoint(x0),u0+=C0.length}if(_0(C0,!1))return!0}return!1}for(let N0 of Y0)if(_0(N0,!1))return!0;return!1}function _0(Y0,N0){let u0=N0?z<0?Y0.length:0:A(Y0),k0=S+u0,C0=y;if(y+=Y0.length,!N0){if($.test(Y0)){let x0=Y0.trim().length===0,a0=x0?C0:y,C6=x0?S:k0,p0={breakIndex:a0,width:C6,isWhitespace:x0};if(C6<=Y){if(x=p0,C6>=K)v=p0}else if(!h)h=p0}if(V.test(Y0)){let x0={breakIndex:y,width:k0};if(x0.width<=Y){if(c=x0,x0.width>=K)J0=x0}else if(!s)s=x0}}if(!g&&k0>=Y)if(k0===Y)g=y;else if(C0===0&&N0)g=y;else g=C0>0?C0:y;if(S=k0,!U)return S>=Y;if(S<Y)return!1;if(h||s)return!0;if(v||J0)return!1;return!1}}function A(T){if(z<1)return T.length;let S=F.get(T);if(S!=null)return S;let y=w.ex_length(T,z);return F.set(T,y),y}function I(T){if(!T)return T;let S=[],y=0;B.lastIndex=0;let g=B.exec(T);while(g){let x=g.index??0;if(x>y)S.push({value:T.slice(y,x),isAnsi:!1});S.push({value:g[0],isAnsi:!0}),y=x+g[0].length,g=B.exec(T)}if(y<T.length)S.push({value:T.slice(y),isAnsi:!1});if(S.length===0)return T.replace(/\s+$/g,"");for(let x=S.length-1;x>=0;x--){if(S[x].isAnsi)continue;S[x].value=S[x].value.replace(/\s+$/g,"");break}return S.map((x)=>x.value).join("")}function G(T,S){if(!T)return S;if(!S)return T;return T.width>=S.width?T:S}function P(T,S){if(S<=0||S>=T.length)return S;B.lastIndex=0;let y=B.exec(T);while(y){let g=y.index??0,x=g+y[0].length;if(S>g&&S<x){if(g===0)return x;return g}y=B.exec(T)}return S}},supportsColor(Z=process?.stdout){if(!f8)return 3;if(w.CheckCache.forceColor===!1)return 0;if(w.argvHasFlag("color=16m")||w.argvHasFlag("color=full")||w.argvHasFlag("color=truecolor"))return 3;if(w.argvHasFlag("color=256"))return 2;if(Z&&!Z.isTTY&&w.CheckCache.forceColor!==!0)return 0;let Y=w.CheckCache.forceColor?1:0;if(process.platform==="win32"){if(!w._modules.os)w._modules.os=ON("os");let J=w._modules.os.release().split(".");if(Number(process.versions.node.split(".")[0])>=8&&Number(J[0])>=10&&Number(J[2])>=10586)return Number(J[2])>=14931?3:2;return 1}let{env:Q}=process;if("CI"in Q){if(["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some((J)=>(J in Q))||Q.CI_NAME==="codeship")return 1;return Y}if("TEAMCITY_VERSION"in Q)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Q.TEAMCITY_VERSION)?1:0;if(Q.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Q){let J=parseInt((Q.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Q.TERM_PROGRAM){case"iTerm.app":return J>=3?3:2;case"Apple_Terminal":return 2}}if(/-256(color)?$/i.test(Q.TERM))return 2;if(/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Q.TERM))return 1;if("COLORTERM"in Q)return 1;if(Q.TERM==="dumb")return Y;return Y},supportsHyperlink(Z=process?.stdout,Y=!1){if(!f8)return!0;let{env:Q}=process;if(!Q)return!1;if("FORCE_HYPERLINK"in Q)return!(Q.FORCE_HYPERLINK.length>0&&parseInt(Q.FORCE_HYPERLINK,10)===0);if(w.argvHasFlag("no-hyperlink")||w.argvHasFlag("no-hyperlinks")||w.argvHasFlag("hyperlink=false")||w.argvHasFlag("hyperlink=never"))return!1;if(w.argvHasFlag("hyperlink=true")||w.argvHasFlag("hyperlink=always"))return!0;if("NETLIFY"in Q)return!0;if(w.CheckCache.supportsColor>0)return!0;if(Z&&!Z.isTTY)return!1;if(process.platform==="win32")return!1;if("CI"in Q)return!1;if("TEAMCITY_VERSION"in Q)return!1;if("TERM_PROGRAM"in Q){let q=J(Q.TERM_PROGRAM_VERSION);switch(Q.TERM_PROGRAM){case"iTerm.app":if(q.major===3)return q.minor>=1;return q.major>3;case"WezTerm":return q.major>=20200620;case"vscode":return q.major>1||q.major===1&&q.minor>=72}}if("VTE_VERSION"in Q){if(Q.VTE_VERSION==="0.50.0")return!1;let q=J(Q.VTE_VERSION);return q.major>0||q.minor>=50}return!1;function J(q){if(/^\d{3,4}$/.test(q)){let z=/(\d{1,2})(\d{2})/.exec(q);return{major:0,minor:parseInt(z[1],10),patch:parseInt(z[2],10)}}let X=(q||"").split(".").map((z)=>parseInt(z,10));return{major:X[0],minor:X[1],patch:X[2]}}},surroundedBy(Z,Y,Q){if(Y<0)return!1;let J=-1/0,q=1/0,X=Z=="{"||Z=="["||Z=="("||Z=="<";for(let W=Y;W>0;W-=2){let U=Q.lastIndexOf(Z,W);if(U==-1)break;else J=U;if(Q[J-1]=="\\")J=-1/0}for(let W=0;W<Q.length;W+=2){let U=Q.indexOf(X?z(Z):Z,W);if(U==-1)break;else q=U;if(Q[q-1]=="\\")q=1/0}if(J==-1/0||q==1/0)return!1;return J<Y&&q>Y;function z(W){return String.fromCharCode(W.charCodeAt(0)+(W[0]=="("?1:2))}},Timer:class Z{time;resolution;isRunning=!1;maxTime;_res;_interval;_lastCheck=0;_onceEndCallback;_waitCallback;constructor(Y,Q="ms"){switch(this.maxTime=this.time=Y,this.resolution=Q,Q){case"ms":this._res=1;break;case"s":this._res=1000;break;case"m":this._res=60000;break}}start(){if(this.isRunning||this.time<=0)return;return this.isRunning=!0,this._lastCheck=Date.now(),this._interval=setInterval(this._checkTime,this._res==1?4:this._res/100),this}stop(){if(!this.isRunning)return;return clearInterval(this._interval),this.isRunning=!1,this.reset()}pause(){if(!this.isRunning)return;clearInterval(this._interval),this.isRunning=!1;return}reset(){return this.time=this.maxTime,this}async wait(){if(!this.isRunning)return;return new Promise((Y)=>{this._waitCallback=()=>{this._waitCallback=null,Y()}})}onceEnd(Y){return this._onceEndCallback=Y,this}_checkTime=()=>{let Y=Date.now(),Q=(Y-this._lastCheck)/this._res;if(this.time-=Q,this._lastCheck=Y,this.time>0)return;if(this.stop(),this.time=0,this._onceEndCallback)this._onceEndCallback(),this._onceEndCallback=null;if(this._waitCallback)this._waitCallback()}},toPlace(Z){switch(Z){case 1:return"1st";case 2:return"2nd";case 3:return"3rd";default:return Z+"th"}},toShortNum(Z,Y=2,Q=1000,J=!1,q=-Number.MAX_SAFE_INTEGER,X=Number.MAX_SAFE_INTEGER){if(Z===0)return"0";let z=Math.abs(Z),W=Math.sign(Z),U=z>0&&z<1,K=w.MathKit.clamp(Math.floor(Math.log(z)/Math.log(Q)),q,X);Z=Z/Math.pow(Q,K)*W;let B=w.maxFraction(Z,Y,J),V={4:"T",2:"M",3:"G",1:"k",0:"","-1":"m","-2":"μ","-3":"n","-4":"p"}[K]??`e${U?"":"+"}${K*3}`;return B+V},Tracer:class Z{liveLog=!0;log="";startTime;enableLogging=!1;recursive=!1;constructor(){this.startTime=new Date}createTracker=function(Y,Q,J){let q=(X,z)=>{let W=X.length;if(W<=z)return X;let K=W-(W-z)-3>>1;return X.slice(0,K)+"..."+X.slice(W-K+1)};return function(){if(!J.enableLogging)return Y.apply(this,arguments);let X=Y.apply(this,arguments)??"void",z="["+w.jsTime.howLong(J.startTime)+"] "+Q+"(";for(let W=0;W<arguments.length;W++){if(W>0)z+=", ";let U=w.yuString(arguments[W]);z+=U.trim().length?q(U,70):`"${U}"`}if(X==="void")z+=")";else z+="): "+q(w.yuString(X),70);if(J.log+=z+`
|
|
39
|
+
`,J.liveLog)console.log(z);return X==="void"?void 0:X}};attachTracer(Y,Q=""){if(Q.length>100)return this;if(typeof Y!=="object")return this;for(let J of Object.getOwnPropertyNames(Y)){let q=Y[J];if(Object.prototype.toString.call(q)==="[object Function]"){if(!w.isClass(q))Y[J]=this.createTracker(q,Q+J,this);if(this.recursive&&w.propertiesCount(q)>0)for(let X of Object.getOwnPropertyNames(q)){let z=q[X];return this.attachTracer(z,Q+J+".")}}}return this}},writeConfig(Z,Y,Q={}){if(!w._modules.fs)throw Error('fs module is required for Tools.writeConfig()\nimport them with `Tools._modules.fs = require("fs")`');let{ignoreList:J=[],minify:q=!1,replacer:X,mode:z="merge",useIniGroup:W=!1,alwaysWrapStrInQuotes:U=!1}=Q,K="";if(w._modules.fs.existsSync(Y)&&z=="merge")K=w._modules.fs.readFileSync(Y,{encoding:"utf-8"});K=w.stringifyConfig(Z,{ignoreList:J,minify:q,replacer:X,mode:z,useIniGroup:W,alwaysWrapStrInQuotes:U,oldConfigStr:K}),w._modules.fs.writeFileSync(Y,K,{encoding:"utf-8"})},yuString(Z,Y={}){let{color:Q=!1,defColor:J=void 0}=Y;switch(typeof Z){case"string":if(Q)return w.ncc(8373322)+`"${Z}"`+w.ncc(J);return`"${Z}"`;case"bigint":case"number":if(Q)return w.ncc(11609489)+Z+w.ncc(J);case"boolean":case"undefined":if(Q)return w.ncc(15756194)+Z+w.ncc(J);return Z+"";case"function":if(Q)return(w.isAsyncFunction(Z)?w.ncc(4802889)+"async ":"")+(w.isArrowFunction(Z)?w.ncc(13401911)+(Z.name||w.ncc(4802889)+"[anonymous]"+w.ncc(13401911))+" () => {...}":w.ncc(13401911)+(Z.name||w.ncc(4802889)+"[anonymous]"+w.ncc(13401911))+"()")+w.ncc(J);return(w.isAsyncFunction(Z)?"async ":"")+(w.isArrowFunction(Z)?(Z.name||"[anonymous]")+" () => {...}":(Z.name||"[anonymous]")+"()");case"symbol":if(Q)return w.ncc(13401911)+Z.toString()+w.ncc(J);return Z.toString()}if(Z==null){if(Q)return w.ncc(13136006)+Z+w.ncc(J);return Z+""}if(Z instanceof Date){if(Q)return w.ncc(11550650)+"Date"+w.ncc(J)+" "+Z.toISOString();return"Date "+Z.toISOString()}if(Z instanceof RegExp){if(Q)return w.ncc("Yellow")+Z.toString()+w.ncc(J);return Z.toString()}if(Z instanceof Promise)return w.ncc(11550650)+"Promise"+w.ncc(J)+" {...(pending)}";if(Z instanceof Map){let q=[...Z.entries()];return(Q?w.ncc(11550650)+`Map(${Z.size}) {`+w.ncc(J):`Map(${Z.size}) {`)+w.arrToString(q,{color:Q,defColor:J,noHeader:!0})+"}"}if(Z instanceof Set){let q=[...Z.values()];return(Q?w.ncc(11550650)+`Set(${Z.size}) {`+w.ncc(J):`Set(${Z.size}) {`)+w.arrToString(q,{color:Q,defColor:J,noHeader:!0})+"}"}if(w.isError(Z))return w.Err.toString(Z,{color:Q,defColor:J});try{if(typeof Z==="object"){if(w.isArrayLike(Z))return w.arrToString(Z,{color:Q,defColor:J});return w.objToString(Z,{color:Q,defColor:J})}}catch{}return"[unknown]"}};if(typeof window<"u")window._tools=w;({arrFindLast:yy,arrToString:PX,argvHasFlag:fy,asyncSleep:K7,beautifyJson:hy,beforeExit:xX,changeDateTimezone:gy,charTypeAt:my,CheckCache:Q6,cleanArr:py,cleanComments:uy,cleanString:bX,CONSTS:mZ,Convert:dy,ConsoleTime:cy,compareDate:ly,DataScienceKit:vX,deferredFunc:ny,digitAt:oy,digitAtRange:iy,getDimensions:sy,Err:o,escapeRegExp:ay,estimateStrComplexity:B7,ex_length:r0,fileNameCleaner:ry,fixFilePath:ty,fixYTurl:ey,fileTypeOf:Zf,getMatchAllIndexes:Yf,getMatchAllResults:Qf,getRandomInt:Jf,getProcessTime:qf,hasEmojiEst:Xf,hyperlink:S6,IDGenerator:zf,includesWord:Hf,IPC:Wf,isArrayLike:Uf,isArrowFunction:Kf,isAsyncFunction:Bf,isClass:$f,isNumber:Ff,isEmptyArray:Vf,isEmptyObject:Of,isError:SX,isValidFilePath:Df,JSONReplacer:Mf,JSONReviver:jf,jsTime:g8,lazySplit:_f,remap:yX,MathKit:o0,maxFraction:m8,ncc:M0,nearestNumber:Nf,objectMap:If,objValueAt:Lf,objToString:wf,propertiesCount:Af,padEnd:aQ,padStart:Gf,parseArgs:Cf,parseBool:Rf,parseConfig:Tf,parseValue:kf,pass:Ef,Progress:Pf,proximate:xf,randomPick:bf,redexOf:vf,REGEXP:fX,resolveNodeEnv:Sf,SafeTrue:hX,search:yf,sleep:ff,SpawnMirror:hf,strClamp:p8,stringifyConfig:gf,strJustify:b0,strLimit:B4,strSlice:gX,strSplice:mf,strSurround:pf,strWrap:t,supportsColor:uf,supportsHyperlink:df,surroundedBy:cf,Timer:lf,toPlace:nf,toShortNum:w6,Tracer:of,writeConfig:sf,yuString:u}=w)});var rQ;var mX=N(()=>{rQ={name:"gdx",version:"0.4.5",description:"Git, but with better DX. The raw power of Git, aligned with human workflows.",homepage:"https://github.com/Type-Delta/gdx#readme",bugs:{url:"https://github.com/Type-Delta/gdx/issues"},repository:{type:"git",url:"git+https://github.com/Type-Delta/gdx.git"},keywords:["git","dx","cli-wrapper"],license:"MIT",author:"Type-Delta",type:"module",main:"dist/index.js",bin:{gdx:"scripts/launcher.cjs"},files:["dist/*.js","dist/workers/*.js","scripts/postinstall.cjs","scripts/launcher.cjs","README.md","LICENSE"],packageManager:"bun@1.3.10",scripts:{"prepare-dev":"bun i && bun run transpile-esm",start:"bun run src/index.ts","start:profile":"bun --cpu-prof src/index.ts","start:node":"tsx src/index.ts","transpile-esm":"bunx tsc -p lib/tsconfig.json && bun run scripts/transform-tools.mjs",check:"bun run ts-check && bun run lint && bun run build",lint:"bun run ts-check && eslint src --ext .ts -c eslint.config.ts --fix",test:"bun test",build:"bun run transpile-esm && bun build ./src/index.ts --outfile=./bin/gdx --compile --bytecode --production --keep-names","ts-check":"bunx tsc --noEmit","package:node":"bun run transpile-esm && bun build ./src/index.ts --outdir=./dist --target=node --external=keytar --external=cspell-lib --external=@shikijs/cli --external=yaml --external=openai --external=fflate --format=esm --production --keep-names && bun build ./src/workers/generic.worker.ts --outfile=./dist/workers/generic.worker.min.js --target=node --external=@shikijs/cli --format=esm --production --minify --keep-names",prepack:"bun run package:node",postinstall:"node scripts/postinstall.cjs",prettier:'prettier --write "src/**/*.ts" "test/**/*.ts" "./*.md"',"dummy-editor":"bun ./scripts/dummyEditor.mjs","bench:litedent":"bun run ./test/benchmarks/litedent.bench.ts","bench:git-config":"bun run ./test/benchmarks/git-config.bench.ts","bench:strwrap":"bun run ./test/benchmarks/tools/strwrap.bench.js"},devDependencies:{"@babel/cli":"^7.28.6","@babel/core":"^7.29.0","@babel/preset-env":"^7.29.5","@babel/preset-typescript":"^7.28.5","@eslint/js":"^9.39.4","@sinclair/typebox":"^0.34.49","@types/chai":"^5.2.3","@types/ini":"^4.1.1","@typescript-eslint/eslint-plugin":"^8.59.4","@typescript-eslint/parser":"^8.59.4","bun-types":"latest",chai:"^6.2.2",dedent:"^1.7.2",eslint:"^10.4.0",execa:"^9.6.1",ini:"^7.0.0",jiti:"^2.7.0",prettier:"^3.8.3","smol-toml":"^1.6.1",tinybench:"^6.0.2",tsx:"^4.22.3",typescript:"^6.0.3","typescript-eslint":"^8.59.4","unicode-animations":"^1.0.3"},dependencies:{"@shikijs/cli":"^4.1.0","cspell-lib":"10.0.0",diff:"^9.0.0",fflate:"^0.8.3",keytar:"^7.9.0",openai:"^6.38.0",yaml:"^2.9.0"}}});function d0(Z){return Z.replace(/\\/g,"/")}import pZ from"fs";import pX from"path";import _N from"fs/promises";import{existsSync as l,readFileSync as Z4,writeFileSync as $4,mkdirSync as i0,mkdtempSync as F7,rmSync as y6,accessSync as dX,readdirSync as l6,appendFileSync as cX,unlinkSync as tQ,cpSync as lX,constants as eQ}from"fs";import{access as nX,rm as _6,rmdir as Xh,mkdir as b4,mkdtemp as Z2,readdir as u8,readlink as zh,rename as V7,stat as f6,link as Hh,unlink as O7,writeFile as c0,appendFile as Wh,readFile as f0,cp as Y2}from"fs/promises";async function dZ(Z){if(!Z)return;try{if(!pZ.existsSync(Z))return;return(await _N.stat(Z)).mtimeMs}catch{return}}function uZ(Z){if(!Z)return"";let Y=Z;try{Y=pZ.realpathSync.native?pZ.realpathSync.native(Z):pZ.realpathSync(Z)}catch{Y=pX.resolve(Z)}return process.platform==="win32"?d0(Y).toLowerCase():Y}function uX(Z,Y){let Q=uZ(Z).replace(/\/+$/,""),J=uZ(Y).replace(/\/+$/,"");if(!Q||!J)return!1;if(J===Q)return!0;return J.startsWith(`${Q}/`)}async function $7(Z,Y){let Q=pZ.readdirSync(Z,{withFileTypes:!0});for(let J of Q.sort((q,X)=>q.name.localeCompare(X.name))){let q=pX.join(Z,J.name);if(J.isDirectory()){await $7(q,Y);continue}if(J.isFile())await Y(q)}}var J6=()=>{};import{constants as NN}from"fs";function C(Z="",Y=`
|
|
40
|
+
`){if(oX){oX(Z+Y);return}process.stdout.write(Z+Y)}async function Q2(Z){try{if(!(await f6(Z)).isFile())return!1;return await nX(Z,NN.X_OK),!0}catch{return!1}}function h0(Z,Y,Q=!1){if(Z==="")return{match:null,candidates:Y,isExact:!1};let J=[];for(let q of Y){if(q===Z)return{match:q,candidates:null,isExact:!0};if(q.startsWith(Z))J.push(q)}if(Q&&J.length>1)J=[J[0]];return{match:J.length===1?J[0]:null,candidates:J,isExact:J.includes(Z)}}function D7(Z){return Z.map((Y)=>{if(/[\s"`$\\]/.test(Y))return`"${Y.replace(/(["\\$`])/g,"\\$1")}"`;return Y})}function J2(Z){if(!Z)return"";return Z.replace(/[/\\]/g,"_").replace(/[<>:"|?*\x00-\x1f]/g,"_")}function iX(Z){return["1","true","yes","on"].includes(Z.toLowerCase())}function sX(Z,Y){let Q=Z.split(".").map(Number),J=Y.split(".").map(Number),q=Math.max(Q.length,J.length);for(let X=0;X<q;X++){let z=Q[X]||0,W=J[X]||0;if(z>W)return 1;if(z<W)return-1}return 0}function aX(Z,Y){let Q=[],J=-1;for(let q=0;q<Z.length;q++){let X=Z[q],z=Y(X,q,Z);if(!Q[z]){if(Q[z]=[],J+1<z)for(let W=J+1;W<z;W++)Q[W]=[];J=z}Q[z].push(X)}return Q}var oX=null,h6=()=>{};var R0=N(()=>{J6()});import X2 from"os";import v4 from"path";var q2,R,K6,rX,tX=".gdxrc.toml",eX,cZ,Zz,z2,M7=1,X8=150,n6,o6,j7,H2,_7="gdx-cli",S4,IN="cache.json",LN="macro.json",N7="catppuccin-mocha",E,X0,H,Yz,z8,Qz,W2,Jz,qz,I7,lZ=86400000,g6,H8,L7=360,Xz=7,zz="https://openrouter.ai/api/v1",Hz=512000,nZ,Wz,Uz,Kz,Bz,$z,Fz,U2,Vz="https://github.com/github-linguist/linguist/raw/refs/heads/main/lib/linguist/languages.yml",K2="languages.catalog",Oz,Dz=4000,B2,Mz=7,$2=3,jz=7,_z=50,Nz=25,F2=10,Iz=28,w7=1,F4=".gdxsnap",Lz=64,i6=7,oZ="GDX_SNAP_META";var H0=N(()=>{mX();R0();z0();q2=v4.basename(process.argv[0]||"gdx",v4.extname(process.argv[0]||"")),R=q2.startsWith("bun")||q2.startsWith("node")?"gdx":q2,K6=process.env.GDX_TEMP_DIR||X2.tmpdir(),rX=process.env.GDX_CURRENT_DIR||process.cwd(),eX=v4.join(X2.homedir(),".gdx"),cZ=v4.join(eX,tX),Zz=v4.join(K6,"gdx","gdx.log"),z2=v4.join(X2.homedir(),tX),n6=process.env.GDX_RESULT,o6=rQ.version||"unknown",j7=rQ.homepage||"",H2=process.env.GDX_WRITE_LOGS!=null?iX(process.env.GDX_WRITE_LOGS):!0,S4=["llm.apiKey"],E={OceanDeepBlue:[46,149,153],OceanGreen:[57,211,83],ForestGreen:[34,139,34],SunsetOrange:[255,99,71],MidnightBlack:[10,16,36],Zinc700:[63,63,70],Zinc500:[113,113,122],Zinc400:[161,161,170],Zinc100:[244,244,245],Zinc050:[250,250,250],Fuchsia400:[232,121,249],Teal300:[94,234,212]},X0={base:[30,30,46],mantle:[24,24,37],crust:[17,17,27],surface0:[49,50,68],surface1:[69,71,90],overlay0:[147,153,178],overlay1:[127,132,156],text:[205,214,244],green:[166,227,161],red:[243,139,168],yellow:[249,226,175],blue:[137,180,250],cyan:[148,226,213],lavender:[180,190,254]},H={reset:M0(),normal:M0("Normal"),black:M0("Black"),white:M0("White"),red:M0("Red"),green:M0("Green"),yellow:M0("Yellow"),blue:M0("Blue"),magenta:M0("Magenta"),cyan:M0("Cyan"),dim:M0("Dim"),italic:M0("Italic"),bright:M0("Bright"),invert:M0("Invert"),underline:M0("Underline"),bgWhite:M0("BgWhite"),bgRed:M0("BgRed"),bgYellow:M0("BgYellow")},Yz=["⠁⠀","⠋⠀","⠟⠁","⡿⠋","⣿⠟","⣿⡿","⣿⣿","⣿⣿","⣾⣿","⣴⣿","⣠⣾","⢀⣴","⠀⣠","⠀⢀","⠀⠀","⠀⠀","⠀⠀","⠀⠀","⠀⠀","⠀⠀"],z8={AVG_CHARS_PER_LINE:40,AVG_LINES_PER_FUNCTION:45,AVG_LINES_PER_FILE:500},Qz=[/api[\w_-]?key[\w_-]?\s*=\s*['"].+['"]/i,/access[\w_-]?token[\w_-]?\s*=\s*['"].+['"]/i,/private[\w_-]?key[\w_-]?\s*=\s*['"].+['"]/i,/sk-ant-[\d\w]{32,}/,/sk-[\d\w]{32,}/,/sk-or-[\d\w]{32,}/,/-----\s*BEGIN PRIVATE KEY\s*-----/i],W2=/^diff --(git|cc|combined)\b/,Jz=/^diff --(git|cc|combined)\b/m,qz=/^\x1b\[[0-9;]*m/,I7={ts:"typescript",tsx:"tsx",js:"javascript",mjs:"javascript",cjs:"javascript",jsx:"jsx",json:"json",md:"markdown",css:"css",scss:"scss",html:"html",vue:"vue",svelte:"svelte",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",c:"c",cpp:"cpp",h:"c",hpp:"cpp",sh:"bash",bash:"bash",zsh:"bash",yml:"yaml",yaml:"yaml",toml:"toml",xml:"xml",sql:"sql",dockerfile:"dockerfile",docker:"dockerfile",makefile:"makefile",cmake:"cmake",lua:"lua",perl:"perl",php:"php"},g6=v4.join(K6,"gdx",IN),H8=v4.join(eX,LN),nZ=["add","branch","checkout","clone","commit","diff","log","pull","push","rebase","reset","revert","merge","init","stash","status","switch","submodule","tag","fetch","remote","show","config","parallel","nocap","clear","reword","gdx-config","graph","macro","cache","doctor","snap"],Wz=["s","st","co","br","cmi","mg","pl","pu","ps","ad","rv","rb","lg","sta"],Uz=["--loglevel","--ghelp","--bypass","--no-enhance"],Kz=["--loglevel","--init","--shell","--cmd"],Bz=["--ghelp","--bypass","--no-enhance","-gh"],$z=["-C","-c","--git-dir","--work-tree","--namespace","--config-env"],Fz=["--no-pager","--no-optional-locks","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs"],U2=[".pdf",".doc",".docx",".zip",".tar",".png",".jpg",".jpeg",".gif"],Oz=lZ*7,B2=[163,222,407,337,51,174,365,88,80]});function d(Z,Y,Q,J=0,q=1){if(J<0)J=0;else if(q>1)q=1;if(!(J<q)||Q6.supportsColor<3)return Z;let X=Z.length,z=Math.floor(X*J),W=Math.floor(X*q),U=W-z,K=(Q[0]-Y[0])/U,B=(Q[1]-Y[1])/U,$=(Q[2]-Y[2])/U,V="";for(let D=0;D<X;D++)if(D<z)V+=`\x1B[38;2;${Y[0]};${Y[1]};${Y[2]}m${Z[D]}`;else if(D>=z&&D<=W){let F=D-z,O=Math.round(o0.clamp(Y[0]+K*F,0,255)),j=Math.round(o0.clamp(Y[1]+B*F,0,255)),_=Math.round(o0.clamp(Y[2]+$*F,0,255));V+=`\x1B[38;2;${O};${j};${_}m${Z[D]}`}else V+=`\x1B[38;2;${Q[0]};${Q[1]};${Q[2]}m${Z[D]}`;return V+="\x1B[0m",V}function wz(Z,Y,Q){let J=o0.clamp(Math.round(Z[0]+(Y[0]-Z[0])*Q),0,255),q=o0.clamp(Math.round(Z[1]+(Y[1]-Z[1])*Q),0,255),X=o0.clamp(Math.round(Z[2]+(Y[2]-Z[2])*Q),0,255);return[J,q,X]}function Az(Z,Y,Q,J=0.5,q=0.3){if(J<0)J=0;else if(J>1)J=1;if(q<=0||Q6.supportsColor<3)return Z;let X=Z.length,z=J*X,W=q*X,U="";for(let K=0;K<X;K++){let $=Math.abs(K-z)/W;$=o0.clamp($,0,1);let V=Math.round(o0.clamp(Y[0]+(Q[0]-Y[0])*$,0,255)),D=Math.round(o0.clamp(Y[1]+(Q[1]-Y[1])*$,0,255)),F=Math.round(o0.clamp(Y[2]+(Q[2]-Y[2])*$,0,255));U+=`\x1B[38;2;${V};${D};${F}m${Z[K]}`}return U+="\x1B[0m",U}function y4(Z){let Y=o0.clamp(Math.round(Z[0]),0,255),Q=o0.clamp(Math.round(Z[1]),0,255),J=o0.clamp(Math.round(Z[2]),0,255);return(Y<<16)+(Q<<8)+J}function Gz(Z,Y,Q){let J,q,X;if(Y===0)J=q=X=Q;else{let z=(K,B,$)=>{if($<0)$+=1;if($>1)$-=1;if($<0.16666666666666666)return K+(B-K)*6*$;if($<0.5)return B;if($<0.6666666666666666)return K+(B-K)*(0.6666666666666666-$)*6;return K},W=Q<0.5?Q*(1+Y):Q+Y-Q*Y,U=2*Q-W;J=z(U,W,Z+0.3333333333333333),q=z(U,W,Z),X=z(U,W,Z-0.3333333333333333)}return[Math.round(J*255),Math.round(q*255),Math.round(X*255)]}function O6(Z,Y,Q){return[Math.round(Z[0]*(1-Q)+Y[0]*Q),Math.round(Z[1]*(1-Q)+Y[1]*Q),Math.round(Z[2]*(1-Q)+Y[2]*Q)]}function T0(Z){return`\x1B[38;2;${Z[0]};${Z[1]};${Z[2]}m`}function l0(Z){return`\x1B[48;2;${Z[0]};${Z[1]};${Z[2]}m`}function d8(Z){return Z.replace(/\x1b\[[0-9;]*m/g,"")}function iZ(Z,Y,Q,J,q){let W=0,U=1,K=Z;for(let B=0;B<10;B++){let V=GN(K,Y,J)-Z;if(Math.abs(V)<0.000001)break;if(V>0)U=K;else W=K;K=(W+U)/2}return CN(K,Q,q)}function GN(Z,Y,Q){let J=1-Z;return 3*J*J*Z*Y+3*J*Z*Z*Q+Z*Z*Z}function CN(Z,Y,Q){let J=1-Z;return 3*J*J*Z*Y+3*J*Z*Z*Q+Z*Z*Z}function RN(Z){for(let[Y,Q]of wN)if(Q===Z)return Y;return null}function sZ(Z){let Y={},Q=[...Z.matchAll(fX.ANSICode)].reverse();for(let J of Q){let q=J[1],X=RN("\x1B"+q);if(X)if(X==="reset")break;else if(!Y.bg&&X.startsWith("bg"))Y.bg=X;else if(AN.includes(X)){if(!Y.sp)Y.sp=[];Y.sp.unshift(X)}else{if(Y.fg)continue;Y.fg=X}else if(!Y.fg&&q.startsWith("[38;2;")){let[z,W,U]=q.slice(6).split(";").map((K)=>parseInt(K,10));Y.fg=[z,W,U]}else if(!Y.bg&&q.startsWith("[48;2;")){let[z,W,U]=q.slice(6).split(";").map((K)=>parseInt(K,10));Y.bg=[z,W,U]}}return Y}function aZ(Z){let Y="";if(Z.sp)for(let Q of Z.sp){let J=mZ.AnsiColorCodes[Q];if(J)Y+=J}if(Z.fg)if(typeof Z.fg==="string"){let Q=mZ.AnsiColorCodes[Z.fg];if(Q)Y+=Q}else Y+=T0(Z.fg);if(Z.bg)if(typeof Z.bg==="string"){let Q=mZ.AnsiColorCodes[Z.bg];if(Q)Y+=Q}else Y+=l0(Z.bg);return Y}function Rz(Z,Y={}){let{padding:Q=1,columnWidth:J="auto",columnAlign:q="left",borderStyle:X="unicode",borderAnsiColor:z,redundancyLv:W=0}=Y;if(!Z?.length)return"";let U=Math.max(0,...Z.map((h)=>h?.length??0));if(!U)return"";let[K,B,$,V]=y(Q),D=Z.map((h)=>Array(U).fill("").map((s,m)=>String(h?.[m]??""))),F=g(q,U),O=D.map((h)=>h.map((s)=>s.split(/\r?\n/))),j=Array(U).fill(0);for(let h=0;h<U;h++)for(let s=0;s<O.length;s++)for(let m of O[s][h]){let n=r0(m,W);if(n>j[h])j[h]=n}let _=x(J,j),L=O.map((h)=>h.map((s,m)=>{let n=_[m];if(n<=0)return[""];let a=[];for(let r of s){if(r0(r,W)<=n){a.push(r);continue}let V0=t(r,n,{mode:"strict",redundancyLv:W}).split(`
|
|
41
|
+
`),_0=null;for(let Y0=0;Y0<V0.length;Y0++){if(_0)V0[Y0]=_0+V0[Y0];_0=aZ(sZ(V0[Y0]))}a.push(...V0)}return a.length?a:[""]})),A=_.map((h)=>h+V+B),I=c(X),G=v(z),P=G?H.reset:"",T=(h)=>G?`${G}${h}${P}`:h,S=[];if(I)S.push(J0("top"));for(let h=0;h<D.length;h++){let s=L[h],m=Math.max(1,...s.map((a)=>a.length)),n=K+m+$;for(let a=0;a<n;a++){let r=[];for(let _0=0;_0<U;_0++){let Y0=a-K,N0=Y0>=0&&Y0<s[_0].length?s[_0][Y0]:"",u0=b0(N0,_[_0],{align:F[_0],filler:" ",overflow:"visible",redundancyLv:W});r.push(" ".repeat(V)+u0+" ".repeat(B))}if(!I){S.push(r.join(""));continue}let V0=T(I.v);for(let _0=0;_0<r.length;_0++)if(V0+=r[_0],_0<r.length-1)V0+=T(I.v);V0+=T(I.v),S.push(V0)}if(I&&h<D.length-1)S.push(J0("mid"))}if(I)S.push(J0("bottom"));return S.join(`
|
|
42
|
+
`);function y(h){if(typeof h==="number"){let m=Math.max(0,Math.floor(h));return[m,m,m,m]}if(!h.length)return[1,1,1,1];let s=h.map((m)=>Math.max(0,Math.floor(m||0)));switch(s.length){case 1:return[s[0],s[0],s[0],s[0]];case 2:return[s[0],s[1],s[0],s[1]];case 3:return[s[0],s[1],s[2],s[1]];default:return[s[0],s[1],s[2],s[3]]}}function g(h,s){if(typeof h==="string")return Array(s).fill(h);return Array(s).fill("left").map((m,n)=>h[n]??h[h.length-1]??"left")}function x(h,s){if(h==="auto")return[...s];if(typeof h==="number"){let m=Math.max(0,Math.floor(h));return Array(s.length).fill(m)}return s.map((m,n)=>{let a=h[n]??h[h.length-1]??"auto";if(a==="auto")return m;return Math.max(0,Math.floor(a))})}function c(h){if(h==="none")return null;if(h==="ascii")return{topLeft:"+",topJoin:"+",topRight:"+",leftJoin:"+",cross:"+",rightJoin:"+",bottomLeft:"+",bottomJoin:"+",bottomRight:"+",h:"-",v:"|"};return{topLeft:"┌",topJoin:"┬",topRight:"┐",leftJoin:"├",cross:"┼",rightJoin:"┤",bottomLeft:"└",bottomJoin:"┴",bottomRight:"┘",h:"─",v:"│"}}function v(h){if(!h||X==="none")return"";if(typeof h==="string"){if(h.includes("\x1B["))return h;return M0(h)}return M0(y4(h))}function J0(h){if(!I)return"";let s=h==="top"?I.topLeft:h==="bottom"?I.bottomLeft:I.leftJoin,m=h==="top"?I.topJoin:h==="bottom"?I.bottomJoin:I.cross,n=h==="top"?I.topRight:h==="bottom"?I.bottomRight:I.rightJoin,a=T(s);for(let r=0;r<A.length;r++)if(a+=T(I.h.repeat(A[r])),r<A.length-1)a+=T(m);return a+=T(n),a}}var wN,AN,Cz;var v0=N(()=>{z0();H0();wN=Object.entries(mZ.AnsiColorCodes),AN=["bright","dim","italic","underline","inverse","hidden"];Cz={linear:(Z)=>Z,easeIn:(Z)=>iZ(Z,0.42,0,1,1),easeOut:(Z)=>iZ(Z,0,0,0.58,1),easeInOut:(Z)=>iZ(Z,0.42,0,0.58,1),smooth:(Z)=>iZ(Z,0.25,0.1,0.25,1),bounce:(Z)=>iZ(Z,0.68,-0.55,0.265,1.55)}});class V2{usage=0;max;timeout;queue;_onTimeout=null;constructor(Z,Y){this.max=Math.max(1,Z),this.timeout=Y,this.queue=[]}setMax(Z){this.max=Math.max(1,Z)}async acquire(){if(this.usage<this.max){this.usage++;return}return new Promise((Z)=>{let Y=()=>{Z()};if(this.queue.push(Y),this.timeout)setTimeout(()=>{this._onTimeout?.();let Q=this.queue.indexOf(Y);if(Q!==-1)this.queue.splice(Q,1),Z()},this.timeout)})}release(){if(this.queue.length>0)this.queue.shift()();else if(this.usage>0)this.usage--}available(){return this.max-this.usage}onTimeout(Z){return this._onTimeout=Z,this}}var p;var S0=N(()=>{p={exitCodeOverride:-1,finalStringOutput:"",logLevel:"warn",terminalWidth:process.stdout.columns||100,indexArgs:!0,threadResources:new V2(4)}});function n0(Z){if(typeof Z!=="object"||Z===null)return!1;let Y=Object.getPrototypeOf(Z);return(Y===null||Y===Object.prototype||Object.getPrototypeOf(Y)===null)&&!(Symbol.toStringTag in Z)&&!(Symbol.iterator in Z)}import{fileURLToPath as TN}from"node:url";var c8=(Z,Y)=>{let Q=D2(kN(Z));if(typeof Q!=="string")throw TypeError(`${Y} must be a string or a file URL: ${Q}.`);return Q},kN=(Z)=>O2(Z)?Z.toString():Z,O2=(Z)=>typeof Z!=="string"&&Z&&Object.getPrototypeOf(Z)===String.prototype,D2=(Z)=>Z instanceof URL?TN(Z):Z;var l8=()=>{};var A7=(Z,Y=[],Q={})=>{let J=c8(Z,"First argument"),[q,X]=n0(Y)?[[],Y]:[Y,Q];if(!Array.isArray(q))throw TypeError(`Second argument must be either an array of arguments or an options object: ${q}`);if(q.some((U)=>typeof U==="object"&&U!==null))throw TypeError(`Second argument must be an array of strings: ${q}`);let z=q.map(String),W=z.find((U)=>U.includes("\x00"));if(W!==void 0)throw TypeError(`Arguments cannot contain null bytes ("\\0"): ${W}`);if(!n0(X))throw TypeError(`Last argument must be an options object: ${X}`);return[J,z,X]};var M2=N(()=>{l8()});import{StringDecoder as EN}from"node:string_decoder";var Tz,kz=(Z)=>Tz.call(Z)==="[object ArrayBuffer]",t0=(Z)=>Tz.call(Z)==="[object Uint8Array]",V4=(Z)=>new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength),PN,Ez=(Z)=>PN.encode(Z),xN,G7=(Z)=>xN.decode(Z),Pz=(Z,Y)=>{return bN(Z,Y).join("")},bN=(Z,Y)=>{if(Y==="utf8"&&Z.every((X)=>typeof X==="string"))return Z;let Q=new EN(Y),J=Z.map((X)=>typeof X==="string"?Ez(X):X).map((X)=>Q.write(X)),q=Q.end();return q===""?J:[...J,q]},rZ=(Z)=>{if(Z.length===1&&t0(Z[0]))return Z[0];return j2(vN(Z))},vN=(Z)=>Z.map((Y)=>typeof Y==="string"?Ez(Y):Y),j2=(Z)=>{let Y=new Uint8Array(SN(Z)),Q=0;for(let J of Z)Y.set(J,Q),Q+=J.length;return Y},SN=(Z)=>{let Y=0;for(let Q of Z)Y+=Q.length;return Y};var R6=N(()=>{({toString:Tz}=Object.prototype),PN=new TextEncoder,xN=new TextDecoder});import{ChildProcess as yN}from"node:child_process";var Sz=(Z)=>Array.isArray(Z)&&Array.isArray(Z.raw),yz=(Z,Y)=>{let Q=[];for(let[X,z]of Z.entries())Q=fN({templates:Z,expressions:Y,tokens:Q,index:X,template:z});if(Q.length===0)throw TypeError("Template script must not be empty");let[J,...q]=Q;return[J,q,{}]},fN=({templates:Z,expressions:Y,tokens:Q,index:J,template:q})=>{if(q===void 0)throw TypeError(`Invalid backslash sequence: ${Z.raw[J]}`);let{nextTokens:X,leadingWhitespaces:z,trailingWhitespaces:W}=hN(q,Z.raw[J]),U=bz(Q,X,z);if(J===Y.length)return U;let K=Y[J],B=Array.isArray(K)?K.map(($)=>vz($)):[vz(K)];return bz(U,B,W)},hN=(Z,Y)=>{if(Y.length===0)return{nextTokens:[],leadingWhitespaces:!1,trailingWhitespaces:!1};let Q=[],J=0,q=xz.has(Y[0]);for(let z=0,W=0;z<Z.length;z+=1,W+=1){let U=Y[W];if(xz.has(U)){if(J!==z)Q.push(Z.slice(J,z));J=z+1}else if(U==="\\"){let K=Y[W+1];if(K===`
|
|
43
|
+
`)z-=1,W+=1;else if(K==="u"&&Y[W+2]==="{")W=Y.indexOf("}",W+3);else W+=gN[K]??1}}let X=J===Z.length;if(!X)Q.push(Z.slice(J));return{nextTokens:Q,leadingWhitespaces:q,trailingWhitespaces:X}},xz,gN,bz=(Z,Y,Q)=>Q||Z.length===0||Y.length===0?[...Z,...Y]:[...Z.slice(0,-1),`${Z.at(-1)}${Y[0]}`,...Y.slice(1)],vz=(Z)=>{let Y=typeof Z;if(Y==="string")return Z;if(Y==="number")return String(Z);if(n0(Z)&&(("stdout"in Z)||("isMaxBuffer"in Z)))return mN(Z);if(Z instanceof yN||Object.prototype.toString.call(Z)==="[object Promise]")throw TypeError("Unexpected subprocess in template expression. Please use ${await subprocess} instead of ${subprocess}.");throw TypeError(`Unexpected "${Y}" in template expression`)},mN=({stdout:Z})=>{if(typeof Z==="string")return Z;if(t0(Z))return G7(Z);if(Z===void 0)throw TypeError(`Missing result.stdout in template expression. This is probably due to the previous subprocess' "stdout" option.`);throw TypeError(`Unexpected "${typeof Z}" stdout in template expression`)};var fz=N(()=>{R6();xz=new Set([" ","\t","\r",`
|
|
44
|
+
`]),gN={x:3,u:5}});import _2 from"node:process";var s6=(Z)=>C7.includes(Z),C7,m6,R7=(Z)=>m6[Z]??`stdio[${Z}]`;var O4=N(()=>{C7=[_2.stdin,_2.stdout,_2.stderr],m6=["stdin","stdout","stderr"]});import{debuglog as pN}from"node:util";var gz=(Z)=>{let Y={...Z};for(let Q of L2)Y[Q]=N2(Z,Q);return Y},N2=(Z,Y)=>{let Q=Array.from({length:uN(Z)+1}),J=dN(Z[Y],Q,Y);return iN(J,Y)},uN=({stdio:Z})=>Array.isArray(Z)?Math.max(Z.length,m6.length):m6.length,dN=(Z,Y,Q)=>n0(Z)?cN(Z,Y,Q):Y.fill(Z),cN=(Z,Y,Q)=>{for(let J of Object.keys(Z).sort(lN))for(let q of nN(J,Q,Y))Y[q]=Z[J];return Y},lN=(Z,Y)=>hz(Z)<hz(Y)?1:-1,hz=(Z)=>{if(Z==="stdout"||Z==="stderr")return 0;return Z==="all"?2:1},nN=(Z,Y,Q)=>{if(Z==="ipc")return[Q.length-1];let J=I2(Z);if(J===void 0||J===0)throw TypeError(`"${Y}.${Z}" is invalid.
|
|
45
45
|
It must be "${Y}.stdout", "${Y}.stderr", "${Y}.all", "${Y}.ipc", or "${Y}.fd3", "${Y}.fd4" (and so on).`);if(J>=Q.length)throw TypeError(`"${Y}.${Z}" is invalid: that file descriptor does not exist.
|
|
46
|
-
Please set the "stdio" option to ensure that file descriptor exists.`);return J==="all"?[1,2]:[J]},
|
|
47
|
-
`).map((Y)=>
|
|
48
|
-
`),
|
|
46
|
+
Please set the "stdio" option to ensure that file descriptor exists.`);return J==="all"?[1,2]:[J]},I2=(Z)=>{if(Z==="all")return Z;if(m6.includes(Z))return m6.indexOf(Z);let Y=oN.exec(Z);if(Y!==null)return Number(Y[1])},oN,iN=(Z,Y)=>Z.map((Q)=>Q===void 0?aN[Y]:Q),sN,aN,L2,D4=(Z,Y)=>Y==="ipc"?Z.at(-1):Z[Y];var M4=N(()=>{O4();oN=/^fd(\d+)$/,sN=pN("execa").enabled?"full":"none",aN={lines:!1,buffer:!0,maxBuffer:1e8,verbose:sN,stripFinalNewline:!0},L2=["lines","buffer","maxBuffer","verbose","stripFinalNewline"]});var n8=({verbose:Z},Y)=>w2(Z,Y)!=="none",o8=({verbose:Z},Y)=>!["none","short"].includes(w2(Z,Y)),mz=({verbose:Z},Y)=>{let Q=w2(Z,Y);return T7(Q)?Q:void 0},w2=(Z,Y)=>Y===void 0?rN(Z):D4(Z,Y),rN=(Z)=>Z.find((Y)=>T7(Y))??k7.findLast((Y)=>Z.includes(Y)),T7=(Z)=>typeof Z==="function",k7;var f4=N(()=>{M4();k7=["none","short","full"]});import{platform as tN}from"node:process";import{stripVTControlCharacters as eN}from"node:util";var pz=(Z,Y)=>{let Q=[Z,...Y],J=Q.join(" "),q=Q.map((X)=>XI(uz(X))).join(" ");return{command:J,escapedCommand:q}},tZ=(Z)=>eN(Z).split(`
|
|
47
|
+
`).map((Y)=>uz(Y)).join(`
|
|
48
|
+
`),uz=(Z)=>Z.replaceAll(QI,(Y)=>ZI(Y)),ZI=(Z)=>{let Y=JI[Z];if(Y!==void 0)return Y;let Q=Z.codePointAt(0),J=Q.toString(16);return Q<=qI?`\\u${J.padStart(4,"0")}`:`\\U${J}`},YI=()=>{try{return new RegExp("\\p{Separator}|\\p{Other}","gu")}catch{return/[\s\u0000-\u001F\u007F-\u009F\u00AD]/g}},QI,JI,qI=65535,XI=(Z)=>{if(zI.test(Z))return Z;return tN==="win32"?`"${Z.replaceAll('"','""')}"`:`'${Z.replaceAll("'","'\\''")}'`},zI;var E7=N(()=>{QI=YI(),JI={" ":" ","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},zI=/^[\w./-]+$/});import dz from"node:process";function A2(){let{env:Z}=dz,{TERM:Y,TERM_PROGRAM:Q}=Z;if(dz.platform!=="win32")return Y!=="linux";return Boolean(Z.WT_SESSION)||Boolean(Z.TERMINUS_SUBLIME)||Z.ConEmuTask==="{cmd::Cmder}"||Q==="Terminus-Sublime"||Q==="vscode"||Y==="xterm-256color"||Y==="alacritty"||Y==="rxvt-unicode"||Y==="rxvt-unicode-256color"||Z.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var cz=()=>{};var lz,nz,HI,WI,UI,KI,BI,P7,sh;var oz=N(()=>{cz();lz={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"█",squareDarkShade:"▓",squareMediumShade:"▒",squareLightShade:"░",squareTop:"▀",squareBottom:"▄",squareLeft:"▌",squareRight:"▐",squareCenter:"■",bullet:"●",dot:"․",ellipsis:"…",pointerSmall:"›",triangleUp:"▲",triangleUpSmall:"▴",triangleDown:"▼",triangleDownSmall:"▾",triangleLeftSmall:"◂",triangleRightSmall:"▸",home:"⌂",heart:"♥",musicNote:"♪",musicNoteBeamed:"♫",arrowUp:"↑",arrowDown:"↓",arrowLeft:"←",arrowRight:"→",arrowLeftRight:"↔",arrowUpDown:"↕",almostEqual:"≈",notEqual:"≠",lessOrEqual:"≤",greaterOrEqual:"≥",identical:"≡",infinity:"∞",subscriptZero:"₀",subscriptOne:"₁",subscriptTwo:"₂",subscriptThree:"₃",subscriptFour:"₄",subscriptFive:"₅",subscriptSix:"₆",subscriptSeven:"₇",subscriptEight:"₈",subscriptNine:"₉",oneHalf:"½",oneThird:"⅓",oneQuarter:"¼",oneFifth:"⅕",oneSixth:"⅙",oneEighth:"⅛",twoThirds:"⅔",twoFifths:"⅖",threeQuarters:"¾",threeFifths:"⅗",threeEighths:"⅜",fourFifths:"⅘",fiveSixths:"⅚",fiveEighths:"⅝",sevenEighths:"⅞",line:"─",lineBold:"━",lineDouble:"═",lineDashed0:"┄",lineDashed1:"┅",lineDashed2:"┈",lineDashed3:"┉",lineDashed4:"╌",lineDashed5:"╍",lineDashed6:"╴",lineDashed7:"╶",lineDashed8:"╸",lineDashed9:"╺",lineDashed10:"╼",lineDashed11:"╾",lineDashed12:"−",lineDashed13:"–",lineDashed14:"‐",lineDashed15:"⁃",lineVertical:"│",lineVerticalBold:"┃",lineVerticalDouble:"║",lineVerticalDashed0:"┆",lineVerticalDashed1:"┇",lineVerticalDashed2:"┊",lineVerticalDashed3:"┋",lineVerticalDashed4:"╎",lineVerticalDashed5:"╏",lineVerticalDashed6:"╵",lineVerticalDashed7:"╷",lineVerticalDashed8:"╹",lineVerticalDashed9:"╻",lineVerticalDashed10:"╽",lineVerticalDashed11:"╿",lineDownLeft:"┐",lineDownLeftArc:"╮",lineDownBoldLeftBold:"┓",lineDownBoldLeft:"┒",lineDownLeftBold:"┑",lineDownDoubleLeftDouble:"╗",lineDownDoubleLeft:"╖",lineDownLeftDouble:"╕",lineDownRight:"┌",lineDownRightArc:"╭",lineDownBoldRightBold:"┏",lineDownBoldRight:"┎",lineDownRightBold:"┍",lineDownDoubleRightDouble:"╔",lineDownDoubleRight:"╓",lineDownRightDouble:"╒",lineUpLeft:"┘",lineUpLeftArc:"╯",lineUpBoldLeftBold:"┛",lineUpBoldLeft:"┚",lineUpLeftBold:"┙",lineUpDoubleLeftDouble:"╝",lineUpDoubleLeft:"╜",lineUpLeftDouble:"╛",lineUpRight:"└",lineUpRightArc:"╰",lineUpBoldRightBold:"┗",lineUpBoldRight:"┖",lineUpRightBold:"┕",lineUpDoubleRightDouble:"╚",lineUpDoubleRight:"╙",lineUpRightDouble:"╘",lineUpDownLeft:"┤",lineUpBoldDownBoldLeftBold:"┫",lineUpBoldDownBoldLeft:"┨",lineUpDownLeftBold:"┥",lineUpBoldDownLeftBold:"┩",lineUpDownBoldLeftBold:"┪",lineUpDownBoldLeft:"┧",lineUpBoldDownLeft:"┦",lineUpDoubleDownDoubleLeftDouble:"╣",lineUpDoubleDownDoubleLeft:"╢",lineUpDownLeftDouble:"╡",lineUpDownRight:"├",lineUpBoldDownBoldRightBold:"┣",lineUpBoldDownBoldRight:"┠",lineUpDownRightBold:"┝",lineUpBoldDownRightBold:"┡",lineUpDownBoldRightBold:"┢",lineUpDownBoldRight:"┟",lineUpBoldDownRight:"┞",lineUpDoubleDownDoubleRightDouble:"╠",lineUpDoubleDownDoubleRight:"╟",lineUpDownRightDouble:"╞",lineDownLeftRight:"┬",lineDownBoldLeftBoldRightBold:"┳",lineDownLeftBoldRightBold:"┯",lineDownBoldLeftRight:"┰",lineDownBoldLeftBoldRight:"┱",lineDownBoldLeftRightBold:"┲",lineDownLeftRightBold:"┮",lineDownLeftBoldRight:"┭",lineDownDoubleLeftDoubleRightDouble:"╦",lineDownDoubleLeftRight:"╥",lineDownLeftDoubleRightDouble:"╤",lineUpLeftRight:"┴",lineUpBoldLeftBoldRightBold:"┻",lineUpLeftBoldRightBold:"┷",lineUpBoldLeftRight:"┸",lineUpBoldLeftBoldRight:"┹",lineUpBoldLeftRightBold:"┺",lineUpLeftRightBold:"┶",lineUpLeftBoldRight:"┵",lineUpDoubleLeftDoubleRightDouble:"╩",lineUpDoubleLeftRight:"╨",lineUpLeftDoubleRightDouble:"╧",lineUpDownLeftRight:"┼",lineUpBoldDownBoldLeftBoldRightBold:"╋",lineUpDownBoldLeftBoldRightBold:"╈",lineUpBoldDownLeftBoldRightBold:"╇",lineUpBoldDownBoldLeftRightBold:"╊",lineUpBoldDownBoldLeftBoldRight:"╉",lineUpBoldDownLeftRight:"╀",lineUpDownBoldLeftRight:"╁",lineUpDownLeftBoldRight:"┽",lineUpDownLeftRightBold:"┾",lineUpBoldDownBoldLeftRight:"╂",lineUpDownLeftBoldRightBold:"┿",lineUpBoldDownLeftBoldRight:"╃",lineUpBoldDownLeftRightBold:"╄",lineUpDownBoldLeftBoldRight:"╅",lineUpDownBoldLeftRightBold:"╆",lineUpDoubleDownDoubleLeftDoubleRightDouble:"╬",lineUpDoubleDownDoubleLeftRight:"╫",lineUpDownLeftDoubleRightDouble:"╪",lineCross:"╳",lineBackslash:"╲",lineSlash:"╱"},nz={tick:"✔",info:"ℹ",warning:"⚠",cross:"✘",squareSmall:"◻",squareSmallFilled:"◼",circle:"◯",circleFilled:"◉",circleDotted:"◌",circleDouble:"◎",circleCircle:"ⓞ",circleCross:"ⓧ",circlePipe:"Ⓘ",radioOn:"◉",radioOff:"◯",checkboxOn:"☒",checkboxOff:"☐",checkboxCircleOn:"ⓧ",checkboxCircleOff:"Ⓘ",pointer:"❯",triangleUpOutline:"△",triangleLeft:"◀",triangleRight:"▶",lozenge:"◆",lozengeOutline:"◇",hamburger:"☰",smiley:"㋡",mustache:"෴",star:"★",play:"▶",nodejs:"⬢",oneSeventh:"⅐",oneNinth:"⅑",oneTenth:"⅒"},HI={tick:"√",info:"i",warning:"‼",cross:"×",squareSmall:"□",squareSmallFilled:"■",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(○)",circleCross:"(×)",circlePipe:"(│)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[×]",checkboxOff:"[ ]",checkboxCircleOn:"(×)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"∆",triangleLeft:"◄",triangleRight:"►",lozenge:"♦",lozengeOutline:"◊",hamburger:"≡",smiley:"☺",mustache:"┌─┐",star:"✶",play:"►",nodejs:"♦",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},WI={...lz,...nz},UI={...lz,...HI},KI=A2(),BI=KI?WI:UI,P7=BI,sh=Object.entries(nz)});import $I from"node:tty";var FI,W0=(Z,Y)=>{if(!FI)return(q)=>q;let Q=`\x1B[${Z}m`,J=`\x1B[${Y}m`;return(q)=>{let X=q+"",z=X.indexOf(J);if(z===-1)return Q+X+J;let W=Q,U=0,B=(Y===22?J:"")+Q;while(z!==-1)W+=X.slice(U,z)+B,U=z+J.length,z=X.indexOf(J,U);return W+=X.slice(U)+J,W}},th,iz,eh,Zg,Yg,Qg,Jg,qg,Xg,zg,Hg,Wg,Ug,Kg,Bg,$g,Fg,x7,Vg,Og,Dg,Mg,jg,_g,Ng,Ig,Lg,sz,wg,az,Ag,Gg,Cg,Rg,Tg,kg,Eg,Pg,xg,bg,vg;var rz=N(()=>{FI=$I?.WriteStream?.prototype?.hasColors?.()??!1,th=W0(0,0),iz=W0(1,22),eh=W0(2,22),Zg=W0(3,23),Yg=W0(4,24),Qg=W0(53,55),Jg=W0(7,27),qg=W0(8,28),Xg=W0(9,29),zg=W0(30,39),Hg=W0(31,39),Wg=W0(32,39),Ug=W0(33,39),Kg=W0(34,39),Bg=W0(35,39),$g=W0(36,39),Fg=W0(37,39),x7=W0(90,39),Vg=W0(40,49),Og=W0(41,49),Dg=W0(42,49),Mg=W0(43,49),jg=W0(44,49),_g=W0(45,49),Ng=W0(46,49),Ig=W0(47,49),Lg=W0(100,49),sz=W0(91,39),wg=W0(92,39),az=W0(93,39),Ag=W0(94,39),Gg=W0(95,39),Cg=W0(96,39),Rg=W0(97,39),Tg=W0(101,49),kg=W0(102,49),Eg=W0(103,49),Pg=W0(104,49),xg=W0(105,49),bg=W0(106,49),vg=W0(107,49)});var tz=N(()=>{rz()});var YH=({type:Z,message:Y,timestamp:Q,piped:J,commandId:q,result:{failed:X=!1}={},options:{reject:z=!0}})=>{let W=VI(Q),U=OI[Z]({failed:X,reject:z,piped:J}),K=DI[Z]({reject:z});return`${x7(`[${W}]`)} ${x7(`[${q}]`)} ${K(U)} ${K(Y)}`},VI=(Z)=>`${b7(Z.getHours(),2)}:${b7(Z.getMinutes(),2)}:${b7(Z.getSeconds(),2)}.${b7(Z.getMilliseconds(),3)}`,b7=(Z,Y)=>String(Z).padStart(Y,"0"),ez=({failed:Z,reject:Y})=>{if(!Z)return P7.tick;return Y?P7.cross:P7.warning},OI,ZH=(Z)=>Z,DI;var QH=N(()=>{oz();tz();OI={command:({piped:Z})=>Z?"|":"$",output:()=>" ",ipc:()=>"*",error:ez,duration:ez},DI={command:()=>iz,output:()=>ZH,ipc:()=>ZH,error:({reject:Z})=>Z?sz:az,duration:()=>x7}});var JH=(Z,Y,Q)=>{let J=mz(Y,Q);return Z.map(({verboseLine:q,verboseObject:X})=>MI(q,X,J)).filter((q)=>q!==void 0).map((q)=>jI(q)).join("")},MI=(Z,Y,Q)=>{if(Q===void 0)return Z;let J=Q(Z,Y);if(typeof J==="string")return J},jI=(Z)=>Z.endsWith(`
|
|
49
49
|
`)?Z:`${Z}
|
|
50
|
-
`;var
|
|
51
|
-
`).map((Q)=>qI({...Y,message:Q})),qI=(Z)=>{return{verboseLine:cz(Z),verboseObject:Z}},x7=(Z)=>{let Y=typeof Z==="string"?Z:YI(Z);return aZ(Y).replaceAll("\t"," ".repeat(XI))},XI=2;var l4=j(()=>{R7();lz();oz()});var iz=(Z,Y)=>{if(!d4(Y))return;e6({type:"command",verboseMessage:Z,verboseInfo:Y})};var sz=j(()=>{S8();l4()});var az=(Z,Y,Q)=>{WI(Z);let J=zI(Z);return{verbose:Z,escapedCommand:Y,commandId:J,rawOptions:Q}},zI=(Z)=>d4({verbose:Z})?HI++:void 0,HI=0n,WI=(Z)=>{for(let Y of Z){if(Y===!1)throw TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(Y===!0)throw TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!C7.includes(Y)&&!G7(Y)){let Q=C7.map((J)=>`'${J}'`).join(", ");throw TypeError(`The "verbose" option must not be ${Y}. Allowed values are: ${Q} or a function.`)}}};var rz=j(()=>{S8()});import{hrtime as tz}from"node:process";var P7=()=>tz.bigint(),j2=(Z)=>Number(tz.bigint()-Z)/1e6;var b7=()=>{};var v7=(Z,Y,Q)=>{let J=P7(),{command:q,escapedCommand:X}=Ez(Z,Y),z=F2(Q,"verbose"),W=az(z,X,{...Q});return iz(X,W),{command:q,escapedCommand:X,startTime:J,verboseInfo:W}};var _2=j(()=>{sz();rz();b7();R7();D8()});var JH=I6((vg,QH)=>{QH.exports=YH;YH.sync=KI;var ez=W6("fs");function UI(Z,Y){var Q=Y.pathExt!==void 0?Y.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var J=0;J<Q.length;J++){var q=Q[J].toLowerCase();if(q&&Z.substr(-q.length).toLowerCase()===q)return!0}return!1}function ZH(Z,Y,Q){if(!Z.isSymbolicLink()&&!Z.isFile())return!1;return UI(Y,Q)}function YH(Z,Y,Q){ez.stat(Z,function(J,q){Q(J,J?!1:ZH(q,Z,Y))})}function KI(Z,Y){return ZH(ez.statSync(Z),Z,Y)}});var WH=I6((Sg,HH)=>{HH.exports=XH;XH.sync=BI;var qH=W6("fs");function XH(Z,Y,Q){qH.stat(Z,function(J,q){Q(J,J?!1:zH(q,Y))})}function BI(Z,Y){return zH(qH.statSync(Z),Y)}function zH(Z,Y){return Z.isFile()&&$I(Z,Y)}function $I(Z,Y){var{mode:Q,uid:J,gid:q}=Z,X=Y.uid!==void 0?Y.uid:process.getuid&&process.getuid(),z=Y.gid!==void 0?Y.gid:process.getgid&&process.getgid(),W=parseInt("100",8),U=parseInt("010",8),K=parseInt("001",8),B=W|U,$=Q&K||Q&U&&q===z||Q&W&&J===X||Q&B&&X===0;return $}});var KH=I6((fg,UH)=>{var yg=W6("fs"),S7;if(process.platform==="win32"||global.TESTING_WINDOWS)S7=JH();else S7=WH();UH.exports=N2;N2.sync=FI;function N2(Z,Y,Q){if(typeof Y==="function")Q=Y,Y={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(J,q){N2(Z,Y||{},function(X,z){if(X)q(X);else J(z)})})}S7(Z,Y||{},function(J,q){if(J){if(J.code==="EACCES"||Y&&Y.ignoreErrors)J=null,q=!1}Q(J,q)})}function FI(Z,Y){try{return S7.sync(Z,Y||{})}catch(Q){if(Y&&Y.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var MH=I6((hg,DH)=>{var n4=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",BH=W6("path"),VI=n4?";":":",$H=KH(),FH=(Z)=>Object.assign(Error(`not found: ${Z}`),{code:"ENOENT"}),VH=(Z,Y)=>{let Q=Y.colon||VI,J=Z.match(/\//)||n4&&Z.match(/\\/)?[""]:[...n4?[process.cwd()]:[],...(Y.path||process.env.PATH||"").split(Q)],q=n4?Y.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",X=n4?q.split(Q):[""];if(n4){if(Z.indexOf(".")!==-1&&X[0]!=="")X.unshift("")}return{pathEnv:J,pathExt:X,pathExtExe:q}},OH=(Z,Y,Q)=>{if(typeof Y==="function")Q=Y,Y={};if(!Y)Y={};let{pathEnv:J,pathExt:q,pathExtExe:X}=VH(Z,Y),z=[],W=(K)=>new Promise((B,$)=>{if(K===J.length)return Y.all&&z.length?B(z):$(FH(Z));let F=J[K],O=/^".*"$/.test(F)?F.slice(1,-1):F,V=BH.join(O,Z),D=!O&&/^\.[\\\/]/.test(Z)?Z.slice(0,2)+V:V;B(U(D,K,0))}),U=(K,B,$)=>new Promise((F,O)=>{if($===q.length)return F(W(B+1));let V=q[$];$H(K+V,{pathExt:X},(D,_)=>{if(!D&&_)if(Y.all)z.push(K+V);else return F(K+V);return F(U(K,B,$+1))})});return Q?W(0).then((K)=>Q(null,K),Q):W(0)},OI=(Z,Y)=>{Y=Y||{};let{pathEnv:Q,pathExt:J,pathExtExe:q}=VH(Z,Y),X=[];for(let z=0;z<Q.length;z++){let W=Q[z],U=/^".*"$/.test(W)?W.slice(1,-1):W,K=BH.join(U,Z),B=!U&&/^\.[\\\/]/.test(Z)?Z.slice(0,2)+K:K;for(let $=0;$<J.length;$++){let F=B+J[$];try{if($H.sync(F,{pathExt:q}))if(Y.all)X.push(F);else return F}catch(O){}}}if(Y.all&&X.length)return X;if(Y.nothrow)return null;throw FH(Z)};DH.exports=OH;OH.sync=OI});var _H=I6((gg,I2)=>{var jH=(Z={})=>{let Y=Z.env||process.env;if((Z.platform||process.platform)!=="win32")return"PATH";return Object.keys(Y).reverse().find((J)=>J.toUpperCase()==="PATH")||"Path"};I2.exports=jH;I2.exports.default=jH});var wH=I6((mg,LH)=>{var NH=W6("path"),DI=MH(),MI=_H();function IH(Z,Y){let Q=Z.options.env||process.env,J=process.cwd(),q=Z.options.cwd!=null,X=q&&process.chdir!==void 0&&!process.chdir.disabled;if(X)try{process.chdir(Z.options.cwd)}catch(W){}let z;try{z=DI.sync(Z.command,{path:Q[MI({env:Q})],pathExt:Y?NH.delimiter:void 0})}catch(W){}finally{if(X)process.chdir(J)}if(z)z=NH.resolve(q?Z.options.cwd:"",z);return z}function jI(Z){return IH(Z)||IH(Z,!0)}LH.exports=jI});var AH=I6((II,w2)=>{var L2=/([()\][%!^"`<>&|;, *?])/g;function _I(Z){return Z=Z.replace(L2,"^$1"),Z}function NI(Z,Y){if(Z=`${Z}`,Z=Z.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),Z=Z.replace(/(?=(\\+?)?)\1$/,"$1$1"),Z=`"${Z}"`,Z=Z.replace(L2,"^$1"),Y)Z=Z.replace(L2,"^$1");return Z}II.command=_I;II.argument=NI});var CH=I6((pg,GH)=>{GH.exports=/^#!(.*)/});var TH=I6((ug,RH)=>{var AI=CH();RH.exports=(Z="")=>{let Y=Z.match(AI);if(!Y)return null;let[Q,J]=Y[0].replace(/#! ?/,"").split(" "),q=Q.split("/").pop();if(q==="env")return J;return J?`${q} ${J}`:q}});var EH=I6((dg,kH)=>{var A2=W6("fs"),GI=TH();function CI(Z){let Q=Buffer.alloc(150),J;try{J=A2.openSync(Z,"r"),A2.readSync(J,Q,0,150,0),A2.closeSync(J)}catch(q){}return GI(Q.toString())}kH.exports=CI});var vH=I6((cg,bH)=>{var RI=W6("path"),xH=wH(),PH=AH(),TI=EH(),kI=process.platform==="win32",EI=/\.(?:com|exe)$/i,xI=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function PI(Z){Z.file=xH(Z);let Y=Z.file&&TI(Z.file);if(Y)return Z.args.unshift(Z.file),Z.command=Y,xH(Z);return Z.file}function bI(Z){if(!kI)return Z;let Y=PI(Z),Q=!EI.test(Y);if(Z.options.forceShell||Q){let J=xI.test(Y);Z.command=RI.normalize(Z.command),Z.command=PH.command(Z.command),Z.args=Z.args.map((X)=>PH.argument(X,J));let q=[Z.command].concat(Z.args).join(" ");Z.args=["/d","/s","/c",`"${q}"`],Z.command=process.env.comspec||"cmd.exe",Z.options.windowsVerbatimArguments=!0}return Z}function vI(Z,Y,Q){if(Y&&!Array.isArray(Y))Q=Y,Y=null;Y=Y?Y.slice(0):[],Q=Object.assign({},Q);let J={command:Z,args:Y,options:Q,file:void 0,original:{command:Z,args:Y}};return Q.shell?J:bI(J)}bH.exports=vI});var fH=I6((lg,yH)=>{var G2=process.platform==="win32";function C2(Z,Y){return Object.assign(Error(`${Y} ${Z.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${Y} ${Z.command}`,path:Z.command,spawnargs:Z.args})}function SI(Z,Y){if(!G2)return;let Q=Z.emit;Z.emit=function(J,q){if(J==="exit"){let X=SH(q,Y);if(X)return Q.call(Z,"error",X)}return Q.apply(Z,arguments)}}function SH(Z,Y){if(G2&&Z===1&&!Y.file)return C2(Y.original,"spawn");return null}function yI(Z,Y){if(G2&&Z===1&&!Y.file)return C2(Y.original,"spawnSync");return null}yH.exports={hookChildProcess:SI,verifyENOENT:SH,verifyENOENTSync:yI,notFoundError:C2}});var mH=I6((ng,o4)=>{var hH=W6("child_process"),R2=vH(),T2=fH();function gH(Z,Y,Q){let J=R2(Z,Y,Q),q=hH.spawn(J.command,J.args,J.options);return T2.hookChildProcess(q,J),q}function fI(Z,Y,Q){let J=R2(Z,Y,Q),q=hH.spawnSync(J.command,J.args,J.options);return q.error=q.error||T2.verifyENOENTSync(q.status,J),q}o4.exports=gH;o4.exports.spawn=gH;o4.exports.sync=fI;o4.exports._parse=R2;o4.exports._enoent=T2});function y7(Z={}){let{env:Y=process.env,platform:Q=process.platform}=Z;if(Q!=="win32")return"PATH";return Object.keys(Y).reverse().find((J)=>J.toUpperCase()==="PATH")||"Path"}import{promisify as hI}from"node:util";import{execFile as gI,execFileSync as ag}from"node:child_process";import pH from"node:path";import{fileURLToPath as mI}from"node:url";function f7(Z){return Z instanceof URL?mI(Z):Z}function uH(Z){return{*[Symbol.iterator](){let Y=pH.resolve(f7(Z)),Q;while(Q!==Y)yield Y,Q=Y,Y=pH.resolve(Y,"..")}}}var eg;var dH=j(()=>{eg=hI(gI)});import h7 from"node:process";import X4 from"node:path";var pI=({cwd:Z=h7.cwd(),path:Y=h7.env[y7()],preferLocal:Q=!0,execPath:J=h7.execPath,addExecPath:q=!0}={})=>{let X=X4.resolve(f7(Z)),z=[],W=Y.split(X4.delimiter);if(Q)uI(z,W,X);if(q)dI(z,W,J,X);return Y===""||Y===X4.delimiter?`${z.join(X4.delimiter)}${Y}`:[...z,Y].join(X4.delimiter)},uI=(Z,Y,Q)=>{for(let J of uH(Q)){let q=X4.join(J,"node_modules/.bin");if(!Y.includes(q))Z.push(q)}},dI=(Z,Y,Q,J)=>{let q=X4.resolve(J,f7(Q),"..");if(!Y.includes(q))Z.push(q)},cH=({env:Z=h7.env,...Y}={})=>{Z={...Z};let Q=y7({env:Z});return Y.path=Z[Q],Z[Q]=pI(Y),Z};var lH=j(()=>{dH()});var nH=(Z,Y,Q)=>{let J=Q?rZ:m6,q=Z instanceof Z8?{}:{cause:Z};return new J(Y,q)},Z8,oH=(Z,Y)=>{Object.defineProperty(Z.prototype,"name",{value:Y,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(Z.prototype,sH,{value:!0,writable:!1,enumerable:!1,configurable:!1})},iH=(Z)=>g7(Z)&&(sH in Z),sH,g7=(Z)=>Object.prototype.toString.call(Z)==="[object Error]",m6,rZ;var y8=j(()=>{Z8=class Z8 extends Error{};sH=Symbol("isExecaError");m6=class m6 extends Error{};oH(m6,m6.name);rZ=class rZ extends Error{};oH(rZ,rZ.name)});var aH=()=>{let Z=k2-rH+1;return Array.from({length:Z},cI)},cI=(Z,Y)=>({name:`SIGRT${Y+1}`,number:rH+Y,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),rH=34,k2=64;var tH;var eH=j(()=>{tH=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}]});import{constants as lI}from"node:os";var E2=()=>{let Z=aH();return[...tH,...Z].map(nI)},nI=({name:Z,number:Y,description:Q,action:J,forced:q=!1,standard:X})=>{let{signals:{[Z]:z}}=lI,W=z!==void 0;return{name:Z,number:W?z:Y,description:Q,supported:W,action:J,forced:q,standard:X}};var ZW=j(()=>{eH()});import{constants as oI}from"node:os";var iI=()=>{let Z=E2();return Object.fromEntries(Z.map(sI))},sI=({name:Z,number:Y,description:Q,supported:J,action:q,forced:X,standard:z})=>[Z,{name:Z,number:Y,description:Q,supported:J,action:q,forced:X,standard:z}],YW,aI=()=>{let Z=E2(),Y=k2+1,Q=Array.from({length:Y},(J,q)=>rI(q,Z));return Object.assign({},...Q)},rI=(Z,Y)=>{let Q=tI(Z,Y);if(Q===void 0)return{};let{name:J,description:q,supported:X,action:z,forced:W,standard:U}=Q;return{[Z]:{name:J,number:Z,description:q,supported:X,action:z,forced:W,standard:U}}},tI=(Z,Y)=>{let Q=Y.find(({name:J})=>oI.signals[J]===Z);if(Q!==void 0)return Q;return Y.find((J)=>J.number===Z)},Mm;var QW=j(()=>{ZW();YW=iI(),Mm=aI()});import{constants as tZ}from"node:os";var qW=(Z)=>{if(Z===0)throw TypeError("Invalid option `killSignal`: 0 cannot be used.");return zW(Z,"option `killSignal`")},XW=(Z)=>Z===0?Z:zW(Z,"`subprocess.kill()`'s argument"),zW=(Z,Y)=>{if(Number.isInteger(Z))return eI(Z,Y);if(typeof Z==="string")return YL(Z,Y);throw TypeError(`Invalid ${Y} ${String(Z)}: it must be a string or an integer.
|
|
52
|
-
${
|
|
53
|
-
${
|
|
54
|
-
${
|
|
55
|
-
Available signal numbers: ${
|
|
50
|
+
`;var qH=N(()=>{f4()});import{inspect as _I}from"node:util";var Y4=({type:Z,verboseMessage:Y,fdNumber:Q,verboseInfo:J,result:q})=>{let X=NI({type:Z,result:q,verboseInfo:J}),z=II(Y,X),W=JH(z,J,Q);if(W!=="")console.warn(W.slice(0,-1))},NI=({type:Z,result:Y,verboseInfo:{escapedCommand:Q,commandId:J,rawOptions:{piped:q=!1,...X}}})=>({type:Z,escapedCommand:Q,commandId:`${J}`,timestamp:new Date,piped:q,result:Y,options:X}),II=(Z,Y)=>Z.split(`
|
|
51
|
+
`).map((Q)=>LI({...Y,message:Q})),LI=(Z)=>{return{verboseLine:YH(Z),verboseObject:Z}},v7=(Z)=>{let Y=typeof Z==="string"?Z:_I(Z);return tZ(Y).replaceAll("\t"," ".repeat(wI))},wI=2;var i8=N(()=>{E7();QH();qH()});var XH=(Z,Y)=>{if(!n8(Y))return;Y4({type:"command",verboseMessage:Z,verboseInfo:Y})};var zH=N(()=>{f4();i8()});var HH=(Z,Y,Q)=>{CI(Z);let J=AI(Z);return{verbose:Z,escapedCommand:Y,commandId:J,rawOptions:Q}},AI=(Z)=>n8({verbose:Z})?GI++:void 0,GI=0n,CI=(Z)=>{for(let Y of Z){if(Y===!1)throw TypeError(`The "verbose: false" option was renamed to "verbose: 'none'".`);if(Y===!0)throw TypeError(`The "verbose: true" option was renamed to "verbose: 'short'".`);if(!k7.includes(Y)&&!T7(Y)){let Q=k7.map((J)=>`'${J}'`).join(", ");throw TypeError(`The "verbose" option must not be ${Y}. Allowed values are: ${Q} or a function.`)}}};var WH=N(()=>{f4()});import{hrtime as UH}from"node:process";var S7=()=>UH.bigint(),G2=(Z)=>Number(UH.bigint()-Z)/1e6;var y7=()=>{};var f7=(Z,Y,Q)=>{let J=S7(),{command:q,escapedCommand:X}=pz(Z,Y),z=N2(Q,"verbose"),W=HH(z,X,{...Q});return XH(X,W),{command:q,escapedCommand:X,startTime:J,verboseInfo:W}};var C2=N(()=>{zH();WH();y7();E7();M4()});var VH=L6((Wm,FH)=>{FH.exports=$H;$H.sync=TI;var KH=U6("fs");function RI(Z,Y){var Q=Y.pathExt!==void 0?Y.pathExt:process.env.PATHEXT;if(!Q)return!0;if(Q=Q.split(";"),Q.indexOf("")!==-1)return!0;for(var J=0;J<Q.length;J++){var q=Q[J].toLowerCase();if(q&&Z.substr(-q.length).toLowerCase()===q)return!0}return!1}function BH(Z,Y,Q){if(!Z.isSymbolicLink()&&!Z.isFile())return!1;return RI(Y,Q)}function $H(Z,Y,Q){KH.stat(Z,function(J,q){Q(J,J?!1:BH(q,Z,Y))})}function TI(Z,Y){return BH(KH.statSync(Z),Z,Y)}});var _H=L6((Um,jH)=>{jH.exports=DH;DH.sync=kI;var OH=U6("fs");function DH(Z,Y,Q){OH.stat(Z,function(J,q){Q(J,J?!1:MH(q,Y))})}function kI(Z,Y){return MH(OH.statSync(Z),Y)}function MH(Z,Y){return Z.isFile()&&EI(Z,Y)}function EI(Z,Y){var{mode:Q,uid:J,gid:q}=Z,X=Y.uid!==void 0?Y.uid:process.getuid&&process.getuid(),z=Y.gid!==void 0?Y.gid:process.getgid&&process.getgid(),W=parseInt("100",8),U=parseInt("010",8),K=parseInt("001",8),B=W|U,$=Q&K||Q&U&&q===z||Q&W&&J===X||Q&B&&X===0;return $}});var IH=L6((Bm,NH)=>{var Km=U6("fs"),h7;if(process.platform==="win32"||global.TESTING_WINDOWS)h7=VH();else h7=_H();NH.exports=R2;R2.sync=PI;function R2(Z,Y,Q){if(typeof Y==="function")Q=Y,Y={};if(!Q){if(typeof Promise!=="function")throw TypeError("callback not provided");return new Promise(function(J,q){R2(Z,Y||{},function(X,z){if(X)q(X);else J(z)})})}h7(Z,Y||{},function(J,q){if(J){if(J.code==="EACCES"||Y&&Y.ignoreErrors)J=null,q=!1}Q(J,q)})}function PI(Z,Y){try{return h7.sync(Z,Y||{})}catch(Q){if(Y&&Y.ignoreErrors||Q.code==="EACCES")return!1;else throw Q}}});var TH=L6(($m,RH)=>{var s8=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",LH=U6("path"),xI=s8?";":":",wH=IH(),AH=(Z)=>Object.assign(Error(`not found: ${Z}`),{code:"ENOENT"}),GH=(Z,Y)=>{let Q=Y.colon||xI,J=Z.match(/\//)||s8&&Z.match(/\\/)?[""]:[...s8?[process.cwd()]:[],...(Y.path||process.env.PATH||"").split(Q)],q=s8?Y.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",X=s8?q.split(Q):[""];if(s8){if(Z.indexOf(".")!==-1&&X[0]!=="")X.unshift("")}return{pathEnv:J,pathExt:X,pathExtExe:q}},CH=(Z,Y,Q)=>{if(typeof Y==="function")Q=Y,Y={};if(!Y)Y={};let{pathEnv:J,pathExt:q,pathExtExe:X}=GH(Z,Y),z=[],W=(K)=>new Promise((B,$)=>{if(K===J.length)return Y.all&&z.length?B(z):$(AH(Z));let V=J[K],D=/^".*"$/.test(V)?V.slice(1,-1):V,F=LH.join(D,Z),O=!D&&/^\.[\\\/]/.test(Z)?Z.slice(0,2)+F:F;B(U(O,K,0))}),U=(K,B,$)=>new Promise((V,D)=>{if($===q.length)return V(W(B+1));let F=q[$];wH(K+F,{pathExt:X},(O,j)=>{if(!O&&j)if(Y.all)z.push(K+F);else return V(K+F);return V(U(K,B,$+1))})});return Q?W(0).then((K)=>Q(null,K),Q):W(0)},bI=(Z,Y)=>{Y=Y||{};let{pathEnv:Q,pathExt:J,pathExtExe:q}=GH(Z,Y),X=[];for(let z=0;z<Q.length;z++){let W=Q[z],U=/^".*"$/.test(W)?W.slice(1,-1):W,K=LH.join(U,Z),B=!U&&/^\.[\\\/]/.test(Z)?Z.slice(0,2)+K:K;for(let $=0;$<J.length;$++){let V=B+J[$];try{if(wH.sync(V,{pathExt:q}))if(Y.all)X.push(V);else return V}catch(D){}}}if(Y.all&&X.length)return X;if(Y.nothrow)return null;throw AH(Z)};RH.exports=CH;CH.sync=bI});var EH=L6((Fm,T2)=>{var kH=(Z={})=>{let Y=Z.env||process.env;if((Z.platform||process.platform)!=="win32")return"PATH";return Object.keys(Y).reverse().find((J)=>J.toUpperCase()==="PATH")||"Path"};T2.exports=kH;T2.exports.default=kH});var vH=L6((Vm,bH)=>{var PH=U6("path"),vI=TH(),SI=EH();function xH(Z,Y){let Q=Z.options.env||process.env,J=process.cwd(),q=Z.options.cwd!=null,X=q&&process.chdir!==void 0&&!process.chdir.disabled;if(X)try{process.chdir(Z.options.cwd)}catch(W){}let z;try{z=vI.sync(Z.command,{path:Q[SI({env:Q})],pathExt:Y?PH.delimiter:void 0})}catch(W){}finally{if(X)process.chdir(J)}if(z)z=PH.resolve(q?Z.options.cwd:"",z);return z}function yI(Z){return xH(Z)||xH(Z,!0)}bH.exports=yI});var SH=L6((gI,E2)=>{var k2=/([()\][%!^"`<>&|;, *?])/g;function fI(Z){return Z=Z.replace(k2,"^$1"),Z}function hI(Z,Y){if(Z=`${Z}`,Z=Z.replace(/(?=(\\+?)?)\1"/g,"$1$1\\\""),Z=Z.replace(/(?=(\\+?)?)\1$/,"$1$1"),Z=`"${Z}"`,Z=Z.replace(k2,"^$1"),Y)Z=Z.replace(k2,"^$1");return Z}gI.command=fI;gI.argument=hI});var fH=L6((Om,yH)=>{yH.exports=/^#!(.*)/});var gH=L6((Dm,hH)=>{var uI=fH();hH.exports=(Z="")=>{let Y=Z.match(uI);if(!Y)return null;let[Q,J]=Y[0].replace(/#! ?/,"").split(" "),q=Q.split("/").pop();if(q==="env")return J;return J?`${q} ${J}`:q}});var pH=L6((Mm,mH)=>{var P2=U6("fs"),dI=gH();function cI(Z){let Q=Buffer.alloc(150),J;try{J=P2.openSync(Z,"r"),P2.readSync(J,Q,0,150,0),P2.closeSync(J)}catch(q){}return dI(Q.toString())}mH.exports=cI});var lH=L6((jm,cH)=>{var lI=U6("path"),uH=vH(),dH=SH(),nI=pH(),oI=process.platform==="win32",iI=/\.(?:com|exe)$/i,sI=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function aI(Z){Z.file=uH(Z);let Y=Z.file&&nI(Z.file);if(Y)return Z.args.unshift(Z.file),Z.command=Y,uH(Z);return Z.file}function rI(Z){if(!oI)return Z;let Y=aI(Z),Q=!iI.test(Y);if(Z.options.forceShell||Q){let J=sI.test(Y);Z.command=lI.normalize(Z.command),Z.command=dH.command(Z.command),Z.args=Z.args.map((X)=>dH.argument(X,J));let q=[Z.command].concat(Z.args).join(" ");Z.args=["/d","/s","/c",`"${q}"`],Z.command=process.env.comspec||"cmd.exe",Z.options.windowsVerbatimArguments=!0}return Z}function tI(Z,Y,Q){if(Y&&!Array.isArray(Y))Q=Y,Y=null;Y=Y?Y.slice(0):[],Q=Object.assign({},Q);let J={command:Z,args:Y,options:Q,file:void 0,original:{command:Z,args:Y}};return Q.shell?J:rI(J)}cH.exports=tI});var iH=L6((_m,oH)=>{var x2=process.platform==="win32";function b2(Z,Y){return Object.assign(Error(`${Y} ${Z.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${Y} ${Z.command}`,path:Z.command,spawnargs:Z.args})}function eI(Z,Y){if(!x2)return;let Q=Z.emit;Z.emit=function(J,q){if(J==="exit"){let X=nH(q,Y);if(X)return Q.call(Z,"error",X)}return Q.apply(Z,arguments)}}function nH(Z,Y){if(x2&&Z===1&&!Y.file)return b2(Y.original,"spawn");return null}function ZL(Z,Y){if(x2&&Z===1&&!Y.file)return b2(Y.original,"spawnSync");return null}oH.exports={hookChildProcess:eI,verifyENOENT:nH,verifyENOENTSync:ZL,notFoundError:b2}});var rH=L6((Nm,a8)=>{var sH=U6("child_process"),v2=lH(),S2=iH();function aH(Z,Y,Q){let J=v2(Z,Y,Q),q=sH.spawn(J.command,J.args,J.options);return S2.hookChildProcess(q,J),q}function YL(Z,Y,Q){let J=v2(Z,Y,Q),q=sH.spawnSync(J.command,J.args,J.options);return q.error=q.error||S2.verifyENOENTSync(q.status,J),q}a8.exports=aH;a8.exports.spawn=aH;a8.exports.sync=YL;a8.exports._parse=v2;a8.exports._enoent=S2});function g7(Z={}){let{env:Y=process.env,platform:Q=process.platform}=Z;if(Q!=="win32")return"PATH";return Object.keys(Y).reverse().find((J)=>J.toUpperCase()==="PATH")||"Path"}import{promisify as QL}from"node:util";import{execFile as JL,execFileSync as Am}from"node:child_process";import tH from"node:path";import{fileURLToPath as qL}from"node:url";function m7(Z){return Z instanceof URL?qL(Z):Z}function eH(Z){return{*[Symbol.iterator](){let Y=tH.resolve(m7(Z)),Q;while(Q!==Y)yield Y,Q=Y,Y=tH.resolve(Y,"..")}}}var Rm;var ZW=N(()=>{Rm=QL(JL)});import p7 from"node:process";import W8 from"node:path";var XL=({cwd:Z=p7.cwd(),path:Y=p7.env[g7()],preferLocal:Q=!0,execPath:J=p7.execPath,addExecPath:q=!0}={})=>{let X=W8.resolve(m7(Z)),z=[],W=Y.split(W8.delimiter);if(Q)zL(z,W,X);if(q)HL(z,W,J,X);return Y===""||Y===W8.delimiter?`${z.join(W8.delimiter)}${Y}`:[...z,Y].join(W8.delimiter)},zL=(Z,Y,Q)=>{for(let J of eH(Q)){let q=W8.join(J,"node_modules/.bin");if(!Y.includes(q))Z.push(q)}},HL=(Z,Y,Q,J)=>{let q=W8.resolve(J,m7(Q),"..");if(!Y.includes(q))Z.push(q)},YW=({env:Z=p7.env,...Y}={})=>{Z={...Z};let Q=g7({env:Z});return Y.path=Z[Q],Z[Q]=XL(Y),Z};var QW=N(()=>{ZW()});var JW=(Z,Y,Q)=>{let J=Q?eZ:p6,q=Z instanceof Q4?{}:{cause:Z};return new J(Y,q)},Q4,qW=(Z,Y)=>{Object.defineProperty(Z.prototype,"name",{value:Y,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(Z.prototype,zW,{value:!0,writable:!1,enumerable:!1,configurable:!1})},XW=(Z)=>u7(Z)&&(zW in Z),zW,u7=(Z)=>Object.prototype.toString.call(Z)==="[object Error]",p6,eZ;var h4=N(()=>{Q4=class Q4 extends Error{};zW=Symbol("isExecaError");p6=class p6 extends Error{};qW(p6,p6.name);eZ=class eZ extends Error{};qW(eZ,eZ.name)});var HW=()=>{let Z=y2-WW+1;return Array.from({length:Z},WL)},WL=(Z,Y)=>({name:`SIGRT${Y+1}`,number:WW+Y,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),WW=34,y2=64;var UW;var KW=N(()=>{UW=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}]});import{constants as UL}from"node:os";var f2=()=>{let Z=HW();return[...UW,...Z].map(KL)},KL=({name:Z,number:Y,description:Q,action:J,forced:q=!1,standard:X})=>{let{signals:{[Z]:z}}=UL,W=z!==void 0;return{name:Z,number:W?z:Y,description:Q,supported:W,action:J,forced:q,standard:X}};var BW=N(()=>{KW()});import{constants as BL}from"node:os";var $L=()=>{let Z=f2();return Object.fromEntries(Z.map(FL))},FL=({name:Z,number:Y,description:Q,supported:J,action:q,forced:X,standard:z})=>[Z,{name:Z,number:Y,description:Q,supported:J,action:q,forced:X,standard:z}],$W,VL=()=>{let Z=f2(),Y=y2+1,Q=Array.from({length:Y},(J,q)=>OL(q,Z));return Object.assign({},...Q)},OL=(Z,Y)=>{let Q=DL(Z,Y);if(Q===void 0)return{};let{name:J,description:q,supported:X,action:z,forced:W,standard:U}=Q;return{[Z]:{name:J,number:Z,description:q,supported:X,action:z,forced:W,standard:U}}},DL=(Z,Y)=>{let Q=Y.find(({name:J})=>BL.signals[J]===Z);if(Q!==void 0)return Q;return Y.find((J)=>J.number===Z)},lm;var FW=N(()=>{BW();$W=$L(),lm=VL()});import{constants as Z1}from"node:os";var OW=(Z)=>{if(Z===0)throw TypeError("Invalid option `killSignal`: 0 cannot be used.");return MW(Z,"option `killSignal`")},DW=(Z)=>Z===0?Z:MW(Z,"`subprocess.kill()`'s argument"),MW=(Z,Y)=>{if(Number.isInteger(Z))return ML(Z,Y);if(typeof Z==="string")return _L(Z,Y);throw TypeError(`Invalid ${Y} ${String(Z)}: it must be a string or an integer.
|
|
52
|
+
${h2()}`)},ML=(Z,Y)=>{if(VW.has(Z))return VW.get(Z);throw TypeError(`Invalid ${Y} ${Z}: this signal integer does not exist.
|
|
53
|
+
${h2()}`)},jL=()=>new Map(Object.entries(Z1.signals).reverse().map(([Z,Y])=>[Y,Z])),VW,_L=(Z,Y)=>{if(Z in Z1.signals)return Z;if(Z.toUpperCase()in Z1.signals)throw TypeError(`Invalid ${Y} '${Z}': please rename it to '${Z.toUpperCase()}'.`);throw TypeError(`Invalid ${Y} '${Z}': this signal name does not exist.
|
|
54
|
+
${h2()}`)},h2=()=>`Available signal names: ${NL()}.
|
|
55
|
+
Available signal numbers: ${IL()}.`,NL=()=>Object.keys(Z1.signals).sort().map((Z)=>`'${Z}'`).join(", "),IL=()=>[...new Set(Object.values(Z1.signals).sort((Z,Y)=>Z-Y))].join(", "),d7=(Z)=>$W[Z].description;var Y1=N(()=>{FW();VW=jL()});import{setTimeout as LL}from"node:timers/promises";var jW=(Z)=>{if(Z===!1)return Z;if(Z===!0)return wL;if(!Number.isFinite(Z)||Z<0)throw TypeError(`Expected the \`forceKillAfterDelay\` option to be a non-negative integer, got \`${Z}\` (${typeof Z})`);return Z},wL=5000,_W=({kill:Z,options:{forceKillAfterDelay:Y,killSignal:Q},onInternalError:J,context:q,controller:X},z,W)=>{let{signal:U,error:K}=AL(z,W,Q);GL(K,J);let B=Z(U);return CL({kill:Z,signal:U,forceKillAfterDelay:Y,killSignal:Q,killResult:B,context:q,controller:X}),B},AL=(Z,Y,Q)=>{let[J=Q,q]=u7(Z)?[void 0,Z]:[Z,Y];if(typeof J!=="string"&&!Number.isInteger(J))throw TypeError(`The first argument must be an error instance or a signal name string/integer: ${String(J)}`);if(q!==void 0&&!u7(q))throw TypeError(`The second argument is optional. If specified, it must be an error instance: ${q}`);return{signal:DW(J),error:q}},GL=(Z,Y)=>{if(Z!==void 0)Y.reject(Z)},CL=async({kill:Z,signal:Y,forceKillAfterDelay:Q,killSignal:J,killResult:q,context:X,controller:z})=>{if(Y===J&&q)g2({kill:Z,forceKillAfterDelay:Q,context:X,controllerSignal:z.signal})},g2=async({kill:Z,forceKillAfterDelay:Y,context:Q,controllerSignal:J})=>{if(Y===!1)return;try{if(await LL(Y,void 0,{signal:J}),Z("SIGKILL"))Q.isForcefullyTerminated??=!0}catch{}};var c7=N(()=>{h4();Y1()});import{once as RL}from"node:events";var l7=async(Z,Y)=>{if(!Z.aborted)await RL(Z,"abort",{signal:Y})};var m2=()=>{};var NW=({cancelSignal:Z})=>{if(Z!==void 0&&Object.prototype.toString.call(Z)!=="[object AbortSignal]")throw Error(`The \`cancelSignal\` option must be an AbortSignal: ${String(Z)}`)},IW=({subprocess:Z,cancelSignal:Y,gracefulCancel:Q,context:J,controller:q})=>Y===void 0||Q?[]:[TL(Z,Y,J,q)],TL=async(Z,Y,Q,{signal:J})=>{throw await l7(Y,J),Q.terminationReason??="cancel",Z.kill(),Y.reason};var p2=N(()=>{m2()});var r8=({methodName:Z,isSubprocess:Y,ipc:Q,isConnected:J})=>{kL(Z,Y,Q),u2(Z,Y,J)},kL=(Z,Y,Q)=>{if(!Q)throw Error(`${a6(Z,Y)} can only be used if the \`ipc\` option is \`true\`.`)},u2=(Z,Y,Q)=>{if(!Q)throw Error(`${a6(Z,Y)} cannot be used: the ${g4(Y)} has already exited or disconnected.`)},LW=(Z)=>{throw Error(`${a6("getOneMessage",Z)} could not complete: the ${g4(Z)} exited or disconnected.`)},wW=(Z)=>{throw Error(`${a6("sendMessage",Z)} failed: the ${g4(Z)} is sending a message too, instead of listening to incoming messages.
|
|
56
56
|
This can be fixed by both sending a message and listening to incoming messages at the same time:
|
|
57
57
|
|
|
58
58
|
const [receivedMessage] = await Promise.all([
|
|
59
|
-
${
|
|
60
|
-
${
|
|
61
|
-
]);`)},
|
|
59
|
+
${a6("getOneMessage",Z)},
|
|
60
|
+
${a6("sendMessage",Z,"message, {strict: true}")},
|
|
61
|
+
]);`)},n7=(Z,Y)=>Error(`${a6("sendMessage",Y)} failed when sending an acknowledgment response to the ${g4(Y)}.`,{cause:Z}),AW=(Z)=>{throw Error(`${a6("sendMessage",Z)} failed: the ${g4(Z)} is not listening to incoming messages.`)},GW=(Z)=>{throw Error(`${a6("sendMessage",Z)} failed: the ${g4(Z)} exited without listening to incoming messages.`)},CW=()=>Error(`\`cancelSignal\` aborted: the ${g4(!0)} disconnected.`),RW=()=>{throw Error("`getCancelSignal()` cannot be used without setting the `cancelSignal` subprocess option.")},TW=({error:Z,methodName:Y,isSubprocess:Q})=>{if(Z.code==="EPIPE")throw Error(`${a6(Y,Q)} cannot be used: the ${g4(Q)} is disconnecting.`,{cause:Z})},kW=({error:Z,methodName:Y,isSubprocess:Q,message:J})=>{if(EL(Z))throw Error(`${a6(Y,Q)}'s argument type is invalid: the message cannot be serialized: ${String(J)}.`,{cause:Z})},EL=({code:Z,message:Y})=>PL.has(Z)||xL.some((Q)=>Y.includes(Q)),PL,xL,a6=(Z,Y,Q="")=>Z==="cancelSignal"?"`cancelSignal`'s `controller.abort()`":`${bL(Y)}${Z}(${Q})`,bL=(Z)=>Z?"":"subprocess.",g4=(Z)=>Z?"parent process":"subprocess",t8=(Z)=>{if(Z.connected)Z.disconnect()};var e8=N(()=>{PL=new Set(["ERR_MISSING_ARGS","ERR_INVALID_ARG_TYPE"]),xL=["could not be cloned","circular structure","call stack size exceeded"]});var J4=()=>{let Z={},Y=new Promise((Q,J)=>{Object.assign(Z,{resolve:Q,reject:J})});return Object.assign(Y,Z)};var i7=(Z,Y="stdin")=>{let{options:J,fileDescriptors:q}=q4.get(Z),X=EW(q,Y,!0),z=Z.stdio[X];if(z===null)throw TypeError(PW(X,Y,J,!0));return z},ZZ=(Z,Y="stdout")=>{let{options:J,fileDescriptors:q}=q4.get(Z),X=EW(q,Y,!1),z=X==="all"?Z.all:Z.stdio[X];if(z===null||z===void 0)throw TypeError(PW(X,Y,J,!1));return z},q4,EW=(Z,Y,Q)=>{let J=vL(Y,Q);return SL(J,Y,Q,Z),J},vL=(Z,Y)=>{let Q=I2(Z);if(Q!==void 0)return Q;let{validOptions:J,defaultValue:q}=Y?{validOptions:'"stdin"',defaultValue:"stdin"}:{validOptions:'"stdout", "stderr", "all"',defaultValue:"stdout"};throw TypeError(`"${Q1(Y)}" must not be "${Z}".
|
|
62
62
|
It must be ${J} or "fd3", "fd4" (and so on).
|
|
63
|
-
It is optional and defaults to "${q}".`)},
|
|
64
|
-
Please set the "stdio" option to ensure that file descriptor exists.`);if(q.direction==="input"&&!Q)throw TypeError(`"${
|
|
65
|
-
Please set this option with "pipe" instead.`},
|
|
66
|
-
Please rename it to ${
|
|
67
|
-
Please rename it to one of: ${Q}.`)},
|
|
68
|
-
${Z.message}`,Z}},
|
|
63
|
+
It is optional and defaults to "${q}".`)},SL=(Z,Y,Q,J)=>{let q=J[xW(Z)];if(q===void 0)throw TypeError(`"${Q1(Q)}" must not be ${Y}. That file descriptor does not exist.
|
|
64
|
+
Please set the "stdio" option to ensure that file descriptor exists.`);if(q.direction==="input"&&!Q)throw TypeError(`"${Q1(Q)}" must not be ${Y}. It must be a readable stream, not writable.`);if(q.direction!=="input"&&Q)throw TypeError(`"${Q1(Q)}" must not be ${Y}. It must be a writable stream, not readable.`)},PW=(Z,Y,Q,J)=>{if(Z==="all"&&!Q.all)return`The "all" option must be true to use "from: 'all'".`;let{optionName:q,optionValue:X}=yL(Z,Q);return`The "${q}: ${o7(X)}" option is incompatible with using "${Q1(J)}: ${o7(Y)}".
|
|
65
|
+
Please set this option with "pipe" instead.`},yL=(Z,{stdin:Y,stdout:Q,stderr:J,stdio:q})=>{let X=xW(Z);if(X===0&&Y!==void 0)return{optionName:"stdin",optionValue:Y};if(X===1&&Q!==void 0)return{optionName:"stdout",optionValue:Q};if(X===2&&J!==void 0)return{optionName:"stderr",optionValue:J};return{optionName:`stdio[${X}]`,optionValue:q[X]}},xW=(Z)=>Z==="all"?1:Z,Q1=(Z)=>Z?"to":"from",o7=(Z)=>{if(typeof Z==="string")return`'${Z}'`;return typeof Z==="number"?`${Z}`:"Stream"};var m4=N(()=>{M4();q4=new WeakMap});import{addAbortListener as fL}from"node:events";var U8=(Z,Y,Q)=>{let J=Z.getMaxListeners();if(J===0||J===Number.POSITIVE_INFINITY)return;Z.setMaxListeners(J+Y),fL(Q,()=>{Z.setMaxListeners(Z.getMaxListeners()-Y)})};var s7=()=>{};var a7=(Z,Y)=>{if(Y)d2(Z)},d2=(Z)=>{Z.refCounted()},r7=(Z,Y)=>{if(Y)c2(Z)},c2=(Z)=>{Z.unrefCounted()},bW=(Z,Y)=>{if(Y)c2(Z),c2(Z)},vW=(Z,Y)=>{if(Y)d2(Z),d2(Z)};import{once as hL}from"node:events";import{scheduler as gL}from"node:timers/promises";var SW=async({anyProcess:Z,channel:Y,isSubprocess:Q,ipcEmitter:J},q)=>{if(gW(q)||pW(q))return;if(!t7.has(Z))t7.set(Z,[]);let X=t7.get(Z);if(X.push(q),X.length>1)return;while(X.length>0){await mW(Z,J,q),await gL.yield();let z=await hW({wrappedMessage:X[0],anyProcess:Z,channel:Y,isSubprocess:Q,ipcEmitter:J});X.shift(),J.emit("message",z),J.emit("message:done")}},yW=async({anyProcess:Z,channel:Y,isSubprocess:Q,ipcEmitter:J,boundOnMessage:q})=>{l2();let X=t7.get(Z);while(X?.length>0)await hL(J,"message:done");Z.removeListener("message",q),vW(Y,Q),J.connected=!1,J.emit("disconnect")},t7;var fW=N(()=>{ZY();e7();YY();t7=new WeakMap});import{EventEmitter as mL}from"node:events";var p4=(Z,Y,Q)=>{if(QY.has(Z))return QY.get(Z);let J=new mL;return J.connected=!0,QY.set(Z,J),pL({ipcEmitter:J,anyProcess:Z,channel:Y,isSubprocess:Q}),J},QY,pL=({ipcEmitter:Z,anyProcess:Y,channel:Q,isSubprocess:J})=>{let q=SW.bind(void 0,{anyProcess:Y,channel:Q,isSubprocess:J,ipcEmitter:Z});Y.on("message",q),Y.once("disconnect",yW.bind(void 0,{anyProcess:Y,channel:Q,isSubprocess:J,ipcEmitter:Z,boundOnMessage:q})),bW(Q,J)},JY=(Z)=>{let Y=QY.get(Z);return Y===void 0?Z.channel!==null:Y.connected};var J1=N(()=>{fW();QY=new WeakMap});import{once as uL}from"node:events";var uW=({anyProcess:Z,channel:Y,isSubprocess:Q,message:J,strict:q})=>{if(!q)return J;let X=p4(Z,Y,Q),z=zY(Z,X);return{id:dL++,type:XY,message:J,hasListeners:z}},dL=0n,dW=(Z,Y)=>{if(Y?.type!==XY||Y.hasListeners)return;for(let{id:Q}of Z)if(Q!==void 0)qY[Q].resolve({isDeadlock:!0,hasListeners:!1})},hW=async({wrappedMessage:Z,anyProcess:Y,channel:Q,isSubprocess:J,ipcEmitter:q})=>{if(Z?.type!==XY||!Y.connected)return Z;let{id:X,message:z}=Z,W={id:X,type:lW,message:zY(Y,q)};try{await HY({anyProcess:Y,channel:Q,isSubprocess:J,ipc:!0},W)}catch(U){q.emit("strict:error",U)}return z},gW=(Z)=>{if(Z?.type!==lW)return!1;let{id:Y,message:Q}=Z;return qY[Y]?.resolve({isDeadlock:!1,hasListeners:Q}),!0},cW=async(Z,Y,Q)=>{if(Z?.type!==XY)return;let J=J4();qY[Z.id]=J;let q=new AbortController;try{let{isDeadlock:X,hasListeners:z}=await Promise.race([J,cL(Y,Q,q)]);if(X)wW(Q);if(!z)AW(Q)}finally{q.abort(),delete qY[Z.id]}},qY,cL=async(Z,Y,{signal:Q})=>{U8(Z,1,Q),await uL(Z,"disconnect",{signal:Q}),GW(Y)},XY="execa:ipc:request",lW="execa:ipc:response";var e7=N(()=>{s7();WY();e8();J1();ZY();qY={}});var nW=(Z,Y,Q)=>{if(!q1.has(Z))q1.set(Z,new Set);let J=q1.get(Z),q=J4(),X=Q?Y.id:void 0,z={onMessageSent:q,id:X};return J.add(z),{outgoingMessages:J,outgoingMessage:z}},oW=({outgoingMessages:Z,outgoingMessage:Y})=>{Z.delete(Y),Y.onMessageSent.resolve()},mW=async(Z,Y,Q)=>{while(!zY(Z,Y)&&q1.get(Z)?.size>0){let J=[...q1.get(Z)];dW(J,Q),await Promise.all(J.map(({onMessageSent:q})=>q))}},q1,zY=(Z,Y)=>Y.listenerCount("message")>lL(Z),lL=(Z)=>q4.has(Z)&&!D4(q4.get(Z).options.buffer,"ipc")?1:0;var ZY=N(()=>{M4();m4();e7();q1=new WeakMap});import{promisify as nL}from"node:util";var HY=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J},q,{strict:X=!1}={})=>{return r8({methodName:"sendMessage",isSubprocess:Q,ipc:J,isConnected:Z.connected}),oL({anyProcess:Z,channel:Y,methodName:"sendMessage",isSubprocess:Q,message:q,strict:X})},oL=async({anyProcess:Z,channel:Y,methodName:Q,isSubprocess:J,message:q,strict:X})=>{let z=uW({anyProcess:Z,channel:Y,isSubprocess:J,message:q,strict:X}),W=nW(Z,z,X);try{await o2({anyProcess:Z,methodName:Q,isSubprocess:J,wrappedMessage:z,message:q})}catch(U){throw t8(Z),U}finally{oW(W)}},o2=async({anyProcess:Z,methodName:Y,isSubprocess:Q,wrappedMessage:J,message:q})=>{let X=iL(Z);try{await Promise.all([cW(J,Z,Q),X(J)])}catch(z){throw TW({error:z,methodName:Y,isSubprocess:Q}),kW({error:z,methodName:Y,isSubprocess:Q,message:q}),z}},iL=(Z)=>{if(n2.has(Z))return n2.get(Z);let Y=nL(Z.send.bind(Z));return n2.set(Z,Y),Y},n2;var WY=N(()=>{e8();ZY();e7();n2=new WeakMap});import{scheduler as sL}from"node:timers/promises";var sW=(Z,Y)=>{return u2("cancelSignal",!1,Z.connected),o2({anyProcess:Z,methodName:"cancelSignal",isSubprocess:!1,wrappedMessage:{type:rW,message:Y},message:Y})},aW=async({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J})=>{return await aL({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J}),i2.signal},aL=async({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J})=>{if(iW)return;if(iW=!0,!J){RW();return}if(Y===null){l2();return}p4(Z,Y,Q),await sL.yield()},iW=!1,pW=(Z)=>{if(Z?.type!==rW)return!1;return i2.abort(Z.message),!0},rW="execa:ipc:cancel",l2=()=>{i2.abort(CW())},i2;var YY=N(()=>{WY();J1();e8();i2=new AbortController});var tW=({gracefulCancel:Z,cancelSignal:Y,ipc:Q,serialization:J})=>{if(!Z)return;if(Y===void 0)throw Error("The `cancelSignal` option must be defined when setting the `gracefulCancel` option.");if(!Q)throw Error("The `ipc` option cannot be false when setting the `gracefulCancel` option.");if(J==="json")throw Error("The `serialization` option cannot be 'json' when setting the `gracefulCancel` option.")},eW=({subprocess:Z,cancelSignal:Y,gracefulCancel:Q,forceKillAfterDelay:J,context:q,controller:X})=>Q?[rL({subprocess:Z,cancelSignal:Y,forceKillAfterDelay:J,context:q,controller:X})]:[],rL=async({subprocess:Z,cancelSignal:Y,forceKillAfterDelay:Q,context:J,controller:{signal:q}})=>{await l7(Y,q);let X=tL(Y);throw await sW(Z,X),g2({kill:Z.kill,forceKillAfterDelay:Q,context:J,controllerSignal:q}),J.terminationReason??="gracefulCancel",Y.reason},tL=({reason:Z})=>{if(!(Z instanceof DOMException))return Z;let Y=Error(Z.message);return Object.defineProperty(Y,"stack",{value:Z.stack,enumerable:!1,configurable:!0,writable:!0}),Y};var s2=N(()=>{m2();YY();c7()});import{setTimeout as eL}from"node:timers/promises";var ZU=({timeout:Z})=>{if(Z!==void 0&&(!Number.isFinite(Z)||Z<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${Z}\` (${typeof Z})`)},YU=(Z,Y,Q,J)=>Y===0||Y===void 0?[]:[Zw(Z,Y,Q,J)],Zw=async(Z,Y,Q,{signal:J})=>{throw await eL(Y,void 0,{signal:J}),Q.terminationReason??="timeout",Z.kill(),new Q4};var a2=N(()=>{h4()});import{execPath as Yw,execArgv as Qw}from"node:process";import QU from"node:path";var JU=({options:Z})=>{if(Z.node===!1)throw TypeError('The "node" option cannot be false with `execaNode()`.');return{options:{...Z,node:!0}}},qU=(Z,Y,{node:Q=!1,nodePath:J=Yw,nodeOptions:q=Qw.filter((U)=>!U.startsWith("--inspect")),cwd:X,execPath:z,...W})=>{if(z!==void 0)throw TypeError('The "execPath" option has been removed. Please use the "nodePath" option instead.');let U=c8(J,'The "nodePath" option'),K=QU.resolve(X,U),B={...W,nodePath:K,node:Q,cwd:X};if(!Q)return[Z,Y,B];if(QU.basename(Z,".exe")==="node")throw TypeError('When the "node" option is true, the first argument does not need to be "node".');return[K,[...q,Z,...Y],{ipc:!0,...B,shell:!1}]};var r2=N(()=>{l8()});import{serialize as Jw}from"node:v8";var XU=({ipcInput:Z,ipc:Y,serialization:Q})=>{if(Z===void 0)return;if(!Y)throw Error("The `ipcInput` option cannot be set unless the `ipc` option is `true`.");zw[Q](Z)},qw=(Z)=>{try{Jw(Z)}catch(Y){throw Error("The `ipcInput` option is not serializable with a structured clone.",{cause:Y})}},Xw=(Z)=>{try{JSON.stringify(Z)}catch(Y){throw Error("The `ipcInput` option is not serializable with JSON.",{cause:Y})}},zw,zU=async(Z,Y)=>{if(Y===void 0)return;await Z.sendMessage(Y)};var t2=N(()=>{zw={advanced:qw,json:Xw}});var WU=({encoding:Z})=>{if(e2.has(Z))return;let Y=Ww(Z);if(Y!==void 0)throw TypeError(`Invalid option \`encoding: ${UY(Z)}\`.
|
|
66
|
+
Please rename it to ${UY(Y)}.`);let Q=[...e2].map((J)=>UY(J)).join(", ");throw TypeError(`Invalid option \`encoding: ${UY(Z)}\`.
|
|
67
|
+
Please rename it to one of: ${Q}.`)},Hw,T6,e2,Ww=(Z)=>{if(Z===null)return"buffer";if(typeof Z!=="string")return;let Y=Z.toLowerCase();if(Y in HU)return HU[Y];if(e2.has(Y))return Y},HU,UY=(Z)=>typeof Z==="string"?`"${Z}"`:String(Z);var K8=N(()=>{Hw=new Set(["utf8","utf16le"]),T6=new Set(["buffer","hex","base64","base64url","latin1","ascii"]),e2=new Set([...Hw,...T6]),HU={"utf-8":"utf8","utf-16le":"utf16le","ucs-2":"utf16le",ucs2:"utf16le",binary:"latin1"}});import{statSync as Uw}from"node:fs";import Kw from"node:path";import Bw from"node:process";var UU=(Z=KU())=>{let Y=c8(Z,'The "cwd" option');return Kw.resolve(Y)},KU=()=>{try{return Bw.cwd()}catch(Z){throw Z.message=`The current directory does not exist.
|
|
68
|
+
${Z.message}`,Z}},BU=(Z,Y)=>{if(Y===KU())return Z;let Q;try{Q=Uw(Y)}catch(J){return`The "cwd" option is invalid: ${Y}.
|
|
69
69
|
${J.message}
|
|
70
70
|
${Z}`}if(!Q.isDirectory())return`The "cwd" option is not a directory: ${Y}.
|
|
71
|
-
${Z}`;return Z};var
|
|
72
|
-
`,
|
|
73
|
-
${I}`,
|
|
74
|
-
`)].map((y)=>
|
|
75
|
-
|
|
76
|
-
`);return{originalMessage:I,shortMessage:
|
|
77
|
-
`):kU(Z),kU=(Z)=>{if(typeof Z==="string")return Z;if(a0(Z))return L7(Z);return""};var xU=j(()=>{s2();C6();o2();R7();U4();eZ();y8()});var jY=({command:Z,escapedCommand:Y,stdio:Q,all:J,ipcOutput:q,options:{cwd:X},startTime:z})=>PU({command:Z,escapedCommand:Y,cwd:X,durationMs:j2(z),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:Q[1],stderr:Q[2],all:J,stdio:Q,ipcOutput:q,pipedFrom:[]}),ZZ=({error:Z,command:Y,escapedCommand:Q,fileDescriptors:J,options:q,startTime:X,isSync:z})=>z1({error:Z,command:Y,escapedCommand:Q,startTime:X,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:J.length}),ipcOutput:[],options:q,isSync:z}),z1=({error:Z,command:Y,escapedCommand:Q,startTime:J,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:K,signal:B,stdio:$,all:F,ipcOutput:O,options:{timeoutDuration:V,timeout:D=V,forceKillAfterDelay:_,killSignal:N,cwd:w,maxBuffer:G},isSync:I})=>{let{exitCode:A,signal:x,signalDescription:T}=fw(K,B),{originalMessage:S,shortMessage:y,message:g}=EU({stdio:$,all:F,ipcOutput:O,originalError:Z,signal:x,signalDescription:T,exitCode:A,escapedCommand:Q,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,forceKillAfterDelay:_,killSignal:N,maxBuffer:G,timeout:D,cwd:w}),P=nH(Z,g,I);return Object.assign(P,yw({error:P,command:Y,escapedCommand:Q,startTime:J,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:A,signal:x,signalDescription:T,stdio:$,all:F,ipcOutput:O,cwd:w,originalMessage:S,shortMessage:y})),P},yw=({error:Z,command:Y,escapedCommand:Q,startTime:J,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:K,signal:B,signalDescription:$,stdio:F,all:O,ipcOutput:V,cwd:D,originalMessage:_,shortMessage:N})=>PU({shortMessage:N,originalMessage:_,command:Y,escapedCommand:Q,cwd:D,durationMs:j2(J),failed:!0,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isTerminated:B!==void 0,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:K,signal:B,signalDescription:$,code:Z.cause?.code,stdout:F[1],stderr:F[2],all:O,stdio:F,ipcOutput:V,pipedFrom:[]}),PU=(Z)=>Object.fromEntries(Object.entries(Z).filter(([,Y])=>Y!==void 0)),fw=(Z,Y)=>{let Q=Z===null?void 0:Z,J=Y===null?void 0:Y,q=J===void 0?void 0:m7(Y);return{exitCode:Q,signal:J,signalDescription:q}};var H1=j(()=>{eZ();b7();y8();xU()});function hw(Z){return{days:Math.trunc(Z/86400000),hours:Math.trunc(Z/3600000%24),minutes:Math.trunc(Z/60000%60),seconds:Math.trunc(Z/1000%60),milliseconds:Math.trunc(Z%1000),microseconds:Math.trunc(bU(Z*1000)%1000),nanoseconds:Math.trunc(bU(Z*1e6)%1000)}}function gw(Z){return{days:Z/86400000n,hours:Z/3600000n%24n,minutes:Z/60000n%60n,seconds:Z/1000n%60n,milliseconds:Z%1000n,microseconds:0n,nanoseconds:0n}}function Y9(Z){switch(typeof Z){case"number":{if(Number.isFinite(Z))return hw(Z);break}case"bigint":return gw(Z)}throw TypeError("Expected a finite number or bigint")}var bU=(Z)=>Number.isFinite(Z)?Z:0;function Q9(Z,Y){let Q=typeof Z==="bigint";if(!Q&&!Number.isFinite(Z))throw TypeError("Expected a finite number or bigint");Y={...Y};let J=Z<0?"-":"";if(Z=Z<0?-Z:Z,Y.colonNotation)Y.compact=!1,Y.formatSubMilliseconds=!1,Y.separateMilliseconds=!1,Y.verbose=!1;if(Y.compact)Y.unitCount=1,Y.secondsDecimalDigits=0,Y.millisecondsDecimalDigits=0;let q=[],X=(B,$)=>{let F=Math.floor(B*10**$+uw);return(Math.round(F)/10**$).toFixed($)},z=(B,$,F,O)=>{if((q.length===0||!Y.colonNotation)&&mw(B)&&!(Y.colonNotation&&F==="m"))return;if(O??=String(B),Y.colonNotation){let V=O.includes(".")?O.split(".")[0].length:O.length,D=q.length>0?2:1;O="0".repeat(Math.max(0,D-V))+O}else O+=Y.verbose?" "+pw($,B):F;q.push(O)},W=Y9(Z),U=BigInt(W.days);if(Y.hideYearAndDays)z(BigInt(U)*24n+BigInt(W.hours),"hour","h");else{if(Y.hideYear)z(U,"day","d");else z(U/365n,"year","y"),z(U%365n,"day","d");z(Number(W.hours),"hour","h")}if(z(Number(W.minutes),"minute","m"),!Y.hideSeconds)if(Y.separateMilliseconds||Y.formatSubMilliseconds||!Y.colonNotation&&Z<1000&&!Y.subSecondsAsDecimals){let B=Number(W.seconds),$=Number(W.milliseconds),F=Number(W.microseconds),O=Number(W.nanoseconds);if(z(B,"second","s"),Y.formatSubMilliseconds)z($,"millisecond","ms"),z(F,"microsecond","µs"),z(O,"nanosecond","ns");else{let V=$+F/1000+O/1e6,D=typeof Y.millisecondsDecimalDigits==="number"?Y.millisecondsDecimalDigits:0,_=V>=1?Math.round(V):Math.ceil(V),N=D?V.toFixed(D):_;z(Number.parseFloat(N),"millisecond","ms",N)}}else{let B=(Q?Number(Z%dw):Z)/1000%60,$=typeof Y.secondsDecimalDigits==="number"?Y.secondsDecimalDigits:1,F=X(B,$),O=Y.keepDecimalsOnWholeSeconds?F:F.replace(/\.0+$/,"");z(Number.parseFloat(O),"second","s",O)}if(q.length===0)return J+"0"+(Y.verbose?" milliseconds":"ms");let K=Y.colonNotation?":":" ";if(typeof Y.unitCount==="number")q=q.slice(0,Math.max(Y.unitCount,1));return J+q.join(K)}var mw=(Z)=>Z===0||Z===0n,pw=(Z,Y)=>Y===1||Y===1n?Z:`${Z}s`,uw=0.0000001,dw;var vU=j(()=>{dw=24n*60n*60n*1000n});var SU=(Z,Y)=>{if(Z.failed)e6({type:"error",verboseMessage:Z.shortMessage,verboseInfo:Y,result:Z})};var yU=j(()=>{l4()});var fU=(Z,Y)=>{if(!d4(Y))return;SU(Z,Y),cw(Z,Y)},cw=(Z,Y)=>{let Q=`(done in ${Q9(Z.durationMs)})`;e6({type:"duration",verboseMessage:Q,verboseInfo:Y,result:Z})};var hU=j(()=>{vU();S8();l4();yU()});var YZ=(Z,Y,{reject:Q})=>{if(fU(Z,Y),Z.failed&&Q)throw Z;return Z};var _Y=j(()=>{hU()});var pU=(Z,Y)=>{if(K4(Z))return"asyncGenerator";if(cU(Z))return"generator";if(NY(Z))return"fileUrl";if(sw(Z))return"filePath";if(tw(Z))return"webStream";if(s6(Z,{checkOpen:!1}))return"native";if(a0(Z))return"uint8Array";if(ew(Z))return"asyncIterable";if(ZA(Z))return"iterable";if(X9(Z))return uU({transform:Z},Y);if(iw(Z))return lw(Z,Y);return"native"},lw=(Z,Y)=>{if(r2(Z.transform,{checkOpen:!1}))return nw(Z,Y);if(X9(Z.transform))return uU(Z,Y);return ow(Z,Y)},nw=(Z,Y)=>{return dU(Z,Y,"Duplex stream"),"duplex"},uU=(Z,Y)=>{return dU(Z,Y,"web TransformStream"),"webTransform"},dU=({final:Z,binary:Y,objectMode:Q},J,q)=>{gU(Z,`${J}.final`,q),gU(Y,`${J}.binary`,q),J9(Q,`${J}.objectMode`)},gU=(Z,Y,Q)=>{if(Z!==void 0)throw TypeError(`The \`${Y}\` option can only be defined when using a generator, not a ${Q}.`)},ow=({transform:Z,final:Y,binary:Q,objectMode:J},q)=>{if(Z!==void 0&&!mU(Z))throw TypeError(`The \`${q}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(r2(Y,{checkOpen:!1}))throw TypeError(`The \`${q}.final\` option must not be a Duplex stream.`);if(X9(Y))throw TypeError(`The \`${q}.final\` option must not be a web TransformStream.`);if(Y!==void 0&&!mU(Y))throw TypeError(`The \`${q}.final\` option must be a generator.`);return J9(Q,`${q}.binary`),J9(J,`${q}.objectMode`),K4(Z)||K4(Y)?"asyncGenerator":"generator"},J9=(Z,Y)=>{if(Z!==void 0&&typeof Z!=="boolean")throw TypeError(`The \`${Y}\` option must use a boolean.`)},mU=(Z)=>K4(Z)||cU(Z),K4=(Z)=>Object.prototype.toString.call(Z)==="[object AsyncGeneratorFunction]",cU=(Z)=>Object.prototype.toString.call(Z)==="[object GeneratorFunction]",iw=(Z)=>l0(Z)&&(Z.transform!==void 0||Z.final!==void 0),NY=(Z)=>Object.prototype.toString.call(Z)==="[object URL]",lU=(Z)=>NY(Z)&&Z.protocol!=="file:",sw=(Z)=>l0(Z)&&Object.keys(Z).length>0&&Object.keys(Z).every((Y)=>aw.has(Y))&&q9(Z.file),aw,q9=(Z)=>typeof Z==="string",nU=(Z,Y)=>Z==="native"&&typeof Y==="string"&&!rw.has(Y),rw,oU=(Z)=>Object.prototype.toString.call(Z)==="[object ReadableStream]",IY=(Z)=>Object.prototype.toString.call(Z)==="[object WritableStream]",tw=(Z)=>oU(Z)||IY(Z),X9=(Z)=>oU(Z?.readable)&&IY(Z?.writable),ew=(Z)=>iU(Z)&&typeof Z[Symbol.asyncIterator]==="function",ZA=(Z)=>iU(Z)&&typeof Z[Symbol.iterator]==="function",iU=(Z)=>typeof Z==="object"&&Z!==null,p6,LY,z9,sU,aU,m8;var _6=j(()=>{C6();aw=new Set(["file","append"]),rw=new Set(["ipc","ignore","inherit","overlapped","pipe"]),p6=new Set(["generator","asyncGenerator","duplex","webTransform"]),LY=new Set(["fileUrl","filePath","fileNumber"]),z9=new Set(["fileUrl","filePath"]),sU=new Set([...z9,"webStream","nodeStream"]),aU=new Set(["webTransform","duplex"]),m8={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"}});var H9=(Z,Y,Q,J)=>J==="output"?YA(Z,Y,Q):QA(Z,Y,Q),YA=(Z,Y,Q)=>{let J=Y!==0&&Q[Y-1].value.readableObjectMode;return{writableObjectMode:J,readableObjectMode:Z??J}},QA=(Z,Y,Q)=>{let J=Y===0?Z===!0:Q[Y-1].value.readableObjectMode,q=Y!==Q.length-1&&(Z??J);return{writableObjectMode:J,readableObjectMode:q}},rU=(Z,Y)=>{let Q=Z.findLast(({type:J})=>p6.has(J));if(Q===void 0)return!1;return Y==="input"?Q.value.writableObjectMode:Q.value.readableObjectMode};var W9=j(()=>{_6()});var tU=(Z,Y,Q,J)=>[...Z.filter(({type:q})=>!p6.has(q)),...JA(Z,Y,Q,J)],JA=(Z,Y,Q,{encoding:J})=>{let q=Z.filter(({type:z})=>p6.has(z)),X=Array.from({length:q.length});for(let[z,W]of Object.entries(q))X[z]=qA({stdioItem:W,index:Number(z),newTransforms:X,optionName:Y,direction:Q,encoding:J});return WA(X,Q)},qA=({stdioItem:Z,stdioItem:{type:Y},index:Q,newTransforms:J,optionName:q,direction:X,encoding:z})=>{if(Y==="duplex")return XA({stdioItem:Z,optionName:q});if(Y==="webTransform")return zA({stdioItem:Z,index:Q,newTransforms:J,direction:X});return HA({stdioItem:Z,index:Q,newTransforms:J,direction:X,encoding:z})},XA=({stdioItem:Z,stdioItem:{value:{transform:Y,transform:{writableObjectMode:Q,readableObjectMode:J},objectMode:q=J}},optionName:X})=>{if(q&&!J)throw TypeError(`The \`${X}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!q&&J)throw TypeError(`The \`${X}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...Z,value:{transform:Y,writableObjectMode:Q,readableObjectMode:J}}},zA=({stdioItem:Z,stdioItem:{value:Y},index:Q,newTransforms:J,direction:q})=>{let{transform:X,objectMode:z}=l0(Y)?Y:{transform:Y},{writableObjectMode:W,readableObjectMode:U}=H9(z,Q,J,q);return{...Z,value:{transform:X,writableObjectMode:W,readableObjectMode:U}}},HA=({stdioItem:Z,stdioItem:{value:Y},index:Q,newTransforms:J,direction:q,encoding:X})=>{let{transform:z,final:W,binary:U=!1,preserveNewlines:K=!1,objectMode:B}=l0(Y)?Y:{transform:Y},$=U||R6.has(X),{writableObjectMode:F,readableObjectMode:O}=H9(B,Q,J,q);return{...Z,value:{transform:z,final:W,binary:$,preserveNewlines:K,writableObjectMode:F,readableObjectMode:O}}},WA=(Z,Y)=>Y==="input"?Z.reverse():Z;var eU=j(()=>{H4();_6();W9()});import U9 from"node:process";var ZK=(Z,Y,Q)=>{let J=Z.map((q)=>UA(q,Y));if(J.includes("input")&&J.includes("output"))throw TypeError(`The \`${Q}\` option must not be an array of both readable and writable values.`);return J.find(Boolean)??$A},UA=({type:Z,value:Y},Q)=>KA[Q]??YK[Z](Y),KA,QZ=()=>{return},K9=()=>"input",YK,BA=(Z)=>{if([0,U9.stdin].includes(Z))return"input";if([1,2,U9.stdout,U9.stderr].includes(Z))return"output"},$A="output";var QK=j(()=>{_6();KA=["input","output","output"],YK={generator:QZ,asyncGenerator:QZ,fileUrl:QZ,filePath:QZ,iterable:K9,asyncIterable:K9,uint8Array:K9,webStream:(Z)=>IY(Z)?"output":"input",nodeStream(Z){if(!W4(Z,{checkOpen:!1}))return"output";return a2(Z,{checkOpen:!1})?void 0:"input"},webTransform:QZ,duplex:QZ,native(Z){let Y=BA(Z);if(Y!==void 0)return Y;if(s6(Z,{checkOpen:!1}))return YK.nodeStream(Z)}}});var JK=(Z,Y)=>Y&&!Z.includes("ipc")?[...Z,"ipc"]:Z;var qK=({stdio:Z,ipc:Y,buffer:Q,...J},q,X)=>{let z=FA(Z,J).map((W,U)=>XK(W,U));return X?OA(z,Q,q):JK(z,Y)},FA=(Z,Y)=>{if(Z===void 0)return g6.map((J)=>Y[J]);if(VA(Y))throw Error(`It's not possible to provide \`stdio\` in combination with one of ${g6.map((J)=>`\`${J}\``).join(", ")}`);if(typeof Z==="string")return[Z,Z,Z];if(!Array.isArray(Z))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof Z}\``);let Q=Math.max(Z.length,g6.length);return Array.from({length:Q},(J,q)=>Z[q])},VA=(Z)=>g6.some((Y)=>Z[Y]!==void 0),XK=(Z,Y)=>{if(Array.isArray(Z))return Z.map((Q)=>XK(Q,Y));if(Z===null||Z===void 0)return Y>=g6.length?"ignore":"pipe";return Z},OA=(Z,Y,Q)=>Z.map((J,q)=>!Y[q]&&q!==0&&!c4(Q,q)&&DA(J)?"ignore":J),DA=(Z)=>Z==="pipe"||Array.isArray(Z)&&Z.every((Y)=>Y==="pipe");var zK=j(()=>{V8();S8()});import{readFileSync as MA}from"node:fs";import jA from"node:tty";var WK=({stdioItem:Z,stdioItem:{type:Y},isStdioArray:Q,fdNumber:J,direction:q,isSync:X})=>{if(!Q||Y!=="native")return Z;return X?_A({stdioItem:Z,fdNumber:J,direction:q}):LA({stdioItem:Z,fdNumber:J})},_A=({stdioItem:Z,stdioItem:{value:Y,optionName:Q},fdNumber:J,direction:q})=>{let X=NA({value:Y,optionName:Q,fdNumber:J,direction:q});if(X!==void 0)return X;if(s6(Y,{checkOpen:!1}))throw TypeError(`The \`${Q}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return Z},NA=({value:Z,optionName:Y,fdNumber:Q,direction:J})=>{let q=IA(Z,Q);if(q===void 0)return;if(J==="output")return{type:"fileNumber",value:q,optionName:Y};if(jA.isatty(q))throw TypeError(`The \`${Y}: ${c7(Z)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:F8(MA(q)),optionName:Y}},IA=(Z,Y)=>{if(Z==="inherit")return Y;if(typeof Z==="number")return Z;let Q=w7.indexOf(Z);if(Q!==-1)return Q},LA=({stdioItem:Z,stdioItem:{value:Y,optionName:Q},fdNumber:J})=>{if(Y==="inherit")return{type:"nodeStream",value:HK(J,Y,Q),optionName:Q};if(typeof Y==="number")return{type:"nodeStream",value:HK(Y,Y,Q),optionName:Q};if(s6(Y,{checkOpen:!1}))return{type:"nodeStream",value:Y,optionName:Q};return Z},HK=(Z,Y,Q)=>{let J=w7[Z];if(J===void 0)throw TypeError(`The \`${Q}: ${Y}\` option is invalid: no such standard stream.`);return J};var UK=j(()=>{V8();C6();h8()});var KK=({input:Z,inputFile:Y},Q)=>Q===0?[...wA(Z),...GA(Y)]:[],wA=(Z)=>Z===void 0?[]:[{type:AA(Z),value:Z,optionName:"input"}],AA=(Z)=>{if(W4(Z,{checkOpen:!1}))return"nodeStream";if(typeof Z==="string")return"string";if(a0(Z))return"uint8Array";throw Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},GA=(Z)=>Z===void 0?[]:[{...CA(Z),optionName:"inputFile"}],CA=(Z)=>{if(NY(Z))return{type:"fileUrl",value:Z};if(q9(Z))return{type:"filePath",value:{file:Z}};throw Error("The `inputFile` option must be a file path string or a file URL.")};var BK=j(()=>{C6();_6()});var $K=(Z)=>Z.filter((Y,Q)=>Z.every((J,q)=>Y.value!==J.value||Q>=q||Y.type==="generator"||Y.type==="asyncGenerator")),FK=({stdioItem:{type:Z,value:Y,optionName:Q},direction:J,fileDescriptors:q,isSync:X})=>{let z=RA(q,Z);if(z.length===0)return;if(X){TA({otherStdioItems:z,type:Z,value:Y,optionName:Q,direction:J});return}if(sU.has(Z))return VK({otherStdioItems:z,type:Z,value:Y,optionName:Q,direction:J});if(aU.has(Z))EA({otherStdioItems:z,type:Z,value:Y,optionName:Q})},RA=(Z,Y)=>Z.flatMap(({direction:Q,stdioItems:J})=>J.filter((q)=>q.type===Y).map((q)=>({...q,direction:Q}))),TA=({otherStdioItems:Z,type:Y,value:Q,optionName:J,direction:q})=>{if(z9.has(Y))VK({otherStdioItems:Z,type:Y,value:Q,optionName:J,direction:q})},VK=({otherStdioItems:Z,type:Y,value:Q,optionName:J,direction:q})=>{let X=Z.filter((W)=>kA(W,Q));if(X.length===0)return;let z=X.find((W)=>W.direction!==q);return OK(z,J,Y),q==="output"?X[0].stream:void 0},kA=({type:Z,value:Y},Q)=>{if(Z==="filePath")return Y.file===Q.file;if(Z==="fileUrl")return Y.href===Q.href;return Y===Q},EA=({otherStdioItems:Z,type:Y,value:Q,optionName:J})=>{let q=Z.find(({value:{transform:X}})=>X===Q.transform);OK(q,J,Y)},OK=(Z,Y,Q)=>{if(Z!==void 0)throw TypeError(`The \`${Z.optionName}\` and \`${Y}\` options must not target ${m8[Q]} that is the same.`)};var DK=j(()=>{_6()});var wY=(Z,Y,Q,J)=>{let X=qK(Y,Q,J).map((W,U)=>xA({stdioOption:W,fdNumber:U,options:Y,isSync:J})),z=gA({initialFileDescriptors:X,addProperties:Z,options:Y,isSync:J});return Y.stdio=z.map(({stdioItems:W})=>uA(W)),z},xA=({stdioOption:Z,fdNumber:Y,options:Q,isSync:J})=>{let q=A7(Y),{stdioItems:X,isStdioArray:z}=PA({stdioOption:Z,fdNumber:Y,options:Q,optionName:q}),W=ZK(X,Y,q),U=X.map(($)=>WK({stdioItem:$,isStdioArray:z,fdNumber:Y,direction:W,isSync:J})),K=tU(U,q,W,Q),B=rU(K,W);return hA(K,B),{direction:W,objectMode:B,stdioItems:K}},PA=({stdioOption:Z,fdNumber:Y,options:Q,optionName:J})=>{let X=[...(Array.isArray(Z)?Z:[Z]).map((U)=>bA(U,J)),...KK(Q,Y)],z=$K(X),W=z.length>1;return vA(z,W,J),yA(z),{stdioItems:z,isStdioArray:W}},bA=(Z,Y)=>({type:pU(Z,Y),value:Z,optionName:Y}),vA=(Z,Y,Q)=>{if(Z.length===0)throw TypeError(`The \`${Q}\` option must not be an empty array.`);if(!Y)return;for(let{value:J,optionName:q}of Z)if(SA.has(J))throw Error(`The \`${q}\` option must not include \`${J}\`.`)},SA,yA=(Z)=>{for(let Y of Z)fA(Y)},fA=({type:Z,value:Y,optionName:Q})=>{if(lU(Y))throw TypeError(`The \`${Q}: URL\` option must use the \`file:\` scheme.
|
|
78
|
-
For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(
|
|
79
|
-
`){let z=
|
|
71
|
+
${Z}`;return Z};var Z9=N(()=>{l8()});import $w from"node:path";import $U from"node:process";var FU,KY=(Z,Y,Q)=>{Q.cwd=UU(Q.cwd);let[J,q,X]=qU(Z,Y,Q),{command:z,args:W,options:U}=FU.default._parse(J,q,X),K=gz(U),B=Fw(K);if(ZU(B),WU(B),XU(B),NW(B),tW(B),B.shell=D2(B.shell),B.env=Vw(B),B.killSignal=OW(B.killSignal),B.forceKillAfterDelay=jW(B.forceKillAfterDelay),B.lines=B.lines.map(($,V)=>$&&!T6.has(B.encoding)&&B.buffer[V]),$U.platform==="win32"&&$w.basename(z,".exe")==="cmd")W.unshift("/q");return{file:z,commandArguments:W,options:B}},Fw=({extendEnv:Z=!0,preferLocal:Y=!1,cwd:Q,localDir:J=Q,encoding:q="utf8",reject:X=!0,cleanup:z=!0,all:W=!1,windowsHide:U=!0,killSignal:K="SIGTERM",forceKillAfterDelay:B=!0,gracefulCancel:$=!1,ipcInput:V,ipc:D=V!==void 0||$,serialization:F="advanced",...O})=>({...O,extendEnv:Z,preferLocal:Y,cwd:Q,localDirectory:J,encoding:q,reject:X,cleanup:z,all:W,windowsHide:U,killSignal:K,forceKillAfterDelay:B,gracefulCancel:$,ipcInput:V,ipc:D,serialization:F}),Vw=({env:Z,extendEnv:Y,preferLocal:Q,node:J,localDirectory:q,nodePath:X})=>{let z=Y?{...$U.env,...Z}:Z;if(Q||J)return YW({env:z,cwd:q,execPath:X,preferLocal:Q,addExecPath:J});return z};var Y9=N(()=>{QW();c7();Y1();p2();s2();a2();r2();t2();K8();Z9();l8();M4();FU=RX(rH(),1)});var BY=(Z,Y,Q)=>Q.shell&&Y.length>0?[[Z,...Y].join(" "),[],Q]:[Z,Y,Q];function YZ(Z){if(typeof Z==="string")return Ow(Z);if(!(ArrayBuffer.isView(Z)&&Z.BYTES_PER_ELEMENT===1))throw Error("Input must be a string or a Uint8Array");return Dw(Z)}var Ow=(Z)=>Z.at(-1)===VU?Z.slice(0,Z.at(-2)===OU?-2:-1):Z,Dw=(Z)=>Z.at(-1)===Mw?Z.subarray(0,Z.at(-2)===jw?-2:-1):Z,VU=`
|
|
72
|
+
`,Mw,OU="\r",jw;var Q9=N(()=>{Mw=VU.codePointAt(0),jw=OU.codePointAt(0)});function r6(Z,{checkOpen:Y=!0}={}){return Z!==null&&typeof Z==="object"&&(Z.writable||Z.readable||!Y||Z.writable===void 0&&Z.readable===void 0)&&typeof Z.pipe==="function"}function J9(Z,{checkOpen:Y=!0}={}){return r6(Z,{checkOpen:Y})&&(Z.writable||!Y)&&typeof Z.write==="function"&&typeof Z.end==="function"&&typeof Z.writable==="boolean"&&typeof Z.writableObjectMode==="boolean"&&typeof Z.destroy==="function"&&typeof Z.destroyed==="boolean"}function B8(Z,{checkOpen:Y=!0}={}){return r6(Z,{checkOpen:Y})&&(Z.readable||!Y)&&typeof Z.read==="function"&&typeof Z.readable==="boolean"&&typeof Z.readableObjectMode==="boolean"&&typeof Z.destroy==="function"&&typeof Z.destroyed==="boolean"}function q9(Z,Y){return J9(Z,Y)&&B8(Z,Y)}class DU{#Y;#Q;#Z=!1;#J=void 0;constructor(Z,Y){this.#Y=Z,this.#Q=Y}next(){let Z=()=>this.#X();return this.#J=this.#J?this.#J.then(Z,Z):Z(),this.#J}return(Z){let Y=()=>this.#q(Z);return this.#J?this.#J.then(Y,Y):Y()}async#X(){if(this.#Z)return{done:!0,value:void 0};let Z;try{Z=await this.#Y.read()}catch(Y){throw this.#J=void 0,this.#Z=!0,this.#Y.releaseLock(),Y}return Z.done&&(this.#J=void 0,this.#Z=!0,this.#Y.releaseLock()),Z}async#q(Z){if(this.#Z)return{done:!0,value:Z};if(this.#Z=!0,!this.#Q){let Y=this.#Y.cancel(Z);return this.#Y.releaseLock(),await Y,{done:!0,value:Z}}return this.#Y.releaseLock(),{done:!0,value:Z}}}function MU(){return this[X9].next()}function jU(Z){return this[X9].return(Z)}function z9({preventCancel:Z=!1}={}){let Y=this.getReader(),Q=new DU(Y,Z),J=Object.create(Nw);return J[X9]=Q,J}var _w,X9,Nw;var _U=N(()=>{_w=Object.getPrototypeOf(Object.getPrototypeOf(async function*(){}).prototype);X9=Symbol();Object.defineProperty(MU,"name",{value:"next"});Object.defineProperty(jU,"name",{value:"return"});Nw=Object.create(_w,{next:{enumerable:!0,configurable:!0,writable:!0,value:MU},return:{enumerable:!0,configurable:!0,writable:!0,value:jU}})});var NU=()=>{};var IU=N(()=>{_U();NU()});var LU=(Z)=>{if(B8(Z,{checkOpen:!1})&&X1.on!==void 0)return Lw(Z);if(typeof Z?.[Symbol.asyncIterator]==="function")return Z;if(Iw.call(Z)==="[object ReadableStream]")return z9.call(Z);throw TypeError("The first argument must be a Readable, a ReadableStream, or an async iterable.")},Iw,Lw=async function*(Z){let Y=new AbortController,Q={};ww(Z,Y,Q);try{for await(let[J]of X1.on(Z,"data",{signal:Y.signal}))yield J}catch(J){if(Q.error!==void 0)throw Q.error;else if(!Y.signal.aborted)throw J}finally{Z.destroy()}},ww=async(Z,Y,Q)=>{try{await X1.finished(Z,{cleanup:!0,readable:!0,writable:!1,error:!1})}catch(J){Q.error=J}finally{Y.abort()}},X1;var H9=N(()=>{IU();({toString:Iw}=Object.prototype),X1={}});var QZ=async(Z,{init:Y,convertChunk:Q,getSize:J,truncateChunk:q,addChunk:X,getFinalChunk:z,finalize:W},{maxBuffer:U=Number.POSITIVE_INFINITY}={})=>{let K=LU(Z),B=Y();B.length=0;try{for await(let $ of K){let V=Gw($),D=Q[V]($,B);GU({convertedChunk:D,state:B,getSize:J,truncateChunk:q,addChunk:X,maxBuffer:U})}return Aw({state:B,convertChunk:Q,getSize:J,truncateChunk:q,addChunk:X,getFinalChunk:z,maxBuffer:U}),W(B)}catch($){let V=typeof $==="object"&&$!==null?$:Error($);throw V.bufferedData=W(B),V}},Aw=({state:Z,getSize:Y,truncateChunk:Q,addChunk:J,getFinalChunk:q,maxBuffer:X})=>{let z=q(Z);if(z!==void 0)GU({convertedChunk:z,state:Z,getSize:Y,truncateChunk:Q,addChunk:J,maxBuffer:X})},GU=({convertedChunk:Z,state:Y,getSize:Q,truncateChunk:J,addChunk:q,maxBuffer:X})=>{let z=Q(Z),W=Y.length+z;if(W<=X){wU(Z,Y,q,W);return}let U=J(Z,X-Y.length);if(U!==void 0)wU(U,Y,q,X);throw new j4},wU=(Z,Y,Q,J)=>{Y.contents=Q(Z,Y,J),Y.length=J},Gw=(Z)=>{let Y=typeof Z;if(Y==="string")return"string";if(Y!=="object"||Z===null)return"others";if(globalThis.Buffer?.isBuffer(Z))return"buffer";let Q=AU.call(Z);if(Q==="[object ArrayBuffer]")return"arrayBuffer";if(Q==="[object DataView]")return"dataView";if(Number.isInteger(Z.byteLength)&&Number.isInteger(Z.byteOffset)&&AU.call(Z.buffer)==="[object ArrayBuffer]")return"typedArray";return"others"},AU,j4;var z1=N(()=>{H9();({toString:AU}=Object.prototype);j4=class j4 extends Error{name="MaxBufferError";constructor(){super("maxBuffer exceeded")}}});var _4=(Z)=>Z,H1=()=>{return},$Y=({contents:Z})=>Z,FY=(Z)=>{throw Error(`Streams in object mode are not supported: ${String(Z)}`)},VY=(Z)=>Z.length;async function OY(Z,Y){return QZ(Z,kw,Y)}var Cw=()=>({contents:[]}),Rw=()=>1,Tw=(Z,{contents:Y})=>{return Y.push(Z),Y},kw;var CU=N(()=>{z1();kw={init:Cw,convertChunk:{string:_4,buffer:_4,arrayBuffer:_4,dataView:_4,typedArray:_4,others:_4},getSize:Rw,truncateChunk:H1,addChunk:Tw,getFinalChunk:H1,finalize:$Y}});async function DY(Z,Y){return QZ(Z,hw,Y)}var Ew=()=>({contents:new ArrayBuffer(0)}),Pw=(Z)=>xw.encode(Z),xw,RU=(Z)=>new Uint8Array(Z),TU=(Z)=>new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength),bw=(Z,Y)=>Z.slice(0,Y),vw=(Z,{contents:Y,length:Q},J)=>{let q=PU()?yw(Y,J):Sw(Y,J);return new Uint8Array(q).set(Z,Q),q},Sw=(Z,Y)=>{if(Y<=Z.byteLength)return Z;let Q=new ArrayBuffer(EU(Y));return new Uint8Array(Q).set(new Uint8Array(Z),0),Q},yw=(Z,Y)=>{if(Y<=Z.maxByteLength)return Z.resize(Y),Z;let Q=new ArrayBuffer(Y,{maxByteLength:EU(Y)});return new Uint8Array(Q).set(new Uint8Array(Z),0),Q},EU=(Z)=>kU**Math.ceil(Math.log(Z)/Math.log(kU)),kU=2,fw=({contents:Z,length:Y})=>PU()?Z:Z.slice(0,Y),PU=()=>("resize"in ArrayBuffer.prototype),hw;var xU=N(()=>{z1();xw=new TextEncoder,hw={init:Ew,convertChunk:{string:Pw,buffer:RU,arrayBuffer:RU,dataView:TU,typedArray:TU,others:FY},getSize:VY,truncateChunk:bw,addChunk:vw,getFinalChunk:H1,finalize:fw}});async function jY(Z,Y){return QZ(Z,dw,Y)}var gw=()=>({contents:"",textDecoder:new TextDecoder}),MY=(Z,{textDecoder:Y})=>Y.decode(Z,{stream:!0}),mw=(Z,{contents:Y})=>Y+Z,pw=(Z,Y)=>Z.slice(0,Y),uw=({textDecoder:Z})=>{let Y=Z.decode();return Y===""?void 0:Y},dw;var bU=N(()=>{z1();dw={init:gw,convertChunk:{string:_4,buffer:MY,arrayBuffer:MY,dataView:MY,typedArray:MY,others:FY},getSize:VY,truncateChunk:pw,addChunk:mw,getFinalChunk:uw,finalize:$Y}});var vU=N(()=>{CU();xU();bU();z1()});import{on as cw}from"node:events";import{finished as lw}from"node:stream/promises";var _Y=N(()=>{H9();vU();Object.assign(X1,{on:cw,finished:lw})});var SU=({error:Z,stream:Y,readableObjectMode:Q,lines:J,encoding:q,fdNumber:X})=>{if(!(Z instanceof j4))throw Z;if(X==="all")return Z;let z=nw(Q,J,q);throw Z.maxBufferInfo={fdNumber:X,unit:z},Y.destroy(),Z},nw=(Z,Y,Q)=>{if(Z)return"objects";if(Y)return"lines";if(Q==="buffer")return"bytes";return"characters"},yU=(Z,Y,Q)=>{if(Y.length!==Q)return;let J=new j4;throw J.maxBufferInfo={fdNumber:"ipc"},J},fU=(Z,Y)=>{let{streamName:Q,threshold:J,unit:q}=ow(Z,Y);return`Command's ${Q} was larger than ${J} ${q}`},ow=(Z,Y)=>{if(Z?.maxBufferInfo===void 0)return{streamName:"output",threshold:Y[1],unit:"bytes"};let{maxBufferInfo:{fdNumber:Q,unit:J}}=Z;delete Z.maxBufferInfo;let q=D4(Y,Q);if(Q==="ipc")return{streamName:"IPC output",threshold:q,unit:"messages"};return{streamName:R7(Q),threshold:q,unit:J}},hU=(Z,Y,Q)=>Z?.code==="ENOBUFS"&&Y!==null&&Y.some((J)=>J!==null&&J.length>NY(Q)),gU=(Z,Y,Q)=>{if(!Y)return Z;let J=NY(Q);return Z.length>J?Z.slice(0,J):Z},NY=([,Z])=>Z;var $8=N(()=>{_Y();O4();M4()});import{inspect as iw}from"node:util";var pU=({stdio:Z,all:Y,ipcOutput:Q,originalError:J,signal:q,signalDescription:X,exitCode:z,escapedCommand:W,timedOut:U,isCanceled:K,isGracefullyCanceled:B,isMaxBuffer:$,isForcefullyTerminated:V,forceKillAfterDelay:D,killSignal:F,maxBuffer:O,timeout:j,cwd:_})=>{let L=J?.code,A=sw({originalError:J,timedOut:U,timeout:j,isMaxBuffer:$,maxBuffer:O,errorCode:L,signal:q,signalDescription:X,exitCode:z,isCanceled:K,isGracefullyCanceled:B,isForcefullyTerminated:V,forceKillAfterDelay:D,killSignal:F}),I=rw(J,_),G=I===void 0?"":`
|
|
73
|
+
${I}`,P=`${A}: ${W}${G}`,T=Y===void 0?[Z[2],Z[1]]:[Y],S=[P,...T,...Z.slice(3),Q.map((y)=>tw(y)).join(`
|
|
74
|
+
`)].map((y)=>tZ(YZ(ew(y)))).filter(Boolean).join(`
|
|
75
|
+
|
|
76
|
+
`);return{originalMessage:I,shortMessage:P,message:S}},sw=({originalError:Z,timedOut:Y,timeout:Q,isMaxBuffer:J,maxBuffer:q,errorCode:X,signal:z,signalDescription:W,exitCode:U,isCanceled:K,isGracefullyCanceled:B,isForcefullyTerminated:$,forceKillAfterDelay:V,killSignal:D})=>{let F=aw($,V);if(Y)return`Command timed out after ${Q} milliseconds${F}`;if(B){if(z===void 0)return`Command was gracefully canceled with exit code ${U}`;return $?`Command was gracefully canceled${F}`:`Command was gracefully canceled with ${z} (${W})`}if(K)return`Command was canceled${F}`;if(J)return`${fU(Z,q)}${F}`;if(X!==void 0)return`Command failed with ${X}${F}`;if($)return`Command was killed with ${D} (${d7(D)})${F}`;if(z!==void 0)return`Command was killed with ${z} (${W})`;if(U!==void 0)return`Command failed with exit code ${U}`;return"Command failed"},aw=(Z,Y)=>Z?` and was forcefully terminated after ${Y} milliseconds`:"",rw=(Z,Y)=>{if(Z instanceof Q4)return;let Q=XW(Z)?Z.originalMessage:String(Z?.message??Z),J=tZ(BU(Q,Y));return J===""?void 0:J},tw=(Z)=>typeof Z==="string"?Z:iw(Z),ew=(Z)=>Array.isArray(Z)?Z.map((Y)=>YZ(mU(Y))).filter(Boolean).join(`
|
|
77
|
+
`):mU(Z),mU=(Z)=>{if(typeof Z==="string")return Z;if(t0(Z))return G7(Z);return""};var uU=N(()=>{Q9();R6();Z9();E7();$8();Y1();h4()});var IY=({command:Z,escapedCommand:Y,stdio:Q,all:J,ipcOutput:q,options:{cwd:X},startTime:z})=>dU({command:Z,escapedCommand:Y,cwd:X,durationMs:G2(z),failed:!1,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isTerminated:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,exitCode:0,stdout:Q[1],stderr:Q[2],all:J,stdio:Q,ipcOutput:q,pipedFrom:[]}),JZ=({error:Z,command:Y,escapedCommand:Q,fileDescriptors:J,options:q,startTime:X,isSync:z})=>W1({error:Z,command:Y,escapedCommand:Q,startTime:X,timedOut:!1,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:!1,isForcefullyTerminated:!1,stdio:Array.from({length:J.length}),ipcOutput:[],options:q,isSync:z}),W1=({error:Z,command:Y,escapedCommand:Q,startTime:J,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:K,signal:B,stdio:$,all:V,ipcOutput:D,options:{timeoutDuration:F,timeout:O=F,forceKillAfterDelay:j,killSignal:_,cwd:L,maxBuffer:A},isSync:I})=>{let{exitCode:G,signal:P,signalDescription:T}=YA(K,B),{originalMessage:S,shortMessage:y,message:g}=pU({stdio:$,all:V,ipcOutput:D,originalError:Z,signal:P,signalDescription:T,exitCode:G,escapedCommand:Q,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,forceKillAfterDelay:j,killSignal:_,maxBuffer:A,timeout:O,cwd:L}),x=JW(Z,g,I);return Object.assign(x,ZA({error:x,command:Y,escapedCommand:Q,startTime:J,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:G,signal:P,signalDescription:T,stdio:$,all:V,ipcOutput:D,cwd:L,originalMessage:S,shortMessage:y})),x},ZA=({error:Z,command:Y,escapedCommand:Q,startTime:J,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:K,signal:B,signalDescription:$,stdio:V,all:D,ipcOutput:F,cwd:O,originalMessage:j,shortMessage:_})=>dU({shortMessage:_,originalMessage:j,command:Y,escapedCommand:Q,cwd:O,durationMs:G2(J),failed:!0,timedOut:q,isCanceled:X,isGracefullyCanceled:z,isTerminated:B!==void 0,isMaxBuffer:W,isForcefullyTerminated:U,exitCode:K,signal:B,signalDescription:$,code:Z.cause?.code,stdout:V[1],stderr:V[2],all:D,stdio:V,ipcOutput:F,pipedFrom:[]}),dU=(Z)=>Object.fromEntries(Object.entries(Z).filter(([,Y])=>Y!==void 0)),YA=(Z,Y)=>{let Q=Z===null?void 0:Z,J=Y===null?void 0:Y,q=J===void 0?void 0:d7(Y);return{exitCode:Q,signal:J,signalDescription:q}};var U1=N(()=>{Y1();y7();h4();uU()});function QA(Z){return{days:Math.trunc(Z/86400000),hours:Math.trunc(Z/3600000%24),minutes:Math.trunc(Z/60000%60),seconds:Math.trunc(Z/1000%60),milliseconds:Math.trunc(Z%1000),microseconds:Math.trunc(cU(Z*1000)%1000),nanoseconds:Math.trunc(cU(Z*1e6)%1000)}}function JA(Z){return{days:Z/86400000n,hours:Z/3600000n%24n,minutes:Z/60000n%60n,seconds:Z/1000n%60n,milliseconds:Z%1000n,microseconds:0n,nanoseconds:0n}}function W9(Z){switch(typeof Z){case"number":{if(Number.isFinite(Z))return QA(Z);break}case"bigint":return JA(Z)}throw TypeError("Expected a finite number or bigint")}var cU=(Z)=>Number.isFinite(Z)?Z:0;function U9(Z,Y){let Q=typeof Z==="bigint";if(!Q&&!Number.isFinite(Z))throw TypeError("Expected a finite number or bigint");Y={...Y};let J=Z<0?"-":"";if(Z=Z<0?-Z:Z,Y.colonNotation)Y.compact=!1,Y.formatSubMilliseconds=!1,Y.separateMilliseconds=!1,Y.verbose=!1;if(Y.compact)Y.unitCount=1,Y.secondsDecimalDigits=0,Y.millisecondsDecimalDigits=0;let q=[],X=(B,$)=>{let V=Math.floor(B*10**$+zA);return(Math.round(V)/10**$).toFixed($)},z=(B,$,V,D)=>{if((q.length===0||!Y.colonNotation)&&qA(B)&&!(Y.colonNotation&&V==="m"))return;if(D??=String(B),Y.colonNotation){let F=D.includes(".")?D.split(".")[0].length:D.length,O=q.length>0?2:1;D="0".repeat(Math.max(0,O-F))+D}else D+=Y.verbose?" "+XA($,B):V;q.push(D)},W=W9(Z),U=BigInt(W.days);if(Y.hideYearAndDays)z(BigInt(U)*24n+BigInt(W.hours),"hour","h");else{if(Y.hideYear)z(U,"day","d");else z(U/365n,"year","y"),z(U%365n,"day","d");z(Number(W.hours),"hour","h")}if(z(Number(W.minutes),"minute","m"),!Y.hideSeconds)if(Y.separateMilliseconds||Y.formatSubMilliseconds||!Y.colonNotation&&Z<1000&&!Y.subSecondsAsDecimals){let B=Number(W.seconds),$=Number(W.milliseconds),V=Number(W.microseconds),D=Number(W.nanoseconds);if(z(B,"second","s"),Y.formatSubMilliseconds)z($,"millisecond","ms"),z(V,"microsecond","µs"),z(D,"nanosecond","ns");else{let F=$+V/1000+D/1e6,O=typeof Y.millisecondsDecimalDigits==="number"?Y.millisecondsDecimalDigits:0,j=F>=1?Math.round(F):Math.ceil(F),_=O?F.toFixed(O):j;z(Number.parseFloat(_),"millisecond","ms",_)}}else{let B=(Q?Number(Z%HA):Z)/1000%60,$=typeof Y.secondsDecimalDigits==="number"?Y.secondsDecimalDigits:1,V=X(B,$),D=Y.keepDecimalsOnWholeSeconds?V:V.replace(/\.0+$/,"");z(Number.parseFloat(D),"second","s",D)}if(q.length===0)return J+"0"+(Y.verbose?" milliseconds":"ms");let K=Y.colonNotation?":":" ";if(typeof Y.unitCount==="number")q=q.slice(0,Math.max(Y.unitCount,1));return J+q.join(K)}var qA=(Z)=>Z===0||Z===0n,XA=(Z,Y)=>Y===1||Y===1n?Z:`${Z}s`,zA=0.0000001,HA;var lU=N(()=>{HA=24n*60n*60n*1000n});var nU=(Z,Y)=>{if(Z.failed)Y4({type:"error",verboseMessage:Z.shortMessage,verboseInfo:Y,result:Z})};var oU=N(()=>{i8()});var iU=(Z,Y)=>{if(!n8(Y))return;nU(Z,Y),WA(Z,Y)},WA=(Z,Y)=>{let Q=`(done in ${U9(Z.durationMs)})`;Y4({type:"duration",verboseMessage:Q,verboseInfo:Y,result:Z})};var sU=N(()=>{lU();f4();i8();oU()});var qZ=(Z,Y,{reject:Q})=>{if(iU(Z,Y),Z.failed&&Q)throw Z;return Z};var LY=N(()=>{sU()});var tU=(Z,Y)=>{if(F8(Z))return"asyncGenerator";if(YK(Z))return"generator";if(wY(Z))return"fileUrl";if(FA(Z))return"filePath";if(DA(Z))return"webStream";if(r6(Z,{checkOpen:!1}))return"native";if(t0(Z))return"uint8Array";if(MA(Z))return"asyncIterable";if(jA(Z))return"iterable";if($9(Z))return eU({transform:Z},Y);if($A(Z))return UA(Z,Y);return"native"},UA=(Z,Y)=>{if(q9(Z.transform,{checkOpen:!1}))return KA(Z,Y);if($9(Z.transform))return eU(Z,Y);return BA(Z,Y)},KA=(Z,Y)=>{return ZK(Z,Y,"Duplex stream"),"duplex"},eU=(Z,Y)=>{return ZK(Z,Y,"web TransformStream"),"webTransform"},ZK=({final:Z,binary:Y,objectMode:Q},J,q)=>{aU(Z,`${J}.final`,q),aU(Y,`${J}.binary`,q),K9(Q,`${J}.objectMode`)},aU=(Z,Y,Q)=>{if(Z!==void 0)throw TypeError(`The \`${Y}\` option can only be defined when using a generator, not a ${Q}.`)},BA=({transform:Z,final:Y,binary:Q,objectMode:J},q)=>{if(Z!==void 0&&!rU(Z))throw TypeError(`The \`${q}.transform\` option must be a generator, a Duplex stream or a web TransformStream.`);if(q9(Y,{checkOpen:!1}))throw TypeError(`The \`${q}.final\` option must not be a Duplex stream.`);if($9(Y))throw TypeError(`The \`${q}.final\` option must not be a web TransformStream.`);if(Y!==void 0&&!rU(Y))throw TypeError(`The \`${q}.final\` option must be a generator.`);return K9(Q,`${q}.binary`),K9(J,`${q}.objectMode`),F8(Z)||F8(Y)?"asyncGenerator":"generator"},K9=(Z,Y)=>{if(Z!==void 0&&typeof Z!=="boolean")throw TypeError(`The \`${Y}\` option must use a boolean.`)},rU=(Z)=>F8(Z)||YK(Z),F8=(Z)=>Object.prototype.toString.call(Z)==="[object AsyncGeneratorFunction]",YK=(Z)=>Object.prototype.toString.call(Z)==="[object GeneratorFunction]",$A=(Z)=>n0(Z)&&(Z.transform!==void 0||Z.final!==void 0),wY=(Z)=>Object.prototype.toString.call(Z)==="[object URL]",QK=(Z)=>wY(Z)&&Z.protocol!=="file:",FA=(Z)=>n0(Z)&&Object.keys(Z).length>0&&Object.keys(Z).every((Y)=>VA.has(Y))&&B9(Z.file),VA,B9=(Z)=>typeof Z==="string",JK=(Z,Y)=>Z==="native"&&typeof Y==="string"&&!OA.has(Y),OA,qK=(Z)=>Object.prototype.toString.call(Z)==="[object ReadableStream]",AY=(Z)=>Object.prototype.toString.call(Z)==="[object WritableStream]",DA=(Z)=>qK(Z)||AY(Z),$9=(Z)=>qK(Z?.readable)&&AY(Z?.writable),MA=(Z)=>XK(Z)&&typeof Z[Symbol.asyncIterator]==="function",jA=(Z)=>XK(Z)&&typeof Z[Symbol.iterator]==="function",XK=(Z)=>typeof Z==="object"&&Z!==null,u6,GY,F9,zK,HK,u4;var N6=N(()=>{R6();VA=new Set(["file","append"]),OA=new Set(["ipc","ignore","inherit","overlapped","pipe"]),u6=new Set(["generator","asyncGenerator","duplex","webTransform"]),GY=new Set(["fileUrl","filePath","fileNumber"]),F9=new Set(["fileUrl","filePath"]),zK=new Set([...F9,"webStream","nodeStream"]),HK=new Set(["webTransform","duplex"]),u4={generator:"a generator",asyncGenerator:"an async generator",fileUrl:"a file URL",filePath:"a file path string",fileNumber:"a file descriptor number",webStream:"a web stream",nodeStream:"a Node.js stream",webTransform:"a web TransformStream",duplex:"a Duplex stream",native:"any value",iterable:"an iterable",asyncIterable:"an async iterable",string:"a string",uint8Array:"a Uint8Array"}});var V9=(Z,Y,Q,J)=>J==="output"?_A(Z,Y,Q):NA(Z,Y,Q),_A=(Z,Y,Q)=>{let J=Y!==0&&Q[Y-1].value.readableObjectMode;return{writableObjectMode:J,readableObjectMode:Z??J}},NA=(Z,Y,Q)=>{let J=Y===0?Z===!0:Q[Y-1].value.readableObjectMode,q=Y!==Q.length-1&&(Z??J);return{writableObjectMode:J,readableObjectMode:q}},WK=(Z,Y)=>{let Q=Z.findLast(({type:J})=>u6.has(J));if(Q===void 0)return!1;return Y==="input"?Q.value.writableObjectMode:Q.value.readableObjectMode};var O9=N(()=>{N6()});var UK=(Z,Y,Q,J)=>[...Z.filter(({type:q})=>!u6.has(q)),...IA(Z,Y,Q,J)],IA=(Z,Y,Q,{encoding:J})=>{let q=Z.filter(({type:z})=>u6.has(z)),X=Array.from({length:q.length});for(let[z,W]of Object.entries(q))X[z]=LA({stdioItem:W,index:Number(z),newTransforms:X,optionName:Y,direction:Q,encoding:J});return CA(X,Q)},LA=({stdioItem:Z,stdioItem:{type:Y},index:Q,newTransforms:J,optionName:q,direction:X,encoding:z})=>{if(Y==="duplex")return wA({stdioItem:Z,optionName:q});if(Y==="webTransform")return AA({stdioItem:Z,index:Q,newTransforms:J,direction:X});return GA({stdioItem:Z,index:Q,newTransforms:J,direction:X,encoding:z})},wA=({stdioItem:Z,stdioItem:{value:{transform:Y,transform:{writableObjectMode:Q,readableObjectMode:J},objectMode:q=J}},optionName:X})=>{if(q&&!J)throw TypeError(`The \`${X}.objectMode\` option can only be \`true\` if \`new Duplex({objectMode: true})\` is used.`);if(!q&&J)throw TypeError(`The \`${X}.objectMode\` option cannot be \`false\` if \`new Duplex({objectMode: true})\` is used.`);return{...Z,value:{transform:Y,writableObjectMode:Q,readableObjectMode:J}}},AA=({stdioItem:Z,stdioItem:{value:Y},index:Q,newTransforms:J,direction:q})=>{let{transform:X,objectMode:z}=n0(Y)?Y:{transform:Y},{writableObjectMode:W,readableObjectMode:U}=V9(z,Q,J,q);return{...Z,value:{transform:X,writableObjectMode:W,readableObjectMode:U}}},GA=({stdioItem:Z,stdioItem:{value:Y},index:Q,newTransforms:J,direction:q,encoding:X})=>{let{transform:z,final:W,binary:U=!1,preserveNewlines:K=!1,objectMode:B}=n0(Y)?Y:{transform:Y},$=U||T6.has(X),{writableObjectMode:V,readableObjectMode:D}=V9(B,Q,J,q);return{...Z,value:{transform:z,final:W,binary:$,preserveNewlines:K,writableObjectMode:V,readableObjectMode:D}}},CA=(Z,Y)=>Y==="input"?Z.reverse():Z;var KK=N(()=>{K8();N6();O9()});import D9 from"node:process";var BK=(Z,Y,Q)=>{let J=Z.map((q)=>RA(q,Y));if(J.includes("input")&&J.includes("output"))throw TypeError(`The \`${Q}\` option must not be an array of both readable and writable values.`);return J.find(Boolean)??EA},RA=({type:Z,value:Y},Q)=>TA[Q]??$K[Z](Y),TA,XZ=()=>{return},M9=()=>"input",$K,kA=(Z)=>{if([0,D9.stdin].includes(Z))return"input";if([1,2,D9.stdout,D9.stderr].includes(Z))return"output"},EA="output";var FK=N(()=>{N6();TA=["input","output","output"],$K={generator:XZ,asyncGenerator:XZ,fileUrl:XZ,filePath:XZ,iterable:M9,asyncIterable:M9,uint8Array:M9,webStream:(Z)=>AY(Z)?"output":"input",nodeStream(Z){if(!B8(Z,{checkOpen:!1}))return"output";return J9(Z,{checkOpen:!1})?void 0:"input"},webTransform:XZ,duplex:XZ,native(Z){let Y=kA(Z);if(Y!==void 0)return Y;if(r6(Z,{checkOpen:!1}))return $K.nodeStream(Z)}}});var VK=(Z,Y)=>Y&&!Z.includes("ipc")?[...Z,"ipc"]:Z;var OK=({stdio:Z,ipc:Y,buffer:Q,...J},q,X)=>{let z=PA(Z,J).map((W,U)=>DK(W,U));return X?bA(z,Q,q):VK(z,Y)},PA=(Z,Y)=>{if(Z===void 0)return m6.map((J)=>Y[J]);if(xA(Y))throw Error(`It's not possible to provide \`stdio\` in combination with one of ${m6.map((J)=>`\`${J}\``).join(", ")}`);if(typeof Z==="string")return[Z,Z,Z];if(!Array.isArray(Z))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof Z}\``);let Q=Math.max(Z.length,m6.length);return Array.from({length:Q},(J,q)=>Z[q])},xA=(Z)=>m6.some((Y)=>Z[Y]!==void 0),DK=(Z,Y)=>{if(Array.isArray(Z))return Z.map((Q)=>DK(Q,Y));if(Z===null||Z===void 0)return Y>=m6.length?"ignore":"pipe";return Z},bA=(Z,Y,Q)=>Z.map((J,q)=>!Y[q]&&q!==0&&!o8(Q,q)&&vA(J)?"ignore":J),vA=(Z)=>Z==="pipe"||Array.isArray(Z)&&Z.every((Y)=>Y==="pipe");var MK=N(()=>{O4();f4()});import{readFileSync as SA}from"node:fs";import yA from"node:tty";var _K=({stdioItem:Z,stdioItem:{type:Y},isStdioArray:Q,fdNumber:J,direction:q,isSync:X})=>{if(!Q||Y!=="native")return Z;return X?fA({stdioItem:Z,fdNumber:J,direction:q}):mA({stdioItem:Z,fdNumber:J})},fA=({stdioItem:Z,stdioItem:{value:Y,optionName:Q},fdNumber:J,direction:q})=>{let X=hA({value:Y,optionName:Q,fdNumber:J,direction:q});if(X!==void 0)return X;if(r6(Y,{checkOpen:!1}))throw TypeError(`The \`${Q}: Stream\` option cannot both be an array and include a stream with synchronous methods.`);return Z},hA=({value:Z,optionName:Y,fdNumber:Q,direction:J})=>{let q=gA(Z,Q);if(q===void 0)return;if(J==="output")return{type:"fileNumber",value:q,optionName:Y};if(yA.isatty(q))throw TypeError(`The \`${Y}: ${o7(Z)}\` option is invalid: it cannot be a TTY with synchronous methods.`);return{type:"uint8Array",value:V4(SA(q)),optionName:Y}},gA=(Z,Y)=>{if(Z==="inherit")return Y;if(typeof Z==="number")return Z;let Q=C7.indexOf(Z);if(Q!==-1)return Q},mA=({stdioItem:Z,stdioItem:{value:Y,optionName:Q},fdNumber:J})=>{if(Y==="inherit")return{type:"nodeStream",value:jK(J,Y,Q),optionName:Q};if(typeof Y==="number")return{type:"nodeStream",value:jK(Y,Y,Q),optionName:Q};if(r6(Y,{checkOpen:!1}))return{type:"nodeStream",value:Y,optionName:Q};return Z},jK=(Z,Y,Q)=>{let J=C7[Z];if(J===void 0)throw TypeError(`The \`${Q}: ${Y}\` option is invalid: no such standard stream.`);return J};var NK=N(()=>{O4();R6();m4()});var IK=({input:Z,inputFile:Y},Q)=>Q===0?[...pA(Z),...dA(Y)]:[],pA=(Z)=>Z===void 0?[]:[{type:uA(Z),value:Z,optionName:"input"}],uA=(Z)=>{if(B8(Z,{checkOpen:!1}))return"nodeStream";if(typeof Z==="string")return"string";if(t0(Z))return"uint8Array";throw Error("The `input` option must be a string, a Uint8Array or a Node.js Readable stream.")},dA=(Z)=>Z===void 0?[]:[{...cA(Z),optionName:"inputFile"}],cA=(Z)=>{if(wY(Z))return{type:"fileUrl",value:Z};if(B9(Z))return{type:"filePath",value:{file:Z}};throw Error("The `inputFile` option must be a file path string or a file URL.")};var LK=N(()=>{R6();N6()});var wK=(Z)=>Z.filter((Y,Q)=>Z.every((J,q)=>Y.value!==J.value||Q>=q||Y.type==="generator"||Y.type==="asyncGenerator")),AK=({stdioItem:{type:Z,value:Y,optionName:Q},direction:J,fileDescriptors:q,isSync:X})=>{let z=lA(q,Z);if(z.length===0)return;if(X){nA({otherStdioItems:z,type:Z,value:Y,optionName:Q,direction:J});return}if(zK.has(Z))return GK({otherStdioItems:z,type:Z,value:Y,optionName:Q,direction:J});if(HK.has(Z))iA({otherStdioItems:z,type:Z,value:Y,optionName:Q})},lA=(Z,Y)=>Z.flatMap(({direction:Q,stdioItems:J})=>J.filter((q)=>q.type===Y).map((q)=>({...q,direction:Q}))),nA=({otherStdioItems:Z,type:Y,value:Q,optionName:J,direction:q})=>{if(F9.has(Y))GK({otherStdioItems:Z,type:Y,value:Q,optionName:J,direction:q})},GK=({otherStdioItems:Z,type:Y,value:Q,optionName:J,direction:q})=>{let X=Z.filter((W)=>oA(W,Q));if(X.length===0)return;let z=X.find((W)=>W.direction!==q);return CK(z,J,Y),q==="output"?X[0].stream:void 0},oA=({type:Z,value:Y},Q)=>{if(Z==="filePath")return Y.file===Q.file;if(Z==="fileUrl")return Y.href===Q.href;return Y===Q},iA=({otherStdioItems:Z,type:Y,value:Q,optionName:J})=>{let q=Z.find(({value:{transform:X}})=>X===Q.transform);CK(q,J,Y)},CK=(Z,Y,Q)=>{if(Z!==void 0)throw TypeError(`The \`${Z.optionName}\` and \`${Y}\` options must not target ${u4[Q]} that is the same.`)};var RK=N(()=>{N6()});var CY=(Z,Y,Q,J)=>{let X=OK(Y,Q,J).map((W,U)=>sA({stdioOption:W,fdNumber:U,options:Y,isSync:J})),z=JG({initialFileDescriptors:X,addProperties:Z,options:Y,isSync:J});return Y.stdio=z.map(({stdioItems:W})=>zG(W)),z},sA=({stdioOption:Z,fdNumber:Y,options:Q,isSync:J})=>{let q=R7(Y),{stdioItems:X,isStdioArray:z}=aA({stdioOption:Z,fdNumber:Y,options:Q,optionName:q}),W=BK(X,Y,q),U=X.map(($)=>_K({stdioItem:$,isStdioArray:z,fdNumber:Y,direction:W,isSync:J})),K=UK(U,q,W,Q),B=WK(K,W);return QG(K,B),{direction:W,objectMode:B,stdioItems:K}},aA=({stdioOption:Z,fdNumber:Y,options:Q,optionName:J})=>{let X=[...(Array.isArray(Z)?Z:[Z]).map((U)=>rA(U,J)),...IK(Q,Y)],z=wK(X),W=z.length>1;return tA(z,W,J),ZG(z),{stdioItems:z,isStdioArray:W}},rA=(Z,Y)=>({type:tU(Z,Y),value:Z,optionName:Y}),tA=(Z,Y,Q)=>{if(Z.length===0)throw TypeError(`The \`${Q}\` option must not be an empty array.`);if(!Y)return;for(let{value:J,optionName:q}of Z)if(eA.has(J))throw Error(`The \`${q}\` option must not include \`${J}\`.`)},eA,ZG=(Z)=>{for(let Y of Z)YG(Y)},YG=({type:Z,value:Y,optionName:Q})=>{if(QK(Y))throw TypeError(`The \`${Q}: URL\` option must use the \`file:\` scheme.
|
|
78
|
+
For example, you can use the \`pathToFileURL()\` method of the \`url\` core module.`);if(JK(Z,Y))throw TypeError(`The \`${Q}: { file: '...' }\` option must be used instead of \`${Q}: '...'\`.`)},QG=(Z,Y)=>{if(!Y)return;let Q=Z.find(({type:J})=>GY.has(J));if(Q!==void 0)throw TypeError(`The \`${Q.optionName}\` option cannot use both files and transforms in objectMode.`)},JG=({initialFileDescriptors:Z,addProperties:Y,options:Q,isSync:J})=>{let q=[];try{for(let X of Z)q.push(qG({fileDescriptor:X,fileDescriptors:q,addProperties:Y,options:Q,isSync:J}));return q}catch(X){throw j9(q),X}},qG=({fileDescriptor:{direction:Z,objectMode:Y,stdioItems:Q},fileDescriptors:J,addProperties:q,options:X,isSync:z})=>{let W=Q.map((U)=>XG({stdioItem:U,addProperties:q,direction:Z,options:X,fileDescriptors:J,isSync:z}));return{direction:Z,objectMode:Y,stdioItems:W}},XG=({stdioItem:Z,addProperties:Y,direction:Q,options:J,fileDescriptors:q,isSync:X})=>{let z=AK({stdioItem:Z,direction:Q,fileDescriptors:q,isSync:X});if(z!==void 0)return{...Z,stream:z};return{...Z,...Y[Q][Z.type](Z,J)}},j9=(Z)=>{for(let{stdioItems:Y}of Z)for(let{stream:Q}of Y)if(Q!==void 0&&!s6(Q))Q.destroy()},zG=(Z)=>{if(Z.length>1)return Z.some(({value:J})=>J==="overlapped")?"overlapped":"pipe";let[{type:Y,value:Q}]=Z;return Y==="native"?Q:"pipe"};var RY=N(()=>{O4();KK();O9();N6();FK();MK();NK();LK();RK();eA=new Set(["ignore","ipc"])});import{readFileSync as TK}from"node:fs";var EK=(Z,Y)=>CY(WG,Z,Y,!0),X4=({type:Z,optionName:Y})=>{PK(Y,u4[Z])},HG=({optionName:Z,value:Y})=>{if(Y==="ipc"||Y==="overlapped")PK(Z,`"${Y}"`);return{}},PK=(Z,Y)=>{throw TypeError(`The \`${Z}\` option cannot be ${Y} with synchronous methods.`)},kK,WG;var xK=N(()=>{R6();RY();N6();kK={generator(){},asyncGenerator:X4,webStream:X4,nodeStream:X4,webTransform:X4,duplex:X4,asyncIterable:X4,native:HG},WG={input:{...kK,fileUrl:({value:Z})=>({contents:[V4(TK(Z))]}),filePath:({value:{file:Z}})=>({contents:[V4(TK(Z))]}),fileNumber:X4,iterable:({value:Z})=>({contents:[...Z]}),string:({value:Z})=>({contents:[Z]}),uint8Array:({value:Z})=>({contents:[Z]})},output:{...kK,fileUrl:({value:Z})=>({path:Z}),filePath:({value:{file:Z,append:Y}})=>({path:Z,append:Y}),fileNumber:({value:Z})=>({path:Z}),iterable:X4,string:X4,uint8Array:X4}}});var N4=(Z,{stripFinalNewline:Y},Q)=>_9(Y,Q)&&Z!==void 0&&!Array.isArray(Z)?YZ(Z):Z,_9=(Z,Y)=>Y==="all"?Z[1]||Z[2]:Z[Y];var K1=N(()=>{Q9()});var TY=(Z,Y,Q,J)=>Z||Q?void 0:vK(Y,J),I9=(Z,Y,Q)=>Q?Z.flatMap((J)=>bK(J,Y)):bK(Z,Y),bK=(Z,Y)=>{let{transform:Q,final:J}=vK(Y,{});return[...Q(Z),...J()]},vK=(Z,Y)=>{return Y.previousChunks="",{transform:UG.bind(void 0,Y,Z),final:BG.bind(void 0,Y)}},UG=function*(Z,Y,Q){if(typeof Q!=="string"){yield Q;return}let{previousChunks:J}=Z,q=-1;for(let X=0;X<Q.length;X+=1)if(Q[X]===`
|
|
79
|
+
`){let z=KG(Q,X,Y,Z),W=Q.slice(q+1,X+1-z);if(J.length>0)W=N9(J,W),J="";yield W,q=X}if(q!==Q.length-1)J=N9(J,Q.slice(q+1));Z.previousChunks=J},KG=(Z,Y,Q,J)=>{if(Q)return 0;return J.isWindowsNewline=Y!==0&&Z[Y-1]==="\r",J.isWindowsNewline?2:1},BG=function*({previousChunks:Z}){if(Z.length>0)yield Z},SK=({binary:Z,preserveNewlines:Y,readableObjectMode:Q,state:J})=>Z||Y||Q?void 0:{transform:$G.bind(void 0,J)},$G=function*({isWindowsNewline:Z=!1},Y){let{unixNewline:Q,windowsNewline:J,LF:q,concatBytes:X}=typeof Y==="string"?FG:OG;if(Y.at(-1)===q){yield Y;return}yield X(Y,Z?J:Q)},N9=(Z,Y)=>`${Z}${Y}`,FG,VG=(Z,Y)=>{let Q=new Uint8Array(Z.length+Y.length);return Q.set(Z,0),Q.set(Y,Z.length),Q},OG;var kY=N(()=>{FG={windowsNewline:`\r
|
|
80
80
|
`,unixNewline:`
|
|
81
81
|
`,LF:`
|
|
82
|
-
`,concatBytes:
|
|
82
|
+
`,concatBytes:N9},OG={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:VG}});import{Buffer as DG}from"node:buffer";var yK=(Z,Y)=>Z?void 0:MG.bind(void 0,Y),MG=function*(Z,Y){if(typeof Y!=="string"&&!t0(Y)&&!DG.isBuffer(Y))throw TypeError(`The \`${Z}\` option's transform must use "objectMode: true" to receive as input: ${typeof Y}.`);yield Y},fK=(Z,Y)=>Z?jG.bind(void 0,Y):_G.bind(void 0,Y),jG=function*(Z,Y){hK(Z,Y),yield Y},_G=function*(Z,Y){if(hK(Z,Y),typeof Y!=="string"&&!t0(Y))throw TypeError(`The \`${Z}\` option's function must yield a string or an Uint8Array, not ${typeof Y}.`);yield Y},hK=(Z,Y)=>{if(Y===null||Y===void 0)throw TypeError(`The \`${Z}\` option's function must not call \`yield ${Y}\`.
|
|
83
83
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
84
|
-
if (condition) { yield value; }`)};var TK=j(()=>{C6()});import{Buffer as QG}from"node:buffer";import{StringDecoder as JG}from"node:string_decoder";var RY=(Z,Y,Q)=>{if(Q)return;if(Z)return{transform:qG.bind(void 0,new TextEncoder)};let J=new JG(Y);return{transform:XG.bind(void 0,J),final:zG.bind(void 0,J)}},qG=function*(Z,Y){if(QG.isBuffer(Y))yield F8(Y);else if(typeof Y==="string")yield Z.encode(Y);else yield Y},XG=function*(Z,Y){yield a0(Y)?Z.write(Y):Y},zG=function*(Z){let Y=Z.end();if(Y!=="")yield Y};var O9=j(()=>{C6()});import{callbackify as kK}from"node:util";var D9,TY=async function*(Z,Y,Q){if(Q===Y.length){yield Z;return}let{transform:J=WG}=Y[Q];for await(let q of J(Z))yield*TY(q,Y,Q+1)},EK=async function*(Z){for(let[Y,{final:Q}]of Object.entries(Z))yield*HG(Q,Number(Y),Z)},HG=async function*(Z,Y,Q){if(Z===void 0)return;for await(let J of Z())yield*TY(J,Q,Y+1)},xK,WG=function*(Z){yield Z};var PK=j(()=>{D9=kK(async(Z,Y,Q,J)=>{Y.currentIterable=Z(...Q);try{for await(let q of Y.currentIterable)J.push(q)}finally{delete Y.currentIterable}}),xK=kK(async({currentIterable:Z},Y)=>{if(Z!==void 0){await(Y?Z.throw(Y):Z.return());return}if(Y)throw Y})});var M9=(Z,Y,Q,J)=>{try{for(let q of Z(...Y))Q.push(q);J()}catch(q){J(q)}},bK=(Z,Y)=>[...Y.flatMap((Q)=>[...B4(Q,Z,0)]),...U1(Z)],B4=function*(Z,Y,Q){if(Q===Y.length){yield Z;return}let{transform:J=KG}=Y[Q];for(let q of J(Z))yield*B4(q,Y,Q+1)},U1=function*(Z){for(let[Y,{final:Q}]of Object.entries(Z))yield*UG(Q,Number(Y),Z)},UG=function*(Z,Y,Q){if(Z===void 0)return;for(let J of Z())yield*B4(J,Q,Y+1)},KG=function*(Z){yield Z};import{Transform as BG,getDefaultHighWaterMark as vK}from"node:stream";var j9=({value:Z,value:{transform:Y,final:Q,writableObjectMode:J,readableObjectMode:q},optionName:X},{encoding:z})=>{let W={},U=SK(Z,z,X),K=K4(Y),B=K4(Q),$=K?D9.bind(void 0,TY,W):M9.bind(void 0,B4),F=K||B?D9.bind(void 0,EK,W):M9.bind(void 0,U1),O=K||B?xK.bind(void 0,W):void 0;return{stream:new BG({writableObjectMode:J,writableHighWaterMark:vK(J),readableObjectMode:q,readableHighWaterMark:vK(q),transform(D,_,N){$([D,U,0],this,N)},flush(D){F([U],this,D)},destroy:O})}},kY=(Z,Y,Q,J)=>{let q=Y.filter(({type:z})=>z==="generator"),X=J?q.reverse():q;for(let{value:z,optionName:W}of X){let U=SK(z,Q,W);Z=bK(U,Z)}return Z},SK=({transform:Z,final:Y,binary:Q,writableObjectMode:J,readableObjectMode:q,preserveNewlines:X},z,W)=>{let U={};return[{transform:GK(J,W)},RY(Q,z,J),GY(Q,X,J,U),{transform:Z,final:Y},{transform:CK(q,W)},AK({binary:Q,preserveNewlines:X,readableObjectMode:q,state:U})].filter(Boolean)};var EY=j(()=>{_6();CY();TK();O9();PK()});var yK=(Z,Y)=>{for(let Q of $G(Z))FG(Z,Q,Y)},$G=(Z)=>new Set(Object.entries(Z).filter(([,{direction:Y}])=>Y==="input").map(([Y])=>Number(Y))),FG=(Z,Y,Q)=>{let{stdioItems:J}=Z[Y],q=J.filter(({contents:W})=>W!==void 0);if(q.length===0)return;if(Y!==0){let[{type:W,optionName:U}]=q;throw TypeError(`Only the \`stdin\` option, not \`${U}\`, can be ${m8[W]} with synchronous methods.`)}let z=q.map(({contents:W})=>W).map((W)=>VG(W,J));Q.input=sZ(z)},VG=(Z,Y)=>{let Q=kY(Z,Y,"utf8",!0);return OG(Q),sZ(Q)},OG=(Z)=>{let Y=Z.find((Q)=>typeof Q!=="string"&&!a0(Q));if(Y!==void 0)throw TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${Y}.`)};var fK=j(()=>{EY();C6();_6()});var xY=({stdioItems:Z,encoding:Y,verboseInfo:Q,fdNumber:J})=>J!=="all"&&c4(Q,J)&&!R6.has(Y)&&DG(J)&&(Z.some(({type:q,value:X})=>q==="native"&&MG.has(X))||Z.every(({type:q})=>p6.has(q))),DG=(Z)=>Z===1||Z===2,MG,hK=async(Z,Y,Q,J)=>{for await(let q of Z)if(!jG(Y))mK(q,Q,J)},gK=(Z,Y,Q)=>{for(let J of Z)mK(J,Y,Q)},jG=(Z)=>Z._readableState.pipes.length>0,mK=(Z,Y,Q)=>{let J=x7(Z);e6({type:"output",verboseMessage:J,fdNumber:Y,verboseInfo:Q})};var _9=j(()=>{H4();_6();l4();S8();MG=new Set(["pipe","overlapped"])});import{writeFileSync as _G,appendFileSync as NG}from"node:fs";var pK=({fileDescriptors:Z,syncResult:{output:Y},options:Q,isMaxBuffer:J,verboseInfo:q})=>{if(Y===null)return{output:Array.from({length:3})};let X={},z=new Set([]);return{output:Y.map((U,K)=>IG({result:U,fileDescriptors:Z,fdNumber:K,state:X,outputFiles:z,isMaxBuffer:J,verboseInfo:q},Q)),...X}},IG=({result:Z,fileDescriptors:Y,fdNumber:Q,state:J,outputFiles:q,isMaxBuffer:X,verboseInfo:z},{buffer:W,encoding:U,lines:K,stripFinalNewline:B,maxBuffer:$})=>{if(Z===null)return;let F=TU(Z,X,$),O=F8(F),{stdioItems:V,objectMode:D}=Y[Q],_=LG([O],V,U,J),{serializedResult:N,finalResult:w=N}=wG({chunks:_,objectMode:D,encoding:U,lines:K,stripFinalNewline:B,fdNumber:Q});AG({serializedResult:N,fdNumber:Q,state:J,verboseInfo:z,encoding:U,stdioItems:V,objectMode:D});let G=W[Q]?w:void 0;try{if(J.error===void 0)GG(N,V,q);return G}catch(I){return J.error=I,G}},LG=(Z,Y,Q,J)=>{try{return kY(Z,Y,Q,!1)}catch(q){return J.error=q,Z}},wG=({chunks:Z,objectMode:Y,encoding:Q,lines:J,stripFinalNewline:q,fdNumber:X})=>{if(Y)return{serializedResult:Z};if(Q==="buffer")return{serializedResult:sZ(Z)};let z=Nz(Z,Q);if(J[X])return{serializedResult:z,finalResult:V9(z,!q[X],Y)};return{serializedResult:z}},AG=({serializedResult:Z,fdNumber:Y,state:Q,verboseInfo:J,encoding:q,stdioItems:X,objectMode:z})=>{if(!xY({stdioItems:X,encoding:q,verboseInfo:J,fdNumber:Y}))return;let W=V9(Z,!1,z);try{gK(W,Y,J)}catch(U){Q.error??=U}},GG=(Z,Y,Q)=>{for(let{path:J,append:q}of Y.filter(({type:X})=>LY.has(X))){let X=typeof J==="string"?J:J.toString();if(q||Q.has(X))NG(J,Z);else Q.add(X),_G(J,Z)}};var uK=j(()=>{_9();EY();CY();C6();_6();U4()});var dK=([,Z,Y],Q)=>{if(!Q.all)return;if(Z===void 0)return Y;if(Y===void 0)return Z;if(Array.isArray(Z))return Array.isArray(Y)?[...Z,...Y]:[...Z,_8(Y,Q,"all")];if(Array.isArray(Y))return[_8(Z,Q,"all"),...Y];if(a0(Z)&&a0(Y))return B2([Z,Y]);return`${Z}${Y}`};var cK=j(()=>{C6();W1()});import{once as N9}from"node:events";var lK=async(Z,Y)=>{let[Q,J]=await CG(Z);return Y.isForcefullyTerminated??=!1,[Q,J]},CG=async(Z)=>{let[Y,Q]=await Promise.allSettled([N9(Z,"spawn"),N9(Z,"exit")]);if(Y.status==="rejected")return[];return Q.status==="rejected"?nK(Z):Q.value},nK=async(Z)=>{try{return await N9(Z,"exit")}catch{return nK(Z)}},oK=async(Z)=>{let[Y,Q]=await Z;if(!RG(Y,Q)&&I9(Y,Q))throw new Z8;return[Y,Q]},RG=(Z,Y)=>Z===void 0&&Y===void 0,I9=(Z,Y)=>Z!==0||Y!==null;var L9=j(()=>{y8()});var iK=({error:Z,status:Y,signal:Q,output:J},{maxBuffer:q})=>{let X=TG(Z,Y,Q),z=X?.code==="ETIMEDOUT",W=RU(X,J,q);return{resultError:X,exitCode:Y,signal:Q,timedOut:z,isMaxBuffer:W}},TG=(Z,Y,Q)=>{if(Z!==void 0)return Z;return I9(Y,Q)?new Z8:void 0};var sK=j(()=>{y8();U4();L9()});import{spawnSync as kG}from"node:child_process";var aK=(Z,Y,Q)=>{let{file:J,commandArguments:q,command:X,escapedCommand:z,startTime:W,verboseInfo:U,options:K,fileDescriptors:B}=EG(Z,Y,Q),$=bG({file:J,commandArguments:q,options:K,command:X,escapedCommand:z,verboseInfo:U,fileDescriptors:B,startTime:W});return YZ($,U,K)},EG=(Z,Y,Q)=>{let{command:J,escapedCommand:q,startTime:X,verboseInfo:z}=v7(Z,Y,Q),W=xG(Q),{file:U,commandArguments:K,options:B}=HY(Z,Y,W);PG(B);let $=_K(B,z);return{file:U,commandArguments:K,command:J,escapedCommand:q,startTime:X,verboseInfo:z,options:B,fileDescriptors:$}},xG=(Z)=>Z.node&&!Z.ipc?{...Z,ipc:!1}:Z,PG=({ipc:Z,ipcInput:Y,detached:Q,cancelSignal:J})=>{if(Y)PY("ipcInput");if(Z)PY("ipc: true");if(Q)PY("detached: true");if(J)PY("cancelSignal")},PY=(Z)=>{throw TypeError(`The "${Z}" option cannot be used with synchronous methods.`)},bG=({file:Z,commandArguments:Y,options:Q,command:J,escapedCommand:q,verboseInfo:X,fileDescriptors:z,startTime:W})=>{let U=vG({file:Z,commandArguments:Y,options:Q,command:J,escapedCommand:q,fileDescriptors:z,startTime:W});if(U.failed)return U;let{resultError:K,exitCode:B,signal:$,timedOut:F,isMaxBuffer:O}=iK(U,Q),{output:V,error:D=K}=pK({fileDescriptors:z,syncResult:U,options:Q,isMaxBuffer:O,verboseInfo:X}),_=V.map((w,G)=>_8(w,Q,G)),N=_8(dK(V,Q),Q,"all");return yG({error:D,exitCode:B,signal:$,timedOut:F,isMaxBuffer:O,stdio:_,all:N,options:Q,command:J,escapedCommand:q,startTime:W})},vG=({file:Z,commandArguments:Y,options:Q,command:J,escapedCommand:q,fileDescriptors:X,startTime:z})=>{try{yK(X,Q);let W=SG(Q);return kG(...WY(Z,Y,W))}catch(W){return ZZ({error:W,command:J,escapedCommand:q,fileDescriptors:X,options:Q,startTime:z,isSync:!0})}},SG=({encoding:Z,maxBuffer:Y,...Q})=>({...Q,encoding:"buffer",maxBuffer:MY(Y)}),yG=({error:Z,exitCode:Y,signal:Q,timedOut:J,isMaxBuffer:q,stdio:X,all:z,options:W,command:U,escapedCommand:K,startTime:B})=>Z===void 0?jY({command:U,escapedCommand:K,stdio:X,all:z,ipcOutput:[],options:W,startTime:B}):z1({error:Z,command:U,escapedCommand:K,timedOut:J,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:q,isForcefullyTerminated:!1,exitCode:Y,signal:Q,stdio:X,all:z,ipcOutput:[],options:W,startTime:B,isSync:!0});var rK=j(()=>{_2();i2();H1();_Y();IK();W1();fK();uK();U4();cK();sK()});import{once as w9,on as fG}from"node:events";var tK=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J},{reference:q=!0,filter:X}={})=>{return i4({methodName:"getOneMessage",isSubprocess:Q,ipc:J,isConnected:ZY(Z)}),hG({anyProcess:Z,channel:Y,isSubprocess:Q,filter:X,reference:q})},hG=async({anyProcess:Z,channel:Y,isSubprocess:Q,filter:J,reference:q})=>{o7(Y,q);let X=g8(Z,Y,Q),z=new AbortController;try{return await Promise.race([gG(X,J,z),mG(X,Q,z),pG(X,Q,z)])}catch(W){throw s4(Z),W}finally{z.abort(),i7(Y,q)}},gG=async(Z,Y,{signal:Q})=>{if(Y===void 0){let[J]=await w9(Z,"message",{signal:Q});return J}for await(let[J]of fG(Z,"message",{signal:Q}))if(Y(J))return J},mG=async(Z,Y,{signal:Q})=>{await w9(Z,"disconnect",{signal:Q}),BW(Y)},pG=async(Z,Y,{signal:Q})=>{let[J]=await w9(Z,"strict:error",{signal:Q});throw d7(J,Y)};var eK=j(()=>{a4();Y1()});import{once as YB,on as uG}from"node:events";var QB=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J},{reference:q=!0}={})=>A9({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J,shouldAwait:!Q,reference:q}),A9=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J,shouldAwait:q,reference:X})=>{i4({methodName:"getEachMessage",isSubprocess:Q,ipc:J,isConnected:ZY(Z)}),o7(Y,X);let z=g8(Z,Y,Q),W=new AbortController,U={};return dG(Z,z,W),cG({ipcEmitter:z,isSubprocess:Q,controller:W,state:U}),lG({anyProcess:Z,channel:Y,ipcEmitter:z,isSubprocess:Q,shouldAwait:q,controller:W,state:U,reference:X})},dG=async(Z,Y,Q)=>{try{await YB(Y,"disconnect",{signal:Q.signal}),Q.abort()}catch{}},cG=async({ipcEmitter:Z,isSubprocess:Y,controller:Q,state:J})=>{try{let[q]=await YB(Z,"strict:error",{signal:Q.signal});J.error=d7(q,Y),Q.abort()}catch{}},lG=async function*({anyProcess:Z,channel:Y,ipcEmitter:Q,isSubprocess:J,shouldAwait:q,controller:X,state:z,reference:W}){try{for await(let[U]of uG(Q,"message",{signal:X.signal}))ZB(z),yield U}catch{ZB(z)}finally{if(X.abort(),i7(Y,W),!J)s4(Z);if(q)await Z}},ZB=({error:Z})=>{if(Z)throw Z};var G9=j(()=>{a4();Y1()});import JB from"node:process";var qB=(Z,{ipc:Y})=>{Object.assign(Z,zB(Z,!1,Y))},XB=()=>{let Z=JB,Y=!0,Q=JB.channel!==void 0;return{...zB(Z,!0,Q),getCancelSignal:gW.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:!0,ipc:Q})}},zB=(Z,Y,Q)=>({sendMessage:qY.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:Y,ipc:Q}),getOneMessage:tK.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:Y,ipc:Q}),getEachMessage:QB.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:Y,ipc:Q})});var C9=j(()=>{XY();eK();G9();t7()});import{ChildProcess as nG}from"node:child_process";import{PassThrough as oG,Readable as iG,Writable as sG,Duplex as aG}from"node:stream";var HB=({error:Z,command:Y,escapedCommand:Q,fileDescriptors:J,options:q,startTime:X,verboseInfo:z})=>{B9(J);let W=new nG;rG(W,J),Object.assign(W,{readable:tG,writable:eG,duplex:ZC});let U=ZZ({error:Z,command:Y,escapedCommand:Q,fileDescriptors:J,options:q,startTime:X,isSync:!1}),K=YC(U,z,q);return{subprocess:W,promise:K}},rG=(Z,Y)=>{let Q=K1(),J=K1(),q=K1(),X=Array.from({length:Y.length-3},K1),z=K1(),W=[Q,J,q,...X];Object.assign(Z,{stdin:Q,stdout:J,stderr:q,all:z,stdio:W})},K1=()=>{let Z=new oG;return Z.end(),Z},tG=()=>new iG({read(){}}),eG=()=>new sG({write(){}}),ZC=()=>new aG({read(){},write(){}}),YC=async(Z,Y,Q)=>YZ(Z,Y,Q);var WB=j(()=>{AY();H1();_Y()});import{createReadStream as UB,createWriteStream as KB}from"node:fs";import{Buffer as QC}from"node:buffer";import{Readable as B1,Writable as JC,Duplex as qC}from"node:stream";var $B=(Z,Y)=>wY(XC,Z,Y,!1),$1=({type:Z,optionName:Y})=>{throw TypeError(`The \`${Y}\` option cannot be ${m8[Z]}.`)},BB,XC;var FB=j(()=>{EY();AY();_6();BB={fileNumber:$1,generator:j9,asyncGenerator:j9,nodeStream:({value:Z})=>({stream:Z}),webTransform({value:{transform:Z,writableObjectMode:Y,readableObjectMode:Q}}){let J=Y||Q;return{stream:qC.fromWeb(Z,{objectMode:J})}},duplex:({value:{transform:Z}})=>({stream:Z}),native(){}},XC={input:{...BB,fileUrl:({value:Z})=>({stream:UB(Z)}),filePath:({value:{file:Z}})=>({stream:UB(Z)}),webStream:({value:Z})=>({stream:B1.fromWeb(Z)}),iterable:({value:Z})=>({stream:B1.from(Z)}),asyncIterable:({value:Z})=>({stream:B1.from(Z)}),string:({value:Z})=>({stream:B1.from(Z)}),uint8Array:({value:Z})=>({stream:B1.from(QC.from(Z))})},output:{...BB,fileUrl:({value:Z})=>({stream:KB(Z)}),filePath:({value:{file:Z,append:Y}})=>({stream:KB(Z,Y?{flags:"a"}:{})}),webStream:({value:Z})=>({stream:JC.fromWeb(Z)}),iterable:$1,asyncIterable:$1,string:$1,uint8Array:$1}}});import{on as zC,once as VB}from"node:events";import{PassThrough as HC,getDefaultHighWaterMark as WC}from"node:stream";import{finished as MB}from"node:stream/promises";function $4(Z){if(!Array.isArray(Z))throw TypeError(`Expected an array, got \`${typeof Z}\`.`);for(let q of Z)R9(q);let Y=Z.some(({readableObjectMode:q})=>q),Q=UC(Z,Y),J=new jB({objectMode:Y,writableHighWaterMark:Q,readableHighWaterMark:Q});for(let q of Z)J.add(q);return J}var UC=(Z,Y)=>{if(Z.length===0)return WC(Y);let Q=Z.filter(({readableObjectMode:J})=>J===Y).map(({readableHighWaterMark:J})=>J);return Math.max(...Q)},jB,KC=async(Z,Y,Q)=>{bY(Z,OB);let J=new AbortController;try{await Promise.race([BC(Z,J),$C(Z,Y,Q,J)])}finally{J.abort(),bY(Z,-OB)}},BC=async(Z,{signal:Y})=>{try{await MB(Z,{signal:Y,cleanup:!0})}catch(Q){throw _B(Z,Q),Q}},$C=async(Z,Y,Q,{signal:J})=>{for await(let[q]of zC(Z,"unpipe",{signal:J}))if(Y.has(q))q.emit(Q)},R9=(Z)=>{if(typeof Z?.pipe!=="function")throw TypeError(`Expected a readable stream, got: \`${typeof Z}\`.`)},FC=async({passThroughStream:Z,stream:Y,streams:Q,ended:J,aborted:q,onFinished:X,unpipeEvent:z})=>{bY(Z,DB);let W=new AbortController;try{await Promise.race([VC(X,Y,W),OC({passThroughStream:Z,stream:Y,streams:Q,ended:J,aborted:q,controller:W}),DC({stream:Y,streams:Q,ended:J,aborted:q,unpipeEvent:z,controller:W})])}finally{W.abort(),bY(Z,-DB)}if(Q.size>0&&Q.size===J.size+q.size)if(J.size===0&&q.size>0)T9(Z);else MC(Z)},VC=async(Z,Y,{signal:Q})=>{try{if(await Z,!Q.aborted)T9(Y)}catch(J){if(!Q.aborted)_B(Y,J)}},OC=async({passThroughStream:Z,stream:Y,streams:Q,ended:J,aborted:q,controller:{signal:X}})=>{try{if(await MB(Y,{signal:X,cleanup:!0,readable:!0,writable:!1}),Q.has(Y))J.add(Y)}catch(z){if(X.aborted||!Q.has(Y))return;if(NB(z))q.add(Y);else IB(Z,z)}},DC=async({stream:Z,streams:Y,ended:Q,aborted:J,unpipeEvent:q,controller:{signal:X}})=>{if(await VB(Z,q,{signal:X}),!Z.readable)return VB(X,"abort",{signal:X});Y.delete(Z),Q.delete(Z),J.delete(Z)},MC=(Z)=>{if(Z.writable)Z.end()},_B=(Z,Y)=>{if(NB(Y))T9(Z);else IB(Z,Y)},NB=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",T9=(Z)=>{if(Z.readable||Z.writable)Z.destroy()},IB=(Z,Y)=>{if(!Z.destroyed)Z.once("error",jC),Z.destroy(Y)},jC=()=>{},bY=(Z,Y)=>{let Q=Z.getMaxListeners();if(Q!==0&&Q!==Number.POSITIVE_INFINITY)Z.setMaxListeners(Q+Y)},OB=2,DB=1;var vY=j(()=>{jB=class jB extends HC{#Y=new Set([]);#Q=new Set([]);#Z=new Set([]);#J;#q=Symbol("unpipe");#X=new WeakMap;add(Z){if(R9(Z),this.#Y.has(Z))return;this.#Y.add(Z),this.#J??=KC(this,this.#Y,this.#q);let Y=FC({passThroughStream:this,stream:Z,streams:this.#Y,ended:this.#Q,aborted:this.#Z,onFinished:this.#J,unpipeEvent:this.#q});this.#X.set(Z,Y),Z.pipe(this,{end:!1})}async remove(Z){if(R9(Z),!this.#Y.has(Z))return!1;let Y=this.#X.get(Z);if(Y===void 0)return!1;return this.#X.delete(Z),Z.unpipe(this),await Y,!0}}});import{finished as LB}from"node:stream/promises";var JZ=(Z,Y)=>{Z.pipe(Y),_C(Z,Y),NC(Z,Y)},_C=async(Z,Y)=>{if(o6(Z)||o6(Y))return;try{await LB(Z,{cleanup:!0,readable:!0,writable:!1})}catch{}k9(Y)},k9=(Z)=>{if(Z.writable)Z.end()},NC=async(Z,Y)=>{if(o6(Z)||o6(Y))return;try{await LB(Y,{cleanup:!0,readable:!1,writable:!0})}catch{}E9(Z)},E9=(Z)=>{if(Z.readable)Z.destroy()};var SY=j(()=>{V8()});var wB=(Z,Y,Q)=>{let J=new Map;for(let[q,{stdioItems:X,direction:z}]of Object.entries(Y)){for(let{stream:W}of X.filter(({type:U})=>p6.has(U)))IC(Z,W,z,q);for(let{stream:W}of X.filter(({type:U})=>!p6.has(U)))wC({subprocess:Z,stream:W,direction:z,fdNumber:q,pipeGroups:J,controller:Q})}for(let[q,X]of J.entries()){let z=X.length===1?X[0]:$4(X);JZ(z,q)}},IC=(Z,Y,Q,J)=>{if(Q==="output")JZ(Z.stdio[J],Y);else JZ(Y,Z.stdio[J]);let q=LC[J];if(q!==void 0)Z[q]=Y;Z.stdio[J]=Y},LC,wC=({subprocess:Z,stream:Y,direction:Q,fdNumber:J,pipeGroups:q,controller:X})=>{if(Y===void 0)return;AC(Y,X);let[z,W]=Q==="output"?[Y,Z.stdio[J]]:[Z.stdio[J],Y],U=q.get(z)??[];q.set(z,[...U,W])},AC=(Z,{signal:Y})=>{if(o6(Z))z4(Z,GC,Y)},GC=2;var AB=j(()=>{vY();V8();n7();_6();SY();LC=["stdin","stdout","stderr"]});var F4;var GB=j(()=>{F4=[];F4.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")F4.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")F4.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});class CB{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(P9[x9])return P9[x9];CC(P9,x9,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(Z,Y){this.listeners[Z].push(Y)}removeListener(Z,Y){let Q=this.listeners[Z],J=Q.indexOf(Y);if(J===-1)return;if(J===0&&Q.length===1)Q.length=0;else Q.splice(J,1)}emit(Z,Y,Q){if(this.emitted[Z])return!1;this.emitted[Z]=!0;let J=!1;for(let q of this.listeners[Z])J=q(Y,Q)===!0||J;if(Z==="exit")J=this.emit("afterExit",Y,Q)||J;return J}}class v9{}var yY=(Z)=>!!Z&&typeof Z==="object"&&typeof Z.removeListener==="function"&&typeof Z.emit==="function"&&typeof Z.reallyExit==="function"&&typeof Z.listeners==="function"&&typeof Z.kill==="function"&&typeof Z.pid==="number"&&typeof Z.on==="function",x9,P9,CC,RC=(Z)=>{return{onExit(Y,Q){return Z.onExit(Y,Q)},load(){return Z.load()},unload(){return Z.unload()}}},RB,TB,b9,kB,Zn,Yn;var EB=j(()=>{GB();x9=Symbol.for("signal-exit emitter"),P9=globalThis,CC=Object.defineProperty.bind(Object);RB=class RB extends v9{onExit(){return()=>{}}load(){}unload(){}};TB=class TB extends v9{#Y=b9.platform==="win32"?"SIGINT":"SIGHUP";#Q=new CB;#Z;#J;#q;#X={};#z=!1;constructor(Z){super();this.#Z=Z,this.#X={};for(let Y of F4)this.#X[Y]=()=>{let Q=this.#Z.listeners(Y),{count:J}=this.#Q,q=Z;if(typeof q.__signal_exit_emitter__==="object"&&typeof q.__signal_exit_emitter__.count==="number")J+=q.__signal_exit_emitter__.count;if(Q.length===J){this.unload();let X=this.#Q.emit("exit",null,Y),z=Y==="SIGHUP"?this.#Y:Y;if(!X)Z.kill(Z.pid,z)}};this.#q=Z.reallyExit,this.#J=Z.emit}onExit(Z,Y){if(!yY(this.#Z))return()=>{};if(this.#z===!1)this.load();let Q=Y?.alwaysLast?"afterExit":"exit";return this.#Q.on(Q,Z),()=>{if(this.#Q.removeListener(Q,Z),this.#Q.listeners.exit.length===0&&this.#Q.listeners.afterExit.length===0)this.unload()}}load(){if(this.#z)return;this.#z=!0,this.#Q.count+=1;for(let Z of F4)try{let Y=this.#X[Z];if(Y)this.#Z.on(Z,Y)}catch(Y){}this.#Z.emit=(Z,...Y)=>{return this.#W(Z,...Y)},this.#Z.reallyExit=(Z)=>{return this.#H(Z)}}unload(){if(!this.#z)return;this.#z=!1,F4.forEach((Z)=>{let Y=this.#X[Z];if(!Y)throw Error("Listener not defined for signal: "+Z);try{this.#Z.removeListener(Z,Y)}catch(Q){}}),this.#Z.emit=this.#J,this.#Z.reallyExit=this.#q,this.#Q.count-=1}#H(Z){if(!yY(this.#Z))return 0;return this.#Z.exitCode=Z||0,this.#Q.emit("exit",this.#Z.exitCode,null),this.#q.call(this.#Z,this.#Z.exitCode)}#W(Z,...Y){let Q=this.#J;if(Z==="exit"&&yY(this.#Z)){if(typeof Y[0]==="number")this.#Z.exitCode=Y[0];let J=Q.call(this.#Z,Z,...Y);return this.#Q.emit("exit",this.#Z.exitCode,null),J}else return Q.call(this.#Z,Z,...Y)}};b9=globalThis.process,{onExit:kB,load:Zn,unload:Yn}=RC(yY(b9)?new TB(b9):new RB)});import{addAbortListener as TC}from"node:events";var xB=(Z,{cleanup:Y,detached:Q},{signal:J})=>{if(!Y||Q)return;let q=kB(()=>{Z.kill()});TC(J,()=>{q()})};var PB=j(()=>{EB()});var vB=({source:Z,sourcePromise:Y,boundOptions:Q,createNested:J},...q)=>{let X=P7(),{destination:z,destinationStream:W,destinationError:U,from:K,unpipeSignal:B}=kC(Q,J,q),{sourceStream:$,sourceError:F}=xC(Z,K),{options:O,fileDescriptors:V}=Q8.get(Z);return{sourcePromise:Y,sourceStream:$,sourceOptions:O,sourceError:F,destination:z,destinationStream:W,destinationError:U,unpipeSignal:B,fileDescriptors:V,startTime:X}},kC=(Z,Y,Q)=>{try{let{destination:J,pipeOptions:{from:q,to:X,unpipeSignal:z}={}}=EC(Z,Y,...Q),W=l7(J,X);return{destination:J,destinationStream:W,from:q,unpipeSignal:z}}catch(J){return{destinationError:J}}},EC=(Z,Y,Q,...J)=>{if(Array.isArray(Q))return{destination:Y(bB,Z)(Q,...J),pipeOptions:Z};if(typeof Q==="string"||Q instanceof URL||W2(Q)){if(Object.keys(Z).length>0)throw TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[q,X,z]=I7(Q,...J);return{destination:Y(bB)(q,X,z),pipeOptions:z}}if(Q8.has(Q)){if(Object.keys(Z).length>0)throw TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:Q,pipeOptions:J[0]}}throw TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${Q}`)},bB=({options:Z})=>({options:{...Z,stdin:"pipe",piped:!0}}),xC=(Z,Y)=>{try{return{sourceStream:r4(Z,Y)}}catch(Q){return{sourceError:Q}}};var SB=j(()=>{K2();b7();h8();u4()});var fB=({sourceStream:Z,sourceError:Y,destinationStream:Q,destinationError:J,fileDescriptors:q,sourceOptions:X,startTime:z})=>{let W=PC({sourceStream:Z,sourceError:Y,destinationStream:Q,destinationError:J});if(W!==void 0)throw S9({error:W,fileDescriptors:q,sourceOptions:X,startTime:z})},PC=({sourceStream:Z,sourceError:Y,destinationStream:Q,destinationError:J})=>{if(Y!==void 0&&J!==void 0)return J;if(J!==void 0)return E9(Z),J;if(Y!==void 0)return k9(Q),Y},S9=({error:Z,fileDescriptors:Y,sourceOptions:Q,startTime:J})=>ZZ({error:Z,command:yB,escapedCommand:yB,fileDescriptors:Y,options:Q,startTime:J,isSync:!1}),yB="source.pipe(destination)";var y9=j(()=>{H1();SY()});var hB=async(Z)=>{let[{status:Y,reason:Q,value:J=Q},{status:q,reason:X,value:z=X}]=await Z;if(!z.pipedFrom.includes(J))z.pipedFrom.push(J);if(q==="rejected")throw z;if(Y==="rejected")throw J;return z};import{finished as bC}from"node:stream/promises";var gB=(Z,Y,Q)=>{let J=fY.has(Y)?SC(Z,Y):vC(Z,Y);return z4(Z,fC,Q.signal),z4(Y,hC,Q.signal),yC(Y),J},vC=(Z,Y)=>{let Q=$4([Z]);return JZ(Q,Y),fY.set(Y,Q),Q},SC=(Z,Y)=>{let Q=fY.get(Y);return Q.add(Z),Q},yC=async(Z)=>{try{await bC(Z,{cleanup:!0,readable:!1,writable:!0})}catch{}fY.delete(Z)},fY,fC=2,hC=1;var mB=j(()=>{vY();n7();SY();fY=new WeakMap});import{aborted as gC}from"node:util";var pB=(Z,Y)=>Z===void 0?[]:[mC(Z,Y)],mC=async(Z,{sourceStream:Y,mergedStream:Q,fileDescriptors:J,sourceOptions:q,startTime:X})=>{await gC(Z,Y),await Q.remove(Y);let z=Error("Pipe canceled by `unpipeSignal` option.");throw S9({error:z,fileDescriptors:J,sourceOptions:q,startTime:X})};var uB=j(()=>{y9()});var hY=(Z,...Y)=>{if(l0(Y[0]))return hY.bind(void 0,{...Z,boundOptions:{...Z.boundOptions,...Y[0]}});let{destination:Q,...J}=vB(Z,...Y),q=pC({...J,destination:Q});return q.pipe=hY.bind(void 0,{...Z,source:Q,sourcePromise:q,boundOptions:{}}),q},pC=async({sourcePromise:Z,sourceStream:Y,sourceOptions:Q,sourceError:J,destination:q,destinationStream:X,destinationError:z,unpipeSignal:W,fileDescriptors:U,startTime:K})=>{let B=uC(Z,q);fB({sourceStream:Y,sourceError:J,destinationStream:X,destinationError:z,fileDescriptors:U,sourceOptions:Q,startTime:K});let $=new AbortController;try{let F=gB(Y,X,$);return await Promise.race([hB(B),...pB(W,{sourceStream:Y,mergedStream:F,sourceOptions:Q,fileDescriptors:U,startTime:K})])}finally{$.abort()}},uC=(Z,Y)=>Promise.allSettled([Z,Y]);var dB=j(()=>{SB();y9();mB();uB()});import{on as dC}from"node:events";import{getDefaultHighWaterMark as cC}from"node:stream";var gY=({subprocessStdout:Z,subprocess:Y,binary:Q,shouldEncode:J,encoding:q,preserveNewlines:X})=>{let z=new AbortController;return lC(Y,z),lB({stream:Z,controller:z,binary:Q,shouldEncode:!Z.readableObjectMode&&J,encoding:q,shouldSplit:!Z.readableObjectMode,preserveNewlines:X})},lC=async(Z,Y)=>{try{await Z}catch{}finally{Y.abort()}},f9=({stream:Z,onStreamEnd:Y,lines:Q,encoding:J,stripFinalNewline:q,allMixed:X})=>{let z=new AbortController;nC(Y,z,Z);let W=Z.readableObjectMode&&!X;return lB({stream:Z,controller:z,binary:J==="buffer",shouldEncode:!W,encoding:J,shouldSplit:!W&&Q,preserveNewlines:!q})},nC=async(Z,Y,Q)=>{try{await Z}catch{Q.destroy()}finally{Y.abort()}},lB=({stream:Z,controller:Y,binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z})=>{let W=dC(Z,"data",{signal:Y.signal,highWaterMark:cB,highWatermark:cB});return oC({onStdoutChunk:W,controller:Y,binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z})},h9,cB,oC=async function*({onStdoutChunk:Z,controller:Y,binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z}){let W=iC({binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z});try{for await(let[U]of Z)yield*B4(U,W,0)}catch(U){if(!Y.signal.aborted)throw U}finally{yield*U1(W)}},iC=({binary:Z,shouldEncode:Y,encoding:Q,shouldSplit:J,preserveNewlines:q})=>[RY(Z,Q,!Y),GY(Z,q,!J,{})].filter(Boolean);var mY=j(()=>{O9();CY();h9=cC(!0),cB=h9});import{setImmediate as sC}from"node:timers/promises";var nB=async({stream:Z,onStreamEnd:Y,fdNumber:Q,encoding:J,buffer:q,maxBuffer:X,lines:z,allMixed:W,stripFinalNewline:U,verboseInfo:K,streamInfo:B})=>{let $=aC({stream:Z,onStreamEnd:Y,fdNumber:Q,encoding:J,allMixed:W,verboseInfo:K,streamInfo:B});if(!q){await Promise.all([rC(Z),$]);return}let F=$9(U,Q),O=f9({stream:Z,onStreamEnd:Y,lines:z,encoding:J,stripFinalNewline:F,allMixed:W}),[V]=await Promise.all([tC({stream:Z,iterable:O,fdNumber:Q,encoding:J,maxBuffer:X,lines:z}),$]);return V},aC=async({stream:Z,onStreamEnd:Y,fdNumber:Q,encoding:J,allMixed:q,verboseInfo:X,streamInfo:{fileDescriptors:z}})=>{if(!xY({stdioItems:z[Q]?.stdioItems,encoding:J,verboseInfo:X,fdNumber:Q}))return;let W=f9({stream:Z,onStreamEnd:Y,lines:!0,encoding:J,stripFinalNewline:!0,allMixed:q});await hK(W,Z,Q,X)},rC=async(Z)=>{if(await sC(),Z.readableFlowing===null)Z.resume()},tC=async({stream:Z,stream:{readableObjectMode:Y},iterable:Q,fdNumber:J,encoding:q,maxBuffer:X,lines:z})=>{try{if(Y||z)return await $Y(Q,{maxBuffer:X});if(q==="buffer")return new Uint8Array(await FY(Q,{maxBuffer:X}));return await OY(Q,{maxBuffer:X})}catch(W){return oB(AU({error:W,stream:Z,readableObjectMode:Y,lines:z,encoding:q,fdNumber:J}))}},g9=async(Z)=>{try{return await Z}catch(Y){return oB(Y)}},oB=({bufferedData:Z})=>jz(Z)?new Uint8Array(Z):Z;var m9=j(()=>{DY();C6();_9();mY();U4();W1()});import{finished as eC}from"node:stream/promises";var F1=async(Z,Y,Q,{isSameDirection:J,stopOnExit:q=!1}={})=>{let X=ZR(Z,Q),z=new AbortController;try{await Promise.race([...q?[Q.exitPromise]:[],eC(Z,{cleanup:!0,signal:z.signal})])}catch(W){if(!X.stdinCleanedUp)JR(W,Y,Q,J)}finally{z.abort()}},ZR=(Z,{originalStreams:[Y],subprocess:Q})=>{let J={stdinCleanedUp:!1};if(Z===Y)YR(Z,Q,J);return J},YR=(Z,Y,Q)=>{let{_destroy:J}=Z;Z._destroy=(...q)=>{QR(Y,Q),J.call(Z,...q)}},QR=({exitCode:Z,signalCode:Y},Q)=>{if(Z!==null||Y!==null)Q.stdinCleanedUp=!0},JR=(Z,Y,Q,J)=>{if(!qR(Z,Y,Q,J))throw Z},qR=(Z,Y,Q,J=!0)=>{if(Q.propagating)return iB(Z)||pY(Z);return Q.propagating=!0,p9(Q,Y)===J?iB(Z):pY(Z)},p9=({fileDescriptors:Z},Y)=>Y!=="all"&&Z[Y].direction==="input",pY=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",iB=(Z)=>Z?.code==="EPIPE";var uY=()=>{};var sB=({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:X,verboseInfo:z,streamInfo:W})=>Z.stdio.map((U,K)=>u9({stream:U,fdNumber:K,encoding:Y,buffer:Q[K],maxBuffer:J[K],lines:q[K],allMixed:!1,stripFinalNewline:X,verboseInfo:z,streamInfo:W})),u9=async({stream:Z,fdNumber:Y,encoding:Q,buffer:J,maxBuffer:q,lines:X,allMixed:z,stripFinalNewline:W,verboseInfo:U,streamInfo:K})=>{if(!Z)return;let B=F1(Z,Y,K);if(p9(K,Y)){await B;return}let[$]=await Promise.all([nB({stream:Z,onStreamEnd:B,fdNumber:Y,encoding:Q,buffer:J,maxBuffer:q,lines:X,allMixed:z,stripFinalNewline:W,verboseInfo:U,streamInfo:K}),B]);return $};var d9=j(()=>{m9();uY()});var aB=({stdout:Z,stderr:Y},{all:Q})=>Q&&(Z||Y)?$4([Z,Y].filter(Boolean)):void 0,rB=({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:X,verboseInfo:z,streamInfo:W})=>u9({...XR(Z,Q),fdNumber:"all",encoding:Y,maxBuffer:J[1]+J[2],lines:q[1]||q[2],allMixed:zR(Z),stripFinalNewline:X,verboseInfo:z,streamInfo:W}),XR=({stdout:Z,stderr:Y,all:Q},[,J,q])=>{let X=J||q;if(!X)return{stream:Q,buffer:X};if(!J)return{stream:Y,buffer:X};if(!q)return{stream:Z,buffer:X};return{stream:Q,buffer:X}},zR=({all:Z,stdout:Y,stderr:Q})=>Z&&Y&&Q&&Y.readableObjectMode!==Q.readableObjectMode;var c9=j(()=>{vY();d9()});var tB=(Z)=>c4(Z,"ipc"),eB=(Z,Y)=>{let Q=x7(Z);e6({type:"ipc",verboseMessage:Q,fdNumber:"ipc",verboseInfo:Y})};var Z$=j(()=>{l4();S8()});var Y$=async({subprocess:Z,buffer:Y,maxBuffer:Q,ipc:J,ipcOutput:q,verboseInfo:X})=>{if(!J)return q;let z=tB(X),W=O8(Y,"ipc"),U=O8(Q,"ipc");for await(let K of A9({anyProcess:Z,channel:Z.channel,isSubprocess:!1,ipc:J,shouldAwait:!1,reference:!0})){if(W)GU(Z,q,U),q.push(K);if(z)eB(K,X)}return q},Q$=async(Z,Y)=>{return await Promise.allSettled([Z]),Y};var J$=j(()=>{U4();Z$();D8();G9()});import{once as HR}from"node:events";var q$=async({subprocess:Z,options:{encoding:Y,buffer:Q,maxBuffer:J,lines:q,timeoutDuration:X,cancelSignal:z,gracefulCancel:W,forceKillAfterDelay:U,stripFinalNewline:K,ipc:B,ipcInput:$},context:F,verboseInfo:O,fileDescriptors:V,originalStreams:D,onInternalError:_,controller:N})=>{let w=lK(Z,F),G={originalStreams:D,fileDescriptors:V,subprocess:Z,exitPromise:w,propagating:!1},I=sB({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:K,verboseInfo:O,streamInfo:G}),A=rB({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:K,verboseInfo:O,streamInfo:G}),x=[],T=Y$({subprocess:Z,buffer:Q,maxBuffer:J,ipc:B,ipcOutput:x,verboseInfo:O}),S=WR(D,Z,G),y=UR(V,G);try{return await Promise.race([Promise.all([{},oK(w),Promise.all(I),A,T,sW(Z,$),...S,...y]),_,KR(Z,N),...cW(Z,X,F,N),...KW({subprocess:Z,cancelSignal:z,gracefulCancel:W,context:F,controller:N}),...uW({subprocess:Z,cancelSignal:z,gracefulCancel:W,forceKillAfterDelay:U,context:F,controller:N})])}catch(g){return F.terminationReason??="other",Promise.all([{error:g},w,Promise.all(I.map((P)=>g9(P))),g9(A),Q$(T,x),Promise.allSettled(S),Promise.allSettled(y)])}},WR=(Z,Y,Q)=>Z.map((J,q)=>J===Y.stdio[q]?void 0:F1(J,q,Q)),UR=(Z,Y)=>Z.flatMap(({stdioItems:Q},J)=>Q.filter(({value:q,stream:X=q})=>s6(X,{checkOpen:!1})&&!o6(X)).map(({type:q,value:X,stream:z=X})=>F1(z,J,Y,{isSameDirection:p6.has(q),stopOnExit:q==="native"}))),KR=async(Z,{signal:Y})=>{let[Q]=await HR(Z,"error",{signal:Y});throw Q};var X$=j(()=>{d2();v2();u2();V8();_6();m9();J$();l2();c9();d9();L9();uY()});var z$=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),V1=(Z,Y,Q)=>{let J=Z[Q];if(!J.has(Y))J.set(Y,[]);let q=J.get(Y),X=Y8();return q.push(X),{resolve:X.resolve.bind(X),promises:q}},qZ=async({resolve:Z,promises:Y},Q)=>{Z();let[J]=await Promise.race([Promise.allSettled([!0,Q]),Promise.all([!1,...Y])]);return!J};var dY=()=>{};import{finished as H$}from"node:stream/promises";var l9=async(Z)=>{if(Z===void 0)return;try{await n9(Z)}catch{}},W$=async(Z)=>{if(Z===void 0)return;try{await o9(Z)}catch{}},n9=async(Z)=>{await H$(Z,{cleanup:!0,readable:!1,writable:!0})},o9=async(Z)=>{await H$(Z,{cleanup:!0,readable:!0,writable:!1})},cY=async(Z,Y)=>{if(await Z,Y)throw Y},lY=(Z,Y,Q)=>{if(Q&&!pY(Q))Z.destroy(Q);else if(Y)Z.destroy()};var i9=j(()=>{uY()});import{Readable as BR}from"node:stream";import{callbackify as $R}from"node:util";var U$=({subprocess:Z,concurrentStreams:Y,encoding:Q},{from:J,binary:q=!0,preserveNewlines:X=!0}={})=>{let z=q||R6.has(Q),{subprocessStdout:W,waitReadableDestroy:U}=s9(Z,J,Y),{readableEncoding:K,readableObjectMode:B,readableHighWaterMark:$}=a9(W,z),{read:F,onStdoutDataDone:O}=r9({subprocessStdout:W,subprocess:Z,binary:z,encoding:Q,preserveNewlines:X}),V=new BR({read:F,destroy:$R(e9.bind(void 0,{subprocessStdout:W,subprocess:Z,waitReadableDestroy:U})),highWaterMark:$,objectMode:B,encoding:K});return t9({subprocessStdout:W,onStdoutDataDone:O,readable:V,subprocess:Z}),V},s9=(Z,Y,Q)=>{let J=r4(Z,Y),q=V1(Q,J,"readableDestroy");return{subprocessStdout:J,waitReadableDestroy:q}},a9=({readableEncoding:Z,readableObjectMode:Y,readableHighWaterMark:Q},J)=>J?{readableEncoding:Z,readableObjectMode:Y,readableHighWaterMark:Q}:{readableEncoding:Z,readableObjectMode:!0,readableHighWaterMark:h9},r9=({subprocessStdout:Z,subprocess:Y,binary:Q,encoding:J,preserveNewlines:q})=>{let X=Y8(),z=gY({subprocessStdout:Z,subprocess:Y,binary:Q,shouldEncode:!Q,encoding:J,preserveNewlines:q});return{read(){FR(this,z,X)},onStdoutDataDone:X}},FR=async(Z,Y,Q)=>{try{let{value:J,done:q}=await Y.next();if(q)Q.resolve();else Z.push(J)}catch{}},t9=async({subprocessStdout:Z,onStdoutDataDone:Y,readable:Q,subprocess:J,subprocessStdin:q})=>{try{if(await o9(Z),await J,await l9(q),await Y,Q.readable)Q.push(null)}catch(X){await l9(q),K$(Q,X)}},e9=async({subprocessStdout:Z,subprocess:Y,waitReadableDestroy:Q},J)=>{if(await qZ(Q,Y))K$(Z,J),await cY(Y,J)},K$=(Z,Y)=>{lY(Z,Z.readable,Y)};var ZJ=j(()=>{H4();h8();mY();dY();i9()});import{Writable as VR}from"node:stream";import{callbackify as B$}from"node:util";var $$=({subprocess:Z,concurrentStreams:Y},{to:Q}={})=>{let{subprocessStdin:J,waitWritableFinal:q,waitWritableDestroy:X}=YJ(Z,Q,Y),z=new VR({...QJ(J,Z,q),destroy:B$(qJ.bind(void 0,{subprocessStdin:J,subprocess:Z,waitWritableFinal:q,waitWritableDestroy:X})),highWaterMark:J.writableHighWaterMark,objectMode:J.writableObjectMode});return JJ(J,z),z},YJ=(Z,Y,Q)=>{let J=l7(Z,Y),q=V1(Q,J,"writableFinal"),X=V1(Q,J,"writableDestroy");return{subprocessStdin:J,waitWritableFinal:q,waitWritableDestroy:X}},QJ=(Z,Y,Q)=>({write:OR.bind(void 0,Z),final:B$(DR.bind(void 0,Z,Y,Q))}),OR=(Z,Y,Q,J)=>{if(Z.write(Y,Q))J();else Z.once("drain",J)},DR=async(Z,Y,Q)=>{if(await qZ(Q,Y)){if(Z.writable)Z.end();await Y}},JJ=async(Z,Y,Q)=>{try{if(await n9(Z),Y.writable)Y.end()}catch(J){await W$(Q),F$(Y,J)}},qJ=async({subprocessStdin:Z,subprocess:Y,waitWritableFinal:Q,waitWritableDestroy:J},q)=>{if(await qZ(Q,Y),await qZ(J,Y))F$(Z,q),await cY(Y,q)},F$=(Z,Y)=>{lY(Z,Z.writable,Y)};var XJ=j(()=>{h8();dY();i9()});import{Duplex as MR}from"node:stream";import{callbackify as jR}from"node:util";var V$=({subprocess:Z,concurrentStreams:Y,encoding:Q},{from:J,to:q,binary:X=!0,preserveNewlines:z=!0}={})=>{let W=X||R6.has(Q),{subprocessStdout:U,waitReadableDestroy:K}=s9(Z,J,Y),{subprocessStdin:B,waitWritableFinal:$,waitWritableDestroy:F}=YJ(Z,q,Y),{readableEncoding:O,readableObjectMode:V,readableHighWaterMark:D}=a9(U,W),{read:_,onStdoutDataDone:N}=r9({subprocessStdout:U,subprocess:Z,binary:W,encoding:Q,preserveNewlines:z}),w=new MR({read:_,...QJ(B,Z,$),destroy:jR(_R.bind(void 0,{subprocessStdout:U,subprocessStdin:B,subprocess:Z,waitReadableDestroy:K,waitWritableFinal:$,waitWritableDestroy:F})),readableHighWaterMark:D,writableHighWaterMark:B.writableHighWaterMark,readableObjectMode:V,writableObjectMode:B.writableObjectMode,encoding:O});return t9({subprocessStdout:U,onStdoutDataDone:N,readable:w,subprocess:Z,subprocessStdin:B}),JJ(B,w,U),w},_R=async({subprocessStdout:Z,subprocessStdin:Y,subprocess:Q,waitReadableDestroy:J,waitWritableFinal:q,waitWritableDestroy:X},z)=>{await Promise.all([e9({subprocessStdout:Z,subprocess:Q,waitReadableDestroy:J},z),qJ({subprocessStdin:Y,subprocess:Q,waitWritableFinal:q,waitWritableDestroy:X},z)])};var O$=j(()=>{H4();ZJ();XJ()});var zJ=(Z,Y,{from:Q,binary:J=!1,preserveNewlines:q=!1}={})=>{let X=J||R6.has(Y),z=r4(Z,Q),W=gY({subprocessStdout:z,subprocess:Z,binary:X,shouldEncode:!0,encoding:Y,preserveNewlines:q});return NR(W,z,Z)},NR=async function*(Z,Y,Q){try{yield*Z}finally{if(Y.readable)Y.destroy();await Q}};var D$=j(()=>{H4();h8();mY()});var M$=(Z,{encoding:Y})=>{let Q=z$();Z.readable=U$.bind(void 0,{subprocess:Z,concurrentStreams:Q,encoding:Y}),Z.writable=$$.bind(void 0,{subprocess:Z,concurrentStreams:Q}),Z.duplex=V$.bind(void 0,{subprocess:Z,concurrentStreams:Q,encoding:Y}),Z.iterable=zJ.bind(void 0,Z,Y),Z[Symbol.asyncIterator]=zJ.bind(void 0,Z,Y,{})};var j$=j(()=>{dY();ZJ();XJ();O$();D$()});var _$=(Z,Y)=>{for(let[Q,J]of LR){let q=J.value.bind(Y);Reflect.defineProperty(Z,Q,{...J,value:q})}},IR,LR;var N$=j(()=>{IR=(async()=>{})().constructor.prototype,LR=["then","catch","finally"].map((Z)=>[Z,Reflect.getOwnPropertyDescriptor(IR,Z)])});import{setMaxListeners as wR}from"node:events";import{spawn as AR}from"node:child_process";var I$=(Z,Y,Q,J)=>{let{file:q,commandArguments:X,command:z,escapedCommand:W,startTime:U,verboseInfo:K,options:B,fileDescriptors:$}=GR(Z,Y,Q),{subprocess:F,promise:O}=RR({file:q,commandArguments:X,options:B,startTime:U,verboseInfo:K,command:z,escapedCommand:W,fileDescriptors:$});return F.pipe=hY.bind(void 0,{source:F,sourcePromise:O,boundOptions:{},createNested:J}),_$(F,O),Q8.set(F,{options:B,fileDescriptors:$}),F},GR=(Z,Y,Q)=>{let{command:J,escapedCommand:q,startTime:X,verboseInfo:z}=v7(Z,Y,Q),{file:W,commandArguments:U,options:K}=HY(Z,Y,Q),B=CR(K),$=$B(B,z);return{file:W,commandArguments:U,command:J,escapedCommand:q,startTime:X,verboseInfo:z,options:B,fileDescriptors:$}},CR=({timeout:Z,signal:Y,...Q})=>{if(Y!==void 0)throw TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...Q,timeoutDuration:Z}},RR=({file:Z,commandArguments:Y,options:Q,startTime:J,verboseInfo:q,command:X,escapedCommand:z,fileDescriptors:W})=>{let U;try{U=AR(...WY(Z,Y,Q))}catch(V){return HB({error:V,command:X,escapedCommand:z,fileDescriptors:W,options:Q,startTime:J,verboseInfo:q})}let K=new AbortController;wR(Number.POSITIVE_INFINITY,K.signal);let B=[...U.stdio];wB(U,W,K),xB(U,Q,K);let $={},F=Y8();U.kill=WW.bind(void 0,{kill:U.kill.bind(U),options:Q,onInternalError:F,context:$,controller:K}),U.all=aB(U,Q),M$(U,Q),qB(U,Q);let O=TR({subprocess:U,options:Q,startTime:J,verboseInfo:q,fileDescriptors:W,originalStreams:B,command:X,escapedCommand:z,context:$,onInternalError:F,controller:K});return{subprocess:U,promise:O}},TR=async({subprocess:Z,options:Y,startTime:Q,verboseInfo:J,fileDescriptors:q,originalStreams:X,command:z,escapedCommand:W,context:U,onInternalError:K,controller:B})=>{let[$,[F,O],V,D,_]=await q$({subprocess:Z,options:Y,context:U,verboseInfo:J,fileDescriptors:q,originalStreams:X,onInternalError:K,controller:B});B.abort(),K.resolve();let N=V.map((I,A)=>_8(I,Y,A)),w=_8(D,Y,"all"),G=kR({errorInfo:$,exitCode:F,signal:O,stdio:N,all:w,ipcOutput:_,context:U,options:Y,command:z,escapedCommand:W,startTime:Q});return YZ(G,J,Y)},kR=({errorInfo:Z,exitCode:Y,signal:Q,stdio:J,all:q,ipcOutput:X,context:z,options:W,command:U,escapedCommand:K,startTime:B})=>("error"in Z)?z1({error:Z.error,command:U,escapedCommand:K,timedOut:z.terminationReason==="timeout",isCanceled:z.terminationReason==="cancel"||z.terminationReason==="gracefulCancel",isGracefullyCanceled:z.terminationReason==="gracefulCancel",isMaxBuffer:Z.error instanceof M8,isForcefullyTerminated:z.isForcefullyTerminated,exitCode:Y,signal:Q,stdio:J,all:q,ipcOutput:X,options:W,startTime:B,isSync:!1}):jY({command:U,escapedCommand:K,stdio:J,all:q,ipcOutput:X,options:W,startTime:B});var L$=j(()=>{DY();_2();i2();h8();C9();H1();_Y();WB();FB();W1();AB();p7();PB();dB();c9();X$();j$();N$()});var nY=(Z,Y)=>{let Q=Object.fromEntries(Object.entries(Y).map(([J,q])=>[J,ER(J,Z[J],q)]));return{...Z,...Q}},ER=(Z,Y,Q)=>{if(xR.has(Z)&&l0(Y)&&l0(Q))return{...Y,...Q};return Q},xR;var w$=j(()=>{D8();xR=new Set(["env",...O2])});var p8=(Z,Y,Q,J)=>{let q=(z,W,U)=>p8(z,W,Q,U),X=(...z)=>PR({mapArguments:Z,deepOptions:Q,boundOptions:Y,setBoundExeca:J,createNested:q},...z);if(J!==void 0)J(X,q,Y);return X},PR=({mapArguments:Z,deepOptions:Y={},boundOptions:Q={},setBoundExeca:J,createNested:q},X,...z)=>{if(l0(X))return q(Z,nY(Q,X),J);let{file:W,commandArguments:U,options:K,isSync:B}=bR({mapArguments:Z,firstArgument:X,nextArguments:z,deepOptions:Y,boundOptions:Q});return B?aK(W,U,K):I$(W,U,K,q)},bR=({mapArguments:Z,firstArgument:Y,nextArguments:Q,deepOptions:J,boundOptions:q})=>{let X=Az(Y)?Gz(Y,Q):[Y,...Q],[z,W,U]=I7(...X),K=nY(nY(J,q),U),{file:B=z,commandArguments:$=W,options:F=K,isSync:O=!1}=Z({file:z,commandArguments:W,options:K});return{file:B,commandArguments:$,options:F,isSync:O}};var A$=j(()=>{K2();Cz();rK();L$();w$()});var G$=({file:Z,commandArguments:Y})=>R$(Z,Y),C$=({file:Z,commandArguments:Y})=>({...R$(Z,Y),isSync:!0}),R$=(Z,Y)=>{if(Y.length>0)throw TypeError(`The command and its arguments must be passed as a single string: ${Z} ${Y}.`);let[Q,...J]=vR(Z);return{file:Q,commandArguments:J}},vR=(Z)=>{if(typeof Z!=="string")throw TypeError(`The command must be a string: ${String(Z)}.`);let Y=Z.trim();if(Y==="")return[];let Q=[];for(let J of Y.split(SR)){let q=Q.at(-1);if(q&&q.endsWith("\\"))Q[Q.length-1]=`${q.slice(0,-1)} ${J}`;else Q.push(J)}return Q},SR;var T$=j(()=>{SR=/ +/g});var k$=(Z,Y,Q)=>{Z.sync=Y(yR,Q),Z.s=Z.sync},E$=({options:Z})=>x$(Z),yR=({options:Z})=>({...x$(Z),isSync:!0}),x$=(Z)=>({options:{...fR(Z),...Z}}),fR=({input:Z,inputFile:Y,stdio:Q})=>Z===void 0&&Y===void 0&&Q===void 0?{stdin:"inherit"}:{},P$;var b$=j(()=>{P$={preferLocal:!0}});var q8,ni,oi,ii,si,ai,ri,ti,ei,Zs;var oY=j(()=>{A$();T$();c2();b$();C9();y8();q8=p8(()=>({})),ni=p8(()=>({isSync:!0})),oi=p8(G$),ii=p8(C$),si=p8(nW),ai=p8(E$,{},P$,k$),{sendMessage:ri,getOneMessage:ti,getEachMessage:ei,getCancelSignal:Zs}=XB()});function hR(Z,Y){let Q=Z.slice(0,Y).split(/\r\n|\n|\r/g);return[Q.length,Q.pop().length+1]}function gR(Z,Y,Q){let J=Z.split(/\r\n|\n|\r/g),q="",X=(Math.log10(Y+1)|0)+1;for(let z=Y-1;z<=Y+1;z++){let W=J[z-1];if(!W)continue;if(q+=z.toString().padEnd(X," "),q+=": ",q+=W,q+=`
|
|
84
|
+
if (condition) { yield value; }`)};var gK=N(()=>{R6()});import{Buffer as NG}from"node:buffer";import{StringDecoder as IG}from"node:string_decoder";var EY=(Z,Y,Q)=>{if(Q)return;if(Z)return{transform:LG.bind(void 0,new TextEncoder)};let J=new IG(Y);return{transform:wG.bind(void 0,J),final:AG.bind(void 0,J)}},LG=function*(Z,Y){if(NG.isBuffer(Y))yield V4(Y);else if(typeof Y==="string")yield Z.encode(Y);else yield Y},wG=function*(Z,Y){yield t0(Y)?Z.write(Y):Y},AG=function*(Z){let Y=Z.end();if(Y!=="")yield Y};var L9=N(()=>{R6()});import{callbackify as mK}from"node:util";var w9,PY=async function*(Z,Y,Q){if(Q===Y.length){yield Z;return}let{transform:J=CG}=Y[Q];for await(let q of J(Z))yield*PY(q,Y,Q+1)},pK=async function*(Z){for(let[Y,{final:Q}]of Object.entries(Z))yield*GG(Q,Number(Y),Z)},GG=async function*(Z,Y,Q){if(Z===void 0)return;for await(let J of Z())yield*PY(J,Q,Y+1)},uK,CG=function*(Z){yield Z};var dK=N(()=>{w9=mK(async(Z,Y,Q,J)=>{Y.currentIterable=Z(...Q);try{for await(let q of Y.currentIterable)J.push(q)}finally{delete Y.currentIterable}}),uK=mK(async({currentIterable:Z},Y)=>{if(Z!==void 0){await(Y?Z.throw(Y):Z.return());return}if(Y)throw Y})});var A9=(Z,Y,Q,J)=>{try{for(let q of Z(...Y))Q.push(q);J()}catch(q){J(q)}},cK=(Z,Y)=>[...Y.flatMap((Q)=>[...V8(Q,Z,0)]),...B1(Z)],V8=function*(Z,Y,Q){if(Q===Y.length){yield Z;return}let{transform:J=TG}=Y[Q];for(let q of J(Z))yield*V8(q,Y,Q+1)},B1=function*(Z){for(let[Y,{final:Q}]of Object.entries(Z))yield*RG(Q,Number(Y),Z)},RG=function*(Z,Y,Q){if(Z===void 0)return;for(let J of Z())yield*V8(J,Q,Y+1)},TG=function*(Z){yield Z};import{Transform as kG,getDefaultHighWaterMark as lK}from"node:stream";var G9=({value:Z,value:{transform:Y,final:Q,writableObjectMode:J,readableObjectMode:q},optionName:X},{encoding:z})=>{let W={},U=nK(Z,z,X),K=F8(Y),B=F8(Q),$=K?w9.bind(void 0,PY,W):A9.bind(void 0,V8),V=K||B?w9.bind(void 0,pK,W):A9.bind(void 0,B1),D=K||B?uK.bind(void 0,W):void 0;return{stream:new kG({writableObjectMode:J,writableHighWaterMark:lK(J),readableObjectMode:q,readableHighWaterMark:lK(q),transform(O,j,_){$([O,U,0],this,_)},flush(O){V([U],this,O)},destroy:D})}},xY=(Z,Y,Q,J)=>{let q=Y.filter(({type:z})=>z==="generator"),X=J?q.reverse():q;for(let{value:z,optionName:W}of X){let U=nK(z,Q,W);Z=cK(U,Z)}return Z},nK=({transform:Z,final:Y,binary:Q,writableObjectMode:J,readableObjectMode:q,preserveNewlines:X},z,W)=>{let U={};return[{transform:yK(J,W)},EY(Q,z,J),TY(Q,X,J,U),{transform:Z,final:Y},{transform:fK(q,W)},SK({binary:Q,preserveNewlines:X,readableObjectMode:q,state:U})].filter(Boolean)};var bY=N(()=>{N6();kY();gK();L9();dK()});var oK=(Z,Y)=>{for(let Q of EG(Z))PG(Z,Q,Y)},EG=(Z)=>new Set(Object.entries(Z).filter(([,{direction:Y}])=>Y==="input").map(([Y])=>Number(Y))),PG=(Z,Y,Q)=>{let{stdioItems:J}=Z[Y],q=J.filter(({contents:W})=>W!==void 0);if(q.length===0)return;if(Y!==0){let[{type:W,optionName:U}]=q;throw TypeError(`Only the \`stdin\` option, not \`${U}\`, can be ${u4[W]} with synchronous methods.`)}let z=q.map(({contents:W})=>W).map((W)=>xG(W,J));Q.input=rZ(z)},xG=(Z,Y)=>{let Q=xY(Z,Y,"utf8",!0);return bG(Q),rZ(Q)},bG=(Z)=>{let Y=Z.find((Q)=>typeof Q!=="string"&&!t0(Q));if(Y!==void 0)throw TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${Y}.`)};var iK=N(()=>{bY();R6();N6()});var vY=({stdioItems:Z,encoding:Y,verboseInfo:Q,fdNumber:J})=>J!=="all"&&o8(Q,J)&&!T6.has(Y)&&vG(J)&&(Z.some(({type:q,value:X})=>q==="native"&&SG.has(X))||Z.every(({type:q})=>u6.has(q))),vG=(Z)=>Z===1||Z===2,SG,sK=async(Z,Y,Q,J)=>{for await(let q of Z)if(!yG(Y))rK(q,Q,J)},aK=(Z,Y,Q)=>{for(let J of Z)rK(J,Y,Q)},yG=(Z)=>Z._readableState.pipes.length>0,rK=(Z,Y,Q)=>{let J=v7(Z);Y4({type:"output",verboseMessage:J,fdNumber:Y,verboseInfo:Q})};var C9=N(()=>{K8();N6();i8();f4();SG=new Set(["pipe","overlapped"])});import{writeFileSync as fG,appendFileSync as hG}from"node:fs";var tK=({fileDescriptors:Z,syncResult:{output:Y},options:Q,isMaxBuffer:J,verboseInfo:q})=>{if(Y===null)return{output:Array.from({length:3})};let X={},z=new Set([]);return{output:Y.map((U,K)=>gG({result:U,fileDescriptors:Z,fdNumber:K,state:X,outputFiles:z,isMaxBuffer:J,verboseInfo:q},Q)),...X}},gG=({result:Z,fileDescriptors:Y,fdNumber:Q,state:J,outputFiles:q,isMaxBuffer:X,verboseInfo:z},{buffer:W,encoding:U,lines:K,stripFinalNewline:B,maxBuffer:$})=>{if(Z===null)return;let V=gU(Z,X,$),D=V4(V),{stdioItems:F,objectMode:O}=Y[Q],j=mG([D],F,U,J),{serializedResult:_,finalResult:L=_}=pG({chunks:j,objectMode:O,encoding:U,lines:K,stripFinalNewline:B,fdNumber:Q});uG({serializedResult:_,fdNumber:Q,state:J,verboseInfo:z,encoding:U,stdioItems:F,objectMode:O});let A=W[Q]?L:void 0;try{if(J.error===void 0)dG(_,F,q);return A}catch(I){return J.error=I,A}},mG=(Z,Y,Q,J)=>{try{return xY(Z,Y,Q,!1)}catch(q){return J.error=q,Z}},pG=({chunks:Z,objectMode:Y,encoding:Q,lines:J,stripFinalNewline:q,fdNumber:X})=>{if(Y)return{serializedResult:Z};if(Q==="buffer")return{serializedResult:rZ(Z)};let z=Pz(Z,Q);if(J[X])return{serializedResult:z,finalResult:I9(z,!q[X],Y)};return{serializedResult:z}},uG=({serializedResult:Z,fdNumber:Y,state:Q,verboseInfo:J,encoding:q,stdioItems:X,objectMode:z})=>{if(!vY({stdioItems:X,encoding:q,verboseInfo:J,fdNumber:Y}))return;let W=I9(Z,!1,z);try{aK(W,Y,J)}catch(U){Q.error??=U}},dG=(Z,Y,Q)=>{for(let{path:J,append:q}of Y.filter(({type:X})=>GY.has(X))){let X=typeof J==="string"?J:J.toString();if(q||Q.has(X))hG(J,Z);else Q.add(X),fG(J,Z)}};var eK=N(()=>{C9();bY();kY();R6();N6();$8()});var ZB=([,Z,Y],Q)=>{if(!Q.all)return;if(Z===void 0)return Y;if(Y===void 0)return Z;if(Array.isArray(Z))return Array.isArray(Y)?[...Z,...Y]:[...Z,N4(Y,Q,"all")];if(Array.isArray(Y))return[N4(Z,Q,"all"),...Y];if(t0(Z)&&t0(Y))return j2([Z,Y]);return`${Z}${Y}`};var YB=N(()=>{R6();K1()});import{once as R9}from"node:events";var QB=async(Z,Y)=>{let[Q,J]=await cG(Z);return Y.isForcefullyTerminated??=!1,[Q,J]},cG=async(Z)=>{let[Y,Q]=await Promise.allSettled([R9(Z,"spawn"),R9(Z,"exit")]);if(Y.status==="rejected")return[];return Q.status==="rejected"?JB(Z):Q.value},JB=async(Z)=>{try{return await R9(Z,"exit")}catch{return JB(Z)}},qB=async(Z)=>{let[Y,Q]=await Z;if(!lG(Y,Q)&&T9(Y,Q))throw new Q4;return[Y,Q]},lG=(Z,Y)=>Z===void 0&&Y===void 0,T9=(Z,Y)=>Z!==0||Y!==null;var k9=N(()=>{h4()});var XB=({error:Z,status:Y,signal:Q,output:J},{maxBuffer:q})=>{let X=nG(Z,Y,Q),z=X?.code==="ETIMEDOUT",W=hU(X,J,q);return{resultError:X,exitCode:Y,signal:Q,timedOut:z,isMaxBuffer:W}},nG=(Z,Y,Q)=>{if(Z!==void 0)return Z;return T9(Y,Q)?new Q4:void 0};var zB=N(()=>{h4();$8();k9()});import{spawnSync as oG}from"node:child_process";var HB=(Z,Y,Q)=>{let{file:J,commandArguments:q,command:X,escapedCommand:z,startTime:W,verboseInfo:U,options:K,fileDescriptors:B}=iG(Z,Y,Q),$=rG({file:J,commandArguments:q,options:K,command:X,escapedCommand:z,verboseInfo:U,fileDescriptors:B,startTime:W});return qZ($,U,K)},iG=(Z,Y,Q)=>{let{command:J,escapedCommand:q,startTime:X,verboseInfo:z}=f7(Z,Y,Q),W=sG(Q),{file:U,commandArguments:K,options:B}=KY(Z,Y,W);aG(B);let $=EK(B,z);return{file:U,commandArguments:K,command:J,escapedCommand:q,startTime:X,verboseInfo:z,options:B,fileDescriptors:$}},sG=(Z)=>Z.node&&!Z.ipc?{...Z,ipc:!1}:Z,aG=({ipc:Z,ipcInput:Y,detached:Q,cancelSignal:J})=>{if(Y)SY("ipcInput");if(Z)SY("ipc: true");if(Q)SY("detached: true");if(J)SY("cancelSignal")},SY=(Z)=>{throw TypeError(`The "${Z}" option cannot be used with synchronous methods.`)},rG=({file:Z,commandArguments:Y,options:Q,command:J,escapedCommand:q,verboseInfo:X,fileDescriptors:z,startTime:W})=>{let U=tG({file:Z,commandArguments:Y,options:Q,command:J,escapedCommand:q,fileDescriptors:z,startTime:W});if(U.failed)return U;let{resultError:K,exitCode:B,signal:$,timedOut:V,isMaxBuffer:D}=XB(U,Q),{output:F,error:O=K}=tK({fileDescriptors:z,syncResult:U,options:Q,isMaxBuffer:D,verboseInfo:X}),j=F.map((L,A)=>N4(L,Q,A)),_=N4(ZB(F,Q),Q,"all");return ZC({error:O,exitCode:B,signal:$,timedOut:V,isMaxBuffer:D,stdio:j,all:_,options:Q,command:J,escapedCommand:q,startTime:W})},tG=({file:Z,commandArguments:Y,options:Q,command:J,escapedCommand:q,fileDescriptors:X,startTime:z})=>{try{oK(X,Q);let W=eG(Q);return oG(...BY(Z,Y,W))}catch(W){return JZ({error:W,command:J,escapedCommand:q,fileDescriptors:X,options:Q,startTime:z,isSync:!0})}},eG=({encoding:Z,maxBuffer:Y,...Q})=>({...Q,encoding:"buffer",maxBuffer:NY(Y)}),ZC=({error:Z,exitCode:Y,signal:Q,timedOut:J,isMaxBuffer:q,stdio:X,all:z,options:W,command:U,escapedCommand:K,startTime:B})=>Z===void 0?IY({command:U,escapedCommand:K,stdio:X,all:z,ipcOutput:[],options:W,startTime:B}):W1({error:Z,command:U,escapedCommand:K,timedOut:J,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:q,isForcefullyTerminated:!1,exitCode:Y,signal:Q,stdio:X,all:z,ipcOutput:[],options:W,startTime:B,isSync:!0});var WB=N(()=>{C2();Y9();U1();LY();xK();K1();iK();eK();$8();YB();zB()});import{once as E9,on as YC}from"node:events";var UB=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J},{reference:q=!0,filter:X}={})=>{return r8({methodName:"getOneMessage",isSubprocess:Q,ipc:J,isConnected:JY(Z)}),QC({anyProcess:Z,channel:Y,isSubprocess:Q,filter:X,reference:q})},QC=async({anyProcess:Z,channel:Y,isSubprocess:Q,filter:J,reference:q})=>{a7(Y,q);let X=p4(Z,Y,Q),z=new AbortController;try{return await Promise.race([JC(X,J,z),qC(X,Q,z),XC(X,Q,z)])}catch(W){throw t8(Z),W}finally{z.abort(),r7(Y,q)}},JC=async(Z,Y,{signal:Q})=>{if(Y===void 0){let[J]=await E9(Z,"message",{signal:Q});return J}for await(let[J]of YC(Z,"message",{signal:Q}))if(Y(J))return J},qC=async(Z,Y,{signal:Q})=>{await E9(Z,"disconnect",{signal:Q}),LW(Y)},XC=async(Z,Y,{signal:Q})=>{let[J]=await E9(Z,"strict:error",{signal:Q});throw n7(J,Y)};var KB=N(()=>{e8();J1()});import{once as $B,on as zC}from"node:events";var FB=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J},{reference:q=!0}={})=>P9({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J,shouldAwait:!Q,reference:q}),P9=({anyProcess:Z,channel:Y,isSubprocess:Q,ipc:J,shouldAwait:q,reference:X})=>{r8({methodName:"getEachMessage",isSubprocess:Q,ipc:J,isConnected:JY(Z)}),a7(Y,X);let z=p4(Z,Y,Q),W=new AbortController,U={};return HC(Z,z,W),WC({ipcEmitter:z,isSubprocess:Q,controller:W,state:U}),UC({anyProcess:Z,channel:Y,ipcEmitter:z,isSubprocess:Q,shouldAwait:q,controller:W,state:U,reference:X})},HC=async(Z,Y,Q)=>{try{await $B(Y,"disconnect",{signal:Q.signal}),Q.abort()}catch{}},WC=async({ipcEmitter:Z,isSubprocess:Y,controller:Q,state:J})=>{try{let[q]=await $B(Z,"strict:error",{signal:Q.signal});J.error=n7(q,Y),Q.abort()}catch{}},UC=async function*({anyProcess:Z,channel:Y,ipcEmitter:Q,isSubprocess:J,shouldAwait:q,controller:X,state:z,reference:W}){try{for await(let[U]of zC(Q,"message",{signal:X.signal}))BB(z),yield U}catch{BB(z)}finally{if(X.abort(),r7(Y,W),!J)t8(Z);if(q)await Z}},BB=({error:Z})=>{if(Z)throw Z};var x9=N(()=>{e8();J1()});import VB from"node:process";var OB=(Z,{ipc:Y})=>{Object.assign(Z,MB(Z,!1,Y))},DB=()=>{let Z=VB,Y=!0,Q=VB.channel!==void 0;return{...MB(Z,!0,Q),getCancelSignal:aW.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:!0,ipc:Q})}},MB=(Z,Y,Q)=>({sendMessage:HY.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:Y,ipc:Q}),getOneMessage:UB.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:Y,ipc:Q}),getEachMessage:FB.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:Y,ipc:Q})});var b9=N(()=>{WY();KB();x9();YY()});import{ChildProcess as KC}from"node:child_process";import{PassThrough as BC,Readable as $C,Writable as FC,Duplex as VC}from"node:stream";var jB=({error:Z,command:Y,escapedCommand:Q,fileDescriptors:J,options:q,startTime:X,verboseInfo:z})=>{j9(J);let W=new KC;OC(W,J),Object.assign(W,{readable:DC,writable:MC,duplex:jC});let U=JZ({error:Z,command:Y,escapedCommand:Q,fileDescriptors:J,options:q,startTime:X,isSync:!1}),K=_C(U,z,q);return{subprocess:W,promise:K}},OC=(Z,Y)=>{let Q=$1(),J=$1(),q=$1(),X=Array.from({length:Y.length-3},$1),z=$1(),W=[Q,J,q,...X];Object.assign(Z,{stdin:Q,stdout:J,stderr:q,all:z,stdio:W})},$1=()=>{let Z=new BC;return Z.end(),Z},DC=()=>new $C({read(){}}),MC=()=>new FC({write(){}}),jC=()=>new VC({read(){},write(){}}),_C=async(Z,Y,Q)=>qZ(Z,Y,Q);var _B=N(()=>{RY();U1();LY()});import{createReadStream as NB,createWriteStream as IB}from"node:fs";import{Buffer as NC}from"node:buffer";import{Readable as F1,Writable as IC,Duplex as LC}from"node:stream";var wB=(Z,Y)=>CY(wC,Z,Y,!1),V1=({type:Z,optionName:Y})=>{throw TypeError(`The \`${Y}\` option cannot be ${u4[Z]}.`)},LB,wC;var AB=N(()=>{bY();RY();N6();LB={fileNumber:V1,generator:G9,asyncGenerator:G9,nodeStream:({value:Z})=>({stream:Z}),webTransform({value:{transform:Z,writableObjectMode:Y,readableObjectMode:Q}}){let J=Y||Q;return{stream:LC.fromWeb(Z,{objectMode:J})}},duplex:({value:{transform:Z}})=>({stream:Z}),native(){}},wC={input:{...LB,fileUrl:({value:Z})=>({stream:NB(Z)}),filePath:({value:{file:Z}})=>({stream:NB(Z)}),webStream:({value:Z})=>({stream:F1.fromWeb(Z)}),iterable:({value:Z})=>({stream:F1.from(Z)}),asyncIterable:({value:Z})=>({stream:F1.from(Z)}),string:({value:Z})=>({stream:F1.from(Z)}),uint8Array:({value:Z})=>({stream:F1.from(NC.from(Z))})},output:{...LB,fileUrl:({value:Z})=>({stream:IB(Z)}),filePath:({value:{file:Z,append:Y}})=>({stream:IB(Z,Y?{flags:"a"}:{})}),webStream:({value:Z})=>({stream:IC.fromWeb(Z)}),iterable:V1,asyncIterable:V1,string:V1,uint8Array:V1}}});import{on as AC,once as GB}from"node:events";import{PassThrough as GC,getDefaultHighWaterMark as CC}from"node:stream";import{finished as TB}from"node:stream/promises";function O8(Z){if(!Array.isArray(Z))throw TypeError(`Expected an array, got \`${typeof Z}\`.`);for(let q of Z)v9(q);let Y=Z.some(({readableObjectMode:q})=>q),Q=RC(Z,Y),J=new kB({objectMode:Y,writableHighWaterMark:Q,readableHighWaterMark:Q});for(let q of Z)J.add(q);return J}var RC=(Z,Y)=>{if(Z.length===0)return CC(Y);let Q=Z.filter(({readableObjectMode:J})=>J===Y).map(({readableHighWaterMark:J})=>J);return Math.max(...Q)},kB,TC=async(Z,Y,Q)=>{yY(Z,CB);let J=new AbortController;try{await Promise.race([kC(Z,J),EC(Z,Y,Q,J)])}finally{J.abort(),yY(Z,-CB)}},kC=async(Z,{signal:Y})=>{try{await TB(Z,{signal:Y,cleanup:!0})}catch(Q){throw EB(Z,Q),Q}},EC=async(Z,Y,Q,{signal:J})=>{for await(let[q]of AC(Z,"unpipe",{signal:J}))if(Y.has(q))q.emit(Q)},v9=(Z)=>{if(typeof Z?.pipe!=="function")throw TypeError(`Expected a readable stream, got: \`${typeof Z}\`.`)},PC=async({passThroughStream:Z,stream:Y,streams:Q,ended:J,aborted:q,onFinished:X,unpipeEvent:z})=>{yY(Z,RB);let W=new AbortController;try{await Promise.race([xC(X,Y,W),bC({passThroughStream:Z,stream:Y,streams:Q,ended:J,aborted:q,controller:W}),vC({stream:Y,streams:Q,ended:J,aborted:q,unpipeEvent:z,controller:W})])}finally{W.abort(),yY(Z,-RB)}if(Q.size>0&&Q.size===J.size+q.size)if(J.size===0&&q.size>0)S9(Z);else SC(Z)},xC=async(Z,Y,{signal:Q})=>{try{if(await Z,!Q.aborted)S9(Y)}catch(J){if(!Q.aborted)EB(Y,J)}},bC=async({passThroughStream:Z,stream:Y,streams:Q,ended:J,aborted:q,controller:{signal:X}})=>{try{if(await TB(Y,{signal:X,cleanup:!0,readable:!0,writable:!1}),Q.has(Y))J.add(Y)}catch(z){if(X.aborted||!Q.has(Y))return;if(PB(z))q.add(Y);else xB(Z,z)}},vC=async({stream:Z,streams:Y,ended:Q,aborted:J,unpipeEvent:q,controller:{signal:X}})=>{if(await GB(Z,q,{signal:X}),!Z.readable)return GB(X,"abort",{signal:X});Y.delete(Z),Q.delete(Z),J.delete(Z)},SC=(Z)=>{if(Z.writable)Z.end()},EB=(Z,Y)=>{if(PB(Y))S9(Z);else xB(Z,Y)},PB=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",S9=(Z)=>{if(Z.readable||Z.writable)Z.destroy()},xB=(Z,Y)=>{if(!Z.destroyed)Z.once("error",yC),Z.destroy(Y)},yC=()=>{},yY=(Z,Y)=>{let Q=Z.getMaxListeners();if(Q!==0&&Q!==Number.POSITIVE_INFINITY)Z.setMaxListeners(Q+Y)},CB=2,RB=1;var fY=N(()=>{kB=class kB extends GC{#Y=new Set([]);#Q=new Set([]);#Z=new Set([]);#J;#X=Symbol("unpipe");#q=new WeakMap;add(Z){if(v9(Z),this.#Y.has(Z))return;this.#Y.add(Z),this.#J??=TC(this,this.#Y,this.#X);let Y=PC({passThroughStream:this,stream:Z,streams:this.#Y,ended:this.#Q,aborted:this.#Z,onFinished:this.#J,unpipeEvent:this.#X});this.#q.set(Z,Y),Z.pipe(this,{end:!1})}async remove(Z){if(v9(Z),!this.#Y.has(Z))return!1;let Y=this.#q.get(Z);if(Y===void 0)return!1;return this.#q.delete(Z),Z.unpipe(this),await Y,!0}}});import{finished as bB}from"node:stream/promises";var zZ=(Z,Y)=>{Z.pipe(Y),fC(Z,Y),hC(Z,Y)},fC=async(Z,Y)=>{if(s6(Z)||s6(Y))return;try{await bB(Z,{cleanup:!0,readable:!0,writable:!1})}catch{}y9(Y)},y9=(Z)=>{if(Z.writable)Z.end()},hC=async(Z,Y)=>{if(s6(Z)||s6(Y))return;try{await bB(Y,{cleanup:!0,readable:!1,writable:!0})}catch{}f9(Z)},f9=(Z)=>{if(Z.readable)Z.destroy()};var hY=N(()=>{O4()});var vB=(Z,Y,Q)=>{let J=new Map;for(let[q,{stdioItems:X,direction:z}]of Object.entries(Y)){for(let{stream:W}of X.filter(({type:U})=>u6.has(U)))gC(Z,W,z,q);for(let{stream:W}of X.filter(({type:U})=>!u6.has(U)))pC({subprocess:Z,stream:W,direction:z,fdNumber:q,pipeGroups:J,controller:Q})}for(let[q,X]of J.entries()){let z=X.length===1?X[0]:O8(X);zZ(z,q)}},gC=(Z,Y,Q,J)=>{if(Q==="output")zZ(Z.stdio[J],Y);else zZ(Y,Z.stdio[J]);let q=mC[J];if(q!==void 0)Z[q]=Y;Z.stdio[J]=Y},mC,pC=({subprocess:Z,stream:Y,direction:Q,fdNumber:J,pipeGroups:q,controller:X})=>{if(Y===void 0)return;uC(Y,X);let[z,W]=Q==="output"?[Y,Z.stdio[J]]:[Z.stdio[J],Y],U=q.get(z)??[];q.set(z,[...U,W])},uC=(Z,{signal:Y})=>{if(s6(Z))U8(Z,dC,Y)},dC=2;var SB=N(()=>{fY();O4();s7();N6();hY();mC=["stdin","stdout","stderr"]});var D8;var yB=N(()=>{D8=[];D8.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")D8.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")D8.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT")});class fB{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(g9[h9])return g9[h9];cC(g9,h9,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(Z,Y){this.listeners[Z].push(Y)}removeListener(Z,Y){let Q=this.listeners[Z],J=Q.indexOf(Y);if(J===-1)return;if(J===0&&Q.length===1)Q.length=0;else Q.splice(J,1)}emit(Z,Y,Q){if(this.emitted[Z])return!1;this.emitted[Z]=!0;let J=!1;for(let q of this.listeners[Z])J=q(Y,Q)===!0||J;if(Z==="exit")J=this.emit("afterExit",Y,Q)||J;return J}}class p9{}var gY=(Z)=>!!Z&&typeof Z==="object"&&typeof Z.removeListener==="function"&&typeof Z.emit==="function"&&typeof Z.reallyExit==="function"&&typeof Z.listeners==="function"&&typeof Z.kill==="function"&&typeof Z.pid==="number"&&typeof Z.on==="function",h9,g9,cC,lC=(Z)=>{return{onExit(Y,Q){return Z.onExit(Y,Q)},load(){return Z.load()},unload(){return Z.unload()}}},hB,gB,m9,mB,Tn,kn;var pB=N(()=>{yB();h9=Symbol.for("signal-exit emitter"),g9=globalThis,cC=Object.defineProperty.bind(Object);hB=class hB extends p9{onExit(){return()=>{}}load(){}unload(){}};gB=class gB extends p9{#Y=m9.platform==="win32"?"SIGINT":"SIGHUP";#Q=new fB;#Z;#J;#X;#q={};#z=!1;constructor(Z){super();this.#Z=Z,this.#q={};for(let Y of D8)this.#q[Y]=()=>{let Q=this.#Z.listeners(Y),{count:J}=this.#Q,q=Z;if(typeof q.__signal_exit_emitter__==="object"&&typeof q.__signal_exit_emitter__.count==="number")J+=q.__signal_exit_emitter__.count;if(Q.length===J){this.unload();let X=this.#Q.emit("exit",null,Y),z=Y==="SIGHUP"?this.#Y:Y;if(!X)Z.kill(Z.pid,z)}};this.#X=Z.reallyExit,this.#J=Z.emit}onExit(Z,Y){if(!gY(this.#Z))return()=>{};if(this.#z===!1)this.load();let Q=Y?.alwaysLast?"afterExit":"exit";return this.#Q.on(Q,Z),()=>{if(this.#Q.removeListener(Q,Z),this.#Q.listeners.exit.length===0&&this.#Q.listeners.afterExit.length===0)this.unload()}}load(){if(this.#z)return;this.#z=!0,this.#Q.count+=1;for(let Z of D8)try{let Y=this.#q[Z];if(Y)this.#Z.on(Z,Y)}catch(Y){}this.#Z.emit=(Z,...Y)=>{return this.#W(Z,...Y)},this.#Z.reallyExit=(Z)=>{return this.#H(Z)}}unload(){if(!this.#z)return;this.#z=!1,D8.forEach((Z)=>{let Y=this.#q[Z];if(!Y)throw Error("Listener not defined for signal: "+Z);try{this.#Z.removeListener(Z,Y)}catch(Q){}}),this.#Z.emit=this.#J,this.#Z.reallyExit=this.#X,this.#Q.count-=1}#H(Z){if(!gY(this.#Z))return 0;return this.#Z.exitCode=Z||0,this.#Q.emit("exit",this.#Z.exitCode,null),this.#X.call(this.#Z,this.#Z.exitCode)}#W(Z,...Y){let Q=this.#J;if(Z==="exit"&&gY(this.#Z)){if(typeof Y[0]==="number")this.#Z.exitCode=Y[0];let J=Q.call(this.#Z,Z,...Y);return this.#Q.emit("exit",this.#Z.exitCode,null),J}else return Q.call(this.#Z,Z,...Y)}};m9=globalThis.process,{onExit:mB,load:Tn,unload:kn}=lC(gY(m9)?new gB(m9):new hB)});import{addAbortListener as nC}from"node:events";var uB=(Z,{cleanup:Y,detached:Q},{signal:J})=>{if(!Y||Q)return;let q=mB(()=>{Z.kill()});nC(J,()=>{q()})};var dB=N(()=>{pB()});var lB=({source:Z,sourcePromise:Y,boundOptions:Q,createNested:J},...q)=>{let X=S7(),{destination:z,destinationStream:W,destinationError:U,from:K,unpipeSignal:B}=oC(Q,J,q),{sourceStream:$,sourceError:V}=sC(Z,K),{options:D,fileDescriptors:F}=q4.get(Z);return{sourcePromise:Y,sourceStream:$,sourceOptions:D,sourceError:V,destination:z,destinationStream:W,destinationError:U,unpipeSignal:B,fileDescriptors:F,startTime:X}},oC=(Z,Y,Q)=>{try{let{destination:J,pipeOptions:{from:q,to:X,unpipeSignal:z}={}}=iC(Z,Y,...Q),W=i7(J,X);return{destination:J,destinationStream:W,from:q,unpipeSignal:z}}catch(J){return{destinationError:J}}},iC=(Z,Y,Q,...J)=>{if(Array.isArray(Q))return{destination:Y(cB,Z)(Q,...J),pipeOptions:Z};if(typeof Q==="string"||Q instanceof URL||O2(Q)){if(Object.keys(Z).length>0)throw TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[q,X,z]=A7(Q,...J);return{destination:Y(cB)(q,X,z),pipeOptions:z}}if(q4.has(Q)){if(Object.keys(Z).length>0)throw TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:Q,pipeOptions:J[0]}}throw TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${Q}`)},cB=({options:Z})=>({options:{...Z,stdin:"pipe",piped:!0}}),sC=(Z,Y)=>{try{return{sourceStream:ZZ(Z,Y)}}catch(Q){return{sourceError:Q}}};var nB=N(()=>{M2();y7();m4();l8()});var iB=({sourceStream:Z,sourceError:Y,destinationStream:Q,destinationError:J,fileDescriptors:q,sourceOptions:X,startTime:z})=>{let W=aC({sourceStream:Z,sourceError:Y,destinationStream:Q,destinationError:J});if(W!==void 0)throw u9({error:W,fileDescriptors:q,sourceOptions:X,startTime:z})},aC=({sourceStream:Z,sourceError:Y,destinationStream:Q,destinationError:J})=>{if(Y!==void 0&&J!==void 0)return J;if(J!==void 0)return f9(Z),J;if(Y!==void 0)return y9(Q),Y},u9=({error:Z,fileDescriptors:Y,sourceOptions:Q,startTime:J})=>JZ({error:Z,command:oB,escapedCommand:oB,fileDescriptors:Y,options:Q,startTime:J,isSync:!1}),oB="source.pipe(destination)";var d9=N(()=>{U1();hY()});var sB=async(Z)=>{let[{status:Y,reason:Q,value:J=Q},{status:q,reason:X,value:z=X}]=await Z;if(!z.pipedFrom.includes(J))z.pipedFrom.push(J);if(q==="rejected")throw z;if(Y==="rejected")throw J;return z};import{finished as rC}from"node:stream/promises";var aB=(Z,Y,Q)=>{let J=mY.has(Y)?eC(Z,Y):tC(Z,Y);return U8(Z,YR,Q.signal),U8(Y,QR,Q.signal),ZR(Y),J},tC=(Z,Y)=>{let Q=O8([Z]);return zZ(Q,Y),mY.set(Y,Q),Q},eC=(Z,Y)=>{let Q=mY.get(Y);return Q.add(Z),Q},ZR=async(Z)=>{try{await rC(Z,{cleanup:!0,readable:!1,writable:!0})}catch{}mY.delete(Z)},mY,YR=2,QR=1;var rB=N(()=>{fY();s7();hY();mY=new WeakMap});import{aborted as JR}from"node:util";var tB=(Z,Y)=>Z===void 0?[]:[qR(Z,Y)],qR=async(Z,{sourceStream:Y,mergedStream:Q,fileDescriptors:J,sourceOptions:q,startTime:X})=>{await JR(Z,Y),await Q.remove(Y);let z=Error("Pipe canceled by `unpipeSignal` option.");throw u9({error:z,fileDescriptors:J,sourceOptions:q,startTime:X})};var eB=N(()=>{d9()});var pY=(Z,...Y)=>{if(n0(Y[0]))return pY.bind(void 0,{...Z,boundOptions:{...Z.boundOptions,...Y[0]}});let{destination:Q,...J}=lB(Z,...Y),q=XR({...J,destination:Q});return q.pipe=pY.bind(void 0,{...Z,source:Q,sourcePromise:q,boundOptions:{}}),q},XR=async({sourcePromise:Z,sourceStream:Y,sourceOptions:Q,sourceError:J,destination:q,destinationStream:X,destinationError:z,unpipeSignal:W,fileDescriptors:U,startTime:K})=>{let B=zR(Z,q);iB({sourceStream:Y,sourceError:J,destinationStream:X,destinationError:z,fileDescriptors:U,sourceOptions:Q,startTime:K});let $=new AbortController;try{let V=aB(Y,X,$);return await Promise.race([sB(B),...tB(W,{sourceStream:Y,mergedStream:V,sourceOptions:Q,fileDescriptors:U,startTime:K})])}finally{$.abort()}},zR=(Z,Y)=>Promise.allSettled([Z,Y]);var Z$=N(()=>{nB();d9();rB();eB()});import{on as HR}from"node:events";import{getDefaultHighWaterMark as WR}from"node:stream";var uY=({subprocessStdout:Z,subprocess:Y,binary:Q,shouldEncode:J,encoding:q,preserveNewlines:X})=>{let z=new AbortController;return UR(Y,z),Q$({stream:Z,controller:z,binary:Q,shouldEncode:!Z.readableObjectMode&&J,encoding:q,shouldSplit:!Z.readableObjectMode,preserveNewlines:X})},UR=async(Z,Y)=>{try{await Z}catch{}finally{Y.abort()}},c9=({stream:Z,onStreamEnd:Y,lines:Q,encoding:J,stripFinalNewline:q,allMixed:X})=>{let z=new AbortController;KR(Y,z,Z);let W=Z.readableObjectMode&&!X;return Q$({stream:Z,controller:z,binary:J==="buffer",shouldEncode:!W,encoding:J,shouldSplit:!W&&Q,preserveNewlines:!q})},KR=async(Z,Y,Q)=>{try{await Z}catch{Q.destroy()}finally{Y.abort()}},Q$=({stream:Z,controller:Y,binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z})=>{let W=HR(Z,"data",{signal:Y.signal,highWaterMark:Y$,highWatermark:Y$});return BR({onStdoutChunk:W,controller:Y,binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z})},l9,Y$,BR=async function*({onStdoutChunk:Z,controller:Y,binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z}){let W=$R({binary:Q,shouldEncode:J,encoding:q,shouldSplit:X,preserveNewlines:z});try{for await(let[U]of Z)yield*V8(U,W,0)}catch(U){if(!Y.signal.aborted)throw U}finally{yield*B1(W)}},$R=({binary:Z,shouldEncode:Y,encoding:Q,shouldSplit:J,preserveNewlines:q})=>[EY(Z,Q,!Y),TY(Z,q,!J,{})].filter(Boolean);var dY=N(()=>{L9();kY();l9=WR(!0),Y$=l9});import{setImmediate as FR}from"node:timers/promises";var J$=async({stream:Z,onStreamEnd:Y,fdNumber:Q,encoding:J,buffer:q,maxBuffer:X,lines:z,allMixed:W,stripFinalNewline:U,verboseInfo:K,streamInfo:B})=>{let $=VR({stream:Z,onStreamEnd:Y,fdNumber:Q,encoding:J,allMixed:W,verboseInfo:K,streamInfo:B});if(!q){await Promise.all([OR(Z),$]);return}let V=_9(U,Q),D=c9({stream:Z,onStreamEnd:Y,lines:z,encoding:J,stripFinalNewline:V,allMixed:W}),[F]=await Promise.all([DR({stream:Z,iterable:D,fdNumber:Q,encoding:J,maxBuffer:X,lines:z}),$]);return F},VR=async({stream:Z,onStreamEnd:Y,fdNumber:Q,encoding:J,allMixed:q,verboseInfo:X,streamInfo:{fileDescriptors:z}})=>{if(!vY({stdioItems:z[Q]?.stdioItems,encoding:J,verboseInfo:X,fdNumber:Q}))return;let W=c9({stream:Z,onStreamEnd:Y,lines:!0,encoding:J,stripFinalNewline:!0,allMixed:q});await sK(W,Z,Q,X)},OR=async(Z)=>{if(await FR(),Z.readableFlowing===null)Z.resume()},DR=async({stream:Z,stream:{readableObjectMode:Y},iterable:Q,fdNumber:J,encoding:q,maxBuffer:X,lines:z})=>{try{if(Y||z)return await OY(Q,{maxBuffer:X});if(q==="buffer")return new Uint8Array(await DY(Q,{maxBuffer:X}));return await jY(Q,{maxBuffer:X})}catch(W){return q$(SU({error:W,stream:Z,readableObjectMode:Y,lines:z,encoding:q,fdNumber:J}))}},n9=async(Z)=>{try{return await Z}catch(Y){return q$(Y)}},q$=({bufferedData:Z})=>kz(Z)?new Uint8Array(Z):Z;var o9=N(()=>{_Y();R6();C9();dY();$8();K1()});import{finished as MR}from"node:stream/promises";var O1=async(Z,Y,Q,{isSameDirection:J,stopOnExit:q=!1}={})=>{let X=jR(Z,Q),z=new AbortController;try{await Promise.race([...q?[Q.exitPromise]:[],MR(Z,{cleanup:!0,signal:z.signal})])}catch(W){if(!X.stdinCleanedUp)IR(W,Y,Q,J)}finally{z.abort()}},jR=(Z,{originalStreams:[Y],subprocess:Q})=>{let J={stdinCleanedUp:!1};if(Z===Y)_R(Z,Q,J);return J},_R=(Z,Y,Q)=>{let{_destroy:J}=Z;Z._destroy=(...q)=>{NR(Y,Q),J.call(Z,...q)}},NR=({exitCode:Z,signalCode:Y},Q)=>{if(Z!==null||Y!==null)Q.stdinCleanedUp=!0},IR=(Z,Y,Q,J)=>{if(!LR(Z,Y,Q,J))throw Z},LR=(Z,Y,Q,J=!0)=>{if(Q.propagating)return X$(Z)||cY(Z);return Q.propagating=!0,i9(Q,Y)===J?X$(Z):cY(Z)},i9=({fileDescriptors:Z},Y)=>Y!=="all"&&Z[Y].direction==="input",cY=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",X$=(Z)=>Z?.code==="EPIPE";var lY=()=>{};var z$=({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:X,verboseInfo:z,streamInfo:W})=>Z.stdio.map((U,K)=>s9({stream:U,fdNumber:K,encoding:Y,buffer:Q[K],maxBuffer:J[K],lines:q[K],allMixed:!1,stripFinalNewline:X,verboseInfo:z,streamInfo:W})),s9=async({stream:Z,fdNumber:Y,encoding:Q,buffer:J,maxBuffer:q,lines:X,allMixed:z,stripFinalNewline:W,verboseInfo:U,streamInfo:K})=>{if(!Z)return;let B=O1(Z,Y,K);if(i9(K,Y)){await B;return}let[$]=await Promise.all([J$({stream:Z,onStreamEnd:B,fdNumber:Y,encoding:Q,buffer:J,maxBuffer:q,lines:X,allMixed:z,stripFinalNewline:W,verboseInfo:U,streamInfo:K}),B]);return $};var a9=N(()=>{o9();lY()});var H$=({stdout:Z,stderr:Y},{all:Q})=>Q&&(Z||Y)?O8([Z,Y].filter(Boolean)):void 0,W$=({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:X,verboseInfo:z,streamInfo:W})=>s9({...wR(Z,Q),fdNumber:"all",encoding:Y,maxBuffer:J[1]+J[2],lines:q[1]||q[2],allMixed:AR(Z),stripFinalNewline:X,verboseInfo:z,streamInfo:W}),wR=({stdout:Z,stderr:Y,all:Q},[,J,q])=>{let X=J||q;if(!X)return{stream:Q,buffer:X};if(!J)return{stream:Y,buffer:X};if(!q)return{stream:Z,buffer:X};return{stream:Q,buffer:X}},AR=({all:Z,stdout:Y,stderr:Q})=>Z&&Y&&Q&&Y.readableObjectMode!==Q.readableObjectMode;var r9=N(()=>{fY();a9()});var U$=(Z)=>o8(Z,"ipc"),K$=(Z,Y)=>{let Q=v7(Z);Y4({type:"ipc",verboseMessage:Q,fdNumber:"ipc",verboseInfo:Y})};var B$=N(()=>{i8();f4()});var $$=async({subprocess:Z,buffer:Y,maxBuffer:Q,ipc:J,ipcOutput:q,verboseInfo:X})=>{if(!J)return q;let z=U$(X),W=D4(Y,"ipc"),U=D4(Q,"ipc");for await(let K of P9({anyProcess:Z,channel:Z.channel,isSubprocess:!1,ipc:J,shouldAwait:!1,reference:!0})){if(W)yU(Z,q,U),q.push(K);if(z)K$(K,X)}return q},F$=async(Z,Y)=>{return await Promise.allSettled([Z]),Y};var V$=N(()=>{$8();B$();M4();x9()});import{once as GR}from"node:events";var O$=async({subprocess:Z,options:{encoding:Y,buffer:Q,maxBuffer:J,lines:q,timeoutDuration:X,cancelSignal:z,gracefulCancel:W,forceKillAfterDelay:U,stripFinalNewline:K,ipc:B,ipcInput:$},context:V,verboseInfo:D,fileDescriptors:F,originalStreams:O,onInternalError:j,controller:_})=>{let L=QB(Z,V),A={originalStreams:O,fileDescriptors:F,subprocess:Z,exitPromise:L,propagating:!1},I=z$({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:K,verboseInfo:D,streamInfo:A}),G=W$({subprocess:Z,encoding:Y,buffer:Q,maxBuffer:J,lines:q,stripFinalNewline:K,verboseInfo:D,streamInfo:A}),P=[],T=$$({subprocess:Z,buffer:Q,maxBuffer:J,ipc:B,ipcOutput:P,verboseInfo:D}),S=CR(O,Z,A),y=RR(F,A);try{return await Promise.race([Promise.all([{},qB(L),Promise.all(I),G,T,zU(Z,$),...S,...y]),j,TR(Z,_),...YU(Z,X,V,_),...IW({subprocess:Z,cancelSignal:z,gracefulCancel:W,context:V,controller:_}),...eW({subprocess:Z,cancelSignal:z,gracefulCancel:W,forceKillAfterDelay:U,context:V,controller:_})])}catch(g){return V.terminationReason??="other",Promise.all([{error:g},L,Promise.all(I.map((x)=>n9(x))),n9(G),F$(T,P),Promise.allSettled(S),Promise.allSettled(y)])}},CR=(Z,Y,Q)=>Z.map((J,q)=>J===Y.stdio[q]?void 0:O1(J,q,Q)),RR=(Z,Y)=>Z.flatMap(({stdioItems:Q},J)=>Q.filter(({value:q,stream:X=q})=>r6(X,{checkOpen:!1})&&!s6(X)).map(({type:q,value:X,stream:z=X})=>O1(z,J,Y,{isSameDirection:u6.has(q),stopOnExit:q==="native"}))),TR=async(Z,{signal:Y})=>{let[Q]=await GR(Z,"error",{signal:Y});throw Q};var D$=N(()=>{a2();p2();s2();O4();N6();o9();V$();t2();r9();a9();k9();lY()});var M$=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),D1=(Z,Y,Q)=>{let J=Z[Q];if(!J.has(Y))J.set(Y,[]);let q=J.get(Y),X=J4();return q.push(X),{resolve:X.resolve.bind(X),promises:q}},HZ=async({resolve:Z,promises:Y},Q)=>{Z();let[J]=await Promise.race([Promise.allSettled([!0,Q]),Promise.all([!1,...Y])]);return!J};var nY=()=>{};import{finished as j$}from"node:stream/promises";var t9=async(Z)=>{if(Z===void 0)return;try{await e9(Z)}catch{}},_$=async(Z)=>{if(Z===void 0)return;try{await Z3(Z)}catch{}},e9=async(Z)=>{await j$(Z,{cleanup:!0,readable:!1,writable:!0})},Z3=async(Z)=>{await j$(Z,{cleanup:!0,readable:!0,writable:!1})},oY=async(Z,Y)=>{if(await Z,Y)throw Y},iY=(Z,Y,Q)=>{if(Q&&!cY(Q))Z.destroy(Q);else if(Y)Z.destroy()};var Y3=N(()=>{lY()});import{Readable as kR}from"node:stream";import{callbackify as ER}from"node:util";var N$=({subprocess:Z,concurrentStreams:Y,encoding:Q},{from:J,binary:q=!0,preserveNewlines:X=!0}={})=>{let z=q||T6.has(Q),{subprocessStdout:W,waitReadableDestroy:U}=Q3(Z,J,Y),{readableEncoding:K,readableObjectMode:B,readableHighWaterMark:$}=J3(W,z),{read:V,onStdoutDataDone:D}=q3({subprocessStdout:W,subprocess:Z,binary:z,encoding:Q,preserveNewlines:X}),F=new kR({read:V,destroy:ER(z3.bind(void 0,{subprocessStdout:W,subprocess:Z,waitReadableDestroy:U})),highWaterMark:$,objectMode:B,encoding:K});return X3({subprocessStdout:W,onStdoutDataDone:D,readable:F,subprocess:Z}),F},Q3=(Z,Y,Q)=>{let J=ZZ(Z,Y),q=D1(Q,J,"readableDestroy");return{subprocessStdout:J,waitReadableDestroy:q}},J3=({readableEncoding:Z,readableObjectMode:Y,readableHighWaterMark:Q},J)=>J?{readableEncoding:Z,readableObjectMode:Y,readableHighWaterMark:Q}:{readableEncoding:Z,readableObjectMode:!0,readableHighWaterMark:l9},q3=({subprocessStdout:Z,subprocess:Y,binary:Q,encoding:J,preserveNewlines:q})=>{let X=J4(),z=uY({subprocessStdout:Z,subprocess:Y,binary:Q,shouldEncode:!Q,encoding:J,preserveNewlines:q});return{read(){PR(this,z,X)},onStdoutDataDone:X}},PR=async(Z,Y,Q)=>{try{let{value:J,done:q}=await Y.next();if(q)Q.resolve();else Z.push(J)}catch{}},X3=async({subprocessStdout:Z,onStdoutDataDone:Y,readable:Q,subprocess:J,subprocessStdin:q})=>{try{if(await Z3(Z),await J,await t9(q),await Y,Q.readable)Q.push(null)}catch(X){await t9(q),I$(Q,X)}},z3=async({subprocessStdout:Z,subprocess:Y,waitReadableDestroy:Q},J)=>{if(await HZ(Q,Y))I$(Z,J),await oY(Y,J)},I$=(Z,Y)=>{iY(Z,Z.readable,Y)};var H3=N(()=>{K8();m4();dY();nY();Y3()});import{Writable as xR}from"node:stream";import{callbackify as L$}from"node:util";var w$=({subprocess:Z,concurrentStreams:Y},{to:Q}={})=>{let{subprocessStdin:J,waitWritableFinal:q,waitWritableDestroy:X}=W3(Z,Q,Y),z=new xR({...U3(J,Z,q),destroy:L$(B3.bind(void 0,{subprocessStdin:J,subprocess:Z,waitWritableFinal:q,waitWritableDestroy:X})),highWaterMark:J.writableHighWaterMark,objectMode:J.writableObjectMode});return K3(J,z),z},W3=(Z,Y,Q)=>{let J=i7(Z,Y),q=D1(Q,J,"writableFinal"),X=D1(Q,J,"writableDestroy");return{subprocessStdin:J,waitWritableFinal:q,waitWritableDestroy:X}},U3=(Z,Y,Q)=>({write:bR.bind(void 0,Z),final:L$(vR.bind(void 0,Z,Y,Q))}),bR=(Z,Y,Q,J)=>{if(Z.write(Y,Q))J();else Z.once("drain",J)},vR=async(Z,Y,Q)=>{if(await HZ(Q,Y)){if(Z.writable)Z.end();await Y}},K3=async(Z,Y,Q)=>{try{if(await e9(Z),Y.writable)Y.end()}catch(J){await _$(Q),A$(Y,J)}},B3=async({subprocessStdin:Z,subprocess:Y,waitWritableFinal:Q,waitWritableDestroy:J},q)=>{if(await HZ(Q,Y),await HZ(J,Y))A$(Z,q),await oY(Y,q)},A$=(Z,Y)=>{iY(Z,Z.writable,Y)};var $3=N(()=>{m4();nY();Y3()});import{Duplex as SR}from"node:stream";import{callbackify as yR}from"node:util";var G$=({subprocess:Z,concurrentStreams:Y,encoding:Q},{from:J,to:q,binary:X=!0,preserveNewlines:z=!0}={})=>{let W=X||T6.has(Q),{subprocessStdout:U,waitReadableDestroy:K}=Q3(Z,J,Y),{subprocessStdin:B,waitWritableFinal:$,waitWritableDestroy:V}=W3(Z,q,Y),{readableEncoding:D,readableObjectMode:F,readableHighWaterMark:O}=J3(U,W),{read:j,onStdoutDataDone:_}=q3({subprocessStdout:U,subprocess:Z,binary:W,encoding:Q,preserveNewlines:z}),L=new SR({read:j,...U3(B,Z,$),destroy:yR(fR.bind(void 0,{subprocessStdout:U,subprocessStdin:B,subprocess:Z,waitReadableDestroy:K,waitWritableFinal:$,waitWritableDestroy:V})),readableHighWaterMark:O,writableHighWaterMark:B.writableHighWaterMark,readableObjectMode:F,writableObjectMode:B.writableObjectMode,encoding:D});return X3({subprocessStdout:U,onStdoutDataDone:_,readable:L,subprocess:Z,subprocessStdin:B}),K3(B,L,U),L},fR=async({subprocessStdout:Z,subprocessStdin:Y,subprocess:Q,waitReadableDestroy:J,waitWritableFinal:q,waitWritableDestroy:X},z)=>{await Promise.all([z3({subprocessStdout:Z,subprocess:Q,waitReadableDestroy:J},z),B3({subprocessStdin:Y,subprocess:Q,waitWritableFinal:q,waitWritableDestroy:X},z)])};var C$=N(()=>{K8();H3();$3()});var F3=(Z,Y,{from:Q,binary:J=!1,preserveNewlines:q=!1}={})=>{let X=J||T6.has(Y),z=ZZ(Z,Q),W=uY({subprocessStdout:z,subprocess:Z,binary:X,shouldEncode:!0,encoding:Y,preserveNewlines:q});return hR(W,z,Z)},hR=async function*(Z,Y,Q){try{yield*Z}finally{if(Y.readable)Y.destroy();await Q}};var R$=N(()=>{K8();m4();dY()});var T$=(Z,{encoding:Y})=>{let Q=M$();Z.readable=N$.bind(void 0,{subprocess:Z,concurrentStreams:Q,encoding:Y}),Z.writable=w$.bind(void 0,{subprocess:Z,concurrentStreams:Q}),Z.duplex=G$.bind(void 0,{subprocess:Z,concurrentStreams:Q,encoding:Y}),Z.iterable=F3.bind(void 0,Z,Y),Z[Symbol.asyncIterator]=F3.bind(void 0,Z,Y,{})};var k$=N(()=>{nY();H3();$3();C$();R$()});var E$=(Z,Y)=>{for(let[Q,J]of mR){let q=J.value.bind(Y);Reflect.defineProperty(Z,Q,{...J,value:q})}},gR,mR;var P$=N(()=>{gR=(async()=>{})().constructor.prototype,mR=["then","catch","finally"].map((Z)=>[Z,Reflect.getOwnPropertyDescriptor(gR,Z)])});import{setMaxListeners as pR}from"node:events";import{spawn as uR}from"node:child_process";var x$=(Z,Y,Q,J)=>{let{file:q,commandArguments:X,command:z,escapedCommand:W,startTime:U,verboseInfo:K,options:B,fileDescriptors:$}=dR(Z,Y,Q),{subprocess:V,promise:D}=lR({file:q,commandArguments:X,options:B,startTime:U,verboseInfo:K,command:z,escapedCommand:W,fileDescriptors:$});return V.pipe=pY.bind(void 0,{source:V,sourcePromise:D,boundOptions:{},createNested:J}),E$(V,D),q4.set(V,{options:B,fileDescriptors:$}),V},dR=(Z,Y,Q)=>{let{command:J,escapedCommand:q,startTime:X,verboseInfo:z}=f7(Z,Y,Q),{file:W,commandArguments:U,options:K}=KY(Z,Y,Q),B=cR(K),$=wB(B,z);return{file:W,commandArguments:U,command:J,escapedCommand:q,startTime:X,verboseInfo:z,options:B,fileDescriptors:$}},cR=({timeout:Z,signal:Y,...Q})=>{if(Y!==void 0)throw TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...Q,timeoutDuration:Z}},lR=({file:Z,commandArguments:Y,options:Q,startTime:J,verboseInfo:q,command:X,escapedCommand:z,fileDescriptors:W})=>{let U;try{U=uR(...BY(Z,Y,Q))}catch(F){return jB({error:F,command:X,escapedCommand:z,fileDescriptors:W,options:Q,startTime:J,verboseInfo:q})}let K=new AbortController;pR(Number.POSITIVE_INFINITY,K.signal);let B=[...U.stdio];vB(U,W,K),uB(U,Q,K);let $={},V=J4();U.kill=_W.bind(void 0,{kill:U.kill.bind(U),options:Q,onInternalError:V,context:$,controller:K}),U.all=H$(U,Q),T$(U,Q),OB(U,Q);let D=nR({subprocess:U,options:Q,startTime:J,verboseInfo:q,fileDescriptors:W,originalStreams:B,command:X,escapedCommand:z,context:$,onInternalError:V,controller:K});return{subprocess:U,promise:D}},nR=async({subprocess:Z,options:Y,startTime:Q,verboseInfo:J,fileDescriptors:q,originalStreams:X,command:z,escapedCommand:W,context:U,onInternalError:K,controller:B})=>{let[$,[V,D],F,O,j]=await O$({subprocess:Z,options:Y,context:U,verboseInfo:J,fileDescriptors:q,originalStreams:X,onInternalError:K,controller:B});B.abort(),K.resolve();let _=F.map((I,G)=>N4(I,Y,G)),L=N4(O,Y,"all"),A=oR({errorInfo:$,exitCode:V,signal:D,stdio:_,all:L,ipcOutput:j,context:U,options:Y,command:z,escapedCommand:W,startTime:Q});return qZ(A,J,Y)},oR=({errorInfo:Z,exitCode:Y,signal:Q,stdio:J,all:q,ipcOutput:X,context:z,options:W,command:U,escapedCommand:K,startTime:B})=>("error"in Z)?W1({error:Z.error,command:U,escapedCommand:K,timedOut:z.terminationReason==="timeout",isCanceled:z.terminationReason==="cancel"||z.terminationReason==="gracefulCancel",isGracefullyCanceled:z.terminationReason==="gracefulCancel",isMaxBuffer:Z.error instanceof j4,isForcefullyTerminated:z.isForcefullyTerminated,exitCode:Y,signal:Q,stdio:J,all:q,ipcOutput:X,options:W,startTime:B,isSync:!1}):IY({command:U,escapedCommand:K,stdio:J,all:q,ipcOutput:X,options:W,startTime:B});var b$=N(()=>{_Y();C2();Y9();m4();b9();U1();LY();_B();AB();K1();SB();c7();dB();Z$();r9();D$();k$();P$()});var sY=(Z,Y)=>{let Q=Object.fromEntries(Object.entries(Y).map(([J,q])=>[J,iR(J,Z[J],q)]));return{...Z,...Q}},iR=(Z,Y,Q)=>{if(sR.has(Z)&&n0(Y)&&n0(Q))return{...Y,...Q};return Q},sR;var v$=N(()=>{M4();sR=new Set(["env",...L2])});var d4=(Z,Y,Q,J)=>{let q=(z,W,U)=>d4(z,W,Q,U),X=(...z)=>aR({mapArguments:Z,deepOptions:Q,boundOptions:Y,setBoundExeca:J,createNested:q},...z);if(J!==void 0)J(X,q,Y);return X},aR=({mapArguments:Z,deepOptions:Y={},boundOptions:Q={},setBoundExeca:J,createNested:q},X,...z)=>{if(n0(X))return q(Z,sY(Q,X),J);let{file:W,commandArguments:U,options:K,isSync:B}=rR({mapArguments:Z,firstArgument:X,nextArguments:z,deepOptions:Y,boundOptions:Q});return B?HB(W,U,K):x$(W,U,K,q)},rR=({mapArguments:Z,firstArgument:Y,nextArguments:Q,deepOptions:J,boundOptions:q})=>{let X=Sz(Y)?yz(Y,Q):[Y,...Q],[z,W,U]=A7(...X),K=sY(sY(J,q),U),{file:B=z,commandArguments:$=W,options:V=K,isSync:D=!1}=Z({file:z,commandArguments:W,options:K});return{file:B,commandArguments:$,options:V,isSync:D}};var S$=N(()=>{M2();fz();WB();b$();v$()});var y$=({file:Z,commandArguments:Y})=>h$(Z,Y),f$=({file:Z,commandArguments:Y})=>({...h$(Z,Y),isSync:!0}),h$=(Z,Y)=>{if(Y.length>0)throw TypeError(`The command and its arguments must be passed as a single string: ${Z} ${Y}.`);let[Q,...J]=tR(Z);return{file:Q,commandArguments:J}},tR=(Z)=>{if(typeof Z!=="string")throw TypeError(`The command must be a string: ${String(Z)}.`);let Y=Z.trim();if(Y==="")return[];let Q=[];for(let J of Y.split(eR)){let q=Q.at(-1);if(q&&q.endsWith("\\"))Q[Q.length-1]=`${q.slice(0,-1)} ${J}`;else Q.push(J)}return Q},eR;var g$=N(()=>{eR=/ +/g});var m$=(Z,Y,Q)=>{Z.sync=Y(ZT,Q),Z.s=Z.sync},p$=({options:Z})=>u$(Z),ZT=({options:Z})=>({...u$(Z),isSync:!0}),u$=(Z)=>({options:{...YT(Z),...Z}}),YT=({input:Z,inputFile:Y,stdio:Q})=>Z===void 0&&Y===void 0&&Q===void 0?{stdin:"inherit"}:{},d$;var c$=N(()=>{d$={preferLocal:!0}});var z4,Ns,Is,Ls,ws,As,Gs,Cs,Rs,Ts;var aY=N(()=>{S$();g$();r2();c$();b9();h4();z4=d4(()=>({})),Ns=d4(()=>({isSync:!0})),Is=d4(y$),Ls=d4(f$),ws=d4(JU),As=d4(p$,{},d$,m$),{sendMessage:Gs,getOneMessage:Cs,getEachMessage:Rs,getCancelSignal:Ts}=DB()});function QT(Z,Y){let Q=Z.slice(0,Y).split(/\r\n|\n|\r/g);return[Q.length,Q.pop().length+1]}function JT(Z,Y,Q){let J=Z.split(/\r\n|\n|\r/g),q="",X=(Math.log10(Y+1)|0)+1;for(let z=Y-1;z<=Y+1;z++){let W=J[z-1];if(!W)continue;if(q+=z.toString().padEnd(X," "),q+=": ",q+=W,q+=`
|
|
85
85
|
`,z===Y)q+=" ".repeat(X+Q+2),q+=`^
|
|
86
|
-
`}return q}var $0;var
|
|
86
|
+
`}return q}var $0;var M8=N(()=>{/*!
|
|
87
87
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
88
88
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
89
89
|
*
|
|
@@ -109,16 +109,16 @@ Instead, \`yield\` should either be called with a value, or not be called at all
|
|
|
109
109
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
110
110
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
111
111
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
112
|
-
*/$0=class $0 extends Error{line;column;codeblock;constructor(Z,Y){let[Q,J]=
|
|
112
|
+
*/$0=class $0 extends Error{line;column;codeblock;constructor(Z,Y){let[Q,J]=QT(Y.toml,Y.ptr),q=JT(Y.toml,Q,J);super(`Invalid TOML document: ${Z}
|
|
113
113
|
|
|
114
|
-
${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function
|
|
115
|
-
`,Y);if(Z[J-1]==="\r")J--;return J<=Q?J:-1}function
|
|
114
|
+
${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function qT(Z,Y){let Q=0;while(Z[Y-++Q]==="\\");return--Q&&Q%2}function rY(Z,Y=0,Q=Z.length){let J=Z.indexOf(`
|
|
115
|
+
`,Y);if(Z[J-1]==="\r")J--;return J<=Q?J:-1}function WZ(Z,Y){for(let Q=Y;Q<Z.length;Q++){let J=Z[Q];if(J===`
|
|
116
116
|
`)return Q;if(J==="\r"&&Z[Q+1]===`
|
|
117
|
-
`)return Q+1;if(J<" "&&J!=="\t"||J==="")throw new $0("control characters are not allowed in comments",{toml:Z,ptr:Y})}return Z.length}function
|
|
117
|
+
`)return Q+1;if(J<" "&&J!=="\t"||J==="")throw new $0("control characters are not allowed in comments",{toml:Z,ptr:Y})}return Z.length}function k6(Z,Y,Q,J){let q;while(!0){while((q=Z[Y])===" "||q==="\t"||!Q&&(q===`
|
|
118
118
|
`||q==="\r"&&Z[Y+1]===`
|
|
119
|
-
`))Y++;if(J||q!=="#")break;Y=
|
|
119
|
+
`))Y++;if(J||q!=="#")break;Y=WZ(Z,Y)}return Y}function l$(Z,Y,Q,J,q=!1){if(!J)return Y=rY(Z,Y),Y<0?Z.length:Y;for(let X=Y;X<Z.length;X++){let z=Z[X];if(z==="#")X=rY(Z,X);else if(z===Q)return X+1;else if(z===J||q&&(z===`
|
|
120
120
|
`||z==="\r"&&Z[X+1]===`
|
|
121
|
-
`))return X}throw new $0("cannot find end of structure",{toml:Z,ptr:Y})}function
|
|
121
|
+
`))return X}throw new $0("cannot find end of structure",{toml:Z,ptr:Y})}function tY(Z,Y){let Q=Z[Y],J=Q===Z[Y+1]&&Z[Y+1]===Z[Y+2]?Z.slice(Y,Y+3):Q;Y+=J.length-1;do Y=Z.indexOf(J,++Y);while(Y>-1&&Q!=="'"&&qT(Z,Y));if(Y>-1){if(Y+=J.length,J.length>1){if(Z[Y]===Q)Y++;if(Z[Y]===Q)Y++}}return Y}var M1=N(()=>{M8();/*!
|
|
122
122
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
123
123
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
124
124
|
*
|
|
@@ -144,7 +144,7 @@ ${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function mR(Z,Y){let Q=0
|
|
|
144
144
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
145
145
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
146
146
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
147
|
-
*/});var
|
|
147
|
+
*/});var XT,c4;var V3=N(()=>{/*!
|
|
148
148
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
149
149
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
150
150
|
*
|
|
@@ -170,12 +170,12 @@ ${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function mR(Z,Y){let Q=0
|
|
|
170
170
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
171
171
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
172
172
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
173
|
-
*/
|
|
173
|
+
*/XT=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;c4=class c4 extends Date{#Y=!1;#Q=!1;#Z=null;constructor(Z){let Y=!0,Q=!0,J="Z";if(typeof Z==="string"){let q=Z.match(XT);if(q){if(!q[1])Y=!1,Z=`0000-01-01T${Z}`;if(Q=!!q[2],Q&&Z[10]===" "&&(Z=Z.replace(" ","T")),q[2]&&+q[2]>23)Z="";else if(J=q[3]||null,Z=Z.toUpperCase(),!J&&Q)Z+="Z"}else Z=""}super(Z);if(!isNaN(this.getTime()))this.#Y=Y,this.#Q=Q,this.#Z=J}isDateTime(){return this.#Y&&this.#Q}isLocal(){return!this.#Y||!this.#Q||!this.#Z}isDate(){return this.#Y&&!this.#Q}isTime(){return this.#Q&&!this.#Y}isValid(){return this.#Y||this.#Q}toISOString(){let Z=super.toISOString();if(this.isDate())return Z.slice(0,10);if(this.isTime())return Z.slice(11,23);if(this.#Z===null)return Z.slice(0,-1);if(this.#Z==="Z")return Z;let Y=+this.#Z.slice(1,3)*60+ +this.#Z.slice(4,6);return Y=this.#Z[0]==="-"?Y:-Y,new Date(this.getTime()-Y*60000).toISOString().slice(0,-1)+this.#Z}static wrapAsOffsetDateTime(Z,Y="Z"){let Q=new c4(Z);return Q.#Z=Y,Q}static wrapAsLocalDateTime(Z){let Y=new c4(Z);return Y.#Z=null,Y}static wrapAsLocalDate(Z){let Y=new c4(Z);return Y.#Q=!1,Y.#Z=null,Y}static wrapAsLocalTime(Z){let Y=new c4(Z);return Y.#Y=!1,Y.#Z=null,Y}}});function eY(Z,Y=0,Q=Z.length){let J=Z[Y]==="'",q=Z[Y++]===Z[Y]&&Z[Y]===Z[Y+1];if(q){if(Q-=2,Z[Y+=2]==="\r")Y++;if(Z[Y]===`
|
|
174
174
|
`)Y++}let X=0,z,W="",U=Y;while(Y<Q-1){let K=Z[Y++];if(K===`
|
|
175
175
|
`||K==="\r"&&Z[Y]===`
|
|
176
|
-
`){if(!q)throw new $0("newlines are not allowed in strings",{toml:Z,ptr:Y-1})}else if(K<" "&&K!=="\t"||K==="")throw new $0("control characters are not allowed in strings",{toml:Z,ptr:Y-1});if(z){if(z=!1,K==="x"||K==="u"||K==="U"){let B=Z.slice(Y,Y+=K==="x"?2:K==="u"?4:8);if(!
|
|
177
|
-
`||K===" "||K==="\t"||K==="\r")){if(Y=
|
|
178
|
-
`&&Z[Y]!=="\r")throw new $0("invalid escape: only line-ending whitespace may be escaped",{toml:Z,ptr:X});Y=
|
|
176
|
+
`){if(!q)throw new $0("newlines are not allowed in strings",{toml:Z,ptr:Y-1})}else if(K<" "&&K!=="\t"||K==="")throw new $0("control characters are not allowed in strings",{toml:Z,ptr:Y-1});if(z){if(z=!1,K==="x"||K==="u"||K==="U"){let B=Z.slice(Y,Y+=K==="x"?2:K==="u"?4:8);if(!UT.test(B))throw new $0("invalid unicode escape",{toml:Z,ptr:X});try{W+=String.fromCodePoint(parseInt(B,16))}catch{throw new $0("invalid unicode escape",{toml:Z,ptr:X})}}else if(q&&(K===`
|
|
177
|
+
`||K===" "||K==="\t"||K==="\r")){if(Y=k6(Z,Y-1,!0),Z[Y]!==`
|
|
178
|
+
`&&Z[Y]!=="\r")throw new $0("invalid escape: only line-ending whitespace may be escaped",{toml:Z,ptr:X});Y=k6(Z,Y)}else if(K in n$)W+=n$[K];else throw new $0("unrecognized escape sequence",{toml:Z,ptr:X});U=Y}else if(!J&&K==="\\")X=Y-1,z=!0,W+=Z.slice(U,X)}return W+Z.slice(U,Q-1)}function o$(Z,Y,Q,J){if(Z==="true")return!0;if(Z==="false")return!1;if(Z==="-inf")return-1/0;if(Z==="inf"||Z==="+inf")return 1/0;if(Z==="nan"||Z==="+nan"||Z==="-nan")return NaN;if(Z==="-0")return J?0n:0;let q=zT.test(Z);if(q||HT.test(Z)){if(WT.test(Z))throw new $0("leading zeroes are not allowed",{toml:Y,ptr:Q});Z=Z.replace(/_/g,"");let z=+Z;if(isNaN(z))throw new $0("invalid number",{toml:Y,ptr:Q});if(q){if((q=!Number.isSafeInteger(z))&&!J)throw new $0("integer value cannot be represented losslessly",{toml:Y,ptr:Q});if(q||J===!0)z=BigInt(Z)}return z}let X=new c4(Z);if(!X.isValid())throw new $0("invalid value",{toml:Y,ptr:Q});return X}var zT,HT,WT,UT,n$;var O3=N(()=>{M1();V3();M8();/*!
|
|
179
179
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
180
180
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
181
181
|
*
|
|
@@ -201,9 +201,9 @@ ${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function mR(Z,Y){let Q=0
|
|
|
201
201
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
202
202
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
203
203
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
204
|
-
*/
|
|
205
|
-
`,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"}});function
|
|
206
|
-
`&&Z[z]!=="\r")throw new $0("unexpected character encountered",{toml:Z,ptr:z});z+=+(Z[z]===",")}return[U,z]}z=
|
|
204
|
+
*/zT=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,HT=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,WT=/^[+-]?0[0-9_]/,UT=/^[0-9a-f]{2,8}$/i,n$={b:"\b",t:"\t",n:`
|
|
205
|
+
`,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"}});function KT(Z,Y,Q){let J=Z.slice(Y,Q),q=J.indexOf("#");if(q>-1)WZ(Z,q),J=J.slice(0,q);return[J.trimEnd(),q]}function j1(Z,Y,Q,J,q){if(J===0)throw new $0("document contains excessively nested structures. aborting.",{toml:Z,ptr:Y});let X=Z[Y];if(X==="["||X==="{"){let[U,K]=X==="["?s$(Z,Y,J,q):i$(Z,Y,J,q);if(Q){if(K=k6(Z,K),Z[K]===",")K++;else if(Z[K]!==Q)throw new $0("expected comma or end of structure",{toml:Z,ptr:K})}return[U,K]}let z;if(X==='"'||X==="'"){z=tY(Z,Y);let U=eY(Z,Y,z);if(Q){if(z=k6(Z,z),Z[z]&&Z[z]!==","&&Z[z]!==Q&&Z[z]!==`
|
|
206
|
+
`&&Z[z]!=="\r")throw new $0("unexpected character encountered",{toml:Z,ptr:z});z+=+(Z[z]===",")}return[U,z]}z=l$(Z,Y,",",Q);let W=KT(Z,Y,z-+(Z[z-1]===","));if(!W[0])throw new $0("incomplete key-value declaration: no value specified",{toml:Z,ptr:Y});if(Q&&W[1]>-1)z=k6(Z,Y+W[1]),z+=+(Z[z]===",");return[o$(W[0],Z,Y,q),z]}var D3=N(()=>{O3();M3();M1();M8();/*!
|
|
207
207
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
208
208
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
209
209
|
*
|
|
@@ -229,9 +229,9 @@ ${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function mR(Z,Y){let Q=0
|
|
|
229
229
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
230
230
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
231
231
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
232
|
-
*/});function
|
|
233
|
-
`&&z!=="\r"){let W,U=q,K=!1,[B,$]=
|
|
234
|
-
`&&X!=="\r"){let z=
|
|
232
|
+
*/});function Z5(Z,Y,Q="="){let J=Y-1,q=[],X=Z.indexOf(Q,Y);if(X<0)throw new $0("incomplete key-value: cannot find end of key",{toml:Z,ptr:Y});do{let z=Z[Y=++J];if(z!==" "&&z!=="\t")if(z==='"'||z==="'"){if(z===Z[Y+1]&&z===Z[Y+2])throw new $0("multiline strings are not allowed in keys",{toml:Z,ptr:Y});let W=tY(Z,Y);if(W<0)throw new $0("unfinished string encountered",{toml:Z,ptr:Y});J=Z.indexOf(".",W);let U=Z.slice(W,J<0||J>X?X:J),K=rY(U);if(K>-1)throw new $0("newlines are not allowed in keys",{toml:Z,ptr:Y+J+K});if(U.trimStart())throw new $0("found extra tokens after the string part",{toml:Z,ptr:W});if(X<W){if(X=Z.indexOf(Q,W),X<0)throw new $0("incomplete key-value: cannot find end of key",{toml:Z,ptr:Y})}q.push(eY(Z,Y,W))}else{J=Z.indexOf(".",Y);let W=Z.slice(Y,J<0||J>X?X:J);if(!BT.test(W))throw new $0("only letter, numbers, dashes and underscores are allowed in keys",{toml:Z,ptr:Y});q.push(W.trimEnd())}}while(J+1&&J<X);return[q,k6(Z,X+1,!0,!0)]}function i$(Z,Y,Q,J){let q={},X=new Set,z;Y++;while((z=Z[Y++])!=="}"&&z)if(z===",")throw new $0("expected value, found comma",{toml:Z,ptr:Y-1});else if(z==="#")Y=WZ(Z,Y);else if(z!==" "&&z!=="\t"&&z!==`
|
|
233
|
+
`&&z!=="\r"){let W,U=q,K=!1,[B,$]=Z5(Z,Y-1);for(let F=0;F<B.length;F++){if(F)U=K?U[W]:U[W]={};if(W=B[F],(K=Object.hasOwn(U,W))&&(typeof U[W]!=="object"||X.has(U[W])))throw new $0("trying to redefine an already defined value",{toml:Z,ptr:Y});if(!K&&W==="__proto__")Object.defineProperty(U,W,{enumerable:!0,configurable:!0,writable:!0})}if(K)throw new $0("trying to redefine an already defined value",{toml:Z,ptr:Y});let[V,D]=j1(Z,$,"}",Q-1,J);X.add(V),U[W]=V,Y=D}if(!z)throw new $0("unfinished table encountered",{toml:Z,ptr:Y});return[q,Y]}function s$(Z,Y,Q,J){let q=[],X;Y++;while((X=Z[Y++])!=="]"&&X)if(X===",")throw new $0("expected value, found comma",{toml:Z,ptr:Y-1});else if(X==="#")Y=WZ(Z,Y);else if(X!==" "&&X!=="\t"&&X!==`
|
|
234
|
+
`&&X!=="\r"){let z=j1(Z,Y-1,"]",Q-1,J);q.push(z[0]),Y=z[1]}if(!X)throw new $0("unfinished array encountered",{toml:Z,ptr:Y});return[q,Y]}var BT;var M3=N(()=>{O3();D3();M1();M8();/*!
|
|
235
235
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
236
236
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
237
237
|
*
|
|
@@ -257,8 +257,8 @@ ${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function mR(Z,Y){let Q=0
|
|
|
257
257
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
258
258
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
259
259
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
260
|
-
*/
|
|
261
|
-
`&&Z[W]!=="\r")throw new $0("each key-value declaration must be followed by an end-of-line",{toml:Z,ptr:W});W=
|
|
260
|
+
*/BT=/^[a-zA-Z0-9-_]+[ \t]*$/});function a$(Z,Y,Q,J){let q=Y,X=Q,z,W=!1,U;for(let K=0;K<Z.length;K++){if(K){if(q=W?q[z]:q[z]={},X=(U=X[z]).c,J===0&&(U.t===1||U.t===2))return null;if(U.t===2){let B=q.length-1;q=q[B],X=X[B].c}}if(z=Z[K],(W=Object.hasOwn(q,z))&&X[z]?.t===0&&X[z]?.d)return null;if(!W){if(z==="__proto__")Object.defineProperty(q,z,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(X,z,{enumerable:!0,configurable:!0,writable:!0});X[z]={t:K<Z.length-1&&J===2?3:J,d:!1,i:0,c:{}}}}if(U=X[z],U.t!==J&&!(J===1&&U.t===3))return null;if(J===2){if(!U.d)U.d=!0,q[z]=[];q[z].push(q={}),U.c[U.i++]=U={t:1,d:!1,i:0,c:{}}}if(U.d)return null;if(U.d=!0,J===1)q=W?q[z]:q[z]={};else if(J===0&&W)return null;return[z,q,U.c]}function j3(Z,{maxDepth:Y=1000,integersAsBigInt:Q}={}){let J={},q={},X=J,z=q;for(let W=k6(Z,0);W<Z.length;){if(Z[W]==="["){let U=Z[++W]==="[",K=Z5(Z,W+=+U,"]");if(U){if(Z[K[1]-1]!=="]")throw new $0("expected end of table declaration",{toml:Z,ptr:K[1]-1});K[1]++}let B=a$(K[0],J,q,U?2:1);if(!B)throw new $0("trying to redefine an already defined table or value",{toml:Z,ptr:W});z=B[2],X=B[1],W=K[1]}else{let U=Z5(Z,W),K=a$(U[0],X,z,0);if(!K)throw new $0("trying to redefine an already defined table or value",{toml:Z,ptr:W});let B=j1(Z,U[1],void 0,Y,Q);K[1][K[0]]=B[0],W=B[1]}if(W=k6(Z,W,!0),Z[W]&&Z[W]!==`
|
|
261
|
+
`&&Z[W]!=="\r")throw new $0("each key-value declaration must be followed by an end-of-line",{toml:Z,ptr:W});W=k6(Z,W)}return J}var r$=N(()=>{M3();D3();M1();M8();/*!
|
|
262
262
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
263
263
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
264
264
|
*
|
|
@@ -284,16 +284,16 @@ ${q}`,Y);this.line=Q,this.column=J,this.codeblock=q}}});function mR(Z,Y){let Q=0
|
|
|
284
284
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
285
285
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
286
286
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
287
|
-
*/});function
|
|
287
|
+
*/});function _1(Z){let Y=typeof Z;if(Y==="object"){if(Array.isArray(Z))return"array";if(Z instanceof Date)return"date"}return Y}function $T(Z){for(let Y=0;Y<Z.length;Y++)if(_1(Z[Y])!=="object")return!1;return Z.length!=0}function _3(Z){return JSON.stringify(Z).replace(/\x7f/g,"\\u007f")}function N3(Z,Y,Q,J){if(Q===0)throw Error("Could not stringify the object: maximum object depth exceeded");if(Y==="number"){if(isNaN(Z))return"nan";if(Z===1/0)return"inf";if(Z===-1/0)return"-inf";if(J&&Number.isInteger(Z))return Z.toFixed(1);return Z.toString()}if(Y==="bigint"||Y==="boolean")return Z.toString();if(Y==="string")return _3(Z);if(Y==="date"){if(isNaN(Z.getTime()))throw TypeError("cannot serialize invalid date");return Z.toISOString()}if(Y==="object")return FT(Z,Q,J);if(Y==="array")return VT(Z,Q,J)}function FT(Z,Y,Q){let J=Object.keys(Z);if(J.length===0)return"{}";let q="{ ";for(let X=0;X<J.length;X++){let z=J[X];if(X)q+=", ";q+=t$.test(z)?z:_3(z),q+=" = ",q+=N3(Z[z],_1(Z[z]),Y-1,Q)}return q+" }"}function VT(Z,Y,Q){if(Z.length===0)return"[]";let J="[ ";for(let q=0;q<Z.length;q++){if(q)J+=", ";if(Z[q]===null||Z[q]===void 0)throw TypeError("arrays cannot contain null or undefined values");J+=N3(Z[q],_1(Z[q]),Y-1,Q)}return J+" ]"}function OT(Z,Y,Q,J){if(Q===0)throw Error("Could not stringify the object: maximum object depth exceeded");let q="";for(let X=0;X<Z.length;X++)q+=`${q&&`
|
|
288
288
|
`}[[${Y}]]
|
|
289
|
-
`,q+=
|
|
290
|
-
`)+
|
|
291
|
-
`)+
|
|
289
|
+
`,q+=I3(0,Z[X],Y,Q,J);return q}function I3(Z,Y,Q,J,q){if(J===0)throw Error("Could not stringify the object: maximum object depth exceeded");let X="",z="",W=Object.keys(Y);for(let U=0;U<W.length;U++){let K=W[U];if(Y[K]!==null&&Y[K]!==void 0){let B=_1(Y[K]);if(B==="symbol"||B==="function")throw TypeError(`cannot serialize values of type '${B}'`);let $=t$.test(K)?K:_3(K);if(B==="array"&&$T(Y[K]))z+=(z&&`
|
|
290
|
+
`)+OT(Y[K],Q?`${Q}.${$}`:$,J-1,q);else if(B==="object"){let V=Q?`${Q}.${$}`:$;z+=(z&&`
|
|
291
|
+
`)+I3(V,Y[K],V,J-1,q)}else X+=$,X+=" = ",X+=N3(Y[K],B,J,q),X+=`
|
|
292
292
|
`}}if(Z&&(X||!z))X=X?`[${Z}]
|
|
293
293
|
${X}`:`[${Z}]`;return X&&z?`${X}
|
|
294
|
-
${z}`:X||z}function
|
|
294
|
+
${z}`:X||z}function L3(Z,{maxDepth:Y=1000,numbersAsFloat:Q=!1}={}){if(_1(Z)!=="object")throw TypeError("stringify can only be called with an object");let J=I3(0,Z,"",Y,Q);if(J[J.length-1]!==`
|
|
295
295
|
`)return J+`
|
|
296
|
-
`;return J}var
|
|
296
|
+
`;return J}var t$;var e$=N(()=>{/*!
|
|
297
297
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
298
298
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
299
299
|
*
|
|
@@ -319,7 +319,7 @@ ${z}`:X||z}function OJ(Z,{maxDepth:Y=1000,numbersAsFloat:Q=!1}={}){if(M1(Z)!=="o
|
|
|
319
319
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
320
320
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
321
321
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
322
|
-
*/
|
|
322
|
+
*/t$=/^[a-z0-9-_]+$/i});var ZF=N(()=>{r$();e$();V3();M8();/*!
|
|
323
323
|
* Copyright (c) Squirrel Chat et al., All rights reserved.
|
|
324
324
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
325
325
|
*
|
|
@@ -345,64 +345,64 @@ ${z}`:X||z}function OJ(Z,{maxDepth:Y=1000,numbersAsFloat:Q=!1}={}){if(M1(Z)!=="o
|
|
|
345
345
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
346
346
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
347
347
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
348
|
-
*/});function tY(Z){return WZ(Z)&&globalThis.Symbol.asyncIterator in Z}function eY(Z){return WZ(Z)&&globalThis.Symbol.iterator in Z}function Z5(Z){return Z instanceof globalThis.Promise}function zZ(Z){return Z instanceof Date&&globalThis.Number.isFinite(Z.getTime())}function HZ(Z){return Z instanceof globalThis.Uint8Array}function WZ(Z){return Z!==null&&typeof Z==="object"}function X8(Z){return globalThis.Array.isArray(Z)&&!globalThis.ArrayBuffer.isView(Z)}function d8(Z){return Z===void 0}function UZ(Z){return Z===null}function KZ(Z){return typeof Z==="boolean"}function u6(Z){return typeof Z==="number"}function Y5(Z){return globalThis.Number.isInteger(Z)}function BZ(Z){return typeof Z==="bigint"}function k6(Z){return typeof Z==="string"}function Q5(Z){return typeof Z==="function"}function $Z(Z){return typeof Z==="symbol"}var j1=()=>{};var V6;var DJ=j(()=>{j1();(function(Z){Z.InstanceMode="default",Z.ExactOptionalPropertyTypes=!1,Z.AllowArrayObject=!1,Z.AllowNaN=!1,Z.AllowNullVoid=!1;function Y(z,W){return Z.ExactOptionalPropertyTypes?W in z:z[W]!==void 0}Z.IsExactOptionalProperty=Y;function Q(z){let W=WZ(z);return Z.AllowArrayObject?W:W&&!X8(z)}Z.IsObjectLike=Q;function J(z){return Q(z)&&!(z instanceof Date)&&!(z instanceof Uint8Array)}Z.IsRecordLike=J;function q(z){return Z.AllowNaN?u6(z):Number.isFinite(z)}Z.IsNumberLike=q;function X(z){let W=d8(z);return Z.AllowNullVoid?W||z===null:W}Z.IsVoidLike=X})(V6||(V6={}))});function J5(Z){return Array.isArray(Z)}function q5(Z){return Z instanceof globalThis.Date}function c8(Z){return typeof Z==="object"&&Z!==null}function X5(Z){return Z instanceof globalThis.RegExp}function c$(Z){return typeof Z==="string"}function z5(Z){return Z instanceof globalThis.Uint8Array}function l$(Z){return Z===void 0}function tR(Z){return globalThis.Object.freeze(Z).map((Y)=>_1(Y))}function eR(Z){return Z}function ZT(Z){return Z}function YT(Z){return Z}function QT(Z){let Y={};for(let Q of Object.getOwnPropertyNames(Z))Y[Q]=_1(Z[Q]);for(let Q of Object.getOwnPropertySymbols(Z))Y[Q]=_1(Z[Q]);return globalThis.Object.freeze(Y)}function _1(Z){return J5(Z)?tR(Z):q5(Z)?eR(Z):z5(Z)?ZT(Z):X5(Z)?YT(Z):c8(Z)?QT(Z):Z}var n$=()=>{};function JT(Z){return Z.map((Y)=>H5(Y))}function qT(Z){return new Date(Z.getTime())}function XT(Z){return new Uint8Array(Z)}function zT(Z){return new RegExp(Z.source,Z.flags)}function HT(Z){let Y={};for(let Q of Object.getOwnPropertyNames(Z))Y[Q]=H5(Z[Q]);for(let Q of Object.getOwnPropertySymbols(Z))Y[Q]=H5(Z[Q]);return Y}function H5(Z){return J5(Z)?JT(Z):q5(Z)?qT(Z):z5(Z)?XT(Z):X5(Z)?zT(Z):c8(Z)?HT(Z):Z}function o$(Z){return H5(Z)}var i$=()=>{};function L0(Z,Y){let Q=Y!==void 0?{...Y,...Z}:Z;switch(V6.InstanceMode){case"freeze":return _1(Q);case"clone":return o$(Q);default:return Q}}var B6=j(()=>{DJ();n$();i$()});var N1,jJ,q0;var s$=j(()=>{N1=Symbol.for("TypeBox.Optional"),jJ=Symbol.for("TypeBox.Hint"),q0=Symbol.for("TypeBox.Kind")});var h0=j(()=>{s$()});function a$(Z,Y){return L0({[q0]:"Array",type:"array",items:Z},Y)}var r$=j(()=>{B6();h0()});var t$=j(()=>{r$()});var e$=j(()=>{B6()});function ZF(Z){return L0({[q0]:"Boolean",type:"boolean"},Z)}var YF=j(()=>{h0();e$()});var QF=j(()=>{YF()});function JF(Z){return L0({[q0]:"Integer",type:"integer"},Z)}var qF=j(()=>{B6();h0()});var XF=j(()=>{qF()});function zF(Z,Y){return L0({[q0]:"Literal",const:Z,type:typeof Z},Y)}var HF=j(()=>{B6();h0()});var WF=j(()=>{HF()});function UF(Z){return L0({[q0]:"Null",type:"null"},Z)}var KF=j(()=>{B6();h0()});var BF=j(()=>{KF()});function $F(Z){return L0({[q0]:"Number",type:"number"},Z)}var FF=j(()=>{B6();h0()});var VF=j(()=>{FF()});function OF(Z){return c8(Z)&&Z[N1]==="Optional"}function _J(Z){return j0(Z,"Any")}function WT(Z){return j0(Z,"Argument")}function NJ(Z){return j0(Z,"Array")}function UT(Z){return j0(Z,"AsyncIterator")}function KT(Z){return j0(Z,"BigInt")}function IJ(Z){return j0(Z,"Boolean")}function BT(Z){return j0(Z,"Computed")}function $T(Z){return j0(Z,"Constructor")}function FT(Z){return j0(Z,"Date")}function VT(Z){return j0(Z,"Function")}function I1(Z){return j0(Z,"Integer")}function LJ(Z){return j0(Z,"Intersect")}function OT(Z){return j0(Z,"Iterator")}function j0(Z,Y){return c8(Z)&&q0 in Z&&Z[q0]===Y}function L1(Z){return j0(Z,"Literal")}function DT(Z){return j0(Z,"MappedKey")}function wJ(Z){return j0(Z,"MappedResult")}function AJ(Z){return j0(Z,"Never")}function MT(Z){return j0(Z,"Not")}function jT(Z){return j0(Z,"Null")}function w1(Z){return j0(Z,"Number")}function GJ(Z){return j0(Z,"Object")}function _T(Z){return j0(Z,"Promise")}function CJ(Z){return j0(Z,"Record")}function NT(Z){return j0(Z,"Ref")}function RJ(Z){return j0(Z,"RegExp")}function TJ(Z){return j0(Z,"String")}function IT(Z){return j0(Z,"Symbol")}function A1(Z){return j0(Z,"TemplateLiteral")}function LT(Z){return j0(Z,"This")}function kJ(Z){return j0(Z,"Tuple")}function wT(Z){return j0(Z,"Undefined")}function O4(Z){return j0(Z,"Union")}function AT(Z){return j0(Z,"Uint8Array")}function GT(Z){return j0(Z,"Unknown")}function CT(Z){return j0(Z,"Unsafe")}function RT(Z){return j0(Z,"Void")}function TT(Z){return c8(Z)&&q0 in Z&&c$(Z[q0])}function DF(Z){return _J(Z)||WT(Z)||NJ(Z)||IJ(Z)||KT(Z)||UT(Z)||BT(Z)||$T(Z)||FT(Z)||VT(Z)||I1(Z)||LJ(Z)||OT(Z)||L1(Z)||DT(Z)||wJ(Z)||AJ(Z)||MT(Z)||jT(Z)||w1(Z)||GJ(Z)||_T(Z)||CJ(Z)||NT(Z)||RJ(Z)||TJ(Z)||IT(Z)||A1(Z)||LT(Z)||kJ(Z)||wT(Z)||O4(Z)||AT(Z)||GT(Z)||CT(Z)||RT(Z)||TT(Z)}var D4=j(()=>{h0()});function kT(Z){return globalThis.Object.keys(Z).filter((Y)=>!OF(Z[Y]))}function ET(Z,Y){let Q=kT(Z),J=Q.length>0?{[q0]:"Object",type:"object",required:Q,properties:Z}:{[q0]:"Object",type:"object",properties:Z};return L0(J,Y)}var G1;var MF=j(()=>{B6();h0();D4();G1=ET});var EJ=j(()=>{MF()});var jF=()=>{};function _F(Z){return L0({[q0]:"MappedResult",properties:Z})}var NF=j(()=>{B6();h0()});function xT(Z,Y){let{[Y]:Q,...J}=Z;return J}function IF(Z,Y){return Y.reduce((Q,J)=>xT(Q,J),Z)}var LF=()=>{};var Q6;var wF=j(()=>{Q6=class Q6 extends Error{constructor(Z){super(Z)}}});var N8=j(()=>{wF()});function l8(Z){return L0({[q0]:"Never",not:{}},Z)}var AF=j(()=>{B6();h0()});var C1=j(()=>{AF()});function GF(Z,Y){return L0({[q0]:"Union",anyOf:Z},Y)}var CF=j(()=>{B6();h0()});var RF=()=>{};var TF=()=>{};function W5(Z,Y){return Z.length===0?l8(Y):Z.length===1?L0(Z[0],Y):GF(Z,Y)}var kF=j(()=>{C1();B6();CF()});var xJ=j(()=>{RF();TF();kF()});function PT(Z){return Z.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function bJ(Z,Y,Q){return Z[Y]===Q&&Z.charCodeAt(Y-1)!==92}function I8(Z,Y){return bJ(Z,Y,"(")}function R1(Z,Y){return bJ(Z,Y,")")}function EF(Z,Y){return bJ(Z,Y,"|")}function bT(Z){if(!(I8(Z,0)&&R1(Z,Z.length-1)))return!1;let Y=0;for(let Q=0;Q<Z.length;Q++){if(I8(Z,Q))Y+=1;if(R1(Z,Q))Y-=1;if(Y===0&&Q!==Z.length-1)return!1}return!0}function vT(Z){return Z.slice(1,Z.length-1)}function ST(Z){let Y=0;for(let Q=0;Q<Z.length;Q++){if(I8(Z,Q))Y+=1;if(R1(Z,Q))Y-=1;if(EF(Z,Q)&&Y===0)return!0}return!1}function yT(Z){for(let Y=0;Y<Z.length;Y++)if(I8(Z,Y))return!0;return!1}function fT(Z){let[Y,Q]=[0,0],J=[];for(let X=0;X<Z.length;X++){if(I8(Z,X))Y+=1;if(R1(Z,X))Y-=1;if(EF(Z,X)&&Y===0){let z=Z.slice(Q,X);if(z.length>0)J.push(FZ(z));Q=X+1}}let q=Z.slice(Q);if(q.length>0)J.push(FZ(q));if(J.length===0)return{type:"const",const:""};if(J.length===1)return J[0];return{type:"or",expr:J}}function hT(Z){function Y(q,X){if(!I8(q,X))throw new PJ("TemplateLiteralParser: Index must point to open parens");let z=0;for(let W=X;W<q.length;W++){if(I8(q,W))z+=1;if(R1(q,W))z-=1;if(z===0)return[X,W]}throw new PJ("TemplateLiteralParser: Unclosed group parens in expression")}function Q(q,X){for(let z=X;z<q.length;z++)if(I8(q,z))return[X,z];return[X,q.length]}let J=[];for(let q=0;q<Z.length;q++)if(I8(Z,q)){let[X,z]=Y(Z,q),W=Z.slice(X,z+1);J.push(FZ(W)),q=z}else{let[X,z]=Q(Z,q),W=Z.slice(X,z);if(W.length>0)J.push(FZ(W));q=z-1}return J.length===0?{type:"const",const:""}:J.length===1?J[0]:{type:"and",expr:J}}function FZ(Z){return bT(Z)?FZ(vT(Z)):ST(Z)?fT(Z):yT(Z)?hT(Z):{type:"const",const:PT(Z)}}function U5(Z){return FZ(Z.slice(1,Z.length-1))}var PJ;var K5=j(()=>{N8();PJ=class PJ extends Q6{}});function gT(Z){return Z.type==="or"&&Z.expr.length===2&&Z.expr[0].type==="const"&&Z.expr[0].const==="0"&&Z.expr[1].type==="const"&&Z.expr[1].const==="[1-9][0-9]*"}function mT(Z){return Z.type==="or"&&Z.expr.length===2&&Z.expr[0].type==="const"&&Z.expr[0].const==="true"&&Z.expr[1].type==="const"&&Z.expr[1].const==="false"}function pT(Z){return Z.type==="const"&&Z.const===".*"}function T1(Z){return gT(Z)||pT(Z)?!1:mT(Z)?!0:Z.type==="and"?Z.expr.every((Y)=>T1(Y)):Z.type==="or"?Z.expr.every((Y)=>T1(Y)):Z.type==="const"?!0:(()=>{throw new xF("Unknown expression type")})()}function PF(Z){let Y=U5(Z.pattern);return T1(Y)}var xF;var vJ=j(()=>{K5();N8();xF=class xF extends Q6{}});function*vF(Z){if(Z.length===1)return yield*Z[0];for(let Y of Z[0])for(let Q of vF(Z.slice(1)))yield`${Y}${Q}`}function*uT(Z){return yield*vF(Z.expr.map((Y)=>[...SJ(Y)]))}function*dT(Z){for(let Y of Z.expr)yield*SJ(Y)}function*cT(Z){return yield Z.const}function*SJ(Z){return Z.type==="and"?yield*uT(Z):Z.type==="or"?yield*dT(Z):Z.type==="const"?yield*cT(Z):(()=>{throw new bF("Unknown expression")})()}function SF(Z){let Y=U5(Z.pattern);return T1(Y)?[...SJ(Y)]:[]}var bF;var yF=j(()=>{vJ();K5();N8();bF=class bF extends Q6{}});function fF(Z){return L0({[q0]:"String",type:"string"},Z)}var hF=j(()=>{B6();h0()});var gF=j(()=>{hF()});var mF=()=>{};var yJ="^(0|[1-9][0-9]*)$",fJ="^(.*)$",pF="^(?!.*)$";var uF=()=>{};var dF=()=>{};var cF=()=>{};var lF=()=>{};var hJ=j(()=>{vJ();yF();mF();K5();dF();cF();lF()});function lT(Z){return SF(Z).map((Q)=>Q.toString())}function nT(Z){let Y=[];for(let Q of Z)Y.push(...B5(Q));return Y}function oT(Z){return[Z.toString()]}function B5(Z){return[...new Set(A1(Z)?lT(Z):O4(Z)?nT(Z.anyOf):L1(Z)?oT(Z.const):w1(Z)?["[number]"]:I1(Z)?["[number]"]:[])]}var nF=j(()=>{hJ();D4()});var oF=()=>{};var iF=()=>{};var sF=()=>{};var aF=j(()=>{sF();oF();nF();iF()});function iT(Z,Y){return Z.filter((Q)=>Y.includes(Q))}function sT(Z,Y){return Z.reduce((Q,J)=>{return iT(Q,J)},Y)}function rF(Z){return Z.length===1?Z[0]:Z.length>1?sT(Z.slice(1),Z[0]):[]}function tF(Z){let Y=[];for(let Q of Z)Y.push(...Q);return Y}var eF=()=>{};var ZV=()=>{};var YV=j(()=>{jF();NF();ZV()});function aT(Z){return L0(IF(Z,[N1]))}function rT(Z){return L0({...Z,[N1]:"Optional"})}function tT(Z,Y){return Y===!1?aT(Z):rT(Z)}function $5(Z,Y){let Q=Y??!0;return wJ(Z)?QV(Z,Q):tT(Z,Q)}var gJ=j(()=>{B6();h0();LF();mJ();D4()});function eT(Z,Y){let Q={};for(let J of globalThis.Object.getOwnPropertyNames(Z))Q[J]=$5(Z[J],Y);return Q}function Zk(Z,Y){return eT(Z.properties,Y)}function QV(Z,Y){let Q=Zk(Z,Y);return _F(Q)}var mJ=j(()=>{YV();gJ()});var JV=j(()=>{mJ();gJ()});function M4(Z,Y,Q){return L0({[q0]:"Record",type:"object",patternProperties:{[Z]:Y}},Q)}function pJ(Z,Y,Q){let J={};for(let q of Z)J[q]=Y;return G1(J,{...Q,[jJ]:"Record"})}function Yk(Z,Y,Q){return PF(Z)?pJ(B5(Z),Y,Q):M4(Z.pattern,Y,Q)}function Qk(Z,Y,Q){return pJ(B5(W5(Z)),Y,Q)}function Jk(Z,Y,Q){return pJ([Z.toString()],Y,Q)}function qk(Z,Y,Q){return M4(Z.source,Y,Q)}function Xk(Z,Y,Q){let J=l$(Z.pattern)?fJ:Z.pattern;return M4(J,Y,Q)}function zk(Z,Y,Q){return M4(fJ,Y,Q)}function Hk(Z,Y,Q){return M4(pF,Y,Q)}function Wk(Z,Y,Q){return G1({true:Y,false:Y},Q)}function Uk(Z,Y,Q){return M4(yJ,Y,Q)}function Kk(Z,Y,Q){return M4(yJ,Y,Q)}function qV(Z,Y,Q={}){return O4(Z)?Qk(Z.anyOf,Y,Q):A1(Z)?Yk(Z,Y,Q):L1(Z)?Jk(Z.const,Y,Q):IJ(Z)?Wk(Z,Y,Q):I1(Z)?Uk(Z,Y,Q):w1(Z)?Kk(Z,Y,Q):RJ(Z)?qk(Z,Y,Q):TJ(Z)?Xk(Z,Y,Q):_J(Z)?zk(Z,Y,Q):AJ(Z)?Hk(Z,Y,Q):l8(Q)}var XV=j(()=>{B6();h0();C1();EJ();xJ();hJ();uF();aF();D4()});var zV=j(()=>{XV()});var O6={};b4(O6,{Set:()=>Ok,Has:()=>Vk,Get:()=>Dk,Entries:()=>Bk,Delete:()=>Fk,Clear:()=>$k});function Bk(){return new Map(VZ)}function $k(){return VZ.clear()}function Fk(Z){return VZ.delete(Z)}function Vk(Z){return VZ.has(Z)}function Ok(Z,Y){VZ.set(Z,Y)}function Dk(Z){return VZ.get(Z)}var VZ;var HV=j(()=>{VZ=new Map});var E6={};b4(E6,{Set:()=>Ik,Has:()=>Nk,Get:()=>Lk,Entries:()=>Mk,Delete:()=>_k,Clear:()=>jk});function Mk(){return new Map(OZ)}function jk(){return OZ.clear()}function _k(Z){return OZ.delete(Z)}function Nk(Z){return OZ.has(Z)}function Ik(Z,Y){OZ.set(Z,Y)}function Lk(Z){return OZ.get(Z)}var OZ;var WV=j(()=>{OZ=new Map});var k1=j(()=>{HV();WV()});function UV(Z){return L0({[q0]:"Unknown"},Z)}var KV=j(()=>{B6();h0()});var BV=j(()=>{KV()});function $V(Z={}){return L0({[q0]:Z[q0]??"Unsafe"},Z)}var FV=j(()=>{B6();h0()});var VV=j(()=>{FV()});var DV,MV,OV;var jV=j(()=>{k1();VV();h0();N8();DV=class DV extends Q6{constructor(Z){super(`Duplicate type kind '${Z}' detected`)}};MV=class MV extends Q6{constructor(Z){super(`Duplicate string format '${Z}' detected`)}};(function(Z){function Y(J,q){if(E6.Has(J))throw new DV(J);return E6.Set(J,q),(X={})=>$V({...X,[q0]:J})}Z.Type=Y;function Q(J,q){if(O6.Has(J))throw new MV(J);return O6.Set(J,q),J}Z.Format=Q})(OV||(OV={}))});var uJ=j(()=>{DJ();jV()});function wk(Z,Y){let Q=Y.find((J)=>J.$id===Z.$ref);if(Q===void 0)throw new _V(Z);return j4(Q,Y)}function NV(Z,Y){if(!k6(Z.$id)||Y.some((Q)=>Q.$id===Z.$id))return Y;return Y.push(Z),Y}function j4(Z,Y){return Z[q0]==="This"||Z[q0]==="Ref"?wk(Z,Y):Z}var _V;var IV=j(()=>{N8();h0();_V=class _V extends Q6{constructor(Z){super(`Unable to dereference schema with $id '${Z.$ref}'`);this.schema=Z}}});var dJ=j(()=>{IV()});function*Rk(Z){let Y=Z===0?1:Math.ceil(Math.floor(Math.log2(Z)+1)/8);for(let Q=0;Q<Y;Q++)yield Z>>8*(Y-1-Q)&255}function Tk(Z){D6(x6.Array);for(let Y of Z)MZ(Y)}function kk(Z){D6(x6.Boolean),D6(Z?1:0)}function Ek(Z){D6(x6.BigInt),AV.setBigInt64(0,Z);for(let Y of GV)D6(Y)}function xk(Z){D6(x6.Date),MZ(Z.getTime())}function Pk(Z){D6(x6.Null)}function bk(Z){D6(x6.Number),AV.setFloat64(0,Z);for(let Y of GV)D6(Y)}function vk(Z){D6(x6.Object);for(let Y of globalThis.Object.getOwnPropertyNames(Z).sort())MZ(Y),MZ(Z[Y])}function Sk(Z){D6(x6.String);for(let Y=0;Y<Z.length;Y++)for(let Q of Rk(Z.charCodeAt(Y)))D6(Q)}function yk(Z){D6(x6.Symbol),MZ(Z.description)}function fk(Z){D6(x6.Uint8Array);for(let Y=0;Y<Z.length;Y++)D6(Z[Y])}function hk(Z){return D6(x6.Undefined)}function MZ(Z){if(X8(Z))return Tk(Z);if(KZ(Z))return kk(Z);if(BZ(Z))return Ek(Z);if(zZ(Z))return xk(Z);if(UZ(Z))return Pk(Z);if(u6(Z))return bk(Z);if(WZ(Z))return vk(Z);if(k6(Z))return Sk(Z);if($Z(Z))return yk(Z);if(HZ(Z))return fk(Z);if(d8(Z))return hk(Z);throw new LV(Z)}function D6(Z){DZ=DZ^Ck[Z],DZ=DZ*Ak%Gk}function F5(Z){return DZ=BigInt("14695981039346656037"),MZ(Z),DZ}var LV,x6,DZ,Ak,Gk,Ck,wV,AV,GV;var CV=j(()=>{j1();N8();LV=class LV extends Q6{constructor(Z){super("Unable to hash value");this.value=Z}};(function(Z){Z[Z.Undefined=0]="Undefined",Z[Z.Null=1]="Null",Z[Z.Boolean=2]="Boolean",Z[Z.Number=3]="Number",Z[Z.String=4]="String",Z[Z.Object=5]="Object",Z[Z.Array=6]="Array",Z[Z.Date=7]="Date",Z[Z.Uint8Array=8]="Uint8Array",Z[Z.Symbol=9]="Symbol",Z[Z.BigInt=10]="BigInt"})(x6||(x6={}));DZ=BigInt("14695981039346656037"),[Ak,Gk]=[BigInt("1099511628211"),BigInt("18446744073709551616")],Ck=Array.from({length:256}).map((Z,Y)=>BigInt(Y)),wV=new Float64Array(1),AV=new DataView(wV.buffer),GV=new Uint8Array(wV.buffer)});var cJ=j(()=>{CV()});function RV(Z){let Y=[];for(let Q of Z)Y.push(TV(Q));return Y}function gk(Z){let Y=RV(Z);return tF(Y)}function mk(Z){let Y=RV(Z);return rF(Y)}function pk(Z){return Z.map((Y,Q)=>Q.toString())}function uk(Z){return["[number]"]}function dk(Z){return globalThis.Object.getOwnPropertyNames(Z)}function ck(Z){if(!lJ)return[];return globalThis.Object.getOwnPropertyNames(Z).map((Q)=>{return Q[0]==="^"&&Q[Q.length-1]==="$"?Q.slice(1,Q.length-1):Q})}function TV(Z){return LJ(Z)?gk(Z.allOf):O4(Z)?mk(Z.anyOf):kJ(Z)?pk(Z.items??[]):NJ(Z)?uk(Z.items):GJ(Z)?dk(Z.properties):CJ(Z)?ck(Z.patternProperties):[]}function jZ(Z){lJ=!0;let Y=TV(Z);return lJ=!1,`^(${Y.map((J)=>`(${J})`).join("|")})$`}var lJ=!1;var kV=j(()=>{eF();D4()});var EV=()=>{};var xV=()=>{};var PV=()=>{};var nJ=j(()=>{xV();PV();kV();EV()});var bV;var vV=j(()=>{(function(Z){Z[Z.Union=0]="Union",Z[Z.True=1]="True",Z[Z.False=2]="False"})(bV||(bV={}))});var SV=()=>{};var yV=()=>{};var fV=()=>{};function lk(Z){return Z.allOf.every((Y)=>_4(Y))}function nk(Z){return Z.anyOf.some((Y)=>_4(Y))}function ok(Z){return!_4(Z.not)}function _4(Z){return Z[q0]==="Intersect"?lk(Z):Z[q0]==="Union"?nk(Z):Z[q0]==="Not"?ok(Z):Z[q0]==="Undefined"?!0:!1}var oJ=j(()=>{h0()});var hV=j(()=>{vV();fV();SV();oJ();yV()});function ik(Z){return Z[q0]==="Any"||Z[q0]==="Unknown"}function O0(Z){return Z!==void 0}function sk(Z,Y,Q){return!0}function ak(Z,Y,Q){return!0}function rk(Z,Y,Q){if(!X8(Q))return!1;if(O0(Z.minItems)&&!(Q.length>=Z.minItems))return!1;if(O0(Z.maxItems)&&!(Q.length<=Z.maxItems))return!1;for(let X of Q)if(!J6(Z.items,Y,X))return!1;if(Z.uniqueItems===!0&&!function(){let X=new Set;for(let z of Q){let W=F5(z);if(X.has(W))return!1;else X.add(W)}return!0}())return!1;if(!(O0(Z.contains)||u6(Z.minContains)||u6(Z.maxContains)))return!0;let J=O0(Z.contains)?Z.contains:l8(),q=Q.reduce((X,z)=>J6(J,Y,z)?X+1:X,0);if(q===0)return!1;if(u6(Z.minContains)&&q<Z.minContains)return!1;if(u6(Z.maxContains)&&q>Z.maxContains)return!1;return!0}function tk(Z,Y,Q){return tY(Q)}function ek(Z,Y,Q){if(!BZ(Q))return!1;if(O0(Z.exclusiveMaximum)&&!(Q<Z.exclusiveMaximum))return!1;if(O0(Z.exclusiveMinimum)&&!(Q>Z.exclusiveMinimum))return!1;if(O0(Z.maximum)&&!(Q<=Z.maximum))return!1;if(O0(Z.minimum)&&!(Q>=Z.minimum))return!1;if(O0(Z.multipleOf)&&Q%Z.multipleOf!==BigInt(0))return!1;return!0}function ZE(Z,Y,Q){return KZ(Q)}function YE(Z,Y,Q){return J6(Z.returns,Y,Q.prototype)}function QE(Z,Y,Q){if(!zZ(Q))return!1;if(O0(Z.exclusiveMaximumTimestamp)&&!(Q.getTime()<Z.exclusiveMaximumTimestamp))return!1;if(O0(Z.exclusiveMinimumTimestamp)&&!(Q.getTime()>Z.exclusiveMinimumTimestamp))return!1;if(O0(Z.maximumTimestamp)&&!(Q.getTime()<=Z.maximumTimestamp))return!1;if(O0(Z.minimumTimestamp)&&!(Q.getTime()>=Z.minimumTimestamp))return!1;if(O0(Z.multipleOfTimestamp)&&Q.getTime()%Z.multipleOfTimestamp!==0)return!1;return!0}function JE(Z,Y,Q){return Q5(Q)}function qE(Z,Y,Q){let J=globalThis.Object.values(Z.$defs),q=Z.$defs[Z.$ref];return J6(q,[...Y,...J],Q)}function XE(Z,Y,Q){if(!Y5(Q))return!1;if(O0(Z.exclusiveMaximum)&&!(Q<Z.exclusiveMaximum))return!1;if(O0(Z.exclusiveMinimum)&&!(Q>Z.exclusiveMinimum))return!1;if(O0(Z.maximum)&&!(Q<=Z.maximum))return!1;if(O0(Z.minimum)&&!(Q>=Z.minimum))return!1;if(O0(Z.multipleOf)&&Q%Z.multipleOf!==0)return!1;return!0}function zE(Z,Y,Q){let J=Z.allOf.every((q)=>J6(q,Y,Q));if(Z.unevaluatedProperties===!1){let q=new RegExp(jZ(Z)),X=Object.getOwnPropertyNames(Q).every((z)=>q.test(z));return J&&X}else if(DF(Z.unevaluatedProperties)){let q=new RegExp(jZ(Z)),X=Object.getOwnPropertyNames(Q).every((z)=>q.test(z)||J6(Z.unevaluatedProperties,Y,Q[z]));return J&&X}else return J}function HE(Z,Y,Q){return eY(Q)}function WE(Z,Y,Q){return Q===Z.const}function UE(Z,Y,Q){return!1}function KE(Z,Y,Q){return!J6(Z.not,Y,Q)}function BE(Z,Y,Q){return UZ(Q)}function $E(Z,Y,Q){if(!V6.IsNumberLike(Q))return!1;if(O0(Z.exclusiveMaximum)&&!(Q<Z.exclusiveMaximum))return!1;if(O0(Z.exclusiveMinimum)&&!(Q>Z.exclusiveMinimum))return!1;if(O0(Z.minimum)&&!(Q>=Z.minimum))return!1;if(O0(Z.maximum)&&!(Q<=Z.maximum))return!1;if(O0(Z.multipleOf)&&Q%Z.multipleOf!==0)return!1;return!0}function FE(Z,Y,Q){if(!V6.IsObjectLike(Q))return!1;if(O0(Z.minProperties)&&!(Object.getOwnPropertyNames(Q).length>=Z.minProperties))return!1;if(O0(Z.maxProperties)&&!(Object.getOwnPropertyNames(Q).length<=Z.maxProperties))return!1;let J=Object.getOwnPropertyNames(Z.properties);for(let q of J){let X=Z.properties[q];if(Z.required&&Z.required.includes(q)){if(!J6(X,Y,Q[q]))return!1;if((_4(X)||ik(X))&&!(q in Q))return!1}else if(V6.IsExactOptionalProperty(Q,q)&&!J6(X,Y,Q[q]))return!1}if(Z.additionalProperties===!1){let q=Object.getOwnPropertyNames(Q);if(Z.required&&Z.required.length===J.length&&q.length===J.length)return!0;else return q.every((X)=>J.includes(X))}else if(typeof Z.additionalProperties==="object")return Object.getOwnPropertyNames(Q).every((X)=>J.includes(X)||J6(Z.additionalProperties,Y,Q[X]));else return!0}function VE(Z,Y,Q){return Z5(Q)}function OE(Z,Y,Q){if(!V6.IsRecordLike(Q))return!1;if(O0(Z.minProperties)&&!(Object.getOwnPropertyNames(Q).length>=Z.minProperties))return!1;if(O0(Z.maxProperties)&&!(Object.getOwnPropertyNames(Q).length<=Z.maxProperties))return!1;let[J,q]=Object.entries(Z.patternProperties)[0],X=new RegExp(J),z=Object.entries(Q).every(([K,B])=>{return X.test(K)?J6(q,Y,B):!0}),W=typeof Z.additionalProperties==="object"?Object.entries(Q).every(([K,B])=>{return!X.test(K)?J6(Z.additionalProperties,Y,B):!0}):!0,U=Z.additionalProperties===!1?Object.getOwnPropertyNames(Q).every((K)=>{return X.test(K)}):!0;return z&&W&&U}function DE(Z,Y,Q){return J6(j4(Z,Y),Y,Q)}function ME(Z,Y,Q){let J=new RegExp(Z.source,Z.flags);if(O0(Z.minLength)){if(!(Q.length>=Z.minLength))return!1}if(O0(Z.maxLength)){if(!(Q.length<=Z.maxLength))return!1}return J.test(Q)}function jE(Z,Y,Q){if(!k6(Q))return!1;if(O0(Z.minLength)){if(!(Q.length>=Z.minLength))return!1}if(O0(Z.maxLength)){if(!(Q.length<=Z.maxLength))return!1}if(O0(Z.pattern)){if(!new RegExp(Z.pattern).test(Q))return!1}if(O0(Z.format)){if(!O6.Has(Z.format))return!1;return O6.Get(Z.format)(Q)}return!0}function _E(Z,Y,Q){return $Z(Q)}function NE(Z,Y,Q){return k6(Q)&&new RegExp(Z.pattern).test(Q)}function IE(Z,Y,Q){return J6(j4(Z,Y),Y,Q)}function LE(Z,Y,Q){if(!X8(Q))return!1;if(Z.items===void 0&&Q.length!==0)return!1;if(Q.length!==Z.maxItems)return!1;if(!Z.items)return!0;for(let J=0;J<Z.items.length;J++)if(!J6(Z.items[J],Y,Q[J]))return!1;return!0}function wE(Z,Y,Q){return d8(Q)}function AE(Z,Y,Q){return Z.anyOf.some((J)=>J6(J,Y,Q))}function GE(Z,Y,Q){if(!HZ(Q))return!1;if(O0(Z.maxByteLength)&&!(Q.length<=Z.maxByteLength))return!1;if(O0(Z.minByteLength)&&!(Q.length>=Z.minByteLength))return!1;return!0}function CE(Z,Y,Q){return!0}function RE(Z,Y,Q){return V6.IsVoidLike(Q)}function TE(Z,Y,Q){if(!E6.Has(Z[q0]))return!1;return E6.Get(Z[q0])(Z,Q)}function J6(Z,Y,Q){let J=O0(Z.$id)?NV(Z,Y):Y,q=Z;switch(q[q0]){case"Any":return sk(q,J,Q);case"Argument":return ak(q,J,Q);case"Array":return rk(q,J,Q);case"AsyncIterator":return tk(q,J,Q);case"BigInt":return ek(q,J,Q);case"Boolean":return ZE(q,J,Q);case"Constructor":return YE(q,J,Q);case"Date":return QE(q,J,Q);case"Function":return JE(q,J,Q);case"Import":return qE(q,J,Q);case"Integer":return XE(q,J,Q);case"Intersect":return zE(q,J,Q);case"Iterator":return HE(q,J,Q);case"Literal":return WE(q,J,Q);case"Never":return UE(q,J,Q);case"Not":return KE(q,J,Q);case"Null":return BE(q,J,Q);case"Number":return $E(q,J,Q);case"Object":return FE(q,J,Q);case"Promise":return VE(q,J,Q);case"Record":return OE(q,J,Q);case"Ref":return DE(q,J,Q);case"RegExp":return ME(q,J,Q);case"String":return jE(q,J,Q);case"Symbol":return _E(q,J,Q);case"TemplateLiteral":return NE(q,J,Q);case"This":return IE(q,J,Q);case"Tuple":return LE(q,J,Q);case"Undefined":return wE(q,J,Q);case"Union":return AE(q,J,Q);case"Uint8Array":return GE(q,J,Q);case"Unknown":return CE(q,J,Q);case"Void":return RE(q,J,Q);default:if(!E6.Has(q[q0]))throw new gV(q);return TE(q,J,Q)}}function V5(...Z){return Z.length===3?J6(Z[0],Z[1],Z[2]):J6(Z[0],[],Z[1])}var gV;var mV=j(()=>{uJ();dJ();cJ();h0();nJ();hV();k1();N8();C1();j1();D4();gV=class gV extends Q6{constructor(Z){super("Unknown type");this.schema=Z}}});var iJ=j(()=>{mV()});function kE(Z){switch(Z.errorType){case b.ArrayContains:return"Expected array to contain at least one matching value";case b.ArrayMaxContains:return`Expected array to contain no more than ${Z.schema.maxContains} matching values`;case b.ArrayMinContains:return`Expected array to contain at least ${Z.schema.minContains} matching values`;case b.ArrayMaxItems:return`Expected array length to be less or equal to ${Z.schema.maxItems}`;case b.ArrayMinItems:return`Expected array length to be greater or equal to ${Z.schema.minItems}`;case b.ArrayUniqueItems:return"Expected array elements to be unique";case b.Array:return"Expected array";case b.AsyncIterator:return"Expected AsyncIterator";case b.BigIntExclusiveMaximum:return`Expected bigint to be less than ${Z.schema.exclusiveMaximum}`;case b.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${Z.schema.exclusiveMinimum}`;case b.BigIntMaximum:return`Expected bigint to be less or equal to ${Z.schema.maximum}`;case b.BigIntMinimum:return`Expected bigint to be greater or equal to ${Z.schema.minimum}`;case b.BigIntMultipleOf:return`Expected bigint to be a multiple of ${Z.schema.multipleOf}`;case b.BigInt:return"Expected bigint";case b.Boolean:return"Expected boolean";case b.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${Z.schema.exclusiveMinimumTimestamp}`;case b.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${Z.schema.exclusiveMaximumTimestamp}`;case b.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${Z.schema.minimumTimestamp}`;case b.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${Z.schema.maximumTimestamp}`;case b.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${Z.schema.multipleOfTimestamp}`;case b.Date:return"Expected Date";case b.Function:return"Expected function";case b.IntegerExclusiveMaximum:return`Expected integer to be less than ${Z.schema.exclusiveMaximum}`;case b.IntegerExclusiveMinimum:return`Expected integer to be greater than ${Z.schema.exclusiveMinimum}`;case b.IntegerMaximum:return`Expected integer to be less or equal to ${Z.schema.maximum}`;case b.IntegerMinimum:return`Expected integer to be greater or equal to ${Z.schema.minimum}`;case b.IntegerMultipleOf:return`Expected integer to be a multiple of ${Z.schema.multipleOf}`;case b.Integer:return"Expected integer";case b.IntersectUnevaluatedProperties:return"Unexpected property";case b.Intersect:return"Expected all values to match";case b.Iterator:return"Expected Iterator";case b.Literal:return`Expected ${typeof Z.schema.const==="string"?`'${Z.schema.const}'`:Z.schema.const}`;case b.Never:return"Never";case b.Not:return"Value should not match";case b.Null:return"Expected null";case b.NumberExclusiveMaximum:return`Expected number to be less than ${Z.schema.exclusiveMaximum}`;case b.NumberExclusiveMinimum:return`Expected number to be greater than ${Z.schema.exclusiveMinimum}`;case b.NumberMaximum:return`Expected number to be less or equal to ${Z.schema.maximum}`;case b.NumberMinimum:return`Expected number to be greater or equal to ${Z.schema.minimum}`;case b.NumberMultipleOf:return`Expected number to be a multiple of ${Z.schema.multipleOf}`;case b.Number:return"Expected number";case b.Object:return"Expected object";case b.ObjectAdditionalProperties:return"Unexpected property";case b.ObjectMaxProperties:return`Expected object to have no more than ${Z.schema.maxProperties} properties`;case b.ObjectMinProperties:return`Expected object to have at least ${Z.schema.minProperties} properties`;case b.ObjectRequiredProperty:return"Expected required property";case b.Promise:return"Expected Promise";case b.RegExp:return"Expected string to match regular expression";case b.StringFormatUnknown:return`Unknown format '${Z.schema.format}'`;case b.StringFormat:return`Expected string to match '${Z.schema.format}' format`;case b.StringMaxLength:return`Expected string length less or equal to ${Z.schema.maxLength}`;case b.StringMinLength:return`Expected string length greater or equal to ${Z.schema.minLength}`;case b.StringPattern:return`Expected string to match '${Z.schema.pattern}'`;case b.String:return"Expected string";case b.Symbol:return"Expected symbol";case b.TupleLength:return`Expected tuple to have ${Z.schema.maxItems||0} elements`;case b.Tuple:return"Expected tuple";case b.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${Z.schema.maxByteLength}`;case b.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${Z.schema.minByteLength}`;case b.Uint8Array:return"Expected Uint8Array";case b.Undefined:return"Expected undefined";case b.Union:return"Expected union value";case b.Void:return"Expected void";case b.Kind:return`Expected kind '${Z.schema[q0]}'`;default:return"Unknown error type"}}function pV(){return EE}var EE;var sJ=j(()=>{h0();aJ();EE=kE});function L8(Z){return Z.replace(/~/g,"~0").replace(/\//g,"~1")}function D0(Z){return Z!==void 0}function i(Z,Y,Q,J,q=[]){return{type:Z,schema:Y,path:Q,value:J,message:pV()({errorType:Z,path:Q,schema:Y,value:J,errors:q}),errors:q}}function*xE(Z,Y,Q,J){}function*PE(Z,Y,Q,J){}function*bE(Z,Y,Q,J){if(!X8(J))return yield i(b.Array,Z,Q,J);if(D0(Z.minItems)&&!(J.length>=Z.minItems))yield i(b.ArrayMinItems,Z,Q,J);if(D0(Z.maxItems)&&!(J.length<=Z.maxItems))yield i(b.ArrayMaxItems,Z,Q,J);for(let z=0;z<J.length;z++)yield*q6(Z.items,Y,`${Q}/${z}`,J[z]);if(Z.uniqueItems===!0&&!function(){let z=new Set;for(let W of J){let U=F5(W);if(z.has(U))return!1;else z.add(U)}return!0}())yield i(b.ArrayUniqueItems,Z,Q,J);if(!(D0(Z.contains)||D0(Z.minContains)||D0(Z.maxContains)))return;let q=D0(Z.contains)?Z.contains:l8(),X=J.reduce((z,W,U)=>q6(q,Y,`${Q}${U}`,W).next().done===!0?z+1:z,0);if(X===0)yield i(b.ArrayContains,Z,Q,J);if(u6(Z.minContains)&&X<Z.minContains)yield i(b.ArrayMinContains,Z,Q,J);if(u6(Z.maxContains)&&X>Z.maxContains)yield i(b.ArrayMaxContains,Z,Q,J)}function*vE(Z,Y,Q,J){if(!tY(J))yield i(b.AsyncIterator,Z,Q,J)}function*SE(Z,Y,Q,J){if(!BZ(J))return yield i(b.BigInt,Z,Q,J);if(D0(Z.exclusiveMaximum)&&!(J<Z.exclusiveMaximum))yield i(b.BigIntExclusiveMaximum,Z,Q,J);if(D0(Z.exclusiveMinimum)&&!(J>Z.exclusiveMinimum))yield i(b.BigIntExclusiveMinimum,Z,Q,J);if(D0(Z.maximum)&&!(J<=Z.maximum))yield i(b.BigIntMaximum,Z,Q,J);if(D0(Z.minimum)&&!(J>=Z.minimum))yield i(b.BigIntMinimum,Z,Q,J);if(D0(Z.multipleOf)&&J%Z.multipleOf!==BigInt(0))yield i(b.BigIntMultipleOf,Z,Q,J)}function*yE(Z,Y,Q,J){if(!KZ(J))yield i(b.Boolean,Z,Q,J)}function*fE(Z,Y,Q,J){yield*q6(Z.returns,Y,Q,J.prototype)}function*hE(Z,Y,Q,J){if(!zZ(J))return yield i(b.Date,Z,Q,J);if(D0(Z.exclusiveMaximumTimestamp)&&!(J.getTime()<Z.exclusiveMaximumTimestamp))yield i(b.DateExclusiveMaximumTimestamp,Z,Q,J);if(D0(Z.exclusiveMinimumTimestamp)&&!(J.getTime()>Z.exclusiveMinimumTimestamp))yield i(b.DateExclusiveMinimumTimestamp,Z,Q,J);if(D0(Z.maximumTimestamp)&&!(J.getTime()<=Z.maximumTimestamp))yield i(b.DateMaximumTimestamp,Z,Q,J);if(D0(Z.minimumTimestamp)&&!(J.getTime()>=Z.minimumTimestamp))yield i(b.DateMinimumTimestamp,Z,Q,J);if(D0(Z.multipleOfTimestamp)&&J.getTime()%Z.multipleOfTimestamp!==0)yield i(b.DateMultipleOfTimestamp,Z,Q,J)}function*gE(Z,Y,Q,J){if(!Q5(J))yield i(b.Function,Z,Q,J)}function*mE(Z,Y,Q,J){let q=globalThis.Object.values(Z.$defs),X=Z.$defs[Z.$ref];yield*q6(X,[...Y,...q],Q,J)}function*pE(Z,Y,Q,J){if(!Y5(J))return yield i(b.Integer,Z,Q,J);if(D0(Z.exclusiveMaximum)&&!(J<Z.exclusiveMaximum))yield i(b.IntegerExclusiveMaximum,Z,Q,J);if(D0(Z.exclusiveMinimum)&&!(J>Z.exclusiveMinimum))yield i(b.IntegerExclusiveMinimum,Z,Q,J);if(D0(Z.maximum)&&!(J<=Z.maximum))yield i(b.IntegerMaximum,Z,Q,J);if(D0(Z.minimum)&&!(J>=Z.minimum))yield i(b.IntegerMinimum,Z,Q,J);if(D0(Z.multipleOf)&&J%Z.multipleOf!==0)yield i(b.IntegerMultipleOf,Z,Q,J)}function*uE(Z,Y,Q,J){let q=!1;for(let X of Z.allOf)for(let z of q6(X,Y,Q,J))q=!0,yield z;if(q)return yield i(b.Intersect,Z,Q,J);if(Z.unevaluatedProperties===!1){let X=new RegExp(jZ(Z));for(let z of Object.getOwnPropertyNames(J))if(!X.test(z))yield i(b.IntersectUnevaluatedProperties,Z,`${Q}/${z}`,J)}if(typeof Z.unevaluatedProperties==="object"){let X=new RegExp(jZ(Z));for(let z of Object.getOwnPropertyNames(J))if(!X.test(z)){let W=q6(Z.unevaluatedProperties,Y,`${Q}/${z}`,J[z]).next();if(!W.done)yield W.value}}}function*dE(Z,Y,Q,J){if(!eY(J))yield i(b.Iterator,Z,Q,J)}function*cE(Z,Y,Q,J){if(J!==Z.const)yield i(b.Literal,Z,Q,J)}function*lE(Z,Y,Q,J){yield i(b.Never,Z,Q,J)}function*nE(Z,Y,Q,J){if(q6(Z.not,Y,Q,J).next().done===!0)yield i(b.Not,Z,Q,J)}function*oE(Z,Y,Q,J){if(!UZ(J))yield i(b.Null,Z,Q,J)}function*iE(Z,Y,Q,J){if(!V6.IsNumberLike(J))return yield i(b.Number,Z,Q,J);if(D0(Z.exclusiveMaximum)&&!(J<Z.exclusiveMaximum))yield i(b.NumberExclusiveMaximum,Z,Q,J);if(D0(Z.exclusiveMinimum)&&!(J>Z.exclusiveMinimum))yield i(b.NumberExclusiveMinimum,Z,Q,J);if(D0(Z.maximum)&&!(J<=Z.maximum))yield i(b.NumberMaximum,Z,Q,J);if(D0(Z.minimum)&&!(J>=Z.minimum))yield i(b.NumberMinimum,Z,Q,J);if(D0(Z.multipleOf)&&J%Z.multipleOf!==0)yield i(b.NumberMultipleOf,Z,Q,J)}function*sE(Z,Y,Q,J){if(!V6.IsObjectLike(J))return yield i(b.Object,Z,Q,J);if(D0(Z.minProperties)&&!(Object.getOwnPropertyNames(J).length>=Z.minProperties))yield i(b.ObjectMinProperties,Z,Q,J);if(D0(Z.maxProperties)&&!(Object.getOwnPropertyNames(J).length<=Z.maxProperties))yield i(b.ObjectMaxProperties,Z,Q,J);let q=Array.isArray(Z.required)?Z.required:[],X=Object.getOwnPropertyNames(Z.properties),z=Object.getOwnPropertyNames(J);for(let W of q){if(z.includes(W))continue;yield i(b.ObjectRequiredProperty,Z.properties[W],`${Q}/${L8(W)}`,void 0)}if(Z.additionalProperties===!1){for(let W of z)if(!X.includes(W))yield i(b.ObjectAdditionalProperties,Z,`${Q}/${L8(W)}`,J[W])}if(typeof Z.additionalProperties==="object")for(let W of z){if(X.includes(W))continue;yield*q6(Z.additionalProperties,Y,`${Q}/${L8(W)}`,J[W])}for(let W of X){let U=Z.properties[W];if(Z.required&&Z.required.includes(W)){if(yield*q6(U,Y,`${Q}/${L8(W)}`,J[W]),_4(Z)&&!(W in J))yield i(b.ObjectRequiredProperty,U,`${Q}/${L8(W)}`,void 0)}else if(V6.IsExactOptionalProperty(J,W))yield*q6(U,Y,`${Q}/${L8(W)}`,J[W])}}function*aE(Z,Y,Q,J){if(!Z5(J))yield i(b.Promise,Z,Q,J)}function*rE(Z,Y,Q,J){if(!V6.IsRecordLike(J))return yield i(b.Object,Z,Q,J);if(D0(Z.minProperties)&&!(Object.getOwnPropertyNames(J).length>=Z.minProperties))yield i(b.ObjectMinProperties,Z,Q,J);if(D0(Z.maxProperties)&&!(Object.getOwnPropertyNames(J).length<=Z.maxProperties))yield i(b.ObjectMaxProperties,Z,Q,J);let[q,X]=Object.entries(Z.patternProperties)[0],z=new RegExp(q);for(let[W,U]of Object.entries(J))if(z.test(W))yield*q6(X,Y,`${Q}/${L8(W)}`,U);if(typeof Z.additionalProperties==="object"){for(let[W,U]of Object.entries(J))if(!z.test(W))yield*q6(Z.additionalProperties,Y,`${Q}/${L8(W)}`,U)}if(Z.additionalProperties===!1)for(let[W,U]of Object.entries(J)){if(z.test(W))continue;return yield i(b.ObjectAdditionalProperties,Z,`${Q}/${L8(W)}`,U)}}function*tE(Z,Y,Q,J){yield*q6(j4(Z,Y),Y,Q,J)}function*eE(Z,Y,Q,J){if(!k6(J))return yield i(b.String,Z,Q,J);if(D0(Z.minLength)&&!(J.length>=Z.minLength))yield i(b.StringMinLength,Z,Q,J);if(D0(Z.maxLength)&&!(J.length<=Z.maxLength))yield i(b.StringMaxLength,Z,Q,J);if(!new RegExp(Z.source,Z.flags).test(J))return yield i(b.RegExp,Z,Q,J)}function*Zx(Z,Y,Q,J){if(!k6(J))return yield i(b.String,Z,Q,J);if(D0(Z.minLength)&&!(J.length>=Z.minLength))yield i(b.StringMinLength,Z,Q,J);if(D0(Z.maxLength)&&!(J.length<=Z.maxLength))yield i(b.StringMaxLength,Z,Q,J);if(k6(Z.pattern)){if(!new RegExp(Z.pattern).test(J))yield i(b.StringPattern,Z,Q,J)}if(k6(Z.format)){if(!O6.Has(Z.format))yield i(b.StringFormatUnknown,Z,Q,J);else if(!O6.Get(Z.format)(J))yield i(b.StringFormat,Z,Q,J)}}function*Yx(Z,Y,Q,J){if(!$Z(J))yield i(b.Symbol,Z,Q,J)}function*Qx(Z,Y,Q,J){if(!k6(J))return yield i(b.String,Z,Q,J);if(!new RegExp(Z.pattern).test(J))yield i(b.StringPattern,Z,Q,J)}function*Jx(Z,Y,Q,J){yield*q6(j4(Z,Y),Y,Q,J)}function*qx(Z,Y,Q,J){if(!X8(J))return yield i(b.Tuple,Z,Q,J);if(Z.items===void 0&&J.length!==0)return yield i(b.TupleLength,Z,Q,J);if(J.length!==Z.maxItems)return yield i(b.TupleLength,Z,Q,J);if(!Z.items)return;for(let q=0;q<Z.items.length;q++)yield*q6(Z.items[q],Y,`${Q}/${q}`,J[q])}function*Xx(Z,Y,Q,J){if(!d8(J))yield i(b.Undefined,Z,Q,J)}function*zx(Z,Y,Q,J){if(V5(Z,Y,J))return;let q=Z.anyOf.map((X)=>new rJ(q6(X,Y,Q,J)));yield i(b.Union,Z,Q,J,q)}function*Hx(Z,Y,Q,J){if(!HZ(J))return yield i(b.Uint8Array,Z,Q,J);if(D0(Z.maxByteLength)&&!(J.length<=Z.maxByteLength))yield i(b.Uint8ArrayMaxByteLength,Z,Q,J);if(D0(Z.minByteLength)&&!(J.length>=Z.minByteLength))yield i(b.Uint8ArrayMinByteLength,Z,Q,J)}function*Wx(Z,Y,Q,J){}function*Ux(Z,Y,Q,J){if(!V6.IsVoidLike(J))yield i(b.Void,Z,Q,J)}function*Kx(Z,Y,Q,J){if(!E6.Get(Z[q0])(Z,J))yield i(b.Kind,Z,Q,J)}function*q6(Z,Y,Q,J){let q=D0(Z.$id)?[...Y,Z]:Y,X=Z;switch(X[q0]){case"Any":return yield*xE(X,q,Q,J);case"Argument":return yield*PE(X,q,Q,J);case"Array":return yield*bE(X,q,Q,J);case"AsyncIterator":return yield*vE(X,q,Q,J);case"BigInt":return yield*SE(X,q,Q,J);case"Boolean":return yield*yE(X,q,Q,J);case"Constructor":return yield*fE(X,q,Q,J);case"Date":return yield*hE(X,q,Q,J);case"Function":return yield*gE(X,q,Q,J);case"Import":return yield*mE(X,q,Q,J);case"Integer":return yield*pE(X,q,Q,J);case"Intersect":return yield*uE(X,q,Q,J);case"Iterator":return yield*dE(X,q,Q,J);case"Literal":return yield*cE(X,q,Q,J);case"Never":return yield*lE(X,q,Q,J);case"Not":return yield*nE(X,q,Q,J);case"Null":return yield*oE(X,q,Q,J);case"Number":return yield*iE(X,q,Q,J);case"Object":return yield*sE(X,q,Q,J);case"Promise":return yield*aE(X,q,Q,J);case"Record":return yield*rE(X,q,Q,J);case"Ref":return yield*tE(X,q,Q,J);case"RegExp":return yield*eE(X,q,Q,J);case"String":return yield*Zx(X,q,Q,J);case"Symbol":return yield*Yx(X,q,Q,J);case"TemplateLiteral":return yield*Qx(X,q,Q,J);case"This":return yield*Jx(X,q,Q,J);case"Tuple":return yield*qx(X,q,Q,J);case"Undefined":return yield*Xx(X,q,Q,J);case"Union":return yield*zx(X,q,Q,J);case"Uint8Array":return yield*Hx(X,q,Q,J);case"Unknown":return yield*Wx(X,q,Q,J);case"Void":return yield*Ux(X,q,Q,J);default:if(!E6.Has(X[q0]))throw new uV(Z);return yield*Kx(X,q,Q,J)}}function dV(...Z){let Y=Z.length===3?q6(Z[0],Z[1],"",Z[2]):q6(Z[0],[],"",Z[1]);return new rJ(Y)}var b,uV,rJ;var aJ=j(()=>{uJ();nJ();k1();oJ();sJ();N8();dJ();cJ();iJ();h0();C1();j1();(function(Z){Z[Z.ArrayContains=0]="ArrayContains",Z[Z.ArrayMaxContains=1]="ArrayMaxContains",Z[Z.ArrayMaxItems=2]="ArrayMaxItems",Z[Z.ArrayMinContains=3]="ArrayMinContains",Z[Z.ArrayMinItems=4]="ArrayMinItems",Z[Z.ArrayUniqueItems=5]="ArrayUniqueItems",Z[Z.Array=6]="Array",Z[Z.AsyncIterator=7]="AsyncIterator",Z[Z.BigIntExclusiveMaximum=8]="BigIntExclusiveMaximum",Z[Z.BigIntExclusiveMinimum=9]="BigIntExclusiveMinimum",Z[Z.BigIntMaximum=10]="BigIntMaximum",Z[Z.BigIntMinimum=11]="BigIntMinimum",Z[Z.BigIntMultipleOf=12]="BigIntMultipleOf",Z[Z.BigInt=13]="BigInt",Z[Z.Boolean=14]="Boolean",Z[Z.DateExclusiveMaximumTimestamp=15]="DateExclusiveMaximumTimestamp",Z[Z.DateExclusiveMinimumTimestamp=16]="DateExclusiveMinimumTimestamp",Z[Z.DateMaximumTimestamp=17]="DateMaximumTimestamp",Z[Z.DateMinimumTimestamp=18]="DateMinimumTimestamp",Z[Z.DateMultipleOfTimestamp=19]="DateMultipleOfTimestamp",Z[Z.Date=20]="Date",Z[Z.Function=21]="Function",Z[Z.IntegerExclusiveMaximum=22]="IntegerExclusiveMaximum",Z[Z.IntegerExclusiveMinimum=23]="IntegerExclusiveMinimum",Z[Z.IntegerMaximum=24]="IntegerMaximum",Z[Z.IntegerMinimum=25]="IntegerMinimum",Z[Z.IntegerMultipleOf=26]="IntegerMultipleOf",Z[Z.Integer=27]="Integer",Z[Z.IntersectUnevaluatedProperties=28]="IntersectUnevaluatedProperties",Z[Z.Intersect=29]="Intersect",Z[Z.Iterator=30]="Iterator",Z[Z.Kind=31]="Kind",Z[Z.Literal=32]="Literal",Z[Z.Never=33]="Never",Z[Z.Not=34]="Not",Z[Z.Null=35]="Null",Z[Z.NumberExclusiveMaximum=36]="NumberExclusiveMaximum",Z[Z.NumberExclusiveMinimum=37]="NumberExclusiveMinimum",Z[Z.NumberMaximum=38]="NumberMaximum",Z[Z.NumberMinimum=39]="NumberMinimum",Z[Z.NumberMultipleOf=40]="NumberMultipleOf",Z[Z.Number=41]="Number",Z[Z.ObjectAdditionalProperties=42]="ObjectAdditionalProperties",Z[Z.ObjectMaxProperties=43]="ObjectMaxProperties",Z[Z.ObjectMinProperties=44]="ObjectMinProperties",Z[Z.ObjectRequiredProperty=45]="ObjectRequiredProperty",Z[Z.Object=46]="Object",Z[Z.Promise=47]="Promise",Z[Z.RegExp=48]="RegExp",Z[Z.StringFormatUnknown=49]="StringFormatUnknown",Z[Z.StringFormat=50]="StringFormat",Z[Z.StringMaxLength=51]="StringMaxLength",Z[Z.StringMinLength=52]="StringMinLength",Z[Z.StringPattern=53]="StringPattern",Z[Z.String=54]="String",Z[Z.Symbol=55]="Symbol",Z[Z.TupleLength=56]="TupleLength",Z[Z.Tuple=57]="Tuple",Z[Z.Uint8ArrayMaxByteLength=58]="Uint8ArrayMaxByteLength",Z[Z.Uint8ArrayMinByteLength=59]="Uint8ArrayMinByteLength",Z[Z.Uint8Array=60]="Uint8Array",Z[Z.Undefined=61]="Undefined",Z[Z.Union=62]="Union",Z[Z.Void=63]="Void"})(b||(b={}));uV=class uV extends Q6{constructor(Z){super("Unknown type");this.schema=Z}};rJ=class rJ{constructor(Z){this.iterator=Z}[Symbol.iterator](){return this.iterator}First(){let Z=this.iterator.next();return Z.done?void 0:Z.value}}});var cV=j(()=>{aJ();sJ()});function D5(Z){let Y=lV;for(let Q of Z.split("."))if(Y=Y?.properties?.[Q],!Y)return;return Y}function _Z(Z,Y){if(O5.Check(Z,Y))return Y;let Q=[...O5.Errors(Z,Y)][0],J=Q?.path?`${Q.path}: `:"";throw Error(`${J}${Q?.message??"Value does not match schema"}`)}function M5(Z,Y){let Q=D5(Z);if(!Q)return{valid:!1,message:`Unknown configuration key '${Z}'.`};if(O5.Check(Q,Y))return{valid:!0};let J=Bx(Q);if(J.length>0)return{valid:!1,message:`Expected one of ${J.join(", ")} for '${Z}', got '${String(Y)}'.`};let q=[...O5.Errors(Q,Y)][0];return{valid:!1,message:`Invalid value for '${Z}': ${q?.message??"schema validation failed"}.`}}function j5(Z,Y){let Q=D5(Z);if(!Q)return{ok:!1,message:`Unknown configuration key '${Z}'.`};let J=Y,q=$x(Q);if(q==="number"||q==="integer"){let z=Number(Y);if(Number.isNaN(z))return{ok:!1,message:`Expected a number for '${Z}', got '${Y}'`};J=z}else if(q==="boolean"){if(!["true","false","on","off"].includes(Y.toLowerCase()))return{ok:!1,message:`Expected a boolean for '${Z}', got '${Y}'`};J=["true","on"].includes(Y.toLowerCase())}else if(q==="array")try{J=JSON.parse(Y)}catch{return{ok:!1,message:`Expected a JSON array for '${Z}', got '${Y}'. Example: ["**/*.foo"]`}}else if(Fx(Q)&&Y.toLowerCase()==="null")J=null;let X=M5(Z,J);if(!X.valid)return{ok:!1,message:X.message??`Invalid value for '${Z}'.`};return{ok:!0,value:J}}function Bx(Z){return tJ(Z).map((Q)=>Q.const).filter((Q)=>typeof Q==="string")}function $x(Z){let Y=Z.type;if(Y)return Y;for(let Q of tJ(Z)){let J=Q.type;if(J&&J!=="null")return J}return}function tJ(Z){return Z.anyOf??Z.oneOf??Z.allOf??[]}function Fx(Z){if(Z.type==="null")return!0;return tJ(Z).some((Y)=>Y.type==="null")}var f,O5;var w8=j(()=>{t$();QF();XF();WF();BF();VF();EJ();JV();zV();k1();gF();xJ();BV();iJ();cV();E1();f={Array:a$,Boolean:ZF,Integer:JF,Literal:zF,Null:UF,Number:$F,Object:G1,Optional:$5,Record:qV,String:fF,Union:W5,Unknown:UV},O5={Check:V5,Errors:dV}});var Vx,x1;var nV=j(()=>{w8();Vx=["submodule","env","pkg"],x1={parallelInit:"parallel-init",colonSeparatedPatterns:"colon-separated-patterns"};O6.Set(x1.parallelInit,(Z)=>{if(Z.trim()==="")return!0;return Z.split(",").map((Y)=>Y.trim().toLowerCase()).filter((Y)=>Y.length>0).every((Y)=>Vx.includes(Y))});O6.Set(x1.colonSeparatedPatterns,(Z)=>{if(Z==="")return!0;return Z.split(":").every((Y)=>Y.trim().length>0)})});var lV,eJ,N4,oV,Z3;var E1=j(()=>{nV();w8();H0();lV=f.Object({llm:f.Optional(f.Object({provider:f.Optional(f.String()),apiKey:f.Optional(f.String()),baseUrl:f.Optional(f.String()),model:f.Optional(f.String()),temperature:f.Optional(f.Number({minimum:0,maximum:2})),maxTokens:f.Optional(f.Integer({minimum:1})),showThinking:f.Optional(f.Boolean())})),lint:f.Optional(f.Object({onPushBehavior:f.Optional(f.Union([f.Literal("off"),f.Literal("error"),f.Literal("warning")])),maxFileSizeKb:f.Optional(f.Integer({minimum:1}))})),stash:f.Optional(f.Object({undoLimit:f.Optional(f.Integer({minimum:0}))})),commit:f.Optional(f.Object({commitPattern:f.Optional(f.Union([f.Literal("inherit"),f.Literal("comprehensive")])),guidelineCacheDays:f.Optional(f.Integer({minimum:0})),noisyFiles:f.Optional(f.Array(f.String()))})),reword:f.Optional(f.Object({editor:f.Optional(f.Union([f.String(),f.Null()]))})),cache:f.Optional(f.Object({enabled:f.Optional(f.Boolean()),maxAgeMinutes:f.Optional(f.Number({minimum:0}))})),parallel:f.Optional(f.Object({init:f.Optional(f.String({format:x1.parallelInit})),envPaths:f.Optional(f.String({format:x1.colonSeparatedPatterns}))})),viewer:f.Optional(f.Object({highlighting:f.Optional(f.Object({useAdditionalContext:f.Optional(f.Boolean()),maxHunkSize:f.Optional(f.Integer({minimum:1}))})),exitBehavior:f.Optional(f.Union([f.Literal("clearScreen"),f.Literal("nextLine")]))})),defaultEditor:f.String(),enhancedOutput:f.Optional(f.Boolean()),useInlineSubmodule:f.Optional(f.Union([f.Literal("off"),f.Literal("internal"),f.Literal("all")])),useInlineGitConfig:f.Optional(f.Union([f.Literal("off"),f.Literal("internal")])),maxThreadWorkers:f.Optional(f.Integer({minimum:1}))}),eJ=["**/package-lock.json","**/bun.lock","**/yarn.lock","**/pnpm-lock.yaml","**/npm-shrinkwrap.json","**/__snapshots__/*.snap","**/*.snap","**/dist/**","**/build/**","**/coverage/**","**/out/**","**/*.min.js","**/*.min.css"],N4={llm:{provider:"openai",model:"gpt-5-nano",temperature:0.14,maxTokens:void 0,apiKey:void 0,baseUrl:void 0,showThinking:!1},lint:{onPushBehavior:"off",maxFileSizeKb:1024},stash:{undoLimit:10},commit:{commitPattern:"inherit",guidelineCacheDays:30,noisyFiles:[...eJ]},reword:{editor:null},cache:{enabled:!0,maxAgeMinutes:_7},parallel:{init:"submodule,env",envPaths:""},viewer:{highlighting:{useAdditionalContext:!0,maxHunkSize:200000},exitBehavior:"nextLine"},defaultEditor:"code",enhancedOutput:!0,useInlineSubmodule:"internal",useInlineGitConfig:"internal",maxThreadWorkers:8},oV={"llm.provider":"GDX_LLM_PROVIDER","llm.apiKey":"GDX_LLM_API_KEY","llm.baseUrl":"GDX_LLM_BASE_URL","llm.model":"GDX_LLM_MODEL","llm.temperature":"GDX_LLM_TEMPERATURE","llm.maxTokens":"GDX_LLM_MAX_TOKENS","llm.showThinking":"GDX_LLM_SHOW_THINKING","lint.onPushBehavior":"GDX_LINT_ON_PUSH_BEHAVIOR","lint.maxFileSizeKb":"GDX_LINT_MAX_FILE_SIZE_KB","stash.undoLimit":"GDX_STASH_UNDO_LIMIT","commit.commitPattern":"GDX_COMMIT_PATTERN","commit.guidelineCacheDays":"GDX_COMMIT_GUIDELINE_CACHE_DAYS","reword.editor":"GDX_REWORD_EDITOR","cache.enabled":"GDX_CACHE_ENABLED","cache.maxAgeMinutes":"GDX_CACHE_MAX_AGE_MINUTES","parallel.init":"GDX_PARALLEL_INIT","parallel.envPaths":"GDX_PARALLEL_ENV_PATHS","viewer.highlighting.useAdditionalContext":"GDX_VIEWER_HIGHLIGHTING_USE_ADDITIONAL_CONTEXT","viewer.highlighting.maxHunkSize":"GDX_VIEWER_HIGHLIGHTING_MAX_HUNK_SIZE","viewer.exitBehavior":"GDX_VIEWER_EXIT_BEHAVIOR",defaultEditor:"GDX_DEFAULT_EDITOR",enhancedOutput:"GDX_ENHANCED_OUTPUT",useInlineSubmodule:"GDX_USE_INLINE_SUBMODULE",useInlineGitConfig:"GDX_USE_INLINE_GIT_CONFIG",maxThreadWorkers:"GDX_MAX_THREAD_WORKERS"},Z3={llm:"Configuration for the Language Model (LLM) integration","llm.provider":"LLM provider to use (e.g., openai)","llm.apiKey":"API key for the LLM provider","llm.baseUrl":"Base URL for the LLM API (optional)","llm.model":"Model to use for LLM requests","llm.temperature":"Temperature for LLM generation (0-2)","llm.maxTokens":"Maximum tokens for LLM responses","llm.showThinking":"Whether to show part of LLM reasoning messages",lint:"Configuration for post-commit linting","lint.onPushBehavior":"Lint behavior before push (off, error, warning)","lint.maxFileSizeKb":"Maximum allowed file size in KiB","stash.undoLimit":"Max number of stash drops to keep in history",commit:"Configuration for commit message generation","commit.commitPattern":"Commit message pattern (inherit: learn from repo, comprehensive: fixed format)","commit.guidelineCacheDays":"Days to cache learned commit guidelines per repository","commit.noisyFiles":"Files treated as noisy in commit auto diff summary (array of glob patterns matching relative paths)",reword:"Configuration for rewording commit messages","reword.editor":"Editor command used by gdx reword (overrides global editor when set)",cache:`Configuration for caching mechanism.
|
|
349
|
-
Values that are expensive to get are cached for faster subsequent access.`,"cache.enabled":"Whether caching is enabled","cache.maxAgeMinutes":"Default maximum age of cache entries in minutes (some cache ignore this)",parallel:"Configuration for parallel worktree automation","parallel.init":"Comma-separated list specifying what to init for new forks (submodule, env, pkg)","parallel.envPaths":"Colon-separated list of .gitignore patterns for env files to copy into new forks",viewer:"Configuration for enhanced terminal viewers","viewer.highlighting":"Configuration for syntax highlighting in enhanced viewers","viewer.highlighting.
|
|
348
|
+
*/});function Y5(Z){return BZ(Z)&&globalThis.Symbol.asyncIterator in Z}function Q5(Z){return BZ(Z)&&globalThis.Symbol.iterator in Z}function J5(Z){return Z instanceof globalThis.Promise}function UZ(Z){return Z instanceof Date&&globalThis.Number.isFinite(Z.getTime())}function KZ(Z){return Z instanceof globalThis.Uint8Array}function BZ(Z){return Z!==null&&typeof Z==="object"}function H4(Z){return globalThis.Array.isArray(Z)&&!globalThis.ArrayBuffer.isView(Z)}function l4(Z){return Z===void 0}function $Z(Z){return Z===null}function FZ(Z){return typeof Z==="boolean"}function d6(Z){return typeof Z==="number"}function q5(Z){return globalThis.Number.isInteger(Z)}function VZ(Z){return typeof Z==="bigint"}function E6(Z){return typeof Z==="string"}function X5(Z){return typeof Z==="function"}function OZ(Z){return typeof Z==="symbol"}var N1=()=>{};var D6;var w3=N(()=>{N1();(function(Z){Z.InstanceMode="default",Z.ExactOptionalPropertyTypes=!1,Z.AllowArrayObject=!1,Z.AllowNaN=!1,Z.AllowNullVoid=!1;function Y(z,W){return Z.ExactOptionalPropertyTypes?W in z:z[W]!==void 0}Z.IsExactOptionalProperty=Y;function Q(z){let W=BZ(z);return Z.AllowArrayObject?W:W&&!H4(z)}Z.IsObjectLike=Q;function J(z){return Q(z)&&!(z instanceof Date)&&!(z instanceof Uint8Array)}Z.IsRecordLike=J;function q(z){return Z.AllowNaN?d6(z):Number.isFinite(z)}Z.IsNumberLike=q;function X(z){let W=l4(z);return Z.AllowNullVoid?W||z===null:W}Z.IsVoidLike=X})(D6||(D6={}))});function z5(Z){return Array.isArray(Z)}function H5(Z){return Z instanceof globalThis.Date}function n4(Z){return typeof Z==="object"&&Z!==null}function W5(Z){return Z instanceof globalThis.RegExp}function YF(Z){return typeof Z==="string"}function U5(Z){return Z instanceof globalThis.Uint8Array}function QF(Z){return Z===void 0}function DT(Z){return globalThis.Object.freeze(Z).map((Y)=>I1(Y))}function MT(Z){return Z}function jT(Z){return Z}function _T(Z){return Z}function NT(Z){let Y={};for(let Q of Object.getOwnPropertyNames(Z))Y[Q]=I1(Z[Q]);for(let Q of Object.getOwnPropertySymbols(Z))Y[Q]=I1(Z[Q]);return globalThis.Object.freeze(Y)}function I1(Z){return z5(Z)?DT(Z):H5(Z)?MT(Z):U5(Z)?jT(Z):W5(Z)?_T(Z):n4(Z)?NT(Z):Z}var JF=()=>{};function IT(Z){return Z.map((Y)=>K5(Y))}function LT(Z){return new Date(Z.getTime())}function wT(Z){return new Uint8Array(Z)}function AT(Z){return new RegExp(Z.source,Z.flags)}function GT(Z){let Y={};for(let Q of Object.getOwnPropertyNames(Z))Y[Q]=K5(Z[Q]);for(let Q of Object.getOwnPropertySymbols(Z))Y[Q]=K5(Z[Q]);return Y}function K5(Z){return z5(Z)?IT(Z):H5(Z)?LT(Z):U5(Z)?wT(Z):W5(Z)?AT(Z):n4(Z)?GT(Z):Z}function qF(Z){return K5(Z)}var XF=()=>{};function L0(Z,Y){let Q=Y!==void 0?{...Y,...Z}:Z;switch(D6.InstanceMode){case"freeze":return I1(Q);case"clone":return qF(Q);default:return Q}}var B6=N(()=>{w3();JF();XF()});var L1,G3,q0;var zF=N(()=>{L1=Symbol.for("TypeBox.Optional"),G3=Symbol.for("TypeBox.Hint"),q0=Symbol.for("TypeBox.Kind")});var g0=N(()=>{zF()});function HF(Z,Y){return L0({[q0]:"Array",type:"array",items:Z},Y)}var WF=N(()=>{B6();g0()});var UF=N(()=>{WF()});var KF=N(()=>{B6()});function BF(Z){return L0({[q0]:"Boolean",type:"boolean"},Z)}var $F=N(()=>{g0();KF()});var FF=N(()=>{$F()});function VF(Z){return L0({[q0]:"Integer",type:"integer"},Z)}var OF=N(()=>{B6();g0()});var DF=N(()=>{OF()});function MF(Z,Y){return L0({[q0]:"Literal",const:Z,type:typeof Z},Y)}var jF=N(()=>{B6();g0()});var _F=N(()=>{jF()});function NF(Z){return L0({[q0]:"Null",type:"null"},Z)}var IF=N(()=>{B6();g0()});var LF=N(()=>{IF()});function wF(Z){return L0({[q0]:"Number",type:"number"},Z)}var AF=N(()=>{B6();g0()});var GF=N(()=>{AF()});function CF(Z){return n4(Z)&&Z[L1]==="Optional"}function C3(Z){return j0(Z,"Any")}function CT(Z){return j0(Z,"Argument")}function R3(Z){return j0(Z,"Array")}function RT(Z){return j0(Z,"AsyncIterator")}function TT(Z){return j0(Z,"BigInt")}function T3(Z){return j0(Z,"Boolean")}function kT(Z){return j0(Z,"Computed")}function ET(Z){return j0(Z,"Constructor")}function PT(Z){return j0(Z,"Date")}function xT(Z){return j0(Z,"Function")}function w1(Z){return j0(Z,"Integer")}function k3(Z){return j0(Z,"Intersect")}function bT(Z){return j0(Z,"Iterator")}function j0(Z,Y){return n4(Z)&&q0 in Z&&Z[q0]===Y}function A1(Z){return j0(Z,"Literal")}function vT(Z){return j0(Z,"MappedKey")}function E3(Z){return j0(Z,"MappedResult")}function P3(Z){return j0(Z,"Never")}function ST(Z){return j0(Z,"Not")}function yT(Z){return j0(Z,"Null")}function G1(Z){return j0(Z,"Number")}function x3(Z){return j0(Z,"Object")}function fT(Z){return j0(Z,"Promise")}function b3(Z){return j0(Z,"Record")}function hT(Z){return j0(Z,"Ref")}function v3(Z){return j0(Z,"RegExp")}function S3(Z){return j0(Z,"String")}function gT(Z){return j0(Z,"Symbol")}function C1(Z){return j0(Z,"TemplateLiteral")}function mT(Z){return j0(Z,"This")}function y3(Z){return j0(Z,"Tuple")}function pT(Z){return j0(Z,"Undefined")}function j8(Z){return j0(Z,"Union")}function uT(Z){return j0(Z,"Uint8Array")}function dT(Z){return j0(Z,"Unknown")}function cT(Z){return j0(Z,"Unsafe")}function lT(Z){return j0(Z,"Void")}function nT(Z){return n4(Z)&&q0 in Z&&YF(Z[q0])}function RF(Z){return C3(Z)||CT(Z)||R3(Z)||T3(Z)||TT(Z)||RT(Z)||kT(Z)||ET(Z)||PT(Z)||xT(Z)||w1(Z)||k3(Z)||bT(Z)||A1(Z)||vT(Z)||E3(Z)||P3(Z)||ST(Z)||yT(Z)||G1(Z)||x3(Z)||fT(Z)||b3(Z)||hT(Z)||v3(Z)||S3(Z)||gT(Z)||C1(Z)||mT(Z)||y3(Z)||pT(Z)||j8(Z)||uT(Z)||dT(Z)||cT(Z)||lT(Z)||nT(Z)}var _8=N(()=>{g0()});function oT(Z){return globalThis.Object.keys(Z).filter((Y)=>!CF(Z[Y]))}function iT(Z,Y){let Q=oT(Z),J=Q.length>0?{[q0]:"Object",type:"object",required:Q,properties:Z}:{[q0]:"Object",type:"object",properties:Z};return L0(J,Y)}var R1;var TF=N(()=>{B6();g0();_8();R1=iT});var f3=N(()=>{TF()});var kF=()=>{};function EF(Z){return L0({[q0]:"MappedResult",properties:Z})}var PF=N(()=>{B6();g0()});function sT(Z,Y){let{[Y]:Q,...J}=Z;return J}function xF(Z,Y){return Y.reduce((Q,J)=>sT(Q,J),Z)}var bF=()=>{};var q6;var vF=N(()=>{q6=class q6 extends Error{constructor(Z){super(Z)}}});var I4=N(()=>{vF()});function o4(Z){return L0({[q0]:"Never",not:{}},Z)}var SF=N(()=>{B6();g0()});var T1=N(()=>{SF()});function yF(Z,Y){return L0({[q0]:"Union",anyOf:Z},Y)}var fF=N(()=>{B6();g0()});var hF=()=>{};var gF=()=>{};function B5(Z,Y){return Z.length===0?o4(Y):Z.length===1?L0(Z[0],Y):yF(Z,Y)}var mF=N(()=>{T1();B6();fF()});var h3=N(()=>{hF();gF();mF()});function aT(Z){return Z.replace(/\\\$/g,"$").replace(/\\\*/g,"*").replace(/\\\^/g,"^").replace(/\\\|/g,"|").replace(/\\\(/g,"(").replace(/\\\)/g,")")}function m3(Z,Y,Q){return Z[Y]===Q&&Z.charCodeAt(Y-1)!==92}function L4(Z,Y){return m3(Z,Y,"(")}function k1(Z,Y){return m3(Z,Y,")")}function pF(Z,Y){return m3(Z,Y,"|")}function rT(Z){if(!(L4(Z,0)&&k1(Z,Z.length-1)))return!1;let Y=0;for(let Q=0;Q<Z.length;Q++){if(L4(Z,Q))Y+=1;if(k1(Z,Q))Y-=1;if(Y===0&&Q!==Z.length-1)return!1}return!0}function tT(Z){return Z.slice(1,Z.length-1)}function eT(Z){let Y=0;for(let Q=0;Q<Z.length;Q++){if(L4(Z,Q))Y+=1;if(k1(Z,Q))Y-=1;if(pF(Z,Q)&&Y===0)return!0}return!1}function Zk(Z){for(let Y=0;Y<Z.length;Y++)if(L4(Z,Y))return!0;return!1}function Yk(Z){let[Y,Q]=[0,0],J=[];for(let X=0;X<Z.length;X++){if(L4(Z,X))Y+=1;if(k1(Z,X))Y-=1;if(pF(Z,X)&&Y===0){let z=Z.slice(Q,X);if(z.length>0)J.push(DZ(z));Q=X+1}}let q=Z.slice(Q);if(q.length>0)J.push(DZ(q));if(J.length===0)return{type:"const",const:""};if(J.length===1)return J[0];return{type:"or",expr:J}}function Qk(Z){function Y(q,X){if(!L4(q,X))throw new g3("TemplateLiteralParser: Index must point to open parens");let z=0;for(let W=X;W<q.length;W++){if(L4(q,W))z+=1;if(k1(q,W))z-=1;if(z===0)return[X,W]}throw new g3("TemplateLiteralParser: Unclosed group parens in expression")}function Q(q,X){for(let z=X;z<q.length;z++)if(L4(q,z))return[X,z];return[X,q.length]}let J=[];for(let q=0;q<Z.length;q++)if(L4(Z,q)){let[X,z]=Y(Z,q),W=Z.slice(X,z+1);J.push(DZ(W)),q=z}else{let[X,z]=Q(Z,q),W=Z.slice(X,z);if(W.length>0)J.push(DZ(W));q=z-1}return J.length===0?{type:"const",const:""}:J.length===1?J[0]:{type:"and",expr:J}}function DZ(Z){return rT(Z)?DZ(tT(Z)):eT(Z)?Yk(Z):Zk(Z)?Qk(Z):{type:"const",const:aT(Z)}}function $5(Z){return DZ(Z.slice(1,Z.length-1))}var g3;var F5=N(()=>{I4();g3=class g3 extends q6{}});function Jk(Z){return Z.type==="or"&&Z.expr.length===2&&Z.expr[0].type==="const"&&Z.expr[0].const==="0"&&Z.expr[1].type==="const"&&Z.expr[1].const==="[1-9][0-9]*"}function qk(Z){return Z.type==="or"&&Z.expr.length===2&&Z.expr[0].type==="const"&&Z.expr[0].const==="true"&&Z.expr[1].type==="const"&&Z.expr[1].const==="false"}function Xk(Z){return Z.type==="const"&&Z.const===".*"}function E1(Z){return Jk(Z)||Xk(Z)?!1:qk(Z)?!0:Z.type==="and"?Z.expr.every((Y)=>E1(Y)):Z.type==="or"?Z.expr.every((Y)=>E1(Y)):Z.type==="const"?!0:(()=>{throw new uF("Unknown expression type")})()}function dF(Z){let Y=$5(Z.pattern);return E1(Y)}var uF;var p3=N(()=>{F5();I4();uF=class uF extends q6{}});function*lF(Z){if(Z.length===1)return yield*Z[0];for(let Y of Z[0])for(let Q of lF(Z.slice(1)))yield`${Y}${Q}`}function*zk(Z){return yield*lF(Z.expr.map((Y)=>[...u3(Y)]))}function*Hk(Z){for(let Y of Z.expr)yield*u3(Y)}function*Wk(Z){return yield Z.const}function*u3(Z){return Z.type==="and"?yield*zk(Z):Z.type==="or"?yield*Hk(Z):Z.type==="const"?yield*Wk(Z):(()=>{throw new cF("Unknown expression")})()}function nF(Z){let Y=$5(Z.pattern);return E1(Y)?[...u3(Y)]:[]}var cF;var oF=N(()=>{p3();F5();I4();cF=class cF extends q6{}});function iF(Z){return L0({[q0]:"String",type:"string"},Z)}var sF=N(()=>{B6();g0()});var aF=N(()=>{sF()});var rF=()=>{};var d3="^(0|[1-9][0-9]*)$",c3="^(.*)$",tF="^(?!.*)$";var eF=()=>{};var ZV=()=>{};var YV=()=>{};var QV=()=>{};var l3=N(()=>{p3();oF();rF();F5();ZV();YV();QV()});function Uk(Z){return nF(Z).map((Q)=>Q.toString())}function Kk(Z){let Y=[];for(let Q of Z)Y.push(...V5(Q));return Y}function Bk(Z){return[Z.toString()]}function V5(Z){return[...new Set(C1(Z)?Uk(Z):j8(Z)?Kk(Z.anyOf):A1(Z)?Bk(Z.const):G1(Z)?["[number]"]:w1(Z)?["[number]"]:[])]}var JV=N(()=>{l3();_8()});var qV=()=>{};var XV=()=>{};var zV=()=>{};var HV=N(()=>{zV();qV();JV();XV()});function $k(Z,Y){return Z.filter((Q)=>Y.includes(Q))}function Fk(Z,Y){return Z.reduce((Q,J)=>{return $k(Q,J)},Y)}function WV(Z){return Z.length===1?Z[0]:Z.length>1?Fk(Z.slice(1),Z[0]):[]}function UV(Z){let Y=[];for(let Q of Z)Y.push(...Q);return Y}var KV=()=>{};var BV=()=>{};var $V=N(()=>{kF();PF();BV()});function Vk(Z){return L0(xF(Z,[L1]))}function Ok(Z){return L0({...Z,[L1]:"Optional"})}function Dk(Z,Y){return Y===!1?Vk(Z):Ok(Z)}function O5(Z,Y){let Q=Y??!0;return E3(Z)?FV(Z,Q):Dk(Z,Q)}var n3=N(()=>{B6();g0();bF();o3();_8()});function Mk(Z,Y){let Q={};for(let J of globalThis.Object.getOwnPropertyNames(Z))Q[J]=O5(Z[J],Y);return Q}function jk(Z,Y){return Mk(Z.properties,Y)}function FV(Z,Y){let Q=jk(Z,Y);return EF(Q)}var o3=N(()=>{$V();n3()});var VV=N(()=>{o3();n3()});function N8(Z,Y,Q){return L0({[q0]:"Record",type:"object",patternProperties:{[Z]:Y}},Q)}function i3(Z,Y,Q){let J={};for(let q of Z)J[q]=Y;return R1(J,{...Q,[G3]:"Record"})}function _k(Z,Y,Q){return dF(Z)?i3(V5(Z),Y,Q):N8(Z.pattern,Y,Q)}function Nk(Z,Y,Q){return i3(V5(B5(Z)),Y,Q)}function Ik(Z,Y,Q){return i3([Z.toString()],Y,Q)}function Lk(Z,Y,Q){return N8(Z.source,Y,Q)}function wk(Z,Y,Q){let J=QF(Z.pattern)?c3:Z.pattern;return N8(J,Y,Q)}function Ak(Z,Y,Q){return N8(c3,Y,Q)}function Gk(Z,Y,Q){return N8(tF,Y,Q)}function Ck(Z,Y,Q){return R1({true:Y,false:Y},Q)}function Rk(Z,Y,Q){return N8(d3,Y,Q)}function Tk(Z,Y,Q){return N8(d3,Y,Q)}function OV(Z,Y,Q={}){return j8(Z)?Nk(Z.anyOf,Y,Q):C1(Z)?_k(Z,Y,Q):A1(Z)?Ik(Z.const,Y,Q):T3(Z)?Ck(Z,Y,Q):w1(Z)?Rk(Z,Y,Q):G1(Z)?Tk(Z,Y,Q):v3(Z)?Lk(Z,Y,Q):S3(Z)?wk(Z,Y,Q):C3(Z)?Ak(Z,Y,Q):P3(Z)?Gk(Z,Y,Q):o4(Q)}var DV=N(()=>{B6();g0();T1();f3();h3();l3();eF();HV();_8()});var MV=N(()=>{DV()});var M6={};y8(M6,{Set:()=>bk,Has:()=>xk,Get:()=>vk,Entries:()=>kk,Delete:()=>Pk,Clear:()=>Ek});function kk(){return new Map(MZ)}function Ek(){return MZ.clear()}function Pk(Z){return MZ.delete(Z)}function xk(Z){return MZ.has(Z)}function bk(Z,Y){MZ.set(Z,Y)}function vk(Z){return MZ.get(Z)}var MZ;var jV=N(()=>{MZ=new Map});var P6={};y8(P6,{Set:()=>gk,Has:()=>hk,Get:()=>mk,Entries:()=>Sk,Delete:()=>fk,Clear:()=>yk});function Sk(){return new Map(jZ)}function yk(){return jZ.clear()}function fk(Z){return jZ.delete(Z)}function hk(Z){return jZ.has(Z)}function gk(Z,Y){jZ.set(Z,Y)}function mk(Z){return jZ.get(Z)}var jZ;var _V=N(()=>{jZ=new Map});var P1=N(()=>{jV();_V()});function NV(Z){return L0({[q0]:"Unknown"},Z)}var IV=N(()=>{B6();g0()});var LV=N(()=>{IV()});function wV(Z={}){return L0({[q0]:Z[q0]??"Unsafe"},Z)}var AV=N(()=>{B6();g0()});var GV=N(()=>{AV()});var RV,TV,CV;var kV=N(()=>{P1();GV();g0();I4();RV=class RV extends q6{constructor(Z){super(`Duplicate type kind '${Z}' detected`)}};TV=class TV extends q6{constructor(Z){super(`Duplicate string format '${Z}' detected`)}};(function(Z){function Y(J,q){if(P6.Has(J))throw new RV(J);return P6.Set(J,q),(X={})=>wV({...X,[q0]:J})}Z.Type=Y;function Q(J,q){if(M6.Has(J))throw new TV(J);return M6.Set(J,q),J}Z.Format=Q})(CV||(CV={}))});var s3=N(()=>{w3();kV()});function pk(Z,Y){let Q=Y.find((J)=>J.$id===Z.$ref);if(Q===void 0)throw new EV(Z);return I8(Q,Y)}function PV(Z,Y){if(!E6(Z.$id)||Y.some((Q)=>Q.$id===Z.$id))return Y;return Y.push(Z),Y}function I8(Z,Y){return Z[q0]==="This"||Z[q0]==="Ref"?pk(Z,Y):Z}var EV;var xV=N(()=>{I4();g0();EV=class EV extends q6{constructor(Z){super(`Unable to dereference schema with $id '${Z.$ref}'`);this.schema=Z}}});var a3=N(()=>{xV()});function*lk(Z){let Y=Z===0?1:Math.ceil(Math.floor(Math.log2(Z)+1)/8);for(let Q=0;Q<Y;Q++)yield Z>>8*(Y-1-Q)&255}function nk(Z){j6(x6.Array);for(let Y of Z)NZ(Y)}function ok(Z){j6(x6.Boolean),j6(Z?1:0)}function ik(Z){j6(x6.BigInt),SV.setBigInt64(0,Z);for(let Y of yV)j6(Y)}function sk(Z){j6(x6.Date),NZ(Z.getTime())}function ak(Z){j6(x6.Null)}function rk(Z){j6(x6.Number),SV.setFloat64(0,Z);for(let Y of yV)j6(Y)}function tk(Z){j6(x6.Object);for(let Y of globalThis.Object.getOwnPropertyNames(Z).sort())NZ(Y),NZ(Z[Y])}function ek(Z){j6(x6.String);for(let Y=0;Y<Z.length;Y++)for(let Q of lk(Z.charCodeAt(Y)))j6(Q)}function ZE(Z){j6(x6.Symbol),NZ(Z.description)}function YE(Z){j6(x6.Uint8Array);for(let Y=0;Y<Z.length;Y++)j6(Z[Y])}function QE(Z){return j6(x6.Undefined)}function NZ(Z){if(H4(Z))return nk(Z);if(FZ(Z))return ok(Z);if(VZ(Z))return ik(Z);if(UZ(Z))return sk(Z);if($Z(Z))return ak(Z);if(d6(Z))return rk(Z);if(BZ(Z))return tk(Z);if(E6(Z))return ek(Z);if(OZ(Z))return ZE(Z);if(KZ(Z))return YE(Z);if(l4(Z))return QE(Z);throw new bV(Z)}function j6(Z){_Z=_Z^ck[Z],_Z=_Z*uk%dk}function D5(Z){return _Z=BigInt("14695981039346656037"),NZ(Z),_Z}var bV,x6,_Z,uk,dk,ck,vV,SV,yV;var fV=N(()=>{N1();I4();bV=class bV extends q6{constructor(Z){super("Unable to hash value");this.value=Z}};(function(Z){Z[Z.Undefined=0]="Undefined",Z[Z.Null=1]="Null",Z[Z.Boolean=2]="Boolean",Z[Z.Number=3]="Number",Z[Z.String=4]="String",Z[Z.Object=5]="Object",Z[Z.Array=6]="Array",Z[Z.Date=7]="Date",Z[Z.Uint8Array=8]="Uint8Array",Z[Z.Symbol=9]="Symbol",Z[Z.BigInt=10]="BigInt"})(x6||(x6={}));_Z=BigInt("14695981039346656037"),[uk,dk]=[BigInt("1099511628211"),BigInt("18446744073709551616")],ck=Array.from({length:256}).map((Z,Y)=>BigInt(Y)),vV=new Float64Array(1),SV=new DataView(vV.buffer),yV=new Uint8Array(vV.buffer)});var r3=N(()=>{fV()});function hV(Z){let Y=[];for(let Q of Z)Y.push(gV(Q));return Y}function JE(Z){let Y=hV(Z);return UV(Y)}function qE(Z){let Y=hV(Z);return WV(Y)}function XE(Z){return Z.map((Y,Q)=>Q.toString())}function zE(Z){return["[number]"]}function HE(Z){return globalThis.Object.getOwnPropertyNames(Z)}function WE(Z){if(!t3)return[];return globalThis.Object.getOwnPropertyNames(Z).map((Q)=>{return Q[0]==="^"&&Q[Q.length-1]==="$"?Q.slice(1,Q.length-1):Q})}function gV(Z){return k3(Z)?JE(Z.allOf):j8(Z)?qE(Z.anyOf):y3(Z)?XE(Z.items??[]):R3(Z)?zE(Z.items):x3(Z)?HE(Z.properties):b3(Z)?WE(Z.patternProperties):[]}function IZ(Z){t3=!0;let Y=gV(Z);return t3=!1,`^(${Y.map((J)=>`(${J})`).join("|")})$`}var t3=!1;var mV=N(()=>{KV();_8()});var pV=()=>{};var uV=()=>{};var dV=()=>{};var e3=N(()=>{uV();dV();mV();pV()});var cV;var lV=N(()=>{(function(Z){Z[Z.Union=0]="Union",Z[Z.True=1]="True",Z[Z.False=2]="False"})(cV||(cV={}))});var nV=()=>{};var oV=()=>{};var iV=()=>{};function UE(Z){return Z.allOf.every((Y)=>L8(Y))}function KE(Z){return Z.anyOf.some((Y)=>L8(Y))}function BE(Z){return!L8(Z.not)}function L8(Z){return Z[q0]==="Intersect"?UE(Z):Z[q0]==="Union"?KE(Z):Z[q0]==="Not"?BE(Z):Z[q0]==="Undefined"?!0:!1}var ZJ=N(()=>{g0()});var sV=N(()=>{lV();iV();nV();ZJ();oV()});function $E(Z){return Z[q0]==="Any"||Z[q0]==="Unknown"}function O0(Z){return Z!==void 0}function FE(Z,Y,Q){return!0}function VE(Z,Y,Q){return!0}function OE(Z,Y,Q){if(!H4(Q))return!1;if(O0(Z.minItems)&&!(Q.length>=Z.minItems))return!1;if(O0(Z.maxItems)&&!(Q.length<=Z.maxItems))return!1;for(let X of Q)if(!X6(Z.items,Y,X))return!1;if(Z.uniqueItems===!0&&!function(){let X=new Set;for(let z of Q){let W=D5(z);if(X.has(W))return!1;else X.add(W)}return!0}())return!1;if(!(O0(Z.contains)||d6(Z.minContains)||d6(Z.maxContains)))return!0;let J=O0(Z.contains)?Z.contains:o4(),q=Q.reduce((X,z)=>X6(J,Y,z)?X+1:X,0);if(q===0)return!1;if(d6(Z.minContains)&&q<Z.minContains)return!1;if(d6(Z.maxContains)&&q>Z.maxContains)return!1;return!0}function DE(Z,Y,Q){return Y5(Q)}function ME(Z,Y,Q){if(!VZ(Q))return!1;if(O0(Z.exclusiveMaximum)&&!(Q<Z.exclusiveMaximum))return!1;if(O0(Z.exclusiveMinimum)&&!(Q>Z.exclusiveMinimum))return!1;if(O0(Z.maximum)&&!(Q<=Z.maximum))return!1;if(O0(Z.minimum)&&!(Q>=Z.minimum))return!1;if(O0(Z.multipleOf)&&Q%Z.multipleOf!==BigInt(0))return!1;return!0}function jE(Z,Y,Q){return FZ(Q)}function _E(Z,Y,Q){return X6(Z.returns,Y,Q.prototype)}function NE(Z,Y,Q){if(!UZ(Q))return!1;if(O0(Z.exclusiveMaximumTimestamp)&&!(Q.getTime()<Z.exclusiveMaximumTimestamp))return!1;if(O0(Z.exclusiveMinimumTimestamp)&&!(Q.getTime()>Z.exclusiveMinimumTimestamp))return!1;if(O0(Z.maximumTimestamp)&&!(Q.getTime()<=Z.maximumTimestamp))return!1;if(O0(Z.minimumTimestamp)&&!(Q.getTime()>=Z.minimumTimestamp))return!1;if(O0(Z.multipleOfTimestamp)&&Q.getTime()%Z.multipleOfTimestamp!==0)return!1;return!0}function IE(Z,Y,Q){return X5(Q)}function LE(Z,Y,Q){let J=globalThis.Object.values(Z.$defs),q=Z.$defs[Z.$ref];return X6(q,[...Y,...J],Q)}function wE(Z,Y,Q){if(!q5(Q))return!1;if(O0(Z.exclusiveMaximum)&&!(Q<Z.exclusiveMaximum))return!1;if(O0(Z.exclusiveMinimum)&&!(Q>Z.exclusiveMinimum))return!1;if(O0(Z.maximum)&&!(Q<=Z.maximum))return!1;if(O0(Z.minimum)&&!(Q>=Z.minimum))return!1;if(O0(Z.multipleOf)&&Q%Z.multipleOf!==0)return!1;return!0}function AE(Z,Y,Q){let J=Z.allOf.every((q)=>X6(q,Y,Q));if(Z.unevaluatedProperties===!1){let q=new RegExp(IZ(Z)),X=Object.getOwnPropertyNames(Q).every((z)=>q.test(z));return J&&X}else if(RF(Z.unevaluatedProperties)){let q=new RegExp(IZ(Z)),X=Object.getOwnPropertyNames(Q).every((z)=>q.test(z)||X6(Z.unevaluatedProperties,Y,Q[z]));return J&&X}else return J}function GE(Z,Y,Q){return Q5(Q)}function CE(Z,Y,Q){return Q===Z.const}function RE(Z,Y,Q){return!1}function TE(Z,Y,Q){return!X6(Z.not,Y,Q)}function kE(Z,Y,Q){return $Z(Q)}function EE(Z,Y,Q){if(!D6.IsNumberLike(Q))return!1;if(O0(Z.exclusiveMaximum)&&!(Q<Z.exclusiveMaximum))return!1;if(O0(Z.exclusiveMinimum)&&!(Q>Z.exclusiveMinimum))return!1;if(O0(Z.minimum)&&!(Q>=Z.minimum))return!1;if(O0(Z.maximum)&&!(Q<=Z.maximum))return!1;if(O0(Z.multipleOf)&&Q%Z.multipleOf!==0)return!1;return!0}function PE(Z,Y,Q){if(!D6.IsObjectLike(Q))return!1;if(O0(Z.minProperties)&&!(Object.getOwnPropertyNames(Q).length>=Z.minProperties))return!1;if(O0(Z.maxProperties)&&!(Object.getOwnPropertyNames(Q).length<=Z.maxProperties))return!1;let J=Object.getOwnPropertyNames(Z.properties);for(let q of J){let X=Z.properties[q];if(Z.required&&Z.required.includes(q)){if(!X6(X,Y,Q[q]))return!1;if((L8(X)||$E(X))&&!(q in Q))return!1}else if(D6.IsExactOptionalProperty(Q,q)&&!X6(X,Y,Q[q]))return!1}if(Z.additionalProperties===!1){let q=Object.getOwnPropertyNames(Q);if(Z.required&&Z.required.length===J.length&&q.length===J.length)return!0;else return q.every((X)=>J.includes(X))}else if(typeof Z.additionalProperties==="object")return Object.getOwnPropertyNames(Q).every((X)=>J.includes(X)||X6(Z.additionalProperties,Y,Q[X]));else return!0}function xE(Z,Y,Q){return J5(Q)}function bE(Z,Y,Q){if(!D6.IsRecordLike(Q))return!1;if(O0(Z.minProperties)&&!(Object.getOwnPropertyNames(Q).length>=Z.minProperties))return!1;if(O0(Z.maxProperties)&&!(Object.getOwnPropertyNames(Q).length<=Z.maxProperties))return!1;let[J,q]=Object.entries(Z.patternProperties)[0],X=new RegExp(J),z=Object.entries(Q).every(([K,B])=>{return X.test(K)?X6(q,Y,B):!0}),W=typeof Z.additionalProperties==="object"?Object.entries(Q).every(([K,B])=>{return!X.test(K)?X6(Z.additionalProperties,Y,B):!0}):!0,U=Z.additionalProperties===!1?Object.getOwnPropertyNames(Q).every((K)=>{return X.test(K)}):!0;return z&&W&&U}function vE(Z,Y,Q){return X6(I8(Z,Y),Y,Q)}function SE(Z,Y,Q){let J=new RegExp(Z.source,Z.flags);if(O0(Z.minLength)){if(!(Q.length>=Z.minLength))return!1}if(O0(Z.maxLength)){if(!(Q.length<=Z.maxLength))return!1}return J.test(Q)}function yE(Z,Y,Q){if(!E6(Q))return!1;if(O0(Z.minLength)){if(!(Q.length>=Z.minLength))return!1}if(O0(Z.maxLength)){if(!(Q.length<=Z.maxLength))return!1}if(O0(Z.pattern)){if(!new RegExp(Z.pattern).test(Q))return!1}if(O0(Z.format)){if(!M6.Has(Z.format))return!1;return M6.Get(Z.format)(Q)}return!0}function fE(Z,Y,Q){return OZ(Q)}function hE(Z,Y,Q){return E6(Q)&&new RegExp(Z.pattern).test(Q)}function gE(Z,Y,Q){return X6(I8(Z,Y),Y,Q)}function mE(Z,Y,Q){if(!H4(Q))return!1;if(Z.items===void 0&&Q.length!==0)return!1;if(Q.length!==Z.maxItems)return!1;if(!Z.items)return!0;for(let J=0;J<Z.items.length;J++)if(!X6(Z.items[J],Y,Q[J]))return!1;return!0}function pE(Z,Y,Q){return l4(Q)}function uE(Z,Y,Q){return Z.anyOf.some((J)=>X6(J,Y,Q))}function dE(Z,Y,Q){if(!KZ(Q))return!1;if(O0(Z.maxByteLength)&&!(Q.length<=Z.maxByteLength))return!1;if(O0(Z.minByteLength)&&!(Q.length>=Z.minByteLength))return!1;return!0}function cE(Z,Y,Q){return!0}function lE(Z,Y,Q){return D6.IsVoidLike(Q)}function nE(Z,Y,Q){if(!P6.Has(Z[q0]))return!1;return P6.Get(Z[q0])(Z,Q)}function X6(Z,Y,Q){let J=O0(Z.$id)?PV(Z,Y):Y,q=Z;switch(q[q0]){case"Any":return FE(q,J,Q);case"Argument":return VE(q,J,Q);case"Array":return OE(q,J,Q);case"AsyncIterator":return DE(q,J,Q);case"BigInt":return ME(q,J,Q);case"Boolean":return jE(q,J,Q);case"Constructor":return _E(q,J,Q);case"Date":return NE(q,J,Q);case"Function":return IE(q,J,Q);case"Import":return LE(q,J,Q);case"Integer":return wE(q,J,Q);case"Intersect":return AE(q,J,Q);case"Iterator":return GE(q,J,Q);case"Literal":return CE(q,J,Q);case"Never":return RE(q,J,Q);case"Not":return TE(q,J,Q);case"Null":return kE(q,J,Q);case"Number":return EE(q,J,Q);case"Object":return PE(q,J,Q);case"Promise":return xE(q,J,Q);case"Record":return bE(q,J,Q);case"Ref":return vE(q,J,Q);case"RegExp":return SE(q,J,Q);case"String":return yE(q,J,Q);case"Symbol":return fE(q,J,Q);case"TemplateLiteral":return hE(q,J,Q);case"This":return gE(q,J,Q);case"Tuple":return mE(q,J,Q);case"Undefined":return pE(q,J,Q);case"Union":return uE(q,J,Q);case"Uint8Array":return dE(q,J,Q);case"Unknown":return cE(q,J,Q);case"Void":return lE(q,J,Q);default:if(!P6.Has(q[q0]))throw new aV(q);return nE(q,J,Q)}}function M5(...Z){return Z.length===3?X6(Z[0],Z[1],Z[2]):X6(Z[0],[],Z[1])}var aV;var rV=N(()=>{s3();a3();r3();g0();e3();sV();P1();I4();T1();N1();_8();aV=class aV extends q6{constructor(Z){super("Unknown type");this.schema=Z}}});var YJ=N(()=>{rV()});function oE(Z){switch(Z.errorType){case b.ArrayContains:return"Expected array to contain at least one matching value";case b.ArrayMaxContains:return`Expected array to contain no more than ${Z.schema.maxContains} matching values`;case b.ArrayMinContains:return`Expected array to contain at least ${Z.schema.minContains} matching values`;case b.ArrayMaxItems:return`Expected array length to be less or equal to ${Z.schema.maxItems}`;case b.ArrayMinItems:return`Expected array length to be greater or equal to ${Z.schema.minItems}`;case b.ArrayUniqueItems:return"Expected array elements to be unique";case b.Array:return"Expected array";case b.AsyncIterator:return"Expected AsyncIterator";case b.BigIntExclusiveMaximum:return`Expected bigint to be less than ${Z.schema.exclusiveMaximum}`;case b.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${Z.schema.exclusiveMinimum}`;case b.BigIntMaximum:return`Expected bigint to be less or equal to ${Z.schema.maximum}`;case b.BigIntMinimum:return`Expected bigint to be greater or equal to ${Z.schema.minimum}`;case b.BigIntMultipleOf:return`Expected bigint to be a multiple of ${Z.schema.multipleOf}`;case b.BigInt:return"Expected bigint";case b.Boolean:return"Expected boolean";case b.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${Z.schema.exclusiveMinimumTimestamp}`;case b.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${Z.schema.exclusiveMaximumTimestamp}`;case b.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${Z.schema.minimumTimestamp}`;case b.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${Z.schema.maximumTimestamp}`;case b.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${Z.schema.multipleOfTimestamp}`;case b.Date:return"Expected Date";case b.Function:return"Expected function";case b.IntegerExclusiveMaximum:return`Expected integer to be less than ${Z.schema.exclusiveMaximum}`;case b.IntegerExclusiveMinimum:return`Expected integer to be greater than ${Z.schema.exclusiveMinimum}`;case b.IntegerMaximum:return`Expected integer to be less or equal to ${Z.schema.maximum}`;case b.IntegerMinimum:return`Expected integer to be greater or equal to ${Z.schema.minimum}`;case b.IntegerMultipleOf:return`Expected integer to be a multiple of ${Z.schema.multipleOf}`;case b.Integer:return"Expected integer";case b.IntersectUnevaluatedProperties:return"Unexpected property";case b.Intersect:return"Expected all values to match";case b.Iterator:return"Expected Iterator";case b.Literal:return`Expected ${typeof Z.schema.const==="string"?`'${Z.schema.const}'`:Z.schema.const}`;case b.Never:return"Never";case b.Not:return"Value should not match";case b.Null:return"Expected null";case b.NumberExclusiveMaximum:return`Expected number to be less than ${Z.schema.exclusiveMaximum}`;case b.NumberExclusiveMinimum:return`Expected number to be greater than ${Z.schema.exclusiveMinimum}`;case b.NumberMaximum:return`Expected number to be less or equal to ${Z.schema.maximum}`;case b.NumberMinimum:return`Expected number to be greater or equal to ${Z.schema.minimum}`;case b.NumberMultipleOf:return`Expected number to be a multiple of ${Z.schema.multipleOf}`;case b.Number:return"Expected number";case b.Object:return"Expected object";case b.ObjectAdditionalProperties:return"Unexpected property";case b.ObjectMaxProperties:return`Expected object to have no more than ${Z.schema.maxProperties} properties`;case b.ObjectMinProperties:return`Expected object to have at least ${Z.schema.minProperties} properties`;case b.ObjectRequiredProperty:return"Expected required property";case b.Promise:return"Expected Promise";case b.RegExp:return"Expected string to match regular expression";case b.StringFormatUnknown:return`Unknown format '${Z.schema.format}'`;case b.StringFormat:return`Expected string to match '${Z.schema.format}' format`;case b.StringMaxLength:return`Expected string length less or equal to ${Z.schema.maxLength}`;case b.StringMinLength:return`Expected string length greater or equal to ${Z.schema.minLength}`;case b.StringPattern:return`Expected string to match '${Z.schema.pattern}'`;case b.String:return"Expected string";case b.Symbol:return"Expected symbol";case b.TupleLength:return`Expected tuple to have ${Z.schema.maxItems||0} elements`;case b.Tuple:return"Expected tuple";case b.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${Z.schema.maxByteLength}`;case b.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${Z.schema.minByteLength}`;case b.Uint8Array:return"Expected Uint8Array";case b.Undefined:return"Expected undefined";case b.Union:return"Expected union value";case b.Void:return"Expected void";case b.Kind:return`Expected kind '${Z.schema[q0]}'`;default:return"Unknown error type"}}function tV(){return iE}var iE;var QJ=N(()=>{g0();JJ();iE=oE});function w4(Z){return Z.replace(/~/g,"~0").replace(/\//g,"~1")}function D0(Z){return Z!==void 0}function i(Z,Y,Q,J,q=[]){return{type:Z,schema:Y,path:Q,value:J,message:tV()({errorType:Z,path:Q,schema:Y,value:J,errors:q}),errors:q}}function*sE(Z,Y,Q,J){}function*aE(Z,Y,Q,J){}function*rE(Z,Y,Q,J){if(!H4(J))return yield i(b.Array,Z,Q,J);if(D0(Z.minItems)&&!(J.length>=Z.minItems))yield i(b.ArrayMinItems,Z,Q,J);if(D0(Z.maxItems)&&!(J.length<=Z.maxItems))yield i(b.ArrayMaxItems,Z,Q,J);for(let z=0;z<J.length;z++)yield*z6(Z.items,Y,`${Q}/${z}`,J[z]);if(Z.uniqueItems===!0&&!function(){let z=new Set;for(let W of J){let U=D5(W);if(z.has(U))return!1;else z.add(U)}return!0}())yield i(b.ArrayUniqueItems,Z,Q,J);if(!(D0(Z.contains)||D0(Z.minContains)||D0(Z.maxContains)))return;let q=D0(Z.contains)?Z.contains:o4(),X=J.reduce((z,W,U)=>z6(q,Y,`${Q}${U}`,W).next().done===!0?z+1:z,0);if(X===0)yield i(b.ArrayContains,Z,Q,J);if(d6(Z.minContains)&&X<Z.minContains)yield i(b.ArrayMinContains,Z,Q,J);if(d6(Z.maxContains)&&X>Z.maxContains)yield i(b.ArrayMaxContains,Z,Q,J)}function*tE(Z,Y,Q,J){if(!Y5(J))yield i(b.AsyncIterator,Z,Q,J)}function*eE(Z,Y,Q,J){if(!VZ(J))return yield i(b.BigInt,Z,Q,J);if(D0(Z.exclusiveMaximum)&&!(J<Z.exclusiveMaximum))yield i(b.BigIntExclusiveMaximum,Z,Q,J);if(D0(Z.exclusiveMinimum)&&!(J>Z.exclusiveMinimum))yield i(b.BigIntExclusiveMinimum,Z,Q,J);if(D0(Z.maximum)&&!(J<=Z.maximum))yield i(b.BigIntMaximum,Z,Q,J);if(D0(Z.minimum)&&!(J>=Z.minimum))yield i(b.BigIntMinimum,Z,Q,J);if(D0(Z.multipleOf)&&J%Z.multipleOf!==BigInt(0))yield i(b.BigIntMultipleOf,Z,Q,J)}function*ZP(Z,Y,Q,J){if(!FZ(J))yield i(b.Boolean,Z,Q,J)}function*YP(Z,Y,Q,J){yield*z6(Z.returns,Y,Q,J.prototype)}function*QP(Z,Y,Q,J){if(!UZ(J))return yield i(b.Date,Z,Q,J);if(D0(Z.exclusiveMaximumTimestamp)&&!(J.getTime()<Z.exclusiveMaximumTimestamp))yield i(b.DateExclusiveMaximumTimestamp,Z,Q,J);if(D0(Z.exclusiveMinimumTimestamp)&&!(J.getTime()>Z.exclusiveMinimumTimestamp))yield i(b.DateExclusiveMinimumTimestamp,Z,Q,J);if(D0(Z.maximumTimestamp)&&!(J.getTime()<=Z.maximumTimestamp))yield i(b.DateMaximumTimestamp,Z,Q,J);if(D0(Z.minimumTimestamp)&&!(J.getTime()>=Z.minimumTimestamp))yield i(b.DateMinimumTimestamp,Z,Q,J);if(D0(Z.multipleOfTimestamp)&&J.getTime()%Z.multipleOfTimestamp!==0)yield i(b.DateMultipleOfTimestamp,Z,Q,J)}function*JP(Z,Y,Q,J){if(!X5(J))yield i(b.Function,Z,Q,J)}function*qP(Z,Y,Q,J){let q=globalThis.Object.values(Z.$defs),X=Z.$defs[Z.$ref];yield*z6(X,[...Y,...q],Q,J)}function*XP(Z,Y,Q,J){if(!q5(J))return yield i(b.Integer,Z,Q,J);if(D0(Z.exclusiveMaximum)&&!(J<Z.exclusiveMaximum))yield i(b.IntegerExclusiveMaximum,Z,Q,J);if(D0(Z.exclusiveMinimum)&&!(J>Z.exclusiveMinimum))yield i(b.IntegerExclusiveMinimum,Z,Q,J);if(D0(Z.maximum)&&!(J<=Z.maximum))yield i(b.IntegerMaximum,Z,Q,J);if(D0(Z.minimum)&&!(J>=Z.minimum))yield i(b.IntegerMinimum,Z,Q,J);if(D0(Z.multipleOf)&&J%Z.multipleOf!==0)yield i(b.IntegerMultipleOf,Z,Q,J)}function*zP(Z,Y,Q,J){let q=!1;for(let X of Z.allOf)for(let z of z6(X,Y,Q,J))q=!0,yield z;if(q)return yield i(b.Intersect,Z,Q,J);if(Z.unevaluatedProperties===!1){let X=new RegExp(IZ(Z));for(let z of Object.getOwnPropertyNames(J))if(!X.test(z))yield i(b.IntersectUnevaluatedProperties,Z,`${Q}/${z}`,J)}if(typeof Z.unevaluatedProperties==="object"){let X=new RegExp(IZ(Z));for(let z of Object.getOwnPropertyNames(J))if(!X.test(z)){let W=z6(Z.unevaluatedProperties,Y,`${Q}/${z}`,J[z]).next();if(!W.done)yield W.value}}}function*HP(Z,Y,Q,J){if(!Q5(J))yield i(b.Iterator,Z,Q,J)}function*WP(Z,Y,Q,J){if(J!==Z.const)yield i(b.Literal,Z,Q,J)}function*UP(Z,Y,Q,J){yield i(b.Never,Z,Q,J)}function*KP(Z,Y,Q,J){if(z6(Z.not,Y,Q,J).next().done===!0)yield i(b.Not,Z,Q,J)}function*BP(Z,Y,Q,J){if(!$Z(J))yield i(b.Null,Z,Q,J)}function*$P(Z,Y,Q,J){if(!D6.IsNumberLike(J))return yield i(b.Number,Z,Q,J);if(D0(Z.exclusiveMaximum)&&!(J<Z.exclusiveMaximum))yield i(b.NumberExclusiveMaximum,Z,Q,J);if(D0(Z.exclusiveMinimum)&&!(J>Z.exclusiveMinimum))yield i(b.NumberExclusiveMinimum,Z,Q,J);if(D0(Z.maximum)&&!(J<=Z.maximum))yield i(b.NumberMaximum,Z,Q,J);if(D0(Z.minimum)&&!(J>=Z.minimum))yield i(b.NumberMinimum,Z,Q,J);if(D0(Z.multipleOf)&&J%Z.multipleOf!==0)yield i(b.NumberMultipleOf,Z,Q,J)}function*FP(Z,Y,Q,J){if(!D6.IsObjectLike(J))return yield i(b.Object,Z,Q,J);if(D0(Z.minProperties)&&!(Object.getOwnPropertyNames(J).length>=Z.minProperties))yield i(b.ObjectMinProperties,Z,Q,J);if(D0(Z.maxProperties)&&!(Object.getOwnPropertyNames(J).length<=Z.maxProperties))yield i(b.ObjectMaxProperties,Z,Q,J);let q=Array.isArray(Z.required)?Z.required:[],X=Object.getOwnPropertyNames(Z.properties),z=Object.getOwnPropertyNames(J);for(let W of q){if(z.includes(W))continue;yield i(b.ObjectRequiredProperty,Z.properties[W],`${Q}/${w4(W)}`,void 0)}if(Z.additionalProperties===!1){for(let W of z)if(!X.includes(W))yield i(b.ObjectAdditionalProperties,Z,`${Q}/${w4(W)}`,J[W])}if(typeof Z.additionalProperties==="object")for(let W of z){if(X.includes(W))continue;yield*z6(Z.additionalProperties,Y,`${Q}/${w4(W)}`,J[W])}for(let W of X){let U=Z.properties[W];if(Z.required&&Z.required.includes(W)){if(yield*z6(U,Y,`${Q}/${w4(W)}`,J[W]),L8(Z)&&!(W in J))yield i(b.ObjectRequiredProperty,U,`${Q}/${w4(W)}`,void 0)}else if(D6.IsExactOptionalProperty(J,W))yield*z6(U,Y,`${Q}/${w4(W)}`,J[W])}}function*VP(Z,Y,Q,J){if(!J5(J))yield i(b.Promise,Z,Q,J)}function*OP(Z,Y,Q,J){if(!D6.IsRecordLike(J))return yield i(b.Object,Z,Q,J);if(D0(Z.minProperties)&&!(Object.getOwnPropertyNames(J).length>=Z.minProperties))yield i(b.ObjectMinProperties,Z,Q,J);if(D0(Z.maxProperties)&&!(Object.getOwnPropertyNames(J).length<=Z.maxProperties))yield i(b.ObjectMaxProperties,Z,Q,J);let[q,X]=Object.entries(Z.patternProperties)[0],z=new RegExp(q);for(let[W,U]of Object.entries(J))if(z.test(W))yield*z6(X,Y,`${Q}/${w4(W)}`,U);if(typeof Z.additionalProperties==="object"){for(let[W,U]of Object.entries(J))if(!z.test(W))yield*z6(Z.additionalProperties,Y,`${Q}/${w4(W)}`,U)}if(Z.additionalProperties===!1)for(let[W,U]of Object.entries(J)){if(z.test(W))continue;return yield i(b.ObjectAdditionalProperties,Z,`${Q}/${w4(W)}`,U)}}function*DP(Z,Y,Q,J){yield*z6(I8(Z,Y),Y,Q,J)}function*MP(Z,Y,Q,J){if(!E6(J))return yield i(b.String,Z,Q,J);if(D0(Z.minLength)&&!(J.length>=Z.minLength))yield i(b.StringMinLength,Z,Q,J);if(D0(Z.maxLength)&&!(J.length<=Z.maxLength))yield i(b.StringMaxLength,Z,Q,J);if(!new RegExp(Z.source,Z.flags).test(J))return yield i(b.RegExp,Z,Q,J)}function*jP(Z,Y,Q,J){if(!E6(J))return yield i(b.String,Z,Q,J);if(D0(Z.minLength)&&!(J.length>=Z.minLength))yield i(b.StringMinLength,Z,Q,J);if(D0(Z.maxLength)&&!(J.length<=Z.maxLength))yield i(b.StringMaxLength,Z,Q,J);if(E6(Z.pattern)){if(!new RegExp(Z.pattern).test(J))yield i(b.StringPattern,Z,Q,J)}if(E6(Z.format)){if(!M6.Has(Z.format))yield i(b.StringFormatUnknown,Z,Q,J);else if(!M6.Get(Z.format)(J))yield i(b.StringFormat,Z,Q,J)}}function*_P(Z,Y,Q,J){if(!OZ(J))yield i(b.Symbol,Z,Q,J)}function*NP(Z,Y,Q,J){if(!E6(J))return yield i(b.String,Z,Q,J);if(!new RegExp(Z.pattern).test(J))yield i(b.StringPattern,Z,Q,J)}function*IP(Z,Y,Q,J){yield*z6(I8(Z,Y),Y,Q,J)}function*LP(Z,Y,Q,J){if(!H4(J))return yield i(b.Tuple,Z,Q,J);if(Z.items===void 0&&J.length!==0)return yield i(b.TupleLength,Z,Q,J);if(J.length!==Z.maxItems)return yield i(b.TupleLength,Z,Q,J);if(!Z.items)return;for(let q=0;q<Z.items.length;q++)yield*z6(Z.items[q],Y,`${Q}/${q}`,J[q])}function*wP(Z,Y,Q,J){if(!l4(J))yield i(b.Undefined,Z,Q,J)}function*AP(Z,Y,Q,J){if(M5(Z,Y,J))return;let q=Z.anyOf.map((X)=>new qJ(z6(X,Y,Q,J)));yield i(b.Union,Z,Q,J,q)}function*GP(Z,Y,Q,J){if(!KZ(J))return yield i(b.Uint8Array,Z,Q,J);if(D0(Z.maxByteLength)&&!(J.length<=Z.maxByteLength))yield i(b.Uint8ArrayMaxByteLength,Z,Q,J);if(D0(Z.minByteLength)&&!(J.length>=Z.minByteLength))yield i(b.Uint8ArrayMinByteLength,Z,Q,J)}function*CP(Z,Y,Q,J){}function*RP(Z,Y,Q,J){if(!D6.IsVoidLike(J))yield i(b.Void,Z,Q,J)}function*TP(Z,Y,Q,J){if(!P6.Get(Z[q0])(Z,J))yield i(b.Kind,Z,Q,J)}function*z6(Z,Y,Q,J){let q=D0(Z.$id)?[...Y,Z]:Y,X=Z;switch(X[q0]){case"Any":return yield*sE(X,q,Q,J);case"Argument":return yield*aE(X,q,Q,J);case"Array":return yield*rE(X,q,Q,J);case"AsyncIterator":return yield*tE(X,q,Q,J);case"BigInt":return yield*eE(X,q,Q,J);case"Boolean":return yield*ZP(X,q,Q,J);case"Constructor":return yield*YP(X,q,Q,J);case"Date":return yield*QP(X,q,Q,J);case"Function":return yield*JP(X,q,Q,J);case"Import":return yield*qP(X,q,Q,J);case"Integer":return yield*XP(X,q,Q,J);case"Intersect":return yield*zP(X,q,Q,J);case"Iterator":return yield*HP(X,q,Q,J);case"Literal":return yield*WP(X,q,Q,J);case"Never":return yield*UP(X,q,Q,J);case"Not":return yield*KP(X,q,Q,J);case"Null":return yield*BP(X,q,Q,J);case"Number":return yield*$P(X,q,Q,J);case"Object":return yield*FP(X,q,Q,J);case"Promise":return yield*VP(X,q,Q,J);case"Record":return yield*OP(X,q,Q,J);case"Ref":return yield*DP(X,q,Q,J);case"RegExp":return yield*MP(X,q,Q,J);case"String":return yield*jP(X,q,Q,J);case"Symbol":return yield*_P(X,q,Q,J);case"TemplateLiteral":return yield*NP(X,q,Q,J);case"This":return yield*IP(X,q,Q,J);case"Tuple":return yield*LP(X,q,Q,J);case"Undefined":return yield*wP(X,q,Q,J);case"Union":return yield*AP(X,q,Q,J);case"Uint8Array":return yield*GP(X,q,Q,J);case"Unknown":return yield*CP(X,q,Q,J);case"Void":return yield*RP(X,q,Q,J);default:if(!P6.Has(X[q0]))throw new eV(Z);return yield*TP(X,q,Q,J)}}function ZO(...Z){let Y=Z.length===3?z6(Z[0],Z[1],"",Z[2]):z6(Z[0],[],"",Z[1]);return new qJ(Y)}var b,eV,qJ;var JJ=N(()=>{s3();e3();P1();ZJ();QJ();I4();a3();r3();YJ();g0();T1();N1();(function(Z){Z[Z.ArrayContains=0]="ArrayContains",Z[Z.ArrayMaxContains=1]="ArrayMaxContains",Z[Z.ArrayMaxItems=2]="ArrayMaxItems",Z[Z.ArrayMinContains=3]="ArrayMinContains",Z[Z.ArrayMinItems=4]="ArrayMinItems",Z[Z.ArrayUniqueItems=5]="ArrayUniqueItems",Z[Z.Array=6]="Array",Z[Z.AsyncIterator=7]="AsyncIterator",Z[Z.BigIntExclusiveMaximum=8]="BigIntExclusiveMaximum",Z[Z.BigIntExclusiveMinimum=9]="BigIntExclusiveMinimum",Z[Z.BigIntMaximum=10]="BigIntMaximum",Z[Z.BigIntMinimum=11]="BigIntMinimum",Z[Z.BigIntMultipleOf=12]="BigIntMultipleOf",Z[Z.BigInt=13]="BigInt",Z[Z.Boolean=14]="Boolean",Z[Z.DateExclusiveMaximumTimestamp=15]="DateExclusiveMaximumTimestamp",Z[Z.DateExclusiveMinimumTimestamp=16]="DateExclusiveMinimumTimestamp",Z[Z.DateMaximumTimestamp=17]="DateMaximumTimestamp",Z[Z.DateMinimumTimestamp=18]="DateMinimumTimestamp",Z[Z.DateMultipleOfTimestamp=19]="DateMultipleOfTimestamp",Z[Z.Date=20]="Date",Z[Z.Function=21]="Function",Z[Z.IntegerExclusiveMaximum=22]="IntegerExclusiveMaximum",Z[Z.IntegerExclusiveMinimum=23]="IntegerExclusiveMinimum",Z[Z.IntegerMaximum=24]="IntegerMaximum",Z[Z.IntegerMinimum=25]="IntegerMinimum",Z[Z.IntegerMultipleOf=26]="IntegerMultipleOf",Z[Z.Integer=27]="Integer",Z[Z.IntersectUnevaluatedProperties=28]="IntersectUnevaluatedProperties",Z[Z.Intersect=29]="Intersect",Z[Z.Iterator=30]="Iterator",Z[Z.Kind=31]="Kind",Z[Z.Literal=32]="Literal",Z[Z.Never=33]="Never",Z[Z.Not=34]="Not",Z[Z.Null=35]="Null",Z[Z.NumberExclusiveMaximum=36]="NumberExclusiveMaximum",Z[Z.NumberExclusiveMinimum=37]="NumberExclusiveMinimum",Z[Z.NumberMaximum=38]="NumberMaximum",Z[Z.NumberMinimum=39]="NumberMinimum",Z[Z.NumberMultipleOf=40]="NumberMultipleOf",Z[Z.Number=41]="Number",Z[Z.ObjectAdditionalProperties=42]="ObjectAdditionalProperties",Z[Z.ObjectMaxProperties=43]="ObjectMaxProperties",Z[Z.ObjectMinProperties=44]="ObjectMinProperties",Z[Z.ObjectRequiredProperty=45]="ObjectRequiredProperty",Z[Z.Object=46]="Object",Z[Z.Promise=47]="Promise",Z[Z.RegExp=48]="RegExp",Z[Z.StringFormatUnknown=49]="StringFormatUnknown",Z[Z.StringFormat=50]="StringFormat",Z[Z.StringMaxLength=51]="StringMaxLength",Z[Z.StringMinLength=52]="StringMinLength",Z[Z.StringPattern=53]="StringPattern",Z[Z.String=54]="String",Z[Z.Symbol=55]="Symbol",Z[Z.TupleLength=56]="TupleLength",Z[Z.Tuple=57]="Tuple",Z[Z.Uint8ArrayMaxByteLength=58]="Uint8ArrayMaxByteLength",Z[Z.Uint8ArrayMinByteLength=59]="Uint8ArrayMinByteLength",Z[Z.Uint8Array=60]="Uint8Array",Z[Z.Undefined=61]="Undefined",Z[Z.Union=62]="Union",Z[Z.Void=63]="Void"})(b||(b={}));eV=class eV extends q6{constructor(Z){super("Unknown type");this.schema=Z}};qJ=class qJ{constructor(Z){this.iterator=Z}[Symbol.iterator](){return this.iterator}First(){let Z=this.iterator.next();return Z.done?void 0:Z.value}}});var YO=N(()=>{JJ();QJ()});function _5(Z){let Y=QO;for(let Q of Z.split("."))if(Y=Y?.properties?.[Q],!Y)return;return Y}function LZ(Z,Y){if(j5.Check(Z,Y))return Y;let Q=[...j5.Errors(Z,Y)][0],J=Q?.path?`${Q.path}: `:"";throw Error(`${J}${Q?.message??"Value does not match schema"}`)}function N5(Z,Y){let Q=_5(Z);if(!Q)return{valid:!1,message:`Unknown configuration key '${Z}'.`};if(j5.Check(Q,Y))return{valid:!0};let J=kP(Q);if(J.length>0)return{valid:!1,message:`Expected one of ${J.join(", ")} for '${Z}', got '${String(Y)}'.`};let q=[...j5.Errors(Q,Y)][0];return{valid:!1,message:`Invalid value for '${Z}': ${q?.message??"schema validation failed"}.`}}function I5(Z,Y){let Q=_5(Z);if(!Q)return{ok:!1,message:`Unknown configuration key '${Z}'.`};let J=Y,q=EP(Q);if(q==="number"||q==="integer"){let z=Number(Y);if(Number.isNaN(z))return{ok:!1,message:`Expected a number for '${Z}', got '${Y}'`};J=z}else if(q==="boolean"){if(!["true","false","on","off"].includes(Y.toLowerCase()))return{ok:!1,message:`Expected a boolean for '${Z}', got '${Y}'`};J=["true","on"].includes(Y.toLowerCase())}else if(q==="array")try{J=JSON.parse(Y)}catch{return{ok:!1,message:`Expected a JSON array for '${Z}', got '${Y}'. Example: ["**/*.foo"]`}}else if(PP(Q)&&Y.toLowerCase()==="null")J=null;let X=N5(Z,J);if(!X.valid)return{ok:!1,message:X.message??`Invalid value for '${Z}'.`};return{ok:!0,value:J}}function kP(Z){return XJ(Z).map((Q)=>Q.const).filter((Q)=>typeof Q==="string")}function EP(Z){let Y=Z.type;if(Y)return Y;for(let Q of XJ(Z)){let J=Q.type;if(J&&J!=="null")return J}return}function XJ(Z){return Z.anyOf??Z.oneOf??Z.allOf??[]}function PP(Z){if(Z.type==="null")return!0;return XJ(Z).some((Y)=>Y.type==="null")}var f,j5;var A4=N(()=>{UF();FF();DF();_F();LF();GF();f3();VV();MV();P1();aF();h3();LV();YJ();YO();x1();f={Array:HF,Boolean:BF,Integer:VF,Literal:MF,Null:NF,Number:wF,Object:R1,Optional:O5,Record:OV,String:iF,Union:B5,Unknown:NV},j5={Check:M5,Errors:ZO}});var xP,b1;var JO=N(()=>{A4();xP=["submodule","env","pkg"],b1={parallelInit:"parallel-init",colonSeparatedPatterns:"colon-separated-patterns"};M6.Set(b1.parallelInit,(Z)=>{if(Z.trim()==="")return!0;return Z.split(",").map((Y)=>Y.trim().toLowerCase()).filter((Y)=>Y.length>0).every((Y)=>xP.includes(Y))});M6.Set(b1.colonSeparatedPatterns,(Z)=>{if(Z==="")return!0;return Z.split(":").every((Y)=>Y.trim().length>0)})});var QO,zJ,w8,qO,HJ;var x1=N(()=>{JO();A4();H0();QO=f.Object({llm:f.Optional(f.Object({provider:f.Optional(f.String()),apiKey:f.Optional(f.String()),baseUrl:f.Optional(f.String()),model:f.Optional(f.String()),temperature:f.Optional(f.Number({minimum:0,maximum:2})),maxTokens:f.Optional(f.Integer({minimum:1})),showThinking:f.Optional(f.Boolean())})),lint:f.Optional(f.Object({onPushBehavior:f.Optional(f.Union([f.Literal("off"),f.Literal("error"),f.Literal("warning")])),maxFileSizeKb:f.Optional(f.Integer({minimum:1}))})),stash:f.Optional(f.Object({undoLimit:f.Optional(f.Integer({minimum:0}))})),commit:f.Optional(f.Object({commitPattern:f.Optional(f.Union([f.Literal("inherit"),f.Literal("comprehensive")])),guidelineCacheDays:f.Optional(f.Integer({minimum:0})),noisyFiles:f.Optional(f.Array(f.String()))})),reword:f.Optional(f.Object({editor:f.Optional(f.Union([f.String(),f.Null()]))})),cache:f.Optional(f.Object({enabled:f.Optional(f.Boolean()),maxAgeMinutes:f.Optional(f.Number({minimum:0}))})),parallel:f.Optional(f.Object({init:f.Optional(f.String({format:b1.parallelInit})),envPaths:f.Optional(f.String({format:b1.colonSeparatedPatterns}))})),viewer:f.Optional(f.Object({highlighting:f.Optional(f.Object({fullfileHighlight:f.Optional(f.Boolean()),maxHunkSize:f.Optional(f.Integer({minimum:1}))})),exitBehavior:f.Optional(f.Union([f.Literal("clearScreen"),f.Literal("nextLine")]))})),defaultEditor:f.String(),enhancedOutput:f.Optional(f.Boolean()),useInlineSubmodule:f.Optional(f.Union([f.Literal("off"),f.Literal("internal"),f.Literal("all")])),useInlineGitConfig:f.Optional(f.Union([f.Literal("off"),f.Literal("internal")])),maxThreadWorkers:f.Optional(f.Integer({minimum:1}))}),zJ=["**/package-lock.json","**/bun.lock","**/yarn.lock","**/pnpm-lock.yaml","**/npm-shrinkwrap.json","**/__snapshots__/*.snap","**/*.snap","**/dist/**","**/build/**","**/coverage/**","**/out/**","**/*.min.js","**/*.min.css"],w8={llm:{provider:"openai",model:"gpt-5-nano",temperature:0.14,maxTokens:void 0,apiKey:void 0,baseUrl:void 0,showThinking:!1},lint:{onPushBehavior:"off",maxFileSizeKb:1024},stash:{undoLimit:10},commit:{commitPattern:"inherit",guidelineCacheDays:30,noisyFiles:[...zJ]},reword:{editor:null},cache:{enabled:!0,maxAgeMinutes:L7},parallel:{init:"submodule,env",envPaths:""},viewer:{highlighting:{fullfileHighlight:!0,maxHunkSize:200000},exitBehavior:"nextLine"},defaultEditor:"code",enhancedOutput:!0,useInlineSubmodule:"internal",useInlineGitConfig:"internal",maxThreadWorkers:8},qO={"llm.provider":"GDX_LLM_PROVIDER","llm.apiKey":"GDX_LLM_API_KEY","llm.baseUrl":"GDX_LLM_BASE_URL","llm.model":"GDX_LLM_MODEL","llm.temperature":"GDX_LLM_TEMPERATURE","llm.maxTokens":"GDX_LLM_MAX_TOKENS","llm.showThinking":"GDX_LLM_SHOW_THINKING","lint.onPushBehavior":"GDX_LINT_ON_PUSH_BEHAVIOR","lint.maxFileSizeKb":"GDX_LINT_MAX_FILE_SIZE_KB","stash.undoLimit":"GDX_STASH_UNDO_LIMIT","commit.commitPattern":"GDX_COMMIT_PATTERN","commit.guidelineCacheDays":"GDX_COMMIT_GUIDELINE_CACHE_DAYS","reword.editor":"GDX_REWORD_EDITOR","cache.enabled":"GDX_CACHE_ENABLED","cache.maxAgeMinutes":"GDX_CACHE_MAX_AGE_MINUTES","parallel.init":"GDX_PARALLEL_INIT","parallel.envPaths":"GDX_PARALLEL_ENV_PATHS","viewer.highlighting.fullfileHighlight":"GDX_VIEWER_HIGHLIGHTING_FULLFILE_HIGHLIGHT","viewer.highlighting.maxHunkSize":"GDX_VIEWER_HIGHLIGHTING_MAX_HUNK_SIZE","viewer.exitBehavior":"GDX_VIEWER_EXIT_BEHAVIOR",defaultEditor:"GDX_DEFAULT_EDITOR",enhancedOutput:"GDX_ENHANCED_OUTPUT",useInlineSubmodule:"GDX_USE_INLINE_SUBMODULE",useInlineGitConfig:"GDX_USE_INLINE_GIT_CONFIG",maxThreadWorkers:"GDX_MAX_THREAD_WORKERS"},HJ={llm:"Configuration for the Language Model (LLM) integration","llm.provider":"LLM provider to use (e.g., openai)","llm.apiKey":"API key for the LLM provider","llm.baseUrl":"Base URL for the LLM API (optional)","llm.model":"Model to use for LLM requests","llm.temperature":"Temperature for LLM generation (0-2)","llm.maxTokens":"Maximum tokens for LLM responses","llm.showThinking":"Whether to show part of LLM reasoning messages",lint:"Configuration for post-commit linting","lint.onPushBehavior":"Lint behavior before push (off, error, warning)","lint.maxFileSizeKb":"Maximum allowed file size in KiB","stash.undoLimit":"Max number of stash drops to keep in history",commit:"Configuration for commit message generation","commit.commitPattern":"Commit message pattern (inherit: learn from repo, comprehensive: fixed format)","commit.guidelineCacheDays":"Days to cache learned commit guidelines per repository","commit.noisyFiles":"Files treated as noisy in commit auto diff summary (array of glob patterns matching relative paths)",reword:"Configuration for rewording commit messages","reword.editor":"Editor command used by gdx reword (overrides global editor when set)",cache:`Configuration for caching mechanism.
|
|
349
|
+
Values that are expensive to get are cached for faster subsequent access.`,"cache.enabled":"Whether caching is enabled","cache.maxAgeMinutes":"Default maximum age of cache entries in minutes (some cache ignore this)",parallel:"Configuration for parallel worktree automation","parallel.init":"Comma-separated list specifying what to init for new forks (submodule, env, pkg)","parallel.envPaths":"Colon-separated list of .gitignore patterns for env files to copy into new forks",viewer:"Configuration for enhanced terminal viewers","viewer.highlighting":"Configuration for syntax highlighting in enhanced viewers","viewer.highlighting.fullfileHighlight":"Highlight diffs by loading full old/new file contents from git or FS when possible (disable for files exceeding viewer.highlighting.maxHunkSize)","viewer.highlighting.maxHunkSize":"Maximum full file size in characters that are allowed for fullfileHighlight to be applied","viewer.exitBehavior":"Behavior when exiting the pager ('nextLine' keeps content in scroll buffer, 'clearScreen' removes pager content from scroll buffer, and 'none' leaves the content and cursor position unchanged)",defaultEditor:"Default code editor to open files with",enhancedOutput:"Whether to enhanced Git's output (modify the output of some git commands when conditions are met)",useInlineSubmodule:"[Experimental] Select submodule implementation mode (off: git-only, internal: gdx internal flow, all: reserved for broader internal usage)",useInlineGitConfig:"[Experimental] Select git config implementation mode (off: use git executable, internal: read/write git config files directly)",maxThreadWorkers:"Maximum number of worker threads for process spawning and high resource intensive tasks (default: 8)"}});import A8 from"fs";import XO from"path";var zO=null,L5,bP,vP,SP,U0,M;var w0=N(()=>{z0();H0();S0();L5={off:-1,fatal:0,error:1,warn:2,info:3,debug:4,verbose:5},bP={off:"BgBlue",fatal:"BgRed",error:"BgRed",warn:"BgYellow",info:"BgBlue",debug:"BgMagenta",verbose:"BgCyan"},vP={off:"",fatal:"FATAL",error:"ERROR",warn:"WARN",info:"INFO",debug:"DEBUG",verbose:"VERBOSE"},SP={off:"Cyan",fatal:"Red",error:"Red",warn:"Yellow",info:"Cyan",debug:"Magenta",verbose:"Blue"};U0=class U0{static logFile=Zz;static logLevel=L5[p.logLevel];static timeLabels=new Map;moduleName;static initialized=!1;static allLogs=[{timestamp:new Date().toISOString(),level:"info",message:`
|
|
350
350
|
|
|
351
351
|
=== New gdx session started ===
|
|
352
352
|
LocalMachineDate: ${new Date().toLocaleString()}
|
|
353
|
-
AppVersion: ${
|
|
353
|
+
AppVersion: ${o6}
|
|
354
354
|
Platform: ${process.platform}
|
|
355
355
|
Arch: ${process.arch}
|
|
356
|
-
`,module:"logger"}];constructor(Z){this.moduleName=Z,U0.ensureInitialized()}static wouldLog(Z){return
|
|
356
|
+
`,module:"logger"}];constructor(Z){this.moduleName=Z,U0.ensureInitialized()}static wouldLog(Z){return L5[Z]<=U0.logLevel}static ensureInitialized(){if(!U0.initialized){if(U0.initialized=!0,!H2)return;U0.initializeLogDirectory(),process.on("exit",()=>U0.flushLogs())}}static initializeLogDirectory(){let Z=XO.dirname(U0.logFile);try{if(!A8.existsSync(Z))A8.mkdirSync(Z,{recursive:!0})}catch{}}static logInternal(Z,Y,Q){let q={timestamp:new Date().toISOString(),level:Z,message:Y,module:Q};if(zO)zO(q);if(L5[Z]<=L5[p.logLevel])U0.printMessage(Z,Y,Q);if(!H2)return;U0.ensureInitialized(),U0.allLogs.push(q)}static printMessage(Z,Y,Q){let J=bP[Z],q=vP[Z],X=SP[Z],z=t(Y,100,{indent:" "}),W=M0(J)+H.bright+H.white+` ${q} `+H.reset+H.invert+` ${Q} ${H.reset+M0(X)} ${z}`+H.reset;if(Z==="fatal"||Z==="error")process.stderr.write(W+`
|
|
357
357
|
`);else process.stdout.write(W+`
|
|
358
|
-
`)}fatal(Z){U0.logInternal("fatal",Z,this.moduleName)}error(Z){U0.logInternal("error",Z,this.moduleName)}warn(Z){U0.logInternal("warn",Z,this.moduleName)}info(Z){U0.logInternal("info",Z,this.moduleName)}debug(Z){U0.logInternal("debug",Z,this.moduleName)}verbose(Z){U0.logInternal("verbose",Z,this.moduleName)}time(Z,Y){if(!Y){U0.timeLabels.set(Z,performance.now());return}return U0.time(Z,Y,this.moduleName)}timeEnd(Z){U0.timeEnd(Z,this.moduleName)}async timeAsync(Z,Y){return await U0.timeAsync(Z,Y,this.moduleName)}static fatal(Z,Y="gdx"){U0.logInternal("fatal",Z,Y)}static error(Z,Y="gdx"){U0.logInternal("error",Z,Y)}static warn(Z,Y="gdx"){U0.logInternal("warn",Z,Y)}static info(Z,Y="gdx"){U0.logInternal("info",Z,Y)}static debug(Z,Y="gdx"){U0.logInternal("debug",Z,Y)}static verbose(Z,Y="gdx"){U0.logInternal("verbose",Z,Y)}static async timeAsync(Z,Y,Q="gdx"){let J=performance.now();try{return await Y()}finally{let q=performance.now(),X=
|
|
358
|
+
`)}fatal(Z){U0.logInternal("fatal",Z,this.moduleName)}error(Z){U0.logInternal("error",Z,this.moduleName)}warn(Z){U0.logInternal("warn",Z,this.moduleName)}info(Z){U0.logInternal("info",Z,this.moduleName)}debug(Z){U0.logInternal("debug",Z,this.moduleName)}verbose(Z){U0.logInternal("verbose",Z,this.moduleName)}time(Z,Y){if(!Y){U0.timeLabels.set(Z,performance.now());return}return U0.time(Z,Y,this.moduleName)}timeEnd(Z){U0.timeEnd(Z,this.moduleName)}async timeAsync(Z,Y){return await U0.timeAsync(Z,Y,this.moduleName)}static fatal(Z,Y="gdx"){U0.logInternal("fatal",Z,Y)}static error(Z,Y="gdx"){U0.logInternal("error",Z,Y)}static warn(Z,Y="gdx"){U0.logInternal("warn",Z,Y)}static info(Z,Y="gdx"){U0.logInternal("info",Z,Y)}static debug(Z,Y="gdx"){U0.logInternal("debug",Z,Y)}static verbose(Z,Y="gdx"){U0.logInternal("verbose",Z,Y)}static async timeAsync(Z,Y,Q="gdx"){let J=performance.now();try{return await Y()}finally{let q=performance.now(),X=g8.getTimeFromMS(q-J).modern();U0.debug(`${Z} took ${X}`,Q)}}static time(Z,Y,Q="gdx"){let J=performance.now();if(!Y){U0.timeLabels.set(Z,J);return}try{return Y()}finally{let q=performance.now(),X=g8.getTimeFromMS(q-J).modern();U0.debug(`${Z} took ${X}`,Q)}}static timeEnd(Z,Y="gdx"){let Q=performance.now(),J=U0.timeLabels.get(Z);if(J){let q=g8.getTimeFromMS(Q-J).modern();U0.debug(`${Z} took ${q}`,Y),U0.timeLabels.delete(Z)}else U0.warn(`No such label '${Z}' for timeEnd`,Y)}static flushLogs(){if(U0.allLogs.length===0)return;try{let Z=XO.dirname(U0.logFile);if(!A8.existsSync(Z))A8.mkdirSync(Z,{recursive:!0});let Y="";if(A8.existsSync(U0.logFile))Y=A8.readFileSync(U0.logFile,"utf-8");let Q=U0.allLogs.map(({timestamp:X,level:z,message:W,module:U})=>{let K=z.toUpperCase().padEnd(5);return W=t(bX(W),100,{indent:33,redundancyLv:-1,mode:"strict"}),`${X} [${K}] ${U}: ${W}`}).join(`
|
|
359
359
|
`),J=Y?Y+`
|
|
360
|
-
`+Q:Q;if(Buffer.byteLength(J,"utf-8")>
|
|
360
|
+
`+Q:Q;if(Buffer.byteLength(J,"utf-8")>Hz){let X=J.split(`
|
|
361
361
|
`),z=Math.floor(X.length/2);J=X.slice(z).join(`
|
|
362
|
-
`)}
|
|
363
|
-
`+o.from(J).toString({color:!0}))}return Y}async set(Z,Y){let Q=
|
|
364
|
-
`+o.from(z).toString({color:!0}))}q[X]=Y}getAll(){return this.config}getConfigPath(){return this.configPath}isDefault(Z){let Y=Z.split("."),Q=this.config,J=N4;for(let q of Y){if(Q&&typeof Q==="object"&&q in Q)Q=Q[q];else Q=void 0;if(J&&typeof J==="object"&&q in J)J=J[q];else J=void 0}return Q===J}mergeConfig(Z,Y){let Q=structuredClone(Z),J=(q,X,z="")=>{for(let W in X){let U=z?`${z}.${W}`:W,K=X[W],B=q[W];if(!D5(U))continue;if(typeof K==="object"&&K!==null&&!Array.isArray(K))if(typeof B==="object"&&B!==null)J(q[W],K,U);else this.logger.warn(`Type mismatch for '${U}'. Expected ${typeof B}, got object. Ignoring value.`);else{let F=M5(U,K);if(F.valid)q[W]=K;else this.logger.warn(`${F.message??`Invalid value for '${U}'.`} Ignoring value.`)}}};return J(Q,Y),Q}removeSecureKeys(Z){let Y=structuredClone(Z);for(let Q of b8){let J=Q.split("."),q=Y;for(let X=0;X<J.length-1;X++){if(!q[J[X]])return Y;q=q[J[X]]}delete q[J[J.length-1]]}return Y}async deleteSecureKey(Z){if(!b8.includes(Z))return!1;try{return await(await Y3()).deletePassword(D7,Z)}catch{return!1}}applyEnvOverrides(){for(let[Z,Y]of Object.entries(oV)){let Q=process.env[Y];if(Q!==void 0){let J=j5(Z,Q);if(!J.ok){this.logger.warn(`Environment variable ${Y}: ${J.message}. Ignoring.`);continue}this.set(Z,J.value)}}}}function _x(){let Z=process.env.GDX_CONFIG_PATH;if(Z)return Z;if(l(uZ))return uZ;if(l(eQ))return eQ;return uZ}async function K0(){if(!N5)N5=new rV(_x()),await N5.load();return N5}var aV=null,N5=null;var $6=j(()=>{d$();z0();U6();E1();H0();w0();w8()});var Nx,Ix,Lx,tV,I5;var L5=j(()=>{H0();w8();Nx=f.Object({version:f.String(),cacheSchemaVersion:f.Literal(V7),createdAt:f.Number(),updatedAt:f.Number(),lastPruneAt:f.Number()}),Ix=f.Object({createdAt:f.Number(),updatedAt:f.Number(),expiresAt:f.Number()}),Lx=f.Object({name:f.String(),extensions:f.Array(f.String()),filenames:f.Optional(f.Array(f.String())),color:f.Number(),id:f.Optional(f.Number())}),tV=f.Object({lastUpdatedAt:f.String(),languages:f.Array(Lx)}),I5=f.Object({meta:Nx,data:f.Record(f.String(),f.Unknown()),entryMeta:f.Record(f.String(),Ix)})});import wx from"path";class ZO{cachePath;isDisabled=!1;cache={...eV};memoryData={};memoryEntryMeta={};loaded=!1;dirty=!1;loadingPromise=null;logger=new M("cache");constructor(Z){this.cachePath=Z||h6}async ensureLoaded(){if(this.loaded)return;if(this.loadingPromise){await this.loadingPromise;return}this.loadingPromise=this.load();try{await this.loadingPromise}finally{this.loadingPromise=null}}pruneExpiredKeys(){let Z=Date.now(),Y=0,Q=[];for(let[J,q]of Object.entries(this.cache.entryMeta))if(q.expiresAt!==Q3&&Z>q.expiresAt)Q.push(J);for(let J of Q){delete this.cache.entryMeta[J];let q=J.split("."),X=[],z=this.cache.data;for(let W of q)if(z&&typeof z==="object"&&W in z)X.push({obj:z,key:W}),z=z[W];else break;if(X.length>0){let W=X[X.length-1];delete W.obj[W.key],Y++}for(let W=X.length-2;W>=0;W--){let{obj:U,key:K}=X[W],B=U[K];if(B&&typeof B==="object"&&Object.keys(B).length===0)delete U[K];else break}}if(this.cache.meta.lastPruneAt=Z,Y>0)this.cache.meta.updatedAt=Z,this.dirty=!0;return Y}async load(){if(this.loaded)return;if(!(await K0()).get("cache.enabled")){this.resetCache(!1),this.loaded=!0,this.isDisabled=!0,this.logger.debug("Cache is disabled via configuration");return}try{let Y=await p0(this.cachePath,"utf-8"),Q=JSON.parse(Y);try{_Z(I5,Q)}catch{this.logger.warn("Cache file structure is outdated or invalid. Cache will be reset on next write."),this.resetCache(!1),this.loaded=!0;return}if(Q.meta.version!==l6)this.logger.debug(`App version mismatch: stored=${Q.meta.version}, current=${l6}. Updating version number.`),Q.meta.version=l6,this.dirty=!0;this.cache=Q;let q=(Date.now()-this.cache.meta.lastPruneAt)/dZ;if(q>=iX){this.logger.debug(`Last prune was ${q.toFixed(1)} days ago. Running cache pruning...`);let X=this.pruneExpiredKeys();if(X>0)this.logger.debug(`Pruned ${X} expired cache entries`);else this.logger.debug("No expired entries found during pruning")}}catch(Y){let Q=new o(Y);if(Q.code!=="ENOENT")this.logger.debug(`Failed to parse cache file at ${this.cachePath}: ${Q.message}`);this.resetCache(!1)}this.loaded=!0}resetCache(Z=!0){if(this.cache=structuredClone(eV),Z)this.dirty=!0}resetMemoryCache(){this.memoryData={},this.memoryEntryMeta={}}async get(Z,Y){if(this.isDisabled)return Y;await this.ensureLoaded();let Q=this.cache.entryMeta[Z];if(!Q)return Y;if(Date.now()>Q.expiresAt)return this.logger.debug(`Cache entry expired: ${Z}. expiresAt=${new Date(Q.expiresAt).toISOString()}, now=${new Date().toISOString()}`),await this.delete(Z),Y;let J=Z.split("."),q=this.cache.data;for(let X of J)if(q&&typeof q==="object"&&X in q)q=q[X];else return Y;return this.logger.debug(`Cache ${Z} hit.`),q}async getOneOff(Z,Y){if(await this.ensureLoaded(),this.isDisabled)return Y;if(!this.memoryEntryMeta[Z])return Y;let J=Z.split("."),q=this.memoryData;for(let X of J)if(q&&typeof q==="object"&&X in q)q=q[X];else return Y;return this.logger.debug(`Memory cache ${Z} hit.`),q}async set(Z,Y,Q){if(this.isDisabled)return;let J=await K0();await this.ensureLoaded();let q=Z.split("."),X=this.cache.data,z=Q?.maxAgeMinutes??J.get("cache.maxAgeMinutes")??_7;this.logger.debug(`Setting cache ${Z} with maxAgeMinutes=${z}`);for(let B=0;B<q.length-1;B++){let $=q[B];if(!($ in X)||typeof X[$]!=="object")X[$]={};X=X[$]}let W=q[q.length-1];X[W]=Y;let U=Date.now(),K=Number.isFinite(z)?U+Math.max(z,0)*60*1000:Q3;this.cache.entryMeta[Z]={createdAt:this.cache.entryMeta[Z]?.createdAt??U,updatedAt:U,expiresAt:K},this.cache.meta.updatedAt=U,this.dirty=!0}async setOneOff(Z,Y){if(await this.ensureLoaded(),this.isDisabled)return;let Q=Z.split("."),J=this.memoryData;for(let z=0;z<Q.length-1;z++){let W=Q[z];if(!(W in J)||typeof J[W]!=="object")J[W]={};J=J[W]}let q=Q[Q.length-1];J[q]=Y;let X=Date.now();this.memoryEntryMeta[Z]={createdAt:this.memoryEntryMeta[Z]?.createdAt??X,updatedAt:X}}async delete(Z){if(this.isDisabled)return!1;if(await this.ensureLoaded(),!this.cache.entryMeta[Z])return!1;delete this.cache.entryMeta[Z];let Y=Z.split("."),Q=[],J=this.cache.data;for(let q of Y)if(J&&typeof J==="object"&&q in J)Q.push({obj:J,key:q}),J=J[q];else return!1;if(Q.length>0){let q=Q[Q.length-1];delete q.obj[q.key]}for(let q=Q.length-2;q>=0;q--){let{obj:X,key:z}=Q[q],W=X[z];if(W&&typeof W==="object"&&Object.keys(W).length===0)delete X[z];else break}return this.cache.meta.updatedAt=Date.now(),this.dirty=!0,this.logger.debug(`Cache entry deleted: ${Z}`),!0}async deleteOneOff(Z){if(await this.ensureLoaded(),this.isDisabled)return!1;if(!this.memoryEntryMeta[Z])return!1;delete this.memoryEntryMeta[Z];let Y=Z.split("."),Q=[],J=this.memoryData;for(let q of Y)if(J&&typeof J==="object"&&q in J)Q.push({obj:J,key:q}),J=J[q];else return!1;if(Q.length>0){let q=Q[Q.length-1];delete q.obj[q.key]}for(let q=Q.length-2;q>=0;q--){let{obj:X,key:z}=Q[q],W=X[z];if(W&&typeof W==="object"&&Object.keys(W).length===0)delete X[z];else break}return!0}async getAll(){return await this.ensureLoaded(),this.cache}getCachePath(){return this.cachePath}flush(){if(!this.dirty)return;try{let Z=wx.dirname(this.cachePath);n0(Z,{recursive:!0});let Y=JSON.stringify(this.cache);B8(this.cachePath,Y,"utf-8"),this.dirty=!1,this.logger.debug(`Cache flushed to ${this.cachePath}`)}catch(Z){let Y=new o(Z);this.logger.warn(`Failed to flush cache: ${Y.message}`)}}async clear(){await this.ensureLoaded(),this.resetCache(),this.resetMemoryCache()}}async function I0(){if(!n8){if(n8=new ZO,await n8.ensureLoaded(),!n8.isDisabled)Ax()}return n8}function w5(){n8=null}function Ax(){M.debug("Registering cache flush hook on exit","cache"),IX(()=>{if(n8)n8.flush()})}var eV,Q3,n8=null;var z8=j(()=>{U6();z0();H0();w0();$6();L5();w8();eV={meta:{version:l6,cacheSchemaVersion:V7,createdAt:Date.now(),updatedAt:Date.now(),lastPruneAt:Date.now()},data:{},entryMeta:{}},Q3=Number.MAX_SAFE_INTEGER});async function YO(Z,Y){let Q=await I0(),J=`which.${Z}`,q=await Q.get(J);if(q!=null&&l(q))return q;try{let X=Y?await Y():await H8(Z);if(!X)return null;return await Q.set(J,X),X}catch(X){throw M.warn(`Failed to get which exec for ${Z}: ${X}`,"cache-ctrl"),X}}var QO=j(()=>{g0();z8();w0();U6()});import NZ from"path";import{createInterface as Gx}from"readline";import{writeFile as Cx}from"fs/promises";import{unlink as Rx}from"fs/promises";function P1(Z){return(...Q)=>{if(Ex(Q))return P1(Z(...Q));return kx(()=>Z(...Q))}}async function kx(Z){await p.threadResources.acquire();try{return await Z()}finally{p.threadResources.release()}}function Ex(Z){if(Z.length!==1)return!1;let[Y]=Z;if(!Y||typeof Y!=="object")return!1;return!Array.isArray(Y)&&!("raw"in Y)}function A5(Z={}){let Y=new AbortController;return{$:P1(q8({cancelSignal:Y.signal,...Z,verbose:q3})),abort:()=>Y.abort(),signal:Y.signal}}async function b1(Z){let Y=Gx({input:process.stdin,output:process.stdout});return new Promise((Q)=>{Y.question(Z,(J)=>{Y.close(),Q(J.trim())})})}async function H8(Z){return await YO(Z,async()=>{if(Z.includes(NZ.sep)){let X=NZ.resolve(Z);return await sQ(X)?X:null}let Y=process.platform==="win32",Q=[""];if(Y)Q=["",...(process.env.PATHEXT||".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH").split(";").filter(Boolean)];let J=[];if(J.push(process.cwd()),process.argv[1])J.push(NZ.dirname(process.argv[1]));if(J.push(NZ.dirname(process.execPath)),process.env.PATH)J.push(...process.env.PATH.split(NZ.delimiter));let q=[...new Set(J)];for(let X of q){if(!X)continue;for(let z of Q){let W=NZ.join(X,Z+z);if(await sQ(W))return W}}return null})}async function G5(Z){try{switch(process.platform){case"win32":return await k({input:Z})`clip`,!0;case"darwin":return await k({input:Z})`pbcopy`,!0;case"linux":try{return await k({input:Z})`xclip -selection clipboard`,!0}catch{return await k({input:Z})`xsel --clipboard --input`,!0}default:return!1}}catch{return!1}}function x0(Z={}){let Y=!Z.message;if(Z={message:"",interval:70,frames:cX,animateGradient:!1,gradientColor:E.Zinc050,gradientColorBg:E.Zinc400,gradientSpeed:0.13,gradientInterval:3,...Z},!process.stdout.isTTY)return{stop:()=>{},start:(W=!0)=>{if(W)process.stdout.write(`
|
|
365
|
-
`)},setMessage:(
|
|
366
|
-
`:"")),q=!0,X=setInterval(
|
|
367
|
-
`+u(z,{color:!0})),1}return q??0}function
|
|
362
|
+
`)}A8.writeFileSync(U0.logFile,J,"utf-8")}catch{}}};M=U0});import yP from"path";async function WJ(){HO??=import("keytar");let Z=await HO,Y=Z.default??Z;if(!Y||typeof Y.setPassword!=="function")throw new o("Keytar module does not expose setPassword.","KEYTAR_INVALID");return Y}class WO{configPath;config=structuredClone(w8);loaded=!1;logger=new M("ConfigService");constructor(Z){this.configPath=Z||cZ}async load(){if(this.loaded)return;try{let Z=await f0(this.configPath,"utf-8"),Y=j3(Z);this.config=this.mergeConfig(w8,Y)}catch(Z){let Y=new o(Z);if(Y.code!=="ENOENT")this.logger.warn(`Failed to parse config file at ${this.configPath}: ${Y.message}`);this.config=structuredClone(w8)}this.applyEnvOverrides(),this.loaded=!0}async save(){let Z=this.removeSecureKeys(this.config),Y=L3(Z),Q=yP.dirname(this.configPath);if(!l(Q))i0(Q,{recursive:!0});await c0(this.configPath,Y,"utf-8")}get(Z,Y){let Q=Z.split("."),J=this.config;for(let q of Q)if(J&&typeof J==="object"&&q in J)J=J[q];else return Y;return J}async getSecure(Z,Y){let Q=this.get(Z);if(Q!==void 0)return Q;if(S4.includes(Z))try{let q=await(await WJ()).getPassword(_7,Z);if(q){let X=Z.split("."),z=this.config;for(let W=0;W<X.length-1;W++){let U=X[W];if(!(U in z)||typeof z[U]!=="object")z[U]={};z=z[U]}return z[X[X.length-1]]=q,q}}catch(J){this.logger.warn(`Failed to load secure key '${Z}' from keychain:
|
|
363
|
+
`+o.from(J).toString({color:!0}))}return Y}async set(Z,Y){let Q=N5(Z,Y);if(!Q.valid){this.logger.warn(`${Q.message??`Invalid value for '${Z}'.`} Ignoring value.`);return}let J=Z.split("."),q=this.config;for(let z=0;z<J.length-1;z++){let W=J[z];if(!(W in q)||typeof q[W]!=="object")q[W]={};q=q[W]}let X=J[J.length-1];if(S4.includes(Z))try{await(await WJ()).setPassword(_7,Z,String(Y))}catch(z){this.logger.warn(`Failed to save secure key '${Z}' to keychain:
|
|
364
|
+
`+o.from(z).toString({color:!0}))}q[X]=Y}getAll(){return this.config}getConfigPath(){return this.configPath}isDefault(Z){let Y=Z.split("."),Q=this.config,J=w8;for(let q of Y){if(Q&&typeof Q==="object"&&q in Q)Q=Q[q];else Q=void 0;if(J&&typeof J==="object"&&q in J)J=J[q];else J=void 0}return Q===J}mergeConfig(Z,Y){let Q=structuredClone(Z),J=(q,X,z="")=>{for(let W in X){let U=z?`${z}.${W}`:W,K=X[W],B=q[W];if(!_5(U))continue;if(typeof K==="object"&&K!==null&&!Array.isArray(K))if(typeof B==="object"&&B!==null)J(q[W],K,U);else this.logger.warn(`Type mismatch for '${U}'. Expected ${typeof B}, got object. Ignoring value.`);else{let V=N5(U,K);if(V.valid)q[W]=K;else this.logger.warn(`${V.message??`Invalid value for '${U}'.`} Ignoring value.`)}}};return J(Q,Y),Q}removeSecureKeys(Z){let Y=structuredClone(Z);for(let Q of S4){let J=Q.split("."),q=Y;for(let X=0;X<J.length-1;X++){if(!q[J[X]])return Y;q=q[J[X]]}delete q[J[J.length-1]]}return Y}async deleteSecureKey(Z){if(!S4.includes(Z))return!1;try{return await(await WJ()).deletePassword(_7,Z)}catch{return!1}}applyEnvOverrides(){for(let[Z,Y]of Object.entries(qO)){let Q=process.env[Y];if(Q!==void 0){let J=I5(Z,Q);if(!J.ok){this.logger.warn(`Environment variable ${Y}: ${J.message}. Ignoring.`);continue}this.set(Z,J.value)}}}}function fP(){let Z=process.env.GDX_CONFIG_PATH;if(Z)return Z;if(l(cZ))return cZ;if(l(z2))return z2;return cZ}async function K0(){if(!w5)w5=new WO(fP()),await w5.load();return w5}var HO=null,w5=null;var $6=N(()=>{ZF();z0();J6();x1();H0();w0();A4()});var hP,gP,mP,UO,A5;var G5=N(()=>{H0();A4();hP=f.Object({version:f.String(),cacheSchemaVersion:f.Literal(M7),createdAt:f.Number(),updatedAt:f.Number(),lastPruneAt:f.Number()}),gP=f.Object({createdAt:f.Number(),updatedAt:f.Number(),expiresAt:f.Number()}),mP=f.Object({name:f.String(),extensions:f.Array(f.String()),filenames:f.Optional(f.Array(f.String())),color:f.Number(),id:f.Optional(f.Number())}),UO=f.Object({lastUpdatedAt:f.String(),languages:f.Array(mP)}),A5=f.Object({meta:hP,data:f.Record(f.String(),f.Unknown()),entryMeta:f.Record(f.String(),gP)})});import pP from"path";class BO{cachePath;isDisabled=!1;cache={...KO};memoryData={};memoryEntryMeta={};loaded=!1;dirty=!1;loadingPromise=null;logger=new M("cache");constructor(Z){this.cachePath=Z||g6}async ensureLoaded(){if(this.loaded)return;if(this.loadingPromise){await this.loadingPromise;return}this.loadingPromise=this.load();try{await this.loadingPromise}finally{this.loadingPromise=null}}pruneExpiredKeys(){let Z=Date.now(),Y=0,Q=[];for(let[J,q]of Object.entries(this.cache.entryMeta))if(q.expiresAt!==UJ&&Z>q.expiresAt)Q.push(J);for(let J of Q){delete this.cache.entryMeta[J];let q=J.split("."),X=[],z=this.cache.data;for(let W of q)if(z&&typeof z==="object"&&W in z)X.push({obj:z,key:W}),z=z[W];else break;if(X.length>0){let W=X[X.length-1];delete W.obj[W.key],Y++}for(let W=X.length-2;W>=0;W--){let{obj:U,key:K}=X[W],B=U[K];if(B&&typeof B==="object"&&Object.keys(B).length===0)delete U[K];else break}}if(this.cache.meta.lastPruneAt=Z,Y>0)this.cache.meta.updatedAt=Z,this.dirty=!0;return Y}async load(){if(this.loaded)return;if(!(await K0()).get("cache.enabled")){this.resetCache(!1),this.loaded=!0,this.isDisabled=!0,this.logger.debug("Cache is disabled via configuration");return}try{let Y=await f0(this.cachePath,"utf-8"),Q=JSON.parse(Y);try{LZ(A5,Q)}catch{this.logger.warn("Cache file structure is outdated or invalid. Cache will be reset on next write."),this.resetCache(!1),this.loaded=!0;return}if(Q.meta.version!==o6)this.logger.debug(`App version mismatch: stored=${Q.meta.version}, current=${o6}. Updating version number.`),Q.meta.version=o6,this.dirty=!0;this.cache=Q;let q=(Date.now()-this.cache.meta.lastPruneAt)/lZ;if(q>=Xz){this.logger.debug(`Last prune was ${q.toFixed(1)} days ago. Running cache pruning...`);let X=this.pruneExpiredKeys();if(X>0)this.logger.debug(`Pruned ${X} expired cache entries`);else this.logger.debug("No expired entries found during pruning")}}catch(Y){let Q=new o(Y);if(Q.code!=="ENOENT")this.logger.debug(`Failed to parse cache file at ${this.cachePath}: ${Q.message}`);this.resetCache(!1)}this.loaded=!0}resetCache(Z=!0){if(this.cache=structuredClone(KO),Z)this.dirty=!0}resetMemoryCache(){this.memoryData={},this.memoryEntryMeta={}}async get(Z,Y){if(this.isDisabled)return Y;await this.ensureLoaded();let Q=this.cache.entryMeta[Z];if(!Q)return Y;if(Date.now()>Q.expiresAt)return this.logger.debug(`Cache entry expired: ${Z}. expiresAt=${new Date(Q.expiresAt).toISOString()}, now=${new Date().toISOString()}`),await this.delete(Z),Y;let J=Z.split("."),q=this.cache.data;for(let X of J)if(q&&typeof q==="object"&&X in q)q=q[X];else return Y;return this.logger.debug(`Cache ${Z} hit.`),q}async getOneOff(Z,Y){if(await this.ensureLoaded(),this.isDisabled)return Y;if(!this.memoryEntryMeta[Z])return Y;let J=Z.split("."),q=this.memoryData;for(let X of J)if(q&&typeof q==="object"&&X in q)q=q[X];else return Y;return this.logger.debug(`Memory cache ${Z} hit.`),q}async set(Z,Y,Q){if(this.isDisabled)return;let J=await K0();await this.ensureLoaded();let q=Z.split("."),X=this.cache.data,z=Q?.maxAgeMinutes??J.get("cache.maxAgeMinutes")??L7;this.logger.debug(`Setting cache ${Z} with maxAgeMinutes=${z}`);for(let B=0;B<q.length-1;B++){let $=q[B];if(!($ in X)||typeof X[$]!=="object")X[$]={};X=X[$]}let W=q[q.length-1];X[W]=Y;let U=Date.now(),K=Number.isFinite(z)?U+Math.max(z,0)*60*1000:UJ;this.cache.entryMeta[Z]={createdAt:this.cache.entryMeta[Z]?.createdAt??U,updatedAt:U,expiresAt:K},this.cache.meta.updatedAt=U,this.dirty=!0}async setOneOff(Z,Y){if(await this.ensureLoaded(),this.isDisabled)return;let Q=Z.split("."),J=this.memoryData;for(let z=0;z<Q.length-1;z++){let W=Q[z];if(!(W in J)||typeof J[W]!=="object")J[W]={};J=J[W]}let q=Q[Q.length-1];J[q]=Y;let X=Date.now();this.memoryEntryMeta[Z]={createdAt:this.memoryEntryMeta[Z]?.createdAt??X,updatedAt:X}}async delete(Z){if(this.isDisabled)return!1;if(await this.ensureLoaded(),!this.cache.entryMeta[Z])return!1;delete this.cache.entryMeta[Z];let Y=Z.split("."),Q=[],J=this.cache.data;for(let q of Y)if(J&&typeof J==="object"&&q in J)Q.push({obj:J,key:q}),J=J[q];else return!1;if(Q.length>0){let q=Q[Q.length-1];delete q.obj[q.key]}for(let q=Q.length-2;q>=0;q--){let{obj:X,key:z}=Q[q],W=X[z];if(W&&typeof W==="object"&&Object.keys(W).length===0)delete X[z];else break}return this.cache.meta.updatedAt=Date.now(),this.dirty=!0,this.logger.debug(`Cache entry deleted: ${Z}`),!0}async deleteOneOff(Z){if(await this.ensureLoaded(),this.isDisabled)return!1;if(!this.memoryEntryMeta[Z])return!1;delete this.memoryEntryMeta[Z];let Y=Z.split("."),Q=[],J=this.memoryData;for(let q of Y)if(J&&typeof J==="object"&&q in J)Q.push({obj:J,key:q}),J=J[q];else return!1;if(Q.length>0){let q=Q[Q.length-1];delete q.obj[q.key]}for(let q=Q.length-2;q>=0;q--){let{obj:X,key:z}=Q[q],W=X[z];if(W&&typeof W==="object"&&Object.keys(W).length===0)delete X[z];else break}return!0}async getAll(){return await this.ensureLoaded(),this.cache}getCachePath(){return this.cachePath}flush(){if(!this.dirty)return;try{let Z=pP.dirname(this.cachePath);i0(Z,{recursive:!0});let Y=JSON.stringify(this.cache);$4(this.cachePath,Y,"utf-8"),this.dirty=!1,this.logger.debug(`Cache flushed to ${this.cachePath}`)}catch(Z){let Y=new o(Z);this.logger.warn(`Failed to flush cache: ${Y.message}`)}}async clear(){await this.ensureLoaded(),this.resetCache(),this.resetMemoryCache()}}async function I0(){if(!i4){if(i4=new BO,await i4.ensureLoaded(),!i4.isDisabled)uP()}return i4}function C5(){i4=null}function uP(){M.debug("Registering cache flush hook on exit","cache"),xX(()=>{if(i4)i4.flush()})}var KO,UJ,i4=null;var W4=N(()=>{J6();z0();H0();w0();$6();G5();A4();KO={meta:{version:o6,cacheSchemaVersion:M7,createdAt:Date.now(),updatedAt:Date.now(),lastPruneAt:Date.now()},data:{},entryMeta:{}},UJ=Number.MAX_SAFE_INTEGER});async function $O(Z,Y){let Q=await I0(),J=`which.${Z}`,q=await Q.get(J);if(q!=null&&l(q))return q;try{let X=Y?await Y():await s4(Z);if(!X)return null;return await Q.set(J,X),X}catch(X){throw M.warn(`Failed to get which exec for ${Z}: ${X}`,"cache-ctrl"),X}}var FO=N(()=>{m0();W4();w0();J6()});import v1 from"path";import{createInterface as dP}from"readline";import{writeFile as cP}from"fs/promises";import{unlink as lP}from"fs/promises";function S1(Z){return(...Q)=>{if(iP(Q))return S1(Z(...Q));return oP(()=>Z(...Q))}}async function oP(Z){await p.threadResources.acquire();try{return await Z()}finally{p.threadResources.release()}}function iP(Z){if(Z.length!==1)return!1;let[Y]=Z;if(!Y||typeof Y!=="object")return!1;return!Array.isArray(Y)&&!("raw"in Y)}function R5(Z={}){let Y=new AbortController;return{$:S1(z4({cancelSignal:Y.signal,...Z,verbose:$J})),abort:()=>Y.abort(),signal:Y.signal}}async function y1(Z){let Y=dP({input:process.stdin,output:process.stdout});return new Promise((Q)=>{Y.question(Z,(J)=>{Y.close(),Q(J.trim())})})}async function s4(Z){return await $O(Z,async()=>{let Y=process.platform==="win32";if(Z.includes("/")||Y&&Z.includes("\\")){let X=v1.resolve(Z);return await Q2(X)?X:null}let Q=[""];if(Y)Q=["",...(process.env.PATHEXT||".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH").split(";").filter(Boolean)];let J=[];if(J.push(process.cwd()),process.argv[1])J.push(v1.dirname(process.argv[1]));if(J.push(v1.dirname(process.execPath)),process.env.PATH)J.push(...process.env.PATH.split(v1.delimiter));let q=[...new Set(J)];for(let X of q){if(!X)continue;for(let z of Q){let W=v1.join(X,Z+z);if(await Q2(W))return W}}return null})}async function T5(Z){try{switch(process.platform){case"win32":return await k({input:Z})`clip`,!0;case"darwin":return await k({input:Z})`pbcopy`,!0;case"linux":try{return await k({input:Z})`xclip -selection clipboard`,!0}catch{return await k({input:Z})`xsel --clipboard --input`,!0}default:return!1}}catch{return!1}}function P0(Z={}){let Y=!Z.message;if(Z={message:"",interval:70,frames:Yz,animateGradient:!1,gradientColor:E.Zinc050,gradientColorBg:E.Zinc400,gradientSpeed:0.13,gradientInterval:3,progress:{current:0,total:-1},...Z},!process.stdout.isTTY)return{stop:()=>{},start:(K=!0)=>{if(K)process.stdout.write(`
|
|
365
|
+
`)},setMessage:(K)=>{},updateProgress:(K,B)=>{},options:Z};let Q=0,J=0,q=!0,X=null,z=0,W=()=>{if(!q)return;let K=Z.frames[Q%Z.frames.length],B=z<=performance.now();if(Z.message){let $=" "+Z.message+U();if(Z.animateGradient&&Q6.supportsColor>=3){let V=J%Z.gradientInterval;if(V<=1){let D=Cz.easeInOut(V),F=Az($,Z.gradientColor,Z.gradientColorBg,D,0.3);K+=F}else K+=M0(y4(Z.gradientColorBg))+$+H.reset;if(B)J+=Z.gradientSpeed??0.1}else K+=$}if(process.stdout.write("\r\x1B[K"+K),B)Q++,z=performance.now()+Z.interval};if(!Y)X=setInterval(W,Z.interval),process.stdout.write("\x1B[?25l"),W();return{stop:()=>{if(q=!1,X)clearInterval(X),X=null;process.stdout.write("\r\x1B[K\x1B[?25h")},start:(K=!0)=>{if(!q)process.stdout.write("\x1B[?25l"+(K?`
|
|
366
|
+
`:"")),q=!0,X=setInterval(W,Z.interval)},setMessage:(K)=>{Z.message=K,W()},updateProgress:(K,B)=>{if(Z.progress){if(B!=null)Z.progress.total=B;Z.progress.current=o0.clamp(Z.progress.current+K,0,Z.progress.total),W()}},options:Z};function U(){if(!Z.progress||Z.progress.total<=0||Z.progress.current<0)return"";return` (${Z.progress.current}/${Z.progress.total})`}}async function k5(Z,Y){let Q=await K0(),J=Y?BJ(Y):[],q=J.length?J.shift():Q.getAll().defaultEditor;if(!q)throw new o("Editor is not configured.","EDITOR_NOT_CONFIGURED");let X=await s4(q);if(!X)throw new o(`Editor "${q}" not found in PATH. Set a valid editor in the configuration.`,"EDITOR_NOT_FOUND");if(J.length)await E0`${X} ${J} ${Z}`;else await E0`${X} ${Z}`}async function f1(Z){if(!Z){if(n6)await lP(n6).catch(h6);p.exitCodeOverride=-1;return}if(n6)await cP(n6,Z,"utf-8");p.exitCodeOverride=X8}function BJ(Z){let Y=[],Q="",J=!1,q=!1;for(let X=0;X<Z.length;X++){let z=Z[X];if(z==="'"&&!q)J=!J;else if(z==='"'&&!J)q=!q;else if(z===" "&&!J&&!q){if(Q)Y.push(Q),Q=""}else Q+=z}if(Q)Y.push(Q);return Y}async function wZ(Z,Y,Q=null,J=">"){let q=0;try{if(Q){let X=S1(z4({stdout:{file:Q,append:J===">>"},stderr:"inherit"})),{exitCode:z}=await X`${Z} ${Y}`;q=z}else{let{exitCode:X}=await E0`${Z} ${Y}`;q=X}}catch(X){let z=o.from(X),W=X.signal;if(W)z.code=W;if(z.code==="SIGINT"||z.code==="SIGTERM"||z.code==="SIGABRT"||z.code==="SIGKILL")return M.debug(`Git command was killed by signal: ${z.code}. Treating as failure with exit code 1.`),M.verbose("Full error details: "+u(z,{color:!0})),1;if(z.code==="ENOENT")return M.error(`Git executable not found: "${Z}". Ensure git is installed and in your PATH.`),1;if(z.code==="EACCES")return M.error(`Permission denied when trying to execute git: "${Z}". Check your permissions for this executable.`),1;if(z.code==="SIGPIPE")return M.debug("Git command failed with SIGPIPE. This may indicate that the pipe was no longer inuse by the consumer process."),1;if(z.name===p6.name&&z.message.startsWith("Command failed"))return q||1;return M.error(`Command failed.
|
|
367
|
+
`+u(z,{color:!0})),1}return q??0}function $J(Z,Y){if(Y.type!=="duration")return;let Q="done";if(Y.result.failed)Q="FAILED";else if(Y.result.timedOut)Q="TIMEOUT";else if(Y.result.isCanceled)Q="CANCELED";else if(Y.result.isTerminated)Q="TERMINATED";nP.debug(`${H.bright+H.dim}$ ${H.reset+Y.escapedCommand+H.dim} (${Q} in ${Y.result.durationMs}ms)`)}function E5(Z,Y){let Q=Z.length-Z.replace(/\n/g,"").length+1;process.stdout.write(`\x1B[${Q}F`),process.stdout.write("\x1B[0J");for(let J of Y.split(`
|
|
368
368
|
`))process.stdout.write(`\x1B[2K${J}
|
|
369
|
-
`)}var
|
|
369
|
+
`)}var nP,KJ=()=>process.stdout.isTTY&&process.stdin.isTTY,k,E0;var m0=N(()=>{aY();z0();R0();v0();H0();$6();S0();FO();w0();nP=new M("shell");k=S1(z4({stdout:"pipe",stderr:"pipe",verbose:$J}));E0=S1(z4({stdout:"inherit",stderr:"inherit",verbose:$J}))});var jO=L6((t60,MO)=>{var{hasOwnProperty:FJ}=Object.prototype,VJ=(Z,Y={})=>{if(typeof Y==="string")Y={section:Y};Y.align=Y.align===!0,Y.newline=Y.newline===!0,Y.sort=Y.sort===!0,Y.whitespace=Y.whitespace===!0||Y.align===!0,Y.platform=Y.platform||typeof process<"u"&&process.platform,Y.bracketedArray=Y.bracketedArray!==!1;let Q=Y.platform==="win32"?`\r
|
|
370
370
|
`:`
|
|
371
|
-
`,J=Y.whitespace?" = ":"=",q=[],X=Y.sort?Object.keys(Z).sort():Object.keys(Z),z=0;if(Y.align)z=
|
|
372
|
-
`).map((W)=>W.trim()).filter(Boolean);if(z.length===0)q=null;else{let W="";try{let U=(await A0(Z,["--abbrev-ref","HEAD"])).trim();if(U&&U!=="HEAD")W=(await
|
|
373
|
-
`).map((
|
|
374
|
-
`).map(($)=>$.trim()).filter(($)=>$.length>0).map(($)=>{let
|
|
371
|
+
`,J=Y.whitespace?" = ":"=",q=[],X=Y.sort?Object.keys(Z).sort():Object.keys(Z),z=0;if(Y.align)z=G4(X.filter((K)=>Z[K]===null||Array.isArray(Z[K])||typeof Z[K]!=="object").map((K)=>Array.isArray(Z[K])?`${K}[]`:K).concat([""]).reduce((K,B)=>G4(K).length>=G4(B).length?K:B)).length;let W="",U=Y.bracketedArray?"[]":"";for(let K of X){let B=Z[K];if(B&&Array.isArray(B))for(let $ of B)W+=G4(`${K}${U}`).padEnd(z," ")+J+G4($)+Q;else if(B&&typeof B==="object")q.push(K);else W+=G4(K).padEnd(z," ")+J+G4(B)+Q}if(Y.section&&W.length)W="["+G4(Y.section)+"]"+(Y.newline?Q+Q:Q)+W;for(let K of q){let B=OO(K,".").join("\\."),$=(Y.section?Y.section+".":"")+B,V=VJ(Z[K],{...Y,section:$});if(W.length&&V.length)W+=Q;W+=V}return W};function OO(Z,Y){var Q=0,J=0,q=0,X=[];do if(q=Z.indexOf(Y,Q),q!==-1){if(Q=q+Y.length,q>0&&Z[q-1]==="\\")continue;X.push(Z.slice(J,q)),J=q+Y.length}while(q!==-1);return X.push(Z.slice(J)),X}var VO=(Z,Y={})=>{Y.bracketedArray=Y.bracketedArray!==!1;let Q=Object.create(null),J=Q,q=null,X=/^\[([^\]]*)\]\s*$|^([^=]+)(=(.*))?$/i,z=Z.split(/[\r\n]+/g),W={};for(let K of z){if(!K||K.match(/^\s*[;#]/)||K.match(/^\s*$/))continue;let B=K.match(X);if(!B)continue;if(B[1]!==void 0){if(q=P5(B[1]),q==="__proto__"){J=Object.create(null);continue}J=Q[q]=Q[q]||Object.create(null);continue}let $=P5(B[2]),V;if(Y.bracketedArray)V=$.length>2&&$.slice(-2)==="[]";else W[$]=(W?.[$]||0)+1,V=W[$]>1;let D=V&&$.endsWith("[]")?$.slice(0,-2):$;if(D==="__proto__")continue;let F=B[3]?P5(B[4]):!0,O=F==="true"||F==="false"||F==="null"?JSON.parse(F):F;if(V){if(!FJ.call(J,D))J[D]=[];else if(!Array.isArray(J[D]))J[D]=[J[D]]}if(Array.isArray(J[D]))J[D].push(O);else J[D]=O}let U=[];for(let K of Object.keys(Q)){if(!FJ.call(Q,K)||typeof Q[K]!=="object"||Array.isArray(Q[K]))continue;let B=OO(K,".");J=Q;let $=B.pop(),V=$.replace(/\\\./g,".");for(let D of B){if(D==="__proto__")continue;if(!FJ.call(J,D)||typeof J[D]!=="object")J[D]=Object.create(null);J=J[D]}if(J===Q&&V===$)continue;J[V]=Q[K],U.push(K)}for(let K of U)delete Q[K];return Q},DO=(Z)=>{return Z.startsWith('"')&&Z.endsWith('"')||Z.startsWith("'")&&Z.endsWith("'")},G4=(Z)=>{if(typeof Z!=="string"||Z.match(/[=\r\n]/)||Z.match(/^\[/)||Z.length>1&&DO(Z)||Z!==Z.trim())return JSON.stringify(Z);return Z.split(";").join("\\;").split("#").join("\\#")},P5=(Z)=>{if(Z=(Z||"").trim(),DO(Z)){if(Z.charAt(0)==="'")Z=Z.slice(1,-1);try{Z=JSON.parse(Z)}catch{}}else{let Y=!1,Q="";for(let J=0,q=Z.length;J<q;J++){let X=Z.charAt(J);if(Y){if("\\;#".indexOf(X)!==-1)Q+=X;else Q+="\\"+X;Y=!1}else if(";#".indexOf(X)!==-1)break;else if(X==="\\")Y=!0;else Q+=X}if(Y)Q+="\\";return Q.trim()}return Z};MO.exports={parse:VO,decode:VO,stringify:VJ,encode:VJ,safe:G4,unsafe:P5}});import x5 from"crypto";import e from"path";function A6(Z,Y){let Q=x5.createHash("sha1").update(Y).digest("hex");return`${Z}.${Q}`}function g1(Z,Y=sP){return x5.createHash("sha1").update(Z).digest("hex").slice(0,Y)}function rP(Z,Y,Q,J,q){let X=g1(q||"__empty__",16);return`git.${Z}.${Q}.revParse.${Y}.${J}.${X}`}async function b5(Z,Y,Q){let J=["-C",e.resolve(Y),"rev-parse",...Q];return(await k`${Z} ${J}`).stdout.trim()}async function tP(Z,Y){let Q=e.resolve(Y),J=`${Z}|${Q}`,q=NO.get(J);if(q)return q;let X=Q;try{let z=await b5(Z,Q,["--show-toplevel"]);if(z)X=e.resolve(z);let W=await b5(Z,Q,["--git-common-dir"]);if(W){let U=e.isAbsolute(W)?W:e.resolve(X,W);if(d0(U).includes("/.git/worktrees/")){let B=e.dirname(e.dirname(U));X=e.dirname(B)}else X=e.dirname(U)}}catch{X=Q}return NO.set(J,X),X}function t6(Z,Y){let Q=Array.isArray(Z)?Z.join(" "):Z,J=Y?e.resolve(Y):process.cwd();return`${Q}|${J}`}function m1(Z,Y){let Q=Array.isArray(Z)?Z[0]:Z;if(Y)return{gitExec:Q,repoPath:e.resolve(Y)};if(Array.isArray(Z))for(let J=Z.length-2;J>=0;J--){if(Z[J]!=="-C")continue;let q=Z[J+1];if(typeof q==="string"&&q.trim().length>0)return{gitExec:Q,repoPath:e.resolve(q)}}return{gitExec:Q,repoPath:process.cwd()}}function IO(Z){return/^head(?:[~^].*)?(?:\^\{.+\})?$/i.test(Z.trim())}function eP(Z){let Y=(J)=>Z.includes(J),Q=Z.some((J)=>J.includes("@{u}"));if(Y("--git-path")||Y("--git-dir")||Y("--git-common-dir")||Y("--absolute-git-dir"))return"gitPath";if(Y("--show-toplevel")||Y("--show-superproject-working-tree")||Y("--show-cdup")||Y("--show-prefix")||Y("--is-inside-work-tree"))return"workspace";if(Q||Y("--symbolic-full-name")&&Z.some((J)=>J.includes("@{")))return"upstream";if(Z.some((J)=>IO(J)))return"head";return"refs"}function Zx(Z){let Y=[];for(let Q=0;Q<Z.length;Q++){let J=Z[Q];if(!J)continue;if(aP.has(J)){Q++;continue}if(J==="--"){for(let q=Q+1;q<Z.length;q++)if(Z[q])Y.push(Z[q]);break}if(J.startsWith("-"))continue;Y.push(J)}return Y}function Yx(Z){return Z.trim().replace(/\^\{[^}]+\}$/g,"").replace(/[~^].*$/,"")}function Qx(Z){let Y=Yx(Z);if(!Y)return[];if(/^[0-9a-f]{7,40}$/i.test(Y))return[];if(IO(Y))return["HEAD","logs/HEAD"];if(/^stash(?:@\{\d+\})?$/i.test(Y))return["refs/stash","logs/refs/stash"];if(Y.startsWith("refs/"))return[Y,`logs/${Y}`];if(/^[a-z0-9._-]+\/.+/i.test(Y))return[`refs/remotes/${Y}`,`logs/refs/remotes/${Y}`];return[`refs/heads/${Y}`,`logs/refs/heads/${Y}`,`refs/tags/${Y}`,`logs/refs/tags/${Y}`]}async function Jx(Z,Y,Q){let J=Array.from(new Set(Q.map((X)=>X.trim()).filter(Boolean)));if(J.length===0)return"";return(await Promise.all(J.map(async(X)=>{let z=await R8(Z,Y,X),W=await dZ(z);return`${X}=${W??"null"}`}))).sort().join("|")}async function A0(Z,Y,Q){let J=m1(Z,Q);return await G0(J.gitExec,J.repoPath,Y)}async function AZ(Z,Y,Q){let J=Y.trim();if(!J)return null;let q=Q?.type?`${J}^{${Q.type}}`:J;return(await A0(Z,["--verify",q],Q?.repoPath)).trim()||null}async function r4(Z){if((await A0(Z,["--is-inside-work-tree"])).trim()!=="true")return M.error("This command must be run inside a git repository.","git"),!1;return!0}async function NJ(Z,Y){let Q=await I0(),J=A6("git.stashEntry",`${t6(Z)}|${Y}`),q=await Q.getOneOff(J);if(q!==void 0)return q;try{let X=`stash@{${Y}}`,z=await A0(Z,[X]),{stdout:W}=await k`${Z} log -1 --format=%s ${X}`,U={sha:z.trim(),message:W.trim()};return await Q.setOneOff(J,U),U}catch{return await Q.setOneOff(J,null),null}}async function LO(Z,Y,Q){await k`${Z} stash store -m ${Q} ${Y}`}function qx(Z){let Y=Z.trim();if(!Y)return"";Y=Y.replace(/\\+/g,"/");let Q=Y.match(/^(?:[^@]+@)?([^:/]+):(.+)$/);if(Q&&!Y.includes("://")){let J=Q[1].toLowerCase(),q=Q[2];return jJ(J,q)}try{let J=new URL(Y),q=J.hostname.toLowerCase(),X=J.pathname;return jJ(q,X)}catch{return jJ("",Y)}}async function Xx(Z){let Y=await I0(),Q=A6("git.defaultRemoteName",t6(Z)),J=await Y.getOneOff(Q);if(J!==void 0)return J;let q=null;try{let{stdout:X}=await k`${Z} remote`,z=X.trim().split(`
|
|
372
|
+
`).map((W)=>W.trim()).filter(Boolean);if(z.length===0)q=null;else{let W="";try{let U=(await A0(Z,["--abbrev-ref","HEAD"])).trim();if(U&&U!=="HEAD")W=(await C8(Z,`branch.${U}.remote`)).trim()}catch{W=""}if(W&&z.includes(W))q=W;else if(z.includes("origin"))q="origin";else q=z[0]}}catch{q=null}return await Y.setOneOff(Q,q),q}async function S5(Z){let Y=await I0(),Q=A6("git.normalizedRemoteUrl",t6(Z)),J=await Y.getOneOff(Q);if(J!==void 0)return J;let q=await Xx(Z);if(!q)return await Y.setOneOff(Q,null),null;try{let{stdout:X}=await k`${Z} remote get-url ${q}`,z=X.trim();if(!z)return await Y.setOneOff(Q,null),null;let U=qx(z)||null;return await Y.setOneOff(Q,U),U}catch{return await Y.setOneOff(Q,null),null}}async function y5(Z){let Y=await I0(),Q=A6("git.mainWorktreeRoot",t6(Z)),J=await Y.getOneOff(Q);if(J!==void 0)return J;let q=(await A0(Z,["--show-toplevel"])).trim()||process.cwd(),X=(await A0(Z,["--git-common-dir"])).trim();if(!X)return await Y.setOneOff(Q,q),q;let z=e.isAbsolute(X)?X:e.resolve(q,X);if(d0(z).includes("/.git/worktrees/")){let B=e.dirname(e.dirname(z)),V=e.dirname(B)||q;return await Y.setOneOff(Q,V),V}try{let $=Z4(z,"utf-8").split(`
|
|
373
|
+
`).map((V)=>V.trim()).find((V)=>V.toLowerCase().startsWith("gitdir:"));if($){let V=$.split(":").slice(1).join(":").trim(),D=e.isAbsolute(V)?V:e.resolve(q,V);if(d0(D).includes("/.git/worktrees/")){let O=e.dirname(e.dirname(D)),_=e.dirname(O)||q;return await Y.setOneOff(Q,_),_}}}catch{}let K=e.dirname(z)||q;return await Y.setOneOff(Q,K),K}async function p1(Z,Y){let Q=await R8(Z,Y,"CHERRY_PICK_HEAD");return!!Q&&l(Q)}async function IJ(Z,Y,Q=!0){if(await A0(Z,["--verify","HEAD"])===Y)return"HEAD";let q=(await k`${Z} rev-list --first-parent --count ${`${Y}..HEAD`}`).stdout.trim(),X=Number(q);if(!Number.isInteger(X)||X<1)return;if(!Q)return`HEAD~${X}`;return await A0(Z,["--verify",`HEAD~${X}^{commit}`])===Y?`HEAD~${X}`:void 0}async function LJ(){let Y=(await K0()).get("useInlineGitConfig","internal");if(Y==="off"||Y==="internal")return Y;return"internal"}async function zx(Z,Y){let Q=[];if(process.env.GIT_CONFIG_NOSYSTEM!=="1"){let X=process.env.GIT_CONFIG_SYSTEM?.trim()?process.env.GIT_CONFIG_SYSTEM:process.platform==="win32"?"C:/ProgramData/Git/config":"/etc/gitconfig";Q.push(X)}let J=process.env.GIT_CONFIG_GLOBAL;if(J&&J.trim().length>0)Q.push(e.resolve(J));else{let X=process.env.HOME||process.env.USERPROFILE||"";if(X){let z=process.env.XDG_CONFIG_HOME||e.join(X,".config");Q.push(e.join(z,"git","config")),Q.push(e.join(X,".gitconfig"))}}let q=await R8(Z,Y,"config");if(q)Q.push(q);return Array.from(new Set(Q.map((X)=>e.resolve(X))))}function Hx(Z){let Y=!1,Q="";for(let J of Z){if(Y){Q+=`\\${J}`,Y=!1;continue}if(J==="\\"){Y=!0;continue}Q+=J==="."?"\\.":J}if(Y)Q+="\\";return Q}function Wx(Z){return Z.replace(/^\s*\[([^\s"'\]]+)\s+"((?:[^"\\]|\\.)*)"\]\s*$/gm,(Y,Q,J)=>{return`[${Q} "${Hx(J)}"]`})}async function wO(Z){let Y=e.resolve(Z),Q=await dZ(Y)??null,J=h1.get(Y);if(J&&J.mtime===Q)return J.content;if(Q===null){let q={};return h1.set(Y,{mtime:null,content:q}),q}try{let q=await f0(Y,"utf-8"),X=Wx(q),z=_J.parse(X,{bracketedArray:!1});return h1.set(Y,{mtime:Q,content:z}),z}catch{let q={};return h1.set(Y,{mtime:null,content:q}),q}}function MJ(Z,Y){let Q=Y.toLowerCase();for(let[J,q]of Object.entries(Z))if(J.toLowerCase()===Q)return q;return}function wJ(Z){if(Z===void 0)return null;if(Array.isArray(Z)){if(Z.length===0)return null;return wJ(Z[Z.length-1])}if(Z===null)return"null";if(typeof Z==="boolean"||typeof Z==="number")return String(Z);if(typeof Z==="string")return Z.replace(/\\"/g,'"');return null}function Ux(Z,Y){let Q=Y.split(".").map((K)=>K.trim()).filter(Boolean);if(Q.length<2)return null;let J=Q[0],q=Q[Q.length-1],X=Q.length>2?Q.slice(1,-1).join("."):null,z=X?[`${J} "${X}"`,`${J} "${X.replace(/\./g,"\\.")}"`,`${J} '${X}'`,`${J}.${X}`]:[J],W;for(let K of z)if(W=MJ(Z,K),W!==void 0)break;if(W===void 0)return null;if(X&&typeof W==="object"&&W&&!Array.isArray(W)){let K=MJ(W,X);if(K!==void 0)W=K}if(!W||typeof W!=="object"||Array.isArray(W))return null;let U=MJ(W,q);return wJ(U)}function Kx(Z){let Y=Z.match(/^([^\s"']+)\s+"((?:[^"\\]|\\.)*)"$/);if(!Y)return{section:Z.trim()};return{section:Y[1].trim(),subsection:Y[2].replace(/\\(["\\.])/g,"$1")}}function Bx(Z){let Y=[];for(let[Q,J]of Object.entries(Z)){if(!J||typeof J!=="object"||Array.isArray(J))continue;let q=Kx(Q),X=J;for(let[z,W]of Object.entries(X)){let U=Array.isArray(W)?W:[W];for(let K of U){let B=wJ(K);if(B==null)continue;let $=q.subsection?`${q.section}.${q.subsection}.${z}`:`${q.section}.${z}`;Y.push({key:$,value:B})}}}return Y}async function C8(Z,Y,Q){let J=await LJ(),q=m1(Z,Q);if(J==="off")try{let{stdout:W}=await k`${q.gitExec} -C ${q.repoPath} config ${Y}`;return W.trim()}catch{return""}let X=await zx(Z,q.repoPath),z="";for(let W of X){let U=await wO(W),K=Ux(U,Y);if(K!==null)z=K}return z}async function AJ(Z,Y,Q){let J=await LJ(),q=m1(Z,Q?.repoPath);if(J==="off")try{let K=["-C",q.repoPath,"config"];if(Q?.filePath)K.push("--file",Q.filePath);K.push("--get-regexp",Y);let B=(await k`${q.gitExec} ${K}`).stdout.trim();if(!B)return[];return B.split(`
|
|
374
|
+
`).map(($)=>$.trim()).filter(($)=>$.length>0).map(($)=>{let V=$.search(/\s+/);if(V<0)return null;let D=$.slice(0,V).trim(),F=$.slice(V).trim();if(!D)return null;return{key:D,value:F}}).filter(($)=>!!$)}catch{return[]}let X=Q?.filePath?e.isAbsolute(Q.filePath)?Q.filePath:e.resolve(q.repoPath,Q.filePath):await R8(Z,q.repoPath,"config");if(!X)return[];let z;try{z=new RegExp(Y)}catch{return[]}let W=await wO(X);return Bx(W).filter((K)=>z.test(K.key))}function $x(Z,Y){let Q=Y.indexOf("."),J=(Q>=0?Y.slice(0,Q):Y).trim().toLowerCase(),q=Q>=0?Y.slice(Q+1).trim():"";if(!J)return{content:Z,removed:!1};let X=Z.split(/\r?\n/),z=[],W=!1,U=!1;for(let B of X){let $=B.match(/^\s*\[([^\]]+)\]\s*$/);if($){let V=$[1].trim(),D=V.match(/^([^\s"']+)\s+"((?:[^"\\]|\\.)*)"$/);if(D){let F=D[1].trim().toLowerCase(),O=D[2].replace(/\\(["\\.])/g,"$1");W=F===J&&q.length>0&&O===q}else W=V.toLowerCase()===J&&q.length===0;if(W){U=!0;continue}}if(!W)z.push(B)}let K=z.join(`
|
|
375
375
|
`).replace(/\n{3,}/g,`
|
|
376
376
|
|
|
377
377
|
`);if(Z.endsWith(`
|
|
378
378
|
`)&&!K.endsWith(`
|
|
379
379
|
`))K+=`
|
|
380
|
-
`;return{content:K,removed:U}}async function
|
|
381
|
-
`).filter((K)=>K.length>0);return await Q.set(q,U),M.debug(`Cache store for ${q}: ${U.length} branches`,"cache-ctrl"),U}catch(z){return M.warn(`Failed to get git branches: ${o.from(z)}`,"cache-ctrl"),[]}}async function
|
|
382
|
-
`)){if(!W.trim())continue;if(W.startsWith("worktree ")){if(z)X.push(z);z={path:W.slice(9).trim(),locked:!1,lockReason:null,prunable:!1};continue}if(!z)continue;if(W.startsWith("locked")){z.locked=!0;let U=W.slice(6).trim();z.lockReason=U.length>0?U:null}else if(W.startsWith("prunable"))z.prunable=!0}if(z)X.push(z);return await Y.setOneOff(Q,X),X}catch(q){return M.debug(u(q,{color:!0}),"git"),await Y.setOneOff(Q,[]),[]}}async function
|
|
383
|
-
path = ${
|
|
384
|
-
url = ${
|
|
385
|
-
branch = ${
|
|
386
|
-
|
|
387
|
-
`)
|
|
388
|
-
`:"","utf-8")}async function
|
|
389
|
-
`)){let X=q.trim();if(!X.startsWith("160000 "))continue;let z=X.match(/^160000\s+([0-9a-f]{40})\s+(\d)\t(.+)$/i);if(!z)continue;if(z[2]!=="0")continue;let W=
|
|
390
|
-
`).map((K)=>K.trim()).find((K)=>K.length>0)?.split(/\s+/)[0]?.trim()||"";if(!U)throw Error(`Unable to resolve ${X} for submodule source '${J}'.`);return U}async function
|
|
391
|
-
`).map((I)=>I.trim()).filter((I)=>I.startsWith("160000 ")).map((I)=>{let
|
|
392
|
-
`);return
|
|
393
|
-
`).map((J)=>J.trim()).filter((J)=>J.length>0)}catch{return[]}}async function
|
|
394
|
-
`).map((
|
|
395
|
-
`))X.push(K,K+U.length)}return{input:z,skipRanges:X.length===0?void 0:X}}function
|
|
396
|
-
`,Y-1)+1;return Y-Q}function
|
|
397
|
-
`,U);if(K===-1)K=X;let B=U,$=0;while(B<K&&$<Y){if(W(B)||!
|
|
398
|
-
`)}function
|
|
380
|
+
`;return{content:K,removed:U}}async function Fx(Z,Y,Q){let J=await LJ(),q=m1(Z,Y);if(J==="off"){await k`${q.gitExec} -C ${q.repoPath} config --local --remove-section ${Q}`;return}let X=await R8(Z,q.repoPath,"config");if(!X||!l(X))throw new o(`Git config file is unavailable at '${q.repoPath}'.`);let z=await f0(X,"utf-8"),W=$x(z,Q);if(!W.removed)throw new o(`Section '${Q}' does not exist in local config.`);await c0(X,W.content,"utf-8"),h1.delete(e.resolve(X))}async function t4(Z,Y){let Q=await I0(),J=`git.config.${Y}`,q=await Q.get(J);if(q!==void 0)return M.debug(`Cache hit for ${J}`,"cache-ctrl"),q;try{let X=(await C8(Z,Y)).trim();if(X)await Q.set(J,X),M.debug(`Cache store for ${J}: ${X}`,"cache-ctrl");return X}catch(X){return M.warn(`Git config ${Y} not found or failed`,"cache-ctrl"),M.debug(`Error details: ${o.from(X)}`,"cache-ctrl"),""}}async function AO(Z,Y=!1){let Q=await I0(),J=`${t6(Z)}|${Y?"remote":"local"}`,q=A6("git.branches",J),X=await Q.get(q);if(X)return M.debug(`Cache hit for ${q}`,"cache-ctrl"),X;try{let z=Y?["for-each-ref","--format=%(refname:short)","refs/remotes/"]:["for-each-ref","--format=%(refname:short)","refs/heads/"],{stdout:W}=await k`${Z} ${z}`,U=W.trim().split(`
|
|
381
|
+
`).filter((K)=>K.length>0);return await Q.set(q,U),M.debug(`Cache store for ${q}: ${U.length} branches`,"cache-ctrl"),U}catch(z){return M.warn(`Failed to get git branches: ${o.from(z)}`,"cache-ctrl"),[]}}async function GJ(Z){let Y=await I0(),Q=A6("git.trackedUpstreamRef",t6(Z)),J=await Y.getOneOff(Q);if(J!==void 0)return J;try{let q=(await A0(Z,["--abbrev-ref","--symbolic-full-name","@{u}"])).trim();return await Y.setOneOff(Q,q),q||null}catch{return null}}async function GO(Z){let Y=await I0(),Q="git.version",J=await Y.get("git.version");if(J)return M.debug("Cache hit for git.version","cache-ctrl"),J;try{let{stdout:q}=await k`${Z} --version`,X=q.trim().match(/(\d{1,2}\.\d{1,3}\.\d{1,3})/i)?.[1]||"unknown";return await Y.set("git.version",X),M.debug(`Cache store for git.version: ${X}`,"cache-ctrl"),X}catch(q){throw M.warn(`Failed to get git version: ${q}`,"cache-ctrl"),q}}async function F6(Z){let Y=await I0(),Q=process.cwd(),J=Array.isArray(Z)?Z.join(" "):Z,X="git.repoRoot."+x5.createHash("sha1").update(`${J}|${Q}`).digest("hex"),z=await Y.get(X);if(z&&l(z))return M.debug(`Cache hit for ${X}`,"cache-ctrl"),z;try{let W=(await A0(Z,["--show-toplevel"])).trim();if(!W)throw Error("Unable to resolve repository root.");return await Y.set(X,W),M.debug(`Cache store for ${X}: ${W}`,"cache-ctrl"),W}catch(W){throw M.warn(`Failed to get repo root: ${W}`,"cache-ctrl"),W}}function v5(Z){let Y=d0(e.resolve(Z));return process.platform==="win32"?Y.toLowerCase():Y}async function Vx(Z){let Y=await I0(),Q=A6("git.worktreeList",t6(Z)),J=await Y.getOneOff(Q);if(J!==void 0)return J;try{let q=(await k`${Z} worktree list --porcelain`).stdout.trim();if(!q)return await Y.setOneOff(Q,[]),[];let X=[],z=null;for(let W of q.split(`
|
|
382
|
+
`)){if(!W.trim())continue;if(W.startsWith("worktree ")){if(z)X.push(z);z={path:W.slice(9).trim(),locked:!1,lockReason:null,prunable:!1};continue}if(!z)continue;if(W.startsWith("locked")){z.locked=!0;let U=W.slice(6).trim();z.lockReason=U.length>0?U:null}else if(W.startsWith("prunable"))z.prunable=!0}if(z)X.push(z);return await Y.setOneOff(Q,X),X}catch(q){return M.debug(u(q,{color:!0}),"git"),await Y.setOneOff(Q,[]),[]}}async function CJ(Z){let Y=await I0(),Q=A6("git.worktreeList",t6(Z));await Y.deleteOneOff(Q)}async function RJ(Z,Y){let Q=await Vx(Z),J=v5(Y);return Q.find((q)=>v5(q.path)===J)??null}async function f5(Z){try{await k`${Z} worktree prune --expire now`}catch(Y){M.debug(u(Y,{color:!0}),"git")}finally{await CJ(Z)}}async function R8(Z,Y,Q){let J=await I0(),q=`${t6(Z,Y)}|${Q}`,X=A6("git.path",q),z=await J.get(X);if(z!==void 0)return z;try{let W=m1(Z,Y),U=await b5(W.gitExec,W.repoPath,["--git-path",Q]);if(!U)return await J.set(X,null,{maxAgeMinutes:OJ}),null;let K=e.isAbsolute(U)?U:e.resolve(Y,U);return await J.set(X,K,{maxAgeMinutes:OJ}),K}catch(W){return M.debug(u(W,{color:!0}),"git"),await J.set(X,null,{maxAgeMinutes:OJ}),null}}function Ox(Z,Y){let J=Zx(Y).flatMap((q)=>Qx(q));if(Z==="workspace")return[];if(Z==="gitPath"){let q=Y.indexOf("--git-path"),X=q>=0?Y[q+1]:"";return X?[X]:[]}if(Z==="upstream")return["HEAD","logs/HEAD","config","FETCH_HEAD","packed-refs","refs/remotes","logs/refs/remotes",...J];if(Z==="head")return["HEAD","logs/HEAD","packed-refs",...J];return["packed-refs",...J]}async function Dx(Z,Y,Q,J){let q=Ox(Q,J);if(q.length===0)return"stable";let X=await Jx(Z,Y,q);return X?g1(`${Q}|${X}`):g1(`${Q}|stable`)}async function G0(Z,Y,Q){let J=await I0(),q=Array.isArray(Q)?Q:Q.trim().split(/\s+/).filter(Boolean);if(q.length===0)return"";let X=q.join(" "),z=e.resolve(Y),W=await tP(Z,z),U=g1(v5(W)),K=g1(v5(z)),B=eP(q),$=await Dx(Z,z,B,q),V=rP(U,K,B,$,X),D=await J.get(V);if(D!==void 0)return D;let F=V,O=DJ.get(F);if(O)return await O;let j=(async()=>{try{let _=await b5(Z,z,q);return await J.set(V,_,{maxAgeMinutes:_O}),_}catch{return await J.set(V,"",{maxAgeMinutes:_O}),""}})();DJ.set(F,j);try{return await j}finally{DJ.delete(F)}}async function CO(Z,Y){let Q=[{label:"merge",path:"MERGE_HEAD"},{label:"cherry-pick",path:"CHERRY_PICK_HEAD"},{label:"revert",path:"REVERT_HEAD"},{label:"rebase",path:"rebase-apply"},{label:"rebase",path:"rebase-merge"},{label:"bisect",path:"BISECT_LOG"},{label:"sequencer",path:"sequencer"}],J=new Set;for(let q of Q){let X=await R8(Z,Y,q.path);if(!X)continue;if(l(X))J.add(q.label)}return Array.from(J)}function C4(Z){return d0(Z.trim()).replace(/^\/+/,"").replace(/\/+$/,"")}function h5(Z){return Z.trim().replace(/\\/g,"/")}async function TJ(){let Y=(await K0()).get("useInlineSubmodule","internal");if(Y==="off"||Y==="internal"||Y==="all")return Y;return"internal"}function G8(Z,Y){if(!Y)return Z;return["-c","protocol.file.allow=always",...Z]}function RO(Z){if(!Z||Z.length===0)return[];let Y=new Set;for(let Q of Z){let J=C4(Q);if(!J)continue;Y.add(J)}return Array.from(Y)}function TO(Z,Y){if(!Y||Y.size===0)return!0;if(Y.has(Z))return!0;for(let Q of Y)if(Z.startsWith(Q+"/"))return!0;return!1}function kJ(Z){let Y=new Map,Q=e.join(Z,".gitmodules");if(!l(Q))return Y;let J="";try{J=Z4(Q,"utf-8")}catch{return Y}let q=J.split(/\r?\n/),X="",z="",W="",U="",K=()=>{if(!z)return;Y.set(z,{name:X||z,path:z,url:W,branch:U||void 0})};for(let B of q){let $=B.trim();if(!$||$.startsWith("#")||$.startsWith(";"))continue;let V=$.match(/^\[submodule\s+"(.+)"\]$/i);if(V){K(),X=V[1]?.trim()||"",z="",W="",U="";continue}let D=$.match(/^([a-zA-Z0-9._-]+)\s*=\s*(.*)$/);if(!D)continue;let F=D[1]?.trim().toLowerCase(),O=D[2]?.trim()||"";if(F==="path")z=C4(O);else if(F==="url")W=O;else if(F==="branch")U=O}return K(),Y}function Mx(Z,Y,Q,J){let q=C4(Y),X=h5(Q),z=J?.name?.trim()||q,W=J?.branch?.trim()||void 0,U=kJ(Z),K=U.get(q);if(K&&K.url.trim()===X&&(K.name||q)===z&&(K.branch?.trim()||void 0)===W)return;U.set(q,{name:z||K?.name||q,path:q,url:X,branch:W});let B=e.join(Z,".gitmodules"),$=Array.from(U.values()).map((V)=>{return`[submodule "${V.name}"]
|
|
383
|
+
path = ${V.path}
|
|
384
|
+
url = ${V.url}`+(V.branch?`
|
|
385
|
+
branch = ${V.branch}`:"")}).join(`
|
|
386
|
+
|
|
387
|
+
`);$4(B,$?`${$}
|
|
388
|
+
`:"","utf-8")}async function jx(Z,Y){let Q=new Map,J="";try{J=(await k`${Z} -C ${Y} ls-files --stage`).stdout}catch{return Q}for(let q of J.split(`
|
|
389
|
+
`)){let X=q.trim();if(!X.startsWith("160000 "))continue;let z=X.match(/^160000\s+([0-9a-f]{40})\s+(\d)\t(.+)$/i);if(!z)continue;if(z[2]!=="0")continue;let W=C4(z[3]);if(!W)continue;Q.set(W,z[1])}return Q}async function _x(Z,Y,Q){let J=h5(Y),q=Q?.branch?.trim(),X=q?`refs/heads/${q}`:"HEAD",z=J.startsWith("file://")?e.resolve(J.replace(/^file:\/\//i,"")):J;if(l(z)){let K=(await G0(Z,z,q||"HEAD")).trim();if(K)return K}let U=(await k`${Z} ls-remote ${J} ${X}`).stdout.trim().split(`
|
|
390
|
+
`).map((K)=>K.trim()).find((K)=>K.length>0)?.split(/\s+/)[0]?.trim()||"";if(!U)throw Error(`Unable to resolve ${X} for submodule source '${J}'.`);return U}async function Nx(Z,Y){let Q=(await G0(Z,Y,["--git-dir"])).trim(),J=e.isAbsolute(Q)?Q:e.resolve(Y,Q);return e.join(J,"modules")}async function kO(Z,Y,Q,J,q){let X=h5(Q),z=e.resolve(Y,J);if(l(z))y6(z,{recursive:!0,force:!0});i0(e.dirname(z),{recursive:!0});let W=await Nx(Z,Y),U=e.join(W,...J.split("/").filter(Boolean));i0(e.dirname(U),{recursive:!0});let K=["-C",Y,"clone","--no-checkout","--separate-git-dir",U];if(q.quiet)K.push("--quiet");if(q.reference)K.push("--reference",q.reference);if(q.singleBranch===!0)K.push("--single-branch");else if(q.singleBranch===!1)K.push("--no-single-branch");if(q.filter)K.push(`--filter=${q.filter}`);if(q.branch)K.push("--branch",q.branch);K.push(X,J);let B=G8(K,q.allowFileProtocol);await k`${Z} ${B}`}async function EO(Z,Y,Q,J,q){let X=Array.isArray(Z)?Z[0]:Z,z=C4(J),W=await TJ(),U=q?.allowFileProtocol!==!1,K=q?.quiet!==!1,B=!!q?.force,$=h5(Q),V=q?.branch?.trim()||void 0,D=q?.name?.trim()||void 0,F=q?.reference?.trim()||void 0;if(!z)throw Error("Submodule path cannot be empty.");if(W==="off"){let A=["-C",Y,"submodule"];if(K)A.push("--quiet");if(A.push("add"),V)A.push("--branch",V);if(B)A.push("--force");if(D)A.push("--name",D);if(F)A.push("--reference",F);A.push("--",$,z),await k`${X} ${G8(A,U)}`,await a4(Z,Y);return}let O=await _x(X,Q,{branch:V});Mx(Y,z,$,{name:D,branch:V});let j=e.resolve(Y,z);if(l(j)){if(l6(j).length>0&&!B)throw Error(`Submodule path '${z}' already exists. Re-run with --force to replace it.`)}let _=e.join(j,".git"),L=l(_)?await f6(_).then((A)=>A.isDirectory()).catch(()=>!1):!1;if(!l(_)||L)await kO(X,Y,$,z,{allowFileProtocol:q?.allowFileProtocol!==!1,quiet:!!q?.quiet,reference:F,branch:V});try{let A=["-C",j,"checkout"];if(K)A.push("--quiet");A.push("--detach",O),await k`${X} ${A}`}catch{let A=["-C",j,"fetch"];if(K)A.push("--quiet");A.push("origin",O),await k`${X} ${G8(A,U)}`;let I=["-C",j,"checkout"];if(K)I.push("--quiet");I.push("--detach",O),await k`${X} ${I}`}if(await k`${X} -C ${Y} add .gitmodules`,await k`${X} -C ${Y} update-index --add --cacheinfo 160000 ${O} ${z}`,await a4(Z,Y),!K)C(`Submodule add: path=${z} url=${$} commit=${O}`)}async function R4(Z,Y){let Q=Array.isArray(Z)?Z[0]:Z,J=await I0(),q=t6(Z,Y),X=A6("git.submodules.paths",q),z=A6("git.submodules.gitlinks",q),W=e.join(Y,".gitmodules"),U=await dZ(W)??null,K=null,B=await J.get(z);try{let $=[],V=await J.get(X);if(V&&V.mtime===U)$=V.paths;else if(U!==null){try{$=(await AJ(Z,"path",{repoPath:Y,filePath:".gitmodules"})).map((A)=>A.value.trim()).filter((A)=>A.length>0)}catch{$=[]}await J.set(X,{mtime:U,paths:$})}else if(V&&V.mtime===null)$=V.paths;let D=[],F=new Map;if(K===null)K=await dZ(await R8(Z,Y,"index"))??null;if(B&&B.mtime===K&&K!==null)D=B.paths;else{try{let A=(await k`${Q} -C ${Y} ls-files --stage`).stdout.split(`
|
|
391
|
+
`).map((I)=>I.trim()).filter((I)=>I.startsWith("160000 ")).map((I)=>{let G=I.match(/^160000 ([0-9a-f]{40}) (\d)\t(.+)$/);return G?{sha:G[1],stage:G[2],path:G[3].trim()}:null}).filter((I)=>!!I).filter((I)=>I.path.length>0);F=new Map(A.map((I)=>[I.path,{sha:I.sha,stage:I.stage}])),D=Array.from(F.keys())}catch{D=[]}await J.set(z,{mtime:K,paths:D})}let O=new Set([...$,...D]);if(O.size===0)return[];let j=Array.from(O);return(await Promise.all(j.map(async(L)=>{let A=F.get(L);if(A&&A.stage!=="0")return{path:L,status:"U"};let I=e.resolve(Y,L),G=e.join(I,".git");if(!l(I)||!l(G))return{path:L,status:"-"};if(!A?.sha)return{path:L,status:" "};let P=(await G0(Q,I,"HEAD")).trim(),T=P&&P!==A.sha?"+":" ";return{path:L,status:T}}))).map((L)=>{return{path:L.path,status:L.status,initialized:L.status!=="-"}})}catch($){return M.debug(u($,{color:!0}),"git"),[]}}async function a4(Z,Y){let Q=await I0(),J=t6(Z,Y);await Q.delete(A6("git.submodules.paths",J)),await Q.delete(A6("git.submodules.gitlinks",J))}async function PO(Z,Y,Q){let J=Array.isArray(Z)?Z[0]:Z,q=[];for(let X of Q){if(X.status==="U"){q.push(X.path);continue}let z=e.resolve(Y,X.path);if(!l(z))continue;let W=e.join(z,".git");if(!l(W)){if(X.status!=="-")try{if(l6(z).length>0)q.push(X.path)}catch{q.push(X.path)}continue}try{if((await k`${J} -C ${z} status --porcelain=v1 --untracked-files=normal`).stdout.trim().length>0)q.push(X.path)}catch{q.push(X.path)}}return q}async function g5(Z,Y,Q){let J=Array.isArray(Z)?Z[0]:Z,q=Q?.force!==!1,X=Q?.quiet!==!1,z=RO(Q?.paths),W=Q?.all===!0||z.length===0;if(await TJ()==="off"){let F=["-C",Y,"submodule"];if(X)F.push("--quiet");if(F.push("deinit"),q)F.push("--force");if(W)F.push("--all");else F.push("--",...z);await k`${J} ${F}`,await a4(Z,Y);return}let K=await R4(Z,Y),B=kJ(Y),$=new Set([...K.map((F)=>C4(F.path)),...Array.from(B.keys())]),V=W?null:new Set(z),D=Array.from($).filter((F)=>F&&TO(F,V));if(D.length===0)return;for(let F of D){if(!F)continue;let O=B.get(F),j=new Set([C4(F),C4(O?.name||"")]);for(let _ of j){if(!_)continue;try{await Fx(Z,Y,`submodule.${_}`)}catch{}}}for(let F of D){if(!F)continue;let O=e.resolve(Y,F);try{if(l(O))y6(O,{recursive:!0,force:!0});i0(O,{recursive:!0})}catch(j){M.debug(`Failed to clean submodule path '${O}'. ${u(j,{color:!0})}`,"git")}}try{let F=(await G0(J,Y,["--git-dir"])).trim(),O=F?e.isAbsolute(F)?F:e.resolve(Y,F):"",j=O?e.join(O,"modules"):"";if(j&&l(j))if(W)y6(j,{recursive:!0,force:!0});else for(let _ of D){let L=e.join(j,..._.split("/").filter(Boolean));if(l(L))y6(L,{recursive:!0,force:!0})}}catch(F){M.debug(`Failed to clean worktree submodule metadata. ${u(F,{color:!0})}`,"git")}if(!X)C(`Submodule deinit: ${D.length} path(s) (${D.join(", ")})`);await a4(Z,Y)}async function m5(Z,Y,Q){let J=Array.isArray(Z)?Z[0]:Z,q=Q?.recursive!==!1,X=Q?.force===!0,z=Q?.init!==!1,W=Q?.remote===!0,U=Q?.noFetch===!0,K=Q?.strategy||"checkout",B=Q?.quiet!==!1,$=Q?.allowFileProtocol!==!1,V=RO(Q?.paths),D=V.length>0?new Set(V):null;if(await TJ()==="off"){let L=["-C",Y,"submodule"];if(B)L.push("--quiet");if(L.push("update"),X)L.push("--force");if(z)L.push("--init");if(Q?.filter)L.push(`--filter=${Q.filter}`);if(W)L.push("--remote");if(U)L.push("--no-fetch");if(K==="merge")L.push("--merge");else if(K==="rebase")L.push("--rebase");else L.push("--checkout");if(Q?.recommendShallow===!0)L.push("--recommend-shallow");else if(Q?.recommendShallow===!1)L.push("--no-recommend-shallow");if(Q?.reference)L.push("--reference",Q.reference);if(q)L.push("--recursive");if(Q?.singleBranch===!0)L.push("--single-branch");else if(Q?.singleBranch===!1)L.push("--no-single-branch");if(V.length>0)L.push("--",...V);await k`${J} ${G8(L,$)}`,await a4(Z,Y);return}if(K!=="checkout"){let L=["-C",Y,"submodule"];if(B)L.push("--quiet");if(L.push("update"),X)L.push("--force");if(z)L.push("--init");if(Q?.filter)L.push(`--filter=${Q.filter}`);if(W)L.push("--remote");if(U)L.push("--no-fetch");if(K==="merge")L.push("--merge");else L.push("--rebase");if(Q?.recommendShallow===!0)L.push("--recommend-shallow");else if(Q?.recommendShallow===!1)L.push("--no-recommend-shallow");if(Q?.reference)L.push("--reference",Q.reference);if(q)L.push("--recursive");if(Q?.singleBranch===!0)L.push("--single-branch");else if(Q?.singleBranch===!1)L.push("--no-single-branch");if(V.length>0)L.push("--",...V);await k`${J} ${G8(L,$)}`,await a4(Z,Y);return}let O=await jx(J,Y);if(O.size===0){await a4(Z,Y);return}let j=kJ(Y),_=[];for(let[L,A]of O.entries()){let I=C4(L);if(!I||!A)continue;if(!TO(I,D))continue;let G=j.get(I);if(!G?.url)continue;let P=e.resolve(Y,I),T=e.join(P,".git"),S=l(T)?await f6(T).then((c)=>c.isDirectory()).catch(()=>!1):!1;if(!l(T)||S){if(!z)continue;await kO(J,Y,G.url,I,{allowFileProtocol:$,quiet:B,reference:Q?.reference,singleBranch:Q?.singleBranch,filter:Q?.filter,branch:W?G.branch:void 0})}let y=A;if(W){let c=G.branch?.trim()||"HEAD";if(!U){let h=["-C",P,"fetch"];if(B)h.push("--quiet");if(h.push("origin"),c!=="HEAD")h.push(c);await k`${J} ${G8(h,$)}`}let v=c==="HEAD"?"origin/HEAD":`origin/${c}`,J0=(await G0(J,P,v)).trim();if(!J0)throw Error(`Unable to resolve remote ref '${v}' for submodule '${I}'.`);y=J0}if(!(await G0(J,P,["-q","--verify",`${y}^{commit}`])).trim()){if(U)throw Error(`Missing commit '${y}' for submodule '${I}' and --no-fetch is set.`);let c=G8(["-C",P,"fetch",...B?["--quiet"]:[],"origin",y],$);await k`${J} ${c}`}let x=["-C",P,"checkout"];if(X)x.push("--force");else if(B)x.push("--quiet");if(x.push("--detach",y),await k`${J} ${x}`,_.push(`${I}@${y}`),q)await m5(Z,P,{...Q,paths:void 0})}if(_.length>0&&!B)C(`Submodule update: ${_.length} path(s) (${_.join(", ")})`);await a4(Z,Y)}async function xO(Z,Y){await m5(Z,Y,{recursive:!0})}function bO(Z){let Y=Ix(Z);if(!Y)return!1;return Y.includes("the previous cherry-pick is now empty")||Y.includes("the previous cherry-pick is empty")||Y.includes("previous cherry-pick is now empty")||Y.includes("previous cherry-pick is empty")||Y.includes("cherry-pick is now empty")||Y.includes("cherry-pick is empty")||Y.includes("the patch is empty")||Y.includes("patch is empty")}function Ix(Z){if(!Z)return"";if(typeof Z==="string")return d8(Z).toLowerCase();let Y=Z,Q=[Y?.stderr,Y?.stdout,Y?.message].map((q)=>Lx(q)).filter((q)=>q.length>0);if(Q.length===0)return"";let J=Q.join(`
|
|
392
|
+
`);return d8(J).toLowerCase()}function Lx(Z){if(!Z)return"";if(typeof Z==="string")return Z;if(Z instanceof Uint8Array)return new TextDecoder().decode(Z);return String(Z)}async function p5(Z,Y){try{return(await k`${Z} -C ${Y} diff --name-only --diff-filter=U`).stdout.split(`
|
|
393
|
+
`).map((J)=>J.trim()).filter((J)=>J.length>0)}catch{return[]}}async function vO(Z,Y){let Q=await p5(Z,Y);if(Q.length===0)return;await E0`${Z} -C ${Y} add -A -- ${Q}`}async function SO(Z,Y){if((await p5(Z,Y)).length>0)return!1;try{if((await k`${Z} -C ${Y} diff --cached --name-only`).stdout.trim().length>0)return!1}catch{return!1}return!0}async function EJ(Z){let{gitExec:Y,repoPath:Q,range:J,maxCount:q,formatTemplate:X,excludeRefs:z}=Z,W="";try{let V=["-C",Q,"log",`--pretty=format:${X||"%h %s"}`,J],D=z?.filter((F)=>F&&F.trim().length>0)??[];if(D.length>0)V.push("--not",...D);W=(await k`${Y} ${V}`).stdout.trim()}catch{W=""}let U=W.split(`
|
|
394
|
+
`).map((V)=>V.trim()).filter((V)=>V.length>0),K=U.length;if(K===0)return{commits:[],totalCount:0,moreCount:0};let B=q&&q>0?U.slice(0,q):U,$=Math.max(K-B.length,0);return{commits:B,totalCount:K,moreCount:$}}async function PJ(Z,Y,Q,J){let q=await I0(),X=`${Z}|${e.resolve(Y)}|${Q}|${J}`,z=A6("git.submoduleBaseSha",X),W=await q.get(z);if(W!==void 0)return W;try{let U=(await k`${Z} -C ${Y} ls-tree ${Q} -- ${J}`).stdout.trim();if(!U)return await q.set(z,null),null;let B=U.match(/^160000\s+commit\s+([0-9a-f]{7,40})\s+/i)?.[1]??null;return await q.set(z,B),B}catch{return await q.set(z,null),null}}function u5(){if(Q6.supportsColor<=0)return[];return["-c","color.ui=always"]}async function T4(Z,Y,Q=0){for(let J=Q;J<Z.length;J++){let q=/^(head|origin)?~(\d+)?$/i.exec(Z[J]);if(!q)continue;let X=0;if(q[2]){if(X=parseInt(q[2],10),isNaN(X)||X<0)return M.error(`Invalid relative ref format: ${Z[J]}`,"reset"),{error:new o(`Invalid relative ref format: ${Z[J]}`)}}try{if(q[1]?.toLowerCase()==="origin"){let z=await GJ(Y);if(!z)return M.error("No upstream configured for current branch.","reset"),{error:new o("No upstream configured for current branch.")};Z[J]=`${z}~${X}`;break}else Z[J]=`HEAD~${X}`}catch(z){return M.error(`Failed to expand relative ref: ${o.from(z)}`,"reset"),{error:o.from(z)}}}return{value:void 0}}function jJ(Z,Y){let Q=Y.replace(/^[/:]+/,"");if(Q=Q.replace(/\.git$/i,""),Q=Q.replace(/\/+$/,""),Z)return`${Z}/${Q}`;return Q}async function yO(Z,Y){for(let Q=1;Q<Z.length;Q++){let J=/^((?:head|origin)?~\d*):(.+)$/i.exec(Z[Q]);if(!J)continue;let q=Z.slice(Q,Q+1);q[0]=J[1];let{error:X}=await T4(q,Y);if(X)return{error:o.from(X)};Z[Q]=`${q[0]}:${J[2]}`}return{}}var _J,_O=360,OJ=360,sP=12,DJ,NO,aP,h1;var e0=N(()=>{z0();W4();$6();J6();v0();w0();R0();m0();_J=RX(jO(),1),DJ=new Map,NO=new Map,aP=new Set(["--git-path"]),h1=new Map});function d5(Z){return Z>=9&&Z<=13||Z===32||Z===160||Z===5760||Z>=8192&&Z<=8202||Z===8232||Z===8233||Z===8239||Z===8287||Z===12288||Z===65279}function wx(Z,Y,Q){if(typeof Z==="string")return{input:Z};let J=Y.map((W)=>String(W)),q=Q.preserveTemplateIndent!==!1,X=[],z="";for(let W=0;W<Z.length;W++)if(z+=Z[W],W<J.length){let U=J[W],K=z.length;if(z+=U,q&&U.includes(`
|
|
395
|
+
`))X.push(K,K+U.length)}return{input:z,skipRanges:X.length===0?void 0:X}}function Ax(Z,Y){let Q=0,J=Z.length,q=0,X=-1;while(q<Z.length&&d5(Z.charCodeAt(q))){if(Z.charCodeAt(q)===10)X=q;q++}if(X!==-1)Q=X+1;q=Z.length-1;let z=-1;while(q>=0&&d5(Z.charCodeAt(q))){if(Z.charCodeAt(q)===10){z=q;break}q--}if(z!==-1)J=z;if(Q>=J)return{input:""};let W=Z.slice(Q,J);if(Y===void 0||Y.length===0)return{input:W};let U=[];for(let K=0;K<Y.length;K+=2){let B=Y[K],$=Y[K+1];if($<=Q||B>=J)continue;U.push(Math.max(B,Q)-Q,Math.min($,J)-Q)}return{input:W,skipRanges:U.length===0?void 0:U}}function Gx(Z){let Y=-1;for(let J=0;J<Z.length;J++)if(!d5(Z.charCodeAt(J))){Y=J;break}if(Y===-1)return 0;let Q=Z.lastIndexOf(`
|
|
396
|
+
`,Y-1)+1;return Y-Q}function Cx(Z,Y,Q,J){if(Y<=0||Z.length===0)return Z;let q=[],X=Z.length,z=0,W=(K)=>{if(J===void 0||J.length===0)return!1;while(z<J.length&&K>=J[z+1])z+=2;return z<J.length&&K>=J[z]},U=0;while(U<=X){let K=Z.indexOf(`
|
|
397
|
+
`,U);if(K===-1)K=X;let B=U,$=0;while(B<K&&$<Y){if(W(B)||!d5(Z.charCodeAt(B)))break;B++,$++}let D=Q==="strict"&&$!==Y?U:B;if(q.push(Z.slice(D,K)),K===X)break;U=K+1}return q.join(`
|
|
398
|
+
`)}function Rx(Z,Y,Q){let J=Y.trimWhitespace===!1?{input:Z,skipRanges:Q}:Ax(Z,Q),q=Gx(J.input),X=Y.dedentMode??"greedy";return Cx(J.input,q,X,J.skipRanges)}function fO(Z){let Y=(Q,...J)=>{let{input:q,skipRanges:X}=wx(Q,J,Z);return Rx(q,Z,X)};return Y.withOptions=(Q)=>{return fO({...Z,...Q})},Y}var Tx,Z0;var s0=N(()=>{Tx=fO({}),Z0=Tx});import hO from"path";import u1 from"fs";import kx from"crypto";async function Ex(Z){try{let Y=await F6(Z),Q=xx(Y);if(!Q)return M.error("No stash drop to pardon.","stash"),1;C(H.cyan+`Restoring ${Q.entries.length} dropped stash(es)...`+H.reset);for(let J of Q.entries)await LO(Z,J.sha,J.message),C(H.green+` + Restored: ${J.message}`+H.reset);return 0}catch(Y){return M.error("Error pardoning stash: "+Y,"stash"),1}}async function gO(Z,Y,Q){let[J,q]=Y[2].split("..").map((z)=>parseInt(z,10));if(isNaN(J)||isNaN(q)||J>q)return M.error(`Invalid stash range: ${Y[2]}`,"stash"),1;let X=[];try{let z=await F6(Z),W=[];for(let U=q;U>=J;U--)W.push(NJ(Z,U));if(X=(await Promise.all(W)).filter((U)=>U!=null),X.length>0)dO(z,{timestamp:Date.now(),entries:X,type:"range"},Q)}catch(z){let W=o.from(z);M.warn(`Could not capture stash entry for undo. (${W.name})`,"stash"),M.debug(W.toString(),"stash")}C(H.cyan+`Dropping stashes from ${H.bright+J+H.reset+H.cyan} to ${H.bright+q+H.reset+H.cyan} (inclusive)`+H.reset);for(let z=q;z>=J;z--)await E0`${Z} stash drop stash@{${z}}`;return 0}async function Px(Z,Y){if(Y[2]==="pardon")return await Ex(Z);let J=(await K0()).get("stash.undoLimit")??10;if(Y[2]&&/\d+\.\.\d+$/.test(Y[2]))return await gO(Z,Y,J);let q=0,X=Y.slice(2).filter((z)=>!z.startsWith("-"));if(X.length>0)if(X[0].includes(".."));else{let z=X[0].match(/stash@\{(\d+)\}/)||X[0].match(/^(\d+)$/);if(z)q=parseInt(z[1],10)}try{let z=await NJ(Z,q);if(z){let W=await F6(Z);dO(W,{timestamp:Date.now(),entries:[z],type:"single"},J)}}catch(z){M.warn(`Could not capture stash entry for undo. (${o.from(z).name})`,"stash")}try{return await E0`${Z} ${Y}`,0}catch{return 1}}function mO(Z){let Y=kx.createHash("sha256").update(Z).digest("hex"),Q=hO.join(K6,"gdx","stash-undo");if(!u1.existsSync(Q))u1.mkdirSync(Q,{recursive:!0});return hO.join(Q,`${Y}.json`)}function pO(Z){let Y=mO(Z);if(!u1.existsSync(Y))return[];try{let Q=u1.readFileSync(Y,"utf-8");return JSON.parse(Q)}catch{return[]}}function uO(Z,Y){let Q=mO(Z);u1.writeFileSync(Q,JSON.stringify(Y,null,2))}function dO(Z,Y,Q=10){let J=pO(Z);if(J.push(Y),J.length>Q)J.splice(0,J.length-Q);uO(Z,J)}function xx(Z){let Y=pO(Z);if(Y.length===0)return null;let Q=Y.pop()||null;return uO(Z,Y),Q}var cO,lO,nO;var c5=N(()=>{z0();m0();R0();H0();H0();v0();e0();$6();w0();S0();s0();cO={dropRange:gO,drop:Px},lO={long:()=>{return t(Z0`
|
|
399
399
|
${H.bright+d("STASH DROP",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
400
400
|
Remove a stash entry or a range of stash entries.
|
|
401
401
|
|
|
402
402
|
${H.bright+d("DESCRIPTION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
403
403
|
Accepts a single stash index, a range like <start>..<end>, or defaults to the latest stash.
|
|
404
404
|
Includes safety features:
|
|
405
|
-
- **Undoable**: You can restore the last dropped stash(es) with \`${H.cyan}${
|
|
405
|
+
- **Undoable**: You can restore the last dropped stash(es) with \`${H.cyan}${R} stash drop pardon${H.reset}\`.
|
|
406
406
|
|
|
407
407
|
${H.bright+d("COMMANDS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
408
408
|
- \`${H.cyan}drop <index>${H.reset}\`: Drop specific stash.
|
|
@@ -412,23 +412,23 @@ Arch: ${process.arch}
|
|
|
412
412
|
${H.bright+d("SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
413
413
|
Dropped stashes are backed up temporarily. Use \`${H.cyan}pardon${H.reset}\` to bring them back.
|
|
414
414
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Extends git stash with ability to drop entries and undo support (e.g. 0..3, pardon).",usage:()=>{return t(Z0`
|
|
415
|
-
${H.cyan}${
|
|
415
|
+
${H.cyan}${R} stash drop ${H.dim}[<stash> | <range> | pardon]${H.reset}
|
|
416
416
|
|
|
417
417
|
Examples:
|
|
418
|
-
${H.cyan}${
|
|
419
|
-
${H.cyan}${
|
|
420
|
-
${H.cyan}${
|
|
421
|
-
${H.cyan}${
|
|
422
|
-
${H.cyan}${
|
|
423
|
-
${H.cyan}${
|
|
424
|
-
${H.cyan}${
|
|
418
|
+
${H.cyan}${R} stash drop 0..0 ${H.reset+H.dim}# Drop the most recent stash${H.reset}
|
|
419
|
+
${H.cyan}${R} stash drop pardon ${H.reset+H.dim}# Restore last dropped stash${H.reset}
|
|
420
|
+
${H.cyan}${R} stash l ${H.reset+H.dim}# Show stash list (alias for ${R} stash list).${H.reset}
|
|
421
|
+
${H.cyan}${R} stash d 3 ${H.reset+H.dim}# Drop stash@{3}.${H.reset}
|
|
422
|
+
${H.cyan}${R} stash d 2..5 ${H.reset+H.dim}# Drop stash@{5}, stash@{4}, stash@{3}, stash@{2} (safe ordering).${H.reset}
|
|
423
|
+
${H.cyan}${R} stash p 1 ${H.reset+H.dim}# Pop stash@{1}.${H.reset}
|
|
424
|
+
${H.cyan}${R} stash c ${H.reset+H.dim}# Clear all stashes (maps to ${R} stash clear — destructive).${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},nO={$root:["pardon"]}});function bx(Z){let Y=Z.getFullYear(),Q=String(Z.getMonth()+1).padStart(2,"0"),J=String(Z.getDate()).padStart(2,"0");return`${Y}-${Q}-${J}`}async function d1(Z){let{git$:Y,args:Q}=Z,J=!!Q.popOption("--all")||!!Q.popOption("-a"),q="";if(!J){if(q=Q.popValue("--email")||await t4(Y,"user.email"),q=q?q.trim().replace(/^["']|["']$/g,""):q,!q)return M.error('User email not configured. Please set it using "git config user.email <email>" or provide it with --email option.',"graph"),1}if(!Q.includes("--quiet"))C(J?H.cyan+"Generating commit graph for all authors"+H.reset:H.cyan+"Generating commit graph for user: "+H.yellow+q+H.reset);let z=p.terminalWidth-oO-iO,W=Math.min(Math.floor(z/l5),52),U=O6(E.OceanDeepBlue,E.MidnightBlack,0.86),K=O6(E.OceanDeepBlue,E.MidnightBlack,0.76);if(z<sO)return M.error(`Terminal width too small for graph display. Minimum required width is ${sO+oO+iO} columns.`,"graph"),1;let B=new Date;B.setHours(0,0,0,0);let $=new Date(B),V=$.getDay();$.setDate($.getDate()-V),$.setDate($.getDate()-W*7);let D=(J?await k`
|
|
425
425
|
${Y} --no-pager log --all --since=${$.toISOString()} --date=short --format=%ad
|
|
426
426
|
`:await k`
|
|
427
427
|
${Y} --no-pager log --all --author=${q} --since=${$.toISOString()} --date=short --format=%ad
|
|
428
|
-
`).stdout.trim(),
|
|
429
|
-
`)){let
|
|
430
|
-
`+H.bright+d("Contribution Graph",E.OceanDeepBlue,E.OceanGreen,0.12,0.83)+` (Max: ${
|
|
431
|
-
`);let
|
|
428
|
+
`).stdout.trim(),F={};for(let I of D.split(`
|
|
429
|
+
`)){let G=I.trim();if(G)F[G]=(F[G]||0)+1}let O=1;for(let I of Object.values(F))if(I>O)O=I;C(`
|
|
430
|
+
`+H.bright+d("Contribution Graph",E.OceanDeepBlue,E.OceanGreen,0.12,0.83)+` (Max: ${O} commits/day)
|
|
431
|
+
`);let j=" ",_=0,L=-1;for(let I=0;I<=W;I++){let G=new Date($);G.setDate(G.getDate()+I*7);let P=I*l5;if(G.getMonth()!==L&&P>=_){j+=" ".repeat(P-_);let T=G.toLocaleString("default",{month:"short"});j+=T.padEnd(l5*3," "),_=P+l5*3,L=G.getMonth()}}C(H.bright+j+H.reset);let A=[" ","Mon"," ","Wed"," ","Fri"," "];for(let I=0;I<7;I++){let G=H.bright+A[I]+H.reset+" ";for(let P=0;P<=W;P++){let T=new Date($);if(T.setDate(T.getDate()+P*7+I),T>B){G+=" ";continue}let S=bx(T),y=F[S]||0,g,x="■";if(y===0)g=H.dim+M0(y4(K)),x="▨";else{let c=o0.clamp(y/O,0.15,1),v=wz(U,E.OceanGreen,c);g=M0(y4(v))}G+=g+x+H.reset+" "}C(" "+G)}return C(""),0}var oO=6,l5=2,iO=4,sO=12,aO,rO;var c1=N(()=>{m0();R0();z0();v0();H0();w0();S0();e0();s0();aO={long:()=>{return t(Z0`
|
|
432
432
|
${H.bright+d("GRAPH",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
433
433
|
Render a calendar-style contribution graph for a repository author or the whole repository.
|
|
434
434
|
|
|
@@ -441,33 +441,33 @@ Arch: ${process.arch}
|
|
|
441
441
|
${H.bright+d("TERMINAL NOTES",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
442
442
|
The graph respects \`${H.cyan}global.terminalWidth${H.reset}\`. If the terminal is too narrow the command will bail with an error message.
|
|
443
443
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Render a calendar-style contribution graph for an author or all authors.",usage:()=>{return t(Z0`
|
|
444
|
-
${H.cyan}${
|
|
444
|
+
${H.cyan}${R} graph ${H.dim}[--email <email>] [--all|-a] [--quiet]${H.reset}
|
|
445
445
|
|
|
446
446
|
Examples:
|
|
447
|
-
${H.cyan}${
|
|
448
|
-
${H.cyan}${
|
|
449
|
-
${H.cyan}${C} graph --all ${H.reset+H.dim}# Graph for all authors${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},mO={$root:["--email","--all","-a","--quiet"]}});function pO(Z,Y){if(!Number.isFinite(Z))return 0;let Q=Math.trunc(Z);if(Q<0){let J=Y+Q;return J<0?0:J}return Q}function uO(Z,Y){if(Z==null)return!1;if(Y.includes(u1))return Z===Y;return Z===Y||Z.startsWith(Y+u1)}function d5(Z){let Y=Z.indexOf(u1);return Y===-1?Z:Z.slice(0,Y)}function A3(Z,Y){let Q=0,J=Z.length;while(Q<J){let q=Q+J>>>1;if(Z[q]<Y)Q=q+1;else J=q}return Q}function NP(Z,Y){if(!Number.isFinite(Z))return 0;if(Z<0){let Q=Y+Z;return Q<0?0:Q}return Z>Y?Y:Z}function dO(Z){if(Z==="--")return!1;if(Z==="-"||!Z.startsWith("-"))return!0;return/^-\d+(\.\d+)?$/.test(Z)}function IP(Z,Y){let Q=Z[Y];if(_P.includes(Q))return{consumed:1,gitArgs:[Q]};for(let J of jP){if(Q===J){if(Y+1>=Z.length)return null;let q=Z[Y+1];if(q==="--")return null;return{consumed:2,gitArgs:[J,q]}}if(Q.startsWith(J+"="))return{consumed:1,gitArgs:[J,Q.slice(J.length+1)]};if(!J.startsWith("--")&&Q.startsWith(J)&&Q.length>J.length)return{consumed:1,gitArgs:[J,Q.slice(J.length)]}}return null}function c5(Z,Y){if(Z[0]&&!Z[0].startsWith("-"))return{args:Z,gitArgs:[],cursorIndex:Y,cursorInGitGlobal:!1};let Q=new Set,J=[],q=0;while(q<Z.length){let W=Z[q];if(W==="--")break;let U=IP(Z,q);if(U){let K=q,B=q+U.consumed-1;if(Y!=null&&Y>=K&&Y<=B)return{args:Z,gitArgs:[],cursorIndex:Y,cursorInGitGlobal:!0};if(Y==null||B<Y){J.push(...U.gitArgs);for(let $=K;$<=B;$++)Q.add($)}q+=U.consumed;continue}if(DP.includes(W)){if(q+1>=Z.length)break;q+=2;continue}if(MP.includes(W)){q+=1;continue}if(W.startsWith("-")){q+=1;continue}break}if(Q.size===0)return{args:Z,gitArgs:J,cursorIndex:Y,cursorInGitGlobal:!1};let X=Z.filter((W,U)=>!Q.has(U)),z=Y;if(Y!=null){let W=0;for(let U of Q)if(U<Y)W+=1;if(z=Math.max(0,Y-W),X.length>0&&z>=X.length)z=X.length-1}return{args:X,gitArgs:J,cursorIndex:z,cursorInGitGlobal:!1}}function cO(Z){let Y=Z.indexOf("=");if(Y!==-1)return Z.substring(Y+1);return null}function G3(Z){return new R8(Z)}var DP,MP,jP,_P,u1="=",R8;var wZ=j(()=>{H0();z0();v0();DP=[...eX],MP=[...Zz],jP=[...Yz],_P=[...Qz];R8=class R8 extends Array{argIndexes=new Map;indexedLength=-1;indexesDirty=!0;constructor(Z){if(Array.isArray(Z))super(...Z);else super(Z);this.reindex()}optionIndexOf(Z,Y=0){let Q=pO(Y,this.length),J=-1;if(p.indexArgs)this.ensureIndexes(),J=this.argIndexes.get("--")?.[0]??-1;else J=super.indexOf("--");if(J!==-1&&J<Q)return-1;let q=J===-1?this.length:J,X=d5(Z);if(p.indexArgs&&X.startsWith("-")){let z=this.argIndexes.get(X);if(z&&z.length>0){let W=0;if(z.length===1){let U=z[0];if(U<Q||U>=q)W=1}else W=A3(z,Q);while(W<z.length){let U=z[W];if(U>=q)break;if(uO(this[U],Z))return U;W+=1}}}for(let z=Q;z<q;z++)if(uO(this[z],Z)){if(p.indexArgs&&X.startsWith("-"))this.reindex();return z}return-1}delete(Z){let Y=this.optionIndexOf(Z);if(Y!==-1)return this.splice(Y,1),!0;return!1}popValue(Z,Y=0,Q=!1){let J=this.optionIndexOf(Z,Y);if(J!==-1){let q=null,X=this[J];if(X.includes(u1))q=cO(X),this.splice(J,1);else if(!Q&&J+1<this.length&&dO(this[J+1]))q=this[J+1],this.splice(J,2);else this.splice(J,1);return q}return null}popAssertValue(Z,Y=0,Q=!1){let J=this.optionIndexOf(Z,Y);if(J!==-1){let q=null,X=this[J];if(X.includes(u1))q=cO(X),this.splice(J,1);else if(!Q&&J+1<this.length&&dO(this[J+1]))q=this[J+1],this.splice(J,2);else throw new o(`Options "${this[J]}" requires a value, but none was provided.`,"MISSING_OPTION_VALUE");return q}return null}popOption(Z,Y=0){let Q=this.optionIndexOf(Z,Y);if(Q!==-1)return this.splice(Q,1)[0];return null}spliceOption(Z,Y,Q=0){let J=this.optionIndexOf(Z,Q);if(J!==-1)return this.splice(J,1,...Y),!0;return!1}hasOption(Z,Y=0){return this.optionIndexOf(Z,Y)!==-1}slice(Z,Y){return new R8(super.slice(Z,Y))}toArray(){return super.slice(0)}splice(Z,Y,...Q){let J=this.length,q=arguments.length===1?super.splice(Z):super.splice(Z,Y,...Q);if(!p.indexArgs)return q;if(this.indexesDirty||this.indexedLength!==J)return this.reindex(),q;let X=NP(Z,J);return this.updateIndexesAfterSplice(X,q.length,Q),q}indexOf(Z,Y=0){if(!p.indexArgs||!Z.startsWith("-"))return super.indexOf(Z,Y);this.ensureIndexes();let Q=pO(Y,this.length);if(Q>=this.length)return-1;let J=this.argIndexes.get(d5(Z));if(J&&J.length>0){let X=0;if(J.length===1){if(J[0]<Q)X=1}else X=A3(J,Q);while(X<J.length){let z=J[X];if(this[z]===Z)return z;X+=1}}let q=super.indexOf(Z,Q);if(q!==-1)this.reindex();return q}push(...Z){let Y=this.length,Q=super.push(...Z);if(!p.indexArgs)return Q;if(this.indexesDirty||this.indexedLength!==Y)return this.reindex(),Q;return this.updateIndexesAfterSplice(Y,0,Z),Q}pop(){if(this.length===0)return;let Z=this.length,Y=super.pop();if(!p.indexArgs)return Y;if(this.indexesDirty||this.indexedLength!==Z)return this.reindex(),Y;return this.updateIndexesAfterSplice(Z-1,1,[]),Y}shift(){if(this.length===0)return;let Z=this.length,Y=super.shift();if(!p.indexArgs)return Y;if(this.indexesDirty||this.indexedLength!==Z)return this.reindex(),Y;return this.updateIndexesAfterSplice(0,1,[]),Y}unshift(...Z){let Y=this.length,Q=super.unshift(...Z);if(!p.indexArgs)return Q;if(this.indexesDirty||this.indexedLength!==Y)return this.reindex(),Q;return this.updateIndexesAfterSplice(0,0,Z),Q}reverse(){return super.reverse(),this.reindex(),this}sort(Z){return super.sort(Z),this.reindex(),this}fill(Z,Y,Q){return super.fill(Z,Y,Q),this.reindex(),this}copyWithin(Z,Y,Q){return super.copyWithin(Z,Y,Q),this.reindex(),this}invalidateIndexes(){this.argIndexes.clear(),this.indexedLength=-1,this.indexesDirty=!0}ensureIndexes(){if(!p.indexArgs)return;if(this.indexesDirty||this.indexedLength!==this.length)this.reindex()}updateIndexesAfterSplice(Z,Y,Q){let J=Z+Y,q=Q.length-Y;for(let[X,z]of this.argIndexes){if(z.length===1){let U=z[0];if(U>=Z&&U<J){this.argIndexes.delete(X);continue}if(U>=J)z[0]=U+q;continue}let W=0;for(let U of z){if(U<Z){z[W]=U,W+=1;continue}if(U>=J)z[W]=U+q,W+=1}if(W===0)this.argIndexes.delete(X);else z.length=W}for(let X=0;X<Q.length;X++){let z=Q[X];if(!z.startsWith("-"))continue;let W=d5(z),U=Z+X,K=this.argIndexes.get(W);if(!K){this.argIndexes.set(W,[U]);continue}if(K.length===1){if(U<=K[0])K.unshift(U);else K.push(U);continue}let B=K[K.length-1];if(U>=B){K.push(U);continue}let $=A3(K,U);K.splice($,0,U)}this.indexedLength=this.length,this.indexesDirty=!1}reindex(){if(!p.indexArgs)return;this.argIndexes.clear();for(let Z=0;Z<this.length;Z++){let Y=this[Z];if(Y===void 0)continue;if(!Y.startsWith("-"))continue;let Q=d5(Y),J=this.argIndexes.get(Q);if(J)J.push(Z);else this.argIndexes.set(Q,[Z])}this.indexedLength=this.length,this.indexesDirty=!1}}});import lO from"path";async function oO(Z){let Y=!!Z?.forceRefresh,Q=Z?.spinner,J=await I0(),q=await J.get(J2),X=TP(q);if(X&&!Y&&!GP(X.lastUpdatedAt))return C3(X);if(!X&&!Y&&Date.now()-nO<LP)return null;try{if(Q)Q.setMessage("Updating language catalog...");let z=await AP(),W=await kP(),U=wP(z,W);return await J.set(J2,U,{maxAgeMinutes:1/0}),C3(U)}catch(z){return nO=Date.now(),M.warn(`Failed to refresh language catalog: ${o.from(z).message}`,"languages"),X?C3(X):null}}function iO(Z,Y){let Q=lO.extname(Y).toLowerCase(),J=lO.basename(Y),q=Z.languages.find((X)=>X.filenames?.includes(J));if(q)return q;if(!Q)return null;return Z.byExtension.get(Q)||null}function wP(Z,Y){let Q=Y.parse(Z),J=[];for(let[q,X]of Object.entries(Q||{})){if(!X||typeof X!=="object")continue;let z=X,W=CP(z.extensions);if(!z.color)continue;if(z.type==="data"&&!q2.includes(z.language_id))continue;if(W.length===0)continue;let U=RP(z.color)??R3;J.push({name:q,extensions:W,color:U,filenames:Array.isArray(z.filenames)?z.filenames.filter((K)=>typeof K==="string"):[],id:z.language_id})}return J=sO(J),J.sort((q,X)=>q.name.localeCompare(X.name)),{lastUpdatedAt:new Date().toISOString(),languages:J}}async function AP(){let Z=new AbortController,Y=setTimeout(()=>Z.abort(),Xz);try{let Q=await fetch(Jz,{signal:Z.signal});if(!Q.ok)throw Error(`HTTP ${Q.status} ${Q.statusText}`);return await Q.text()}finally{clearTimeout(Y)}}function C3(Z){let Y=sO(Z.languages),Q=new Map;for(let J of Y)for(let q of J.extensions)if(!Q.has(q))Q.set(q,J);return{lastUpdatedAt:Z.lastUpdatedAt,languages:Y,byExtension:Q}}function sO(Z){let Y=new Map;for(let J of Z)for(let q of J.extensions)Y.set(q,(Y.get(q)||0)+1);let Q=[];for(let J of Z){if(J.id!==void 0&&q2.includes(J.id)){Q.push(J);continue}let q=J.extensions.filter((X)=>(Y.get(X)||0)===1);if(q.length===0)continue;Q.push({...J,extensions:q})}return Q}function GP(Z){let Y=Date.parse(Z);if(!Number.isFinite(Y))return!0;return Date.now()-Y>=qz}function CP(Z){if(!Array.isArray(Z))return[];let Y=new Set;for(let Q of Z){if(typeof Q!=="string")continue;let J=Q.trim().toLowerCase();if(!J.startsWith("."))continue;if(J.length<=1)continue;Y.add(J)}return Array.from(Y)}function RP(Z){if(typeof Z!=="string")return null;let Y=Z.trim(),Q=Y.match(/^#?([\da-fA-F]{6})$/);if(Q)return parseInt(Q[1],16);let J=Y.match(/^#?([\da-fA-F]{3})$/);if(J){let q=J[1].split("").map((X)=>X+X).join("");return parseInt(q,16)}return null}function TP(Z){try{return _Z(tV,Z)}catch{return null}}async function kP(){if(l5)return l5;try{return l5=await import("yaml"),l5}catch(Z){throw M.error(`Failed to load YAML parser for language catalog: ${o.from(Z).message}`,"languages"),Error("YAML parser unavailable")}}var LP=600000,R3=16777215,nO=0,l5=null;var aO=j(()=>{z0();z8();L5();H0();w0();w8()});function AZ(Z,Y=1,Q=!1){if(Z<1024)return`${Z}B`;return L6(Z,Y,1024,Q)+"iB"}var rO=j(()=>{z0()});import*as T3 from"path";async function k3(Z){let Y=A5(),Q=Y.$,{args:J,git$:q}=Z;if(!await i8(q))return 1;let X=J.hasOption("--all")||J.hasOption("-a");J.popOption("--all"),J.popOption("-a");let z=J.hasOption("--lang-metric"),W=J.popValue("--lang-metric"),U=hP(W,z);if(!U)return M.error("Invalid --lang-metric value. Use one of: auto, net, activity (for example: --lang-metric auto).","stats"),1;let K=gP(U,X),B="",$="Your",F="";if(!X){try{let V=J.popValue("--author");if(V)B=V.trim().replace(/^["']|["']$/g,"");else B=await s8(q,"user.email"),B=B?B.trim().replace(/^["']|["']$/g,""):B}catch(V){return Y.abort(),M.error("Failed to read git config user.email.","stats"),M.error(u(V,{color:!0}),"stats"),1}if(!B)return M.error("No user.email configured in git.","stats"),1;F=B}else $="Project-wide",F="all authors";let O=x0({message:X?"Gathering project-wide stats...":`Gathering stats for ${B}...`});try{let V=Q`${q} rev-list --all --count`,D=Q`${q} fsck --unreachable --no-reflogs --no-progress --full`,_=X?Q`${q} cat-file --batch-all-objects --batch-check=%(objectname):%(objectsize)`:Promise.resolve({stdout:""}),N=Q`${q} log --all --pretty=tformat: --numstat`,w=`%ar ${H.reset+H.dim}[at %h] (on %ad)`+H.reset,G=`%ar ${H.reset+H.dim}[at %h] (on %ad)`+H.reset,I=X?Q`${q} log --all --format=%aN%x09%ae --numstat`:Promise.resolve({stdout:""}),A=X?Promise.resolve({stdout:""}):Q`${q} log --all --author=${B} -1 --format=%aN`,x=(await F6(q)).trim(),[T,S,y,g,P,c,v,J0,h,s,m,n,a,r]=await Promise.all([X?V:Q`${q} rev-list --all --count --author=${B}`,V,D,X?Q`${q} log --all --since=midnight --pretty=tformat:%h`:Q`${q} log --all --author=${B} --since=midnight --pretty=tformat:%h`,X?Promise.resolve({stdout:""}):Q`${q} log --all --author=${B} --pretty=tformat: --numstat`,N,I,A,VO(q),X?Q`${q} rev-list --all --reverse`:Q`${q} rev-list --all --author=${B} --reverse`,X?Q`${q} log --all -1 --format=${G}`:Q`${q} log --all --author=${B} -1 --format=${G}`,P5(q),C8(q,x),_]),V0=null;try{V0=await oO({spinner:O})}catch{V0=null}let _0=x.split(/[\\/]/).pop()||x,Y0=J0.stdout.trim();if(!X&&Y0)$=`${Y0}'s`;let N0=parseInt(T.stdout.trim()),u0=parseInt(S.stdout.trim()),k0=SP(y.stdout,y.stderr),C0=X?yP(r.stdout,k0.objectIds):null,P0=g.stdout.trim()?g.stdout.trim().split(`
|
|
450
|
-
`).length:0;
|
|
451
|
-
`).map((
|
|
452
|
-
`),
|
|
453
|
-
${
|
|
454
|
-
|
|
455
|
-
─── ${
|
|
456
|
-
Project: ${H.cyan}${
|
|
457
|
-
Total Commits: ${H.green}${
|
|
458
|
-
Total Lines Added: ${H.green}+ ${
|
|
459
|
-
Total Lines Removed: ${H.red}- ${
|
|
460
|
-
${
|
|
461
|
-
Most Active Branch: ${H.cyan}${
|
|
462
|
-
First Commit: ${H.yellow}${
|
|
463
|
-
Last Commit: ${H.yellow}${
|
|
464
|
-
${H.dim+
|
|
465
|
-
`)}}return await
|
|
466
|
-
`)){let K=U.trim();if(!K)continue;let B=U.split("\t");if(B.length>=3){if(!/^\d+$/.test(B[0])||!/^\d+$/.test(B[1]))continue;if(!J)continue;let
|
|
467
|
-
`);for(let U of X){let K=U.split("\t");if(K.length<3)continue;let[B,$]=K;if(!/^\d+$/.test(B)||!/^\d+$/.test($))continue;let
|
|
447
|
+
${H.cyan}${R} graph ${H.reset+H.dim}# Graph for configured git user${H.reset}
|
|
448
|
+
${H.cyan}${R} graph --email bob@example.com ${H.reset+H.dim}# Graph for specified author${H.reset}
|
|
449
|
+
${H.cyan}${R} graph --all ${H.reset+H.dim}# Graph for all authors${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},rO={$root:["--email","--all","-a","--quiet"]}});function tO(Z,Y){if(!Number.isFinite(Z))return 0;let Q=Math.trunc(Z);if(Q<0){let J=Y+Q;return J<0?0:J}return Q}function eO(Z,Y){if(Z==null)return!1;if(Y.includes(l1))return Z===Y;return Z===Y||Z.startsWith(Y+l1)}function n5(Z){let Y=Z.indexOf(l1);return Y===-1?Z:Z.slice(0,Y)}function xJ(Z,Y){let Q=0,J=Z.length;while(Q<J){let q=Q+J>>>1;if(Z[q]<Y)Q=q+1;else J=q}return Q}function hx(Z,Y){if(!Number.isFinite(Z))return 0;if(Z<0){let Q=Y+Z;return Q<0?0:Q}return Z>Y?Y:Z}function ZD(Z){if(Z==="--")return!1;if(Z==="-"||!Z.startsWith("-"))return!0;return/^-\d+(\.\d+)?$/.test(Z)}function gx(Z,Y){let Q=Z[Y];if(fx.includes(Q))return{consumed:1,gitArgs:[Q]};for(let J of yx){if(Q===J){if(Y+1>=Z.length)return null;let q=Z[Y+1];if(q==="--")return null;return{consumed:2,gitArgs:[J,q]}}if(Q.startsWith(J+"="))return{consumed:1,gitArgs:[J,Q.slice(J.length+1)]};if(!J.startsWith("--")&&Q.startsWith(J)&&Q.length>J.length)return{consumed:1,gitArgs:[J,Q.slice(J.length)]}}return null}function o5(Z,Y){if(Z[0]&&!Z[0].startsWith("-"))return{args:Z,gitArgs:[],cursorIndex:Y,cursorInGitGlobal:!1};let Q=new Set,J=[],q=0;while(q<Z.length){let W=Z[q];if(W==="--")break;let U=gx(Z,q);if(U){let K=q,B=q+U.consumed-1;if(Y!=null&&Y>=K&&Y<=B)return{args:Z,gitArgs:[],cursorIndex:Y,cursorInGitGlobal:!0};if(Y==null||B<Y){J.push(...U.gitArgs);for(let $=K;$<=B;$++)Q.add($)}q+=U.consumed;continue}if(vx.includes(W)){if(q+1>=Z.length)break;q+=2;continue}if(Sx.includes(W)){q+=1;continue}if(W.startsWith("-")){q+=1;continue}break}if(Q.size===0)return{args:Z,gitArgs:J,cursorIndex:Y,cursorInGitGlobal:!1};let X=Z.filter((W,U)=>!Q.has(U)),z=Y;if(Y!=null){let W=0;for(let U of Q)if(U<Y)W+=1;if(z=Math.max(0,Y-W),X.length>0&&z>=X.length)z=X.length-1}return{args:X,gitArgs:J,cursorIndex:z,cursorInGitGlobal:!1}}function YD(Z){let Y=Z.indexOf("=");if(Y!==-1)return Z.substring(Y+1);return null}function bJ(Z){return new k4(Z)}var vx,Sx,yx,fx,l1="=",k4;var GZ=N(()=>{H0();z0();S0();vx=[...Kz],Sx=[...Bz],yx=[...$z],fx=[...Fz];k4=class k4 extends Array{argIndexes=new Map;indexedLength=-1;indexesDirty=!0;constructor(Z){if(Array.isArray(Z))super(...Z);else super(Z);this.reindex()}optionIndexOf(Z,Y=0){let Q=tO(Y,this.length),J=-1;if(p.indexArgs)this.ensureIndexes(),J=this.argIndexes.get("--")?.[0]??-1;else J=super.indexOf("--");if(J!==-1&&J<Q)return-1;let q=J===-1?this.length:J,X=n5(Z);if(p.indexArgs&&X.startsWith("-")){let z=this.argIndexes.get(X);if(z&&z.length>0){let W=0;if(z.length===1){let U=z[0];if(U<Q||U>=q)W=1}else W=xJ(z,Q);while(W<z.length){let U=z[W];if(U>=q)break;if(eO(this[U],Z))return U;W+=1}}}for(let z=Q;z<q;z++)if(eO(this[z],Z)){if(p.indexArgs&&X.startsWith("-"))this.reindex();return z}return-1}delete(Z){let Y=this.optionIndexOf(Z);if(Y!==-1)return this.splice(Y,1),!0;return!1}popValue(Z,Y=0,Q=!1){let J=this.optionIndexOf(Z,Y);if(J!==-1){let q=null,X=this[J];if(X.includes(l1))q=YD(X),this.splice(J,1);else if(!Q&&J+1<this.length&&ZD(this[J+1]))q=this[J+1],this.splice(J,2);else this.splice(J,1);return q}return null}popAssertValue(Z,Y=0,Q=!1){let J=this.optionIndexOf(Z,Y);if(J!==-1){let q=null,X=this[J];if(X.includes(l1))q=YD(X),this.splice(J,1);else if(!Q&&J+1<this.length&&ZD(this[J+1]))q=this[J+1],this.splice(J,2);else throw new o(`Options "${this[J]}" requires a value, but none was provided.`,"MISSING_OPTION_VALUE");return q}return null}popOption(Z,Y=0){let Q=this.optionIndexOf(Z,Y);if(Q!==-1)return this.splice(Q,1)[0];return null}spliceOption(Z,Y,Q=0){let J=this.optionIndexOf(Z,Q);if(J!==-1)return this.splice(J,1,...Y),!0;return!1}hasOption(Z,Y=0){return this.optionIndexOf(Z,Y)!==-1}slice(Z,Y){return new k4(super.slice(Z,Y))}toArray(){return super.slice(0)}splice(Z,Y,...Q){let J=this.length,q=arguments.length===1?super.splice(Z):super.splice(Z,Y,...Q);if(!p.indexArgs)return q;if(this.indexesDirty||this.indexedLength!==J)return this.reindex(),q;let X=hx(Z,J);return this.updateIndexesAfterSplice(X,q.length,Q),q}indexOf(Z,Y=0){if(!p.indexArgs||!Z.startsWith("-"))return super.indexOf(Z,Y);this.ensureIndexes();let Q=tO(Y,this.length);if(Q>=this.length)return-1;let J=this.argIndexes.get(n5(Z));if(J&&J.length>0){let X=0;if(J.length===1){if(J[0]<Q)X=1}else X=xJ(J,Q);while(X<J.length){let z=J[X];if(this[z]===Z)return z;X+=1}}let q=super.indexOf(Z,Q);if(q!==-1)this.reindex();return q}push(...Z){let Y=this.length,Q=super.push(...Z);if(!p.indexArgs)return Q;if(this.indexesDirty||this.indexedLength!==Y)return this.reindex(),Q;return this.updateIndexesAfterSplice(Y,0,Z),Q}pop(){if(this.length===0)return;let Z=this.length,Y=super.pop();if(!p.indexArgs)return Y;if(this.indexesDirty||this.indexedLength!==Z)return this.reindex(),Y;return this.updateIndexesAfterSplice(Z-1,1,[]),Y}shift(){if(this.length===0)return;let Z=this.length,Y=super.shift();if(!p.indexArgs)return Y;if(this.indexesDirty||this.indexedLength!==Z)return this.reindex(),Y;return this.updateIndexesAfterSplice(0,1,[]),Y}unshift(...Z){let Y=this.length,Q=super.unshift(...Z);if(!p.indexArgs)return Q;if(this.indexesDirty||this.indexedLength!==Y)return this.reindex(),Q;return this.updateIndexesAfterSplice(0,0,Z),Q}reverse(){return super.reverse(),this.reindex(),this}sort(Z){return super.sort(Z),this.reindex(),this}fill(Z,Y,Q){return super.fill(Z,Y,Q),this.reindex(),this}copyWithin(Z,Y,Q){return super.copyWithin(Z,Y,Q),this.reindex(),this}invalidateIndexes(){this.argIndexes.clear(),this.indexedLength=-1,this.indexesDirty=!0}ensureIndexes(){if(!p.indexArgs)return;if(this.indexesDirty||this.indexedLength!==this.length)this.reindex()}updateIndexesAfterSplice(Z,Y,Q){let J=Z+Y,q=Q.length-Y;for(let[X,z]of this.argIndexes){if(z.length===1){let U=z[0];if(U>=Z&&U<J){this.argIndexes.delete(X);continue}if(U>=J)z[0]=U+q;continue}let W=0;for(let U of z){if(U<Z){z[W]=U,W+=1;continue}if(U>=J)z[W]=U+q,W+=1}if(W===0)this.argIndexes.delete(X);else z.length=W}for(let X=0;X<Q.length;X++){let z=Q[X];if(!z.startsWith("-"))continue;let W=n5(z),U=Z+X,K=this.argIndexes.get(W);if(!K){this.argIndexes.set(W,[U]);continue}if(K.length===1){if(U<=K[0])K.unshift(U);else K.push(U);continue}let B=K[K.length-1];if(U>=B){K.push(U);continue}let $=xJ(K,U);K.splice($,0,U)}this.indexedLength=this.length,this.indexesDirty=!1}reindex(){if(!p.indexArgs)return;this.argIndexes.clear();for(let Z=0;Z<this.length;Z++){let Y=this[Z];if(Y===void 0)continue;if(!Y.startsWith("-"))continue;let Q=n5(Y),J=this.argIndexes.get(Q);if(J)J.push(Z);else this.argIndexes.set(Q,[Z])}this.indexedLength=this.length,this.indexesDirty=!1}}});import QD from"path";async function qD(Z){let Y=!!Z?.forceRefresh,Q=Z?.spinner,J=await I0(),q=await J.get(K2),X=nx(q);if(X&&!Y&&!dx(X.lastUpdatedAt))return vJ(X);if(!X&&!Y&&Date.now()-JD<mx)return null;try{if(Q)Q.setMessage("Updating language catalog...");let z=await ux(),W=await ox(),U=px(z,W);return await J.set(K2,U,{maxAgeMinutes:1/0}),vJ(U)}catch(z){return JD=Date.now(),M.warn(`Failed to refresh language catalog: ${o.from(z).message}`,"languages"),X?vJ(X):null}}function XD(Z,Y){let Q=QD.extname(Y).toLowerCase(),J=QD.basename(Y),q=Z.languages.find((X)=>X.filenames?.includes(J));if(q)return q;if(!Q)return null;return Z.byExtension.get(Q)||null}function px(Z,Y){let Q=Y.parse(Z),J=[];for(let[q,X]of Object.entries(Q||{})){if(!X||typeof X!=="object")continue;let z=X,W=cx(z.extensions);if(!z.color)continue;if(z.type==="data"&&!B2.includes(z.language_id))continue;if(W.length===0)continue;let U=lx(z.color)??SJ;J.push({name:q,extensions:W,color:U,filenames:Array.isArray(z.filenames)?z.filenames.filter((K)=>typeof K==="string"):[],id:z.language_id})}return J=zD(J),J.sort((q,X)=>q.name.localeCompare(X.name)),{lastUpdatedAt:new Date().toISOString(),languages:J}}async function ux(){let Z=new AbortController,Y=setTimeout(()=>Z.abort(),Dz);try{let Q=await fetch(Vz,{signal:Z.signal});if(!Q.ok)throw Error(`HTTP ${Q.status} ${Q.statusText}`);return await Q.text()}finally{clearTimeout(Y)}}function vJ(Z){let Y=zD(Z.languages),Q=new Map;for(let J of Y)for(let q of J.extensions)if(!Q.has(q))Q.set(q,J);return{lastUpdatedAt:Z.lastUpdatedAt,languages:Y,byExtension:Q}}function zD(Z){let Y=new Map;for(let J of Z)for(let q of J.extensions)Y.set(q,(Y.get(q)||0)+1);let Q=[];for(let J of Z){if(J.id!==void 0&&B2.includes(J.id)){Q.push(J);continue}let q=J.extensions.filter((X)=>(Y.get(X)||0)===1);if(q.length===0)continue;Q.push({...J,extensions:q})}return Q}function dx(Z){let Y=Date.parse(Z);if(!Number.isFinite(Y))return!0;return Date.now()-Y>=Oz}function cx(Z){if(!Array.isArray(Z))return[];let Y=new Set;for(let Q of Z){if(typeof Q!=="string")continue;let J=Q.trim().toLowerCase();if(!J.startsWith("."))continue;if(J.length<=1)continue;Y.add(J)}return Array.from(Y)}function lx(Z){if(typeof Z!=="string")return null;let Y=Z.trim(),Q=Y.match(/^#?([\da-fA-F]{6})$/);if(Q)return parseInt(Q[1],16);let J=Y.match(/^#?([\da-fA-F]{3})$/);if(J){let q=J[1].split("").map((X)=>X+X).join("");return parseInt(q,16)}return null}function nx(Z){try{return LZ(UO,Z)}catch{return null}}async function ox(){if(i5)return i5;try{return i5=await import("yaml"),i5}catch(Z){throw M.error(`Failed to load YAML parser for language catalog: ${o.from(Z).message}`,"languages"),Error("YAML parser unavailable")}}var mx=600000,SJ=16777215,JD=0,i5=null;var HD=N(()=>{z0();W4();G5();H0();w0();A4()});function CZ(Z,Y=1,Q=!1){if(Z<1024)return`${Z}B`;return w6(Z,Y,1024,Q)+"iB"}var WD=N(()=>{z0()});import*as yJ from"path";async function fJ(Z){let Y=R5(),Q=Y.$,{args:J,git$:q}=Z;if(!await r4(q))return 1;let X=J.hasOption("--all")||J.hasOption("-a");J.popOption("--all"),J.popOption("-a");let z=J.hasOption("--lang-metric"),W=J.popValue("--lang-metric"),U=Qb(W,z);if(!U)return M.error("Invalid --lang-metric value. Use one of: auto, net, activity (for example: --lang-metric auto).","stats"),1;let K=Jb(U,X),B="",$="Your",V="";if(!X){try{let F=J.popValue("--author");if(F)B=F.trim().replace(/^["']|["']$/g,"");else B=await t4(q,"user.email"),B=B?B.trim().replace(/^["']|["']$/g,""):B}catch(F){return Y.abort(),M.error("Failed to read git config user.email.","stats"),M.error(u(F,{color:!0}),"stats"),1}if(!B)return M.error("No user.email configured in git.","stats"),1;V=B}else $="Project-wide",V="all authors";let D=P0({message:X?"Gathering project-wide stats...":`Gathering stats for ${B}...`});try{let F=Q`${q} rev-list --all --count`,O=Q`${q} fsck --unreachable --no-reflogs --no-progress --full`,j=X?Q`${q} cat-file --batch-all-objects --batch-check=%(objectname):%(objectsize)`:Promise.resolve({stdout:""}),_=Q`${q} log --all --pretty=tformat: --numstat`,L=`%ar ${H.reset+H.dim}[at %h] (on %ad)`+H.reset,A=`%ar ${H.reset+H.dim}[at %h] (on %ad)`+H.reset,I=X?Q`${q} log --all --format=%aN%x09%ae --numstat`:Promise.resolve({stdout:""}),G=X?Promise.resolve({stdout:""}):Q`${q} log --all --author=${B} -1 --format=%aN`,P=(await F6(q)).trim(),[T,S,y,g,x,c,v,J0,h,s,m,n,a,r]=await Promise.all([X?F:Q`${q} rev-list --all --count --author=${B}`,F,O,X?Q`${q} log --all --since=midnight --pretty=tformat:%h`:Q`${q} log --all --author=${B} --since=midnight --pretty=tformat:%h`,X?Promise.resolve({stdout:""}):Q`${q} log --all --author=${B} --pretty=tformat: --numstat`,_,I,G,AO(q),X?Q`${q} rev-list --all --reverse`:Q`${q} rev-list --all --author=${B} --reverse`,X?Q`${q} log --all -1 --format=${A}`:Q`${q} log --all --author=${B} -1 --format=${A}`,S5(q),R4(q,P),j]),V0=null;try{V0=await qD({spinner:D})}catch{V0=null}let _0=P.split(/[\\/]/).pop()||P,Y0=J0.stdout.trim();if(!X&&Y0)$=`${Y0}'s`;let N0=parseInt(T.stdout.trim()),u0=parseInt(S.stdout.trim()),k0=ex(y.stdout,y.stderr),C0=X?Zb(r.stdout,k0.objectIds):null,x0=g.stdout.trim()?g.stdout.trim().split(`
|
|
450
|
+
`).length:0;D.setMessage("Detecting repository details...");let a0=a.length,C6=a0>0?H.dim+H.white+` (${a0} submodules)`:"",p0=ix(n),x4=p0.repoUrl?`${S6(_0,p0.repoUrl,!1)}${C6}`:`${_0}${C6}`,Q8=performance.now(),Y6=KD(c.stdout),v6=X?Y6:KD(x.stdout),e6=v6.totalAdded,J8=v6.totalRemoved,VX=CZ(e6*z8.AVG_CHARS_PER_LINE,2),OX=CZ(J8*z8.AVG_CHARS_PER_LINE,2),DX=w6(e6/z8.AVG_LINES_PER_FUNCTION,1,1000,!1,0),MX=w6(J8/z8.AVG_LINES_PER_FUNCTION,1,1000,!1,0),jX=w6(e6/z8.AVG_LINES_PER_FILE,1,1000,!1,0),_X=w6(J8/z8.AVG_LINES_PER_FILE,1,1000,!1,0),h_=Y6.totalAdded,g_=Y6.totalRemoved,m_=e6+J8,cQ=h_+g_,p_=cQ>0?m8(m_/cQ*100,2,!0):"0.00",W7=X?sx(v.stdout,cQ):null,NX=X?W7?W7.contributionPct:"0.00":p_,u_=W7?UD(W7.username,p0):"N/A",d_=!X?UD($,p0):$,c_=w6((performance.now()-Q8)/1000,2)+"s",lQ=0,IX="N/A";D.setMessage("Analyzing branch activity...");let l_=await Promise.all(h.map(async(I6)=>{let{stdout:S8}=X?await Q`${q} rev-list --count refs/heads/${I6}`:await Q`${q} rev-list --count --author=${B} refs/heads/${I6}`;return{branch:I6,count:parseInt(S8.trim(),10)}}));for(let{branch:I6,count:S8}of l_)if(S8>lQ)lQ=S8,IX=I6;D.setMessage("Resolving commit timestamps...");let LX=s.stdout.split(`
|
|
451
|
+
`).map((I6)=>I6.trim()).find((I6)=>I6.length>0),wX="Never";if(LX)wX=(await Q`${q} show -s --format=${L} ${LX}`).stdout.trim()||"Never";let n_=m.stdout.trim()||"Never",o_=Buffer.byteLength(c.stdout)+(X?0:Buffer.byteLength(x.stdout)),i_=Y6.totalRecords+(X?0:v6.totalRecords),AX=k0.commit>0?H.red:H.white+H.dim,GX=`${k0.commit} ${H.white+H.dim}orphan${k0.commit===1?"":"s"}`,s_=X?` / ${AX}${GX}${H.reset}`:` / ${H.yellow}${RZ(u0)}${H.reset+H.dim} all${H.reset} / ${AX}${GX}${H.reset}`,a_=X?` Most Active User: ${H.cyan}${u_}${H.reset} (${H.magenta}${NX}%${H.reset} of all lines changed in the project)`:` Contributions: ${H.magenta}${NX}%${H.reset} of all lines changed in the project`,U7=[`${H.dim+H.italic}Showing stats for ${V} in ${_0}${H.reset}`,`${H.dim}Parsed ${CZ(o_)} of ${w6(i_,1,1000,!0)} numstat records in ${c_}${H.reset}`],r_=r0(U7[0]+U7[1])+7<p.terminalWidth?" "+b0(U7,p.terminalWidth-4,{align:"spacebetween"}):U7.map((I6)=>" "+I6).join(`
|
|
452
|
+
`),t_=p.terminalWidth>100?`(roughly ${VX}, ${DX} functions or ${jX} source files)`:`(${VX}, ${DX} fns or ${jX} files)`,e_=p.terminalWidth>100?`(roughly ${OX}, ${MX} functions or ${_X} source files)`:`(${OX}, ${MX} fns or ${_X} files)`,CX=X&&C0?` Object Inventory: ${H.cyan}${RZ(C0.totalObjects)}${H.reset} total ${H.dim}(${CZ(C0.totalBytes)})${H.reset} / ${H.yellow}${RZ(C0.garbageObjects)}${H.reset} garbage ${H.dim}(${CZ(C0.garbageBytes)})${H.reset}`:"",ZN=CX?`
|
|
453
|
+
${CX}`:"";if(D.stop(),C(`${r_}
|
|
454
|
+
|
|
455
|
+
─── ${d_} Git Stats ───
|
|
456
|
+
Project: ${H.cyan}${x4}${H.reset}
|
|
457
|
+
Total Commits: ${H.green}${RZ(N0)}${H.reset} (today: ${x0})${s_}${ZN}
|
|
458
|
+
Total Lines Added: ${H.green}+ ${RZ(e6)} lines ${H.reset}${H.dim}${t_+H.reset}
|
|
459
|
+
Total Lines Removed: ${H.red}- ${RZ(J8)} lines ${H.reset}${H.dim}${e_+H.reset}
|
|
460
|
+
${a_}
|
|
461
|
+
Most Active Branch: ${H.cyan}${IX}${H.reset} (${lQ} commits)
|
|
462
|
+
First Commit: ${H.yellow}${wX}${H.reset}
|
|
463
|
+
Last Commit: ${H.yellow}${n_}${H.reset}`),V0){let I6=K==="net"?"Language Usage:":"Language Activity:",S8=K==="net"?"(Net changes)":"(Aggregated changes)",YN=o0.clamp(p.terminalWidth-21-2-2,24,56),QN=K==="net"?v6.netFiles.map((q8)=>({filePath:q8.filePath,lines:q8.netLines})):v6.activityFiles.map((q8)=>({filePath:q8.filePath,lines:q8.activityLines})),nQ=Yb(V0,QN,YN);if(nQ){let q8=" "+b0(I6,21,{align:"left",redundancyLv:-1}),JN=" "+b0(S8,21,{align:"left",redundancyLv:-1});C(`${q8}${nQ.bar}
|
|
464
|
+
${H.dim+JN+H.reset}${nQ.legend}${H.reset}
|
|
465
|
+
`)}}return await d1({...Z,args:X?bJ(["--quiet","--all"]):bJ(["--quiet","--email",B])}),0}catch(F){return D.stop(),Y.abort(),M.error(u(F,{color:!0})),1}}function ix(Z){if(!Z)return{repoUrl:null,host:null,provider:null};let Y=Z.trim();if(!Y)return{repoUrl:null,host:null,provider:null};let Q=Y.indexOf("/"),J=Q===-1?Y:Y.slice(0,Q),q=Q===-1?"":Y.slice(Q+1),z=J.includes(".")||J.includes(":")||J==="localhost"?J:null,W=z&&q?`https://${z}/${q}`:null,U=z?z.toLowerCase():"",K=null;if(U.includes("github"))K="github";else if(U.includes("gitlab"))K="gitlab";else if(U.includes("gitea"))K="gitea";return{repoUrl:W,host:z,provider:K}}function sx(Z,Y){if(!Z.trim())return null;let Q=new Map,J="",q="";for(let U of Z.split(`
|
|
466
|
+
`)){let K=U.trim();if(!K)continue;let B=U.split("\t");if(B.length>=3){if(!/^\d+$/.test(B[0])||!/^\d+$/.test(B[1]))continue;if(!J)continue;let V=parseInt(B[0],10)+parseInt(B[1],10);if(V<=0)continue;let D=FD(B.slice(2).join("\t").trim());if(U2.includes(yJ.extname(D).toLowerCase()))continue;let F=ax(q,J),O=Q.get(F);if(O){if(O.lines+=V,!O.name&&q)O.name=q;if(!O.email&&J)O.email=J}else Q.set(F,{name:q,email:J,lines:V});continue}let $=U.lastIndexOf("\t");if($>0)q=U.slice(0,$).trim().replace(/^"|"$/g,"").replace(/^'|'$/g,""),J=U.slice($+1).trim().replace(/^"|"$/g,"").replace(/^'|'$/g,"");else q="",J=K.replace(/^"|"$/g,"").replace(/^'|'$/g,"")}let X="",z="",W=0;for(let[,U]of Q.entries())if(U.lines>W)X=U.email,z=U.name,W=U.lines;if(!X)return null;return{email:X,username:z||X,contributionPct:Y>0?m8(W/Y*100,2,!0):"0.00"}}function ax(Z,Y){let Q=Y.trim().toLowerCase();if(Q)return`email:${Q}`;let J=Z.trim().toLowerCase();if(J)return`name:${J}`;return"unknown"}function UD(Z,Y){let Q=rx(Z),J=tx(Q,Y);if(!J)return Z;return S6(Z,J,!1)}function rx(Z){return Z.trim().replace(/"/g,"").replace(/'s$/i,"")}function tx(Z,Y){if(!Z||!Y.host||!Y.provider)return null;return`https://${Y.host}/${Z}`}function KD(Z){let Y=0,Q=0,J=new Map,q=new Map,X=Z.split(`
|
|
467
|
+
`);for(let U of X){let K=U.split("\t");if(K.length<3)continue;let[B,$]=K;if(!/^\d+$/.test(B)||!/^\d+$/.test($))continue;let V=parseInt(B,10),D=parseInt($,10),F=V+D;if(F<=0)continue;let O=FD(K.slice(2).join("\t").trim());if(U2.includes(yJ.extname(O).toLowerCase()))continue;Y+=V,Q+=D,q.set(O,(q.get(O)??0)+F);let j=V-D;if(j===0)continue;J.set(O,(J.get(O)??0)+j)}let z=Array.from(J.entries()).map(([U,K])=>({filePath:U,netLines:K})),W=Array.from(q.entries()).map(([U,K])=>({filePath:U,activityLines:K}));return{totalAdded:Y,totalRemoved:Q,totalRecords:X.length,netFiles:z,activityFiles:W}}function FD(Z){let Y=Z.lastIndexOf("=>");if(Y===-1)return Z;let Q=Z.slice(Y+2).trim();if(Q.startsWith("{"))Q=Q.slice(1);if(Q.endsWith("}"))Q=Q.slice(0,-1);return Q.trim()}function ex(Z,Y){let Q=new Set,J=`${Z}
|
|
468
468
|
${Y}`,q={};for(let X of J.split(`
|
|
469
|
-
`)){let z=X.trim().match(/^(?:unreachable|dangling) (\w+) ([0-9a-f]{40})$/i);if(!z)continue;let W=z[2].toLowerCase();if(!Q.has(W)){Q.add(W);let U=z[1].toLowerCase();q[U]=(q[U]||0)+1}}return{total:Q.size,commit:q.commit||0,objectIds:Q}}function
|
|
470
|
-
`)){let z=X.trim().match(/^([0-9a-f]{40}):(\d+)$/i);if(!z)continue;let W=z[1].toLowerCase(),U=parseInt(z[2],10);if(Q+=1,J+=U,Y.has(W))q+=U}return{totalObjects:Q,totalBytes:J,garbageObjects:Y.size,garbageBytes:q}}function
|
|
469
|
+
`)){let z=X.trim().match(/^(?:unreachable|dangling) (\w+) ([0-9a-f]{40})$/i);if(!z)continue;let W=z[2].toLowerCase();if(!Q.has(W)){Q.add(W);let U=z[1].toLowerCase();q[U]=(q[U]||0)+1}}return{total:Q.size,commit:q.commit||0,objectIds:Q}}function Zb(Z,Y){let Q=0,J=0,q=0;for(let X of Z.split(`
|
|
470
|
+
`)){let z=X.trim().match(/^([0-9a-f]{40}):(\d+)$/i);if(!z)continue;let W=z[1].toLowerCase(),U=parseInt(z[2],10);if(Q+=1,J+=U,Y.has(W))q+=U}return{totalObjects:Q,totalBytes:J,garbageObjects:Y.size,garbageBytes:q}}function RZ(Z){return Math.max(0,Math.trunc(Z)).toLocaleString("en-US")}function Yb(Z,Y,Q){if(Q<=0)return null;let J=0,q=new Map;for(let I of Y){let G=XD(Z,I.filePath);if(!G){J+=I.lines;continue}let P=q.get(G.name);if(P)P.lines+=I.lines;else q.set(G.name,{name:G.name,color:G.color,lines:I.lines})}let X=[...q.values()].filter((I)=>I.lines>0),z=Math.max(0,J),W=X.reduce((I,G)=>I+G.lines,0)+z;if(W<=0)return null;let U=[],K=z;for(let I of X){let G=I.lines/W*Q;if(G<1){K+=I.lines;continue}let P=Math.floor(G);U.push({name:I.name,color:I.color,lines:I.lines,cols:P,remainder:G-P,isOthers:!1})}if(K>0){let I=K/W*Q,G=Math.floor(I);U.push({name:"Others",color:SJ,lines:K,cols:G,remainder:I-G,isOthers:!0})}if(U.length===0)return null;let B=U.find((I)=>I.isOthers);if(B&&B.cols===0)B.cols=1,B.remainder=0;let $=U.reduce((I,G)=>I+G.cols,0);if($>Q){let I=U.filter((G)=>!G.isOthers).sort((G,P)=>P.cols-G.cols);for(let G of I){while($>Q&&G.cols>1)G.cols-=1,$-=1;if($<=Q)break}}if($>Q&&B&&B.cols>1)while($>Q&&B.cols>1)B.cols-=1,$-=1;let V=Q-$;if(V>0){let I=[...U].sort((P,T)=>T.remainder-P.remainder),G=0;while(V>0&&I.length>0)I[G%I.length].cols+=1,V-=1,G+=1}let D=U.filter((I)=>I.cols>0).sort((I,G)=>G.lines-I.lines),F=W*0.18,[O,j]=aX(D.slice(0,6),(I,G)=>{if(I.lines>=F)return 0;if(G===0)return 0;return 1}),_=O.map((I)=>m8(I.lines/W*100,1,!0)),L=D.map((I)=>`${M0(I.color,"fg")}${"━".repeat(I.cols)}`).join("")+H.reset,A=O.map((I,G)=>`${M0(I.color,"fg")}●${H.reset} ${_[G]}% ${I.name}`).join(" ")+H.dim+" "+(j?j.map((I)=>`${M0(I.color,"fg")}●${H.white} ${I.name}`).join(" "):"");return{bar:L,legend:A}}function Qb(Z,Y){if(!Y)return"auto";if(!Z)return null;let Q=Z.trim().toLowerCase();if(Q==="auto"||Q==="net"||Q==="activity")return Q;return null}function Jb(Z,Y){if(Z==="auto")return Y?"net":"activity";return Z}var BD,$D;var s5=N(()=>{z0();m0();R0();c1();GZ();H0();S0();v0();w0();e0();HD();s0();WD();BD={long:()=>{return t(Z0`
|
|
471
471
|
${H.bright+d("STATS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
472
472
|
Gather detailed contribution statistics for a git author in this repository.
|
|
473
473
|
|
|
@@ -480,13 +480,13 @@ ${Y}`,q={};for(let X of J.split(`
|
|
|
480
480
|
${H.bright+d("OPTIONS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
481
481
|
Use ${H.cyan}--author <email>${H.reset} to target a different author than the configured git user.email. Use ${H.cyan}--all${H.reset} or ${H.cyan}-a${H.reset} for project-wide stats across all authors. Use ${H.cyan}--lang-metric <auto|net|activity>${H.reset} to choose whether the language bar reflects net lines (added - removed), activity (added + removed), or automatic mode (project-wide net, author activity). Output includes a small visual graph invocation via the \`${H.cyan}graph${H.reset}\` command by default.
|
|
482
482
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Show contribution statistics for an author or the whole project.",usage:()=>{return t(Z0`
|
|
483
|
-
${H.cyan}${
|
|
483
|
+
${H.cyan}${R} stats ${H.dim}[--author <email>] [--all|-a] [--lang-metric <auto|net|activity>]${H.reset}
|
|
484
484
|
|
|
485
485
|
Examples:
|
|
486
|
-
${H.cyan}${
|
|
487
|
-
${H.cyan}${
|
|
488
|
-
${H.cyan}${
|
|
489
|
-
${H.cyan}${
|
|
486
|
+
${H.cyan}${R} stats ${H.reset+H.dim}# Stats for configured git user${H.reset}
|
|
487
|
+
${H.cyan}${R} stats --author alice@example.com ${H.reset+H.dim}# Stats for specified author${H.reset}
|
|
488
|
+
${H.cyan}${R} stats --all ${H.reset+H.dim}# Project-wide stats for all authors${H.reset}
|
|
489
|
+
${H.cyan}${R} stats --lang-metric net ${H.reset+H.dim}# Force net language usage in author scope${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},$D={$root:["--author","--all","-a","--lang-metric"]}});class a5{client;defaultModel;options;constructor(Z,Y,Q="gpt-5-nano",J){this.options={apiKey:Z,baseURL:Y,defaultHeaders:J},this.defaultModel=Q}async initClient(){if(!hJ)hJ=(await import("openai")).default;this.client=new hJ(this.options),this.options=void 0}async generate(Z){if(!this.client)throw new o("OpenAI client not initialized. Call initClient() before using.","DEVELOPER_ERROR");return(await this.client.chat.completions.create({messages:[{role:"user",content:Z.prompt}],model:Z.model||this.defaultModel,temperature:Z.temperature,max_tokens:Z.maxTokens,reasoning_effort:Z.reasoning})).choices[0].message.content||""}async*streamGenerate(Z){try{if(!this.client)throw new o("OpenAI client not initialized. Call initClient() before using.","DEVELOPER_ERROR");let Y=await this.client.chat.completions.create({messages:[{role:"user",content:Z.prompt}],model:Z.model||this.defaultModel,temperature:Z.temperature,max_tokens:Z.maxTokens,stream:!0,reasoning_effort:Z.reasoning});for await(let Q of Y){let J=Q.choices[0]?.delta,q=J?.content,X=J?.reasoning_content||J?.reasoning||J?.reasoning_details?.[0]?.summary;if(q||X)yield{chunk:q??void 0,thinkingChunk:X??void 0,metadata:{model:Q.model,finishReason:Q.choices[0]?.finish_reason??void 0}}}}catch(Y){yield{error:SX(Y)?Y:new o(String(Y),"OPENAI_STREAM_ERROR")}}}}var hJ=null;var VD=N(()=>{z0()});function OD(){return globalThis.__GDX_TEST_LLM_HOOKS}class gJ{config;constructor(Z={}){this.config=Z;this.config={responseDelayMs:0,streamDelayMs:0,...Z}}async generate(Z){let Y=OD();return Y?.onGenerate?.(Z),Y?.generateResponse??"Mock response from LLM"}async*streamGenerate(Z){let Y=OD();Y?.onStreamGenerate?.(Z);let J=(Y?.streamResponse??"Mock response from LLM").split(" ");if(this.config.responseDelayMs>0)await K7(this.config.responseDelayMs);let q=`I should generate a mock response for prompt with ${J.length} words.`.split(" ");for(let X of q){if(this.config.streamDelayMs>0)await K7(this.config.streamDelayMs);yield{chunk:void 0,thinkingChunk:X+" ",metadata:{}}}for(let X of J){if(this.config.streamDelayMs>0)await K7(this.config.streamDelayMs);yield{chunk:X+" ",thinkingChunk:void 0,metadata:{}}}}}var DD=N(()=>{z0()});async function n1(){let Z=await K0(),Y=Z.get("llm.provider")||"openai";if(Y==="mock")return new gJ(Y==="mock"?{responseDelayMs:2300,streamDelayMs:10}:{});let Q=await Z.getSecure("llm.apiKey"),J=Z.get("llm.model");if(!Q)throw new o("No API key found. Please set llm.apiKey with gdx-config command or GDX_LLM_API_KEY env var.","NO_API_KEY");if(Q.startsWith("sk-or-"))Y="openrouter";switch(Y.toLowerCase()){case"openrouter":{let q=new a5(Q,zz,J,{"HTTP-Referer":"https://github.com/Type-Delta/gdx/tree/main","X-Title":"GDX"});return await q.initClient(),q}case"openai":{let q=new a5(Q,void 0,J);return await q.initClient(),q}default:throw new o(`Unsupported LLM provider: ${Y}`,"UNSUPPORTED_LLM_PROVIDER")}}var mJ=N(()=>{z0();H0();$6();VD();DD()});function pJ(Z,Y){let Q=Y?Z0`
|
|
490
490
|
<user-change-description>
|
|
491
491
|
User describes the changes as: ${Y}
|
|
492
492
|
</user-change-description>`+`
|
|
@@ -524,7 +524,7 @@ ${Y}`,q={};for(let X of J.split(`
|
|
|
524
524
|
</git-diff>
|
|
525
525
|
|
|
526
526
|
Your commit message:
|
|
527
|
-
`}function
|
|
527
|
+
`}function MD(Z,Y,Q){let J=Q?Z0`
|
|
528
528
|
<user-change-description>
|
|
529
529
|
User describes the changes as: ${Q}
|
|
530
530
|
</user-change-description>`+`
|
|
@@ -549,7 +549,7 @@ ${Y}`,q={};for(let X of J.split(`
|
|
|
549
549
|
</git-diff>
|
|
550
550
|
|
|
551
551
|
Your commit message:
|
|
552
|
-
`}function
|
|
552
|
+
`}function jD(Z){let Q=Z.map((J,q)=>`Example ${q+1}:
|
|
553
553
|
${J}`).join("\x00");return Z0`
|
|
554
554
|
<instructions>You are analyzing a Git repository's commit message history to identify and document the commit message conventions used by this project. Study the provided examples and extract the underlying patterns, structure, and style rules.</instructions>
|
|
555
555
|
|
|
@@ -574,7 +574,7 @@ ${J}`).join("\x00");return Z0`
|
|
|
574
574
|
- Output ONLY the guideline document, no preamble
|
|
575
575
|
</task>
|
|
576
576
|
|
|
577
|
-
Commit Message Guideline:`}function
|
|
577
|
+
Commit Message Guideline:`}function _D(Z){return Z0`
|
|
578
578
|
<instruction>
|
|
579
579
|
You are an unfiltered Gen-Z dev who speaks like a terminal meme lord.
|
|
580
580
|
You talk in chaotic, funny, exaggerated internet slang. You sprinkle emojis,
|
|
@@ -593,13 +593,13 @@ ${J}`).join("\x00");return Z0`
|
|
|
593
593
|
${Z}
|
|
594
594
|
</commit>
|
|
595
595
|
|
|
596
|
-
Your unhinged reaction:`}var
|
|
597
|
-
`);for(let $ of q)
|
|
596
|
+
Your unhinged reaction:`}var uJ=N(()=>{s0()});async function dJ(Z){let{git$:Y}=Z;try{let Q=await t4(Y,"user.email"),J=(await k`${Y} log -1 --pretty=format:%s\n\n%b --author=${Q} --no-merges`.catch(h6))?.stdout.trim();if(!J||J.length===0)return M.error("Bro, you haven't committed anything yet. \uD83E\uDD23","nocap"),1;let q=J.split(`
|
|
597
|
+
`);for(let $ of q)C(`${H.dim}▐ ${H.reset}${$}`);C(`
|
|
598
598
|
${H.cyan}${H.dim}Reviewing your commit message...${H.reset}
|
|
599
|
-
`);let X=await
|
|
599
|
+
`);let X=await n1(),z=P0({message:"cooking up a roast...",animateGradient:!0,gradientColor:E.Teal300,gradientColorBg:E.Fuchsia400}),W=X.streamGenerate({prompt:_D(J),temperature:0.8,maxTokens:269,reasoning:"low"}),U="",K=!1;for await(let $ of W){if($.error)return z.stop(),M.error(`\uD83D\uDE2D ill bro, the server rejected u
|
|
600
600
|
|
|
601
|
-
${u($.error,{color:!0})}`,"nocap"),1;if($.chunk){if(!K)K=!0,z.stop();
|
|
602
|
-
`),M.error("Unable to generate response (empty response).","nocap"),1;let B=U;return U=U.replace(/(^\s*["'`]*|["'`]*\s*$)/g,""),U=t(U,72,{mode:"softboundary",redundancyLv:2}),
|
|
601
|
+
${u($.error,{color:!0})}`,"nocap"),1;if($.chunk){if(!K)K=!0,z.stop();C($.chunk,""),U+=$.chunk}}if(!U)return C(`
|
|
602
|
+
`),M.error("Unable to generate response (empty response).","nocap"),1;let B=U;return U=U.replace(/(^\s*["'`]*|["'`]*\s*$)/g,""),U=t(U,72,{mode:"softboundary",redundancyLv:2}),E5(B,U),C(),0}catch(Q){return M.error(u(Q,{color:!0}),"nocap"),1}}var ND,ID;var r5=N(()=>{z0();m0();R0();mJ();w0();uJ();H0();S0();v0();e0();s0();ND={long:()=>{return t(Z0`
|
|
603
603
|
${H.bright+d("NOCAP",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
604
604
|
Generate a playful roast for your latest commit message.
|
|
605
605
|
|
|
@@ -612,16 +612,18 @@ ${u($.error,{color:!0})}`,"nocap"),1;if($.chunk){if(!K)K=!0,z.stop();R($.chunk,"
|
|
|
612
612
|
${H.bright+d("NOTES",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
613
613
|
The command requires a valid git user.email in repo config and a configured LLM adapter. Network or LLM errors will print a colored error and return a non-zero exit code.
|
|
614
614
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Create a humorous critique of your latest commit message.",usage:()=>{return t(Z0`
|
|
615
|
-
${H.cyan}${
|
|
615
|
+
${H.cyan}${R} nocap${H.reset}
|
|
616
616
|
|
|
617
617
|
Examples:
|
|
618
|
-
${H.cyan}${
|
|
619
|
-
`),this.lastWidth=
|
|
620
|
-
`),
|
|
621
|
-
`);return}process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.setEncoding("utf-8");let X=0,z=Z.getLineCount(),W=!0,U=null,K=[];process.stdout.write("\x1B[?25l"),process.stdout.write("\x1B[2J\x1B[H");let B=M.logLevel;M.logLevel=-1;function $(){let
|
|
622
|
-
`);if(J.showStatus){let
|
|
618
|
+
${H.cyan}${R} nocap ${H.reset+H.dim}# Roast the latest commit by the configured git user${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},ID={$root:[]}});function cJ(Z){let Y={},Q=Array.from(new Set(Z));for(let J of Q){if(!J)continue;Y[J]={}}return Y}function o1(Z,Y,Q="$allOf"){let J={},q=Array.from(new Set(Z));for(let X of q){if(!X)continue;J[X]={[Q]:Y}}return J}function E4(){if(i1!==null)return i1;return i1=process.stdout.rows||24,i1}function TZ(){if(s1!==null)return s1;return s1=process.stdout.columns||80,s1}function lJ(){i1=null,s1=null}class LD{lines=[];renderedLines=[];options;lastWidth=0;lastHeight=0;redundancyLv=0;constructor(Z,Y={}){this.options={...a1,...Y},this.redundancyLv=Y.redundancyLv??B7(Z),this.lines=Z.split(`
|
|
619
|
+
`),this.lastWidth=TZ(),this.lastHeight=E4(),this.updateRenderedLines()}updateRenderedLines(){let Z=this.lastWidth,Y=this.options.lineNumberWidth<=5?1:2,Q=O6(X0.mantle,X0.surface0,0.2),J=l0(this.options.backgroundColor),q=this.options.showLineNumbers?Z-this.options.lineNumberWidth:Z;this.renderedLines=[];for(let X=0;X<this.lines.length;X++){let z=this.lines[X];if(this.options.wrapLines&&r0(z,this.redundancyLv)>q){let U=t(z,q,{mode:"strict",redundancyLv:Math.max(0,this.redundancyLv)}).split(`
|
|
620
|
+
`),K=this.options.showLineNumbers?this.formatLineNumber(X+1,Y,Q):"",B;for(let $=0;$<U.length;$++){let V=$===0?K:this.formatLineNumber(-1,Y,Q);if(B)U[$]=aZ(B)+U[$];if(this.renderedLines.push(V+J+U[$]),$!=U.length-1)B=sZ(U[$])}}else if(this.options.showLineNumbers)this.renderedLines.push(this.formatLineNumber(X+1,Y,Q)+J+z);else this.renderedLines.push(J+z)}}formatLineNumber(Z,Y,Q){if(Z===-1)return l0(Q)+" ".repeat(this.options.lineNumberWidth);return T0(X0.overlay1)+l0(Q)+b0(String(Z),this.options.lineNumberWidth-Y,{align:"right"})+" ".repeat(Y)}getLineCount(){return this.renderedLines.length}getLine(Z){return this.renderedLines[Z]||""}render(Z,Y,Q){let J=[],q=l0(this.options.backgroundColor);for(let X=0;X<Y-1;X++){let z=Z+X;if(z<this.renderedLines.length){let W=this.renderedLines[z],U=d8(W),K=Math.max(0,Q-r0(U,this.redundancyLv));J.push(`${q}${W}${" ".repeat(K)}${H.reset}`)}else J.push(`${q}${" ".repeat(Q)}${H.reset}`)}return J}onResize(Z,Y){if(Z!==this.lastWidth||Y!==this.lastHeight)this.lastWidth=Z,this.lastHeight=Y,this.updateRenderedLines()}}async function t5(Z,Y={}){let Q=await K0(),J={...a1,...{exitBehavior:Q.get("viewer.exitBehavior")},...Y},q=new LD(Z,J);return nJ(q,J)}async function nJ(Z,Y={}){let Q=await K0(),J={...a1,...{exitBehavior:Q.get("viewer.exitBehavior")},...Y},q=J.redundancyLv??0;if(!process.stdout.isTTY||!process.stdin.isTTY){for(let _=0;_<Z.getLineCount();_++)process.stdout.write(Z.getLine(_)+`
|
|
621
|
+
`);return}process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.setEncoding("utf-8");let X=0,z=Z.getLineCount(),W=!0,U=null,K=[];process.stdout.write("\x1B[?25l"),process.stdout.write("\x1B[2J\x1B[H");let B=M.logLevel;M.logLevel=-1;function $(){let _=performance.now(),L=E4(),A=TZ(),I=Z.render(X,L,A);process.stdout.write("\x1B[H");for(let G of I)process.stdout.write("\x1B[K"+G+`
|
|
622
|
+
`);if(J.showStatus){let G=J.statusFormat(X+1,z,A,{statusText:J.statusText,actions:J.actions,redundancyLv:q}),P=Math.max(0,A-r0(d8(G),q)),T=l0(J.backgroundColor),S=T0(X0.overlay0);process.stdout.write("\x1B[K"+T+S+G+" ".repeat(P)+H.reset)}if(K.length>30)K.shift();K.push(performance.now()-_)}function V(){if(process.stdin.off("data",j),process.stdout.off("resize",O),process.stdout.write("\x1B[?25h"),J.exitBehavior==="clearScreen")process.stdout.write("\x1B[H"),process.stdout.clearScreenDown();else if(J.exitBehavior==="nextLine"){let L=E4()-1;process.stdout.write(`\x1B[${L}B`)}process.stdin.setRawMode(!1),M.logLevel=B,M.debug(`Pager performance: ${K.length>0?m8(K.reduce((_,L)=>_+L,0)/K.length,4):"N/A"}ms average over ${K.length} renders`,"pager")}function D(){lJ();let _=TZ(),L=E4();if(Z.onResize)Z.onResize(_,L);$()}function F(_){let A=E4()-1,I=Math.max(0,Z.getLineCount()-A),G=J.actions||[];if(G.length>0){for(let P of G)if((Array.isArray(P.key)?P.key:[P.key]).includes(_)){U={action:P.action,key:_},W=!1;return}}switch(_){case"q":case"\x03":case"\x1B":if(G.length>0&&!U)U={action:"abort",key:_};W=!1;break;case"\x1B[A":case"\x1B[A":case"k":X=Math.max(0,X-J.scrollSensitivity);break;case"\x1B[B":case"\x1B[B":case"j":X=Math.min(I,X+J.scrollSensitivity);break;case"\x1B[5~":case"b":{let P=A-1;X=Math.max(0,X-P);break}case"\x1B[6~":case"n":case" ":{let P=A-1;X=Math.min(I,X+P);break}case"g":case"\x1B[1~":case"\x1B[H":X=0;break;case"G":case"\x1B[4~":case"\x1B[F":X=I;break}if(W)$()}let O=()=>D(),j=(_)=>{if(F(_.toString()),!W)V()};return process.stdout.on("resize",O),process.stdin.on("data",j),$(),new Promise((_)=>{let L=setInterval(()=>{if(!W)clearInterval(L),_(U||void 0)},50)})}var a1,i1=null,s1=null;var oJ=N(()=>{z0();w0();v0();H0();$6();a1={showLineNumbers:!1,lineNumberWidth:5,wrapLines:!0,showStatus:!0,statusFormat:(Z,Y,Q,J)=>{let q=T0(X0.cyan),X=T0(X0.overlay0),z=Math.min(Z+E4()-2,Y),W=typeof J?.statusText==="function"?J.statusText():J?.statusText,U=J?.actions?J.actions.map((V)=>{let D=Array.isArray(V.key)?V.key:[V.key],F=V.displayKey??D[0]??"";if(!F)return"";return`${H.bright+q}${F}${X+H.normal} ${V.label}`}).filter(Boolean).join(`${H.dim},${H.normal} `):"",K=U?`${H.bright+q}↑ ↓ b n${X+H.normal} navigate${H.dim},${H.normal} ${H.bright+q}q${X+H.normal} quit${H.dim},${H.normal}`:`${H.bright+q}↑ ↓ b n Home End${X+H.normal} to navigate${H.dim},${H.normal} ${H.bright+q}q${X+H.normal} quit`,B=[W,K,U].filter(Boolean).join(" "),$=r0(B,0)>Q*0.6?`ln ${H.bright}${Z}${H.normal} of ${H.bright}${Y}${z===Y?H.red+" EOF"+H.white:""}`:`ln ${H.bright}${Z}-${z}${H.normal} of ${H.bright}${Y}${z===Y?H.red+" (EOF)"+H.white:""}`;return" "+b0([B,$],Q-4,{align:"spacebetween",filler:" ",overflow:"collapse",collapseLocation:"mid",redundancyLv:J?.redundancyLv??0})+" "},backgroundColor:X0.base,scrollSensitivity:3,statusText:"",actions:[],exitBehavior:"none"}});import qb from"os";import{createRequire as Xb}from"node:module";import{fileURLToPath as zb,pathToFileURL as Hb}from"node:url";class AD{requirements=[];maxWorker;workerSemaphore;taskTimeout;env;workerSource;workers=new Set;idleWorkers=[];workerWaiters=[];logger=new M("Threaded");dataValue;nextTaskId=1;startingWorkers=0;closed=!1;constructor(Z={}){this.maxWorker=Math.max(1,Z.maxWorker??Math.floor(qb.availableParallelism()/2)),this.taskTimeout=Z.taskTimeout,this.env=Z.env??{},this.workerSource=Z.workerSource??Wb,this.workerSemaphore=Z.semaphore||null,this.logger.debug(`Threaded pool initialized with options: ${u(Z,{color:!0})}`)}require(Z,Y){if(this.workers.size>0)throw Error("Threaded.require() must be called before the pool creates workers.");if(Ub(Y),typeof Z==="string")return this.requirements.push({kind:"import",name:Y,source:Fb(Z)}),this;if(typeof Z==="function")return this.requirements.push({kind:"function",name:Y,source:Z.toString()}),this;return this.requirements.push({kind:"value",name:Y,source:iJ(Z)}),this}data(Z){return this.dataValue=Z,this}async spawn(Z,Y=[]){if(this.closed)throw Error("Threaded pool is closed.");let Q=await this.acquireWorker();try{return await this.runTask(Q,Z,Y)}finally{this.releaseWorker(Q)}}async map(Z,Y){let Q=Y??this.dataValue;if(!Array.isArray(Q))throw Error("Threaded.map() requires array data.");let J=Q;return await Promise.all(J.map((q,X)=>this.spawn(Z,[q,X,J])))}async destroy(){this.closed=!0;let Z=[...this.workers];this.workers.clear(),this.idleWorkers.length=0,this.workerWaiters.length=0,await Promise.all(Z.map((Y)=>Y.worker.terminate()))}async acquireWorker(){let Z=this.idleWorkers.pop();if(Z&&!Z.terminated)return Z.busy=!0,Z.worker.ref(),Z;if(this.workers.size+this.startingWorkers<this.maxWorker){this.startingWorkers++;try{let Y=await this.logger.time("Initialized new worker",this.createWorker.bind(this));return Y.busy=!0,Y.worker.ref(),Y}finally{this.startingWorkers--}}return await new Promise((Y)=>{this.workerWaiters.push((Q)=>{Q.busy=!0,Q.worker.ref(),Y(Q)})})}releaseWorker(Z){if(Z.terminated||!this.workers.has(Z))return;Z.busy=!1;let Y=this.workerWaiters.shift();if(Y){Y(Z);return}Z.worker.unref(),this.idleWorkers.push(Z)}async createWorker(){let{Worker:Z}=await import("node:worker_threads"),Y=Kb(this.workerSource),Q=new Z(Y.source,{eval:Y.eval,workerData:{env:this.env,requirements:this.requirements.map(({kind:q,name:X,source:z})=>({kind:q,name:X,source:z}))}}),J={worker:Q,ready:Promise.resolve(),busy:!1,terminated:!1};return J.ready=this.waitForReady(J),this.workers.add(J),Q.once("exit",()=>this.removeWorker(J)),await J.ready,Q.on("error",()=>this.removeWorker(J)),J}async waitForReady(Z){await new Promise((Y,Q)=>{let J=(W)=>{if(W.type!=="ready")return;if(z(),W.error){let U=Error(W.error.message);U.stack=W.error.stack,Q(U);return}Y()},q=(W)=>{z(),Q(W)},X=(W)=>{if(W===0)return;z(),Q(Error(`Threaded worker exited with code ${W}.`))},z=()=>{Z.worker.off("message",J),Z.worker.off("error",q),Z.worker.off("exit",X)};Z.worker.on("message",J),Z.worker.once("error",q),Z.worker.once("exit",X)}).catch((Y)=>{throw this.removeWorker(Z),Z.worker.terminate(),Error(`Threaded worker initialization failed: ${o.from(Y)}`)})}async runTask(Z,Y,Q){await Z.ready,await this.workerSemaphore?.acquire();let J=!1;return await new Promise((q,X)=>{let z=this.nextTaskId++,W=!1,U,K=(F)=>{if(W)return;if(W=!0,!J&&this.workerSemaphore)this.workerSemaphore.release();if(U)clearTimeout(U);D(),F()},B=(F)=>{if(F.id!==z)return;K(()=>{if(F.error){let O=Error(F.error.message);O.stack=F.error.stack,X(O);return}q(F.result)})},$=(F)=>{K(()=>{this.removeWorker(Z),X(F)})},V=(F)=>{if(F===0)return;K(()=>{this.removeWorker(Z),X(Error(`Threaded worker exited with code ${F}.`))})},D=()=>{Z.worker.off("message",B),Z.worker.off("error",$),Z.worker.off("exit",V)};if(this.taskTimeout!==void 0)U=setTimeout(()=>{K(()=>{this.removeWorker(Z),Z.worker.terminate(),X(Error(`Threaded task timed out after ${this.taskTimeout}ms.`))})},this.taskTimeout);Z.worker.on("message",B),Z.worker.once("error",$),Z.worker.once("exit",V),Z.worker.postMessage({args:Q,id:z,taskSource:Y.toString()})}).catch((q)=>{if(!J&&this.workerSemaphore)this.workerSemaphore.release();throw Error(`Threaded task failed: ${o.from(q)}`)})}removeWorker(Z){Z.terminated=!0,this.workers.delete(Z);let Y=this.idleWorkers.indexOf(Z);if(Y!==-1)this.idleWorkers.splice(Y,1);this.logger.debug(`Worker terminated. Active workers: ${this.workers.size}.`)}}function Ub(Z){if(!/^[A-Za-z_$][\w$]*$/.test(Z))throw Error(`Invalid worker requirement name '${Z}'.`)}function Kb(Z){if(Z instanceof URL)return{source:wD(Z),eval:!1};if(typeof Z==="string")return{source:Z,eval:!0};return{source:Z.source instanceof URL?wD(Z.source):Z.source,eval:Z.eval??typeof Z.source==="string"}}function wD(Z){return Z.protocol==="file:"?zb(Z):Z}function iJ(Z,Y=new WeakSet){if(typeof Z==="function")return Bb(Z);if(Z===void 0)return"undefined";if(Z===null)return"null";if(typeof Z==="bigint")return`${Z.toString()}n`;if(typeof Z!=="object")return JSON.stringify(Z);if(Y.has(Z))throw Error("Worker requirement values cannot contain circular references.");if(Y.add(Z),Array.isArray(Z)){let J=`[${Z.map((q)=>iJ(q,Y)).join(",")}]`;return Y.delete(Z),J}let Q=Object.entries(Z).map(([J,q])=>`${JSON.stringify(J)}:${iJ(q,Y)}`).join(",");return Y.delete(Z),`({${Q}})`}function Bb(Z){let Y=Z.toString();if(/^(async\s+)?function\b/.test(Y)||/^(async\s*)?\(/.test(Y))return Y;if(/^async\s+[\w$]+\s*\(/.test(Y))return Y.replace(/^async\s+/,"async function ");if(/^[\w$]+\s*\(/.test(Y))return`function ${Y}`;return Y}function Fb(Z){if(Z.startsWith("node:"))return Z;if(/^[a-zA-Z][a-zA-Z+.-]*:/.test(Z))return Z;try{return Hb($b.resolve(Z)).href}catch{return Z}}var Wb=`
|
|
623
623
|
const { parentPort, workerData } = require('node:worker_threads');
|
|
624
624
|
|
|
625
|
+
Object.assign(process.env, workerData.env);
|
|
626
|
+
|
|
625
627
|
function serializeError(error) {
|
|
626
628
|
return error instanceof Error
|
|
627
629
|
? { message: error.message, stack: error.stack }
|
|
@@ -651,52 +653,53 @@ function serializeError(error) {
|
|
|
651
653
|
})().catch((error) => {
|
|
652
654
|
parentPort.postMessage({ type: 'ready', error: serializeError(error) });
|
|
653
655
|
});
|
|
654
|
-
|
|
656
|
+
`,$b,GD;var CD=N(()=>{z0();w0();$b=Xb(import.meta.url);GD=AD});import{existsSync as Vb}from"node:fs";import RD from"node:path";import{pathToFileURL as Ob}from"node:url";function sJ(){if(c6!==void 0)return c6;if(Db())return c6=null,c6;if(import.meta.url.endsWith("/dist/index.js"))return c6=new URL(`./workers/${TD}`,import.meta.url),c6;if(import.meta.url.includes("/src/cli/"))return c6=new URL("../workers/generic.worker.ts",import.meta.url),c6;let Z=RD.join(RD.dirname(process.execPath),"workers",TD);if(Vb(Z))return c6=Ob(Z),c6;return c6=null,c6}function Db(){return Boolean(process.versions.bun)&&!/[\\/]bun(?:\.exe)?$/i.test(process.execPath)}var TD="generic.worker.min.js",c6;var kD=()=>{};class Z6{diff(Z,Y,Q={}){let J;if(typeof Q==="function")J=Q,Q={};else if("callback"in Q)J=Q.callback;let q=this.castInput(Z,Q),X=this.castInput(Y,Q),z=this.removeEmpty(this.tokenize(q,Q)),W=this.removeEmpty(this.tokenize(X,Q));return this.diffWithOptionsObj(z,W,Q,J)}diffWithOptionsObj(Z,Y,Q,J){var q;let X=(_)=>{if(_=this.postProcess(_,Q),J){setTimeout(function(){J(_)},0);return}else return _},z=Y.length,W=Z.length,U=1,K=z+W;if(Q.maxEditLength!=null)K=Math.min(K,Q.maxEditLength);let B=(q=Q.timeout)!==null&&q!==void 0?q:1/0,$=Date.now()+B,V=[{oldPos:-1,lastComponent:void 0}],D=this.extractCommon(V[0],Y,Z,0,Q);if(V[0].oldPos+1>=W&&D+1>=z)return X(this.buildValues(V[0].lastComponent,Y,Z));let F=-1/0,O=1/0,j=()=>{for(let _=Math.max(F,-U);_<=Math.min(O,U);_+=2){let L,A=V[_-1],I=V[_+1];if(A)V[_-1]=void 0;let G=!1;if(I){let T=I.oldPos-_;G=I&&0<=T&&T<z}let P=A&&A.oldPos+1<W;if(!G&&!P){V[_]=void 0;continue}if(!P||G&&A.oldPos<I.oldPos)L=this.addToPath(I,!0,!1,0,Q);else L=this.addToPath(A,!1,!0,1,Q);if(D=this.extractCommon(L,Y,Z,_,Q),L.oldPos+1>=W&&D+1>=z)return X(this.buildValues(L.lastComponent,Y,Z))||!0;else{if(V[_]=L,L.oldPos+1>=W)O=Math.min(O,_-1);if(D+1>=z)F=Math.max(F,_+1)}}U++};if(J)(function _(){setTimeout(function(){if(U>K||Date.now()>$)return J(void 0);if(!j())_()},0)})();else while(U<=K&&Date.now()<=$){let _=j();if(_)return _}}addToPath(Z,Y,Q,J,q){let X=Z.lastComponent;if(X&&!q.oneChangePerToken&&X.added===Y&&X.removed===Q)return{oldPos:Z.oldPos+J,lastComponent:{count:X.count+1,added:Y,removed:Q,previousComponent:X.previousComponent}};else return{oldPos:Z.oldPos+J,lastComponent:{count:1,added:Y,removed:Q,previousComponent:X}}}extractCommon(Z,Y,Q,J,q){let X=Y.length,z=Q.length,W=Z.oldPos,U=W-J,K=0;while(U+1<X&&W+1<z&&this.equals(Q[W+1],Y[U+1],q))if(U++,W++,K++,q.oneChangePerToken)Z.lastComponent={count:1,previousComponent:Z.lastComponent,added:!1,removed:!1};if(K&&!q.oneChangePerToken)Z.lastComponent={count:K,previousComponent:Z.lastComponent,added:!1,removed:!1};return Z.oldPos=W,U}equals(Z,Y,Q){if(Q.comparator)return Q.comparator(Z,Y);else return Z===Y||!!Q.ignoreCase&&Z.toLowerCase()===Y.toLowerCase()}removeEmpty(Z){let Y=[];for(let Q=0;Q<Z.length;Q++)if(Z[Q])Y.push(Z[Q]);return Y}castInput(Z,Y){return Z}tokenize(Z,Y){return Array.from(Z)}join(Z){return Z.join("")}postProcess(Z,Y){return Z}get useLongestToken(){return!1}buildValues(Z,Y,Q){let J=[],q;while(Z)J.push(Z),q=Z.previousComponent,delete Z.previousComponent,Z=q;J.reverse();let X=J.length,z=0,W=0,U=0;for(;z<X;z++){let K=J[z];if(!K.removed){if(!K.added&&this.useLongestToken){let B=Y.slice(W,W+K.count);B=B.map(function($,V){let D=Q[U+V];return D.length>$.length?D:$}),K.value=this.join(B)}else K.value=this.join(Y.slice(W,W+K.count));if(W+=K.count,!K.added)U+=K.count}else K.value=this.join(Q.slice(U,U+K.count)),U+=K.count}return J}}function PD(Z,Y,Q){return aJ.diff(Z,Y,Q)}var ED,aJ;var xD=N(()=>{ED=class ED extends Z6{};aJ=new ED});function rJ(Z,Y){let Q;for(Q=0;Q<Z.length&&Q<Y.length;Q++)if(Z[Q]!=Y[Q])return Z.slice(0,Q);return Z.slice(0,Q)}function tJ(Z,Y){let Q;if(!Z||!Y||Z[Z.length-1]!=Y[Y.length-1])return"";for(Q=0;Q<Z.length&&Q<Y.length;Q++)if(Z[Z.length-(Q+1)]!=Y[Y.length-(Q+1)])return Z.slice(-Q);return Z.slice(-Q)}function e5(Z,Y,Q){if(Z.slice(0,Y.length)!=Y)throw Error(`string ${JSON.stringify(Z)} doesn't start with prefix ${JSON.stringify(Y)}; this is a bug`);return Q+Z.slice(Y.length)}function ZQ(Z,Y,Q){if(!Y)return Z+Q;if(Z.slice(-Y.length)!=Y)throw Error(`string ${JSON.stringify(Z)} doesn't end with suffix ${JSON.stringify(Y)}; this is a bug`);return Z.slice(0,-Y.length)+Q}function kZ(Z,Y){return e5(Z,Y,"")}function r1(Z,Y){return ZQ(Z,Y,"")}function eJ(Z,Y){return Y.slice(0,Mb(Z,Y))}function Mb(Z,Y){let Q=0;if(Z.length>Y.length)Q=Z.length-Y.length;let J=Y.length;if(Z.length<Y.length)J=Z.length;let q=Array(J),X=0;q[0]=0;for(let z=1;z<J;z++){if(Y[z]==Y[X])q[z]=q[X];else q[z]=X;while(X>0&&Y[z]!=Y[X])X=q[X];if(Y[z]==Y[X])X++}X=0;for(let z=Q;z<Z.length;z++){while(X>0&&Z[z]!=Y[X])X=q[X];if(Z[z]==Y[X])X++}return X}function bD(Z){return Z.includes(`\r
|
|
655
657
|
`)&&!Z.startsWith(`
|
|
656
|
-
`)&&!Z.match(/[^\r]\n/)}function
|
|
658
|
+
`)&&!Z.match(/[^\r]\n/)}function vD(Z){return!Z.includes(`\r
|
|
657
659
|
`)&&Z.includes(`
|
|
658
|
-
`)}function
|
|
659
|
-
`);let Q=[],J=Z.split(/(\n|\r\n)/);if(!J[J.length-1])J.pop();for(let q=0;q<J.length;q++){let X=J[q];if(q%2&&!Y.newlineIsToken)Q[Q.length-1]+=X;else Q.push(X)}return Q}var
|
|
660
|
+
`)}function Zq(Z,Y){let Q=[];for(let J of Array.from(Y.segment(Z))){let q=J.segment;if(Q.length&&/\s/.test(Q[Q.length-1])&&/\s/.test(q))Q[Q.length-1]+=q;else Q.push(q)}return Q}function YQ(Z,Y){if(Y)return EZ(Z,Y)[1];let Q;for(Q=Z.length-1;Q>=0;Q--)if(!Z[Q].match(/\s/))break;return Z.substring(Q+1)}function T8(Z,Y){if(Y)return EZ(Z,Y)[0];let Q=Z.match(/^\s*/);return Q?Q[0]:""}function EZ(Z,Y){if(!Y)return[T8(Z),YQ(Z)];if(Y.resolvedOptions().granularity!="word")throw Error('The segmenter passed must have a granularity of "word"');let Q=Zq(Z,Y),J=Q[0],q=Q[Q.length-1],X=/\s/.test(J)?J:"",z=/\s/.test(q)?q:"";return[X,z]}function fD(Z,Y,Q){if((Q===null||Q===void 0?void 0:Q.ignoreWhitespace)!=null&&!Q.ignoreWhitespace)return Jq(Z,Y,Q);return Yq.diff(Z,Y,Q)}function SD(Z,Y,Q,J,q){if(Y&&Q){let[X,z]=EZ(Y.value,q),[W,U]=EZ(Q.value,q);if(Z){let K=rJ(X,W);Z.value=ZQ(Z.value,W,K),Y.value=kZ(Y.value,K),Q.value=kZ(Q.value,K)}if(J){let K=tJ(z,U);J.value=e5(J.value,U,K),Y.value=r1(Y.value,K),Q.value=r1(Q.value,K)}}else if(Q){if(Z){let X=T8(Q.value,q);Q.value=Q.value.substring(X.length)}if(J){let X=T8(J.value,q);J.value=J.value.substring(X.length)}}else if(Z&&J){let X=T8(J.value,q),[z,W]=EZ(Y.value,q),U=rJ(X,z);Y.value=kZ(Y.value,U);let K=tJ(kZ(X,U),W);Y.value=r1(Y.value,K),J.value=e5(J.value,X,K),Z.value=ZQ(Z.value,X,X.slice(0,X.length-K.length))}else if(J){let X=T8(J.value,q),z=YQ(Y.value,q),W=eJ(z,X);Y.value=r1(Y.value,W)}else if(Z){let X=YQ(Z.value,q),z=T8(Y.value,q),W=eJ(X,z);Y.value=kZ(Y.value,W)}}function Jq(Z,Y,Q){return Qq.diff(Z,Y,Q)}var QQ="a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",jb,yD,Yq,hD,Qq;var gD=N(()=>{jb=new RegExp(`[${QQ}]+|\\s+|[^${QQ}]`,"ug");yD=class yD extends Z6{equals(Z,Y,Q){if(Q.ignoreCase)Z=Z.toLowerCase(),Y=Y.toLowerCase();return Z.trim()===Y.trim()}tokenize(Z,Y={}){let Q;if(Y.intlSegmenter){let X=Y.intlSegmenter;if(X.resolvedOptions().granularity!="word")throw Error('The segmenter passed must have a granularity of "word"');Q=Zq(Z,X)}else Q=Z.match(jb)||[];let J=[],q=null;return Q.forEach((X)=>{if(/\s/.test(X))if(q==null)J.push(X);else J.push(J.pop()+X);else if(q!=null&&/\s/.test(q))if(J[J.length-1]==q)J.push(J.pop()+X);else J.push(q+X);else J.push(X);q=X}),J}join(Z){return Z.map((Y,Q)=>{if(Q==0)return Y;else return Y.replace(/^\s+/,"")}).join("")}postProcess(Z,Y){if(!Z||Y.oneChangePerToken)return Z;let Q=null,J=null,q=null;if(Z.forEach((X)=>{if(X.added)J=X;else if(X.removed)q=X;else{if(J||q)SD(Q,q,J,X,Y.intlSegmenter);Q=X,J=null,q=null}}),J||q)SD(Q,q,J,null,Y.intlSegmenter);return Z}};Yq=new yD;hD=class hD extends Z6{tokenize(Z){let Y=new RegExp(`(\\r?\\n)|[${QQ}]+|[^\\S\\n\\r]+|[^${QQ}]`,"ug");return Z.match(Y)||[]}};Qq=new hD});function mD(Z,Y){if(typeof Z==="function")Y.callback=Z;else if(Z){for(let Q in Z)if(Object.prototype.hasOwnProperty.call(Z,Q))Y[Q]=Z[Q]}return Y}function t1(Z,Y,Q){return JQ.diff(Z,Y,Q)}function uD(Z,Y,Q){return Q=mD(Q,{ignoreWhitespace:!0}),JQ.diff(Z,Y,Q)}function qq(Z,Y){if(Y.stripTrailingCr)Z=Z.replace(/\r\n/g,`
|
|
661
|
+
`);let Q=[],J=Z.split(/(\n|\r\n)/);if(!J[J.length-1])J.pop();for(let q=0;q<J.length;q++){let X=J[q];if(q%2&&!Y.newlineIsToken)Q[Q.length-1]+=X;else Q.push(X)}return Q}var pD,JQ;var qQ=N(()=>{pD=class pD extends Z6{constructor(){super(...arguments);this.tokenize=qq}equals(Z,Y,Q){if(Q.ignoreWhitespace){if(!Q.newlineIsToken||!Z.includes(`
|
|
660
662
|
`))Z=Z.trim();if(!Q.newlineIsToken||!Y.includes(`
|
|
661
663
|
`))Y=Y.trim()}else if(Q.ignoreNewlineAtEof&&!Q.newlineIsToken){if(Z.endsWith(`
|
|
662
664
|
`))Z=Z.slice(0,-1);if(Y.endsWith(`
|
|
663
|
-
`))Y=Y.slice(0,-1)}return super.equals(Z,Y,Q)}};
|
|
664
|
-
|
|
665
|
-
`)
|
|
666
|
-
`))
|
|
667
|
-
`)
|
|
665
|
+
`))Y=Y.slice(0,-1)}return super.equals(Z,Y,Q)}};JQ=new pD});function _b(Z){return Z=="."||Z=="!"||Z=="?"}function cD(Z,Y,Q){return Xq.diff(Z,Y,Q)}var dD,Xq;var lD=N(()=>{dD=class dD extends Z6{tokenize(Z){var Y;let Q=[],J=0;for(let q=0;q<Z.length;q++){if(q==Z.length-1){Q.push(Z.slice(J));break}if(_b(Z[q])&&Z[q+1].match(/\s/)){Q.push(Z.slice(J,q+1)),q=J=q+1;while((Y=Z[q+1])===null||Y===void 0?void 0:Y.match(/\s/))q++;Q.push(Z.slice(J,q+1)),J=q+1}}return Q}};Xq=new dD});function oD(Z,Y,Q){return zq.diff(Z,Y,Q)}var nD,zq;var iD=N(()=>{nD=class nD extends Z6{tokenize(Z){return Z.split(/([{}:;,]|\s+)/)}};zq=new nD});function aD(Z,Y,Q){return Hq.diff(Z,Y,Q)}function e1(Z,Y,Q,J,q){if(Y=Y||[],Q=Q||[],J)Z=J(q===void 0?"":q,Z);let X;for(X=0;X<Y.length;X+=1)if(Y[X]===Z)return Q[X];let z;if(Object.prototype.toString.call(Z)==="[object Array]"){Y.push(Z),z=Array(Z.length),Q.push(z);for(X=0;X<Z.length;X+=1)z[X]=e1(Z[X],Y,Q,J,String(X));return Y.pop(),Q.pop(),z}if(Z&&Z.toJSON)Z=Z.toJSON();if(typeof Z==="object"&&Z!==null){Y.push(Z),z={},Q.push(z);let W=[],U;for(U in Z)if(Object.prototype.hasOwnProperty.call(Z,U))W.push(U);W.sort();for(X=0;X<W.length;X+=1)U=W[X],z[U]=e1(Z[U],Y,Q,J,U);Y.pop(),Q.pop()}else z=Z;return z}var sD,Hq;var rD=N(()=>{qQ();sD=class sD extends Z6{constructor(){super(...arguments);this.tokenize=qq}get useLongestToken(){return!0}castInput(Z,Y){let{undefinedReplacement:Q,stringifyReplacer:J=(q,X)=>typeof X>"u"?Q:X}=Y;return typeof Z==="string"?Z:JSON.stringify(e1(Z,null,null,J),null," ")}equals(Z,Y,Q){return super.equals(Z.replace(/,([\r\n])/g,"$1"),Y.replace(/,([\r\n])/g,"$1"),Q)}};Hq=new sD});function eD(Z,Y,Q){return Wq.diff(Z,Y,Q)}var tD,Wq;var ZM=N(()=>{tD=class tD extends Z6{tokenize(Z){return Z.slice()}join(Z){return Z}removeEmpty(Z){return Z}};Wq=new tD});function Uq(Z){if(Array.isArray(Z))return Z.map((Y)=>Uq(Y));return Object.assign(Object.assign({},Z),{hunks:Z.hunks.map((Y)=>Object.assign(Object.assign({},Y),{lines:Y.lines.map((Q,J)=>{var q;return Q.startsWith("\\")||Q.endsWith("\r")||((q=Y.lines[J+1])===null||q===void 0?void 0:q.startsWith("\\"))?Q:Q+"\r"})}))})}function Kq(Z){if(Array.isArray(Z))return Z.map((Y)=>Kq(Y));return Object.assign(Object.assign({},Z),{hunks:Z.hunks.map((Y)=>Object.assign(Object.assign({},Y),{lines:Y.lines.map((Q)=>Q.endsWith("\r")?Q.substring(0,Q.length-1):Q)}))})}function YM(Z){if(!Array.isArray(Z))Z=[Z];return!Z.some((Y)=>Y.hunks.some((Q)=>Q.lines.some((J)=>!J.startsWith("\\")&&J.endsWith("\r"))))}function QM(Z){if(!Array.isArray(Z))Z=[Z];return Z.some((Y)=>Y.hunks.some((Q)=>Q.lines.some((J)=>J.endsWith("\r"))))&&Z.every((Y)=>Y.hunks.every((Q)=>Q.lines.every((J,q)=>{var X;return J.startsWith("\\")||J.endsWith("\r")||((X=Q.lines[q+1])===null||X===void 0?void 0:X.startsWith("\\"))})))}function Z7(Z){let Y=Z.split(/\n/),Q=[],J=0;function q(F){return/^diff --git /.test(F)}function X(F){return q(F)||/^Index:\s/.test(F)||/^diff(?: -r \w+)+\s/.test(F)}function z(F){return/^(---|\+\+\+)\s/.test(F)}function W(F){return/^@@\s/.test(F)}function U(){var F;let O={};O.hunks=[],Q.push(O);let j=!1;while(J<Y.length){let _=Y[J];if(z(_)||W(_))break;if(q(_)){if(j)return;j=!0,O.isGit=!0;let L=K(_);if(L)O.oldFileName=L.oldFileName,O.newFileName=L.newFileName;J++;while(J<Y.length){let A=Y[J];if(z(A)||W(A)||X(A))break;let I=/^rename from (.*)/.exec(A);if(I)O.oldFileName="a/"+B(I[1]),O.isRename=!0;let G=/^rename to (.*)/.exec(A);if(G)O.newFileName="b/"+B(G[1]),O.isRename=!0;let P=/^copy from (.*)/.exec(A);if(P)O.oldFileName="a/"+B(P[1]),O.isCopy=!0;let T=/^copy to (.*)/.exec(A);if(T)O.newFileName="b/"+B(T[1]),O.isCopy=!0;let S=/^new file mode (\d+)/.exec(A);if(S)O.isCreate=!0,O.newMode=S[1];let y=/^deleted file mode (\d+)/.exec(A);if(y)O.isDelete=!0,O.oldMode=y[1];let g=/^old mode (\d+)/.exec(A);if(g)O.oldMode=g[1];let x=/^new mode (\d+)/.exec(A);if(x)O.newMode=x[1];if(/^Binary files /.test(A))O.isBinary=!0;J++}continue}else if(X(_)){if(j)return;j=!0;let L=/^(?:Index:|diff(?: -r \w+)+)\s+/.exec(_);if(L)O.index=_.substring(L[0].length).trim()}J++}if(V(O),V(O),O.oldFileName===void 0!==(O.newFileName===void 0))throw Error("Missing "+(O.oldFileName!==void 0?'"+++ ..."':'"--- ..."')+" file header for "+((F=O.oldFileName)!==null&&F!==void 0?F:O.newFileName));while(J<Y.length){let _=Y[J];if(X(_)||z(_)||/^===================================================================/.test(_))break;else if(W(_))O.hunks.push(D());else J++}}function K(F){let O=F.substring(11);if(O.startsWith('"')){let _=$(O);if(_===null)return null;let L=O.substring(_.rawLength+1),A;if(L.startsWith('"')){let I=$(L);if(I===null)return null;A=I.fileName}else A=L;return{oldFileName:_.fileName,newFileName:A}}let j=O.indexOf('"');if(j>0){let _=O.substring(0,j-1),L=$(O.substring(j));if(L===null)return null;return{oldFileName:_,newFileName:L.fileName}}if(O.startsWith("a/")){let _=[],L=0;while(!0){if(L=O.indexOf(" b/",L+1),L===-1)break;_.push(L)}if(_.length>0){let A=_[Math.floor(_.length/2)];return{oldFileName:O.substring(0,A),newFileName:O.substring(A+1)}}}return null}function B(F){if(F.startsWith('"')){let O=$(F);if(O)return O.fileName}return F}function $(F){if(!F.startsWith('"'))return null;let O="",j=1;while(j<F.length){if(F[j]==='"')return{fileName:O,rawLength:j+1};if(F[j]==="\\"&&j+1<F.length)switch(j++,F[j]){case"a":O+="\x07";break;case"b":O+="\b";break;case"f":O+="\f";break;case"n":O+=`
|
|
666
|
+
`;break;case"r":O+="\r";break;case"t":O+="\t";break;case"v":O+="\v";break;case"\\":O+="\\";break;case'"':O+='"';break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{if(j+2>=F.length||F[j+1]<"0"||F[j+1]>"7"||F[j+2]<"0"||F[j+2]>"7")return null;let _=[parseInt(F.substring(j,j+3),8)];j+=3;while(F[j]==="\\"&&F[j+1]>="0"&&F[j+1]<="7"){if(j+3>=F.length||F[j+2]<"0"||F[j+2]>"7"||F[j+3]<"0"||F[j+3]>"7")return null;_.push(parseInt(F.substring(j+1,j+4),8)),j+=4}O+=new TextDecoder("utf-8").decode(new Uint8Array(_));continue}default:return null}else O+=F[j];j++}return null}function V(F){let O=/^(---|\+\+\+)\s+/.exec(Y[J]);if(O){let j=O[1],_=Y[J].substring(3).trim().split("\t",2),L=(_[1]||"").trim(),A=_[0];if(A.startsWith('"'))A=B(A);else A=A.replace(/\\\\/g,"\\");if(j==="---")F.oldFileName=A,F.oldHeader=L;else F.newFileName=A,F.newHeader=L;J++}}function D(){var F;let O=J,j=Y[J++],_=j.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/),L={oldStart:+_[1],oldLines:typeof _[2]>"u"?1:+_[2],newStart:+_[3],newLines:typeof _[4]>"u"?1:+_[4],lines:[]};if(L.oldLines===0)L.oldStart+=1;if(L.newLines===0)L.newStart+=1;let A=0,I=0;for(;J<Y.length&&(I<L.oldLines||A<L.newLines||((F=Y[J])===null||F===void 0?void 0:F.startsWith("\\")));J++){let G=Y[J].length==0&&J!=Y.length-1?" ":Y[J][0];if(G==="+"||G==="-"||G===" "||G==="\\"){if(L.lines.push(Y[J]),G==="+")A++;else if(G==="-")I++;else if(G===" ")A++,I++}else throw Error(`Hunk at line ${O+1} contained invalid line ${Y[J]}`)}if(!A&&L.newLines===1)L.newLines=0;if(!I&&L.oldLines===1)L.oldLines=0;if(A!==L.newLines)throw Error("Added line count did not match for hunk at line "+(O+1));if(I!==L.oldLines)throw Error("Removed line count did not match for hunk at line "+(O+1));if(J<Y.length&&Y[J]&&/^[+ -]/.test(Y[J])&&!z(Y[J]))throw Error("Hunk at line "+(O+1)+" has more lines than expected (expected "+L.oldLines+" old lines and "+L.newLines+" new lines)");return L}while(J<Y.length)U();return Q}function Bq(Z,Y,Q){let J=!0,q=!1,X=!1,z=1;return function W(){if(J&&!X){if(q)z++;else J=!1;if(Z+z<=Q)return Z+z;X=!0}if(!q){if(!X)J=!0;if(Y<=Z-z)return Z-z++;return q=!0,W()}return}}function $q(Z,Y,Q={}){let J;if(typeof Y==="string")J=Z7(Y);else if(Array.isArray(Y))J=Y;else J=[Y];if(J.length>1)throw Error("applyPatch only works with a single input.");return Nb(Z,J[0],Q)}function Nb(Z,Y,Q={}){if(Q.autoConvertLineEndings||Q.autoConvertLineEndings==null){if(bD(Z)&&YM(Y))Y=Uq(Y);else if(vD(Z)&&QM(Y))Y=Kq(Y)}let J=Z.split(`
|
|
667
|
+
`),q=Y.hunks,X=Q.compareLine||((F,O,j,_)=>O===_),z=Q.fuzzFactor||0,W=0;if(z<0||!Number.isInteger(z))throw Error("fuzzFactor must be a non-negative integer");if(!q.length)return Z;let U="",K=!1,B=!1;for(let F=0;F<q[q.length-1].lines.length;F++){let O=q[q.length-1].lines[F];if(O[0]=="\\"){if(U[0]=="+")K=!0;else if(U[0]=="-")B=!0}U=O}if(K){if(B){if(!z&&J[J.length-1]=="")return!1}else if(J[J.length-1]=="")J.pop();else if(!z)return!1}else if(B){if(J[J.length-1]!="")J.push("");else if(!z)return!1}function $(F,O,j,_=0,L=!0,A=[],I=0){let G=0,P=!1;for(;_<F.length;_++){let T=F[_],S=T.length>0?T[0]:" ",y=T.length>0?T.substr(1):T;if(S==="-")if(X(O+1,J[O],S,y))O++,G=0;else{if(!j||J[O]==null)return null;return A[I]=J[O],$(F,O+1,j-1,_,!1,A,I+1)}if(S==="+"){if(!L)return null;A[I]=y,I++,G=0,P=!0}if(S===" ")if(G++,A[I]=J[O],X(O+1,J[O],S,y))I++,L=!0,P=!1,O++;else{if(P||!j)return null;return J[O]&&($(F,O+1,j-1,_+1,!1,A,I+1)||$(F,O+1,j-1,_,!1,A,I+1))||$(F,O,j-1,_+1,!1,A,I)}}return I-=G,O-=G,A.length=I,{patchedLines:A,oldLineLastI:O-1}}let V=[],D=0;for(let F=0;F<q.length;F++){let O=q[F],j,_=J.length-O.oldLines+z,L;for(let A=0;A<=z;A++){L=O.oldStart+D-1;let I=Bq(L,W,_);for(;L!==void 0;L=I())if(j=$(O.lines,L,A),j)break;if(j)break}if(!j)return!1;for(let A=W;A<L;A++)V.push(J[A]);for(let A=0;A<j.patchedLines.length;A++){let I=j.patchedLines[A];V.push(I)}W=j.oldLineLastI+1,D=L+1-O.oldStart}for(let F=W;F<J.length;F++)V.push(J[F]);return V.join(`
|
|
668
|
+
`)}function JM(Z,Y){let Q=typeof Z==="string"?Z7(Z):Z,J=0;function q(){let X=Q[J++];if(!X)return Y.complete();Y.loadFile(X,function(z,W){if(z)return Y.complete(z);let U=$q(W,X,Y);Y.patched(X,U,function(K){if(K)return Y.complete(K);q()})})}q()}var qM=()=>{};function XM(Z){if(Z===void 0||Z==="/dev/null")return Z;if(Z.startsWith("a/"))return"b/"+Z.slice(2);if(Z.startsWith("b/"))return"a/"+Z.slice(2);return Z}function Fq(Z){if(Array.isArray(Z))return Z.map((Q)=>Fq(Q)).reverse();let Y=Object.assign(Object.assign({},Z),{oldFileName:Z.isGit?XM(Z.newFileName):Z.newFileName,oldHeader:Z.newHeader,newFileName:Z.isGit?XM(Z.oldFileName):Z.oldFileName,newHeader:Z.oldHeader,oldMode:Z.newMode,newMode:Z.oldMode,isCreate:Z.isDelete,isDelete:Z.isCreate,hunks:Z.hunks.map((Q)=>{return{oldLines:Q.newLines,oldStart:Q.newStart,newLines:Q.oldLines,newStart:Q.oldStart,lines:Q.lines.map((J)=>{if(J.startsWith("-"))return`+${J.slice(1)}`;if(J.startsWith("+"))return`-${J.slice(1)}`;return J})}})});if(Z.isCopy)Y.newFileName="/dev/null",Y.newHeader=void 0,Y.isDelete=!0,delete Y.isCreate,delete Y.isCopy,delete Y.isRename,Y.hunks=[];return Y}function Ib(Z){for(let Y=0;Y<Z.length;Y++)if(Z[Y]<" "||Z[Y]>"~"||Z[Y]==='"'||Z[Y]==="\\")return!0;return!1}function e4(Z){if(!Ib(Z))return Z;let Y='"',Q=new TextEncoder().encode(Z),J=0;while(J<Q.length){let q=Q[J];if(q===7)Y+="\\a";else if(q===8)Y+="\\b";else if(q===9)Y+="\\t";else if(q===10)Y+="\\n";else if(q===11)Y+="\\v";else if(q===12)Y+="\\f";else if(q===13)Y+="\\r";else if(q===34)Y+="\\\"";else if(q===92)Y+="\\\\";else if(q>=32&&q<=126)Y+=String.fromCharCode(q);else Y+="\\"+q.toString(8).padStart(3,"0");J++}return Y+='"',Y}function zQ(Z,Y,Q,J,q,X,z){let W;if(!z)W={};else if(typeof z==="function")W={callback:z};else W=z;if(typeof W.context>"u")W.context=4;let U=W.context;if(W.newlineIsToken)throw Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");if(!W.callback)return K(t1(Q,J,W));else{let{callback:B}=W;t1(Q,J,Object.assign(Object.assign({},W),{callback:($)=>{let V=K($);B(V)}}))}function K(B){if(!B)return;B.push({value:"",lines:[]});function $(L){return L.map(function(A){return" "+A})}let V=[],D=0,F=0,O=[],j=1,_=1;for(let L=0;L<B.length;L++){let A=B[L],I=A.lines||Lb(A.value);if(A.lines=I,A.added||A.removed){if(!D){let G=B[L-1];if(D=j,F=_,G)O=U>0?$(G.lines.slice(-U)):[],D-=O.length,F-=O.length}for(let G of I)O.push((A.added?"+":"-")+G);if(A.added)_+=I.length;else j+=I.length}else{if(D)if(I.length<=U*2&&L<B.length-2)for(let G of $(I))O.push(G);else{let G=Math.min(I.length,U);for(let T of $(I.slice(0,G)))O.push(T);let P={oldStart:D,oldLines:j-D+G,newStart:F,newLines:_-F+G,lines:O};V.push(P),D=0,F=0,O=[]}j+=I.length,_+=I.length}}for(let L of V)for(let A=0;A<L.lines.length;A++)if(L.lines[A].endsWith(`
|
|
669
|
+
`))L.lines[A]=L.lines[A].slice(0,-1);else L.lines.splice(A+1,0,"\"),A++;return{oldFileName:Z,newFileName:Y,oldHeader:q,newHeader:X,hunks:V}}}function Y7(Z,Y){var Q,J,q,X,z,W;if(!Y)Y=XQ;if(Array.isArray(Z)){if(Z.length>1&&!Y.includeFileHeaders&&!Z.every((B)=>B.isGit))throw Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");return Z.map((B)=>Y7(B,Y)).join(`
|
|
670
|
+
`)}let U=[];if(Z.isGit){if(Y=XQ,!Z.oldFileName)throw Error("oldFileName must be specified for Git patches");if(!Z.newFileName)throw Error("newFileName must be specified for Git patches");let{oldFileName:B,newFileName:$}=Z;if(Z.isCreate&&B==="/dev/null")B=$.replace(/^b\//,"a/");else if(Z.isDelete&&$==="/dev/null")$=B.replace(/^a\//,"b/");if(U.push("diff --git "+e4(B)+" "+e4($)),Z.isDelete)U.push("deleted file mode "+((Q=Z.oldMode)!==null&&Q!==void 0?Q:"100644"));if(Z.isCreate)U.push("new file mode "+((J=Z.newMode)!==null&&J!==void 0?J:"100644"));if(Z.oldMode&&Z.newMode&&!Z.isDelete&&!Z.isCreate)U.push("old mode "+Z.oldMode),U.push("new mode "+Z.newMode);if(Z.isRename)U.push("rename from "+e4(((q=Z.oldFileName)!==null&&q!==void 0?q:"").replace(/^a\//,""))),U.push("rename to "+e4(((X=Z.newFileName)!==null&&X!==void 0?X:"").replace(/^b\//,"")));if(Z.isCopy)U.push("copy from "+e4(((z=Z.oldFileName)!==null&&z!==void 0?z:"").replace(/^a\//,""))),U.push("copy to "+e4(((W=Z.newFileName)!==null&&W!==void 0?W:"").replace(/^b\//,"")))}else{if(Y.includeIndex&&Z.oldFileName==Z.newFileName&&Z.oldFileName!==void 0)U.push("Index: "+Z.oldFileName);if(Y.includeUnderline)U.push("===================================================================")}let K=Z.hunks.length>0;if(Y.includeFileHeaders&&Z.oldFileName!==void 0&&Z.newFileName!==void 0&&(!Z.isGit||K))U.push("--- "+e4(Z.oldFileName)+(Z.oldHeader?"\t"+Z.oldHeader:"")),U.push("+++ "+e4(Z.newFileName)+(Z.newHeader?"\t"+Z.newHeader:""));for(let B=0;B<Z.hunks.length;B++){let $=Z.hunks[B],V=$.oldLines===0?$.oldStart-1:$.oldStart,D=$.newLines===0?$.newStart-1:$.newStart;U.push("@@ -"+V+","+$.oldLines+" +"+D+","+$.newLines+" @@");for(let F of $.lines)U.push(F)}return U.join(`
|
|
668
671
|
`)+`
|
|
669
|
-
`}function
|
|
672
|
+
`}function Vq(Z,Y,Q,J,q,X,z){if(typeof z==="function")z={callback:z};if(!(z===null||z===void 0?void 0:z.callback)){let W=zQ(Z,Y,Q,J,q,X,z);if(!W)return;return Y7(W,z===null||z===void 0?void 0:z.headerOptions)}else{let{callback:W}=z;zQ(Z,Y,Q,J,q,X,Object.assign(Object.assign({},z),{callback:(U)=>{if(!U)W(void 0);else W(Y7(U,z.headerOptions))}}))}}function WM(Z,Y,Q,J,q,X){return Vq(Z,Z,Y,Q,J,q,X)}function Lb(Z){let Y=Z.endsWith(`
|
|
670
673
|
`),Q=Z.split(`
|
|
671
674
|
`).map((J)=>J+`
|
|
672
|
-
`);if(Y)Q.pop();else Q.push(Q.pop().slice(0,-1));return Q}var
|
|
675
|
+
`);if(Y)Q.pop();else Q.push(Q.pop().slice(0,-1));return Q}var XQ,zM,HM;var UM=N(()=>{qQ();XQ={includeIndex:!0,includeUnderline:!0,includeFileHeaders:!0},zM={includeIndex:!1,includeUnderline:!1,includeFileHeaders:!0},HM={includeIndex:!1,includeUnderline:!1,includeFileHeaders:!1}});function KM(Z){let Y=[],Q,J;for(let q=0;q<Z.length;q++){if(Q=Z[q],Q.added)J=1;else if(Q.removed)J=-1;else J=0;Y.push([J,Q.value])}return Y}function BM(Z){let Y=[];for(let Q=0;Q<Z.length;Q++){let J=Z[Q];if(J.added)Y.push("<ins>");else if(J.removed)Y.push("<del>");if(Y.push(wb(J.value)),J.added)Y.push("</ins>");else if(J.removed)Y.push("</del>")}return Y.join("")}function wb(Z){let Y=Z;return Y=Y.replace(/&/g,"&"),Y=Y.replace(/</g,"<"),Y=Y.replace(/>/g,">"),Y=Y.replace(/"/g,"""),Y}var Oq={};y8(Oq,{wordsWithSpaceDiff:()=>Qq,wordDiff:()=>Yq,structuredPatch:()=>zQ,sentenceDiff:()=>Xq,reversePatch:()=>Fq,parsePatch:()=>Z7,lineDiff:()=>JQ,jsonDiff:()=>Hq,formatPatch:()=>Y7,diffWordsWithSpace:()=>Jq,diffWords:()=>fD,diffTrimmedLines:()=>uD,diffSentences:()=>cD,diffLines:()=>t1,diffJson:()=>aD,diffCss:()=>oD,diffChars:()=>PD,diffArrays:()=>eD,cssDiff:()=>zq,createTwoFilesPatch:()=>Vq,createPatch:()=>WM,convertChangesToXML:()=>BM,convertChangesToDMP:()=>KM,characterDiff:()=>aJ,canonicalize:()=>e1,arrayDiff:()=>Wq,applyPatches:()=>JM,applyPatch:()=>$q,OMIT_HEADERS:()=>HM,INCLUDE_HEADERS:()=>XQ,FILE_HEADERS_ONLY:()=>zM,Diff:()=>Z6});var Dq=N(()=>{xD();gD();qQ();lD();iD();rD();ZM();qM();UM()});import Mq from"path";function WQ(Z){return Z.replace(/\r/g,"")}async function Ab(){return FM??=import("@shikijs/cli"),await FM}async function LM(){return VM??=Promise.resolve().then(() => (Dq(),Oq)),await VM}function Gb(){let Z=sJ();if(!Z)throw Error("Generic worker file is not available.");return OM??=new GD({env:{FORCE_COLOR:process.env.FORCE_COLOR||"3"},semaphore:p.threadResources,workerSource:Z}).require("@shikijs/cli","shikiWorker"),OM}function wM(){return sJ()!==null}function Iq(Z){let Y=[];for(let Q of Z){if(!Q.value)continue;let J=Y[Y.length-1];if(J&&J.type===Q.type)J.value+=Q.value;else Y.push({...Q})}return Y}function jq(Z){return Boolean(Z.added||Z.removed)}function Cb(Z,Y,Q){let J=Z[Y];if(!J||jq(J))return!1;let q=Array.from(J.value);if(q.filter((K)=>K===`
|
|
673
676
|
`).length>1)return!1;if(q.filter((K)=>K!==`
|
|
674
|
-
`&&K!=="\r").length>=Q)return!1;let W=!1;for(let K=Y-1;K>=0;K--){if(!Z[K]?.value)continue;if(
|
|
675
|
-
`);if(z===-1){if(X)Q[J].push({type:q.type,value:X});break}let W=X.slice(0,z);if(W)Q[J].push({type:q.type,value:W});J++,X=X.slice(z+1)}}for(let q=0;q<Q.length;q++)Q[q]=
|
|
677
|
+
`&&K!=="\r").length>=Q)return!1;let W=!1;for(let K=Y-1;K>=0;K--){if(!Z[K]?.value)continue;if(jq(Z[K]))W=!0;break}if(!W)return!1;let U=!1;for(let K=Y+1;K<Z.length;K++){if(!Z[K]?.value)continue;if(jq(Z[K]))U=!0;break}return U}function Rb(Z){let Y=[],Q=null;for(let J=0;J<Z.length;J++){let q=Z[J],X=q.value.length;if(q.removed){if(Q&&Q.length<X){if(q.value.startsWith(Q)){Y.splice(J-1,1,{type:"same",value:Q},{type:"delete",value:q.value.slice(Q.length)});continue}else if(q.value.endsWith(Q)){Y.splice(J-1,1,{type:"delete",value:q.value.slice(0,X-Q.length)},{type:"same",value:Q});continue}}else if(Q&&Q.length>X){if(Q.startsWith(q.value)){Y.splice(J-1,1,{type:"same",value:q.value},{type:"add",value:Q.slice(X)});continue}else if(Q.endsWith(q.value)){Y.splice(J-1,1,{type:"add",value:Q.slice(0,Q.length-X)},{type:"same",value:q.value});continue}}Q=q.value,Y.push({type:"delete",value:q.value});continue}if(q.added){if(Q&&Q.length<X){if(q.value.startsWith(Q)){Y.splice(J-1,1,{type:"same",value:Q},{type:"add",value:q.value.slice(Q.length)});continue}else if(q.value.endsWith(Q)){Y.splice(J-1,1,{type:"add",value:q.value.slice(0,X-Q.length)},{type:"same",value:Q});continue}}else if(Q&&Q.length>X){if(Q.startsWith(q.value)){Y.splice(J-1,1,{type:"same",value:q.value},{type:"delete",value:Q.slice(X)});continue}else if(Q.endsWith(q.value)){Y.splice(J-1,1,{type:"delete",value:Q.slice(0,Q.length-X)},{type:"same",value:q.value});continue}}Q=q.value,Y.push({type:"add",value:q.value});continue}Y.push({type:"same",value:q.value})}return Iq(Y)}function DM(Z,Y){let Q=[];for(let J=0;J<Z.length;J++){let q=Z[J];if(Y==="add"&&q.removed)continue;if(Y==="delete"&&q.added)continue;if(q.added)Q.push({type:"add",value:q.value});else if(q.removed)Q.push({type:"delete",value:q.value});else if(Cb(Z,J,Mz))Q.push({type:Y,value:q.value});else Q.push({type:"same",value:q.value})}return Iq(Q)}function Tb(Z){let Y=0;for(let Q of Z){if(Y>$2)return!0;if(Q.count>jz){Y=0;continue}if(Q.added)Y++;else if(Q.removed)Y++}return Y>$2}function MM(Z){return Z.map((Y)=>Y.value).join("")}function jM(Z,Y){let Q=Array.from({length:Y},()=>[]);if(Y<=0)return Q;let J=0;for(let q of Z){let X=q.value;while(X.length>0&&J<Y){let z=X.indexOf(`
|
|
678
|
+
`);if(z===-1){if(X)Q[J].push({type:q.type,value:X});break}let W=X.slice(0,z);if(W)Q[J].push({type:q.type,value:W});J++,X=X.slice(z+1)}}for(let q=0;q<Q.length;q++)Q[q]=Iq(Q[q]);return Q}function kb(Z){let Y=[],Q="",J=0,q="";while(J<Z.length){if(Z[J]==="\x1B"){let W=Z.slice(J).match(qz);if(W){q+=W[0],J+=W[0].length;continue}}let X=Z.codePointAt(J);if(X===void 0)break;let z=String.fromCodePoint(X);Y.push({prefix:q,char:z}),q="",J+=z.length}return Q=q,{tokens:Y,trailingAnsi:Q}}function Q7(){return process.stdout.isTTY===!0&&process.stdin.isTTY===!0&&Q6.supportsColor>=3}function Eb(Z){let Y=Z.split(".").pop()?.toLowerCase()||"";return I7[Y]||"text"}function _M(Z,Y){if(Y===1)return String(Z);return`${Z},${Y}`}function Pb(Z){if(Q6.supportsColor<=0)return Z;if(Z.startsWith("@@"))return`${H.cyan}${Z}${H.reset}`;if(Z.startsWith("+"))return`${H.green}${Z}${H.reset}`;if(Z.startsWith("-"))return`${H.red}${Z}${H.reset}`;if(Z.startsWith("\\"))return`${H.dim}${Z}${H.reset}`;return Z}async function xb(Z,Y){let J=(await LM()).structuredPatch;if(!J)throw new o("Diff module does not provide structuredPatch.","DIFF_STRUCTURED_PATCH_UNAVAILABLE");let q=J("a/COMMIT_EDITMSG","b/COMMIT_EDITMSG",Z,Y,"","",{context:3}),X=[];for(let W of q.hunks||[]){let U=_M(W.oldStart,W.oldLines),K=_M(W.newStart,W.newLines),B=W.heading?` ${W.heading}`:"";X.push(`@@ -${U} +${K} @@${B}`),X.push(...W.lines)}let z=X.length>0?`diff --git a/COMMIT_EDITMSG b/COMMIT_EDITMSG
|
|
676
679
|
${X.join(`
|
|
677
|
-
`)}`:"diff --git a/COMMIT_EDITMSG b/COMMIT_EDITMSG";return{patchBodyLines:X,rendererDiffText:z}}async function
|
|
678
|
-
`),J=null,q=0,X=0,z=!1,W=2;for(let U of Q){if(
|
|
680
|
+
`)}`:"diff --git a/COMMIT_EDITMSG b/COMMIT_EDITMSG";return{patchBodyLines:X,rendererDiffText:z}}async function AM(Z,Y){if(Z===Y)return[];let{patchBodyLines:Q,rendererDiffText:J}=await xb(Z,Y);if(Q.length===0)return[];if(Q7()){let q=new Lq(J,{showLineNumbers:!1,showStatus:!1,disableSyntaxHighlighting:!0});await q.prepareHighlighting();let X=[];for(let z=0;z<q.getLineCount();z++)X.push(q.getLine(z));return X}return Q.map((q)=>Pb(q))}function PZ(Z){let Y=[],Q=WQ(Z).split(`
|
|
681
|
+
`),J=null,q=0,X=0,z=!1,W=2;for(let U of Q){if(W2.test(U)){if(J)Y.push(J);let K=fb(U);if(K)J={fileName:K.fileName,oldFileName:K.oldFileName,newFileName:K.newFileName,lang:Eb(K.fileName),lines:[]},z=K.isCombined,W=2;else J=null,z=!1,W=2;continue}if(!J)continue;if(U.startsWith("--- ")||U.startsWith("+++ ")){J.lines.push({type:"header",content:U});continue}if(U.startsWith("@@@ ")){let K=U.match(/@@@ -(\d+)(?:,\d+)?/),B=U.match(/\+(\d+)(?:,\d+)? @@@/);if(K)q=parseInt(K[1],10);if(B)X=parseInt(B[1],10);J.lines.push({type:"hunk",content:U}),z=!0;let $=U.match(/-\d+(?:,\d+)?/g);W=Math.max($?.length??2,2);continue}if(U.startsWith("@@ ")){let K=U.match(/@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);if(K)q=parseInt(K[1],10),X=parseInt(K[2],10);J.lines.push({type:"hunk",content:U});continue}if(z){if(U.length>=W){let K=U.slice(0,W);if(/^[ +-]+$/.test(K)){let B=U.slice(W),$=K.includes("+"),V=K.includes("-"),D=$?"add":V?"delete":"context",F={type:D,content:B};if(D==="add")F.newLineNum=X++;else if(D==="delete")F.oldLineNum=q++;else F.oldLineNum=q++,F.newLineNum=X++;J.lines.push(F);continue}}}if(U[0]==="+"){J.lines.push({type:"add",content:U.substring(1),newLineNum:X++});continue}if(U[0]==="-"){J.lines.push({type:"delete",content:U.substring(1),oldLineNum:q++});continue}if(U[0]===" "||U===""){J.lines.push({type:"context",content:U[0]===" "?U.substring(1):"",oldLineNum:q++,newLineNum:X++});continue}if(U.match(/^(new file|deleted file|index|Binary|similarity|rename|old mode|new mode)/))J.lines.push({type:"header",content:U})}if(J)Y.push(J);return Y}async function bb(Z,Y,Q,J,q){let X=new Map,z=Z.lines.filter((K)=>K.type==="add"||K.type==="delete"||K.type==="context"||K.type==="modify");if(z.length===0)return X;let W=z.filter((K)=>K.type!=="delete"),U=z.filter((K)=>!(K.type==="add"||K.type==="modify"));try{let K=await Ab();if(Q.fullfileHighlight&&J){if((await Promise.all([IM({git$:J,diff:Z,lines:W,lineNumberKey:"newLineNum",path:Z.newFileName,revision:Q.newRevision,maxHunkSize:Q.maxHunkSize,theme:Y,shiki:K,result:X},q),IM({git$:J,diff:Z,lines:U,lineNumberKey:"oldLineNum",path:Z.oldFileName,revision:Q.oldRevision,maxHunkSize:Q.maxHunkSize,theme:Y,shiki:K,result:X},q)])).includes("limited"))G6.debug(`Full-file syntax highlighting was skipped for ${Z.newFileName} due to file size. Falling back to context-only highlighting.`),X.clear(),await NM({diff:Z,theme:Y,shiki:K,newLines:W,oldLines:U,result:X});return X}G6.debug(`Full-file syntax highlighting is ${Q.fullfileHighlight?"unavailable":"disabled"} for ${Z.newFileName}. Falling back to context-only highlighting.`),await NM({diff:Z,theme:Y,shiki:K,newLines:W,oldLines:U,result:X})}catch(K){G6.error(`Error highlighting diff for ${Z.newFileName}: ${o.from(K)}`),z.forEach((B)=>X.set(B,B.content))}return X}async function NM(Z){let{diff:Y,theme:Q,shiki:J,newLines:q,oldLines:X,result:z}=Z;if(q.length>0){let W=q.map((B)=>B.content).join(`
|
|
679
682
|
`),K=(await J.codeToANSI(W,Y.lang,Q)).split(`
|
|
680
683
|
`);for(let B=0;B<q.length;B++)if(K[B])z.set(q[B],K[B])}if(X.length>0){let W=X.map((B)=>B.content).join(`
|
|
681
684
|
`),K=(await J.codeToANSI(W,Y.lang,Q)).split(`
|
|
682
|
-
`);for(let B=0;B<X.length;B++)if(K[B])z.set(X[B],K[B])}}async function
|
|
683
|
-
`)};return await
|
|
684
|
-
`),
|
|
685
|
-
`),
|
|
686
|
-
`);if(
|
|
687
|
-
`).map((W)=>this.padLineWithBg(X+W,Y,Q));return[this.padLineWithBg(X+Z,Y,Q)]}updateRenderedLines(){this.renderedLines=[];let Z=this.lastWidth,Y=
|
|
688
|
-
`),Q=Y.findIndex((J)=>
|
|
689
|
-
`),preamble:Y.slice(0,Q)}}var
|
|
690
|
-
`),
|
|
691
|
-
`);let
|
|
692
|
-
${u(
|
|
693
|
-
${u(y,{color:!0})}`,"clear"),1}return 0}let[
|
|
694
|
-
${H.cyan}(\`git clear pardon\` to undo)${H.reset}`),await
|
|
685
|
+
`);for(let B=0;B<X.length;B++)if(K[B])z.set(X[B],K[B])}}async function IM(Z,Y){let{git$:Q,diff:J,lines:q,lineNumberKey:X,path:z,revision:W,maxHunkSize:U,theme:K,shiki:B,result:$}=Z;if(q.length===0)return"unavailable";let V=await vb({git$:Q,path:z,revision:W,lang:J.lang,theme:K,maxHunkSize:U,shiki:B});if(Y?.updateProgress(1),!V)return"unavailable";if(V.contentLength>U)return G6.debug(`Skipping syntax highlighting for ${W}:${z}; file size exceeds ${U} chars limit.`),"limited";for(let D of q){let F=D[X];if(F===void 0)continue;let O=V.highlightedLines?.[F-1];if(O!==void 0)$.set(D,O)}return"highlighted"}async function vb(Z){let{git$:Y,path:Q,revision:J,lang:q,theme:X,maxHunkSize:z,shiki:W}=Z,U=J===_q,K=J===Nq,B=await I0(),$=["diffViewer","highlightedFullFile","ansiV2",Array.isArray(Y)&&Y[1]?HQ(Y[1]):"d",HQ(J),HQ(Q),HQ(X)].join("."),V=U||K?null:await B.getOneOff($);if(V)return V;let D;try{if(U)D=await Sb(Y,Q);else if(K)D=(await k`${Y} show ${`:${Q}`}`).stdout;else D=(await k`${Y} show ${`${J}:${Q}`}`).stdout}catch{return null}if(D.length>z){let j={contentLength:D.length};if(!U&&!K)await B.setOneOff($,j);return j}let F=wM()?await yb(D,q,X,W):await W.codeToANSI(D,q,X),O={contentLength:D.length,highlightedLines:F.split(`
|
|
686
|
+
`)};if(!U&&!K)await B.setOneOff($,O);return O}async function Sb(Z,Y){let Q=(await A0(Z,["--show-toplevel"])).trim(),J=Mq.resolve(Q,Y),q=Mq.relative(Q,J);if(q.startsWith("..")||Mq.isAbsolute(q))throw Error(`Diff path escapes repository root: ${Y}`);return await f0(J,"utf-8")}async function yb(Z,Y,Q,J){try{return await Gb().spawn(async(q,X,z)=>await shikiWorker.codeToANSI(q,X,z),[Z,Y,Q])}catch(q){return G6.debug(`Worker syntax highlighting failed; falling back to main thread: ${o.from(q)}`),await J.codeToANSI(Z,Y,Q)}}function HQ(Z){return Buffer.from(Z).toString("base64url")}class Lq{parsedDiffs=[];renderedLines=[];options;lastWidth=0;lastHeight=0;redundancyLv=0;widthRedundancyLv=0;logger=new M("diff-renderer");ADDED_BG=O6(X0.base,X0.green,0.13);DELETED_BG=O6(X0.base,X0.red,0.13);ADDED_INLINE_BG=O6(X0.base,X0.green,0.28);DELETED_INLINE_BG=O6(X0.base,X0.red,0.28);ADDED_GUTTER_BG=O6(X0.base,X0.green,0.25);DELETED_GUTTER_BG=O6(X0.base,X0.red,0.25);constructor(Z,Y={}){Z=WQ(Z),this.options={...a1,showLineNumbers:!0,theme:N7,lineNumberWidth:5,wrapLines:!0,showStatus:!0,preambleLines:[],disableSyntaxHighlighting:!1,git$:void 0,highlighting:{fullfileHighlight:!0,maxHunkSize:200000,oldRevision:"HEAD^",newRevision:"HEAD",...Y.highlighting},...Y},this.options.highlighting={fullfileHighlight:!0,maxHunkSize:200000,oldRevision:"HEAD^",newRevision:"HEAD",...this.options.highlighting},this.logger.debug("Initializing DiffViewerRenderer with options: "+u(this.options)),this.lastWidth=TZ(),this.lastHeight=E4(),this.redundancyLv=Y.redundancyLv??B7(this.options.preambleLines.join("")+Z),this.widthRedundancyLv=Math.max(0,this.redundancyLv),this.logger.debug(`Terminal size: ${this.lastWidth}x${this.lastHeight}, redundancy level: ${this.redundancyLv}, width redundancy level: ${this.widthRedundancyLv}`),this.parsedDiffs=this.logger.time("Parsing diff output",()=>PZ(Z)),this.updateRenderedLines()}async prepareHighlighting(Z){if(await G6.time("Preparing inline diffs",()=>this.prepareInlineDiffs()),this.options.disableSyntaxHighlighting){G6.time("Post-processing",()=>this.updateRenderedLines());return}if(this.options.highlighting.fullfileHighlight&&!wM())G6.debug("Worker threads are not available in this environment. All syntax highlighting will run on the main thread, which may cause UI freezes for large diffs.");let Y=[];for(let Q of this.parsedDiffs){let J=Q.lines.filter((X)=>X.type==="add"||X.type==="delete"||X.type==="context"||X.type==="modify");if(J.length===0)continue;let q=bb(Q,this.options.theme,this.options.highlighting,this.options.git$,Z).then((X)=>{J.forEach((z)=>{let W=X.get(z);if(W!==void 0)z.highlightedContent=W})});Y.push(q)}if(this.options.highlighting.fullfileHighlight&&Z)Z.options.progress={current:0,total:Y.length*2};Z?.setMessage("Highlighting diffs"),await Promise.all(Y),G6.time("Post-processing after highlighting",()=>this.updateRenderedLines())}async prepareInlineDiffs(){if(!this.parsedDiffs.some((J)=>{for(let q=0;q<J.lines.length;q++){if(J.lines[q].type!=="add"&&J.lines[q].type!=="delete")continue;let X=q;while(q<J.lines.length&&(J.lines[q].type==="add"||J.lines[q].type==="delete"))q++;let z=J.lines.slice(X,q),W=z.some((K)=>K.type==="add"),U=z.some((K)=>K.type==="delete");if(W&&U)return!0;q--}return!1}))return;let Y,Q;try{let J=await LM();Y=J.diffChars,Q=J.diffWordsWithSpace}catch(J){this.logger.warn(`Inline diff module failed to load: ${o.from(J)}`);return}if(!Y){this.logger.warn("Inline diff module loaded without diffChars export");return}for(let J of this.parsedDiffs){let q=0;while(q<J.lines.length){if(J.lines[q].type!=="add"&&J.lines[q].type!=="delete"){q++;continue}let X=q;while(q<J.lines.length&&(J.lines[q].type==="add"||J.lines[q].type==="delete"))q++;let z=q,W=J.lines.slice(X,z),U=W.filter((j)=>j.type==="delete"),K=W.filter((j)=>j.type==="add");if(U.length===0||K.length===0)continue;let B=U.length===1&&K.length===1&&U[0].oldLineNum!==void 0&&K[0].newLineNum!==void 0,$,V,D=null;if(B){let j=U[0],_=K[0];D=Q(j.content,_.content);let L=Rb(D);if($=j.content,V=_.content,!Tb(D)){let A={type:"modify",content:_.content,oldLineNum:j.oldLineNum,newLineNum:_.newLineNum,inlineSegments:L};J.lines.splice(X,z-X,A),q=X+1;continue}}if(!D)$=U.map((j)=>j.content).join(`
|
|
687
|
+
`),V=K.map((j)=>j.content).join(`
|
|
688
|
+
`),D=Y($,V);let F=DM(D,"add");if(F.length>0&&MM(F)===V){let j=jM(F,K.length);for(let _=0;_<K.length;_++)if(j[_].length>0)K[_].inlineSegments=j[_]}let O=DM(D,"delete");if(O.length>0&&MM(O)===$){let j=jM(O,U.length);for(let _=0;_<U.length;_++)if(j[_].length>0)U[_].inlineSegments=j[_]}}}}renderLine(Z,Y,Q){let J=[],q=this.options.lineNumberWidth,X=Y-q-4,z=" ",W=Q,U=Q,K=X0.overlay0;switch(Z.type){case"add":z="+",W=this.ADDED_BG,U=this.ADDED_GUTTER_BG,K=X0.green;break;case"modify":z="~",W=this.ADDED_BG,U=this.ADDED_GUTTER_BG,K=X0.green;break;case"delete":z="-",W=this.DELETED_BG,U=this.DELETED_GUTTER_BG,K=X0.red;break;case"context":W=X0.base;break;case"hunk":return J.push(this.renderHunkHeader(Z.content,Y,X)),J;case"header":return J.push(this.renderFileHeader(Z.content,Y)),J;default:return J}let B=Z.inlineSegments?this.renderInlineSegments(Z.inlineSegments,Z.type,W,Z.highlightedContent||Z.content,Z.content):Z.highlightedContent||Z.content,$=Z.newLineNum??Z.oldLineNum,V=$!==void 0?String($).padStart(q):" ".repeat(q),D=`${T0(X0.overlay1)}${V} ${T0(K)}${z} `,F=" ".repeat(q+3);if(this.options.wrapLines&&r0(B,this.widthRedundancyLv)>X){let j=t(B,X,{mode:"strict",redundancyLv:this.widthRedundancyLv}).split(`
|
|
689
|
+
`);if(j.length<2)G6.warn(`Expected wrapped content to have multiple lines but got a line or less. Original content length: ${B.length}, Wrapped content length: ${j[0]?.length}, ex_length length: ${r0(j[0],this.widthRedundancyLv)}, avaliable space: ${X}`);if(r0(j[0],Math.min(this.widthRedundancyLv,0))>X){G6.warn(`First line of wrapped content still exceeds available width, countermeasures will be taken. Original content length: ${B.length}, First line length: ${j[0]?.length}, ex_length length: ${r0(j[0],this.widthRedundancyLv)}, avaliable space: ${X}`),j=[];let L=0;while(L<r0(B,this.widthRedundancyLv)){let A=gX(B,L,L+X,this.widthRedundancyLv);j.push(A),L+=r0(A,this.widthRedundancyLv)}}let _;for(let L=0;L<j.length;L++){let A=L===0?D:F;if(_)j[L]=aZ(_)+j[L];if(J.push(this.padLineWithBg(A+l0(W)+j[L],Y,U)),L!==j.length-1)_=sZ(A+j[L])}}else J.push(this.padLineWithBg(D+l0(W)+B,Y,U));return J}renderInlineSegments(Z,Y,Q,J,q){let X=[],z=l0(Q),{tokens:W,trailingAnsi:U}=kb(J),K=Array.from(q),B=0,$=(V)=>{let D=Array.from(V),F="";for(let O of D){let j=W[B];if(j){F+=`${j.prefix}${j.char}`,B++;continue}let _=K[B]??O;F+=_,B++}return F};for(let V of Z){if(V.type==="same"){X.push($(V.value));continue}if(V.type==="add"){X.push(`${l0(this.ADDED_INLINE_BG)}${$(V.value)}${z}`);continue}let D=Y==="modify"?V.value:$(V.value),F=Y==="modify",O=F?"\x1B[9m":"",j=F?"\x1B[29m":"";X.push(`${l0(this.DELETED_INLINE_BG)}${O}${D}${j}${z}`)}if(U)X.push(U);return X.join("")}padLineWithBg(Z,Y,Q){let J=Math.max(0,Y-r0(Z,this.widthRedundancyLv));return`${l0(Q)}${Z}${" ".repeat(J)}${H.reset}`}renderHunkHeader(Z,Y,Q){let J=O6(X0.crust,X0.surface0,0.3);return Z=B4(Z,Q,"end",this.redundancyLv),this.padLineWithBg(`${H.dim+l0(X0.cyan)+T0(J)} ↕ ${l0(J)+T0(X0.cyan)} ${$M.italic(Z)}`,Y,J)}renderFileHeader(Z,Y){let Q=O6(X0.crust,X0.surface0,0.3);return this.padLineWithBg(` ${T0(X0.overlay1)}${Z}`,Y,Q)}renderFileName(Z,Y,Q){let J=O6(X0.crust,X0.surface0,0.3);if(Z===Y)return this.padLineWithBg(` ${T0(X0.lavender)}${$M.bold(Y)}`,Q,J);return this.padLineWithBg(` ${T0(X0.yellow)}${Z} -> ${Y}`,Q,J)}renderPreambleLine(Z,Y,Q,J){if(!Z)return[this.padLineWithBg(" ",Y,Q)];Z=" ".repeat(J)+Z;let q=Y,X=T0(X0.overlay1);if(this.options.wrapLines&&r0(Z,this.widthRedundancyLv)>q)return t(Z,q,{mode:"strict",indent:J,redundancyLv:this.widthRedundancyLv}).split(`
|
|
690
|
+
`).map((W)=>this.padLineWithBg(X+W,Y,Q));return[this.padLineWithBg(X+Z,Y,Q)]}updateRenderedLines(){this.renderedLines=[];let Z=this.lastWidth,Y=O6(X0.mantle,X0.surface0,0.2);if(this.options.preambleLines.length>0){for(let Q of this.options.preambleLines)this.renderedLines.push(...this.renderPreambleLine(Q,Z,Y,3));if(this.parsedDiffs.length>0)this.renderedLines.push(this.padLineWithBg(" ",Z,Y))}for(let Q=0;Q<this.parsedDiffs.length;Q++){let J=this.parsedDiffs[Q],q=Y;if(Q!==0)this.renderedLines.push(this.padLineWithBg(" ",Z,q),this.padLineWithBg(" "+T0(X0.surface0)+"─".repeat(Z-12),Z,q),this.padLineWithBg(" ",Z,q));this.renderedLines.push(this.renderFileName(J.oldFileName,J.newFileName,Z));for(let X of J.lines)this.renderedLines.push(...this.renderLine(X,Z,q))}}getLineCount(){return this.renderedLines.length}getLine(Z){return this.renderedLines[Z]||""}render(Z,Y,Q){let J=[],X=`${l0(this.options.backgroundColor)}${" ".repeat(Q)}${H.reset}`,z=this.renderedLines.length;for(let W=0;W<Y-1;W++){let U=Z+W;J.push(U<z?this.renderedLines[U]:X)}return J}onResize(Z,Y){if(Z!==this.lastWidth||Y!==this.lastHeight)this.lastWidth=Z,this.lastHeight=Y,this.updateRenderedLines()}}async function xZ(Z,Y={}){if(Z=WQ(Z),!Q7())return G6.warn("Diff viewer is not supported in this environment. Falling back to plain output."),t5(Z,{...Y,showLineNumbers:!1});let Q=P0({message:Z.length>1e4?"Preparing diff viewer...":void 0,interval:20}),{body:J,preamble:q}=hb(Z),X=await K0(),z={fullfileHighlight:X.get("viewer.highlighting.fullfileHighlight",!0),maxHunkSize:X.get("viewer.highlighting.maxHunkSize",200000),...Y.highlighting};G6.time("Preparing diff highlighting");let W=new Lq(J,{...Y,preambleLines:q,highlighting:z});return await W.prepareHighlighting(Q),lJ(),W.onResize(TZ(),E4()),Q.stop(),G6.timeEnd("Preparing diff highlighting"),nJ(W,Y)}function UQ(Z){return Jz.test(Z)}function fb(Z){if(Z.startsWith("diff --git ")){let Q=Z.match(/diff --git a\/(.+?) b\/(.+)/);if(!Q)return null;return{fileName:Q[2],oldFileName:Q[1],newFileName:Q[2],isCombined:!1}}let Y=Z.match(/^diff --(?:cc|combined) (.+)$/);if(!Y)return null;return{fileName:Y[1],oldFileName:Y[1],newFileName:Y[1],isCombined:!0}}function hb(Z){let Y=WQ(Z).split(`
|
|
691
|
+
`),Q=Y.findIndex((J)=>W2.test(J));if(Q===-1){if(Y.some((q)=>/^(?:commit |Commit:\s+)[0-9a-f]{7,40}\b/i.test(q)))return{body:"",preamble:Y};return{body:Z,preamble:[]}}return{body:Y.slice(Q).join(`
|
|
692
|
+
`),preamble:Y.slice(0,Q)}}var $M,_q="__GDX_WORKING_TREE__",Nq="__GDX_INDEX__",FM=null,VM=null,OM=null,G6;var bZ=N(()=>{J6();z0();oJ();v0();w0();m0();H0();R0();$6();W4();CD();S0();kD();e0();$M={bold:(Z)=>`\x1B[1m${Z}\x1B[22m`,italic:(Z)=>`\x1B[3m${Z}\x1B[23m`,underline:(Z)=>`\x1B[4m${Z}\x1B[24m`,dim:(Z)=>`\x1B[2m${Z}\x1B[22m`};G6=new M("diff-viewer")});function GM(Z){let Y=Z.trim();if(!Y)return()=>!1;if(Y==="*")return()=>!0;let Q=new RegExp(`^${CM(Y,{pathMode:!1})}$`);return(J)=>Q.test(J)}function KQ(Z){let Y=gb(Z);if(!Y)return null;let Q=new RegExp(`^${CM(Y,{pathMode:!0})}$`);return(J)=>Q.test(mb(J))}function gb(Z){let Y=d0(Z.trim());while(Y.startsWith("./"))Y=Y.slice(2);if(Y.startsWith("/"))Y=Y.slice(1);return Y=Y.replace(/\/+$/,""),Y}function mb(Z){let Y=d0(Z.trim());while(Y.startsWith("./"))Y=Y.slice(2);if(Y.startsWith("/"))Y=Y.slice(1);return Y=Y.replace(/\/+$/,""),Y}function CM(Z,Y){let{pathMode:Q}=Y,J="",q=0;while(q<Z.length){let X=Z[q];if(X==="*"){let z=Z[q+1];if(Q&&z==="*"){if(Z[q+2]==="/"){J+="(?:.*/)?",q+=3;continue}J+=".*",q+=2;continue}J+="[^/]*",q+=1;continue}if(X==="?"){J+=Q?"[^/]":".",q+=1;continue}if(X==="/"){J+="/",q+=1;continue}J+=X.replace(/[.+^${}()|[\]\\]/g,"\\$&"),q+=1}return J}var wq=()=>{};import H6 from"path";async function TM(Z){let Y=[],Q=!1;try{let q=(await K0()).get("parallel.init","submodule,env"),X=RM(q);if(X.invalid.length>0)Y.push(`Unknown parallel.init values: ${X.invalid.join(", ")}. Valid values: submodule, env, pkg.`);let z=RM(Z.noInitList);if(z.invalid.length>0)Y.push(`Unknown --no-init values: ${z.invalid.join(", ")}. Valid values: submodule, env, pkg.`);if(Z.noInitAll||Z.noInitList==="")Q=!0;let W=new Set(z.values),U=X.values.filter((K)=>!W.has(K));if(U.length===0)Q=!0;if(!Q&&U.includes("submodule")){let K=P0({message:"Initializing git submodules..."});try{await xO(Z.git$,Z.worktreePath),K.stop()}catch(B){K.stop(),Y.push(`Submodule init failed. ${u(B,{color:!0})}`)}}if(!Q&&U.includes("env")){let K=await cb(Z.worktreePath,Z.originPath,Y);Y.push(...K.warnings)}if(!Q&&U.includes("pkg")){let K=await db(Z.worktreePath);Y.push(...K.warnings)}}catch(J){Y.push(`Init failed. ${u(J,{color:!0})}`)}ub(Y)}function ub(Z){for(let Y of Z)M.warn(Y,"worktree-init")}function RM(Z){let Y=[],Q=[],J=new Set,q=[];if(Array.isArray(Z))q=Z.map((X)=>String(X));else if(typeof Z==="string")q=Z.split(",");else if(Z!=null)q=[String(Z)];for(let X of q){let z=X.trim().toLowerCase();if(!z)continue;if(pb.has(z)){let W=z;if(!J.has(W))Y.push(W),J.add(W)}else Q.push(z)}return{values:Y,invalid:Q}}async function db(Z){let Y=[],Q=!1,J=sb(Z,Y);if(J){let q=await tb(J,Z,Y);Q||=q}if(rb(Z)){let q=await eb(Z,Y);Q||=q}return{ran:Q,warnings:Y}}async function cb(Z,Y,Q){let J=[],q=0;try{let X=await K0(),z=Y||Z,{rootFiles:W,envPaths:U}=await lb(z,X,J);if(W.length===0&&U.length===0)return{copied:0,warnings:J};if(W.length>0){let K=W.map(($)=>GM($)),B=await nb(z,J);for(let $ of B){if(!$)continue;if(K.some((V)=>V($))){if(await kM({sourceRoot:z,targetRoot:Z,relativePath:$,warnings:J}))q++}}}if(U.length>0)q+=await ib({sourceRoot:z,targetRoot:Z,patterns:U,warnings:J})}catch(X){J.push(`Env init failed. ${u(X,{color:!0})}`)}return Q.push(...J),{copied:q,warnings:J}}async function lb(Z,Y,Q){let J=new Set,q=new Set,X=H6.join(Z,".gitignore");if(l(X))try{let U=(await f0(X,"utf-8")).split(/\r?\n/);for(let K of U){let B=K.trim();if(!B||B.startsWith("#"))continue;if(B.startsWith("!"))continue;if(B.endsWith("/"))continue;let $=B.startsWith("/")?B.slice(1):B;if($.includes("/"))continue;J.add($)}}catch(W){Q.push(`Failed to read .gitignore. ${u(W,{color:!0})}`)}let z=Y.get("parallel.envPaths","");if(typeof z==="string"){let W=z.split(":").map((U)=>U.trim()).filter((U)=>U.length>0);for(let U of W)q.add(U)}return{rootFiles:Array.from(J),envPaths:Array.from(q)}}async function nb(Z,Y){try{return(await u8(Z,{withFileTypes:!0})).filter((J)=>J.isFile()).map((J)=>J.name)}catch(Q){return Y.push(`Failed to list root files. ${u(Q,{color:!0})}`),[]}}async function kM(Z){let{sourceRoot:Y,targetRoot:Q,relativePath:J,warnings:q}=Z;if(H6.resolve(Y)===H6.resolve(Q))return!1;let X=BQ(Y,J),z=BQ(Q,J);if(!l(X))return!1;if(l(z))return!1;try{if(!(await f6(X)).isFile())return!1;await b4(H6.dirname(z),{recursive:!0});let U=await f0(X);return await c0(z,U),!0}catch(W){return q.push(`Failed to copy env file '${J}'. ${u(W,{color:!0})}`),!1}}async function ob(Z){let{sourceRoot:Y,targetRoot:Q,relativePath:J,warnings:q}=Z;if(H6.resolve(Y)===H6.resolve(Q))return!1;let X=BQ(Y,J),z=BQ(Q,J);if(!l(X))return!1;if(l(z))return!1;try{if(!(await f6(X)).isDirectory())return!1;return await EM(X,z,q),!0}catch(W){return q.push(`Failed to copy env directory '${J}'. ${u(W,{color:!0})}`),!1}}async function EM(Z,Y,Q){try{await b4(Y,{recursive:!0});let J=await u8(Z,{withFileTypes:!0});for(let q of J){let X=H6.join(Z,q.name),z=H6.join(Y,q.name);if(q.isDirectory())await EM(X,z,Q);else if(q.isFile()){let W=await f0(X);await c0(z,W)}}}catch(J){Q.push(`Failed to copy env directory. ${u(J,{color:!0})}`)}}async function ib(Z){let{sourceRoot:Y,targetRoot:Q,patterns:J,warnings:q}=Z;if(J.length===0)return 0;let X=J.map((U)=>KQ(U)).filter((U)=>Boolean(U));if(X.length===0)return 0;let z=0,W=async(U,K)=>{let B=[];try{B=await u8(U,{withFileTypes:!0})}catch($){q.push(`Failed to read env paths. ${u($,{color:!0})}`);return}for(let $ of B){let V=K?`${K}/${$.name}`:$.name,D=X.some((F)=>F(V));if(D&&$.isDirectory()){if(await ob({sourceRoot:Y,targetRoot:Q,relativePath:V,warnings:q})){z++;continue}}if(D&&$.isFile()){if(await kM({sourceRoot:Y,targetRoot:Q,relativePath:V,warnings:q}))z++}if($.isDirectory())await W(H6.join(U,$.name),V)}};return await W(Y,""),z}function BQ(Z,Y){let Q=Y.split("/").filter(Boolean);return H6.join(Z,...Q)}function sb(Z,Y){let Q=H6.join(Z,"package.json"),J=l(Q),q=H6.join(Z,"bun.lockb"),X=H6.join(Z,"bun.lock"),z=H6.join(Z,"pnpm-lock.yaml"),W=H6.join(Z,"package-lock.json"),U=H6.join(Z,"npm-shrinkwrap.json"),K=null;if(J){let B=ab(Q,Y);if(B)K=B}if(!K){if(l(q)||l(X))K="bun";else if(l(z))K="pnpm";else if(J&&(l(W)||l(U)))K="npm";else if(J)K="npm"}return K}function ab(Z,Y){try{let Q=Z4(Z,"utf-8"),q=JSON.parse(Q).packageManager?.split("@")[0]?.trim().toLowerCase();if(q==="npm"||q==="pnpm"||q==="bun")return q;if(q)Y.push(`Unsupported packageManager '${q}' in package.json. Supported: npm, pnpm, bun.`)}catch(Q){Y.push(`Failed to parse package.json: ${u(Q,{color:!0})}`)}return null}function rb(Z){let Y=H6.join(Z,"uv.lock"),Q=H6.join(Z,"pyproject.toml");return l(Y)||l(Q)}async function tb(Z,Y,Q){if(!await s4(Z))return Q.push(`Package manager '${Z}' not found in PATH. Skipping install.`),!1;let q=k({cwd:Y,stdout:"inherit",stderr:"inherit"});try{if(Z==="npm")await q`npm install`;else if(Z==="pnpm")await q`pnpm install`;else await q`bun install`;return!0}catch(X){return Q.push(`Package install failed for '${Z}'. ${u(X,{color:!0})}`),!1}}async function eb(Z,Y){if(!await s4("uv"))return Y.push("Package manager 'uv' not found in PATH. Skipping install."),!1;let J=k({cwd:Z,stdout:"inherit",stderr:"inherit"});try{return await J`uv sync`,!0}catch(q){return Y.push(`Package install failed for 'uv'. ${u(q,{color:!0})}`),!1}}var pb;var PM=N(()=>{z0();J6();m0();w0();$6();e0();wq();pb=new Set(["submodule","pkg","env"])});import Aq from"path";async function J7(Z){let{git$:Y,args:Q}=Z,J=Q[1]?.toLowerCase(),{match:q}=h0(J,["list","pardon"]),[X,z]=await Promise.all([A0(Y,["--abbrev-ref","HEAD"]).then((G)=>G.trim().replace(/\//g,"-")),F6(Y)]),W=Aq.basename(z),U=K6,K=`${W}_${X}_backup_*.patch`,B=`${W}_${X}_backup_`,$=".patch";if(q==="list"){C(`${H.cyan}Project:${H.reset} ${W}`),C(`${H.cyan}Branch:${H.reset} ${X}`),C(`${H.cyan}Backup location:${H.reset} ${U}`),C(`${H.cyan}Use \`git clear pardon\` to restore the latest backup.${H.reset}
|
|
693
|
+
`),C(`${H.cyan}Looking for backup patch files matching:${H.reset} ${K}
|
|
694
|
+
`);let G=await xM(U,B,".patch");if(G.length===0)return C(`${H.yellow}No backup patch files found for project '${W}' on branch '${X}'.${H.reset}`),0;let P=new Date;for(let T=0;T<G.length;T++){let S=G[T],y=(P.getTime()-S.stats.mtime.getTime())/lZ,g=S.stats.mtime.toISOString().replace("T"," ").split(".")[0],x=H.dim;if(S.stats.mtime.toDateString()===P.toDateString())x=H.white;else if(y>=6)x=H.red;C(`${x}backup@${T}: ${g} - ${S.name}${H.reset}`)}return 0}let V=await xM(U,B,".patch"),D=new Date;D.setDate(D.getDate()-7);for(let G of V)if(G.stats.mtime<D)try{tQ(G.path),V.splice(V.indexOf(G),1)}catch(P){M.error(`Failed to delete old backup file: ${G.path}
|
|
695
|
+
${u(P,{color:!0})}`,"clear")}if(q==="pardon"){if((await k`${Y} diff --cached --name-only`).stdout.length>0||(await k`${Y} diff --name-only`).stdout.length>0)return M.error("Working Directory is dirty, aborting pardon to prevent unintended data loss. Please clear your workspace first.","clear"),await E0`${Y} status`,1;if(V.length===0)return M.error(`No backup patch file found for branch '${X}'. Pardon failed.`,"clear"),1;let T=V[0],S=new Date;if(S.setDate(S.getDate()-1),T.stats.mtime<S){if(M.warn("Latest backup patch file is older than 1 day. Do you want to proceed with the pardon? (y/n)","clear"),(await y1("Type 'y' to confirm: ")).toLowerCase()!=="y")return M.error("Pardon aborted.","clear"),1}try{await E0`${Y} apply ${T.path}`,tQ(T.path),C(`${H.cyan}Pardon applied successfully from backup: ${H.bright}${T.path}${H.reset}`),await E0`${Y} status`}catch(y){return M.error(`Failed to apply patch. Pardon aborted.
|
|
696
|
+
${u(y,{color:!0})}`,"clear"),1}return 0}let[F,O,j]=await Promise.all([k`${Y} diff --cached --name-only`.then((G)=>G.stdout.length>0),k`${Y} diff --name-only`.then((G)=>G.stdout.length>0),k`${Y} ls-files --others --exclude-standard`.then((G)=>G.stdout.length>0)]);if(!F&&!O&&!j)return C(`${H.cyan}No changes to clear. Working directory is clean.${H.reset}`),await E0`${Y} status`,0;let _=new Date().toISOString().replace(/[-:T.]/g,"").slice(0,14),L=`${W}_${X}_backup_${_}.patch`,A=Aq.join(U,L);await E0`${Y} add -A`;let I=await wZ(Y,["-c","color.ui=never","diff","--cached","--binary","--no-color","--no-ext-diff"],A,">");if(I!==0)return M.error("Failed to create backup patch. Clear aborted.","clear"),I||1;return C(`${H.cyan}Backup of all changes saved to: ${H.bright}${A}${H.reset}
|
|
697
|
+
${H.cyan}(\`git clear pardon\` to undo)${H.reset}`),await E0`${Y} reset --hard HEAD`,await E0`${Y} clean -fd`,await E0`${Y} status`,0}async function xM(Z,Y,Q){let q=l6(Z).filter((z)=>z.startsWith(Y)&&z.endsWith(Q));return(await Promise.all(q.map(async(z)=>{let W=Aq.join(Z,z),U=await f6(W);return{name:z,path:W,stats:U}}))).sort((z,W)=>W.stats.mtime.getTime()-z.stats.mtime.getTime())}var bM,vM;var q7=N(()=>{J6();z0();m0();R0();H0();w0();H0();v0();S0();e0();s0();bM={long:()=>{return t(Z0`
|
|
695
698
|
${H.bright+d("CLEAR",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
696
699
|
Safely backup and clear local working changes.
|
|
697
700
|
|
|
698
701
|
${H.bright+d("DESCRIPTION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
699
|
-
Creates a patch file containing the current unstaged, staged, and untracked changes, stores it in the OS temporary directory and then resets the working tree to a clean HEAD via \`${H.cyan}git reset --hard${H.reset}\` and \`${H.cyan}git clean -fd${H.reset}\`. The latest patch is kept so you can restore it with \`${H.cyan}${
|
|
702
|
+
Creates a patch file containing the current unstaged, staged, and untracked changes, stores it in the OS temporary directory and then resets the working tree to a clean HEAD via \`${H.cyan}git reset --hard${H.reset}\` and \`${H.cyan}git clean -fd${H.reset}\`. The latest patch is kept so you can restore it with \`${H.cyan}${R} clear pardon${H.reset}\`.
|
|
700
703
|
|
|
701
704
|
${H.bright+d("SUBCOMMANDS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
702
705
|
- list: Show available backup patch files for this project/branch.
|
|
@@ -705,47 +708,47 @@ ${H.cyan}(\`git clear pardon\` to undo)${H.reset}`),await T0`${Y} reset --hard H
|
|
|
705
708
|
${H.bright+d("SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
706
709
|
All files (tracked and untracked) are backed up before clearing. Pardon requires a clean working directory.
|
|
707
710
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Backup and clear local changes, with a restore (pardon) option.",usage:()=>{return t(Z0`
|
|
708
|
-
${H.cyan}${
|
|
711
|
+
${H.cyan}${R} clear ${H.dim}[list|pardon]${H.reset}
|
|
709
712
|
|
|
710
713
|
Examples:
|
|
711
|
-
${H.cyan}${
|
|
712
|
-
${H.cyan}${
|
|
713
|
-
${H.cyan}${
|
|
714
|
-
${u($,{color:!0})}`,"parallel"),1}}X.options={...X.options,frames:["███","██▇","██▆","▇▅▆","▆▅▆","▃▅▅","▄▅▄","▃▃▁","▂▂▂","▁ ▁"," ","░ ","▓░ ","█▓░","██▓"],interval:120,message:`Removing worktree '${Y}'...`};try{M.debug(`Executing git worktree remove for '${Y}'...`,"parallel");let B=await k`${Z} worktree remove ${J}`;X.stop(),
|
|
715
|
-
${u(B,{color:!0})}`,"parallel");let
|
|
714
|
+
${H.cyan}${R} clear ${H.reset+H.dim}# Create backup patch and clear working tree${H.reset}
|
|
715
|
+
${H.cyan}${R} clear list ${H.reset+H.dim}# Show recent backup patches${H.reset}
|
|
716
|
+
${H.cyan}${R} clear pardon ${H.reset+H.dim}# Restore the latest backup patch${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},vM={$root:["list","pardon"]}});import F0 from"path";async function vZ(Z){let Y=await yZ(Z);if(!Y)return[];return Zv(Y).map((Q)=>Q.alias).sort((Q,J)=>Q.localeCompare(J))}function Zv(Z){if(!l(Z.parallelRoot))return[];let Y=l6(Z.parallelRoot,{withFileTypes:!0}),Q=[];for(let J of Y){if(!J.isDirectory())continue;let q=F0.join(Z.parallelRoot,J.name),X=x8(q);if(!X)continue;Q.push({alias:X.alias||J.name,path:q})}return Q.sort((J,q)=>J.alias.localeCompare(q.alias))}function SZ(Z){if(!Z||Z.trim()==="")return!1;if(/[/\\ ]/.test(Z))return!1;if(/[<>:"|?*\x00-\x1f]/.test(Z))return!1;return!0}function x8(Z){let Y=F0.join(Z,".git-parallel.json");try{let Q=Z4(Y,"utf-8"),J=JSON.parse(Q);return M.debug(`Loaded parallel metadata from '${Y}': ${u(J)}`,"parallel"),J}catch{return null}}function P4(Z,Y){let Q=F0.join(Z,".git-parallel.json");$4(Q,JSON.stringify(Y,null,2),"utf-8")}function dM(Z,Y){Z.baseCommit=Y,Z.updatedAt=new Date().toISOString(),Z.joinCursor=void 0,Z.submoduleCursors=void 0}async function Hv(Z){let Q=`${Array.isArray(Z)?Z.join(" "):Z}|${F0.resolve(process.cwd())}`;if(E8&&E8.cacheKey===Q){if(Date.now()<=E8.expiresAt)return E8.value;E8=null}let J=await F6(Z),X=(await A0(Z,"--show-superproject-working-tree")).trim()||null;if(!X){let W={repoRoot:J,superprojectPath:null,submodulePath:null};return E8={cacheKey:Q,value:W,expiresAt:Date.now()+FQ},W}let z={repoRoot:J,superprojectPath:X,submodulePath:d0(F0.relative(X,J))};return E8={cacheKey:Q,value:z,expiresAt:Date.now()+FQ},z}async function DQ(Z){let Y=Array.isArray(Z)?Z[0]:Z,Q=await Hv(Z),J=Q.superprojectPath?[Y,"-C",Q.superprojectPath]:Z,q=await yZ(J);if(!q)throw Error("Not inside a git worktree.");return{gitExec:Y,repoRoot:Q.repoRoot,scopeGit$:J,parallelCtx:q,currentLabel:q.isParallelWorktree?q.alias||"origin":"origin",submodulePath:Q.submodulePath}}function Cq(Z,Y){return Y==="origin"?Z.originPath:F0.join(Z.parallelRoot,Y)}async function Wv(Z,Y,Q){if((await k`${Z} -C ${Y} status --porcelain=v1 --untracked-files=normal`).stdout.trim().length===0)return!0;if(!Q)return!1;return await J7({git$:[Z,"-C",Y],args:new k4(["clear"])})===0}async function Uv(Z,Y,Q){let J=["-c","protocol.file.allow=always","-C",Y,"submodule","update"];if(Q)J.push("--force");J.push("--init","--recursive"),await k`${Z} ${J}`}function Kv(Z,Y,Q,J,q){if(q)return q;return Z.joinCursor=Q||J,P4(Y,Z),!1}function SM(Z,Y,Q,J){if(!J)Z.joinCursor=Q,P4(Y,Z);return!0}function yM(Z,Y,Q,J,q){if(!q)Z.submoduleCursors??={},Z.submoduleCursors[Q]=J,P4(Y,Z);return!0}async function cM(Z,Y,Q,J){let[q,X]=await Promise.all([C8(Z,Y,"user.name"),C8(Z,Y,"user.email")]);if(q&&X)return[];let z=await lM(Z,Q,J),W=q||z.authorName,U=X||z.authorEmail;if(!W||!U)return[];return["-c",`user.name=${W}`,"-c",`user.email=${U}`]}async function yZ(Z){let Q=`${Array.isArray(Z)?Z.join(" "):Z}|${F0.resolve(process.cwd())}`;if(k8&&k8.cacheKey===Q){if(Date.now()<=k8.expiresAt)return k8.context;k8=null}try{let J=await F6(Z),q=F0.basename(J),X=Array.isArray(Z)?Z[0]:Z,z;try{z=(await G0(X,J,["--abbrev-ref","HEAD"])).trim()}catch{z="HEAD"}let W=F0.join(K6,"worktrees"),U=uX(W,J),K=q,B=z,$=null,V=J;if(U){let O=x8(J);if(O){if(O.project)q=O.project;if(O.branch)z=O.branch;if(O.originPath)V=F0.resolve(O.originPath);if(O.alias)$=O.alias}else $=F0.basename(J);K=O?.safeProject||K,B=O?.safeBranch||B}K=J2(K),B=J2(B);let D=F0.join(W,K,B),F={repoRoot:J,projectName:q,branchName:z,safeProjectName:K,safeBranchName:B,parallelRoot:D,originPath:V,alias:$,isParallelWorktree:U};return k8={cacheKey:Q,context:F,expiresAt:Date.now()+FQ},F}catch(J){return M.error(u(J,{color:!0}),"parallel"),k8={cacheKey:Q,context:null,expiresAt:Date.now()+FQ},null}}async function Rq(Z,Y){let Q=await yZ(Z);if(!Q)return 1;M.debug(`Removing worktree '${Y}'...`,"parallel");let J=F0.join(Q.parallelRoot,Y),q=Array.isArray(Z)?Z[0]:Z,X=P0({message:"Preparing worktree for removal..."});await CJ(Z);let z=await RJ(Z,J);if(!z&&!l(J))return X.stop(),M.error(`Worktree '${Y}' not found for branch '${Q.branchName}'.`,"parallel"),1;if(z?.locked){let B=z.lockReason?` (${z.lockReason})`:"";return X.stop(),M.error(`Worktree '${Y}' is locked ${B}. Unlock it before removing.`,"parallel"),1}if(!l(J)){if(M.debug(`Worktree path '${J}' is missing on disk. Attempting prune...`,"parallel"),await f5(Z),!await RJ(Z,J))return X.stop(),C(`${H.cyan}Removed worktree metadata:${H.reset} ${Y}`),M.debug(`Worktree '${Y}' pruned successfully.`,"parallel"),0;return M.error(`Worktree '${Y}' is missing on disk and could not be pruned.`,"parallel"),1}try{dX(J,eQ.F_OK|eQ.W_OK)}catch{return X.stop(),M.error(`Worktree '${Y}' is not accessible or writable. Cannot remove.`,"parallel"),1}M.debug(`Worktree path '${J}' is accessible.`,"parallel");let W=await CO(Z,J);if(M.debug(`Active operations for worktree '${Y}': ${W.length>0?W.join(", "):"none"}`,"parallel"),W.length>0)return X.stop(),M.error(`Worktree '${Y}' has in-progress operations (${W.join(", ")}). Complete or abort them before removing.`,"parallel"),1;if((await k`${q} -C ${J} status --porcelain=v1 --untracked-files=normal`).stdout.trim().length>0)return X.stop(),M.error(`Worktree '${Y}' has uncommitted changes. Join or clean it before removing.`,"parallel"),1;let K=await R4(Z,J);if(M.debug(`Submodules in worktree '${Y}': ${K.length>0?K.map((B)=>B.path).join(", "):"none"}`,"parallel"),K.length>0){let B=await PO(Z,J,K);if(B.length>0){let $=B.join(", ");return X.stop(),M.error(`Worktree '${Y}' has dirty submodules (${$}). Commit, stash, or clean them before removing.`,"parallel"),1}M.debug(`Deinitializing submodules for worktree '${Y}'...`,"parallel"),X.options.message="Deinitializing submodules...";try{M.debug(`Executing deinit for submodules with ${q} -C ${J}...`,"parallel"),await g5(Z,J)}catch($){if(X.stop(),(await k`${q} -C ${J} status --porcelain=v1 --untracked-files=normal`).stdout.trim().length===0)await f5(Z);return M.error(`Failed to deinit submodules for '${Y}'.
|
|
717
|
+
${u($,{color:!0})}`,"parallel"),1}}X.options={...X.options,frames:["███","██▇","██▆","▇▅▆","▆▅▆","▃▅▅","▄▅▄","▃▃▁","▂▂▂","▁ ▁"," ","░ ","▓░ ","█▓░","██▓"],interval:120,message:`Removing worktree '${Y}'...`};try{M.debug(`Executing git worktree remove for '${Y}'...`,"parallel");let B=await k`${Z} worktree remove ${J}`;X.stop(),C(B.stdout.trim());try{M.debug(`Removing directory '${J}' (if exists)...`,"parallel"),y6(J,{recursive:!0,force:!0})}catch{M.warn(`Failed to remove directory '${J}', ignoring.`,"parallel")}return C(`${H.cyan}Removed worktree:${H.reset} ${Y}`),0}catch(B){if(X.stop(),M.debug(`Error removing worktree '${Y}': ${u(B,{color:!0})}`,"parallel"),(B instanceof p6?`${B.stderr||""} ${B.message||""}`:"").toLowerCase().includes("working trees containing submodules cannot be moved or removed"))return M.error(`Worktree '${Y}' contains submodules that must be deinitialized before removal.`,"parallel"),1;if(B instanceof p6&&B.exitCode===255)M.error(`Folder '${J}' is currently in use or GDX does not have permission to remove it. Please close any applications using it and force remove. (git already removed the connection to the origin worktree, retry may not work)`,"parallel");else M.error(`Failed to remove worktree '${Y}'.
|
|
718
|
+
${u(B,{color:!0})}`,"parallel");let V=await y1("Do you want to force remove the worktree directory? (y/n): ");if(V.toLowerCase()==="y"||V.toLowerCase()==="yes")try{return y6(J,{recursive:!0,force:!0}),await f5(Z),C(`${H.cyan}Force removed worktree directory:${H.reset} ${Y}`),0}catch{return M.error(`Failed to force remove worktree directory '${Y}'.`,"parallel"),1}else return M.warn(`Aborted removing worktree '${Y}'.`,"parallel"),1}finally{X.stop()}}async function Bv(Z,Y){let Q;try{Q=await DQ(Z)}catch(v){return M.error(u(v,{color:!0}),"parallel"),1}let{parallelCtx:J,scopeGit$:q}=Q;if(J.isParallelWorktree)return M.error("Run `git parallel fork` from the original worktree, not from a fork.","parallel"),1;if(J.branchName==="HEAD")return M.error("Detached HEAD detected. Switch to a branch before forking.","parallel"),1;if(Y.length<1)return M.error("Missing worktree alias.","parallel"),W6(),1;let X=Y[0];if(!SZ(X))return M.error(`Alias '${X}' contains invalid characters or spaces.`,"parallel"),1;let z=Y.slice(1),W=!1,U=null,K=z.hasOption("-b"),B=z.hasOption("-B");if(K&&B)return M.error("Use either '-b' or '-B' to create a branch, not both.","parallel"),W6(),1;let $=null,V=null;if(K)$=z.popValue("-b"),V="-b";else if(B)$=z.popValue("-B"),V="-B";if((K||B)&&!$)return M.error("Missing branch name for '-b'/'-B'.","parallel"),W6(),1;if(z.hasOption("--no-init")){if(U=z.popValue("--no-init",0,!0),U===null)W=!0}let D=F0.join(J.parallelRoot,X),F=z.includes("--move")||z.includes("-mv"),O=z.includes("--mirror")||z.includes("-mr"),j=z.filter((v)=>!["--move","--mirror","-mv","-mr"].includes(v)),_=j.filter((v)=>v.startsWith("-"));if(_.length>0)return M.error(`Unknown option '${_[0]}'.`,"parallel"),W6(),1;let L=j.filter((v)=>!v.startsWith("-"));if(L.length>1)return M.error("Too many refs provided. Specify a single ref after the alias.","parallel"),W6(),1;let A=L[0]||null;if(l(D)&&l6(D).length>0)return M.error(`Worktree alias '${X}' already exists for this branch.`,"parallel"),1;let I=F0.join(J.repoRoot,".git","info","exclude");try{if(!Z4(I,"utf-8").includes(".git-parallel.json"))cX(I,`
|
|
716
719
|
.git-parallel.json
|
|
717
|
-
`)}catch{
|
|
718
|
-
`)}
|
|
719
|
-
`),!l(Q.parallelRoot))return
|
|
720
|
+
`)}catch{$4(I,`.git-parallel.json
|
|
721
|
+
`)}i0(J.parallelRoot,{recursive:!0});let G=Q.gitExec,P=(await G0(G,J.repoRoot,"HEAD")).trim();if(A){let v=(await A0(q,A)).trim();if(v)P=v}else if($){let v=(await A0(q,$)).trim();if(v)P=v}let S=(await k`${q} status --porcelain=v1 --untracked-files=normal`).stdout.trim().length>0,y=null,g=null;if(S&&(F||O)){let v=`git-parallel:${X}`;try{if(O){let J0=await k`${q} stash create --include-untracked`;await k`${q} stash store -m ${v} ${J0}`,g="mirrored"}else if(F)await k`${q} stash push --include-untracked -m ${v}`,g="moved";y="stash@{0}"}catch{return M.error("Failed to stash changes before forking.","parallel"),1}}try{let v=A||"HEAD";if($&&V)await E0`${q} worktree add ${V} ${$} ${D} ${v}`;else await E0`${q} worktree add --detach ${D} ${v}`}catch{if(M.error("Failed to create the parallel worktree.","parallel"),y)await k`${q} stash pop ${y}`,C(`${H.yellow}Stashed changes restored to the origin worktree.${H.reset}`);return 1}if(y)try{await k`${q} -C ${D} stash apply --index ${y}`,await k`${q} stash drop ${y}`}catch{return M.error("Failed to move local changes into the new worktree.","parallel"),M.warn(`Your changes remain stashed as '${y}'. Apply them manually when ready.`,"parallel"),M.info(`Worktree path: ${D}`,"parallel"),1}let x=!1;if($)x=!0;let c={alias:X,branch:J.branchName,safeBranch:J.safeBranchName,project:J.projectName,safeProject:J.safeProjectName,originPath:J.repoRoot,baseCommit:P,forkBranch:$||void 0,forkBranchTracked:x||void 0,createdAt:new Date().toISOString()};if(P4(D,c),C(`${H.cyan}Parallel worktree created:${H.reset} ${D}`),g)C(`${H.cyan}Pending changes ${g} to fork '${X}'.${H.reset}`);return await TM({git$:q,worktreePath:D,originPath:J.repoRoot,noInitAll:W,noInitList:U}),0}async function $v(Z,Y){let Q=await yZ(Z);if(!Q)return 1;let J=["-r","--recursive"],q=new Set,X=null;for(let U of Y){let K=U.toLowerCase();if(J.includes(K))q.add(K);else if(!X&&!U.startsWith("-"))X=U;else return M.error(`Unknown option '${U}'.`,"parallel"),W6(),1}let z=q.has("-r")||q.has("--recursive");if(z&&X)return M.error("Recursive remove does not accept an alias. Omit <alias> with -r.","parallel"),W6(),1;if(z&&Q.isParallelWorktree)return M.error("Run recursive remove from the origin worktree, not from a fork.","parallel"),1;if(z)return await Fv(Z,Q);if(!X)return M.error("Missing worktree alias to remove.","parallel"),W6(),1;if(!SZ(X))return M.error(`Alias '${X}' contains invalid characters or spaces.`,"parallel"),1;let W=F0.join(Q.parallelRoot,X);if(F0.resolve(Q.repoRoot)===F0.resolve(W))return M.error("Cannot remove the worktree you are currently in. Switch to origin first.","parallel"),1;return await Rq(Z,X)}async function Fv(Z,Y){if(!l(Y.parallelRoot))return C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let J=l6(Y.parallelRoot,{withFileTypes:!0}).filter((q)=>q.isDirectory()).sort((q,X)=>q.name.localeCompare(X.name));if(J.length===0)return C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;for(let q of J){let X=F0.join(Y.parallelRoot,q.name),W=x8(X)?.alias||q.name,U=await Rq(Z,W);if(U!==0)return U}return 0}async function fM(Z,Y,Q=!1){let J=await yZ(Z);if(!J)return 1;if(Y.length<1)return M.error("Missing target worktree alias or 'origin'.","parallel"),W6(),1;let q=Y[0],X;if(q.toLowerCase()==="origin"){if(!l(J.originPath))return M.error(`Origin worktree path not found at '${J.originPath}'.`,"parallel"),1;X=J.originPath}else{if(!SZ(q))return M.error(`Alias '${q}' contains invalid characters or spaces.`,"parallel"),1;if(X=F0.join(J.parallelRoot,q),!l(X))return M.error(`Worktree '${q}' not found for branch '${J.branchName}'.`,"parallel"),1;if(Y.includes("-c")||Y.includes("--copy"))return await T5(X),C(`${H.cyan}Worktree path copied to clipboard!${H.reset}`),0}if(Q)await f1(X);else await k5(X);return 0}async function Vv(Z,Y){let Q=await yZ(Z);if(!Q)return 1;let J=Array.isArray(Z)?Z[0]:Z,q=Y.includes("--short")||Y.includes("-s");C(`${H.cyan}Project:${H.reset} ${Q.projectName}`),C(`${H.cyan}Branch:${H.reset} ${Q.branchName}`),C(`${H.cyan}Origin:${H.reset} ${Q.originPath}`);let X=Q.isParallelWorktree?Q.alias:"origin";if(C(`${H.cyan}Current:${H.reset} ${X} ${X!=="origin"?H.dim+'(use "origin" alias to refer to main worktree)'+H.reset:""}
|
|
722
|
+
`),!l(Q.parallelRoot))return C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let W=l6(Q.parallelRoot,{withFileTypes:!0}).filter((K)=>K.isDirectory()).sort((K,B)=>K.name.localeCompare(B.name));if(W.length===0)return C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let U=!1;for(let K of W){let B=F0.join(Q.parallelRoot,K.name),$=x8(B);if(!$){M.debug(`Skipping worktree at '${B}' due to missing or invalid metadata.`,"parallel");continue}let V=$?.alias||K.name,D=$.baseCommit?.trim(),F=$.joinCursor?.trim();U=!0;let O=D&&await VQ(J,B,D,F)?F:D,j=P0({message:`Gatering information for ${V}...`}),_=(await G0(J,Q.originPath,"HEAD")).trim(),L=_?[_]:[],A=q?3:void 0,[I,G,P,T]=await Promise.all([k`${Z} -C ${B} status --porcelain=v1 --untracked-files=normal`.then((a)=>a.stdout.trim()),xv(Z,B,Q.originPath,O,_),O?EJ({gitExec:J,repoPath:B,range:`${O}..HEAD`,maxCount:A,formatTemplate:`${H.yellow}%h${H.reset} %s`,excludeRefs:L}):Promise.resolve({commits:[],totalCount:0,moreCount:0}),D?bv({git$:Z,gitExec:J,worktreePath:B,originPath:Q.originPath,baseCommit:D,maxCount:A,submoduleCursors:$.submoduleCursors},j):Promise.resolve({groups:[],totalCount:0})]),S=I.length>0,y=O?O.slice(0,7):"unknown",g=G.ahead,x=T.totalCount,c=g>0||x>0,v=x>0?`${g}+${x}`:`${g}`,J0="";if(c&&G.behind>0)J0=`${H.yellow}↑${v} ↓${G.behind}${H.reset}`;else if(c)J0=`${H.green}↑${v}${H.reset}`;else if(G.behind>0)J0=`${H.red}↓${G.behind}${H.reset}`;else J0=`${H.dim}up-to-date${H.reset}`;let h=Q.isParallelWorktree&&V===Q.alias?"●":"○",s=S?`${H.red}dirty${H.reset}`:`${H.green}clean${H.reset}`,m=$.forkBranch?`${H.dim}(branch:${$.forkBranch})${H.reset}`:"",n=B;if(q){let a=p8(B,50,"mid",-1);n=S6(a,`file://${d0(B)}`)}if(j.stop(),C(`${H.dim}${h}${H.reset} ${p8(V,18,"end")} ${b0(s,7,{align:"center"})} ${H.dim}${y}${H.reset} ${aQ(J0,11)} ${n}${m?` ${m}`:""}`),D){if(T.groups.length>0){let a=[{label:`. ${H.dim}[main]${H.reset}`,commits:P.commits,totalCount:P.totalCount,moreCount:P.moreCount},...T.groups];vv(a)}else if(P.totalCount>0)iM(" ",P.commits,P.moreCount)}}if(!U)C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`);return C(""),0}async function Z8(Z,Y,Q,J){try{await k`${Z} -C ${Y} stash pop ${J}`,C(`${H.yellow}Stashed changes restored to fork '${Q}' due to cherry-pick failure.${H.reset}`)}catch(q){C(`${H.yellow}Please restore stash '${J}' manually from fork '${Q}'. Automatic pop failed.${H.reset}`),M.debug(u(q,{color:!0}),"parallel")}}async function Ov(Z,Y,Q,J,q){if(C(`${H.yellow}Cherry-pick stopped at commit ${Q}. To resolve conflicts run:${H.reset}`),C(`${H.cyan}${` git -C "${Z}" cherry-pick ${Q}`}${H.reset}`),q.length>0){let z=q.map((W)=>W.includes(" ")?`"${W}"`:W).join(" ");C(`${H.cyan}${` git -C "${Z}" add -- ${z}`}${H.reset}`)}else C(`${H.cyan}${` git -C "${Z}" add -A`}${H.reset}`);if(C(`${H.cyan}${` git -C "${Z}" cherry-pick --continue`}${H.reset}`),C(`${H.cyan}${` ${R} parallel join ${Y}`}${H.reset}`),J)C(`${H.dim}Stashed changes from fork '${Y}' can be applied after join.${H.reset}`)}function Dv(Z){if(!Z)return{action:"abort",key:"q"};return Z}async function lM(Z,Y,Q){let J=["%H","%an","%ae","%ad","%B"].join("%n"),X=(await k`${Z} -C ${Y} show -s --date=iso --format=${J} ${Q}`).stdout.split(`
|
|
720
723
|
`),[z,W,U,K,...B]=X,$=B.join(`
|
|
721
|
-
`).trimEnd();return{hash:z?.trim()||Q,authorName:W?.trim()||"unknown",authorEmail:U?.trim()||"unknown",authorDate:K?.trim()||"unknown",message:$.length>0?$:"(no message)"}}async function
|
|
724
|
+
`).trimEnd();return{hash:z?.trim()||Q,authorName:W?.trim()||"unknown",authorEmail:U?.trim()||"unknown",authorDate:K?.trim()||"unknown",message:$.length>0?$:"(no message)"}}async function Mv(Z){let{gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q,spinner:X}=Z;if(X)X.options.message="Emulating cherry-pick...";let z=(await k`${Y} -C ${J} show --format= --no-color ${q}`).stdout;if(z.trim().length===0)return{diff:"",stat:"",isEmpty:!0,hasConflicts:!1,appliedPatch:!0};let W=F0.join(K6,"parallel-join-preview");i0(W,{recursive:!0});let U=F7(F0.join(W,"index-")),K=F0.join(U,"index"),B={...process.env,GIT_INDEX_FILE:K};try{await k({env:B})`${Y} -C ${Q} read-tree HEAD`;let $=!1,V,D,F;try{await k({env:B,input:z})`${Y} -C ${Q} apply --cached --3way --whitespace=nowarn`,$=!0}catch(P){V=X7(P)}if(!$)if(D=await Iv({gitExec:Y,originRepoPath:Q,patch:z,env:B}),D.applies)try{await k({env:B,input:z})`${Y} -C ${Q} apply --cached --whitespace=nowarn`,$=!0,V=void 0}catch(P){V=$Q(V,X7(P))}else try{await k({env:B})`${Y} -C ${Q} read-tree HEAD`,await k({env:B,input:z})`${Y} -C ${Q} apply --cached --whitespace=nowarn`,$=!0,V=void 0,D={applies:!0}}catch(P){V=$Q(V,$Q(D.conflictInfo,X7(P)))}let O=await Nv(Y,Q,B),j=$Q(O,V);if(!j&&!$&&D&&!D.applies){let P={...process.env,GIT_INDEX_FILE:F0.join(U,"index-conflict")};if(F=await Lv({gitExec:Y,originRepoPath:Q,patch:z,env:P}),F&&F.files.length>0){let T=nM(z).length;j=F.files.length<T?F:void 0}}let _=!1;if(!j?.files?.length&&!$){if(_=await jv({gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q}),_&&!j)if(F?.files?.length)j=F;else{let P=wv(z);if(P?.files?.length)j=P}}else if(j?.files?.length)_=!0;let L=!1;if(!j?.files?.length&&!$&&!_)L=await _v({gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q});let A=Boolean(j?.files?.length)||_||L;if(!$){let P=(await k`${Y} -C ${J} show --format= --no-color ${q}`).stdout,T=(await k`${Y} -C ${J} show --stat --format= --no-color ${q}`).stdout,S=A?"Patch does not apply cleanly to origin HEAD. Preview shows the original commit diff.":void 0;return{diff:P,stat:T,isEmpty:P.trim().length===0,hasConflicts:A,warning:S,appliedPatch:!1,conflictInfo:j}}let I=(await k({env:B})`${Y} -C ${Q} diff --cached --no-color`).stdout,G=(await k({env:B})`${Y} -C ${Q} diff --cached --stat --no-color`).stdout;return{diff:I,stat:G,isEmpty:I.trim().length===0,hasConflicts:A,appliedPatch:$,conflictInfo:j}}finally{y6(U,{recursive:!0,force:!0})}}async function jv(Z){let{gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q}=Z;try{let X=(await G0(Y,J,`${q}^`)).trim();if(!X)return!1;let z=(await G0(Y,Q,"HEAD")).trim();if(!z)return!1;let W=(await k`${Y} -C ${Q} merge-tree ${X} ${z} ${q}`).stdout;return/^(<{7}| <{7})/m.test(W)}catch{return!1}}async function _v(Z){let{gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q}=Z;try{let X=(await G0(Y,J,`${q}^`)).trim();if(!X)return!1;let z=(await G0(Y,Q,"HEAD")).trim();if(!z)return!1;let W=(await k`${Y} -C ${J} show --name-only --format= ${q}`).stdout.trim();if(!W)return!1;let U=new Set(W.split(`
|
|
722
725
|
`).map(($)=>$.trim()).filter(($)=>$.length>0)),K=(await k`${Y} -C ${Q} diff --name-only ${X} ${z}`).stdout.trim();if(!K)return!1;return K.split(`
|
|
723
|
-
`).map(($)=>$.trim()).filter(($)=>$.length>0).some(($)=>U.has($))}catch{return!1}}async function
|
|
724
|
-
`).map((z)=>z.trim()).filter((z)=>z.length>0);if(q.length===0)return;let X;try{let z=(await k({env:Q})`${Z} -C ${Y} diff --cached --cc --no-color`).stdout;X=
|
|
726
|
+
`).map(($)=>$.trim()).filter(($)=>$.length>0).some(($)=>U.has($))}catch{return!1}}async function Nv(Z,Y,Q){let J="";try{J=(await k({env:Q})`${Z} -C ${Y} diff --cached --name-only --diff-filter=U`).stdout.trim()}catch{return}let q=J.split(`
|
|
727
|
+
`).map((z)=>z.trim()).filter((z)=>z.length>0);if(q.length===0)return;let X;try{let z=(await k({env:Q})`${Z} -C ${Y} diff --cached --cc --no-color`).stdout;X=Av(z)}catch{X=void 0}if(X){if(!q.every((W)=>typeof X?.[W]==="number"))X=void 0}return{files:q,counts:X}}async function Iv(Z){let{gitExec:Y,originRepoPath:Q,patch:J,env:q}=Z;try{return await k({env:q,input:J})`${Y} -C ${Q} apply --check --whitespace=nowarn`,{applies:!0}}catch(X){return{applies:!1,conflictInfo:X7(X)}}}async function Lv(Z){let{gitExec:Y,originRepoPath:Q,patch:J,env:q}=Z,X=nM(J);if(X.length===0)return;let z=[],W={};for(let K of X)try{await k({env:q})`${Y} -C ${Q} read-tree HEAD`,await k({env:q,input:K.patch})`${Y} -C ${Q} apply --cached --3way --whitespace=nowarn`}catch(B){if(!z.includes(K.file))z.push(K.file);let V=X7(B)?.counts?.[K.file];if(typeof V==="number")W[K.file]=V}if(z.length===0)return;let U=z.every((K)=>typeof W[K]==="number");return{files:z,counts:U?W:void 0}}function nM(Z){let Y=[],Q=null,J=Z.split(`
|
|
725
728
|
`);for(let q of J){if(q.startsWith("diff --git ")){if(Q)Y.push(Q);Q={file:q.match(/diff --git a\/(.+?) b\/(.+)/)?.[2]?.trim()||"unknown",lines:[q]};continue}if(q.startsWith("diff --cc ")||q.startsWith("diff --combined ")){if(Q)Y.push(Q);Q={file:q.replace(/^diff --(?:cc|combined)\s+/,"").trim()||"unknown",lines:[q]};continue}if(Q)Q.lines.push(q)}if(Q)Y.push(Q);return Y.filter((q)=>q.lines.length>0).map((q)=>({file:q.file,patch:q.lines.join(`
|
|
726
|
-
`)}))}function
|
|
729
|
+
`)}))}function X7(Z){let Y=[];if(typeof Z==="string")Y.push(Z);else if(Z instanceof p6)Y.push(Z.stderr,Z.stdout,Z.message,Z.shortMessage);else if(Z&&typeof Z==="object"){let W=Z;Y.push(W.stderr,W.stdout,W.message)}let Q=Y.map((W)=>sM(W)).filter(Boolean).join(`
|
|
727
730
|
`);if(!Q)return;let J=[],q={},X=Q.split(`
|
|
728
|
-
`);for(let W of X){let U=W.match(/patch failed:\s+(.+?):\d+/i);if(U){let B=U[1].trim();if(!J.includes(B))J.push(B);q[B]=(q[B]||0)+1;continue}let K=W.match(/error:\s+(.+?):\s+patch does not apply/i);if(K){let B=K[1].trim();if(!J.includes(B))J.push(B)}}if(J.length===0)return;let z=J.every((W)=>typeof q[W]==="number"&&q[W]>0);return{files:J,counts:z?q:void 0}}function
|
|
729
|
-
`);for(let J of Q){if(J.startsWith("diff --git ")){let q=J.match(/diff --git a\/(.+?) b\/(.+)/);if(q){let X=q[2].trim();if(X&&!Y.includes(X))Y.push(X)}continue}if(J.startsWith("diff --cc ")){let q=J.slice(10).trim();if(q&&!Y.includes(q))Y.push(q);continue}if(J.startsWith("diff --combined ")){let q=J.slice(16).trim();if(q&&!Y.includes(q))Y.push(q)}}if(Y.length===0)return;return{files:Y}}function
|
|
730
|
-
`);for(let q of J){if(q.startsWith("diff --cc ")){Q=q.slice(10).trim();continue}if(q.startsWith("diff --combined ")){Q=q.slice(16).trim();continue}if(q.startsWith("@@@")&&Q)Y[Q]=(Y[Q]||0)+1}return Y}function
|
|
731
|
-
`).map(($)=>` ${$}`));let K=Q.trimEnd().replace(/(\W)(\++)/g,`$1${H.green}$2${
|
|
732
|
-
`).map(($)=>` ${$}`));if(J)U.push(""),U.push(`Warning: ${H.yellow+H.bright}${J}${H.normal+
|
|
731
|
+
`);for(let W of X){let U=W.match(/patch failed:\s+(.+?):\d+/i);if(U){let B=U[1].trim();if(!J.includes(B))J.push(B);q[B]=(q[B]||0)+1;continue}let K=W.match(/error:\s+(.+?):\s+patch does not apply/i);if(K){let B=K[1].trim();if(!J.includes(B))J.push(B)}}if(J.length===0)return;let z=J.every((W)=>typeof q[W]==="number"&&q[W]>0);return{files:J,counts:z?q:void 0}}function $Q(Z,Y){if(!Z&&!Y)return;if(!Z)return Y;if(!Y)return Z;let Q=Z.files.length>0?Z.files:Y.files;if(Q.length===0)return Y.files.length>0?Y:void 0;let J=hM(Z,Q),q=hM(Y,Q);return{files:Q,counts:J??q}}function wv(Z){let Y=[],Q=Z.split(`
|
|
732
|
+
`);for(let J of Q){if(J.startsWith("diff --git ")){let q=J.match(/diff --git a\/(.+?) b\/(.+)/);if(q){let X=q[2].trim();if(X&&!Y.includes(X))Y.push(X)}continue}if(J.startsWith("diff --cc ")){let q=J.slice(10).trim();if(q&&!Y.includes(q))Y.push(q);continue}if(J.startsWith("diff --combined ")){let q=J.slice(16).trim();if(q&&!Y.includes(q))Y.push(q)}}if(Y.length===0)return;return{files:Y}}function hM(Z,Y){if(!Z?.counts)return;return Y.every((J)=>typeof Z.counts?.[J]==="number")?Z.counts:void 0}function Av(Z){let Y={},Q=null,J=Z.split(`
|
|
733
|
+
`);for(let q of J){if(q.startsWith("diff --cc ")){Q=q.slice(10).trim();continue}if(q.startsWith("diff --combined ")){Q=q.slice(16).trim();continue}if(q.startsWith("@@@")&&Q)Y[Q]=(Y[Q]||0)+1}return Y}function Gv(Z){let{commitInfo:Y,stat:Q,warning:J,isEmpty:q,isSubmodule:X,submodulePath:z,conflictInfo:W}=Z,U=[];if(U.push(`Commit: ${Y.hash}`),U.push(`Author: ${Y.authorName} <${Y.authorEmail}>`),U.push(`Date: ${Y.authorDate}`),X&&z)U.push(`Scope: submodule ${z}`);U.push(""),U.push(...Y.message.split(`
|
|
734
|
+
`).map(($)=>` ${$}`));let K=Q.trimEnd().replace(/(\W)(\++)/g,`$1${H.green}$2${T0(X0.overlay0)}`).replace(/(-+)/g,`${H.red}$1${T0(X0.overlay0)}`);if(K.length>0)U.push(""),U.push(...K.split(`
|
|
735
|
+
`).map(($)=>` ${$}`));if(J)U.push(""),U.push(`Warning: ${H.yellow+H.bright}${J}${H.normal+T0(X0.overlay0)}`);let B=Rv(W);if(B.length>0)U.push(""),U.push(...B);if(q)U.push(""),U.push(` Note: ${H.blue}No changes against origin. This commit will be skipped unless applied.${H.normal+T0(X0.overlay0)}`);return U}function Cv(Z){let{isEmpty:Y,hasConflicts:Q}=Z;if(Y)return H.bgWhite+H.black+H.bright+" EMPTY "+H.reset+T0(X0.overlay0)+l0(X0.base);if(Q)return H.bgRed+H.white+H.bright+" CONFLICT "+H.reset+T0(X0.overlay0)+l0(X0.base);return H.green+H.white+H.bright+" CLEAN "+H.reset+T0(X0.overlay0)+l0(X0.base)}function Rv(Z){if(!Z||Z.files.length===0)return[];let Y=["Conflicts:"],{files:Q,counts:J}=Z;if(J&&Q.every((X)=>typeof J?.[X]==="number")&&J){let X=Math.max(...Q.map((z)=>z.length));for(let z of Q){let W=J[z]??0,U=W===1?"conflict":"conflicts";Y.push(` ${aQ(z,X)} | ${W} ${U}`)}return Y}for(let X of Q)Y.push(` ${X}`);return Y}async function gM(Z){let{gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q,isSubmodule:X,submodulePath:z}=Z,W=P0({message:"Preparing cherry-pick preview..."}),U=await lM(Y,J,q),K=await Mv({gitExec:Y,originRepoPath:Q,forkRepoPath:J,commit:q,spinner:W});W.stop();let B=Gv({commitInfo:U,stat:K.stat,warning:K.warning,isEmpty:K.isEmpty,isSubmodule:X,submodulePath:z,conflictInfo:K.conflictInfo}),$=K.isEmpty?[{key:"s",label:"skip",action:"skip"},{key:"u",label:"undo",action:"undo"}]:[{key:"a",label:"apply",action:"apply"},{key:"s",label:"skip",action:"skip"},{key:"u",label:"undo",action:"undo"}],V=Cv({isEmpty:K.isEmpty,hasConflicts:K.hasConflicts}),D=K.diff.trimEnd(),F=D.length>0?[...B,"",D].join(`
|
|
733
736
|
`):B.join(`
|
|
734
|
-
`),
|
|
735
|
-
`).map((r)=>r.trim()).filter((r)=>r.length>0):[];if(a.length>0)for(let r of a)try{if((await k`${Z} -C ${Y} ls-remote --heads ${r} ${m}`).stdout.trim().length>0)return M.error(`Fork branch '${m}' exists on remote '${r}'. Use standard git commands to merge it.`,"parallel"),1}catch{}}}let B=
|
|
736
|
-
`).map((a)=>a.trim()).filter((a)=>a):[]}catch(m){if(T)await k`${Z} -C ${Y} stash pop ${T}`;return M.error("Unable to enumerate commits to join.","parallel"),M.debug(u(m,{color:!0}),"parallel"),1}let g=[],
|
|
737
|
-
`).map((
|
|
738
|
-
`)[0]?.split(":")[0]||T;await k`${Z} -C ${K} stash apply --index ${a}`,await k`${Z} -C ${Y} stash drop ${a}`}catch(m){M.error("Failed to apply uncommitted changes to the origin worktree.","parallel"),M.debug(u(m,{color:!0}),"parallel");try{await k`${Z} -C ${Y} stash pop ${T}`,R(`${H.yellow}Stashed changes restored to fork '${Q}' for safety.${H.reset}`)}catch(n){R(`${H.yellow}Please restore stash '${T}' manually from fork '${Q}'. Automatic pop failed.${H.reset}`),M.debug(u(n,{color:!0}),"parallel")}return 1}}if(g.length>0||c.length>0){if(R(`${H.cyan}Cherry-picked ${g.length} commit(s) into origin.${H.reset}`),c.length>0)R(`${H.cyan}Cherry-picked ${c.length} submodule commit(s) into origin.${H.reset}`)}else R(`${H.cyan}No new commits to cherry-pick. Origin was already up to date.${H.reset}`);if(!q&&!J0&&(g.length>0||c.length>0)){if(M.debug(`Removing fork worktree '${Q}' after join...`,"parallel"),await Dq(Z,Q)!==0)return M.warn(`Failed to remove fork '${Q}' after joining. Please remove it manually later.`),1;R(`${H.cyan}Fork '${Q}' merged and removed successfully.${H.reset}`)}else{if(!J0)try{let m=(await G0($,K,"HEAD")).trim();if(m)CM(U,m)}catch{}else U.updatedAt=new Date().toISOString();k8(Y,U),R(`${H.cyan}Fork '${Q}' merged into origin. Worktree kept at:${H.reset} ${Y}`)}return 0}async function eb(Z,Y,Q){if(!l(Y.parallelRoot))return R(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let q=d6(Y.parallelRoot,{withFileTypes:!0}).filter((z)=>z.isDirectory()).sort((z,W)=>z.name.localeCompare(W.name));if(q.length===0)return R(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let X=!1;for(let z of q){let W=F0.join(Y.parallelRoot,z.name),U=k4(W);if(!U)continue;let K=U.alias||z.name;X=!0;let B=await EM(Z,W,K,{keep:Q,bringAll:!1,interactive:!1});if(B!==0)return B}if(!X)R(`${H.yellow}No forked worktrees found for this branch.${H.reset}`);return 0}async function Zv(Z,Y){let Q;try{Q=await BQ(Z)}catch(V){return M.error(u(V,{color:!0}),"parallel"),1}let{parallelCtx:J,scopeGit$:q}=Q,X=["--keep","--all","--interactive","-i","-r","--recursive"],z=new Set,W=null;for(let V of Y){let D=V.toLowerCase();if(X.includes(D))z.add(D);else if(!W&&!V.startsWith("-"))W=V;else return M.error(`Unknown option '${V}'.`,"parallel"),H6(),1}let U=z.has("--keep"),K=z.has("--all"),B=z.has("--interactive")||z.has("-i"),$=z.has("-r")||z.has("--recursive");if($&&K)return M.error("Recursive join does not support --all. Join forks individually.","parallel"),H6(),1;if($&&B)return M.error("Recursive join does not support --interactive. Join forks individually.","parallel"),H6(),1;if($&&W)return M.error("Recursive join does not accept an alias. Omit <alias> with -r.","parallel"),H6(),1;if($&&J.isParallelWorktree)return M.error("Run recursive join from the origin worktree, not from a fork.","parallel"),1;if($)return await eb(q,J,U);let F,O;if(W){if(J.isParallelWorktree&&J.alias===W)return M.error("Cannot join the fork you are currently in. Switch to origin or another fork first.","parallel"),1;if(!bZ(W))return M.error(`Alias '${W}' contains invalid characters or spaces.`,"parallel"),1;if(F=F0.join(J.parallelRoot,W),O=W,!l(F))return M.error(`Worktree '${W}' not found for branch '${J.branchName}'.`,"parallel"),1}else{if(Q.currentLabel==="origin")return M.error("Either run join from inside a forked worktree, or specify which fork to join.","parallel"),M.info("Usage: git parallel join [<alias>] [--keep|--all|--interactive] | git parallel join -r [--keep]","parallel"),1;O=Q.currentLabel,F=Oq(J,O)}return await EM(q,F,O,{keep:U,bringAll:K,interactive:B})}async function Yv(Z,Y){let Q;try{Q=await BQ(Z)}catch(D){return M.error(u(D,{color:!0}),"parallel"),1}let J=["--hard","-h"],q=new Set,X=null;for(let D of Y){let _=D.toLowerCase();if(J.includes(_))q.add(_);else if(!X&&!D.startsWith("-"))X=D;else return M.error(`Unknown option '${D}'.`,"parallel"),H6(),1}let z=q.has("--hard")||q.has("-h"),W=Q.parallelCtx,U,K;if(X){if(X==="origin")return M.error("Origin is already the synchronization source.","parallel"),1;if(!bZ(X))return M.error(`Alias '${X}' contains invalid characters or spaces.`,"parallel"),1;if(U=X,K=Oq(W,U),!l(K))return M.error(`Worktree '${U}' not found for branch '${W.branchName}'.`,"parallel"),1}else{if(Q.currentLabel==="origin")return M.error("Run sync from inside a forked worktree, or specify which fork to sync.","parallel"),1;U=Q.currentLabel,K=W.repoRoot}let B=k4(K);if(!B)return M.error(`Missing metadata for worktree '${U}'.`,"parallel"),1;let $=F0.resolve(B.originPath);if(!l($))return M.error(`Origin worktree path not found at '${$}'.`,"parallel"),1;if(!await bb(Q.gitExec,K,z))return M.error(`Fork '${U}' has uncommitted changes. Re-run with --hard to clear them first.`,"parallel"),1;let O=(await G0(Q.gitExec,$,"HEAD")).trim();if(!O)return M.error("Unable to resolve origin HEAD for sync.","parallel"),1;try{if(B.forkBranch&&B.forkBranchTracked){let D=["-C",K,"merge","--no-edit","-X","theirs",O],_=await k`${Q.gitExec} ${D}`;P6(_)}else{let D=await k`${Q.gitExec} -C ${K} reset --hard ${O}`;P6(D)}}catch(D){P6(T4(D));try{await k`${Q.gitExec} -C ${K} merge --abort`}catch{}return M.error(`Failed to sync fork '${U}' with origin.`,"parallel"),M.debug(u(D,{color:!0}),"parallel"),1}try{await vb(Q.gitExec,K,z)}catch(D){return M.error(`Failed to refresh submodules for '${U}' after sync.`,"parallel"),M.debug(u(D,{color:!0}),"parallel"),1}let V=(await G0(Q.gitExec,K,"HEAD")).trim()||O;return CM(B,V),k8(K,B),R(`${H.cyan}Fork '${U}' synchronized with origin.${H.reset}`),0}async function Qv(Z,Y){let Q;try{Q=await BQ(Z)}catch(B){return M.error(u(B,{color:!0}),"parallel"),1}if(Y.length<2)return M.error("Usage: gdx parallel pick <alias|origin> <commit> [commit...]","parallel"),H6(),1;let J=Y[0],q=Y.slice(1).filter((B)=>B.length>0);if(J!=="origin"&&!bZ(J))return M.error(`Alias '${J}' contains invalid characters or spaces.`,"parallel"),1;let X=Oq(Q.parallelCtx,J),z=Q.parallelCtx.repoRoot;if(!l(X))return M.error(`Worktree '${J}' not found for branch '${Q.parallelCtx.branchName}'.`,"parallel"),1;if(F0.resolve(X)===F0.resolve(z))return M.error("Source and destination worktrees are the same.","parallel"),1;let W=Q.submodulePath?F0.resolve(X,Q.submodulePath):X,U=Q.repoRoot;if(!l(W))return M.error(`Submodule '${Q.submodulePath}' is not available in worktree '${J}'.`,"parallel"),1;let K=[];for(let B of q)try{let $=(await G0(Q.gitExec,W,["-q","--verify",`${B}^{commit}`])).trim();if(!$)return M.error(`Commit '${B}' was not found in '${J}'.`,"parallel"),1;K.push($)}catch{return M.error(`Commit '${B}' was not found in '${J}'.`,"parallel"),1}if(Q.submodulePath)try{await k`${Q.gitExec} -c protocol.file.allow=always -C ${U} fetch ${W} ${K}`}catch(B){return M.error(`Failed to fetch commits from submodule '${Q.submodulePath}' in '${J}'.`,"parallel"),M.debug(u(B,{color:!0}),"parallel"),1}for(let B of K)try{let $=await RM(Q.gitExec,U,W,B),F=await k`${Q.gitExec} ${$} ${g5()} -C ${U} cherry-pick ${B}`;P6(F)}catch($){if(await Vq(Q.gitExec,U,$,"parallel pick"))continue;return P6(T4($)),M.error(`Failed to cherry-pick commit ${B} from '${J}'.`,"parallel"),M.debug(u($,{color:!0}),"parallel"),1}return R(`${H.cyan}Cherry-picked ${K.length} commit(s) from '${J}' into ${Q.currentLabel}.${H.reset}`),0}async function AM(Z,Y){let{originRepoPath:Q,commit:J,contextLabel:q,forkAlias:X,stashRef:z,sourceRepoPath:W}=Y;M.debug(`Cherry-picking commit ${J} into ${q}...`,"parallel");let U=g5(),K=Array.isArray(Z)?Z[0]:Z,B=W?await RM(K,Q,W,J):[];try{let $=await k`${K} ${B} ${U} -C ${Q} cherry-pick ${J}`;return P6($),"applied"}catch($){if(await Vq(Z,Q,$,q))return"empty";if(P6(T4($)),!await h1(Z,Q))throw M.error(`Cherry-pick failed while applying commit ${J}.`,"parallel"),M.debug(u($,{color:!0}),"parallel"),$;if(!J3()){let V=await h5(Z,Q);throw await mb(Q,X,J,z,V),M.debug(u($,{color:!0}),"parallel"),$}R(`${H.yellow}Cherry-pick paused due to conflicts while applying commit ${J}.${H.reset}`),R(`${H.dim}Resolve conflicts in ${q}, then choose to continue or abort.${H.reset}`);while(!0)switch((await b1("Type c to continue, a to abort, s to skip (c|a|s): ")).toLowerCase()){case"s":case"skip":try{return await k`${K} ${B} ${U} -C ${Q} cherry-pick --skip`,M.debug(`Skipped commit ${J} for ${q}.`,"parallel"),"skipped"}catch(D){if(!await h1(Z,Q))return"skipped";P6(T4(D)),M.error(`Failed to skip commit ${J} for ${q}.`,"parallel"),M.debug(u(D,{color:!0}),"parallel");continue}case"c":case"continue":case"y":case"yes":try{await AO(Z,Q);let D=await k`${K} ${B} ${U} -C ${Q} cherry-pick --continue`;return P6(D),"applied"}catch(D){if(await Vq(Z,Q,D,q))return"empty";if(P6(T4(D)),await h1(Z,Q)){R(`${H.yellow}Cherry-pick still has conflicts. Resolve them and try again.${H.reset}`),M.debug(u(D,{color:!0}),"parallel");continue}throw M.error("Cherry-pick no longer in progress. You may need to resolve the state manually before retrying.","parallel"),M.debug(u(D,{color:!0}),"parallel"),D}case"a":case"abort":case"n":case"no":try{let D=await k`${K} ${B} ${U} -C ${Q} cherry-pick --abort`;P6(D)}catch(D){throw P6(T4(D)),M.error("Failed to abort cherry-pick.","parallel"),M.debug(u(D,{color:!0}),"parallel"),D}throw M.error(`Cherry-pick aborted while applying commit ${J}.`,"parallel"),$}}}async function Vq(Z,Y,Q,J){let q=await h1(Z,Y);if(!(wO(Q)||q&&await GO(Z,Y)))return!1;if(!q)return M.debug(`Empty cherry-pick ignored for ${J}.`,"parallel"),!0;try{return await k`${Z} ${g5()} -C ${Y} cherry-pick --skip`,M.debug(`Skipped empty cherry-pick for ${J}.`,"parallel"),!0}catch(z){return P6(T4(z)),M.error(`Failed to skip empty cherry-pick for ${J}.`,"parallel"),M.debug(u(z,{color:!0}),"parallel"),!1}}async function Jv(Z,Y,Q,J,q){let X=Array.isArray(Z)?Z[0]:Z;try{let[z,W]=await Promise.all([G0(X,Y,"HEAD").then(($)=>$.trim()),q!==void 0?Promise.resolve(q.trim()):G0(X,Q,"HEAD").then(($)=>$.trim())]),U=W;if(z===U)return{ahead:0,behind:0};let K=0,B=0;return await Promise.all([(async()=>{try{let F=(await k`${X} -C ${Y} rev-list --count ${J||U}..${z}`).stdout.trim();K=parseInt(F,10)||0}catch{K=0}})(),(async()=>{try{let $=(await k`${X} -C ${Y} rev-list --count ${z}..${U}`).stdout.trim();B=parseInt($,10)||0}catch{B=0}})()]),{ahead:K,behind:B}}catch{return{ahead:0,behind:0}}}async function qv(Z,Y){let{git$:Q,gitExec:J,worktreePath:q,originPath:X,baseCommit:z,maxCount:W,submoduleCursors:U}=Z,K=await C8(Q,q);if(K.length===0)return{groups:[],totalCount:0};let B=[],$=0;for(let F of K){let O=F0.resolve(q,F.path),V=F0.resolve(X,F.path),D=F0.join(O,".git"),_=F0.join(V,".git");if(!l(O)||!l(D))continue;if(Y)Y.options.message=`Collecting submodule '${F.path}'...`;let N=await w3(J,q,z,F.path);if(!N)continue;let w=N,G=U?.[F.path];if(G){if(await UQ(J,O,N,G))w=G}let I=`${w}..HEAD`,A=l(V)&&l(_)?(await G0(J,V,"HEAD")).trim():"",x=await L3({gitExec:J,repoPath:O,range:I,maxCount:W,formatTemplate:`${H.yellow}%h${H.reset} %s`,excludeRefs:A?[A]:void 0});if(x.totalCount===0)continue;let T=`${F.path} ${H.dim}[submodule]${H.reset}`;B.push({label:T,commits:x.commits,totalCount:x.totalCount,moreCount:x.moreCount}),$+=x.totalCount}return{groups:B,totalCount:$}}function xM(Z,Y,Q){let J=[...Y];if(Q>0)J.push(`${H.dim}+${Q} more${H.reset}`);if(J.length===0)return;for(let q=0;q<J.length;q++){let z=q===J.length-1?"└─ ":"├─ ";R(`${H.dim}${Z}${z}${H.reset}${J[q]}`)}}function Xv(Z){if(Z.length===0)return;for(let Y=0;Y<Z.length;Y++){let Q=Z[Y],J=Y===Z.length-1,q=J?" └─ ":" ├─ ";R(`${H.dim}${q}${H.reset}${Q.label}`),xM(J?" ":" │ ",Q.commits,Q.moreCount)}}function PM(Z){if(!Z)return"";if(typeof Z==="string")return Z;if(Z instanceof Uint8Array)return new TextDecoder().decode(Z);return String(Z)}function GM(Z){let Y=PM(Z);if(!Y)return;R(Y,Y.endsWith(`
|
|
737
|
+
`),O=await xZ(F,{statusText:V,actions:$});return Dv(O)}async function mM(Z,Y){let Q=Array.isArray(Z)?Z[0]:Z;if(!(await G0(Q,Y,["-q","--verify","HEAD~1"])).trim())return M.error("No commit available to undo.","parallel"),!1;try{return await k`${Q} -C ${Y} reset --hard HEAD~1`,C(`${H.cyan}Undid last cherry-picked commit in ${Y}.${H.reset}`),!0}catch(q){return M.error("Failed to undo last cherry-picked commit.","parallel"),M.debug(u(q,{color:!0}),"parallel"),!1}}async function VQ(Z,Y,Q,J){if(!J)return!1;let q=(await G0(Z,Y,"HEAD")).trim();if(!q)return!1;try{return await k`${Z} -C ${Y} merge-base --is-ancestor ${Q} ${J}`,await k`${Z} -C ${Y} merge-base --is-ancestor ${J} ${q}`,!0}catch{return!1}}async function oM(Z,Y,Q,J){M.debug(`Joining worktree '${Q}'...`,"parallel");let{keep:q,bringAll:X,interactive:z}=J,W=z&&KJ();if(z&&!W)M.warn("Interactive join requires a TTY. Proceeding without --interactive.","parallel");let U=x8(Y);if(!U)return M.error(`Missing metadata for worktree '${Q}'. Unable to join automatically.`,"parallel"),1;let K=F0.resolve(U.originPath);if(!l(K))return M.error(`Original worktree path not found. Expected at '${U.originPath}'.`,"parallel"),1;if(U.forkBranch&&U.forkBranchTracked){let m=U.forkBranch.trim();if(m){let n=(await k`${Z} -C ${Y} remote`).stdout.trim(),a=n?n.split(`
|
|
738
|
+
`).map((r)=>r.trim()).filter((r)=>r.length>0):[];if(a.length>0)for(let r of a)try{if((await k`${Z} -C ${Y} ls-remote --heads ${r} ${m}`).stdout.trim().length>0)return M.error(`Fork branch '${m}' exists on remote '${r}'. Use standard git commands to merge it.`,"parallel"),1}catch{}}}let B=P0({message:"Checking worktree status"}),$=Array.isArray(Z)?Z[0]:Z,[V,D,F]=await Promise.all([k`${Z} -C ${Y} status --porcelain=v1 --untracked-files=normal`,k`${Z} -C ${K} status --porcelain=v1 --untracked-files=normal`,G0($,Y,"HEAD")]),j=V.stdout.trim().length>0;if(M.debug(`Fork worktree '${Q}' dirty status: ${j?"dirty":"clean"}`,"parallel"),j&&!X&&!q)return B.stop(),M.error(`Fork '${Q}' has uncommitted changes. Re-run with --all to include them or clean the worktree first.`,"parallel"),1;if(D.stdout.trim().length>0&&X&&j)return B.stop(),M.error("Origin worktree has pending changes. Commit or stash them before joining.","parallel"),1;let L=U.baseCommit?.trim(),A=U.joinCursor?.trim();if(!L)return B.stop(),M.error("Fork metadata is missing base commit information. Unable to perform an automatic join.","parallel"),1;let I=await VQ($,Y,L,A),G=I?A:L,P=(await G0($,K,"HEAD")).trim(),T=null;if(j&&X){let m=`git-parallel-join:${Q}`;M.debug(`Stashing uncommitted changes from fork '${Q}' before joining...`,"parallel"),B.options.message="Stashing uncommitted changes";try{await k`${Z} -C ${Y} stash push --include-untracked -m ${m}`,T="stash@{0}"}catch{return M.error("Failed to stash uncommitted changes before joining.","parallel"),1}}let S=F.trim(),y;M.debug(`Enumerating commits from fork '${Q}' since ${I?"join cursor":"base commit"} ${G}...`,"parallel"),B.options.message="Enumerating commits to join";try{let m=["-C",Y,"rev-list","--reverse",`${G}..${S}`];if(P)m.push("--not",P);let n=(await k`${$} ${m}`).stdout.trim();y=n?n.split(`
|
|
739
|
+
`).map((a)=>a.trim()).filter((a)=>a):[]}catch(m){if(T)await k`${Z} -C ${Y} stash pop ${T}`;return M.error("Unable to enumerate commits to join.","parallel"),M.debug(u(m,{color:!0}),"parallel"),1}let g=[],x=[],c=[],v=!1,J0=!1;B.stop(),M.debug(`Found ${y.length} commit(s) to cherry-pick into origin.`,"parallel");let h=0;while(h<y.length){let m=y[h];if(!m){h++;continue}try{let n=!1,a=!1;if(W){let r=await gM({git$:Z,gitExec:$,originRepoPath:K,forkRepoPath:Y,commit:m,forkAlias:Q,isSubmodule:!1});if(r.action==="abort"){if(T)await Z8(Z,Y,Q,T);return 1}if(r.action==="undo"){if(x.length===0){C(`${H.yellow}No commit to undo yet.${H.reset}`);continue}let V0=x.pop();if(V0===void 0)continue;if(!await mM(Z,K)){if(T)await Z8(Z,Y,Q,T);return 1}if(g.length>0)g.pop();let Y0=V0>0?y[V0-1]:G;U.joinCursor=Y0,P4(Y,U),v=!1,h=Math.max(V0,0);continue}if(r.action==="skip")a=!0;else if(r.action==="apply")n=!0}else n=!0;if(n){let r=await pM(Z,{originRepoPath:K,commit:m,contextLabel:"origin worktree",forkAlias:Q,stashRef:T,sourceRepoPath:Y});if(r==="applied")g.push(m),x.push(h);if(r==="skipped"||r==="empty")v=SM(U,Y,m,v),J0=!0;else v=Kv(U,Y,m,G,v)}else if(a)v=SM(U,Y,m,v),J0=!0}catch{if(T)await Z8(Z,Y,Q,T);return 1}h++}let s=await R4(Z,Y);for(let m=0;m<s.length;m++){let n=s[m];B.start(),B.options.message=`Enumerating submodule commits ${m+1} of ${s.length}`;let a=F0.resolve(Y,n.path),r=F0.resolve(K,n.path),V0=F0.join(a,".git"),_0=F0.join(r,".git");if(!l(a)||!l(r))continue;if(!l(V0)||!l(_0))continue;let Y0=await PJ($,Y,L,n.path);if(!Y0)continue;let N0=U.submoduleCursors?.[n.path]?.trim(),k0=await VQ($,a,Y0,N0)?N0:Y0,C0=[];try{let p0=(await G0($,a,"HEAD")).trim(),x4=(await G0($,r,"HEAD")).trim(),Q8=x4?(await G0($,a,["-q","--verify",`${x4}^{commit}`])).trim():"",Y6=["-C",a,"rev-list","--reverse",`${k0}..${p0}`];if(Q8)Y6.push("--not",Q8);C0=await k`${$} ${Y6}`.then((v6)=>v6.stdout.trim().split(`
|
|
740
|
+
`).map((e6)=>e6.trim()).filter((e6)=>!!e6))}catch(p0){if(B.stop(),M.error(`Unable to enumerate submodule commits for '${n.path}'.`,"parallel"),M.debug(u(p0,{color:!0}),"parallel"),T)await Z8(Z,Y,Q,T);return 1}if(B.stop(),C0.length===0)continue;M.debug(`Found ${C0.length} commit(s) to cherry-pick for submodule '${n.path}'.`,"parallel");let x0=[],a0=!1,C6=0;while(C6<C0.length){let p0=C0[C6];if(!p0){C6++;continue}try{try{await k`${$} -c protocol.file.allow=always -C ${r} fetch ${a} ${p0}`}catch(Y6){if(M.error(`Failed to fetch submodule commit ${p0} from '${n.path}'.`,"parallel"),M.debug(u(Y6,{color:!0}),"parallel"),T)await Z8(Z,Y,Q,T);return 1}let x4=!1,Q8=!1;if(W){let Y6=await gM({git$:Z,gitExec:$,originRepoPath:r,forkRepoPath:a,commit:p0,forkAlias:Q,isSubmodule:!0,submodulePath:n.path});if(Y6.action==="abort"){if(T)await Z8(Z,Y,Q,T);return 1}if(Y6.action==="undo"){if(x0.length===0){C(`${H.yellow}No commit to undo yet.${H.reset}`);continue}let v6=x0.pop();if(v6===void 0)continue;if(!await mM(Z,r)){if(T)await Z8(Z,Y,Q,T);return 1}if(c.length>0)c.pop();let J8=v6>0?C0[v6-1]:k0;U.submoduleCursors??={},U.submoduleCursors[n.path]=J8,P4(Y,U),a0=!1,C6=Math.max(v6,0);continue}if(Y6.action==="skip")Q8=!0;else if(Y6.action==="apply")x4=!0}else x4=!0;if(x4){let Y6=await pM(Z,{originRepoPath:r,commit:p0,contextLabel:`submodule ${n.path}`,forkAlias:Q,stashRef:T,sourceRepoPath:a});if(Y6==="applied")c.push(p0),x0.push(C6);if(Y6==="skipped"||Y6==="empty")a0=yM(U,Y,n.path,p0,a0),J0=!0;else if(!a0)U.submoduleCursors??={},U.submoduleCursors[n.path]=p0||k0,P4(Y,U)}else if(Q8)a0=yM(U,Y,n.path,p0,a0),J0=!0}catch{if(T)await Z8(Z,Y,Q,T);return 1}C6++}}if(T){M.debug(`Applying stashed uncommitted changes from fork '${Q}' to origin...`,"parallel");try{let a=(await k`${Z} -C ${Y} stash list`).stdout.trim().split(`
|
|
741
|
+
`)[0]?.split(":")[0]||T;await k`${Z} -C ${K} stash apply --index ${a}`,await k`${Z} -C ${Y} stash drop ${a}`}catch(m){M.error("Failed to apply uncommitted changes to the origin worktree.","parallel"),M.debug(u(m,{color:!0}),"parallel");try{await k`${Z} -C ${Y} stash pop ${T}`,C(`${H.yellow}Stashed changes restored to fork '${Q}' for safety.${H.reset}`)}catch(n){C(`${H.yellow}Please restore stash '${T}' manually from fork '${Q}'. Automatic pop failed.${H.reset}`),M.debug(u(n,{color:!0}),"parallel")}return 1}}if(g.length>0||c.length>0){if(C(`${H.cyan}Cherry-picked ${g.length} commit(s) into origin.${H.reset}`),c.length>0)C(`${H.cyan}Cherry-picked ${c.length} submodule commit(s) into origin.${H.reset}`)}else C(`${H.cyan}No new commits to cherry-pick. Origin was already up to date.${H.reset}`);if(!q&&!J0&&(g.length>0||c.length>0)){if(M.debug(`Removing fork worktree '${Q}' after join...`,"parallel"),await Rq(Z,Q)!==0)return M.warn(`Failed to remove fork '${Q}' after joining. Please remove it manually later.`),1;C(`${H.cyan}Fork '${Q}' merged and removed successfully.${H.reset}`)}else{if(!J0)try{let m=(await G0($,K,"HEAD")).trim();if(m)dM(U,m)}catch{}else U.updatedAt=new Date().toISOString();P4(Y,U),C(`${H.cyan}Fork '${Q}' merged into origin. Worktree kept at:${H.reset} ${Y}`)}return 0}async function Tv(Z,Y,Q){if(!l(Y.parallelRoot))return C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let q=l6(Y.parallelRoot,{withFileTypes:!0}).filter((z)=>z.isDirectory()).sort((z,W)=>z.name.localeCompare(W.name));if(q.length===0)return C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`),0;let X=!1;for(let z of q){let W=F0.join(Y.parallelRoot,z.name),U=x8(W);if(!U)continue;let K=U.alias||z.name;X=!0;let B=await oM(Z,W,K,{keep:Q,bringAll:!1,interactive:!1});if(B!==0)return B}if(!X)C(`${H.yellow}No forked worktrees found for this branch.${H.reset}`);return 0}async function kv(Z,Y){let Q;try{Q=await DQ(Z)}catch(F){return M.error(u(F,{color:!0}),"parallel"),1}let{parallelCtx:J,scopeGit$:q}=Q,X=["--keep","--all","--interactive","-i","-r","--recursive"],z=new Set,W=null;for(let F of Y){let O=F.toLowerCase();if(X.includes(O))z.add(O);else if(!W&&!F.startsWith("-"))W=F;else return M.error(`Unknown option '${F}'.`,"parallel"),W6(),1}let U=z.has("--keep"),K=z.has("--all"),B=z.has("--interactive")||z.has("-i"),$=z.has("-r")||z.has("--recursive");if($&&K)return M.error("Recursive join does not support --all. Join forks individually.","parallel"),W6(),1;if($&&B)return M.error("Recursive join does not support --interactive. Join forks individually.","parallel"),W6(),1;if($&&W)return M.error("Recursive join does not accept an alias. Omit <alias> with -r.","parallel"),W6(),1;if($&&J.isParallelWorktree)return M.error("Run recursive join from the origin worktree, not from a fork.","parallel"),1;if($)return await Tv(q,J,U);let V,D;if(W){if(J.isParallelWorktree&&J.alias===W)return M.error("Cannot join the fork you are currently in. Switch to origin or another fork first.","parallel"),1;if(!SZ(W))return M.error(`Alias '${W}' contains invalid characters or spaces.`,"parallel"),1;if(V=F0.join(J.parallelRoot,W),D=W,!l(V))return M.error(`Worktree '${W}' not found for branch '${J.branchName}'.`,"parallel"),1}else{if(Q.currentLabel==="origin")return M.error("Either run join from inside a forked worktree, or specify which fork to join.","parallel"),M.info("Usage: git parallel join [<alias>] [--keep|--all|--interactive] | git parallel join -r [--keep]","parallel"),1;D=Q.currentLabel,V=Cq(J,D)}return await oM(q,V,D,{keep:U,bringAll:K,interactive:B})}async function Ev(Z,Y){let Q;try{Q=await DQ(Z)}catch(O){return M.error(u(O,{color:!0}),"parallel"),1}let J=["--hard","-h"],q=new Set,X=null;for(let O of Y){let j=O.toLowerCase();if(J.includes(j))q.add(j);else if(!X&&!O.startsWith("-"))X=O;else return M.error(`Unknown option '${O}'.`,"parallel"),W6(),1}let z=q.has("--hard")||q.has("-h"),W=Q.parallelCtx,U,K;if(X){if(X==="origin")return M.error("Origin is already the synchronization source.","parallel"),1;if(!SZ(X))return M.error(`Alias '${X}' contains invalid characters or spaces.`,"parallel"),1;if(U=X,K=Cq(W,U),!l(K))return M.error(`Worktree '${U}' not found for branch '${W.branchName}'.`,"parallel"),1}else{if(Q.currentLabel==="origin")return M.error("Run sync from inside a forked worktree, or specify which fork to sync.","parallel"),1;U=Q.currentLabel,K=W.repoRoot}let B=x8(K);if(!B)return M.error(`Missing metadata for worktree '${U}'.`,"parallel"),1;let $=F0.resolve(B.originPath);if(!l($))return M.error(`Origin worktree path not found at '${$}'.`,"parallel"),1;if(!await Wv(Q.gitExec,K,z))return M.error(`Fork '${U}' has uncommitted changes. Re-run with --hard to clear them first.`,"parallel"),1;let D=(await G0(Q.gitExec,$,"HEAD")).trim();if(!D)return M.error("Unable to resolve origin HEAD for sync.","parallel"),1;try{if(B.forkBranch&&B.forkBranchTracked){let O=["-C",K,"merge","--no-edit","-X","theirs",D],j=await k`${Q.gitExec} ${O}`;b6(j)}else{let O=await k`${Q.gitExec} -C ${K} reset --hard ${D}`;b6(O)}}catch(O){b6(P8(O));try{await k`${Q.gitExec} -C ${K} merge --abort`}catch{}return M.error(`Failed to sync fork '${U}' with origin.`,"parallel"),M.debug(u(O,{color:!0}),"parallel"),1}try{await Uv(Q.gitExec,K,z)}catch(O){return M.error(`Failed to refresh submodules for '${U}' after sync.`,"parallel"),M.debug(u(O,{color:!0}),"parallel"),1}let F=(await G0(Q.gitExec,K,"HEAD")).trim()||D;return dM(B,F),P4(K,B),C(`${H.cyan}Fork '${U}' synchronized with origin.${H.reset}`),0}async function Pv(Z,Y){let Q;try{Q=await DQ(Z)}catch(B){return M.error(u(B,{color:!0}),"parallel"),1}if(Y.length<2)return M.error("Usage: gdx parallel pick <alias|origin> <commit> [commit...]","parallel"),W6(),1;let J=Y[0],q=Y.slice(1).filter((B)=>B.length>0);if(J!=="origin"&&!SZ(J))return M.error(`Alias '${J}' contains invalid characters or spaces.`,"parallel"),1;let X=Cq(Q.parallelCtx,J),z=Q.parallelCtx.repoRoot;if(!l(X))return M.error(`Worktree '${J}' not found for branch '${Q.parallelCtx.branchName}'.`,"parallel"),1;if(F0.resolve(X)===F0.resolve(z))return M.error("Source and destination worktrees are the same.","parallel"),1;let W=Q.submodulePath?F0.resolve(X,Q.submodulePath):X,U=Q.repoRoot;if(!l(W))return M.error(`Submodule '${Q.submodulePath}' is not available in worktree '${J}'.`,"parallel"),1;let K=[];for(let B of q)try{let $=(await G0(Q.gitExec,W,["-q","--verify",`${B}^{commit}`])).trim();if(!$)return M.error(`Commit '${B}' was not found in '${J}'.`,"parallel"),1;K.push($)}catch{return M.error(`Commit '${B}' was not found in '${J}'.`,"parallel"),1}if(Q.submodulePath)try{await k`${Q.gitExec} -c protocol.file.allow=always -C ${U} fetch ${W} ${K}`}catch(B){return M.error(`Failed to fetch commits from submodule '${Q.submodulePath}' in '${J}'.`,"parallel"),M.debug(u(B,{color:!0}),"parallel"),1}for(let B of K)try{let $=await cM(Q.gitExec,U,W,B),V=await k`${Q.gitExec} ${$} ${u5()} -C ${U} cherry-pick ${B}`;b6(V)}catch($){if(await Gq(Q.gitExec,U,$,"parallel pick"))continue;return b6(P8($)),M.error(`Failed to cherry-pick commit ${B} from '${J}'.`,"parallel"),M.debug(u($,{color:!0}),"parallel"),1}return C(`${H.cyan}Cherry-picked ${K.length} commit(s) from '${J}' into ${Q.currentLabel}.${H.reset}`),0}async function pM(Z,Y){let{originRepoPath:Q,commit:J,contextLabel:q,forkAlias:X,stashRef:z,sourceRepoPath:W}=Y;M.debug(`Cherry-picking commit ${J} into ${q}...`,"parallel");let U=u5(),K=Array.isArray(Z)?Z[0]:Z,B=W?await cM(K,Q,W,J):[];try{let $=await k`${K} ${B} ${U} -C ${Q} cherry-pick ${J}`;return b6($),"applied"}catch($){if(await Gq(Z,Q,$,q))return"empty";if(b6(P8($)),!await p1(Z,Q))throw M.error(`Cherry-pick failed while applying commit ${J}.`,"parallel"),M.debug(u($,{color:!0}),"parallel"),$;if(!KJ()){let F=await p5(Z,Q);throw await Ov(Q,X,J,z,F),M.debug(u($,{color:!0}),"parallel"),$}C(`${H.yellow}Cherry-pick paused due to conflicts while applying commit ${J}.${H.reset}`),C(`${H.dim}Resolve conflicts in ${q}, then choose to continue or abort.${H.reset}`);while(!0)switch((await y1("Type c to continue, a to abort, s to skip (c|a|s): ")).toLowerCase()){case"s":case"skip":try{return await k`${K} ${B} ${U} -C ${Q} cherry-pick --skip`,M.debug(`Skipped commit ${J} for ${q}.`,"parallel"),"skipped"}catch(O){if(!await p1(Z,Q))return"skipped";b6(P8(O)),M.error(`Failed to skip commit ${J} for ${q}.`,"parallel"),M.debug(u(O,{color:!0}),"parallel");continue}case"c":case"continue":case"y":case"yes":try{await vO(Z,Q);let O=await k`${K} ${B} ${U} -C ${Q} cherry-pick --continue`;return b6(O),"applied"}catch(O){if(await Gq(Z,Q,O,q))return"empty";if(b6(P8(O)),await p1(Z,Q)){C(`${H.yellow}Cherry-pick still has conflicts. Resolve them and try again.${H.reset}`),M.debug(u(O,{color:!0}),"parallel");continue}throw M.error("Cherry-pick no longer in progress. You may need to resolve the state manually before retrying.","parallel"),M.debug(u(O,{color:!0}),"parallel"),O}case"a":case"abort":case"n":case"no":try{let O=await k`${K} ${B} ${U} -C ${Q} cherry-pick --abort`;b6(O)}catch(O){throw b6(P8(O)),M.error("Failed to abort cherry-pick.","parallel"),M.debug(u(O,{color:!0}),"parallel"),O}throw M.error(`Cherry-pick aborted while applying commit ${J}.`,"parallel"),$}}}async function Gq(Z,Y,Q,J){let q=await p1(Z,Y);if(!(bO(Q)||q&&await SO(Z,Y)))return!1;if(!q)return M.debug(`Empty cherry-pick ignored for ${J}.`,"parallel"),!0;try{return await k`${Z} ${u5()} -C ${Y} cherry-pick --skip`,M.debug(`Skipped empty cherry-pick for ${J}.`,"parallel"),!0}catch(z){return b6(P8(z)),M.error(`Failed to skip empty cherry-pick for ${J}.`,"parallel"),M.debug(u(z,{color:!0}),"parallel"),!1}}async function xv(Z,Y,Q,J,q){let X=Array.isArray(Z)?Z[0]:Z;try{let[z,W]=await Promise.all([G0(X,Y,"HEAD").then(($)=>$.trim()),q!==void 0?Promise.resolve(q.trim()):G0(X,Q,"HEAD").then(($)=>$.trim())]),U=W;if(z===U)return{ahead:0,behind:0};let K=0,B=0;return await Promise.all([(async()=>{try{let V=(await k`${X} -C ${Y} rev-list --count ${J||U}..${z}`).stdout.trim();K=parseInt(V,10)||0}catch{K=0}})(),(async()=>{try{let $=(await k`${X} -C ${Y} rev-list --count ${z}..${U}`).stdout.trim();B=parseInt($,10)||0}catch{B=0}})()]),{ahead:K,behind:B}}catch{return{ahead:0,behind:0}}}async function bv(Z,Y){let{git$:Q,gitExec:J,worktreePath:q,originPath:X,baseCommit:z,maxCount:W,submoduleCursors:U}=Z,K=await R4(Q,q);if(K.length===0)return{groups:[],totalCount:0};let B=[],$=0;for(let V of K){let D=F0.resolve(q,V.path),F=F0.resolve(X,V.path),O=F0.join(D,".git"),j=F0.join(F,".git");if(!l(D)||!l(O))continue;if(Y)Y.options.message=`Collecting submodule '${V.path}'...`;let _=await PJ(J,q,z,V.path);if(!_)continue;let L=_,A=U?.[V.path];if(A){if(await VQ(J,D,_,A))L=A}let I=`${L}..HEAD`,G=l(F)&&l(j)?(await G0(J,F,"HEAD")).trim():"",P=await EJ({gitExec:J,repoPath:D,range:I,maxCount:W,formatTemplate:`${H.yellow}%h${H.reset} %s`,excludeRefs:G?[G]:void 0});if(P.totalCount===0)continue;let T=`${V.path} ${H.dim}[submodule]${H.reset}`;B.push({label:T,commits:P.commits,totalCount:P.totalCount,moreCount:P.moreCount}),$+=P.totalCount}return{groups:B,totalCount:$}}function iM(Z,Y,Q){let J=[...Y];if(Q>0)J.push(`${H.dim}+${Q} more${H.reset}`);if(J.length===0)return;for(let q=0;q<J.length;q++){let z=q===J.length-1?"└─ ":"├─ ";C(`${H.dim}${Z}${z}${H.reset}${J[q]}`)}}function vv(Z){if(Z.length===0)return;for(let Y=0;Y<Z.length;Y++){let Q=Z[Y],J=Y===Z.length-1,q=J?" └─ ":" ├─ ";C(`${H.dim}${q}${H.reset}${Q.label}`),iM(J?" ":" │ ",Q.commits,Q.moreCount)}}function sM(Z){if(!Z)return"";if(typeof Z==="string")return Z;if(Z instanceof Uint8Array)return new TextDecoder().decode(Z);return String(Z)}function uM(Z){let Y=sM(Z);if(!Y)return;C(Y,Y.endsWith(`
|
|
739
742
|
`)?"":`
|
|
740
|
-
`)}function
|
|
741
|
-
`+
|
|
743
|
+
`)}function b6(Z){uM(Z.stdout),uM(Z.stderr)}function P8(Z){if(Z instanceof p6)return{stdout:Z.stdout,stderr:Z.stderr};let Y=Z;return{stdout:Y?.stdout,stderr:Y?.stderr}}async function Tq(Z){let{git$:Y,args:Q}=Z;if(Q.length<2)return W6(),1;let J=Q[1].toLowerCase(),{match:q,candidates:X}=h0(J,["fork","list","open","switch","sync","pick","join","remove","help"]),z=Q.slice(2);switch(q){case"fork":return await Bv(Y,z);case"remove":return await $v(Y,z);case"switch":if(!n6)return M.error("'git parallel switch' requires the shell integration. See readme for details."),1;return await fM(Y,z,!0);case"open":return await fM(Y,z);case"list":return await Vv(Y,z);case"sync":return await Ev(Y,z);case"pick":return await Pv(Y,z);case"join":return await kv(Y,z);case"help":return W6(),0;default:if(X&&X.length>0)M.warn(`Ambiguous command '${J}'. Did you mean one of: ${X.join(", ")}?`);else M.warn(`Unknown subcommand '${J}'`);return W6(),1}}function W6(){C(OQ.short+`
|
|
744
|
+
`+OQ.usage())}var FQ=1000,k8=null,E8=null,Yv=async({git$:Z})=>{let Y=await vZ(Z);return o1(["origin",...Y],["-c","--copy"])},Qv=async({git$:Z})=>{let Y=await vZ(Z);return o1(["origin",...Y],["-c","--copy"])},Jv=async({git$:Z})=>{let Y=await vZ(Z);return{$allOf:["--keep","--all","-i","--interactive"],"-r":{$allOf:["--keep"]},"--recursive":{$allOf:["--keep"]},...o1(Y,["--keep","--all","-i","--interactive"])}},qv=async({git$:Z})=>{let Y=await vZ(Z);return o1(Y,["--hard","-h"])},Xv=async({git$:Z})=>{let Y=await vZ(Z);return cJ(["origin",...Y])},zv=async({git$:Z})=>{let Y=await vZ(Z);return{"-r":{},"--recursive":{},...cJ(Y)}},OQ,aM;var MQ=N(()=>{J6();aY();z0();m0();R0();w0();H0();v0();S0();bZ();e0();PM();GZ();q7();s0();OQ={long:()=>{return t(Z0`
|
|
742
745
|
${H.bright+d("PARALLEL",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
743
746
|
Manage parallel (forked) worktrees for iterative development.
|
|
744
747
|
|
|
745
748
|
${H.bright+d("OVERVIEW",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
746
|
-
\`${H.cyan}${
|
|
749
|
+
\`${H.cyan}${R} parallel${H.reset}\` helps you create and manage temporary forked worktrees for the current branch. Forked worktrees live under a temp worktree root and contain a small metadata file (.git-parallel.json) so the tool can later join, list or remove them cleanly.
|
|
747
750
|
|
|
748
|
-
Additionally, \`${H.cyan}${
|
|
751
|
+
Additionally, \`${H.cyan}${R} parallel fork${H.reset}\` can auto-initialize submodules,
|
|
749
752
|
copy ignored env files, and install dependencies using detected package managers (currently supports
|
|
750
753
|
npm, pnpm, bun, and uv) if configured (see \`${H.cyan}parallel.init${H.reset}\` and
|
|
751
754
|
\`${H.cyan}parallel.envPaths${H.reset}\` config for options), getting the fork ready for work in no time.
|
|
@@ -763,77 +766,78 @@ ${u(B,{color:!0})}`,"parallel");let F=await b1("Do you want to force remove the
|
|
|
763
766
|
${H.bright+d("SAFETY AND NOTES",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
764
767
|
Joining cherry-picks commits into origin; conflicts will prompt for resolve/continue in a TTY or print manual steps in non-interactive shells. Removing a fork will also delete the worktree directory when forced.
|
|
765
768
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Manage temporary forked worktrees: create, list, join, open and remove.",usage:()=>{return t(Z0`
|
|
766
|
-
${H.cyan}${
|
|
767
|
-
${H.cyan}${
|
|
768
|
-
${H.cyan}${
|
|
769
|
-
${H.cyan}${
|
|
770
|
-
${H.cyan}${
|
|
771
|
-
${H.cyan}${
|
|
772
|
-
${H.cyan}${
|
|
773
|
-
${H.cyan}${
|
|
774
|
-
${H.cyan}${
|
|
775
|
-
${H.cyan}${
|
|
769
|
+
${H.cyan}${R} parallel fork ${H.dim}<alias> [ref] [-b|-B <branch>] [--move|--mirror] [--no-init[=submodule,env,pkg]]${H.reset}
|
|
770
|
+
${H.cyan}${R} parallel list${H.reset}
|
|
771
|
+
${H.cyan}${R} parallel open ${H.dim}<alias|origin> [-c|--copy]${H.reset}
|
|
772
|
+
${H.cyan}${R} parallel switch ${H.dim}<alias|origin> [-c|--copy]${H.reset}
|
|
773
|
+
${H.cyan}${R} parallel sync ${H.dim}[<alias>] [--hard|-h]${H.reset}
|
|
774
|
+
${H.cyan}${R} parallel pick ${H.dim}<alias|origin> <commit> [commit...]${H.reset}
|
|
775
|
+
${H.cyan}${R} parallel join ${H.dim}<alias> [--keep|--all|-i|--interactive]${H.reset}
|
|
776
|
+
${H.cyan}${R} parallel join ${H.dim}-r|--recursive [--keep]${H.reset}
|
|
777
|
+
${H.cyan}${R} parallel remove ${H.dim}<alias>${H.reset}
|
|
778
|
+
${H.cyan}${R} parallel remove ${H.dim}-r|--recursive${H.reset}
|
|
776
779
|
|
|
777
780
|
Examples:
|
|
778
|
-
${H.cyan}${
|
|
779
|
-
${H.cyan}${
|
|
780
|
-
${H.cyan}${
|
|
781
|
-
${H.cyan}${
|
|
782
|
-
${H.cyan}${
|
|
783
|
-
${H.cyan}${
|
|
784
|
-
${H.cyan}${
|
|
785
|
-
${H.cyan}${
|
|
786
|
-
${H.cyan}${
|
|
787
|
-
${H.cyan}${
|
|
788
|
-
${H.cyan}${
|
|
789
|
-
${H.cyan}${
|
|
790
|
-
${H.cyan}${
|
|
791
|
-
${H.cyan}${
|
|
781
|
+
${H.cyan}${R} parallel fork feature-x --move ${H.reset+H.dim}# Create fork and optionally move changes${H.reset}
|
|
782
|
+
${H.cyan}${R} parallel fork feature-x deadbeef ${H.reset+H.dim}# Create fork from a ref${H.reset}
|
|
783
|
+
${H.cyan}${R} parallel fork feature-x -b feature-x ${H.reset+H.dim}# Create fork on a local branch${H.reset}
|
|
784
|
+
${H.cyan}${R} parallel fork feature-x -B feature-x ${H.reset+H.dim}# Recreate the fork branch${H.reset}
|
|
785
|
+
${H.cyan}${R} parallel fork feature-x --no-init ${H.reset+H.dim}# Skip all init behaviors${H.reset}
|
|
786
|
+
${H.cyan}${R} parallel fork feature-x --no-init=pkg ${H.reset+H.dim}# Skip package installs only${H.reset}
|
|
787
|
+
${H.cyan}${R} parallel fork feature-x --no-init=env ${H.reset+H.dim}# Skip env file copy${H.reset}
|
|
788
|
+
${H.cyan}${R} parallel list --short ${H.reset+H.dim}# Compact output with recent commits${H.reset}
|
|
789
|
+
${H.cyan}${R} parallel sync feature-x --hard ${H.reset+H.dim}# Reset a fork to the latest origin state${H.reset}
|
|
790
|
+
${H.cyan}${R} parallel pick origin deadbeef ${H.reset+H.dim}# Cherry-pick from origin into current worktree${H.reset}
|
|
791
|
+
${H.cyan}${R} parallel join feature-x --all ${H.reset+H.dim}# Merge fork back into origin${H.reset}
|
|
792
|
+
${H.cyan}${R} parallel join feature-x -i ${H.reset+H.dim}# Preview and pick commits${H.reset}
|
|
793
|
+
${H.cyan}${R} parallel join -r ${H.reset+H.dim}# Merge all forks back into origin${H.reset}
|
|
794
|
+
${H.cyan}${R} parallel remove -r ${H.reset+H.dim}# Remove all forks for this branch${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},aM={$root:{fork:["--move","--mirror","--no-init","-b","-B"],list:{},open:Yv,switch:Qv,sync:qv,pick:Xv,join:Jv,remove:zv,help:{}}}});async function Sv(){let Z=await K0(),Y=eM(w8),Q=[],J="";C(H.dim+`# GDX Configuration
|
|
792
795
|
# read from ${Z.getConfigPath()}
|
|
793
796
|
# (api keys stored separately)
|
|
794
797
|
`+H.reset);for(let{key:q}of Y){let X=q.split("."),z=X.slice(0,-1).join("."),W=X[X.length-1];if(!Q.includes(z)){if(Q.length>0)J+=`
|
|
795
|
-
`;if(z){let
|
|
796
|
-
`,
|
|
798
|
+
`;if(z){let j=HJ[z];if(J+=`${H.magenta+H.bright}[${z}]${H.reset}
|
|
799
|
+
`,j)J+=`${H.dim}# ${j.split(`
|
|
797
800
|
`).join(`
|
|
798
801
|
# `)}${H.reset}
|
|
799
|
-
`}Q.push(z)}let U=Z.get(q);if(U===void 0&&
|
|
800
|
-
`:`${H.cyan+W+H.reset} = ${$}${
|
|
801
|
-
`;if(Q[Q.length-1]==="")J=
|
|
802
|
-
`+J;else J+=
|
|
802
|
+
`}Q.push(z)}let U=Z.get(q);if(U===void 0&&S4.includes(q))U=await Z.getSecure(q);let K=Z.isDefault(q),B=HJ[q]||"",$="",V=!1;switch(typeof U){case"boolean":$=u(U,{color:!0});break;case"number":$=u(U,{color:!0});break;case"string":if(W.toLowerCase().includes("key"))$=u(p8(U,20,"mid",-1),{color:!0});else $=u(U,{color:!0});break;case"undefined":case"object":if(U==null)V=!0,$=u(null,{color:!0});break;default:$=String(U)}let D=K?"":` ${H.reset+H.yellow+H.italic}[Modified]${H.reset+H.dim}`,F=B?` ${H.dim}#${D} ${B}${H.reset}`:"",O=V?`${H.dim}# ${H.cyan+W+H.white} = ${$}${F}${H.reset}
|
|
803
|
+
`:`${H.cyan+W+H.reset} = ${$}${F}
|
|
804
|
+
`;if(Q[Q.length-1]==="")J=O+`
|
|
805
|
+
`+J;else J+=O}return C(J,""),0}async function yv(Z){let Y=await K0(),Q=Z.args[1];if(!Q)return M.error("Missing configuration key","gdx-config"),1;let J=Y.get(Q);if(J===void 0&&S4.includes(Q))J=await Y.getSecure(Q);if(J===void 0)return M.warn(`Key '${Q}' is not set`,"gdx-config"),1;return C(String(J)),0}async function fv(Z){let Y=await K0(),Q=Z.args[1],J=Z.args[2];if(!Q||J===void 0)return M.error("Usage: gdx gdx-config <key> <value>","gdx-config"),1;let q=I5(Q,J);if(!q.ok)return M.error("Validation failed: "+q.message,"gdx-config"),1;await Y.set(Q,q.value),await Y.save();let X=Q.toLowerCase().includes("key")?p8(String(q.value),20,"mid",-1):q.value;return C(`${H.green}Configuration updated: ${Q} = ${X}${H.reset}`),0}async function kq(Z){let Y=Z.args[1]?.toLowerCase(),{match:Q}=h0(Y,["list","path"]);if(Q==="list"||!Y)return await Sv();else if(Q==="path"){let J=await K0();return C(J.getConfigPath()),0}else if(Z.args.length===2)return await yv(Z);else if(Z.args.length===3)return await fv(Z);else return C(Z0(`${H.cyan}Usage:${H.reset}
|
|
803
806
|
gdx gdx-config list - List all configuration
|
|
804
807
|
gdx gdx-config path - Show config file path
|
|
805
808
|
gdx gdx-config <key> - Get configuration value
|
|
806
|
-
gdx gdx-config <key> <value> - Set configuration value`)),0}function
|
|
807
|
-
${H.bright+d("GDX-CONFIG",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
808
|
-
View and modify gdx configuration.
|
|
809
|
-
|
|
810
|
-
${H.bright+d("OVERVIEW",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
811
|
-
Manage gdx settings stored in the configuration file. The command supports listing all config values, getting the path to the currently loaded config file, and getting/setting individual keys. API keys and sensitive values are masked when displayed.
|
|
812
|
-
|
|
813
|
-
${H.bright+d("COMMANDS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
814
|
-
- list: Prints flattened configuration with defaults and modified markers.
|
|
815
|
-
- path: Prints the path to the active config file used by gdx.
|
|
816
|
-
- <key> [value]: Get or set a config key. When setting, types are coerced based on the existing default value where possible.
|
|
817
|
-
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"View or modify gdx configuration settings.",usage:()=>{return t(`
|
|
818
|
-
${H.cyan}${C} gdx-config list${H.reset}
|
|
819
|
-
${H.cyan}${C} gdx-config path${H.reset}
|
|
820
|
-
${H.cyan}${C} gdx-config ${H.dim}<key> [value]${H.reset}
|
|
809
|
+
gdx gdx-config <key> <value> - Set configuration value`)),0}function eM(Z,Y=""){let Q=[];for(let J in Z){let q=Y?`${Y}.${J}`:J,X=Z[J];if(X!==null&&typeof X==="object"&&!Array.isArray(X))Q.push(...eM(X,q));else Q.push({key:q,value:X})}return Q}var rM,tM;var jQ=N(()=>{z0();$6();x1();s0();R0();w0();H0();S0();v0();A4();rM={long:()=>{return t(Z0`
|
|
810
|
+
${H.bright+d("GDX-CONFIG",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
811
|
+
View and modify gdx configuration.
|
|
821
812
|
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
${
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
813
|
+
${H.bright+d("OVERVIEW",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
814
|
+
Manage gdx settings stored in the configuration file. The command supports listing all config values, getting the path to the currently loaded config file, and getting/setting individual keys. API keys and sensitive values are masked when displayed.
|
|
815
|
+
|
|
816
|
+
${H.bright+d("COMMANDS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
817
|
+
- list: Prints flattened configuration with defaults and modified markers.
|
|
818
|
+
- path: Prints the path to the active config file used by gdx.
|
|
819
|
+
- <key> [value]: Get or set a config key. When setting, types are coerced based on the existing default value where possible.
|
|
820
|
+
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"View or modify gdx configuration settings.",usage:()=>{return t(Z0`
|
|
821
|
+
${H.cyan}${R} gdx-config list${H.reset}
|
|
822
|
+
${H.cyan}${R} gdx-config path${H.reset}
|
|
823
|
+
${H.cyan}${R} gdx-config ${H.dim}<key> [value]${H.reset}
|
|
824
|
+
|
|
825
|
+
Examples:
|
|
826
|
+
${H.cyan}${R} gdx-config list ${H.reset+H.dim}# List all config keys and values${H.reset}
|
|
827
|
+
${H.cyan}${R} gdx-config editor.code true ${H.reset+H.dim}# Set value for a key${H.reset}
|
|
828
|
+
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},tM={$root:["list","path"]}});async function qj(Z,Y={}){let Q=Y.normalFileCharCap??hv,J=Y.noisyFileCharCap??gv,q=(Y.noisyPatterns||[...zJ]).map((x)=>KQ(x)).filter((x)=>Boolean(x));if(q.length===0)q.push(()=>!1);let[X,z,W,U,K]=await Promise.all([k`${Z} diff --cached --name-status -z -M -C --find-copies-harder`,k`${Z} diff --cached --numstat -z -M -C --find-copies-harder`,k`${Z} -c color.ui=never diff --cached --stat -M -C --find-copies-harder`,k`${Z} diff --cached --shortstat`,k`${Z} -c color.ui=never diff --cached --patch --no-ext-diff -M -C --find-copies-harder`]),B=mv(X.stdout);if(B.length===0)return{hasChanges:!1,summary:""};let $=new Map;for(let x of B)if(x.oldPath){let c=$.get(x.oldPath);if(c)c.push(x.path);else $.set(x.oldPath,[x.path])}let V=pv(z.stdout,$),D=uv(W.stdout),F=dv(K.stdout),O=await tv(),j=lv(B,V,D,q),_=[],L=[],A=[],I=[],G=[],P=[];for(let x of j){if(x.category==="binary")continue;if(x.category==="rename"||x.category==="copy"){let h=F.get(x.path)||(x.oldPath?F.get(x.oldPath):void 0);if(!nv(x.status,h))continue;if(!h)continue;let s=Pq(x.path,q)||(x.oldPath?Pq(x.oldPath,q):!1),m=Yj(h,O,s?J:Q,s);if(m.whitespaceOnlyFile){G.push(`- ${x.path}: only whitespace-only changes were detected.`);continue}if(m.whitespaceOnlyHunksOmitted>0)P.push(`${x.path}: omitted ${m.whitespaceOnlyHunksOmitted} whitespace-only hunk(s).`);if(m.droppedLowImportanceHunks>0)P.push(`${x.path}: dropped ${m.droppedLowImportanceHunks} low-importance hunk(s) to fit budget.`);if(m.hardTrimmed)P.push(`${x.path}: noisy diff still exceeded budget and was hard-trimmed to ${J} chars.`);if(x.category==="rename")A.push(m.text);else I.push(m.text);continue}let c=F.get(x.path)||(x.oldPath?F.get(x.oldPath):void 0);if(!c)continue;let v=x.category==="noisy",J0=Yj(c,O,v?J:Q,v);if(J0.whitespaceOnlyFile){G.push(`- ${x.path}: only whitespace-only changes were detected.`);continue}if(J0.whitespaceOnlyHunksOmitted>0)P.push(`${x.path}: omitted ${J0.whitespaceOnlyHunksOmitted} whitespace-only hunk(s).`);if(J0.droppedLowImportanceHunks>0)P.push(`${x.path}: dropped ${J0.droppedLowImportanceHunks} low-importance hunk(s) to fit budget.`);if(J0.hardTrimmed)P.push(`${x.path}: noisy diff still exceeded budget and was hard-trimmed to ${J} chars.`);if(v)L.push(J0.text);else _.push(J0.text)}let T=U.stdout.trim(),S={normal:j.filter((x)=>x.category==="normal").length,noisy:j.filter((x)=>x.category==="noisy").length,binary:j.filter((x)=>x.category==="binary").length,copy:j.filter((x)=>x.category==="copy").length,rename:j.filter((x)=>x.category==="rename").length},y=j.map((x)=>ov(x)),g=["<summary-help-text>","This summary includes trimmed diffs, file-level stats, and other metadata, constructed by analyzing raw git diff. Changes are classified into the following categories:","- normal: text files with typical changes","- noisy: text files that usually don't contain meaningful changes (e.g. lockfiles, minified files)","- binary: non-text files where content changes cannot be meaningfully summarized in text","- rename: files detected as renames/moves (includes similarity score and drift percentage)","- copy: files detected as copies (includes similarity score and drift percentage)","</summary-help-text>","","<changes-overview>",T?`- shortstat: ${T}`:"- shortstat: (empty)",`- files: total=${j.length}, normal=${S.normal}, noisy=${S.noisy}, binary=${S.binary}, renames=${S.rename}, copies=${S.copy}`,"</changes-overview>","","<file-stats>",...y,"</file-stats>"];if(G.length>0)g.push("","<whitespace-only-changes>",...G,"</whitespace-only-changes>");if(A.length>0)g.push("","<rename-diffs>",...A,"</rename-diffs>");if(I.length>0)g.push("","<copy-diffs>",...I,"</copy-diffs>");if(_.length>0)g.push("","<normal-text-diffs>",..._,"</normal-text-diffs>");if(L.length>0)g.push("","<noisy-text-diffs>",...L,"</noisy-text-diffs>");if(P.length>0)g.push("","<system-notes>",...P.map((x)=>`- ${x}`),"</system-notes>");return{hasChanges:!0,summary:g.join(`
|
|
829
|
+
`)}}function mv(Z){let Y=Z.split("\x00").filter((J)=>J.length>0),Q=[];for(let J=0;J<Y.length;){let q=Y[J++];if(!q)break;if(q.startsWith("R")||q.startsWith("C")){let z=Y[J++],W=Y[J++];if(!z||!W)break;Q.push({status:q,path:W,oldPath:z});continue}let X=Y[J++];if(!X)break;Q.push({status:q,path:X})}return Q}function pv(Z,Y){let Q=Z.split("\x00"),J=new Map;for(let q=0;q<Q.length;q++){let X=Q[q];if(!X)continue;let z=X.match(/^(-|\d+)\t(-|\d+)\t(.+)$/);if(z){let F=z[1],O=z[2],j=z[3];J.set(j,{added:F==="-"?null:parseInt(F,10),deleted:O==="-"?null:parseInt(O,10),isBinary:F==="-"||O==="-"});continue}let W=X.match(/^(-|\d+)\t(-|\d+)\t$/);if(!W)continue;let U=W[1],K=W[2],B=Q[q+1],$=Q[q+2];if(!B||!$)continue;let V=Y.get(B)||[],D=V.includes($)?$:V.length===1?V[0]:$;q+=2,J.set(D,{added:U==="-"?null:parseInt(U,10),deleted:K==="-"?null:parseInt(K,10),isBinary:U==="-"||K==="-"})}return J}function uv(Z){let Y=new Map,Q=Z.split(/\r?\n/);for(let J of Q){let q=J.match(/^\s*(.+?)\s+\|\s+Bin\s+(\d+)\s+->\s+(\d+)\s+bytes\s*$/);if(!q)continue;let X=q[1].trim(),z=parseInt(q[2],10),W=parseInt(q[3],10),U=Xj(X);Y.set(U,{beforeBytes:z,afterBytes:W})}return Y}function Xj(Z){if(Z.includes("{")&&Z.includes("=>")&&Z.includes("}")){let Y=Z.indexOf("{"),Q=Z.indexOf("}",Y);if(Q>Y){let J=Z.slice(0,Y),q=Z.slice(Q+1),z=Z.slice(Y+1,Q).split("=>");if(z.length===2){let W=z[1].trim();return`${J}${W}${q}`.trim()}}}if(Z.includes("=>")){let Y=Z.split("=>");return Y[Y.length-1].trim()}return Z}function dv(Z){let Y=PZ(Z),Q=new Map;for(let J of Y){let q={path:J.newFileName,oldPath:J.oldFileName,headerLines:[],hunks:[]},X=null,z=0,W=0;for(let U of J.lines){if(U.type==="header"){if(q.hunks.length===0)q.headerLines.push(U.content);continue}if(U.type==="hunk"){let K=cv(U.content);if(!K)continue;X={oldStart:K.oldStart,newStart:K.newStart,lines:[]},q.hunks.push(X),z=K.oldStart,W=K.newStart;continue}if(!X)continue;if(U.type==="context"){X.lines.push({type:"context",content:U.content,oldCursorStart:z,newCursorStart:W}),z+=1,W+=1;continue}if(U.type==="delete"){X.lines.push({type:"delete",content:U.content,oldCursorStart:z,newCursorStart:W}),z+=1;continue}if(U.type==="add")X.lines.push({type:"add",content:U.content,oldCursorStart:z,newCursorStart:W}),W+=1}Q.set(q.path,q)}return Q}function cv(Z){let Y=Z.match(/^@@\s+-(\d+)(?:,(\d+))?\s+\+(\d+)(?:,(\d+))?\s+@@/);if(!Y)return null;return{oldStart:parseInt(Y[1],10),oldCount:Y[2]?parseInt(Y[2],10):1,newStart:parseInt(Y[3],10),newCount:Y[4]?parseInt(Y[4],10):1}}function lv(Z,Y,Q,J){return Z.map((q)=>{let X=Y.get(q.path)||(q.oldPath?Y.get(q.oldPath):void 0),z=Q.get(q.path)||(q.oldPath?Q.get(q.oldPath):void 0)||Q.get(Xj(q.path)),W=q.status.startsWith("R"),U=q.status.startsWith("C"),K=Boolean(X?.isBinary),B;if(W)B="rename";else if(U)B="copy";else if(K)B="binary";else if(Pq(q.path,J))B="noisy";else B="normal";return{status:q.status,path:q.path,oldPath:q.oldPath,added:X?.added??0,deleted:X?.deleted??0,isBinary:K,binaryStat:z,category:B}})}function zj(Z){if(!Z.startsWith("R")&&!Z.startsWith("C"))return{similarityPercent:null,driftPercent:null};let Y=parseInt(Z.slice(1),10);if(isNaN(Y))return{similarityPercent:null,driftPercent:null};let Q=Math.min(100,Math.max(0,Y));return{similarityPercent:Q,driftPercent:100-Q}}function nv(Z,Y){let Q=zj(Z);if(Q.driftPercent!=null)return Q.driftPercent>0;if(!Y)return!1;return Y.hunks.some((J)=>J.lines.some((q)=>q.type==="add"||q.type==="delete"))}function ov(Z){if(Z.category==="rename"||Z.category==="copy"){let Q=Z.category,J=zj(Z.status),q=J.driftPercent==null?"(similarity unknown)":J.driftPercent===0?"(identical)":`(drift ~${J.driftPercent}%)`;return`- ${Z.status[0]} [${Q}] ${Z.oldPath||Z.path} -> ${Z.path} ${q}`}if(Z.category==="binary"){let Q=Z.binaryStat?`${w6(Z.binaryStat.beforeBytes,1,1024)} -> ${w6(Z.binaryStat.afterBytes,1,1024)} bytes`:"binary size unavailable";return`- ${Z.status} [binary] ${Z.path} (${Q})`}let Y=Z.added==null||Z.deleted==null?"(line stats unavailable)":`(+${Z.added} -${Z.deleted})`;return`- ${Z.status} [${Z.category}] ${Z.path} ${Y}`}function Yj(Z,Y,Q,J){if(Z.hunks.length===0){let $=Eq(Z,[]);if(!J||$.length<=Q)return{text:$,whitespaceOnlyFile:!1,whitespaceOnlyHunksOmitted:0,droppedLowImportanceHunks:0,hardTrimmed:!1};return{text:$.slice(0,Q),whitespaceOnlyFile:!1,whitespaceOnlyHunksOmitted:0,droppedLowImportanceHunks:0,hardTrimmed:!0}}let q=[],X=0,z=!1;for(let $ of Z.hunks){let V=iv($.lines,Y),D=V.some((_)=>_.nonWhitespaceChange),F=V.some((_)=>_.whitespaceOnlyChange);if(!D&&F){X+=1;continue}z||=D;let O=sv(V),j=av(O);for(let _ of j){if(!_.some((I)=>I.type==="add"||I.type==="delete"))continue;let L=rv(_),A=_.reduce((I,G)=>{if((G.type==="add"||G.type==="delete")&&G.nonWhitespaceChange)return I+1;return I},0);q.push({text:L,importance:A,size:L.length})}}if(!z)return{text:"",whitespaceOnlyFile:!0,whitespaceOnlyHunksOmitted:X,droppedLowImportanceHunks:0,hardTrimmed:!1};let W=0,U=[...q],K=Eq(Z,U.map(($)=>$.text));if(K.length>Q&&U.length>0){let $=[...U].sort((V,D)=>{if(V.importance!==D.importance)return V.importance-D.importance;return D.size-V.size});while(K.length>Q&&U.length>0){let V=$.shift();if(!V)break;let D=U.indexOf(V);if(D===-1)continue;U.splice(D,1),W+=1,K=Eq(Z,U.map((F)=>F.text))}}let B=!1;if(J&&K.length>Q)B=!0,K=K.slice(0,Q);return{text:K,whitespaceOnlyFile:!1,whitespaceOnlyHunksOmitted:X,droppedLowImportanceHunks:W,hardTrimmed:B}}function iv(Z,Y){let Q=Z.map((J)=>({...J}));for(let J=0;J<Q.length;J++){if(Q[J].type!=="add"&&Q[J].type!=="delete")continue;let q=J;while(J<Q.length&&(Q[J].type==="add"||Q[J].type==="delete"))J+=1;let X=Q.slice(q,J),z=X.filter((B)=>B.type==="delete"),W=X.filter((B)=>B.type==="add"),U=Math.min(z.length,W.length);for(let B=0;B<U;B++){let $=z[B],V=W[B];if(Qj($.content,V.content,Y))$.whitespaceOnlyChange=!0,V.whitespaceOnlyChange=!0;else $.nonWhitespaceChange=!0,V.nonWhitespaceChange=!0}for(let B=U;B<z.length;B++)z[B].nonWhitespaceChange=!0;for(let B=U;B<W.length;B++)W[B].nonWhitespaceChange=!0;if(!X.some((B)=>B.nonWhitespaceChange)){let B=z.map((V)=>V.content).join(`
|
|
830
|
+
`),$=W.map((V)=>V.content).join(`
|
|
831
|
+
`);if(!Qj(B,$,Y)){for(let V of z)V.nonWhitespaceChange=!0,V.whitespaceOnlyChange=!1;for(let V of W)V.nonWhitespaceChange=!0,V.whitespaceOnlyChange=!1}}J-=1}return Q}function Qj(Z,Y,Q){if(Z===Y)return!1;if(!Q){let X=Z.replace(/\s+/g,""),z=Y.replace(/\s+/g,"");return X===z}let q=Q(Z,Y).filter((X)=>X.added||X.removed);if(q.length===0)return!1;return q.every((X)=>/^\s*$/.test(X.value))}function sv(Z){let Y=new Set;for(let J=0;J<Z.length;J++){let q=Z[J];if(q.type==="context"){Y.add(J);continue}if(q.nonWhitespaceChange)Y.add(J)}for(let J=0;J<Z.length;J++){let q=Z[J];if(!(q.type==="add"||q.type==="delete")||!q.whitespaceOnlyChange)continue;let X=J;while(J<Z.length&&(Z[J].type==="add"||Z[J].type==="delete")&&Z[J].whitespaceOnlyChange)J+=1;let z=J-1,W=Z[X-1],U=Z[z+1],K=Boolean(W)&&(W.type==="add"||W.type==="delete")&&Boolean(W.nonWhitespaceChange),B=Boolean(U)&&(U.type==="add"||U.type==="delete")&&Boolean(U.nonWhitespaceChange);if(K)Y.add(X);if(B)Y.add(z);J-=1}let Q=[];for(let J of[...Y].sort((q,X)=>q-X))Q.push(Z[J]);return Q}function av(Z){if(Z.length===0)return[];let Y=[],Q=[Z[0]];for(let J=1;J<Z.length;J++){let q=Z[J-1],X=Z[J],z=q.oldCursorStart+(q.type==="add"?0:1),W=q.newCursorStart+(q.type==="delete"?0:1);if(X.oldCursorStart!==z||X.newCursorStart!==W){Y.push(Q),Q=[X];continue}Q.push(X)}if(Q.length>0)Y.push(Q);return Y}function rv(Z){if(Z.length===0)return"";let Y=Z[0].oldCursorStart,Q=Z[0].newCursorStart,J=Z.reduce((W,U)=>W+(U.type==="add"?0:1),0),q=Z.reduce((W,U)=>W+(U.type==="delete"?0:1),0),X=`@@ -${Jj(Y,J)} +${Jj(Q,q)} @@`,z=Z.map((W)=>{if(W.type==="context")return` ${W.content}`;if(W.type==="add")return`+${W.content}`;return`-${W.content}`});return[X,...z].join(`
|
|
832
|
+
`)}function Jj(Z,Y){if(Y===1)return String(Z);return`${Z},${Y}`}function Eq(Z,Y){return[...[`diff --git a/${Z.oldPath} b/${Z.path}`,...Z.headerLines],...Y].filter((q)=>q.length>0).join(`
|
|
833
|
+
`)}function Pq(Z,Y){return Y.some((Q)=>Q(Z))}async function tv(){return Zj??=(async()=>{try{return(await Promise.resolve().then(() => (Dq(),Oq))).diffChars}catch(Z){throw new o(`Failed to load diff module for whitespace-aware commit summary: ${o.from(Z).message}`,"DIFF_MODULE_LOAD_FAILED")}})(),await Zj}var hv=50000,gv=1000,Zj=null;var Hj=N(()=>{z0();m0();bZ();wq();x1()});import ev from"path";import ZS from"crypto";function Wj(Z){return ZS.createHash("sha256").update(Z).digest("hex").slice(0,16)}function z7(Z){return Z.slice(0,Iz)}function _Q(Z,Y){let Q=z7(Z),J=z7(Y),q=Math.max(Q.length,J.length,1),X=vX.LCSLength_of(Q,J);return q-X}function YS(Z){if(Z.length===0)return null;if(Z.length===1)return z7(Z[0]);let Y=0,Q=Number.POSITIVE_INFINITY;for(let J=0;J<Z.length;J++){let q=0;for(let z=0;z<Z.length;z++){if(J===z)continue;q+=_Q(Z[J],Z[z])}let X=q/(Z.length-1);if(X<Q)Q=X,Y=J}return z7(Z[Y])}function QS(Z,Y,Q){if(Z.length===0||Q<=0)return[];let J=Math.min(Q,Z.length),q=[],X=new Set,z=0,W=Number.POSITIVE_INFINITY;for(let K=0;K<Z.length;K++){let B=_Q(Y,Z[K].header);if(B<W)W=B,z=K}q.push(z),X.add(z);let U=new hX(Z.length*4+8,!0);while(U.True&&q.length<J){let K=-1,B=Number.NEGATIVE_INFINITY;for(let $=0;$<Z.length;$++){if(X.has($))continue;let V=Number.POSITIVE_INFINITY;for(let D of q){let F=_Q(Z[$].header,Z[D].header);if(F<V)V=F}if(V>B)B=V,K=$}if(K<0)break;q.push(K),X.add(K)}return q.map((K)=>Z[K])}function JS(Z){return Z.split("\x1E").map((Y)=>Y.trim()).filter((Y)=>Y.length>0).map((Y)=>{let Q=Y.indexOf("\x00");if(Q===-1)return null;let J=Y.slice(0,Q).trim(),q=Y.slice(Q+1).trim();if(!J||!q)return null;return{hash:J,header:q}}).filter((Y)=>Y!==null)}async function qS(Z){C("");let Y=P0({message:"learning this repo's commit style...",animateGradient:!0});try{let Q=await k`${Z} log --no-merges -n ${_z} --format=%H%x00%s%x1e`,J=JS(Q.stdout);if(J.length===0)return Y.stop(),{guideline:null,historyCount:0};let q=J.slice(0,Math.min(Nz,J.length)),X=YS(q.map((F)=>F.header));if(!X)return Y.stop(),{guideline:null,historyCount:0};let z=QS(J,X,F2),W=z.map((F)=>F.hash),U=z.reduce((F,O)=>{return F+_Q(X,O.header)},0)/Math.max(z.length,1),K=new Set(z.map((F)=>z7(F.header))).size;if(M.debug(`Commit guideline sampling stats: pool50=${J.length}, medoidPool=${q.length}, selected=${z.length}, uniquePrefix28=${K}, avgDistanceToMedoid=${U.toFixed(2)}`,"commit"),M.debug(`Commit guideline medoid prefix(28): "${X}"`,"commit"),M.debug(`Commit guideline selected examples:
|
|
834
|
+
${z.map((F,O)=>`${O+1}. ${F.hash.slice(0,10)} ${F.header}`).join(`
|
|
835
|
+
`)}`,"commit"),W.length===0)return Y.stop(),{guideline:null,historyCount:0};let $=(await k`${Z} show -s --format=%B%x00 ${W}`).stdout.split("\x00").map((F)=>F.trim()).filter((F)=>F.length>0).slice(0,F2);if($.length===0)return Y.stop(),{guideline:null,historyCount:0};let D=await(await n1()).generate({prompt:jD($),temperature:0.2,reasoning:"medium"});return Y.stop(),{guideline:D.trim(),historyCount:$.length}}catch(Q){Y.stop();let J=o.from(Q);return M.warn(`Failed to learn commit guidelines: ${J.message}`,"commit"),M.debug(`LLM error details: ${J}`,"commit"),{guideline:null,historyCount:0}}}async function XS(Z,Y){let Q=await I0(),J=await y5(Z),q=await S5(Z),X=d0(J),z=Y.get("commit.guidelineCacheDays",30),W=z*24*60,U=q?Wj(`remote:${q}`):"",K=Wj(`path:${X}`),B=U?`commit.repoGuidelines.${U}`:"",$=`commit.repoGuidelines.${K}`;if(B){let _=await Q.get(B);if(_)return M.debug(`Using cached commit guidelines for remote ${q}`,"commit"),_}let V=await Q.get($);if(V){if(B)await Q.set(B,V,{maxAgeMinutes:W}),M.debug(`Promoted commit guidelines cache to remote ${q}`,"commit");else M.debug(`Using cached commit guidelines for ${X}`,"commit");return V}let{guideline:D,historyCount:F}=await qS(Z);if(!D||F===0)return M.warn("No commit history found in this repository. Falling back to comprehensive format.","commit"),null;if(F<5)M.warn(`Only ${F} commit(s) found in history. The learned guidelines may be less accurate.`,"commit");let O=B||$;await Q.set(O,D,{maxAgeMinutes:W});let j=B?`remote ${q}`:X;return M.debug(`Cached commit guidelines for ${j} (${z} days)`,"commit"),D}async function zS(Z){let{git$:Y,args:Q}=Z,J=Q.slice(2),q=J.popOption("--no-commit")!==null||J.popOption("-nc")!==null,X=J.popOption("--copy")!==null||J.popOption("-cp")!==null,z=J.popOption("--yes")!==null||J.popOption("-y")!==null,W=J.popOption("--preview")!==null,K=(J.popValue("--describe")||J.popValue("-d")||"").trim();if((Q.hasOption("--describe")||Q.hasOption("-d"))&&!K)M.warn("Ignoring --describe/-d because no description text was provided.","commit");let B=await K0(),$=B.get("llm.showThinking",!0),V=B.get("commit.commitPattern","inherit"),D=B.get("commit.noisyFiles",[]),F=Array.isArray(D)?D.filter((L)=>typeof L==="string"):[],O=P0({message:"compiling changes summary..."}),j=await qj(Y,{noisyPatterns:F});if(O.stop(),!j.hasChanges||j.summary.trim().length===0)return C(`${H.red}No staged changes found. Please stage your changes before generating a commit message.${H.reset}`),1;let _;if(V==="inherit"){let L=await XS(Y,B);if(L)_=MD(j.summary,L,K);else _=pJ(j.summary,K)}else _=pJ(j.summary,K);if(W)return C(_),0;C(`${H.cyan}Generating commit message based on staged changes...${H.reset}
|
|
836
|
+
`);try{let L=await n1(),A=P0({message:"connecting...",animateGradient:!1}),I=L.streamGenerate({prompt:_,temperature:0.14,reasoning:"low"}),G="",P=!1,T=!1,S="";for await(let c of I){if(c.error)return A.stop(),M.error(c.error.message+(c.error.cause?": "+c.error.cause:""),"commit"),M.debug(`LLM error details: ${o.from(c.error)}`,"commit"),1;if(c.thinkingChunk){if(!T){if(T=!0,A.options.animateGradient=!0,!$)A.options.message="reasoning..."}if($)S=(S+c.thinkingChunk.replace(/[\n\r]/g,"")).slice(-32),A.options.message=`reasoning... ${S.trim()}`;continue}if(c.chunk){if(!P)P=!0,A.stop(),C(`${H.cyan}Generated Commit Message:${H.reset}`);C(c.chunk,""),G+=c.chunk}}if(!G)return C(`
|
|
837
|
+
`),M.error("Unable to generate commit message (empty response).","commit"),1;let y=G;G=G.replace(/(^\s*["'`]*|["'`]*\s*$)/g,"");let g=G.indexOf(`
|
|
838
|
+
`);if(g!==-1){let c=G.slice(0,g),v=G.slice(g+1).trim();G=c+`
|
|
839
|
+
|
|
840
|
+
`+t(v,72,{mode:"softboundary",redundancyLv:-1})}if(E5(y,G),C(""),q){if(z)M.warn("Ignoring --yes because --no-commit was requested.","commit");if(X)if(await T5(G))C(`${H.cyan}(message has been copied to clipboard)${H.reset}`);else M.warn("(failed to copy to clipboard)","commit");return 0}if(z){let c=G.split(/\n{2,}/).filter((J0)=>J0.trim().length>0),v=[];for(let J0 of c)v.push("-m",J0);return await E0`${Y} commit ${v} ${J}`.catch(h6),0}let x=ev.join(K6,`gdx_commit_msg_${Date.now()}.txt`);return await c0(x,G,"utf8"),await E0`${Y} commit -F ${x} --edit ${J}`.catch(h6),await O7(x).catch(h6),0}catch(L){return M.error(u(L,{color:!0}),"commit"),1}}var Uj,Kj;var xq=N(()=>{J6();z0();m0();R0();mJ();w0();uJ();H0();v0();S0();$6();W4();e0();Hj();s0();Uj={auto:zS},Kj={long:()=>{return t(Z0`
|
|
837
841
|
${H.bright+d("COMMIT AUTO",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
838
842
|
Generate a commit message from staged changes using an LLM.
|
|
839
843
|
|
|
@@ -846,16 +850,16 @@ ${z.map((V,D)=>`${D+1}. ${V.hash.slice(0,10)} ${V.header}`).join(`
|
|
|
846
850
|
${H.bright+d("REQUIREMENTS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
847
851
|
A non-empty staged diff is required; the command will error if there are no staged changes.
|
|
848
852
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Extends git commit with ability to auto-generate messages using an LLM.",usage:()=>{return t(Z0`
|
|
849
|
-
${H.cyan}${
|
|
853
|
+
${H.cyan}${R} commit auto ${H.dim}[--no-commit|-nc] [--copy|-cp] [--yes|-y] [--describe|-d <text>] [--preview]${H.reset}
|
|
850
854
|
|
|
851
855
|
Examples:
|
|
852
|
-
${H.cyan}${
|
|
853
|
-
${H.cyan}${
|
|
854
|
-
${H.cyan}${
|
|
855
|
-
${H.cyan}${
|
|
856
|
-
${H.cyan}${
|
|
857
|
-
${H.cyan}${
|
|
858
|
-
`);for(let Q of Y){let J=Z.entryMeta[Q];if(!J)continue;let q=J.expiresAt-Date.now(),X=q<=0?"expired":J.expiresAt>=Number.MAX_SAFE_INTEGER?"N/A":
|
|
856
|
+
${H.cyan}${R} commit auto ${H.reset+H.dim}# Generate and commit using LLM-generated message${H.reset}
|
|
857
|
+
${H.cyan}${R} commit auto --no-commit ${H.reset+H.dim}# Print generated message without committing${H.reset}
|
|
858
|
+
${H.cyan}${R} commit auto --no-commit --copy ${H.reset+H.dim}# Copy generated message to clipboard${H.reset}
|
|
859
|
+
${H.cyan}${R} commit auto --yes ${H.reset+H.dim}# Commit immediately without editing${H.reset}
|
|
860
|
+
${H.cyan}${R} commit auto -d ${'"refactor parser + trim noisy lockfile diffs"'} ${H.reset+H.dim}# Add extra context for the LLM${H.reset}
|
|
861
|
+
${H.cyan}${R} commit auto --preview ${H.reset+H.dim}# Print full LLM prompt and exit${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}}});import HS from"path";async function bq(Z){let Y=Z.args[1]?.toLowerCase(),{match:Q,candidates:J}=h0(Y,["list","prune","reset","delete","disable","enable"]);switch(Q){case"list":return await US();case"prune":return await WS();case"reset":return await KS();case"delete":return await BS(Z.args.slice(2));case"disable":return await Bj(!1);case"enable":return await Bj(!0);default:if(J&&J.length>0)M.warn(`Ambiguous command '${Y}'. Did you mean one of: ${J.join(", ")}?`);return C(Sq.usage()),0}}async function WS(){let Z=null;try{Z=await vq()}catch(q){return M.error(u(q,{color:!0}),"cache"),1}if(!Z)return C(`${H.yellow}No valid cache found. Nothing to prune.${H.reset}`),0;let Y=Date.now(),Q=Object.entries(Z.entryMeta).filter(([,q])=>Y>q.expiresAt).map(([q])=>q),J=0;for(let q of Q)if($S(Z,q))J++;if(Z.meta.lastPruneAt=Y,J>0)Z.meta.updatedAt=Y;if(await $j(Z),C5(),J>0)C(`${H.green}Pruned ${J} expired cache entries.${H.reset}`);else C(`${H.cyan}No expired cache entries found.${H.reset}`);return 0}async function US(){let Z=null;try{Z=await vq()}catch(Q){return M.error(u(Q,{color:!0}),"cache"),1}if(!Z)return C(`${H.yellow}No valid cache found. Nothing to list.${H.reset}`),0;let Y=Object.keys(Z.entryMeta).sort((Q,J)=>{let q=Z.entryMeta[Q],X=Z.entryMeta[J];return(q?.expiresAt??0)-(X?.expiresAt??0)||Q.localeCompare(J)});if(Y.length===0)return C(`${H.yellow}No cache keys found.${H.reset}`),0;C(`${H.cyan}Cache:${H.reset} ${g6} ${H.dim}(${Y.length} keys)${H.reset}
|
|
862
|
+
`);for(let Q of Y){let J=Z.entryMeta[Q];if(!J)continue;let q=J.expiresAt-Date.now(),X=q<=0?"expired":J.expiresAt>=Number.MAX_SAFE_INTEGER?"N/A":g8.getTimeFromMS(q).modern(),z=H.green;if(q<=0)z=H.dim;else if(q<3600000)z=H.red;else if(q<43200000)z=H.yellow;let W=FS(Z.data,Q),U=VS(W);C(`${H.cyan}${b0(Q,24,{align:"left",redundancyLv:-1,overflow:"collapse"})}${H.reset} ttl=${z}${b0(X,12,{align:"left",redundancyLv:-1,overflow:"visible"})}${H.reset} ${H.dim}preview=${U}${H.reset}`)}return 0}async function KS(){try{let Z=l(g6);if(await _6(g6,{force:!0,recursive:!0}),C5(),!Z)return C(`${H.yellow}No valid cache found. Nothing to delete.${H.reset}`),0;let Y=l(g6)?`${H.yellow}Cache file not removed: ${g6}${H.reset}`:`${H.green}Cache file deleted: ${g6}${H.reset}`;return C(Y),0}catch(Z){return M.error(u(Z,{color:!0}),"cache"),1}}async function BS(Z){if(Z.length===0)return M.error("Usage: gdx cache delete <key|prefix> [more...]","cache"),1;let Y=null;try{Y=await vq()}catch(z){return M.error(u(z,{color:!0}),"cache"),1}if(!Y)return C(`${H.yellow}No valid cache found. Nothing to delete.${H.reset}`),0;let Q=Object.keys(Y.entryMeta),J=new Set;for(let z of Z){let W=z.trim();if(!W)continue;let U=W.endsWith(".")?W.slice(0,-1):W,K=U.length>0?`${U}.`:"";for(let B of Q)if(B===U||K&&B.startsWith(K))J.add(B)}if(J.size===0)return C(`${H.yellow}No matching cache keys found.${H.reset}`),0;let q=Date.now(),X=0;for(let z of J){let W=Y.entryMeta[z];if(!W)continue;W.expiresAt=q-1,W.updatedAt=q,X++}if(X>0)return Y.meta.updatedAt=q,await $j(Y),C5(),C(`${H.green}Marked ${X} cache entries as expired.${H.reset}`),0;return C(`${H.yellow}No matching cache keys found.${H.reset}`),0}async function Bj(Z){let Y=await K0();await Y.set("cache.enabled",Z),await Y.save();let Q=Z?"enabled":"disabled";return C(`${H.green}Cache ${Q}.${H.reset}`),0}async function vq(){try{let Z=await f0(g6,"utf-8"),Y=JSON.parse(Z);try{LZ(A5,Y)}catch{return null}if(!Y.meta.lastPruneAt)Y.meta.lastPruneAt=Y.meta.updatedAt||Date.now();return Y}catch(Z){if(o.from(Z).code==="ENOENT")return null;throw Z}}async function $j(Z){let Y=HS.dirname(g6);i0(Y,{recursive:!0}),await c0(g6,JSON.stringify(Z),"utf-8")}function $S(Z,Y){if(!Z.entryMeta[Y])return!1;delete Z.entryMeta[Y];let Q=Y.split("."),J=[],q=Z.data;for(let X of Q)if(q&&typeof q==="object"&&X in q)J.push({obj:q,key:X}),q=q[X];else return!1;if(J.length>0){let X=J[J.length-1];delete X.obj[X.key]}for(let X=J.length-2;X>=0;X--){let{obj:z,key:W}=J[X],U=z[W];if(U&&typeof U==="object"&&Object.keys(U).length===0)delete z[W];else break}return!0}function FS(Z,Y){let Q=Y.split("."),J=Z;for(let q of Q)if(J&&typeof J==="object"&&q in J)J=J[q];else return;return J}function VS(Z){if(typeof Z==="string")return`'${B4(Z.replace(/\s+/g," "),60,"mid",-1)}'`;if(typeof Z==="number"||typeof Z==="boolean"||Z==null)return String(Z);if(Array.isArray(Z)){let Y=B4(u(Z,{color:!1}),60,"mid",-1);return`[${Z.length}] ${Y}`}if(typeof Z==="object")return`{...} ${B4(u(Z,{color:!1}),60,"mid",-1)}`;return B4(String(Z),60,"mid",-1)}var Sq,Fj;var NQ=N(()=>{z0();W4();$6();H0();S0();v0();J6();w0();R0();G5();s0();A4();Sq={long:()=>{return t(Z0`
|
|
859
863
|
${H.bright+d("CACHE",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
860
864
|
Manually manage gdx cache entries and settings.
|
|
861
865
|
|
|
@@ -866,20 +870,20 @@ ${z.map((V,D)=>`${D+1}. ${V.hash.slice(0,10)} ${V.header}`).join(`
|
|
|
866
870
|
- delete: Mark cache entries as expired by key or prefix.
|
|
867
871
|
- enable/disable: Toggle cache.enabled in gdx config.
|
|
868
872
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Manually manage gdx cache entries and settings.",usage:()=>{return t(Z0`
|
|
869
|
-
${H.cyan}${
|
|
870
|
-
${H.cyan}${
|
|
871
|
-
${H.cyan}${
|
|
872
|
-
${H.cyan}${
|
|
873
|
-
${H.cyan}${
|
|
874
|
-
${H.cyan}${
|
|
873
|
+
${H.cyan}${R} cache prune${H.reset}
|
|
874
|
+
${H.cyan}${R} cache reset${H.reset}
|
|
875
|
+
${H.cyan}${R} cache list${H.reset}
|
|
876
|
+
${H.cyan}${R} cache delete ${H.dim}<key|prefix> [more...]${H.reset}
|
|
877
|
+
${H.cyan}${R} cache enable${H.reset}
|
|
878
|
+
${H.cyan}${R} cache disable${H.reset}
|
|
875
879
|
|
|
876
880
|
Examples:
|
|
877
|
-
${H.cyan}${
|
|
878
|
-
${H.cyan}${
|
|
879
|
-
${H.cyan}${
|
|
880
|
-
${H.cyan}${
|
|
881
|
-
${H.cyan}${
|
|
882
|
-
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},
|
|
881
|
+
${H.cyan}${R} cache list ${H.reset+H.dim}# List cached keys with TTL${H.reset}
|
|
882
|
+
${H.cyan}${R} cache prune ${H.reset+H.dim}# Remove expired cache entries${H.reset}
|
|
883
|
+
${H.cyan}${R} cache reset ${H.reset+H.dim}# Delete cache file entirely${H.reset}
|
|
884
|
+
${H.cyan}${R} cache delete git git.config ${H.reset+H.dim}# Expire by key/prefix${H.reset}
|
|
885
|
+
${H.cyan}${R} cache disable ${H.reset+H.dim}# Turn caching off${H.reset}
|
|
886
|
+
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},Fj={$root:["list","prune","reset","delete","enable","disable"]}});var Mj={};y8(Mj,{spellCheckDocument:()=>OS,prettyFormatIssues:()=>MS,getBundledDictionaryNames:()=>DS});async function Dj(){return Vj??=import("cspell-lib"),await Vj}async function OS(...Z){return await(await Dj()).spellCheckDocument(...Z)}async function DS(){return Oj??=(async()=>{let Y=await(await Dj()).getDefaultBundledSettingsAsync(),Q=new Set,J=[],q=(X)=>{if(!X||Q.has(X))return;Q.add(X),J.push(X)};return Y.dictionaryDefinitions?.forEach((X)=>q(X.name)),Y.dictionaries?.forEach((X)=>q(X)),J})(),Oj}function MS(Z,Y){if(Z.issues.length===0)return H.green+"✓ No spelling issues found!"+H.reset;let Q=H.yellow+`✗ Found ${Z.issues.length} spelling issue${Z.issues.length===1?"":"s"}:
|
|
883
887
|
`+H.reset;return Q+=H.dim+"─".repeat(60)+`
|
|
884
888
|
|
|
885
889
|
`+H.reset,Z.issues.forEach((J,q)=>{let X=Y.substring(0,J.line.offset),z=X.length-X.replace(/\n/g,"").length,W=J.offset-J.line.offset;Q+=`${H.dim}${q+1}.${H.reset} ${H.cyan}Line ${z+1}${H.reset}, ${H.magenta}Col ${W+1}${H.reset}: ${H.red+H.bright}"${J.text}"${H.reset}
|
|
@@ -887,17 +891,17 @@ ${z.map((V,D)=>`${D+1}. ${V.hash.slice(0,10)} ${V.header}`).join(`
|
|
|
887
891
|
`}if(J.suggestions?.length){let K=J.suggestions.slice(0,5).join(", ");Q+=` ${H.cyan}Suggestions:${H.reset} ${K}
|
|
888
892
|
`}if(q<Z.issues.length-1)Q+=`
|
|
889
893
|
`}),Q+=H.dim+"─".repeat(60)+H.reset+`
|
|
890
|
-
`,Q}var
|
|
894
|
+
`,Q}var Vj=null,Oj=null;var jj=N(()=>{H0()});async function yq(Z){let Q=R5().$,{git$:J}=Z;if(!await r4(J))return 1;let q=P0({message:"Initializing library..."}),{spellCheckDocument:X,prettyFormatIssues:z,getBundledDictionaryNames:W}=await Promise.resolve().then(() => (jj(),Mj)),K=(await K0()).get("lint.maxFileSizeKb")||1024;q.options.message="Scanning commits...";let B=await GJ(J)||"",$="";if(B)$=`${B}..HEAD`;else q.stop(),M.warn("No upstream configured. Checking last commit only.","lint"),$="HEAD^..HEAD",q.start();let V=0,D=0,[F,O,j]=await Promise.all([Q`${J} log --pretty=format:"%s\n%b$$\$___SEP___\$$$" ${$}`.then((_)=>_.stdout).catch(()=>""),Q`${J} diff ${$}`.then((_)=>_.stdout).catch(()=>""),Q`${J} diff --name-only ${$}`.then((_)=>_.stdout).catch(()=>"")]);if(F){q.options.message="Checking commit message spelling...";let _=await W(),L=F.split("$$$___SEP___$$$").filter((A)=>A.trim());for(let[A,I]of L.entries()){q.start(!1);let G=await X({uri:"commit-message",text:I,languageId:"plaintext",locale:"en"},{generateSuggestions:!0,noConfigSearch:!0,unknownWords:"report-common-typos"},{dictionaries:_});if(G.issues.length===0)continue;q.stop(),D+=G.issues.length,_j("Spelling",`At HEAD~${A} found ${G.issues.length} potential spelling issue(s) in commit messages.
|
|
891
895
|
|
|
892
|
-
`+z(
|
|
893
|
-
`).filter((
|
|
894
|
-
Please resolve merge conflict markers.`),
|
|
896
|
+
`+z(G,I))}}if(q.stop(),O){let _="",L=O.split(/^diff --git a\/.+$/m);for(let A of L){let I=A.split(`
|
|
897
|
+
`).filter((G)=>G.trim());if(_=I.slice(2,4).find((G)=>G.startsWith("+++ b/"))?.split(" b/")[1]||"unknown",/\n?\+?<{7}(?:[^\n]*\n)*\+?={7}(?:[^\n]*\n)*\+?>{7}/.test(O))Nj("Conflict Markers",`File: ${_}
|
|
898
|
+
Please resolve merge conflict markers.`),V++;for(let G=3;G<I.length;G++){let P=I[G];if(P.startsWith("+")){let T=P.substring(1);for(let S of Qz)if(S.test(T))Nj("Sensitive Content",`File: ${_}
|
|
895
899
|
Matched Pattern: ${S}
|
|
896
|
-
Content: ${T}`),
|
|
897
|
-
`).filter((I)=>I.trim()).map(async(I)=>{try{let{stdout:
|
|
898
|
-
File size ${
|
|
899
|
-
Lint passed with ${
|
|
900
|
-
No problems found.`+H.reset),0}function
|
|
900
|
+
Content: ${T}`),V++}}}}if(j){let L=j.split(`
|
|
901
|
+
`).filter((I)=>I.trim()).map(async(I)=>{try{let{stdout:G}=await Q`${J} cat-file -s HEAD:${I}`,P=parseInt(G.trim(),10);return{file:I,sizeBytes:P}}catch{return null}}),A=await Promise.all(L);for(let I of A){if(!I)continue;let{file:G,sizeBytes:P}=I;if(P/1024>K)_j("Size",`File: ${G}
|
|
902
|
+
File size ${w6(P,2,1024)}B exceeds limit of ${K}KiB`),D++}}if(V>0)return M.error(`Lint failed with ${V} errors and ${D} warnings.`,"lint"),1;else if(D>0)return C(H.yellow+`
|
|
903
|
+
Lint passed with ${D} warnings.`+H.reset),0;else return C(H.green+`
|
|
904
|
+
No problems found.`+H.reset),0}function _j(Z,Y){Y=t(Y,100,{indent:" "}),C(H.bgYellow+H.bright+H.black+" LWARN "+H.reset+H.invert+` ${Z} ${H.reset+H.yellow} ${Y}`+H.reset)}function Nj(Z,Y){Y=t(Y,100,{indent:" "}),C(H.bgRed+H.bright+H.white+" LERROR "+H.reset+H.invert+` ${Z} ${H.reset+H.red} ${Y}`+H.reset)}var Ij,Lj;var IQ=N(()=>{z0();m0();R0();$6();e0();H0();w0();S0();v0();s0();Ij={long:()=>{return t(Z0`
|
|
901
905
|
${H.bright+d("LINT",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
902
906
|
Runs a set of linting checks on your outgoing commits (or the last commit if no upstream is configured).
|
|
903
907
|
|
|
@@ -908,28 +912,28 @@ No problems found.`+H.reset),0}function Qj(Z,Y){Y=t(Y,100,{indent:" "}),R(H.bgY
|
|
|
908
912
|
- File Size: Warns if files exceed the configured size limit (default 1MB).
|
|
909
913
|
|
|
910
914
|
${H.bright+d("CONFIGURATION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
911
|
-
You can configure the behavior in your ~/.gdx/.gdxrc.toml file or \`${H.cyan}${
|
|
915
|
+
You can configure the behavior in your ~/.gdx/.gdxrc.toml file or \`${H.cyan}${R} gdx-config${H.reset}\`:
|
|
912
916
|
[lint]
|
|
913
917
|
onPushBehavior = "off" | "error" | "warning" # Default: "off"
|
|
914
918
|
maxFileSizeKb = 1024 # Default: 1024 KB
|
|
915
919
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Lint outgoing commits for format, spelling, sensitive data, and more.",usage:()=>{return t(Z0`
|
|
916
|
-
${H.cyan}${
|
|
920
|
+
${H.cyan}${R} lint${H.reset}
|
|
917
921
|
|
|
918
922
|
Examples:
|
|
919
|
-
${H.cyan}${
|
|
923
|
+
${H.cyan}${R} lint ${H.reset+H.dim}# Run lint checks on outgoing commits${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},Lj={$root:[]}});import fq from"path";async function jS(Z){try{let Y=await AJ(Z,"^submodule\\..*\\.path$",{filePath:".gitmodules"});if(Y.length===0)return[];let Q=[];for(let J of Y){let q=J.value.trim();if(!q)continue;Q.push({path:q,status:" "})}return Q}catch{return[]}}async function _S(Z,Y,Q){try{return(await k`${Z} -C ${Y} ${NS(Q)}`).stdout}catch(J){let q=o.from(J);return M.warn(`Failed to get status for submodule ${Y}.
|
|
920
924
|
Error: ${q.message}`,"status"),M.debug(`Failed to get status for submodule ${Y}.
|
|
921
|
-
${q.toString({color:!0})}`,"status"),null}}function
|
|
922
|
-
`),await
|
|
923
|
-
${H.dim}No submodules found.${H.reset}`),0;for(let U of W){let K=
|
|
925
|
+
${q.toString({color:!0})}`,"status"),null}}function NS(Z){let Y=["status",...Z];if(Q6.supportsColor<=0)return Y;if(IS(Z)||LS(Z)||wS(Z))return Y;return["-c","color.ui=always",...Y]}function IS(Z){return Z.some((Y)=>Y==="--no-color"||Y==="--color=never")}function LS(Z){return Z.some((Y)=>Y==="--porcelain"||Y.startsWith("--porcelain="))}function wS(Z){return Z.some((Y)=>Y==="--color"||Y.startsWith("--color="))}async function hq(Z){let{git$:Y,args:Q}=Z,J=Q.slice(1),q=!1;while(J.popOption("-r"))q=!0;while(J.popOption("--recursive"))q=!0;if(!q)return await E0`${Y} status ${J}`.then((X)=>X.exitCode??0);try{let X=await F6(Y),z=process.cwd();C(`${H.cyan}${H.bright}━━━ Repository Root${H.reset}${H.dim} (${fq.relative(z,X)||"."})${H.reset}
|
|
926
|
+
`),await E0`${Y} status ${J}`;let W=await jS(Y);if(W.length===0)return C(`
|
|
927
|
+
${H.dim}No submodules found.${H.reset}`),0;for(let U of W){let K=fq.resolve(X,U.path),B=fq.relative(z,K);C(`
|
|
924
928
|
${H.cyan}${H.bright}━━━ Submodule: ${U.path}${H.reset}${H.dim} (${B})${H.reset}
|
|
925
|
-
`);let $=await
|
|
926
|
-
`);continue}if($)
|
|
927
|
-
${X}`,"status"),1}}var
|
|
929
|
+
`);let $=await _S(Y,K,J);if($===null){C(`${H.dim}Unable to get status for this submodule.${H.reset}
|
|
930
|
+
`);continue}if($)C($)}return 0}catch(X){return M.error(`Failed to get recursive status.
|
|
931
|
+
${X}`,"status"),1}}var wj,Aj;var LQ=N(()=>{z0();m0();R0();H0();v0();w0();S0();e0();s0();wj={long:()=>{return t(Z0`
|
|
928
932
|
${H.bright+d("STATUS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
929
933
|
Show the working tree status for the repository and optionally all submodules.
|
|
930
934
|
|
|
931
935
|
${H.bright+d("OVERVIEW",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
932
|
-
\`${H.cyan}${
|
|
936
|
+
\`${H.cyan}${R} status${H.reset}\` is a wrapper around \`${H.cyan}git status${H.reset}\` with added support for recursive submodule status checking. When the \`${H.cyan}--recursive${H.reset}\` or \`${H.cyan}-r${H.reset}\` flag is used, it will show the status of the main repository followed by the status of each submodule.
|
|
933
937
|
|
|
934
938
|
${H.bright+d("RECURSIVE MODE",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
935
939
|
When \`${H.cyan}--recursive${H.reset}\` or \`${H.cyan}-r${H.reset}\` is specified:
|
|
@@ -939,39 +943,39 @@ ${X}`,"status"),1}}var zj,Hj;var MQ=j(()=>{z0();g0();R0();H0();b0();w0();v0();X6
|
|
|
939
943
|
- All other \`${H.cyan}git status${H.reset}\` flags are passed through to each status check
|
|
940
944
|
|
|
941
945
|
${H.bright+d("EXAMPLES",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
942
|
-
${H.cyan}${
|
|
946
|
+
${H.cyan}${R} status --recursive${H.reset}
|
|
943
947
|
Show status for repository and all submodules
|
|
944
948
|
|
|
945
|
-
${H.cyan}${
|
|
949
|
+
${H.cyan}${R} s -r${H.reset}
|
|
946
950
|
Same as above using shorthand
|
|
947
951
|
|
|
948
|
-
${H.cyan}${
|
|
952
|
+
${H.cyan}${R} status -r --short${H.reset}
|
|
949
953
|
Show short format status recursively
|
|
950
954
|
|
|
951
|
-
${H.cyan}${
|
|
955
|
+
${H.cyan}${R} status --recursive --porcelain${H.reset}
|
|
952
956
|
Show porcelain format status recursively
|
|
953
957
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Show working tree status with optional recursive submodule support",usage:()=>{return t(Z0`
|
|
954
|
-
${H.cyan}${
|
|
955
|
-
${H.cyan}${
|
|
958
|
+
${H.cyan}${R} status ${H.dim}[--recursive|-r] [<git-status-options>]${H.reset}
|
|
959
|
+
${H.cyan}${R} s ${H.dim}[--recursive|-r] [<git-status-options>]${H.reset}
|
|
956
960
|
|
|
957
961
|
Examples:
|
|
958
|
-
${H.cyan}${
|
|
959
|
-
${H.cyan}${
|
|
962
|
+
${H.cyan}${R} status --recursive ${H.reset+H.dim}# Show status for repo and all submodules${H.reset}
|
|
963
|
+
${H.cyan}${R} s -r --short ${H.reset+H.dim}# Short format with submodules${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},Aj={$root:{$allOf:["-r","--recursive","--short","--porcelain","--branch","--long"]}}});import gq from"fs";import b8 from"path";import mq from"os";async function pq(){let Z,Y=!1,Q=process.argv[0].endsWith("node")||process.argv[0].endsWith("node.exe"),J=process.argv[0].endsWith("bun")||process.argv[0].endsWith("bun.exe"),q=process.execPath.toLowerCase()!==process.argv[0].toLowerCase();if(!q){let U=process.argv[1],K=b8.dirname(U),B=[b8.join(K,"native/install.json"),b8.join(K,"../dist/native/install.json"),b8.join(K,"../native/install.json")];for(let $ of B)if(gq.existsSync($)){Z=$;break}if(!Z)Z=b8.join(K,"native/install.json")}else Z=b8.join(b8.dirname(process.execPath),"install.json");let X=null;if(gq.existsSync(Z))try{let U=JSON.parse(gq.readFileSync(Z,"utf8"));X=u(U,{color:!0})}catch(U){let K=o.from(U);M.error(`Error reading install.json: ${K.message}`,"doctor"),M.debug(K.toString(),"doctor"),Y=!0}else if(q)M.warn(`No native install info found at ${Z}`,"doctor"),Y=!0;C(`Version: ${H.cyan+o6+H.reset}`),C(`Platform: ${H.magenta+process.platform} (${process.arch})`+H.reset),C(`Processor: ${H.cyan+(mq.cpus()[0]?.model||"N/A")+H.reset} ${mq.availableParallelism()}/${mq.cpus().length} logical cores`),C(`Runtime: ${H.magenta+(J?"Bun":Q?"Node":"Unknown")+(q?" (Native)":"")+H.reset}`),C(`Terminal color support index: ${H.cyan+Q6.supportsColor+H.reset+H.dim} ${Q6.supportsColor===0?"(No color)":Q6.supportsColor===1?"(16 colors)":Q6.supportsColor===2?"(8bit color)":Q6.supportsColor===3?"(24bit True color)":""}`+H.reset),C(`TTY mode: ${H.cyan+(process.stdout.isTTY?"Yes":"No")+H.reset}`);try{let U=await z4("bun",["--version"]);C(`Bun: ${H.cyan+U.stdout.trim()+H.reset}`+(!J?H.dim+" (inactive)"+H.reset:""))}catch{C("Bun: Not found")}try{let U=await z4("node",["--version"]);C(`Node: ${H.cyan+U.stdout.trim()+H.reset}`+(!Q?H.dim+" (inactive)"+H.reset:""))}catch{C("Node: Not found")}C(`Installation mode: ${q?H.green+"Native"+H.reset:H.yellow+"Interpreted"+H.reset}`),C(`Shell Integration: ${n6?H.green+"Yes"+H.reset:H.red+"No"+H.reset}`),C(`Executable path: ${H.cyan+process.execPath+H.reset}`),C(`Log file path: ${H.cyan+S6(M.logFile,M.logFile)+H.reset}`);let z=await I0();C(`Cache file path: ${H.cyan+S6(z.cachePath,z.cachePath)+H.reset}`);try{let U=await z4("git",["--version"]);C(`Git: ${H.cyan+U.stdout.trim()+H.reset}`);let K=process.platform==="win32"?"where":"which",$=(await z4(K,["git"])).stdout.trim().replaceAll(`
|
|
960
964
|
`,`
|
|
961
|
-
- `);
|
|
962
|
-
- `+$+H.reset:"Not found in PATH"}`)}catch{
|
|
963
|
-
Native Install Info: ${H.green+X+H.reset}`);else{if(
|
|
964
|
-
Actionable next steps:`+H.reset),process.platform==="win32"&&process.arch==="x64")
|
|
965
|
+
- `);C(`Git path: ${$?H.green+`
|
|
966
|
+
- `+$+H.reset:"Not found in PATH"}`)}catch{C(H.red+"Git: Not found or error checking"+H.reset),Y=!0}let W=yX(process.env,(U)=>U.startsWith("GDX_")?null:void 0);if(C("Process argv: "+PX(process.argv,{color:!0,indent:2,maxCol:80})),C("GDX Environment Variables: "+u(W,{color:!0})),X)C(`
|
|
967
|
+
Native Install Info: ${H.green+X+H.reset}`);else{if(C(H.bright+`
|
|
968
|
+
Actionable next steps:`+H.reset),process.platform==="win32"&&process.arch==="x64")C("To use prebuilt binary:"),C(" GDX_USE_PREBUILT=1 npm i -g gdx");else C(`Prebuilt binary not supported for ${process.platform}/${process.arch}.`);C("To build locally (requires Bun):"),C(" GDX_BUILD_NATIVE=1 npm i -g gdx")}return Y?1:0}var Gj,Cj;var wQ=N(()=>{aY();z0();R0();w0();H0();S0();H0();v0();W4();s0();Gj={long:()=>{return t(Z0`
|
|
965
969
|
${H.bright+d("DOCTOR",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
966
970
|
Diagnose installation and environment.
|
|
967
971
|
|
|
968
972
|
${H.bright+d("DESCRIPTION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
969
973
|
Checks for native binary, runtimes, and provides installation guidance.
|
|
970
974
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Run a diagnostic check on gdx installation and environment.",usage:()=>{return t(Z0`
|
|
971
|
-
${H.cyan}${
|
|
975
|
+
${H.cyan}${R} doctor${H.reset}
|
|
972
976
|
|
|
973
977
|
Examples:
|
|
974
|
-
${H.cyan}${
|
|
978
|
+
${H.cyan}${R} doctor ${H.reset+H.dim}# Diagnose installation and environment${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},Cj={$root:[]}});import AS from"path";async function GS(Z){let Q=Z.args[2];if(!n6)return M.error("'git submodule switch' requires the shell integration. See readme for details."),1;if(!Q)return M.error("Missing submodule path to switch into.","submodule"),1;let J=await y5(Z.git$),q=d0(Q).replace(/^\.\/+/,"").replace(/\/+$/,"");if(q==="main")return await f1(J),0;let X=await R4(Z.git$,J);if(X.length===0)return M.error("No submodules found in this repository.","submodule"),1;let z=X.map((K)=>d0(K.path).replace(/\/+$/,"")),W=null;if(q&&!q.includes("/")){let K=z.filter((B)=>{let $=B.split("/");return $[$.length-1]===q});if(K.length===1)W=K[0];else if(K.length>1)return M.error(`Ambiguous submodule '${Q}'. Matches: ${K.join(", ")}.`,"submodule"),1}if(!W){let{match:K,candidates:B}=h0(q,z);if(K)W=K;else if(B&&B.length>1)return M.error(`Ambiguous submodule '${Q}'. Matches: ${B.join(", ")}.`,"submodule"),1}if(!W)return M.error(`Submodule '${Q}' not found. Available: ${z.join(", ")}.`,"submodule"),1;let U=AS.resolve(J,W);if(!l(U))return M.error(`Submodule '${W}' is not initialized. Run 'git submodule update --init ${W}'.`,"submodule"),1;return await f1(U),0}function CS(Z){let J=Z.replace(/\\/g,"/").replace(/\/+$/,"").replace(/\.git$/i,"").match(/([^/:]+)$/)?.[1]?.trim()||"";if(!J)throw Error(`Unable to derive submodule path from repository '${Z}'.`);return J}function uq(Z){let Y=Z.indexOf("--");if(Y===-1)return{head:Z.slice(),tail:[]};return{head:Z.slice(0,Y),tail:Z.slice(Y+1).toArray()}}function dq(Z,Y){let Q=Z.find((J)=>J.startsWith("-"));if(Q)throw Error(`Unsupported option for 'submodule ${Y}': ${Q}`)}function RS(Z,Y){let{head:Q,tail:J}=uq(Z),q={quiet:Y};if(Q.popOption("-q")||Q.popOption("--quiet"))q.quiet=!0;if(Q.popOption("-f")||Q.popOption("--force"))q.force=!0;let X=Q.popAssertValue("--branch")||Q.popAssertValue("-b");if(X)q.branch=X;let z=Q.popAssertValue("--name");if(z)q.name=z;let W=Q.popAssertValue("--reference");if(W)q.reference=W;dq(Q,"add");let U=[...Q.toArray(),...J];if(U.length===0)throw Error("'submodule add' requires <repository> [path].");if(U.length>2)throw Error("'submodule add' accepts at most two positional arguments.");let K=U[0],B=U[1]||CS(K);return{submoduleUrl:K,submodulePath:B,options:q}}function TS(Z,Y){let{head:Q,tail:J}=uq(Z),q={quiet:Y,init:!1,recursive:!1,strategy:"checkout"};if(Q.popOption("-q")||Q.popOption("--quiet"))q.quiet=!0;if(Q.popOption("--init"))q.init=!0;if(Q.popOption("--remote"))q.remote=!0;if(Q.popOption("-N")||Q.popOption("--no-fetch"))q.noFetch=!0;if(Q.popOption("-f")||Q.popOption("--force"))q.force=!0;if(Q.popOption("--checkout"))q.strategy="checkout";if(Q.popOption("--merge"))q.strategy="merge";if(Q.popOption("--rebase"))q.strategy="rebase";if(Q.popOption("--recommend-shallow"))q.recommendShallow=!0;if(Q.popOption("--no-recommend-shallow"))q.recommendShallow=!1;let X=Q.popAssertValue("--reference");if(X)q.reference=X;if(Q.popOption("--recursive"))q.recursive=!0;if(Q.popOption("--single-branch"))q.singleBranch=!0;if(Q.popOption("--no-single-branch"))q.singleBranch=!1;let z=Q.popAssertValue("--filter");if(z)q.filter=z;dq(Q,"update");let W=[...Q.toArray(),...J];if(W.length>0)q.paths=W;return q}function kS(Z,Y){let{head:Q,tail:J}=uq(Z),q={quiet:Y,force:!1,all:!1};if(Q.popOption("-q")||Q.popOption("--quiet"))q.quiet=!0;if(Q.popOption("-f")||Q.popOption("--force"))q.force=!0;if(Q.popOption("--all"))q.all=!0;dq(Q,"deinit");let X=[...Q.toArray(),...J];if(q.all&&X.length>0)throw Error("'submodule deinit' does not allow paths together with '--all'.");if(!q.all&&X.length===0)throw Error("'submodule deinit' requires '--all' or at least one path.");if(X.length>0)q.paths=X;return q}async function ES(){let Y=(await K0()).get("useInlineSubmodule","internal");if(Y==="off"||Y==="internal"||Y==="all")return Y;return"internal"}async function PS(Z,Y,Q){if(await ES()!=="all")return null;let q=await F6(Z.git$),X=Y[0];Y=Y.slice(1);try{if(X==="add"){let z=RS(Y,Q);return await EO(Z.git$,q,z.submoduleUrl,z.submodulePath,z.options),0}if(X==="update"){let z=TS(Y,Q);return await m5(Z.git$,q,z),0}if(X==="deinit"){let z=kS(Y,Q);return await g5(Z.git$,q,z),0}}catch(z){return M.error(z.message,"submodule"),1}return null}var Rj,Tj,kj;var AQ=N(()=>{z0();$6();H0();J6();e0();v0();m0();w0();R0();S0();s0();Rj={long:()=>{let Z=Math.min(100,p.terminalWidth-4),Y=Rz([[H.cyan+"switch <path|name|main>",H.reset+"Switch to a submodule by path, unique name, or back to main repo."],[H.cyan+"add [options] <repository> [path]",H.reset+"Add a new submodule with optional inline mode."],[H.cyan+"update [options] [--] [<path>...]",H.reset+"Update submodules with optional inline mode."],[H.cyan+"deinit [options] (--all | -- <path>...)",H.reset+"Deinitialize submodules with optional inline mode."]],{padding:[0,1,0,0],borderStyle:"none",columnWidth:[Math.floor(Z*0.32),Math.floor(Z*0.6)],redundancyLv:0});return t(Z0`
|
|
975
979
|
${H.bright+d("SUBMODULE EXTENSIONS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
976
980
|
Extends git submodule with additional features and inline mode for add/update/deinit.
|
|
977
981
|
|
|
@@ -986,16 +990,16 @@ Actionable next steps:`+H.reset),process.platform==="win32"&&process.arch==="x64
|
|
|
986
990
|
Inline mode for add/update/deinit is enabled when the config value 'useInlineSubmodule' is set to 'all'. In this mode, the command will parse the arguments of these submodule commands and execute them internally, allowing for faster execution. If the config value is 'off' or 'internal', all commands will be delegated to git and no internal parsing will occur.
|
|
987
991
|
|
|
988
992
|
${H.bright+d("REQUIREMENTS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
989
|
-
For switch command: shell integration must be enabled, see ${
|
|
993
|
+
For switch command: shell integration must be enabled, see ${S6("README.md",j7)} for details.
|
|
990
994
|
Submodules must be initialized (use ${H.cyan}git submodule update --init${H.reset}).
|
|
991
995
|
`,Z,{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Extends git submodule with ability to switch between submodules. (requires shell integration) And speedup submodule add/update/deinit operations with inline mode.",usage:()=>{return t(Z0`
|
|
992
|
-
${H.cyan}${
|
|
996
|
+
${H.cyan}${R} submodule switch ${H.dim}<path|name|main>${H.reset}
|
|
993
997
|
|
|
994
998
|
Examples:
|
|
995
|
-
${H.cyan}${
|
|
996
|
-
${H.cyan}${
|
|
997
|
-
${H.cyan}${
|
|
998
|
-
`).map((X)=>X.trim()).filter(Boolean)}function
|
|
999
|
+
${H.cyan}${R}submodule switch vendor/sdk ${H.reset+H.dim}# Switch by full path${H.reset}
|
|
1000
|
+
${H.cyan}${R}submodule switch sdk ${H.reset+H.dim}# Switch by unique name${H.reset}
|
|
1001
|
+
${H.cyan}${R}submodule switch main ${H.reset+H.dim}# Back to parent repo${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},Tj={$root:{switch:{}}},kj={switch:GS,handleUserCommand:PS}});import Ej from"path";async function Pj(Z,Y){let{stdout:Q}=await k`${Z} rev-list --parents -n 1 ${Y}`;return Q.trim().split(/\s+/).filter(Boolean).slice(1)}async function GQ(Z,Y){let{stdout:Q}=await k`${Z} show -s --format=%T ${Y}`;return Q.trim()}async function xj(Z,Y){let{stdout:J}=await k`${Z} show -s --format=${"%an%x00%ae%x00%aI"} ${Y}`,[q="",X="",z=""]=J.trimEnd().split("\x00");return{name:q,email:X,date:z}}async function xS(){let Z=await K0(),Y=Z.get("reword.editor",null),Q=Z.getAll().defaultEditor;if(Y&&Y.trim().length>0)return Y.trim();if(Q&&Q.trim().length>0)return Q.trim();throw new o("No editor configured.","EDITOR_NOT_CONFIGURED")}async function bj(Z){let{git$:Y,treeSha:Q,parents:J,messageFile:q,author:X}=Z,z=["commit-tree",Q,...J.flatMap((B)=>["-p",B]),"-F",q],W=k({env:{GIT_AUTHOR_NAME:X.name,GIT_AUTHOR_EMAIL:X.email,GIT_AUTHOR_DATE:X.date}}),{stdout:U}=await W`${Y} ${z}`,K=U.trim();if(!K)throw new o("Failed to create rewritten commit.","REWORD_COMMIT_TREE_FAILED");return K}async function vj(Z){return await k`${Z} symbolic-ref -q HEAD`.then((Q)=>Q.stdout.trim()).catch(()=>"")||"HEAD"}async function bS(Z,Y,Q){let J=`${Y}..${Q}`,{stdout:q}=await k`${Z} rev-list --reverse ${J}`;return q.trim().split(`
|
|
1002
|
+
`).map((X)=>X.trim()).filter(Boolean)}function vS(Z){if(Array.isArray(Z))return Z[0];return Z}async function SS(Z,Y,Q){let[J,q,X]=await Promise.all([GQ(Z,Y),Pj(Z,Y),xj(Z,Y)]),z=await bj({git$:Z,treeSha:J,parents:q,messageFile:Q,author:X}),W=await vj(Z);return await k`${Z} update-ref ${W} ${z} ${Y}`,z}async function yS(Z,Y,Q,J){await b4(K6,{recursive:!0});let q=Ej.join(K6,`gdx_reword_worktree_${Date.now()}_${Math.random().toString(16).slice(2,10)}`),X=!1,z={},W=/\[detached HEAD ([\da-f]+)\]/,U=null;try{await k`${Z} worktree add --detach ${q} ${Q}`,X=!0;let K=[vS(Z),"-C",q],[B,$,V]=await Promise.all([GQ(Z,Y),Pj(Z,Y),xj(Z,Y)]),D=await bj({git$:K,treeSha:B,parents:$,messageFile:J,author:V});await k`${K} checkout --detach ${D}`;let F=await bS(Z,Y,Q);U=F.length>50?P0({message:`Replaying commits... (0/${F.length})`}):null;let O=0;for(let I of F){let G=await k`${K} cherry-pick ${I}`;z[I]=W.exec(G.stdout)?.[1]||"unknown",U?.setMessage(`Replaying commits... (${++O}/${F.length})`)}U?.setMessage("Repositioning HEAD...");let j=(await A0(K,"HEAD")).trim(),[_,L]=await Promise.all([GQ(Z,Q),GQ(K,j)]);if(_!==L)throw U?.stop(),new o("Reword aborted because rewritten history changed the HEAD tree.","REWORD_TREE_MISMATCH");let A=await vj(Z);await k`${Z} update-ref ${A} ${j} ${Q}`}finally{if(U?.stop(),X)await k`${Z} worktree remove --force ${q}`.catch(h6);await _6(q,{recursive:!0,force:!0}).catch(h6)}return z}async function cq(Z){let{git$:Y,args:Q}=Z;if(!await r4(Y))return 1;let{error:J}=await T4(Q,Y,1);if(J)return 1;if(Q.length>2)return M.error(`Usage: ${R} reword [<commit>]`,"reword"),1;let q=Q[1]||"HEAD",X=await AZ(Y,q,{type:"commit"});if(!X)return M.error(`Invalid commit reference: ${q}`,"reword"),1;let z=(await A0(Y,"HEAD")).trim(),W=z===X;if(!W){if(!await k`${Y} merge-base --is-ancestor ${X} HEAD`.then(()=>!0).catch(()=>!1))return M.error("Target commit is not an ancestor of HEAD.","reword"),1}let U=Ej.join(K6,`gdx_reword_${Date.now()}.txt`);try{let K=(await k`${Y} log -1 --format=%B ${X}`).stdout;await c0(U,K,"utf8");let B=await xS();C("hint: waiting for your editor to close the file...",""),await k5(U,B),C("\x1B[1G\x1B[K","");let $=await f0(U,"utf8");if(!$.trim())return M.error("Commit message is empty. Aborting reword.","reword"),1;if($.trim()===K.trim())return C("Commit message unchanged. No reword needed."),0;let V=AM(K,$).catch((O)=>{return M.warn(`Failed to render commit message diff: ${o.from(O).message}`,"reword"),[]}),D=[];if(W){let O=await SS(Y,z,U);D.push(`Rewrote ${z.slice(0,7)} (HEAD) to ${O.slice(0,7)} (new HEAD)`)}else{let O=await yS(Y,X,z,U);D.push(`Rewrote ${Object.keys(O).length} commits:`);for(let[j,_]of Object.entries(O))D.push(` ${j.slice(0,7)} -> ${_.slice(0,7)}${j===z?" (new HEAD)":""}${j===X?" [target]":""}`)}let F=await V;for(let O of F)C(O);C();for(let O of D)C(O);return 0}catch(K){return M.error(u(K,{color:!0}),"reword"),1}finally{await O7(U).catch(h6)}}var Sj,yj;var CQ=N(()=>{z0();J6();m0();$6();e0();R0();w0();H0();v0();S0();s0();bZ();Sj={long:()=>{return t(Z0`
|
|
999
1003
|
${H.bright+d("REWORD",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1000
1004
|
Update a commit message without rebase, no clean working directory required, and with safety checks to prevent history corruption. Ideal for quick fixes to recent commits.
|
|
1001
1005
|
|
|
@@ -1009,29 +1013,31 @@ Actionable next steps:`+H.reset),process.platform==="win32"&&process.arch==="x64
|
|
|
1009
1013
|
Rewording rewrites commit history. Ensure you coordinate with collaborators before rewriting shared commits.
|
|
1010
1014
|
If the commit you are rewording or later commits exist on a remote, you will need to force push after rewording. Always double-check the rewritten history before pushing.
|
|
1011
1015
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Reword a commit message (defaults to HEAD).",usage:()=>{return t(Z0`
|
|
1012
|
-
${H.cyan}${
|
|
1016
|
+
${H.cyan}${R} reword ${H.dim}[<commit>]${H.reset}
|
|
1013
1017
|
|
|
1014
1018
|
Examples:
|
|
1015
|
-
${H.cyan}${
|
|
1016
|
-
${H.cyan}${
|
|
1017
|
-
${H.cyan}${
|
|
1018
|
-
`),Q=Y.findIndex((J)=>
|
|
1019
|
-
`),preamble:Y.slice(0,Q)}}function
|
|
1020
|
-
`))
|
|
1021
|
-
`)
|
|
1022
|
-
`)
|
|
1023
|
-
`).
|
|
1019
|
+
${H.cyan}${R} reword${H.reset+H.dim} # Reword the latest commit${H.reset}
|
|
1020
|
+
${H.cyan}${R} reword ~2${H.reset+H.dim} # Reword HEAD~2${H.reset}
|
|
1021
|
+
${H.cyan}${R} reword deadbeef${H.reset+H.dim} # Reword a specific commit${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},yj={$root:[]}});function hj(Z,Y,Q){let J=Z.slice();if(Y.targetIndex===null){let q=J.indexOf("--");return J.splice(q===-1?0:q,0,Q),J}return J[Y.targetIndex]=Q,J}function uS(Z){let Y=Z.indexOf("--"),Q=Y===-1?Z.length:Y,J=null;for(let U=0;U<Q;U++){let K=Z[U];if(!K)continue;if(mj(K)&&U+1<Q){U++;continue}if(K.startsWith("-"))continue;J=U;break}let q=J===null?"HEAD":Z[J],X=Z.filter((U,K)=>K!==J),z=X.indexOf("--"),W=z===-1?X.length:z;return X.splice(W,0,"HEAD"),{targetRef:q,targetIndex:J,navigationArgs:X}}function gj(Z){let Y=Z.indexOf("--"),Q=Y===-1?Z.length:Y;for(let J=0;J<Q;J++){let q=Z[J];if(!q)continue;if(mj(q)&&J+1<Q){J++;continue}if(q.startsWith("-"))continue;if(q.startsWith(":")){let K=q.match(/^:(?:[0-3]:)?(.+)$/);if(!K)return null;return{targetRef:"",targetIndex:J,navigationArgs:[],path:K[1],isIndexStage:!0}}let X=q.indexOf(":");if(X<=0||X===q.length-1)return null;let z=q.slice(0,X),W=q.slice(X+1),U=Z.filter((K,B)=>B!==J&&B<Q);return U.push("HEAD","--",W),{targetRef:z,targetIndex:J,navigationArgs:U,path:W,isIndexStage:!1}}return null}function dS(Z,Y,Q){let J=Z.slice();if(Y.isIndexStage)return J;if(Y.targetIndex!==null)J[Y.targetIndex]=`${Q}:${Y.path}`;return J}function cS(Z){return Z.some((Y)=>Y==="-L"||Y.startsWith("-L:")||Y.startsWith("-L/"))}function mj(Z){if(Z.includes("="))return!1;if(pS.has(Z))return!0;if(/^-n\d+$/.test(Z))return!1;return!1}function pj(){if(!process.stdout.isTTY)return;process.stdout.write("\x1B[2J\x1B[H")}async function uj(Z,Y){return A0(Z,["--verify",`${Y}^{commit}`])}async function lS(Z,Y,Q,J){if(cS(Y))return"";return(await k`${Z} -c color.ui=never show --stat --format= ${hj(Y,Q,J)}`).stdout.trimEnd().replace(/(\W)(\++)/g,`$1${H.green}$2${T0(X0.overlay0)}`).replace(/(\W|\d{1,3}m)(-+)/g,`$1${H.red}$2${T0(X0.overlay0)}`)}function nS(Z){let Y=Z.split(`
|
|
1022
|
+
`),Q=Y.findIndex((J)=>fS.test(J));if(Q===-1){if(TQ(Z))return{body:"",preamble:Y};return{body:Z,preamble:[]}}return{body:Y.slice(Q).join(`
|
|
1023
|
+
`),preamble:Y.slice(0,Q)}}function TQ(Z){return Z.split(`
|
|
1024
|
+
`).some((Y)=>hS.test(Y))}function oS(Z){let{relativeRef:Y,stat:Q}=Z,J=Z.preamble.slice(),q=J.findIndex((z)=>/^commit [0-9a-f]{7,40}\b/i.test(z));if(Y&&q!==-1&&!J[q].includes(Y))J[q]=`Commit:${J[q].slice(6)} (${Y})`;while(J.length>0&&J[J.length-1]==="")J.pop();let X=Q?.trimEnd();if(X)J.push(""),J.push(...X.split(`
|
|
1025
|
+
`));return J}function iS(Z,Y){let{body:Q,preamble:J}=nS(Z);if(J.length===0)return Z;return[...oS({preamble:J,relativeRef:Y.relativeRef,stat:Y.stat}),"",Q].join(`
|
|
1026
|
+
`)}async function dj(Z,Y,Q,J){return(await oq(Z,Y,Q))[J]}async function oq(Z,Y,Q){let q=(await k`${Z} log --format=%H ${Q.navigationArgs}`).stdout.split(`
|
|
1027
|
+
`).map((j)=>j.trim()).filter(Boolean),X=q.indexOf(Y);if(X!==-1)return{previous:q[X+1]??null,next:q[X-1]??null};let z=Q.navigationArgs.indexOf("--");if(z===-1)return{previous:null,next:null};let W=Q.navigationArgs.slice(0,z),K=(await k`${Z} log --format=%H ${W}`).stdout.split(`
|
|
1028
|
+
`).map((j)=>j.trim()).filter(Boolean),B=K.indexOf(Y);if(B===-1)return{previous:null,next:null};let $=new Map(K.map((j,_)=>[j,_])),V=null,D=null,F=Number.POSITIVE_INFINITY,O=Number.POSITIVE_INFINITY;for(let j of q){let _=$.get(j);if(_===void 0)continue;if(_>B&&_-B<F)V=j,F=_-B;if(_<B&&B-_<O)D=j,O=B-_}return{previous:V,next:D}}function cj(Z){let Y=[];if(Z.previous)Y.push({key:gS,displayKey:"←",label:"previous",action:H7});if(Z.next)Y.push({key:mS,displayKey:"→",label:"next",action:nq});return Y}async function fj(Z,Y){let Q=Y.split(".").pop()?.toLowerCase()||"",J=I7[Q]||"text";try{return await(await import("@shikijs/cli")).codeToANSI(Z,J,N7)}catch{return Z}}async function RQ(Z,Y,Q,J,q,X){if(q)pj();let z=q||X===void 0?P0({message:"Loading file..."}):void 0;try{let W=X??(await k`${Z.git$} -c color.ui=never show ${dS(Y,Q,J)}`).stdout,[U,K,B]=Q.isIndexStage?["index",await fj(W,Q.path),{previous:null,next:null}]:await Promise.all([IJ(Z.git$,J,!1),fj(W,Q.path),oq(Z.git$,J,Q)]);return z?.stop(),await t5(K,{showLineNumbers:!0,lineNumberWidth:Math.max(4,String(W.split(`
|
|
1029
|
+
`).length).length)+2,statusText:`${B4(Q.path,40,"mid",-1)}@${U||J.slice(0,7)}`,actions:cj(B)})}catch(W){throw z?.stop(),W}}async function lq(Z,Y,Q,J,q,X){if(q)pj();let z=q&&X===void 0?P0({message:"Loading commit..."}):void 0;try{let W=X??(await k`${Z.git$} -c color.ui=never show ${hj(Y,Q,J)}`).stdout,[U,K,B]=await Promise.all([IJ(Z.git$,J,!1),lS(Z.git$,Y,Q,J),oq(Z.git$,J,Q)]);if(z?.stop(),!W||!UQ(W)&&!TQ(W))return;return await xZ(iS(W,{relativeRef:U,stat:K}),{actions:cj(B),git$:Z.git$,highlighting:{oldRevision:`${J}^`,newRevision:J}})}catch(W){throw z?.stop(),W}}async function lj(Z,Y,Q){let J=uS(Y),q=await uj(Z.git$,J.targetRef),X=await lq(Z,Y,J,q,!1,Q);while(X?.action===H7||X?.action===nq){process.stdout.write("\x1B[H"),process.stdout.clearScreenDown();let z=X.action===H7?"previous":"next",W=await dj(Z.git$,q,J,z);if(!W){M.warn("Attempted to navigate beyond available commits, but no adjacent commit was found. This is unexpected since navigation actions should have been disabled. Reloading current commit as fallback.","show-navigation"),X=await lq(Z,Y,J,q,!0);continue}q=W,X=await lq(Z,Y,J,q,!0)}}async function nj(Z,Y,Q,J){if(Q.isIndexStage){await RQ(Z,Y,Q,"",!1,J);return}let q=await uj(Z.git$,Q.targetRef),X=await RQ(Z,Y,Q,q,!1,J);while(X?.action===H7||X?.action===nq){process.stdout.write("\x1B[H"),process.stdout.clearScreenDown();let z=X.action===H7?"previous":"next",W=await dj(Z.git$,q,Q,z);if(!W){M.warn("Attempted to navigate beyond available commits, but no adjacent commit was found. This is unexpected since navigation actions should have been disabled. Reloading current commit as fallback.","show-navigation"),X=await RQ(Z,Y,Q,q,!0);continue}q=W,X=await RQ(Z,Y,Q,q,!0)}}var fS,hS,H7="previousCommit",nq="nextCommit",gS="\x1B[D",mS="\x1B[C",pS;var oj=N(()=>{z0();H0();bZ();oJ();m0();v0();e0();w0();fS=/^diff --(git|cc|combined)\b/,hS=/^commit [0-9a-f]{7,40}\b/i,pS=new Set(["--author","--committer","--grep","--grep-reflog","--since","--after","--until","--before","--max-count","--skip","--diff-filter","--branches","--tags","--remotes","--glob","--exclude","--date","--decorate","--encoding","--notes","--pretty","--format","-n","-L"])});var ij={};y8(ij,{dispatch:()=>iq});async function iq(Z,Y={inMacro:!1}){let Q=Z.args,J=Q.slice(0);if(!Y.inMacro){let W=await kQ();if(Q[0]&&Q[0]in W){let U=Q[0],K=W[U],B=Q.slice(1);C(H.dim+H.magenta+`※ ${H.white+H.bright} Executing macro '${U}'...`+H.reset);let{executeMacro:$}=await Promise.resolve().then(() => (EQ(),sj));return await $(Z.git$,K,B)}}else{let W=await kQ();if(Q[0]&&Q[0]in W)return M.error(`Macro '${Q[0]}' cannot be invoked from inside a macro. Macro composition is not allowed.`,"macro"),1}let q=null,X=">",z=!Q.popOption("--no-enhance");Z:if(Q[0]){let{match:W,candidates:U}=h0(Q[0],nZ);if(W)Q[0]=W;switch(Q[0]){case"s":Q[0]="status";case"status":if(Q.includes("-r")||Q.includes("--recursive"))return await y0.status(Z);break;case"submodule":{let K=["switch","update","status","add","sync","summary","deinit","foreach"],B=h0(Q[1]||"",K,!0);switch(B.match){case"switch":return await y0.submodule.switch(Z);case"update":case"add":case"deinit":{let $=!!Q.popOption("--quiet");Q[1]=B.match;let V=await y0.submodule.handleUserCommand(Z,Q.slice(1),$);if(typeof V==="number")return V}default:if(B.match)Q[1]=B.match}break}case"tag":{let K=["move","mv"],B=h0(Q[1]||"",K,!0);if(B.match)Q[1]=B.match;if(Q[1]==="mv")Q[1]="move";if(Q[1]==="move")return await y0.tag.move(Z);break}case"co":Q[0]="checkout";break;case"br":Q[0]="branch";break;case"cmi":Q[0]="commit";case"commit":if(Q[1]==="auto")return await y0.commit.auto(Z);break;case"mg":Q[0]="merge";break;case"pl":case"pu":Q[0]="pull";case"pull":for(let K=1;K<Q.length;K++)if(Q[K]==="-au"){Q[K]="--allow-unrelated-histories";break}break;case"lint":return await y0.lint(Z);case"diff":{let{error:K}=await T4(Q,Z.git$);if(K)return 1;let B=await K0();if(z&&B.get("enhancedOutput")&&Q7()&&!Q.includes("--stat")&&!Q.includes("-h")&&!Q.includes("--help")&&!Q.includes("--numstat")&&!Q.includes("--name-only")&&!Q.includes("--name-status")){let $=Q.slice(1),V=$.popOption("--json");try{let D=await k`${Z.git$} -c color.ui=never diff ${$}`;if(D.stdout){if(V){let j=PZ(D.stdout);return C(JSON.stringify(j,null,2)),0}let F=$.hasOption("--cached")||$.hasOption("--staged"),O=!$.hasOption("--no-index");return await xZ(D.stdout,O?{git$:Z.git$,highlighting:{oldRevision:"HEAD",newRevision:F?Nq:_q}}:void 0),0}}catch(D){M.info("Failed to get or parse diff output for enhanced diff-view, ignoring: "+o.from(D))}}break}case"show":{let{error:K}=await T4(Q,Z.git$);if(K)return 1;let{error:B}=await yO(Q,Z.git$);if(B)return 1;let $=await K0();if(z&&$.get("enhancedOutput")&&Q7()&&!Q.includes("--stat")&&!Q.includes("-h")&&!Q.includes("--help")&&!Q.includes("--numstat")&&!Q.includes("--name-only")&&!Q.includes("--name-status")&&!Q.hasOption("--format")){let V=Q.slice(1),D=V.popOption("--json");try{let F=await k`${Z.git$} -c color.ui=never show ${V}`;if(F.stdout&&(UQ(F.stdout)||TQ(F.stdout))){if(D){let j=PZ(F.stdout);return C(JSON.stringify(j,null,2)),0}return await lj(Z,V,F.stdout),0}let O=gj(V);if(O&&!D)return await nj(Z,V,O,F.stdout),0}catch(F){M.info("Failed to get show output for enhanced diff-view, ignoring: "+o.from(F))}}break}case"ps":Q[0]="push";case"push":{if(!Q.popOption("--no-lint")){let B=(await K0()).get("lint.onPushBehavior")||"off";if(B==="error"||B==="warning"){if(await y0.lint(Z)!==0)if(B==="error")return M.error("Lint failed. Push aborted.","lint"),1;else C(H.yellow+"Lint failed, but proceeding with push (warning mode)."+H.reset)}}Q.spliceOption("-fl",["--force-with-lease"],1);break}case"ad":Q[0]="add";break;case"rv":Q[0]="revert";break;case"rb":Q[0]="rebase";break;case"reset":{Q[0]="reset";for(let B=1;B<Q.length;B++){if(Q[B]==="-h"){Q[B]="--hard";break}if(Q[B]==="-s"){Q[B]="--soft";break}}let{error:K}=await T4(Q,Z.git$);if(K)return 1;break}case"log":case"lg":if(Q[0]==="lg"&&Q.length===1)Q.push("--oneline","--graph","--decorate","--all");else if(Q.popOption("export")){let K='--date=format:"%Y-%m-%d %H:%M"';if(!Q.hasOption("--author",1)){let D=Array.isArray(Z.git$)?Z.git$[0]:Z.git$;Q.push("--author="+await t4(D,"user.email"))}let $=Q.indexOf("--relative");if($>=0)Q.splice($,1),K='--date=format:"%Y-%m-%d %H:%M" (%ar)';let V=["--all",`--pretty=format:## Commit %h on [%p] - %ad%d
|
|
1024
1030
|
%s
|
|
1025
1031
|
|
|
1026
1032
|
%b
|
|
1027
1033
|
---
|
|
1028
|
-
`,K].filter((
|
|
1034
|
+
`,K].filter((D)=>!Q.hasOption(D,1));Q.push(...V),q="gitlog_export.md",X=">"}Q[0]="log";break;case"sta":Q[0]="stash";case"stash":{let K=["apply","pop","list","drop","clear","show","push","save","create","store"],B=h0(Q[1]||"",K,!0);if(B.match)Q[1]=B.match;else{let $=Q.indexOf("--");$=$>=0?$:Q.length;let V=!1;for(let D=1;D<$;D++)if(K.includes(Q[D])||Q[D]==="-h"||Q[D]==="--help"){V=!0;break}if(!V){let D=Array.isArray(Z.git$)?Z.git$[0]:Z.git$,O=sX(await GO(D),"2.15.0")>=0?"push":"save";Q.splice(1,0,O)}}if(Q[1]==="drop"){let $=Array.isArray(Z.git$)?Z.git$[0]:Z.git$;return await y0.stash.drop($,Q)}break}case"graph":return y0.graph(Z);case"stats":return y0.stats(Z);case"clear":return y0.clear(Z);case"cache":return y0.cache(Z);case"gdx-config":return y0.gdxConfig(Z);case"gdx-help":case"ghelp":return y0.help(Q[1]);case"nocap":return y0.nocap(Z);case"parallel":return y0.parallel(Z);case"doctor":return y0.doctor();case"macro":return y0.macro(Z);case"reword":return y0.reword(Z);case"snap":return y0.snap(Z);default:if(U&&U.length>1){M.warn(`Ambiguous command '${J[0]}'. Did you mean one of: ${U.join(", ")}?`);break Z}}}if(Y.inMacro||J.some((W,U)=>Q[U]!==W)){let W=Gz((Q.length%6+1)/8.6,0.64,0.5);C(H.dim+M0(y4(W),"fg")+`$ ${H.white+H.bright}git ${D7(Q).join(" ")}`+H.reset)}return wZ(Z.git$,Q,q,X)}var sq=N(()=>{z0();aq();H0();m0();R0();$6();w0();EQ();v0();e0();bZ();oj()});var sj={};y8(sj,{writeMacrosToFile:()=>PQ,syncMacrosToCache:()=>tq,substitutePlaceholders:()=>rj,readMacrosFromFile:()=>Y8,isFilePath:()=>eq,getMacrosCachedOrLoad:()=>kQ,executeMacro:()=>aS});import sS from"path";async function Y8(){try{if(!l(H8))return{};let Z=await f0(H8,"utf-8"),Y=JSON.parse(Z);if(typeof Y!=="object"||Y===null||Array.isArray(Y))return M.warn(`Invalid macro.json format at ${H8}`,"macro"),{};return Y}catch(Z){return M.warn(`Failed to read macro.json: ${o.from(Z).message}`,"macro"),{}}}async function PQ(Z){try{let Y=sS.dirname(H8);if(!l(Y))i0(Y,{recursive:!0});let Q=JSON.stringify(Z,null,2);await c0(H8,Q,"utf-8"),M.debug(`Macros written to ${H8}`,"macro")}catch(Y){throw new o(`Failed to write macro.json: ${o.from(Y).message}`,"MACRO_WRITE_FAILED")}}async function tq(){let Z=await Y8(),Y=await I0();if(Y.isDisabled)throw new o("Cache is disabled. Cannot sync macros to cache.","CACHE_DISABLED");await Y.set(rq,Z,{maxAgeMinutes:aj}),M.debug(`Synced ${Object.keys(Z).length} macros to cache`,"macro")}async function kQ(){let Z=await I0();if(Z.isDisabled)return await Y8();let Y=await Z.get(rq);if(Y)return M.debug("Using cached macros","macro"),Y;let Q=await Y8();return await Z.set(rq,Q,{maxAgeMinutes:aj}),M.debug("Loaded macros from file and cached","macro"),Q}async function aS(Z,Y,Q){let J=Y.split(";").map((X)=>X.trim()).filter((X)=>X.length>0);if(J.length===0)return M.error("Macro script is empty.","macro"),1;let{dispatch:q}=await Promise.resolve().then(() => (sq(),ij));for(let X=0;X<J.length;X++){let z=X===J.length-1,W=BJ(J[X]),{substituted:U,notUsedArgs:K}=rj(W,Q);if(z)U.push(...K);if(U.length===0)continue;C(H.dim+H.cyan+`▶ Executing: ${H.white+H.bright}gdx ${D7(U).join(" ")}`+H.reset);let B={git$:Z,args:new k4(U)},$=await q(B,{inMacro:!0});if($!==0)return M.error(`Macro command failed with exit code ${$}`,"macro"),$}return 0}function eq(Z){if(Z.startsWith("./")||Z.startsWith("/"))return!0;if(Z.startsWith(".\\"))return!0;if(/^[a-zA-Z]:[/\\]/.test(Z))return!0;return!1}function rj(Z,Y){let Q=-1,J=new Set(Y),q=Z.map((X,z)=>{return X.replace(/\$(\*|\d+)/g,(W,U)=>{if(U==="*")return Q=z,J.clear(),"";let K=parseInt(U,10)-1;if(K>=0&&K<Y.length)return J.delete(Y[K]),Y[K];return W})});if(Q!==-1)q.splice(Q,1,...Y);return{substituted:q,notUsedArgs:Array.from(J)}}var rq="macro.all",aj=1440;var EQ=N(()=>{J6();H0();W4();z0();w0();m0();R0();GZ()});async function rS(Z){let{args:Y}=Z,Q=Y[1]?.toLowerCase(),{match:J,candidates:q}=h0(Q,["set","list","drop","sync"]);switch(J){case"set":return await eS(Z);case"list":return await Zy();case"drop":return await Yy(Z);case"sync":return await Qy();default:if(q&&q.length>0)M.warn(`Ambiguous command '${Q}'. Did you mean one of: ${q.join(", ")}?`);else M.warn(`Unknown macro subcommand '${Q}'`);return M.info("Available subcommands: set, list, drop, sync","macro"),1}}async function tS(){return new Promise((Z,Y)=>{let Q="";if(process.stdin.setEncoding("utf-8"),process.stdin.on("data",(J)=>{Q+=J}),process.stdin.on("end",()=>{Z(Q.trim())}),process.stdin.on("error",(J)=>{Y(J)}),process.stdin.isTTY)Z("")})}async function eS(Z){let{args:Y}=Z,Q=Y[2],J=Y.slice(3);if(!Q)return M.error("Macro name is required. Usage: gdx macro set <name> <script>","macro"),1;let q;if(J.length===0)try{if(q=await tS(),!q)return M.error("Macro script or file path is required. Use: gdx macro set <name> <script> or gdx macro set <name> < file.txt","macro"),1;M.debug("Loaded macro script from stdin","macro")}catch(X){let z=o.from(X);return M.error(`Failed to read from stdin: ${z.message}`,"macro"),M.debug(z.toString(),"macro"),1}else if(J.length===1&&eq(J[0])){let X=J[0];try{if(!l(X))return M.error(`File not found: ${X}`,"macro"),1;q=(await f0(X,"utf-8")).trim(),M.debug(`Loaded macro script from file: ${X}`,"macro")}catch(z){let W=o.from(z);return M.error(`Failed to read file: ${W.message}`,"macro"),M.debug(W.toString(),"macro"),1}}else q=J.join(" ");if(!q)return M.error("Macro script cannot be empty.","macro"),1;try{let X=await Y8(),z=Q in X;if(X[Q]=q,await PQ(X),await(await I0()).set("macro.all",X,{maxAgeMinutes:1440}),z)C(H.yellow+`Macro '${Q}' updated.`+H.reset);else C(H.green+`Macro '${Q}' created.`+H.reset);return 0}catch(X){let z=o.from(X);return M.error(`Failed to set macro: ${z.message}`,"macro"),M.debug(z.toString(),"macro"),1}}async function Zy(){try{let Z=await Y8();await(await I0()).set("macro.all",Z,{maxAgeMinutes:1440});let Q=Object.keys(Z);if(Q.length===0)return C(H.dim+"No macros defined."+H.reset),0;C(H.cyan+H.bright+"Macros:"+H.reset);for(let J of Q.sort()){let q=Z[J],z=(q.length>80?q.substring(0,77)+"...":q).replace(/\s+/g," ");C(` ${H.green}${J}${H.reset}: ${H.dim}${z}${H.reset}`)}return 0}catch(Z){let Y=o.from(Z);return M.error(`Failed to list macros: ${Y.message}`,"macro"),M.debug(Y.toString(),"macro"),1}}async function Yy(Z){let{args:Y}=Z,Q=Y[2];if(!Q)return M.error("Macro name is required. Usage: gdx macro drop <name>","macro"),1;try{let J=await Y8();if(!(Q in J))return M.error(`Macro '${Q}' not found.`,"macro"),1;return delete J[Q],await PQ(J),await(await I0()).set("macro.all",J,{maxAgeMinutes:1440}),C(H.yellow+`Macro '${Q}' deleted.`+H.reset),0}catch(J){let q=o.from(J);return M.error(`Failed to drop macro: ${q.message}`,"macro"),M.debug(q.toString(),"macro"),1}}async function Qy(){try{return await tq(),C(H.green+"Macros synced to cache."+H.reset),0}catch(Z){let Y=o.from(Z);if(Y.code==="CACHE_DISABLED")M.error("Cache is disabled. Cannot sync macros.","macro");else M.error(`Failed to sync macros: ${Y.message}`,"macro");return M.debug(Y.toString(),"macro"),1}}var Z_,tj,ej;var xQ=N(()=>{EQ();z0();w0();R0();W4();J6();H0();v0();S0();s0();Z_=rS,tj={long:()=>{return t(Z0`
|
|
1029
1035
|
${H.bright+d("MACRO",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1030
1036
|
Define reusable gdx command sequences.
|
|
1031
1037
|
|
|
1032
1038
|
${H.bright+d("OVERVIEW",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1033
1039
|
Macros are stored and executed by name:
|
|
1034
|
-
${H.cyan}${
|
|
1040
|
+
${H.cyan}${R} <name> [args]${H.reset}.
|
|
1035
1041
|
They run through the gdx dispatcher, so both gdx custom commands and git commands work.
|
|
1036
1042
|
|
|
1037
1043
|
${H.bright+d("PLACEHOLDERS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
@@ -1046,22 +1052,22 @@ Actionable next steps:`+H.reset),process.platform==="win32"&&process.arch==="x64
|
|
|
1046
1052
|
|
|
1047
1053
|
${H.bright+d("NOTES",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1048
1054
|
- Use semicolons to chain commands.
|
|
1049
|
-
- You can read the script from stdin: ${H.cyan}${
|
|
1055
|
+
- You can read the script from stdin: ${H.cyan}${R} macro set <name> < file.txt${H.reset}.
|
|
1050
1056
|
- Macros cannot invoke other macros.
|
|
1051
1057
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Create and manage reusable command macros.",usage:()=>{return t(Z0`
|
|
1052
|
-
${H.cyan}${
|
|
1053
|
-
${H.cyan}${
|
|
1054
|
-
${H.cyan}${
|
|
1055
|
-
${H.cyan}${
|
|
1056
|
-
${H.cyan}${
|
|
1058
|
+
${H.cyan}${R} macro set ${H.dim}<name> <script|file>${H.reset}
|
|
1059
|
+
${H.cyan}${R} macro set ${H.dim}<name> < <file>${H.reset}
|
|
1060
|
+
${H.cyan}${R} macro list${H.reset}
|
|
1061
|
+
${H.cyan}${R} macro drop ${H.dim}<name>${H.reset}
|
|
1062
|
+
${H.cyan}${R} macro sync${H.reset}
|
|
1057
1063
|
|
|
1058
1064
|
Examples:
|
|
1059
|
-
${H.cyan}${
|
|
1060
|
-
${H.cyan}${
|
|
1061
|
-
${H.cyan}${
|
|
1062
|
-
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},
|
|
1065
|
+
${H.cyan}${R} macro set qc 'ad . ; cmi -m "$1"' ${H.reset+H.dim}# Save a macro with args${H.reset}
|
|
1066
|
+
${H.cyan}${R} qc "ship it" ${H.reset+H.dim}# Run macro by name${H.reset}
|
|
1067
|
+
${H.cyan}${R} macro set build ./script.txt ${H.reset+H.dim}# Load from file${H.reset}
|
|
1068
|
+
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},ej={$root:{set:{},list:{},drop:{},sync:{}}}});async function Jy(Z,Y){try{let{stdout:Q}=await k`${Z} cat-file -t ${Y}`;return Q.trim()}catch{return null}}function qy(Z,Y){let Q=Z.split(`
|
|
1063
1069
|
`);if(!Q[0]?.startsWith("object "))throw new o("Invalid annotated tag object payload.","INVALID_TAG_OBJECT");return Q[0]=`object ${Y}`,Q.join(`
|
|
1064
|
-
`)}async function
|
|
1070
|
+
`)}async function Xy(Z){let{git$:Y,args:Q}=Z;if(!await r4(Y))return 1;if(Q.length!==4)return M.error(`Usage: ${R} tag [move|mv] <tag-name> <target-ref>`,"tag"),1;let{error:J}=await T4(Q,Y,3);if(J)return 1;let q=Q[2],X=Q[3],z=`refs/tags/${q}`;try{let W=await AZ(Y,X,{type:"commit"});if(!W)return M.error(`Invalid target commit reference: ${X}`,"tag"),1;let U=await Jy(Y,z);if(!U)return M.error(`Tag '${q}' does not exist.`,"tag"),1;if(U==="tag"){let K=await AZ(Y,z,{type:"tag"});if(!K)return M.error(`Failed to resolve current tag object for '${q}'.`,"tag"),1;let B=(await k`${Y} cat-file tag ${z}`).stdout,$=qy(B,W),V=(await k({input:$})`${Y} mktag`).stdout.trim();if(!V)return M.error(`Failed to create new tag object for '${q}'.`,"tag"),1;await k`${Y} update-ref ${z} ${V} ${K}`}else{let K=await AZ(Y,z);if(!K)return M.error(`Failed to resolve current ref for '${q}'.`,"tag"),1;await k`${Y} update-ref ${z} ${W} ${K}`}return C(H.green+`Moved tag '${q}' to ${H.bright+W.slice(0,12)+H.green}.`+H.reset),0}catch(W){return M.error(u(o.from(W),{color:!0}),"tag"),1}}var Y_,Q_,J_;var bQ=N(()=>{z0();m0();e0();H0();v0();w0();R0();S0();s0();Y_={move:Xy},Q_={long:()=>{return t(Z0`
|
|
1065
1071
|
${H.bright+d("TAG MOVE",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1066
1072
|
Move a tag to another commit.
|
|
1067
1073
|
|
|
@@ -1074,101 +1080,101 @@ Actionable next steps:`+H.reset),process.platform==="win32"&&process.arch==="x64
|
|
|
1074
1080
|
- Supports relative refs such as ${H.cyan}~3${H.reset} via GDX ref expansion.
|
|
1075
1081
|
- Supports both annotated and lightweight tags.
|
|
1076
1082
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})},short:"Extends git tag with ability to move tags.",usage:()=>{return t(Z0`
|
|
1077
|
-
${H.cyan}${
|
|
1078
|
-
${H.cyan}${
|
|
1083
|
+
${H.cyan}${R} tag move ${H.dim}<tag-name> <target-ref>${H.reset}
|
|
1084
|
+
${H.cyan}${R} tag mv ${H.dim}<tag-name> <target-ref>${H.reset}
|
|
1079
1085
|
|
|
1080
1086
|
Example:
|
|
1081
|
-
${H.cyan}${C} tag mv my-tag ~3 ${H.reset+H.dim}# Move my-tag to HEAD~3${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},gj={$root:{move:{},mv:{}}}});import dj from"crypto";import B0 from"path";async function cj(Z){let[Y,Q,J,q,X]=await Promise.all([lq(Z),x4(Z,["-c","color.ui=never","diff","--cached","--binary","--no-color","--no-ext-diff"]),x4(Z,["-c","color.ui=never","diff","--binary","--no-color","--no-ext-diff"]),x4(Z,["diff","--cached","--name-status","-z"]).then(cS),x4(Z,["-c","core.quotePath=false","ls-files","--others","--exclude-standard","-z"])]),z=Y.repoRoot,W=new TextEncoder,U=[{path:"worktree/staged.patch",data:W.encode(uj(Q)),kind:"file"},{path:"worktree/unstaged.patch",data:W.encode(uj(J)),kind:"file"},{path:"worktree/staged-status.json",data:W.encode(bQ(q)),kind:"file"}];for(let K of dS(X)){let B=SZ(K),$=B0.join(z,...B.split("/")),F=t6($);U.push({path:`worktree/untracked/${B}`,data:iq(F),kind:"file"})}return await rj("worktree",Y,U)}async function lj(Z){let Y=x0({message:"Collecting repository info..."}),Q=await lq(Z),J=Q.repoRoot,q=(await A0(Z,["--git-common-dir"])).trim();if(!q)throw Y.stop(),Error("Unable to resolve the git common directory for this repository.");let X=B0.isAbsolute(q)?q:B0.resolve(J,q);await fZ();let z=K7(B0.join(PQ(),"full-")),W=B0.join(z,"git");try{vX(X,W,{recursive:!0}),Y.setMessage("Creating snapshot archive..."),await pS(W);let U=J_(Z);await k`${U} --git-dir ${W} reflog expire --expire-unreachable=now --all`,await k`${U} --git-dir ${W} gc --prune=now`;let K=await mS(W,"full/git");return Y.setMessage("Finalizing snapshot..."),await rj("full",Q,K)}finally{Y.stop(),S6(z,{recursive:!0,force:!0})}}async function RQ(Z){let[Y,Q]=await Promise.all([nq(Z),yZ()]);if(!Y)return Q;return Q.filter((J)=>oq(J.meta,Y))}async function nj(Z,Y,Q=!1){let J=await TQ(Z,Y),q=await kQ(J.archivePath);if(q.meta.type==="worktree")await ej(Z,q,Q);else await Z_(Z,q,Q);return J}async function oj(Z,Y,Q=!1){let J=await TQ(Z,Y),q=await kQ(J.archivePath);if(q.meta.type==="worktree")await ej(Z,q,Q);else await Z_(Z,q,Q);return await j6(J.archivePath,{force:!0}),await yZ(),J}async function ij(Z,Y){let Q=await vS(Z,Y);for(let J of Q)await j6(J.archivePath,{force:!0});return await yZ(),Q}async function sj(Z){let Y=B0.resolve(Z);if(!Y.endsWith($8))throw Error(`Snapshot file must use the ${$8} extension.`);if(!l(Y))throw Error(`Snapshot file '${Z}' does not exist.`);if(!(await y6(Y)).isFile())throw Error(`Snapshot path '${Z}' is not a file.`);let J=await kQ(Y),q=xS(J),X=B0.join(xQ(),`${q}${$8}`);if(await fZ(),mZ(Y)!==mZ(X))await iQ(Y,X);let W=(await yZ()).find((U)=>U.hash===q);if(!W)throw Error(`Imported snapshot '${Z}' could not be indexed.`);return W}async function aj(Z,Y,Q){if(!Q.trim())throw Error("Missing export destination. Usage: gdx snap export <hash> <dest>.");let J=await TQ(Z,Y),q=B0.resolve(Q),X=`${J.meta.repoLabel}-${J.hash.slice(0,n6)}${$8}`,z=q.endsWith($8)?q:B0.join(q,X),W=B0.dirname(z);if(!l(W))await x8(W,{recursive:!0});return await iQ(J.archivePath,z),{snapshot:J,destinationPath:z}}async function rj(Z,Y,Q){await fZ();let J=new Date().toISOString(),q={version:N7,type:Z,createdAt:J,repoRoot:Y.repoRoot,repoLabel:Y.repoLabel,repoIdentity:Y.repoIdentity,rootCommit:Y.rootCommit,headCommit:Y.headCommit,headRef:Y.headRef,branchName:Y.branchName,originUrl:Y.originUrl},X=tj(Y,Z,Q),z=B0.join(xQ(),`${X}${$8}`),W=l(z);if(!W)await PS(z,q,Q);let K=(await yZ()).find((B)=>B.hash===X);return{hash:X,archivePath:z,existed:W,meta:K?.meta||q}}function tj(Z,Y,Q){let J={version:N7,type:Y,repoRoot:Z.repoRoot,repoLabel:Z.repoLabel,repoIdentity:Z.repoIdentity,rootCommit:Z.rootCommit,headCommit:Z.headCommit,headRef:Z.headRef,branchName:Z.branchName,originUrl:Z.originUrl},q=dj.createHash("sha256"),X=new TextEncoder;q.update(X.encode("gdxsnap/v1\x00")),q.update(X.encode(bQ(J)));for(let z of Y_(Q))q.update(X.encode(`\x00${z.kind}\x00${z.path}\x00${z.data.length}\x00`)),q.update(z.data);return q.digest("hex").slice(0,Bz)}function xS(Z){let Y=[];for(let[Q,J]of Z.entries.entries()){if(Q===lZ)continue;Y.push({path:Q,data:J,kind:"file"})}return tj(Z.meta,Z.meta.type,Y)}async function PS(Z,Y,Q){let J=await q_(),q={[lZ]:J.strToU8(bQ(Y))};for(let z of Y_(Q))q[z.path]=z.data;let X=J.zipSync(q,{level:9});await c0(Z,Buffer.from(X))}async function bS(Z){let Y=Z.trim().toLowerCase();if(!Y)throw Error("Missing snapshot hash. Usage: gdx snap apply <hash>.");let J=(await yZ()).filter((q)=>q.hash.startsWith(Y));if(J.length===0)throw Error(`No snapshot found for hash prefix '${Z}'.`);if(J.length>1){let q=J.map((X)=>X.hash.slice(0,n6)).join(", ");throw Error(`Snapshot hash prefix '${Z}' is ambiguous: ${q}.`)}return J[0]}async function TQ(Z,Y){let Q=Y.trim(),J=Q.match(/^~(\d*)$/);if(!J)return await bS(Q);let q=J[1]?Number(J[1]):0;return await SS(Z,q)}async function vS(Z,Y){let Q=[],J=new Set;for(let q of Y){let X=q.includes("..")?await yS(Z,q):[await TQ(Z,q)];for(let z of X){if(J.has(z.hash))continue;J.add(z.hash),Q.push(z)}}return Q}async function SS(Z,Y){if(!Number.isInteger(Y)||Y<0)throw Error(`Invalid snapshot index '${Y}'.`);let J=(await RQ(Z))[Y];if(!J)throw Error(`No snapshot found at index ${Y}.`);return J}async function yS(Z,Y){let Q=await RQ(Z),[J,q]=Y.split("..").map((X,z)=>X===""?z?Q.length-1:0:parseInt(X,10));if(isNaN(J)||isNaN(q)||J>q)throw Error(`Invalid snapshot range '${Y}'.`);if(!Number.isInteger(J)||!Number.isInteger(q)||J<0||q<J)throw Error(`Invalid snapshot range '${Y}'.`);if(J>=Q.length||q>=Q.length)throw Error(`Snapshot range '${Y}' is outside the list bounds.`);return Q.slice(J,q+1)}async function kQ(Z){let[Y,Q]=await Promise.all([q_(),p0(Z)]),J=Y.unzipSync(iq(Q)),q=J[lZ];if(!q)throw Error(`Snapshot archive '${Z}' is missing ${lZ}.`);let X=JSON.parse(Y.strFromU8(q)),z=new Map;for(let[W,U]of Object.entries(J))z.set(W,U);return{archivePath:Z,hash:B0.basename(Z,$8),meta:X,entries:z}}async function ej(Z,Y,Q){let J=await nq(Z);if(!J)throw Error("Worktree snapshots can only be applied inside a compatible git repository.");if(!oq(Y.meta,J))throw Error("This worktree snapshot belongs to a different repository or root commit.");if(!(await A0(Z,["--verify",`${Y.meta.headCommit}^{commit}`])).trim())throw Error("The commit referenced by this worktree snapshot is no longer available.");if(!Q&&await uS(Z))throw Error("Working tree is dirty. Re-run with --force to apply this snapshot.");if(Q)await k`${Z} reset --hard HEAD`,await k`${Z} clean -fd`;if(Y.meta.branchName&&Y.meta.headRef)await k`${Z} checkout -B ${Y.meta.branchName} ${Y.meta.headCommit}`;else await k`${Z} checkout --detach ${Y.meta.headCommit}`;await k`${Z} reset --hard ${Y.meta.headCommit}`,await k`${Z} clean -fd`,await fZ();let X=await oQ(B0.join(PQ(),"apply-worktree-"));try{let z=Y.entries.get("worktree/staged.patch"),W=Y.entries.get("worktree/staged-status.json"),U=Y.entries.get("worktree/unstaged.patch"),K=B0.join(X,"staged.patch"),B=B0.join(X,"unstaged.patch"),$=W?JSON.parse(new TextDecoder().decode(W)):[];if(z&&z.length>0){await c0(K,Buffer.from(z)),await k`${Z} apply --cached --binary --whitespace=nowarn ${K}`;for(let F of $){let O=B0.join(J.repoRoot,...F.path.split("/"));if(F.status==="D"){await j6(O,{force:!0,recursive:!0});continue}if((F.status==="R"||F.status==="C")&&F.oldPath){let V=B0.join(J.repoRoot,...F.oldPath.split("/"));await j6(V,{force:!0,recursive:!0})}await k`${Z} checkout -- ${F.path}`}}if(U&&U.length>0)await c0(B,Buffer.from(U)),await k`${Z} apply --binary --whitespace=nowarn ${B}`;for(let[F,O]of Y.entries.entries()){if(!F.startsWith("worktree/untracked/"))continue;let V=F.slice(19),D=Q_(V),_=B0.join(J.repoRoot,...D.split("/")),N=B0.dirname(_);if(!l(N))n0(N,{recursive:!0});B8(_,Buffer.from(O))}}finally{S6(X,{recursive:!0,force:!0})}}async function Z_(Z,Y,Q){let J=await nq(Z);if(J){if(!oq(Y.meta,J))throw Error("This full snapshot belongs to a different repository or root commit.");if(!Q)throw Error("Applying a full snapshot inside an existing repository requires --force.");let U=(await A0(Z,["--git-common-dir"])).trim();if(!U)throw Error("Unable to resolve the current repository git common directory.");let K=J.repoRoot,B=B0.isAbsolute(U)?U:B0.resolve(K,U);await fZ();let $=await oQ(B0.join(PQ(),"apply-full-")),F=B0.join($,".git"),O=`${B}.gdx-snap-backup-${Date.now()}`;try{if(await mj(Y,F),l(O))await j6(O,{recursive:!0,force:!0});await B7(B,O);try{await B7(F,B)}catch(V){throw await B7(O,B),V}await k`${Z} reset --hard HEAD`,await k`${Z} clean -fd`,await j6(O,{recursive:!0,force:!0})}finally{await j6($,{recursive:!0,force:!0})}return}let q=lS(Z),X=B0.join(q,Y.meta.repoLabel);if(l(X)){if(!Q)throw Error(`Target directory '${X}' already exists. Use --force to replace it.`);await j6(X,{recursive:!0,force:!0})}n0(X,{recursive:!0});let z=B0.join(X,".git");await mj(Y,z);let W=J_(Z);await k`${W} -C ${X} reset --hard HEAD`,await k`${W} -C ${X} clean -fd`}async function mj(Z,Y){let Q=0;for(let[J,q]of Z.entries.entries()){if(!J.startsWith("full/git/"))continue;let X=J.slice(9),z=Q_(X),W=B0.join(Y,...z.split("/")),U=B0.dirname(W);if(!l(U))n0(U,{recursive:!0});await c0(W,Buffer.from(q)),Q+=1}if(Q===0)throw Error("This Snapshot archive does not contain any full git backup entries.");for(let J of["branches","hooks","info","objects","objects/info","objects/pack","refs","refs/heads","refs/remotes","refs/tags","logs","logs/refs","logs/refs/heads","logs/refs/remotes"]){let q=B0.join(Y,...J.split("/"));if(!l(q))n0(q,{recursive:!0})}}async function yZ(){await fZ();let Z=await fS();return await c0(hS(),bQ(Z),"utf-8"),Z}async function fS(){let Z=xQ();if(!l(Z))return[];let Y=(await g4(Z)).filter((J)=>J.endsWith($8)).sort((J,q)=>J.localeCompare(q));return(await Promise.all(Y.map(async(J)=>{let q=B0.join(Z,J),X=await kQ(q);return{hash:X.hash,archivePath:q,meta:X.meta}}))).sort((J,q)=>Date.parse(q.meta.createdAt)-Date.parse(J.meta.createdAt)||J.hash.localeCompare(q.hash))}async function lq(Z){let Y=F6(Z),[Q,J,q,X,z,W]=await Promise.all([Y,x4(Z,["rev-list","--max-parents=0","HEAD"]),A0(Z,["HEAD"]),x4(Z,["symbolic-ref","-q","HEAD"]).then((_)=>_.trim()||null).catch(()=>null),A0(Z,["--abbrev-ref","HEAD"]),Y.then((_)=>w4(Z,"remote.origin.url",_))]),K=J.trim().split(/\r?\n/).filter(Boolean)[0]||"",B=q.trim();if(!Q||!K||!B)throw Error("Snapshots require a repository with at least one commit.");let $=z.trim(),F=$&&$!=="HEAD"?$:null,O=W.trim()||null,V=B0.basename(Q),D=dj.createHash("sha1").update(`${K}\x00${O||""}`).digest("hex");return{version:N7,type:"worktree",repoRoot:Q,repoLabel:V,repoIdentity:D,rootCommit:K,headCommit:B,headRef:X,branchName:F,originUrl:O}}async function nq(Z){try{if(!(await A0(Z,["--show-toplevel"])).trim())return null;return await lq(Z)}catch{return null}}function oq(Z,Y){if(Z.rootCommit!==Y.rootCommit)return!1;if(Z.originUrl&&Y.originUrl)return Z.originUrl===Y.originUrl;return Z.repoIdentity===Y.repoIdentity||Z.rootCommit===Y.rootCommit}async function fZ(){await Promise.all([EQ(),xQ(),PQ()].map(async(Z)=>{if(!l(Z))await x8(Z,{recursive:!0})}))}function EQ(){return B0.join(gS(),"gdx","snap")}function xQ(){return B0.join(EQ(),"objects")}function hS(){return B0.join(EQ(),"index.json")}function PQ(){return B0.join(EQ(),"tmp")}function gS(){let Z=process.env.GDX_TEMP_DIR;if(Z){let Y=B0.join(Z,"tmp");return Z}return K6}function pj(){return process.env.GDX_CURRENT_DIR||mX||process.cwd()}async function mS(Z,Y){let Q=[];return await U7(Z,async(J)=>{let q=SZ(B0.relative(Z,J)),X=await p0(J);Q.push({path:`${Y}/${q}`,data:iq(X),kind:"file"})}),Q}async function pS(Z){let Y=B0.join(Z,"worktrees");if(l(Y))await j6(Y,{recursive:!0,force:!0});await U7(Z,async(Q)=>{let J=B0.basename(Q);if(J.endsWith(".lock")||J==="gc.log")await j6(Q,{force:!0})})}async function uS(Z){return(await x4(Z,["status","--porcelain=v1","--untracked-files=normal"])).trim().length>0}async function x4(Z,Y){return(await k`${Z} ${Y}`).stdout}function Y_(Z){return[...Z].sort((Y,Q)=>Y.path.localeCompare(Q.path))}function SZ(Z){return d0(Z).replace(/^\.\//,"").replace(/^\/+/,"")}function Q_(Z){let Y=SZ(Z);if(!Y)throw Error("Snapshot archive contains an empty path entry.");if(B0.posix.isAbsolute(Y)||B0.win32.isAbsolute(Z))throw Error(`Snapshot archive contains an absolute path '${Z}'.`);if(/^[A-Za-z]:([\\/]|$)/.test(Z))throw Error(`Snapshot archive contains a drive-qualified path '${Z}'.`);if(Y.split("/").some((J)=>!J||J==="."||J===".."))throw Error(`Snapshot archive contains an unsafe path '${Z}'.`);return Y}function dS(Z){return Z.split("\x00").map((Y)=>Y.trim()).filter(Boolean)}function uj(Z){if(!Z)return Z;return Z.endsWith(`
|
|
1087
|
+
${H.cyan}${R} tag mv my-tag ~3 ${H.reset+H.dim}# Move my-tag to HEAD~3${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",mode:"softboundary",indent:" "})}},J_={$root:{move:{},mv:{}}}});import H_ from"crypto";import B0 from"path";async function W_(Z){let[Y,Q,J,q,X]=await Promise.all([QX(Z),v8(Z,["-c","color.ui=never","diff","--cached","--binary","--no-color","--no-ext-diff"]),v8(Z,["-c","color.ui=never","diff","--binary","--no-color","--no-ext-diff"]),v8(Z,["diff","--cached","--name-status","-z"]).then(_y),v8(Z,["-c","core.quotePath=false","ls-files","--others","--exclude-standard","-z"])]),z=Y.repoRoot,W=new TextEncoder,U=[{path:"worktree/staged.patch",data:W.encode(z_(Q)),kind:"file"},{path:"worktree/unstaged.patch",data:W.encode(z_(J)),kind:"file"},{path:"worktree/staged-status.json",data:W.encode(mQ(q)),kind:"file"}];for(let K of jy(X)){let B=fZ(K),$=B0.join(z,...B.split("/")),V=Z4($);U.push({path:`worktree/untracked/${B}`,data:XX(V),kind:"file"})}return await O_("worktree",Y,U)}async function U_(Z){let Y=P0({message:"Collecting repository info..."}),Q=await QX(Z),J=Q.repoRoot,q=(await A0(Z,["--git-common-dir"])).trim();if(!q)throw Y.stop(),Error("Unable to resolve the git common directory for this repository.");let X=B0.isAbsolute(q)?q:B0.resolve(J,q);await gZ();let z=F7(B0.join(gQ(),"full-")),W=B0.join(z,"git");try{lX(X,W,{recursive:!0}),Y.setMessage("Creating snapshot archive..."),await Dy(W);let U=I_(Z);await k`${U} --git-dir ${W} reflog expire --expire-unreachable=now --all`,await k`${U} --git-dir ${W} gc --prune=now`;let K=await Oy(W,"full/git");return Y.setMessage("Finalizing snapshot..."),await O_("full",Q,K)}finally{Y.stop(),y6(z,{recursive:!0,force:!0})}}async function vQ(Z){let[Y,Q]=await Promise.all([JX(Z),hZ()]);if(!Y)return Q;return Q.filter((J)=>qX(J.meta,Y))}async function K_(Z,Y,Q=!1){let J=await SQ(Z,Y),q=await yQ(J.archivePath);if(q.meta.type==="worktree")await M_(Z,q,Q);else await j_(Z,q,Q);return J}async function B_(Z,Y,Q=!1){let J=await SQ(Z,Y),q=await yQ(J.archivePath);if(q.meta.type==="worktree")await M_(Z,q,Q);else await j_(Z,q,Q);return await _6(J.archivePath,{force:!0}),await hZ(),J}async function $_(Z,Y){let Q=await Uy(Z,Y);for(let J of Q)await _6(J.archivePath,{force:!0});return await hZ(),Q}async function F_(Z){let Y=B0.resolve(Z);if(!Y.endsWith(F4))throw Error(`Snapshot file must use the ${F4} extension.`);if(!l(Y))throw Error(`Snapshot file '${Z}' does not exist.`);if(!(await f6(Y)).isFile())throw Error(`Snapshot path '${Z}' is not a file.`);let J=await yQ(Y),q=zy(J),X=B0.join(hQ(),`${q}${F4}`);if(await gZ(),uZ(Y)!==uZ(X))await Y2(Y,X);let W=(await hZ()).find((U)=>U.hash===q);if(!W)throw Error(`Imported snapshot '${Z}' could not be indexed.`);return W}async function V_(Z,Y,Q){if(!Q.trim())throw Error("Missing export destination. Usage: gdx snap export <hash> <dest>.");let J=await SQ(Z,Y),q=B0.resolve(Q),X=`${J.meta.repoLabel}-${J.hash.slice(0,i6)}${F4}`,z=q.endsWith(F4)?q:B0.join(q,X),W=B0.dirname(z);if(!l(W))await b4(W,{recursive:!0});return await Y2(J.archivePath,z),{snapshot:J,destinationPath:z}}async function O_(Z,Y,Q){await gZ();let J=new Date().toISOString(),q={version:w7,type:Z,createdAt:J,repoRoot:Y.repoRoot,repoLabel:Y.repoLabel,repoIdentity:Y.repoIdentity,rootCommit:Y.rootCommit,headCommit:Y.headCommit,headRef:Y.headRef,branchName:Y.branchName,originUrl:Y.originUrl},X=D_(Y,Z,Q),z=B0.join(hQ(),`${X}${F4}`),W=l(z);if(!W)await Hy(z,q,Q);let K=(await hZ()).find((B)=>B.hash===X);return{hash:X,archivePath:z,existed:W,meta:K?.meta||q}}function D_(Z,Y,Q){let J={version:w7,type:Y,repoRoot:Z.repoRoot,repoLabel:Z.repoLabel,repoIdentity:Z.repoIdentity,rootCommit:Z.rootCommit,headCommit:Z.headCommit,headRef:Z.headRef,branchName:Z.branchName,originUrl:Z.originUrl},q=H_.createHash("sha256"),X=new TextEncoder;q.update(X.encode("gdxsnap/v1\x00")),q.update(X.encode(mQ(J)));for(let z of __(Q))q.update(X.encode(`\x00${z.kind}\x00${z.path}\x00${z.data.length}\x00`)),q.update(z.data);return q.digest("hex").slice(0,Lz)}function zy(Z){let Y=[];for(let[Q,J]of Z.entries.entries()){if(Q===oZ)continue;Y.push({path:Q,data:J,kind:"file"})}return D_(Z.meta,Z.meta.type,Y)}async function Hy(Z,Y,Q){let J=await L_(),q={[oZ]:J.strToU8(mQ(Y))};for(let z of __(Q))q[z.path]=z.data;let X=J.zipSync(q,{level:9});await c0(Z,Buffer.from(X))}async function Wy(Z){let Y=Z.trim().toLowerCase();if(!Y)throw Error("Missing snapshot hash. Usage: gdx snap apply <hash>.");let J=(await hZ()).filter((q)=>q.hash.startsWith(Y));if(J.length===0)throw Error(`No snapshot found for hash prefix '${Z}'.`);if(J.length>1){let q=J.map((X)=>X.hash.slice(0,i6)).join(", ");throw Error(`Snapshot hash prefix '${Z}' is ambiguous: ${q}.`)}return J[0]}async function SQ(Z,Y){let Q=Y.trim(),J=Q.match(/^~(\d*)$/);if(!J)return await Wy(Q);let q=J[1]?Number(J[1]):0;return await Ky(Z,q)}async function Uy(Z,Y){let Q=[],J=new Set;for(let q of Y){let X=q.includes("..")?await By(Z,q):[await SQ(Z,q)];for(let z of X){if(J.has(z.hash))continue;J.add(z.hash),Q.push(z)}}return Q}async function Ky(Z,Y){if(!Number.isInteger(Y)||Y<0)throw Error(`Invalid snapshot index '${Y}'.`);let J=(await vQ(Z))[Y];if(!J)throw Error(`No snapshot found at index ${Y}.`);return J}async function By(Z,Y){let Q=await vQ(Z),[J,q]=Y.split("..").map((X,z)=>X===""?z?Q.length-1:0:parseInt(X,10));if(isNaN(J)||isNaN(q)||J>q)throw Error(`Invalid snapshot range '${Y}'.`);if(!Number.isInteger(J)||!Number.isInteger(q)||J<0||q<J)throw Error(`Invalid snapshot range '${Y}'.`);if(J>=Q.length||q>=Q.length)throw Error(`Snapshot range '${Y}' is outside the list bounds.`);return Q.slice(J,q+1)}async function yQ(Z){let[Y,Q]=await Promise.all([L_(),f0(Z)]),J=Y.unzipSync(XX(Q)),q=J[oZ];if(!q)throw Error(`Snapshot archive '${Z}' is missing ${oZ}.`);let X=JSON.parse(Y.strFromU8(q)),z=new Map;for(let[W,U]of Object.entries(J))z.set(W,U);return{archivePath:Z,hash:B0.basename(Z,F4),meta:X,entries:z}}async function M_(Z,Y,Q){let J=await JX(Z);if(!J)throw Error("Worktree snapshots can only be applied inside a compatible git repository.");if(!qX(Y.meta,J))throw Error("This worktree snapshot belongs to a different repository or root commit.");if(!(await A0(Z,["--verify",`${Y.meta.headCommit}^{commit}`])).trim())throw Error("The commit referenced by this worktree snapshot is no longer available.");if(!Q&&await My(Z))throw Error("Working tree is dirty. Re-run with --force to apply this snapshot.");if(Q)await k`${Z} reset --hard HEAD`,await k`${Z} clean -fd`;if(Y.meta.branchName&&Y.meta.headRef)await k`${Z} checkout -B ${Y.meta.branchName} ${Y.meta.headCommit}`;else await k`${Z} checkout --detach ${Y.meta.headCommit}`;await k`${Z} reset --hard ${Y.meta.headCommit}`,await k`${Z} clean -fd`,await gZ();let X=await Z2(B0.join(gQ(),"apply-worktree-"));try{let z=Y.entries.get("worktree/staged.patch"),W=Y.entries.get("worktree/staged-status.json"),U=Y.entries.get("worktree/unstaged.patch"),K=B0.join(X,"staged.patch"),B=B0.join(X,"unstaged.patch"),$=W?JSON.parse(new TextDecoder().decode(W)):[];if(z&&z.length>0){await c0(K,Buffer.from(z)),await k`${Z} apply --cached --binary --whitespace=nowarn ${K}`;for(let V of $){let D=B0.join(J.repoRoot,...V.path.split("/"));if(V.status==="D"){await _6(D,{force:!0,recursive:!0});continue}if((V.status==="R"||V.status==="C")&&V.oldPath){let F=B0.join(J.repoRoot,...V.oldPath.split("/"));await _6(F,{force:!0,recursive:!0})}await k`${Z} checkout -- ${V.path}`}}if(U&&U.length>0)await c0(B,Buffer.from(U)),await k`${Z} apply --binary --whitespace=nowarn ${B}`;for(let[V,D]of Y.entries.entries()){if(!V.startsWith("worktree/untracked/"))continue;let F=V.slice(19),O=N_(F),j=B0.join(J.repoRoot,...O.split("/")),_=B0.dirname(j);if(!l(_))i0(_,{recursive:!0});$4(j,Buffer.from(D))}}finally{y6(X,{recursive:!0,force:!0})}}async function j_(Z,Y,Q){let J=await JX(Z);if(J){if(!qX(Y.meta,J))throw Error("This full snapshot belongs to a different repository or root commit.");if(!Q)throw Error("Applying a full snapshot inside an existing repository requires --force.");let U=(await A0(Z,["--git-common-dir"])).trim();if(!U)throw Error("Unable to resolve the current repository git common directory.");let K=J.repoRoot,B=B0.isAbsolute(U)?U:B0.resolve(K,U);await gZ();let $=await Z2(B0.join(gQ(),"apply-full-")),V=B0.join($,".git"),D=`${B}.gdx-snap-backup-${Date.now()}`;try{if(await q_(Y,V),l(D))await _6(D,{recursive:!0,force:!0});await V7(B,D);try{await V7(V,B)}catch(F){throw await V7(D,B),F}await k`${Z} reset --hard HEAD`,await k`${Z} clean -fd`,await _6(D,{recursive:!0,force:!0})}finally{await _6($,{recursive:!0,force:!0})}return}let q=Ny(Z),X=B0.join(q,Y.meta.repoLabel);if(l(X)){if(!Q)throw Error(`Target directory '${X}' already exists. Use --force to replace it.`);await _6(X,{recursive:!0,force:!0})}i0(X,{recursive:!0});let z=B0.join(X,".git");await q_(Y,z);let W=I_(Z);await k`${W} -C ${X} reset --hard HEAD`,await k`${W} -C ${X} clean -fd`}async function q_(Z,Y){let Q=0;for(let[J,q]of Z.entries.entries()){if(!J.startsWith("full/git/"))continue;let X=J.slice(9),z=N_(X),W=B0.join(Y,...z.split("/")),U=B0.dirname(W);if(!l(U))i0(U,{recursive:!0});await c0(W,Buffer.from(q)),Q+=1}if(Q===0)throw Error("This Snapshot archive does not contain any full git backup entries.");for(let J of["branches","hooks","info","objects","objects/info","objects/pack","refs","refs/heads","refs/remotes","refs/tags","logs","logs/refs","logs/refs/heads","logs/refs/remotes"]){let q=B0.join(Y,...J.split("/"));if(!l(q))i0(q,{recursive:!0})}}async function hZ(){await gZ();let Z=await $y();return await c0(Fy(),mQ(Z),"utf-8"),Z}async function $y(){let Z=hQ();if(!l(Z))return[];let Y=(await u8(Z)).filter((J)=>J.endsWith(F4)).sort((J,q)=>J.localeCompare(q));return(await Promise.all(Y.map(async(J)=>{let q=B0.join(Z,J),X=await yQ(q);return{hash:X.hash,archivePath:q,meta:X.meta}}))).sort((J,q)=>Date.parse(q.meta.createdAt)-Date.parse(J.meta.createdAt)||J.hash.localeCompare(q.hash))}async function QX(Z){let Y=F6(Z),[Q,J,q,X,z,W]=await Promise.all([Y,v8(Z,["rev-list","--max-parents=0","HEAD"]),A0(Z,["HEAD"]),v8(Z,["symbolic-ref","-q","HEAD"]).then((j)=>j.trim()||null).catch(()=>null),A0(Z,["--abbrev-ref","HEAD"]),Y.then((j)=>C8(Z,"remote.origin.url",j))]),K=J.trim().split(/\r?\n/).filter(Boolean)[0]||"",B=q.trim();if(!Q||!K||!B)throw Error("Snapshots require a repository with at least one commit.");let $=z.trim(),V=$&&$!=="HEAD"?$:null,D=W.trim()||null,F=B0.basename(Q),O=H_.createHash("sha1").update(`${K}\x00${D||""}`).digest("hex");return{version:w7,type:"worktree",repoRoot:Q,repoLabel:F,repoIdentity:O,rootCommit:K,headCommit:B,headRef:X,branchName:V,originUrl:D}}async function JX(Z){try{if(!(await A0(Z,["--show-toplevel"])).trim())return null;return await QX(Z)}catch{return null}}function qX(Z,Y){if(Z.rootCommit!==Y.rootCommit)return!1;if(Z.originUrl&&Y.originUrl)return Z.originUrl===Y.originUrl;return Z.repoIdentity===Y.repoIdentity||Z.rootCommit===Y.rootCommit}async function gZ(){await Promise.all([fQ(),hQ(),gQ()].map(async(Z)=>{if(!l(Z))await b4(Z,{recursive:!0})}))}function fQ(){return B0.join(Vy(),"gdx","snap")}function hQ(){return B0.join(fQ(),"objects")}function Fy(){return B0.join(fQ(),"index.json")}function gQ(){return B0.join(fQ(),"tmp")}function Vy(){let Z=process.env.GDX_TEMP_DIR;if(Z){let Y=B0.join(Z,"tmp");return Z}return K6}function X_(){return process.env.GDX_CURRENT_DIR||rX||process.cwd()}async function Oy(Z,Y){let Q=[];return await $7(Z,async(J)=>{let q=fZ(B0.relative(Z,J)),X=await f0(J);Q.push({path:`${Y}/${q}`,data:XX(X),kind:"file"})}),Q}async function Dy(Z){let Y=B0.join(Z,"worktrees");if(l(Y))await _6(Y,{recursive:!0,force:!0});await $7(Z,async(Q)=>{let J=B0.basename(Q);if(J.endsWith(".lock")||J==="gc.log")await _6(Q,{force:!0})})}async function My(Z){return(await v8(Z,["status","--porcelain=v1","--untracked-files=normal"])).trim().length>0}async function v8(Z,Y){return(await k`${Z} ${Y}`).stdout}function __(Z){return[...Z].sort((Y,Q)=>Y.path.localeCompare(Q.path))}function fZ(Z){return d0(Z).replace(/^\.\//,"").replace(/^\/+/,"")}function N_(Z){let Y=fZ(Z);if(!Y)throw Error("Snapshot archive contains an empty path entry.");if(B0.posix.isAbsolute(Y)||B0.win32.isAbsolute(Z))throw Error(`Snapshot archive contains an absolute path '${Z}'.`);if(/^[A-Za-z]:([\\/]|$)/.test(Z))throw Error(`Snapshot archive contains a drive-qualified path '${Z}'.`);if(Y.split("/").some((J)=>!J||J==="."||J===".."))throw Error(`Snapshot archive contains an unsafe path '${Z}'.`);return Y}function jy(Z){return Z.split("\x00").map((Y)=>Y.trim()).filter(Boolean)}function z_(Z){if(!Z)return Z;return Z.endsWith(`
|
|
1082
1088
|
`)?Z:`${Z}
|
|
1083
|
-
`}function
|
|
1089
|
+
`}function _y(Z){let Y=Z.split("\x00").filter(Boolean),Q=[];for(let J=0;J<Y.length;){let X=(Y[J++]||"")[0]||"";if(!X)continue;if(X==="R"||X==="C"){let W=Y[J++],U=Y[J++];if(W&&U)Q.push({status:X,oldPath:fZ(W),path:fZ(U)});continue}let z=Y[J++];if(!z)continue;Q.push({status:X,path:fZ(z)})}return Q}function I_(Z){return Array.isArray(Z)?Z[0]:Z}function Ny(Z){if(!Array.isArray(Z))return X_();for(let Y=Z.length-2;Y>=0;Y--)if(Z[Y]==="-C"&&Z[Y+1])return B0.resolve(Z[Y+1]);return X_()}function XX(Z){return Z instanceof Uint8Array?Z:new Uint8Array(Z)}function mQ(Z){return JSON.stringify(YX(Z))}function YX(Z){if(Array.isArray(Z))return Z.map((Y)=>YX(Y));if(Z&&typeof Z==="object"){let Y=Object.entries(Z).sort(([Q],[J])=>Q.localeCompare(J)).map(([Q,J])=>[Q,YX(J)]);return Object.fromEntries(Y)}return Z}async function L_(){if(!ZX)ZX=import("fflate");return await ZX}var ZX=null;var w_=N(()=>{J6();H0();e0();m0();J6()});async function zX(Z){let Y=Z.args.slice(0),Q=Y[1]?.toLowerCase()||"",{match:J,candidates:q}=h0(Q,Iy);try{switch(J){case null:if(Q!==""&&!Q.startsWith("-"))return C(pQ.usage()),0;case"worktree":{if(!await Ly(Z.git$))return M.warn("Worktree snapshots require running inside a git repository.","snap"),0;let X=await W_(Z.git$);return A_(X.hash,X.meta.type,X.meta.createdAt,X.existed),0}case"full":{let X=await U_(Z.git$);return A_(X.hash,X.meta.type,X.meta.createdAt,X.existed),0}case"list":{let X=await vQ(Z.git$);if(X.length===0)return C(`${H.yellow}No snapshots found.${H.reset}`),0;let z=i6+2,W=Math.max(4,String(X.length-1).length+2);C(`${H.bright}${b0("#",W,{align:"left",overflow:"visible",redundancyLv:0})}${b0("Hash",z,{align:"left",overflow:"visible",redundancyLv:0})}${b0("Type",11,{align:"left",overflow:"visible",redundancyLv:0})}${b0("Created",23,{align:"left",overflow:"visible",redundancyLv:0})}Repo${H.reset}`);for(let[U,K]of X.entries())C(`${b0(String(U),W,{align:"left",overflow:"visible",redundancyLv:0})}${H.cyan}${b0(K.hash.slice(0,i6),z,{align:"left",overflow:"visible",redundancyLv:0})}${H.reset}${b0(K.meta.type,11,{align:"left",overflow:"visible",redundancyLv:0})}${b0(G_(K.meta.createdAt),23,{align:"left",overflow:"visible",redundancyLv:0})}${K.meta.repoLabel}`);return 0}case"apply":{let X=!!Y.popOption("--force",2),z=Y.slice(2).filter(Boolean);if(z.length!==1)return M.error("Usage: gdx snap apply <hash> [--force]","snap"),1;let W=await K_(Z.git$,z[0],X);return C(`${H.green}Applied snapshot ${W.hash.slice(0,i6)}${H.reset} ${H.dim}(${W.meta.type})${H.reset}`),0}case"pop":{let X=!!Y.popOption("--force",2),z=Y.slice(2).filter(Boolean);if(z.length!==1)return M.error("Usage: gdx snap pop <hash> [--force]","snap"),1;let W=await B_(Z.git$,z[0],X);return C(`${H.green}Popped snapshot ${W.hash.slice(0,i6)}${H.reset} ${H.dim}(${W.meta.type})${H.reset}`),0}case"drop":{let X=Y.slice(2).filter(Boolean);if(X.length===0)return M.error("Usage: gdx snap drop <hash|~index|range> [...<hash|~index|range>]","snap"),1;let z=await $_(Z.git$,X),W=z.length===1?"":"s";return C(`${H.green}Dropped ${z.length} snapshot${W}${H.reset}`),0}case"import":{let X=Y.slice(2).filter(Boolean);if(X.length!==1)return M.error("Usage: gdx snap import <snapshot-path>","snap"),1;let z=await F_(X[0]);return C(`${H.green}Imported snapshot ${z.hash.slice(0,i6)}${H.reset} ${H.dim}(${z.meta.type})${H.reset}`),0}case"export":{let X=Y.slice(2).filter(Boolean);if(X.length!==2)return M.error("Usage: gdx snap export <hash> <dest>","snap"),1;let z=await V_(Z.git$,X[0],X[1]);return C(`${H.green}Exported snapshot ${z.snapshot.hash.slice(0,i6)}${H.reset} ${H.dim}(${z.destinationPath})${H.reset}`),0}default:if(q&&q.length>0)M.warn(`Ambiguous command '${Q}'. Did you mean one of: ${q.join(", ")}?`,"snap");return C(pQ.usage()),0}}catch(X){return M.error(X instanceof Error?X.message:String(X),"snap"),1}}function A_(Z,Y,Q,J){let q=Z.slice(0,i6),X=J?"Reused":"Created";C(`${H.green}${X}${H.reset} ${Y} snapshot ${H.cyan}${q}${H.reset} ${H.dim}(${G_(Q)})${H.reset}`)}function G_(Z){return Z.replace("T"," ").replace(/\.\d+Z$/,"Z")}async function Ly(Z){try{return(await A0(Z,["--is-inside-work-tree"])).trim()==="true"}catch{return!1}}var Iy,pQ,C_;var uQ=N(()=>{z0();H0();S0();e0();v0();w_();w0();s0();R0();Iy=["worktree","full","list","apply","pop","drop","import","export"];pQ={long:()=>{return t(Z0`
|
|
1084
1090
|
${H.bright+d("SNAP",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1085
1091
|
Create, list, apply, remove, import, and export portable repository snapshots.
|
|
1086
1092
|
|
|
1087
1093
|
${H.bright+d("DESCRIPTION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1088
|
-
${H.cyan}${
|
|
1094
|
+
${H.cyan}${R} snap worktree${H.reset} stores the current HEAD, staged changes, unstaged changes,
|
|
1089
1095
|
and untracked non-ignored files in a single archive.
|
|
1090
1096
|
|
|
1091
|
-
${H.cyan}${
|
|
1097
|
+
${H.cyan}${R} snap full${H.reset} stores a full backup of the repository git data in a single archive.
|
|
1092
1098
|
|
|
1093
|
-
${H.cyan}${
|
|
1099
|
+
${H.cyan}${R} snap list${H.reset} lists snapshots for the current repository, or every snapshot when
|
|
1094
1100
|
invoked outside a repository.
|
|
1095
1101
|
|
|
1096
|
-
${H.cyan}${
|
|
1097
|
-
${H.cyan}${
|
|
1102
|
+
${H.cyan}${R} snap apply <hash|~index>${H.reset} restores a snapshot by hash prefix or list index.
|
|
1103
|
+
${H.cyan}${R} snap pop <hash|~index>${H.reset} restores a snapshot and removes it after a successful apply.
|
|
1098
1104
|
Applying or popping over a dirty worktree requires ${H.cyan}--force${H.reset}. Full snapshots require
|
|
1099
1105
|
${H.cyan}--force${H.reset} when replacing an existing repository.
|
|
1100
1106
|
|
|
1101
|
-
${H.cyan}${
|
|
1107
|
+
${H.cyan}${R} snap drop <hash|~index|range> [...<hash|~index|range>]${H.reset} removes snapshots. Ranges are inclusive
|
|
1102
1108
|
list indexes, such as ${H.cyan}2..6${H.reset} or ${H.cyan}3..${H.reset}.
|
|
1103
1109
|
|
|
1104
|
-
${H.cyan}${
|
|
1110
|
+
${H.cyan}${R} snap import <snapshot-path>${H.reset} copies a .gdxsnap archive into local snapshot storage.
|
|
1105
1111
|
|
|
1106
|
-
${H.cyan}${
|
|
1112
|
+
${H.cyan}${R} snap export <hash|~index> <dest>${H.reset} copies a snapshot to a directory or explicit .gdxsnap path.
|
|
1107
1113
|
`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",indent:" ",mode:"softboundary"})},short:"Create, list, apply, remove, import, and export portable repository snapshots.",usage:()=>{return t(Z0`
|
|
1108
|
-
${H.cyan}${
|
|
1109
|
-
${H.cyan}${
|
|
1110
|
-
${H.cyan}${
|
|
1111
|
-
${H.cyan}${
|
|
1112
|
-
${H.cyan}${
|
|
1113
|
-
${H.cyan}${
|
|
1114
|
-
${H.cyan}${
|
|
1115
|
-
${H.cyan}${
|
|
1114
|
+
${H.cyan}${R} snap [worktree]${H.reset}
|
|
1115
|
+
${H.cyan}${R} snap full${H.reset}
|
|
1116
|
+
${H.cyan}${R} snap list${H.reset}
|
|
1117
|
+
${H.cyan}${R} snap apply <hash|~index> ${H.dim}[--force]${H.reset}
|
|
1118
|
+
${H.cyan}${R} snap pop <hash|~index> ${H.dim}[--force]${H.reset}
|
|
1119
|
+
${H.cyan}${R} snap drop <hash|~index|range> ${H.dim}[...targets]${H.reset}
|
|
1120
|
+
${H.cyan}${R} snap import <snapshot-path>${H.reset}
|
|
1121
|
+
${H.cyan}${R} snap export <hash|~index> <dest>${H.reset}
|
|
1116
1122
|
|
|
1117
1123
|
Examples:
|
|
1118
|
-
${H.cyan}${
|
|
1119
|
-
${H.cyan}${
|
|
1120
|
-
${H.cyan}${
|
|
1121
|
-
${H.cyan}${
|
|
1122
|
-
${H.cyan}${
|
|
1123
|
-
${H.cyan}${
|
|
1124
|
-
${H.cyan}${
|
|
1125
|
-
${H.cyan}${
|
|
1124
|
+
${H.cyan}${R} snap worktree${H.reset+H.dim} # Save current staged/unstaged/untracked state${H.reset}
|
|
1125
|
+
${H.cyan}${R} snap full${H.reset+H.dim} # Save a full git-data backup${H.reset}
|
|
1126
|
+
${H.cyan}${R} snap list${H.reset+H.dim} # Show available snapshots${H.reset}
|
|
1127
|
+
${H.cyan}${R} snap apply a1b2c3d --force${H.reset+H.dim} # Restore a snapshot${H.reset}
|
|
1128
|
+
${H.cyan}${R} snap apply ~ --force${H.reset+H.dim} # Restore newest listed snapshot${H.reset}
|
|
1129
|
+
${H.cyan}${R} snap pop a1b2c3d --force${H.reset+H.dim} # Restore and remove a snapshot${H.reset}
|
|
1130
|
+
${H.cyan}${R} snap drop 2..6 ~0${H.reset+H.dim} # Remove snapshots by index range and selector${H.reset}
|
|
1131
|
+
${H.cyan}${R} snap export a1b2c3d ./snapshots${H.reset+H.dim} # Copy out a snapshot archive${H.reset}`,Math.min(100,p.terminalWidth-4),{firstIndent:" ",indent:" ",mode:"softboundary"})}},C_={$root:{worktree:{},full:{},list:{},apply:{$allOf:["--force"]},pop:{$allOf:["--force"]},drop:{},import:{},export:{}}}});function dQ(Z){if(!Z)return C(t(`
|
|
1126
1132
|
──────────────────────────────
|
|
1127
1133
|
${H.bright+d("GDX (Git Developer eXperience)",E.OceanDeepBlue,E.OceanGreen,0.32,1)+H.reset}
|
|
1128
|
-
Version: ${H.cyan+
|
|
1134
|
+
Version: ${H.cyan+o6+H.reset}
|
|
1129
1135
|
──────────────────────────────
|
|
1130
1136
|
|
|
1131
1137
|
Git, but with better DX. The raw power of Git,
|
|
1132
1138
|
aligned with human workflows.
|
|
1133
1139
|
|
|
1134
1140
|
${H.bright+d("DESCRIPTION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1135
|
-
${
|
|
1141
|
+
${R} (wrapper) — shorthand-friendly wrapper for git (executable) with common shortcuts,
|
|
1136
1142
|
stash-range support, and convenience expansions.
|
|
1137
1143
|
It forwards unrecognized commands/args to git (executable) unchanged.
|
|
1138
1144
|
|
|
1139
1145
|
${H.bright+d("SYNOPSIS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1140
|
-
${
|
|
1146
|
+
${R} <command> [<args>]
|
|
1141
1147
|
Examples:
|
|
1142
|
-
${H.cyan}${
|
|
1143
|
-
${H.cyan}${
|
|
1144
|
-
${H.cyan}${
|
|
1145
|
-
${H.cyan}${
|
|
1146
|
-
# (use \`${H.cyan}${
|
|
1147
|
-
${H.cyan}${
|
|
1148
|
+
${H.cyan}${R} st ${H.reset+H.dim}# shorthand for ${R} stash${H.reset}
|
|
1149
|
+
${H.cyan}${R} lg ${H.reset+H.dim}# shorthand for ${R} log --oneline --graph --all --decorate${H.reset}
|
|
1150
|
+
${H.cyan}${R} stash d 2..6 ${H.reset+H.dim}# drop stashes 2 through 6 (safe: drops high->low)${H.reset}
|
|
1151
|
+
${H.cyan}${R} clear ${H.reset+H.dim}# backup changes to a temp patch file and reset working directory
|
|
1152
|
+
# (use \`${H.cyan}${R} clear pardon${H.white}\` to restore)${H.reset}
|
|
1153
|
+
${H.cyan}${R} cmi auto ${H.reset+H.dim}# generate commit message based on staged changes using LLM${H.reset}
|
|
1148
1154
|
|
|
1149
1155
|
${H.bright+d("KEY FEATURES",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1150
1156
|
- Many short aliases for common commands (commit, branch, checkout, etc.).
|
|
1151
1157
|
- Smart expansions:
|
|
1152
|
-
- log: ${H.cyan}${
|
|
1153
|
-
- log export: ${H.cyan}${
|
|
1158
|
+
- log: ${H.cyan}${R} lg ${H.reset+H.dim}-> ${H.reset+H.cyan}${R} log --oneline --graph --all --decorate${H.reset}
|
|
1159
|
+
- log export: ${H.cyan}${R} lg export [extra args] ${H.reset+H.dim}creates a nicely formatted
|
|
1154
1160
|
export (adds --author if missing).${H.reset}
|
|
1155
|
-
- pull: ${H.cyan}${
|
|
1156
|
-
- push: ${H.cyan}${
|
|
1157
|
-
- reset: ${H.cyan}${
|
|
1161
|
+
- pull: ${H.cyan}${R} pl -au ${H.reset+H.dim}-> expands -au to --allow-unrelated-histories.${H.reset}
|
|
1162
|
+
- push: ${H.cyan}${R} ps -fl ${H.reset+H.dim}-> expands -fl to --force-with-lease.${H.reset}
|
|
1163
|
+
- reset: ${H.cyan}${R} res -h ${H.reset+H.dim}-> ${H.reset+H.cyan}${R} reset --hard${H.reset+H.dim}; ${H.reset+H.cyan}${R} res ~3 ${H.reset+H.dim}-> ${H.reset+H.cyan}${R} reset HEAD~3${H.reset}
|
|
1158
1164
|
${H.dim}(also supports ${H.cyan}origin~N${H.reset+H.dim} for upstream-relative resets)${H.reset}
|
|
1159
1165
|
- Clear convenience:
|
|
1160
|
-
- ${H.cyan}${
|
|
1166
|
+
- ${H.cyan}${R} clear ${H.reset+H.dim}->${H.reset} creates a timestamped patch backup
|
|
1161
1167
|
in the system temp folder, then resets the working directory
|
|
1162
|
-
(${H.cyan}${
|
|
1163
|
-
- Use \`${H.cyan}${
|
|
1168
|
+
(${H.cyan}${R} reset --hard ${H.reset+H.dim}+ ${H.reset+H.cyan}${R} clean -fd${H.reset}).
|
|
1169
|
+
- Use \`${H.cyan}${R} clear pardon${H.reset}\` to apply the latest backup patch
|
|
1164
1170
|
and restore changes. Add \`${H.cyan}-f${H.reset}\`/\`${H.cyan}--force${H.reset}\` to bypass dirty-working-directory prompts.
|
|
1165
1171
|
- Stash convenience:
|
|
1166
|
-
- Short forms: ${H.cyan}${
|
|
1167
|
-
- ${H.cyan}${
|
|
1172
|
+
- Short forms: ${H.cyan}${R} sta / ${R} st${H.reset} for stash; ${H.cyan}${R} sta l${H.reset} -> stash list.
|
|
1173
|
+
- ${H.cyan}${R} stash d 2..6${H.reset} — drops stash@{6}..stash@{2} (drops high→low to
|
|
1168
1174
|
avoid index shift).
|
|
1169
1175
|
- Supports apply, pop, drop, list, show, clear via short forms.
|
|
1170
1176
|
- Quick worktrees:
|
|
1171
|
-
- ${H.cyan}${
|
|
1177
|
+
- ${H.cyan}${R} parallel fork/remove/join/switch/open/list${H.reset} for temp-backed worktree workflows.
|
|
1172
1178
|
|
|
1173
1179
|
${H.bright+d("SHORTHAND LIST (common)",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1174
1180
|
${H.cyan}ad ${H.reset+H.dim}-> ${H.reset}add
|
|
@@ -1191,12 +1197,12 @@ ${H.cyan}s, stat ${H.reset+H.dim}-> ${H.reset}status
|
|
|
1191
1197
|
${H.cyan}swit, sw ${H.reset+H.dim}-> ${H.reset}switch
|
|
1192
1198
|
|
|
1193
1199
|
${H.bright+d("CUSTOM COMMANDS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1194
|
-
${
|
|
1200
|
+
${T_(WX,{cyan:H.cyan,reset:H.reset})}
|
|
1195
1201
|
|
|
1196
1202
|
${H.bright+d("GIT COMMAND EXTENSIONS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1197
|
-
${
|
|
1203
|
+
${T_(HX,{cyan:H.cyan,reset:H.reset})}
|
|
1198
1204
|
|
|
1199
|
-
Run \`${H.cyan}${
|
|
1205
|
+
Run \`${H.cyan}${R} ghelp <command>${H.reset}\` for detailed help on a specific command.
|
|
1200
1206
|
|
|
1201
1207
|
${H.bright+d("OPTIONS",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1202
1208
|
${H.cyan}--init <shell> ${H.reset}Output shell initialization script for given shell.
|
|
@@ -1205,12 +1211,12 @@ ${H.cyan}--no-enhance ${H.reset}Bypass gdx enhanced Git's output.
|
|
|
1205
1211
|
${H.cyan}--loglevel <level> ${H.reset}Set log level (error, warning, info, debug).
|
|
1206
1212
|
${H.cyan}--ghelp, ${H.reset}Show GDX help message. ${H.dim}(use \`${H.cyan}ghelp <command>${H.reset}\`
|
|
1207
1213
|
${H.cyan} --gdx-help, -gh ${H.reset+H.dim}for command-specific help)${H.reset}
|
|
1208
|
-
${H.cyan}-r, --recursive ${H.yellow}[For '${
|
|
1209
|
-
${H.cyan}-au ${H.yellow}[For '${
|
|
1210
|
-
${H.cyan}--no-lint ${H.yellow}[For '${
|
|
1211
|
-
${H.cyan}-fl ${H.yellow}[For '${
|
|
1212
|
-
${H.cyan}-h ${H.yellow}[For '${
|
|
1213
|
-
${H.cyan}-s ${H.yellow}[For '${
|
|
1214
|
+
${H.cyan}-r, --recursive ${H.yellow}[For '${R} status']${H.reset} Recursively show git status of submodules.
|
|
1215
|
+
${H.cyan}-au ${H.yellow}[For '${R} pull']${H.reset} Shorthand for ${H.cyan}--allow-unrelated-histories${H.reset}.
|
|
1216
|
+
${H.cyan}--no-lint ${H.yellow}[For '${R} push']${H.reset} Skip linting for this push${H.reset}.
|
|
1217
|
+
${H.cyan}-fl ${H.yellow}[For '${R} push']${H.reset} Shorthand for ${H.cyan}--force-with-lease${H.reset}.
|
|
1218
|
+
${H.cyan}-h ${H.yellow}[For '${R} reset']${H.reset} Shorthand for ${H.cyan}--hard${H.reset}.
|
|
1219
|
+
${H.cyan}-s ${H.yellow}[For '${R} reset']${H.reset} Shorthand for ${H.cyan}--soft${H.reset}.
|
|
1214
1220
|
|
|
1215
1221
|
${H.bright+d("RELATIVE REF EXPANSION",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1216
1222
|
Expansions are triggered by specific shorthand patterns in the arguments. When detected, they are expanded to their full form before being passed to git.
|
|
@@ -1222,33 +1228,33 @@ Syntax:
|
|
|
1222
1228
|
- [head] and <number> can be omitted, they will default to HEAD and 0 respectively (e.g. ${H.cyan}origin~${H.reset} -> upstream, ${H.cyan}~${H.reset} -> HEAD).
|
|
1223
1229
|
|
|
1224
1230
|
Examples:
|
|
1225
|
-
- ${H.cyan}${
|
|
1226
|
-
- ${H.cyan}${
|
|
1227
|
-
- ${H.cyan}${
|
|
1228
|
-
- ${H.cyan}${
|
|
1231
|
+
- ${H.cyan}${R} reset ~3${H.reset} expands to ${H.cyan}${R} reset HEAD~3${H.reset}.
|
|
1232
|
+
- ${H.cyan}${R} reset -h${H.reset} expands to ${H.cyan}${R} reset --hard${H.reset}.
|
|
1233
|
+
- ${H.cyan}${R} show origin ~2${H.reset} expands to ${H.cyan}${R} show <upstream>~2${H.reset}.
|
|
1234
|
+
- ${H.cyan}${R} diff origin ~2${H.reset} expands to ${H.cyan}${R} diff <upstream>~2${H.reset}.
|
|
1229
1235
|
|
|
1230
1236
|
${H.bright+d("NOTES & SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
1231
1237
|
- Help message for individual custom commands is available via
|
|
1232
|
-
${H.cyan}${
|
|
1238
|
+
${H.cyan}${R} ghelp <command>${H.reset} (e.g. ${H.cyan}${R} ghelp stash${H.reset}).
|
|
1233
1239
|
- Range notation must be numeric and in the form start..end (e.g. 2..6).
|
|
1234
1240
|
- The wrapper prints an auto-expansion message when it expands a shorthand.
|
|
1235
|
-
- If you rely on advanced argument parsing or unusual ${
|
|
1241
|
+
- If you rely on advanced argument parsing or unusual ${R} flags, you can
|
|
1236
1242
|
bypass expansions by using the full command name
|
|
1237
1243
|
so they are not recognized as shorthand triggers.
|
|
1238
|
-
- For more infomation, see ${
|
|
1244
|
+
- For more infomation, see ${S6("README.md",j7)}.`,Math.min(100,p.terminalWidth-4),{mode:"softboundary",indent:2})),0;let Y=Z.replace(/^\/+/,"");if(Y==="help")return dQ();let Q=WX[Y]||HX[Y],J="";if(Q&&Q.long)J=Q.long();if(J&&Q.usage)J+=`
|
|
1239
1245
|
|
|
1240
1246
|
`+H.bright+d("USAGE",E.Zinc400,E.Zinc100,0.2)+H.reset+`
|
|
1241
|
-
`+Q.usage();if(J)return
|
|
1242
|
-
`)}var
|
|
1243
|
-
`);return 0}let W=J[0],{match:U}=
|
|
1244
|
-
`);return 0}}return M.debug(`No completion structure for command '${K}', or index out of range`,"completion"),0}finally{p.logLevel=Y}}var
|
|
1247
|
+
`+Q.usage();if(J)return C(J),0;return C(`No help found for '${Y}'.`),1}function T_(Z,Y){let Q=[];for(let[J,q]of Object.entries(Z))Q.push(Y.cyan+b0(J,R_,{overflow:"visible",align:"left",redundancyLv:0})+Y.reset+t(q.short,60,{indent:R_,firstIndent:0,redundancyLv:0,mode:"softboundary"}));return Q.join(`
|
|
1248
|
+
`)}var HX,WX,R_=23,k_;var UX=N(()=>{z0();H0();R0();v0();S0();c5();s5();c1();r5();MQ();jQ();xq();q7();NQ();IQ();LQ();wQ();AQ();CQ();xQ();bQ();uQ();HX={tag:Q_,stash:lO,commit:Kj,submodule:Rj,status:wj},WX={cache:Sq,stats:BD,graph:aO,nocap:ND,parallel:OQ,"gdx-config":rM,clear:bM,lint:Ij,doctor:Gj,reword:Sj,macro:tj,snap:pQ};k_={$root:Object.keys(WX).concat(Object.keys(HX))}});function wy(Z){if(!Z||typeof Z!=="object"||Array.isArray(Z))return!1;return!0}async function KX(Z,Y){let Q=Z,J=0;while(typeof Q==="function"&&J<3){try{Q=await Q(Y)}catch{return{}}J+=1}if(Array.isArray(Q)||wy(Q))return Q;return{}}async function E_(Z,Y){if(!Z)return[];let Q=Z,J=0;while(typeof Q==="function"&&J<3){try{Q=await Q(Y)}catch{return[]}J+=1}return Array.isArray(Q)?Q:[]}async function P_(Z,Y){if(Array.isArray(Z))return{children:{},anyOf:new Set(Z),allOf:new Set};let Q={},J=new Set(await E_(Z.$anyOf,Y)),q=new Set(await E_(Z.$allOf,Y));for(let[X,z]of Object.entries(Z)){if(X==="$allOf"||X==="$anyOf"||!z)continue;Q[X]=z}return{children:Q,anyOf:J,allOf:q}}function BX(Z,Y,Q=!1){let J=Array.from(new Set(Y)),{match:q,candidates:X}=h0(Z,J,Q);if(q)return{match:q,isAmbiguous:!1};if(Z&&X&&X.length>1)return{match:null,isAmbiguous:!0};return{match:null,isAmbiguous:!1}}async function x_(Z,Y,Q,J){let q=Q.$root,X=new Set,z=new Set,W=[...Z],U=!1,K=Y,B=(j,_)=>({git$:J.git$,args:W,index:j,cursorIndex:K,mode:_});for(let j=0;j<Y;j++){let _=W[j];if(!_)continue;q=await KX(q,B(j,"history"));let L=await P_(q,B(j,"history")),A=Object.keys(L.children),I=BX(_,A);if(I.isAmbiguous)return{completions:[]};if(I.match){for(let y of L.allOf)X.add(y);q=await KX(L.children[I.match],B(j,"history")),W[j]=I.match,U=!1;continue}let G=BX(_,L.anyOf);if(G.isAmbiguous)return{completions:[]};if(G.match){if(U)return{completions:[]};U=!0,W[j]=G.match;continue}let P=new Set([...L.allOf,...X]),T=BX(_,P);if(T.isAmbiguous)return{completions:[]};if(T.match){if(z.has(T.match))return{completions:[]};z.add(T.match),W[j]=T.match;continue}if(_.startsWith("-"))return{completions:[]}}q=await KX(q,B(Y,"suggest"));let $=await P_(q,B(Y,"suggest")),V=new Set;for(let j of Object.keys($.children))V.add(j);if(!U)for(let j of $.anyOf)V.add(j);let D=new Set([...$.allOf,...X]);for(let j of D)if(!z.has(j))V.add(j);let F=W[Y]||"";return{completions:Array.from(V).filter((j)=>j.startsWith(F)&&j!==F.trim()).sort((j,_)=>j.length-_.length||j.localeCompare(_))}}var b_=N(()=>{R0()});var Ay,$X;var v_=N(()=>{NQ();q7();wQ();jQ();c1();UX();IQ();r5();MQ();c5();s5();LQ();xQ();AQ();CQ();bQ();uQ();Ay={commit:{$root:{auto:{$anyOf:["--no-commit","--copy","--yes","--describe","-d","--preview"]}}},push:{$root:{$anyOf:["-fl","--no-lint"]}},pull:{$root:{$anyOf:["-au"]}},status:{$root:{$anyOf:["--recursive","-r"]}},log:{$root:{$anyOf:["--author","--relative"]}},diff:{$root:{$anyOf:["--json"]}},show:{$root:{$anyOf:["--json"]}}},$X={...Ay,cache:Fj,clear:vM,doctor:Cj,"gdx-config":tM,graph:rO,help:k_,lint:Lj,nocap:ID,parallel:aM,stash:nO,stats:$D,status:Aj,macro:ej,submodule:Tj,reword:yj,tag:J_,snap:C_}});function S_(Z){let Y=process.env.GDX_CMP_IDX,Q=Number.parseInt(Y||"",10);if(!Number.isInteger(Q)||Q<0)Q=Math.max(0,Z-1);if(Z>0&&Q>=Z)Q=Z-1;return Q}async function FX(Z){let Y=p.logLevel;p.logLevel="off";try{let Q=[...Z.args],{args:J,cursorIndex:q,cursorInGitGlobal:X}=o5(Q,S_(Q.length));if(J[0]==="__completion")J.shift();let z=q??S_(J.length);if(M.debug(`Completion invoked with args: ${J.join(" ")} (idx=${z})`,"completion"),X)return 0;if(J.length===0||z===0){let V=J[0]||"",D=new Set;for(let O of Object.keys($X))D.add(O);for(let O of Wz)D.add(O);for(let O of Uz)D.add(O);for(let O of nZ)D.add(O);let F=Array.from(D).filter((O)=>O.startsWith(V)).sort((O,j)=>O.length-j.length||O.localeCompare(j));M.debug(`Completion root-level matches: ${F.join(", ")}`,"completion");for(let O of F)process.stdout.write(`${O}
|
|
1249
|
+
`);return 0}let W=J[0],{match:U}=h0(W,nZ),K=U||Gy[W]||W,B=J.slice(1),$=$X[K];if($){let V=z-1;if(V>=0&&V<B.length){let{completions:D}=await x_(B,V,$,{git$:Z.git$});M.debug(`Completion matches for command '${K}': ${D.join(", ")}`,"completion");for(let F of D)process.stdout.write(`${F}
|
|
1250
|
+
`);return 0}}return M.debug(`No completion structure for command '${K}', or index out of range`,"completion"),0}finally{p.logLevel=Y}}var Gy;var y_=N(()=>{b_();GZ();S0();H0();w0();R0();v_();Gy={s:"status",co:"checkout",br:"branch",cmi:"commit",mg:"merge",pl:"pull",pu:"pull",ps:"push",ad:"add",rv:"revert",rb:"rebase",lg:"log",sta:"stash"}});var y0;var aq=N(()=>{UX();c5();c1();s5();q7();NQ();xq();jQ();r5();MQ();IQ();wQ();LQ();xQ();AQ();CQ();bQ();y_();uQ();y0={__completion:FX,help:dQ,stash:cO,graph:d1,stats:fJ,clear:J7,cache:bq,commit:Uj,gdxConfig:kq,nocap:dJ,parallel:Tq,lint:yq,doctor:pq,status:hq,macro:Z_,submodule:kj,reword:cq,tag:Y_,snap:zX}});z0();aq();m0();R0();GZ();H0();s0();var Cy=(Z="gdx")=>{return Z0`
|
|
1245
1251
|
# gdx shell integration
|
|
1246
1252
|
${Z}() {
|
|
1247
1253
|
local tmp
|
|
1248
1254
|
tmp="$(mktemp)"
|
|
1249
1255
|
GDX_RESULT="$tmp" command gdx "$@"
|
|
1250
1256
|
local ret=$?
|
|
1251
|
-
if [ $ret -eq ${
|
|
1257
|
+
if [ $ret -eq ${X8} ]; then
|
|
1252
1258
|
if [ -f "$tmp" ]; then
|
|
1253
1259
|
cd "$(cat "$tmp")"
|
|
1254
1260
|
fi
|
|
@@ -1297,14 +1303,14 @@ ${H.bright+d("NOTES & SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
|
1297
1303
|
}
|
|
1298
1304
|
|
|
1299
1305
|
complete -o bashdefault -o default -F __gdx_complete_bash ${Z}
|
|
1300
|
-
`},
|
|
1306
|
+
`},Ry=(Z="gdx")=>{return Z0`
|
|
1301
1307
|
# gdx shell integration
|
|
1302
1308
|
${Z}() {
|
|
1303
1309
|
local tmp
|
|
1304
1310
|
tmp="$(mktemp)"
|
|
1305
1311
|
GDX_RESULT="$tmp" command gdx "$@"
|
|
1306
1312
|
local ret=$?
|
|
1307
|
-
if [ $ret -eq ${
|
|
1313
|
+
if [ $ret -eq ${X8} ]; then
|
|
1308
1314
|
if [ -f "$tmp" ]; then
|
|
1309
1315
|
cd "$(cat "$tmp")"
|
|
1310
1316
|
fi
|
|
@@ -1353,14 +1359,14 @@ ${H.bright+d("NOTES & SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
|
1353
1359
|
fi
|
|
1354
1360
|
|
|
1355
1361
|
compdef __gdx_complete_zsh ${Z}
|
|
1356
|
-
`},
|
|
1362
|
+
`},Ty=(Z="gdx")=>{return Z0`
|
|
1357
1363
|
# gdx shell integration
|
|
1358
1364
|
function ${Z}
|
|
1359
1365
|
set -l tmp (mktemp)
|
|
1360
1366
|
set -x GDX_RESULT "$tmp"
|
|
1361
1367
|
command gdx $argv
|
|
1362
1368
|
set -l ret $status
|
|
1363
|
-
if test $ret -eq ${
|
|
1369
|
+
if test $ret -eq ${X8}
|
|
1364
1370
|
if test -f "$tmp"
|
|
1365
1371
|
cd (cat "$tmp")
|
|
1366
1372
|
end
|
|
@@ -1401,7 +1407,7 @@ ${H.bright+d("NOTES & SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
|
1401
1407
|
|
|
1402
1408
|
# Then add gdx-specific completions (they take precedence)
|
|
1403
1409
|
complete -c ${Z} -f -a "(__gdx_complete_fish)"
|
|
1404
|
-
`},
|
|
1410
|
+
`},ky=(Z="gdx")=>{return Z0`
|
|
1405
1411
|
# gdx shell integration
|
|
1406
1412
|
function ${Z} {
|
|
1407
1413
|
$tmp = [System.IO.Path]::GetTempFileName()
|
|
@@ -1413,7 +1419,7 @@ ${H.bright+d("NOTES & SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
|
1413
1419
|
}
|
|
1414
1420
|
if ($command) {
|
|
1415
1421
|
& $command @args
|
|
1416
|
-
if ($LASTEXITCODE -eq ${
|
|
1422
|
+
if ($LASTEXITCODE -eq ${X8}) {
|
|
1417
1423
|
if (Test-Path $tmp) {
|
|
1418
1424
|
$target = Get-Content $tmp -Raw
|
|
1419
1425
|
if ($target) {
|
|
@@ -1483,4 +1489,4 @@ ${H.bright+d("NOTES & SAFETY",E.Zinc400,E.Zinc100,0.2)+H.reset}
|
|
|
1483
1489
|
}
|
|
1484
1490
|
|
|
1485
1491
|
Register-ArgumentCompleter -Native -CommandName ${Z} -ScriptBlock $__gdxCompleter
|
|
1486
|
-
`},
|
|
1492
|
+
`},f_=(Z,Y)=>{switch(Z.toLowerCase()){case"bash":return Cy(Y);case"zsh":return Ry(Y);case"fish":return Ty(Y);case"powershell":case"pwsh":return ky(Y);default:throw Error("Unsupported shell: ${shell}`")}};S0();w0();sq();$6();var Ey=process.argv.slice(2);M.debug(`Raw arguments: ${u(process.argv)}`,"gdx");async function Py(){let Z=o5(Ey),Y={args:new k4(Z.args),git$:""},Q=Y.args;if(M.debug(`Parsed arguments: ${u(Q.toArray())}`,"gdx"),Q[0]==="--init"){let z=Q.popValue("--shell")||Q.popValue("--init"),W=Q.popValue("--cmd");if(z)try{let U=f_(z,W||void 0);return C(U),0}catch(U){return M.error(u(U,{color:!0})),1}else return M.error("<shell-name> is not specified. --init <shell-name> is required for initialization."),1}if(Q[0]==="__completion")return await y0.__completion({...Y,git$:"git"});let J=await s4("git");if(!J)throw new o("Git is not installed or not found in PATH.","GIT_NOT_FOUND");if(Y.git$=Z.gitArgs.length?[J,...Z.gitArgs]:J,Q[0]==="--bypass")return wZ(J,Q.slice(1));let q=Q.popValue("--loglevel");if(q){let z=["fatal","error","warn","info","debug"];if(z.includes(q))p.logLevel=q;else return M.error(`Invalid log level '${q}'. Expected: ${z.join(", ")}`),1}if(Q.includes("--ghelp")||Q.includes("-gh")||Q.includes("--gdx-help")||Q.length===0)return y0.help(),0;let X=await K0();return p.threadResources.setMax(X.get("maxThreadWorkers")||1),iq(Y)}(async()=>{try{let Z=await Py();if(p.finalStringOutput)C(p.finalStringOutput);process.exit(p.exitCodeOverride>=0?p.exitCodeOverride:Z)}catch(Z){M.error(u(Z,{color:!0})),process.exit(1)}})();
|