@yagnikpt/tpaper 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -0
- package/dist/index.js +1 -1
- package/dist/parser.worker.js +6 -2
- package/dist/tree-sitter.wasm +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,6 +23,16 @@ Everything is stored locally. The exact paths depend on your OS.
|
|
|
23
23
|
|
|
24
24
|
Buffers are plain Markdown files. Blocks are delimited by HTML comments so the files remain human-readable outside the app.
|
|
25
25
|
|
|
26
|
+
## Installation
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
brew install yagnikpt/tap/tpaper
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bun install -g @yagnikpt/tpaper
|
|
34
|
+
```
|
|
35
|
+
|
|
26
36
|
## Development
|
|
27
37
|
|
|
28
38
|
```bash
|
package/dist/index.js
CHANGED
|
@@ -478,7 +478,7 @@ No environment variables registered.
|
|
|
478
478
|
`}else q+=`\x1B[32mDefault:\x1B[0m \x1B[31mRequired\x1B[0m
|
|
479
479
|
`;q+=`
|
|
480
480
|
`}return q}var R0=new Proxy({},{get(A,q){if(typeof q!=="string")return;return n3.get(q)},has(A,q){return n3.has(q)},ownKeys(){return Object.keys(v2)},getOwnPropertyDescriptor(A,q){if(n3.has(q))return{enumerable:!0,configurable:!0,get:()=>n3.get(q)};return}}),u0A=20,y0A=65536,oE=256,C6=27,m0A=7,$J=JZ.from("\x1B[200~"),LJ=JZ.from("\x1B[201~"),pH=new Uint8Array(0),c0A=new TextDecoder,l0A={kittyKeyboardEnabled:!1,privateCapabilityRepliesActive:!1,pixelResolutionQueryActive:!1,explicitWidthCprActive:!1,startupCursorCprActive:!1},a0A=/^\x1b\[\d+\$$/,d0A=new lF;class Dz{buf;start=0;end=0;constructor(A=oE){this.buf=new Uint8Array(A)}get length(){return this.end-this.start}get capacity(){return this.buf.length}view(){return this.buf.subarray(this.start,this.end)}take(){let A=this.view();return this.start=0,this.end=0,A}append(A){if(A.length===0)return;this.ensureCapacity(this.length+A.length),this.buf.set(A,this.end),this.end+=A.length}consume(A){if(A<=0)return;if(A>=this.length){this.start=0,this.end=0;return}if(this.start+=A,this.start>=this.buf.length/2)this.buf.copyWithin(0,this.start,this.end),this.end-=this.start,this.start=0}clear(){this.start=0,this.end=0}reset(A=oE){this.buf=new Uint8Array(A),this.start=0,this.end=0}ensureCapacity(A){let q=this.length;if(A<=this.buf.length){if(this.buf.length-this.end>=A-q)return;if(this.buf.copyWithin(0,this.start,this.end),this.end=q,this.start=0,A<=this.buf.length)return}let g=this.buf.length;while(g<A)g*=2;let F=new Uint8Array(g);F.set(this.view(),0),this.buf=F,this.start=0,this.end=q}}function bP(A,q){if(typeof A!=="number"||!Number.isFinite(A)||A<=0)return q;return Math.floor(A)}function i0A(A){if(A<128)return 1;if(A>=194&&A<=223)return 2;if(A>=224&&A<=239)return 3;if(A>=240&&A<=244)return 4;return 0}function r0A(A,q){if(A.length!==q.length)return!1;for(let g=0;g<A.length;g+=1)if(A[g]!==q[g])return!1;return!0}function MJ(A){if(A.length<7)return!1;if(A[0]!==C6||A[1]!==91||A[2]!==60)return!1;let q=A[A.length-1];if(q!==77&&q!==109)return!1;let g=0,F=!1;for(let K=3;K<A.length-1;K+=1){let E=A[K];if(E>=48&&E<=57){F=!0;continue}if(E===59&&F&&g<2){g+=1,F=!1;continue}return!1}return g===2&&F}function Qg(A){return A>=48&&A<=57}function Tz(A,q,g){if(q>=g)return null;let F=0,K=!1;for(let E=q;E<g;E+=1){let Z=A[E];if(!Qg(Z))return null;K=!0,F=F*10+(Z-48)}return K?F:null}function p0A(A,q,g){if(q>=g)return null;let F=-1;for(let E=q;E<g;E+=1)if(A[E]===58){F=E;break}if(F===-1)return null;let K=Tz(A,q,F);if(K===null)return null;for(let E=F+1;E<g;E+=1){let Z=A[E];if(Z!==58&&!Qg(Z))return null}return K}function s0A(A){return A.semicolons>=1}function n0A(A){return A.semicolons===1&&A.segments>1}function Sz(A){return A.firstParamValue===1&&A.semicolons===1}function o0A(A){return A.semicolons===1}function t0A(A){return A.segments===1&&A.semicolons<=1}function e0A(A){return A.firstParamValue===4&&A.semicolons===2}function xP(A,q){return q.kittyKeyboardEnabled&&(s0A(A)||n0A(A))||q.explicitWidthCprActive&&Sz(A)||q.startupCursorCprActive&&o0A(A)||q.pixelResolutionQueryActive&&e0A(A)}function A6A(A,q,g){if(g.kittyKeyboardEnabled){if(A.hasDigit&&q===117)return!0;if(A.hasDigit&&A.semicolons===1&&A.segments>1&&(q===126||q>=65&&q<=90))return!0}if(g.explicitWidthCprActive&&A.hasDigit&&A.firstParamValue===1&&A.semicolons===1&&q===82)return!0;if(g.startupCursorCprActive&&A.hasDigit&&A.semicolons===1&&q===82)return!0;if(g.pixelResolutionQueryActive&&A.hasDigit&&A.firstParamValue===4&&A.semicolons===2&&q===116)return!0;return!1}function q6A(A,q){if(q===82&&A.semicolons===1&&A.segments===1&&A.hasDigit)return"cpr";return"csi"}function _P(A){return A.privateCapabilityRepliesActive}function g6A(A,q,g){if(!g.privateCapabilityRepliesActive)return!1;if(A.sawDollar)return A.hasDigit&&q===121;if(q===99)return A.hasDigit||A.semicolons>0;if(q===110)return A.hasDigit;return A.hasDigit&&q===117}function F6A(A,q){if(A.length===0)return q;if(q.length===0)return A;let g=new Uint8Array(A.length+q.length);return g.set(A,0),g.set(q,A.length),g}function hP(A){let q=new Uint8Array(A.length+1);return q[0]=C6,q.set(A,1),q}function vP(A,q){if(q.length===0)return 0;let g=A.length-q.length;for(let F=0;F<=g;F+=1){let K=!0;for(let E=0;E<q.length;E+=1)if(A[F+E]!==q[E]){K=!1;break}if(K)return F}return-1}function kP(A){return JZ.from(A.buffer,A.byteOffset,A.byteLength).toString("latin1")}function b2(A){return c0A.decode(A)}function K6A(){return{tail:pH,parts:[],totalLength:0}}function E6A(A,q){if(q===0)return pH;if(A.length===1)return A[0];let g=new Uint8Array(q),F=0;for(let K of A)g.set(K,F),F+=K.length;return g}class M5{pending=new Dz(oE);events=[];timeoutMs;maxPendingBytes;armTimeouts;onTimeoutFlush;useKittyKeyboard;mouseParser=new v4;clock;protocolContext;timeoutId=null;destroyed=!1;pendingSinceMs=null;forceFlush=!1;justFlushedEsc=!1;state={tag:"ground"};cursor=0;unitStart=0;paste=null;constructor(A={}){this.timeoutMs=bP(A.timeoutMs,u0A),this.maxPendingBytes=bP(A.maxPendingBytes,y0A),this.armTimeouts=A.armTimeouts??!0,this.onTimeoutFlush=A.onTimeoutFlush??null,this.useKittyKeyboard=A.useKittyKeyboard??!0,this.clock=A.clock??d0A,this.protocolContext={...l0A,kittyKeyboardEnabled:A.protocolContext?.kittyKeyboardEnabled??!1,privateCapabilityRepliesActive:A.protocolContext?.privateCapabilityRepliesActive??!1,pixelResolutionQueryActive:A.protocolContext?.pixelResolutionQueryActive??!1,explicitWidthCprActive:A.protocolContext?.explicitWidthCprActive??!1,startupCursorCprActive:A.protocolContext?.startupCursorCprActive??!1}}get bufferCapacity(){return this.pending.capacity}updateProtocolContext(A){this.ensureAlive(),this.protocolContext={...this.protocolContext,...A},this.reconcileDeferredStateWithProtocolContext(),this.reconcileTimeoutState()}getAbortableStartupCursorCprState(){if(this.pending.length===0)return null;switch(this.state.tag){case"csi":{let A=this.pending.view(),q=this.unitStart+2;if(this.cursor<q)return null;let g=null;for(let F=q;F<this.cursor;F+=1){let K=A[F];if(!Qg(K))return null;g=(g??0)*10+(K-48)}return{tag:"csi_parametric_ignored",semicolons:0,segments:1,hasDigit:this.cursor>q,firstParamValue:g}}case"csi_parametric":case"csi_parametric_deferred":if(!t0A(this.state)||this.protocolContext.explicitWidthCprActive&&Sz(this.state))return null;return{tag:"csi_parametric_ignored",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue}}return null}abortPendingStartupCursorCpr(){this.ensureAlive();let A=this.getAbortableStartupCursorCprState();if(!A)return;if(this.state=A,this.pendingSinceMs===null)this.markPending();this.forceFlush=!1,this.reconcileTimeoutState()}push(A){if(this.ensureAlive(),A.length===0){this.emitKeyOrResponse("unknown","");return}let q=A;while(q.length>0){if(this.paste){q=this.consumePasteBytes(q);continue}let g=this.state.tag==="ground"&&this.pending.length===0?vP(q,$J):-1,F=g===-1?q.length:g+$J.length;if(this.pending.append(q.subarray(0,F)),q=q.subarray(F),this.scanPending(),this.paste&&this.pending.length>0){q=this.consumePasteBytes(this.takePendingBytes());continue}if(!this.paste&&this.pending.length>this.maxPendingBytes){if(this.flushPendingOverflow(),this.scanPending(),this.paste&&this.pending.length>0)q=this.consumePasteBytes(this.takePendingBytes())}}this.reconcileTimeoutState()}read(){if(this.ensureAlive(),this.events.length===0&&this.forceFlush)this.scanPending(),this.reconcileTimeoutState();return this.events.shift()??null}drain(A){this.ensureAlive();while(!0){if(this.destroyed)return;let q=this.read();if(!q)return;A(q)}}flushTimeout(A=this.clock.now()){if(this.ensureAlive(),this.pendingSinceMs!==null&&(A<this.pendingSinceMs||A-this.pendingSinceMs<this.timeoutMs))return;this.tryForceFlush()}tryForceFlush(){if(this.paste||this.pendingSinceMs===null||this.pending.length===0)return;this.forceFlush=!0}reset(){if(this.destroyed)return;this.clearTimeout(),this.resetState()}resetMouseState(){this.ensureAlive(),this.mouseParser.reset()}destroy(){if(this.destroyed)return;this.clearTimeout(),this.destroyed=!0,this.resetState()}ensureAlive(){if(this.destroyed)throw Error("StdinParser has been destroyed")}scanPending(){while(!this.paste){let A=this.pending.view();if(this.state.tag==="ground"&&this.cursor>=A.length){this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1;return}let q=this.cursor<A.length?A[this.cursor]:-1;switch(this.state.tag){case"ground":{if(this.unitStart=this.cursor,this.justFlushedEsc){if(q===91){this.justFlushedEsc=!1,this.cursor+=1,this.state={tag:"esc_recovery"};continue}this.justFlushedEsc=!1}if(q===C6){this.cursor+=1,this.state={tag:"esc"};continue}if(q<128){this.emitKeyOrResponse("unknown",b2(A.subarray(this.cursor,this.cursor+1))),this.consumePrefix(this.cursor+1);continue}let g=i0A(q);if(g===0){if(!this.forceFlush&&this.cursor+1===A.length){this.markPending();return}this.emitLegacyHighByte(q),this.consumePrefix(this.cursor+1);continue}this.cursor+=1,this.state={tag:"utf8",expected:g,seen:1};continue}case"utf8":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitLegacyHighByte(A[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}if((q&192)!==128){this.emitLegacyHighByte(A[this.unitStart]),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}let g=this.state.seen+1;if(this.cursor+=1,g<this.state.expected){this.state={tag:"utf8",expected:this.state.expected,seen:g};continue}this.emitKeyOrResponse("unknown",b2(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}let g=this.cursor===this.unitStart+1&&A[this.unitStart]===C6;this.emitKeyOrResponse("unknown",b2(A.subarray(this.unitStart,this.cursor))),this.justFlushedEsc=g,this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}switch(q){case 91:this.cursor+=1,this.state={tag:"csi"};continue;case 79:this.cursor+=1,this.state={tag:"ss3"};continue;case 93:this.cursor+=1,this.state={tag:"osc",sawEsc:!1};continue;case 80:this.cursor+=1,this.state={tag:"dcs",sawEsc:!1};continue;case 95:this.cursor+=1,this.state={tag:"apc",sawEsc:!1};continue;case C6:this.cursor+=1;continue;default:this.cursor+=1,this.emitKeyOrResponse("unknown",b2(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}}case"ss3":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}this.cursor+=1,this.emitKeyOrResponse("unknown",b2(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_recovery":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitKeyOrResponse("unknown",b2(A.subarray(this.unitStart,this.cursor))),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===60){this.cursor+=1,this.state={tag:"esc_less_mouse"};continue}if(q===77){this.cursor+=1,this.state={tag:"esc_less_x10_mouse"};continue}this.emitKeyOrResponse("unknown",b2(A.subarray(this.unitStart,this.unitStart+1))),this.state={tag:"ground"},this.consumePrefix(this.unitStart+1);continue}case"csi":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===77&&this.cursor===this.unitStart+2){let g=this.cursor+4;if(A.length<g){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,A.length)),this.state={tag:"ground"},this.consumePrefix(A.length);continue}this.emitMouse(A.subarray(this.unitStart,g),"x10"),this.state={tag:"ground"},this.consumePrefix(g);continue}if(q===36){let g=this.cursor+1,F=b2(A.subarray(this.unitStart,g));if(a0A.test(F)){this.emitKeyOrResponse("csi",F),this.state={tag:"ground"},this.consumePrefix(g);continue}if(!this.forceFlush&&g>=A.length){this.markPending();return}}if(q===60&&this.cursor===this.unitStart+2){this.cursor+=1,this.state={tag:"csi_sgr_mouse",part:0,hasDigit:!1};continue}if(q===91&&this.cursor===this.unitStart+2){this.cursor+=1;continue}if(q===63&&this.cursor===this.unitStart+2){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:0,hasDigit:!1,sawDollar:!1};continue}if(q===59){let g=this.unitStart+2,F=this.cursor,K=Tz(A,g,F);if(K===null&&this.protocolContext.kittyKeyboardEnabled)K=p0A(A,g,F);if(K!==null){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:1,segments:1,hasDigit:!1,firstParamValue:K};continue}}if(q>=64&&q<=126){let g=this.cursor+1,F=A.subarray(this.unitStart,g);if(r0A(F,$J)){this.state={tag:"ground"},this.consumePrefix(g),this.paste=K6A();continue}if(MJ(F)){this.emitMouse(F,"sgr"),this.state={tag:"ground"},this.consumePrefix(g);continue}this.emitKeyOrResponse("csi",b2(F)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.cursor+=1;continue}case"csi_sgr_mouse":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.state={tag:"csi_sgr_mouse_deferred",part:this.state.part,hasDigit:this.state.hasDigit},this.pendingSinceMs=null,this.forceFlush=!1;return}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)){this.cursor+=1,this.state={tag:"csi_sgr_mouse",part:this.state.part,hasDigit:!0};continue}if(q===59&&this.state.hasDigit&&this.state.part<2){this.cursor+=1,this.state={tag:"csi_sgr_mouse",part:this.state.part+1,hasDigit:!1};continue}if(q>=64&&q<=126){let g=this.cursor+1,F=A.subarray(this.unitStart,g);if(MJ(F))this.emitMouse(F,"sgr");else this.emitKeyOrResponse("csi",b2(F));this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"csi"};continue}case"csi_sgr_mouse_deferred":{if(this.cursor>=A.length){this.pendingSinceMs=null,this.forceFlush=!1;return}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)||q===59||q===77||q===109){this.state={tag:"csi_sgr_mouse",part:this.state.part,hasDigit:this.state.hasDigit};continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"csi_parametric":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}if(xP(this.state,this.protocolContext)){this.state={tag:"csi_parametric_deferred",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue},this.pendingSinceMs=null,this.forceFlush=!1;return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:!0,firstParamValue:this.state.firstParamValue};continue}if(q===58&&this.state.hasDigit&&this.state.segments<3){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments+1,hasDigit:!1,firstParamValue:this.state.firstParamValue};continue}if(q===59&&this.state.semicolons<2){this.cursor+=1,this.state={tag:"csi_parametric",semicolons:this.state.semicolons+1,segments:1,hasDigit:!1,firstParamValue:this.state.firstParamValue};continue}if(q>=64&&q<=126){let g=this.cursor+1,F=q6A(this.state,q);this.emitKeyOrResponse(F,b2(A.subarray(this.unitStart,g))),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"csi"};continue}case"csi_parametric_deferred":{if(this.cursor>=A.length){this.pendingSinceMs=null,this.forceFlush=!1;return}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)||q===58||q===59){this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue};continue}if(A6A(this.state,q,this.protocolContext)){this.state={tag:"csi_parametric",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:this.state.hasDigit,firstParamValue:this.state.firstParamValue};continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"csi_parametric_ignored":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===C6){this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)){this.cursor+=1,this.state={tag:"csi_parametric_ignored",semicolons:this.state.semicolons,segments:this.state.segments,hasDigit:!0,firstParamValue:this.state.semicolons===0?(this.state.firstParamValue??0)*10+(q-48):this.state.firstParamValue};continue}if(q===59&&this.state.semicolons===0&&this.state.hasDigit){if(this.protocolContext.explicitWidthCprActive&&this.state.firstParamValue===1){this.state={tag:"csi"};continue}this.cursor+=1,this.state={tag:"csi_parametric_ignored",semicolons:1,segments:1,hasDigit:!1,firstParamValue:this.state.firstParamValue};continue}if(q===82&&this.state.semicolons===1&&this.state.hasDigit){let g=this.cursor+1;this.state={tag:"ground"},this.consumePrefix(g);continue}if(this.state.semicolons===0){this.state={tag:"csi"};continue}this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"csi_private_reply":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}if(_P(this.protocolContext)){this.state={tag:"csi_private_reply_deferred",semicolons:this.state.semicolons,hasDigit:this.state.hasDigit,sawDollar:this.state.sawDollar},this.pendingSinceMs=null,this.forceFlush=!1;return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:!0,sawDollar:this.state.sawDollar};continue}if(q===59){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:this.state.semicolons+1,hasDigit:!1,sawDollar:!1};continue}if(q===36&&this.state.hasDigit&&!this.state.sawDollar){this.cursor+=1,this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:!0,sawDollar:!0};continue}if(q>=64&&q<=126){let g=this.cursor+1;this.emitOpaqueResponse("csi",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"csi"};continue}case"csi_private_reply_deferred":{if(this.cursor>=A.length){this.pendingSinceMs=null,this.forceFlush=!1;return}if(q===C6){this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(Qg(q)||q===59||q===36){this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:this.state.hasDigit,sawDollar:this.state.sawDollar};continue}if(g6A(this.state,q,this.protocolContext)){this.state={tag:"csi_private_reply",semicolons:this.state.semicolons,hasDigit:this.state.hasDigit,sawDollar:this.state.sawDollar};continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"osc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("osc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"osc",sawEsc:!1};continue}if(q===m0A){let g=this.cursor+1;this.emitOpaqueResponse("osc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}if(q===C6){this.cursor+=1,this.state={tag:"osc",sawEsc:!0};continue}this.cursor+=1;continue}case"dcs":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("dcs",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"dcs",sawEsc:!1};continue}if(q===C6){this.cursor+=1,this.state={tag:"dcs",sawEsc:!0};continue}this.cursor+=1;continue}case"apc":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(this.state.sawEsc){if(q===92){let g=this.cursor+1;this.emitOpaqueResponse("apc",A.subarray(this.unitStart,g)),this.state={tag:"ground"},this.consumePrefix(g);continue}this.state={tag:"apc",sawEsc:!1};continue}if(q===C6){this.cursor+=1,this.state={tag:"apc",sawEsc:!0};continue}this.cursor+=1;continue}case"esc_less_mouse":{if(this.cursor>=A.length){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}if(q>=48&&q<=57||q===59){this.cursor+=1;continue}if(q===77||q===109){let g=this.cursor+1,F=A.subarray(this.unitStart,g),K=hP(F);if(MJ(K))this.emitMouse(K,"sgr");else this.emitOpaqueResponse("unknown",F);this.state={tag:"ground"},this.consumePrefix(g);continue}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);continue}case"esc_less_x10_mouse":{let g=this.unitStart+5;if(A.length<g){if(!this.forceFlush){this.markPending();return}this.emitOpaqueResponse("unknown",A.subarray(this.unitStart,A.length)),this.state={tag:"ground"},this.consumePrefix(A.length);continue}let F=A.subarray(this.unitStart,g);this.emitMouse(hP(F),"x10"),this.state={tag:"ground"},this.consumePrefix(g);continue}}}}emitKeyOrResponse(A,q){let g=A5(q,{useKittyKeyboard:this.useKittyKeyboard});if(g){this.events.push({type:"key",raw:g.raw,key:g});return}this.events.push({type:"response",protocol:A,sequence:q})}emitMouse(A,q){let g=this.mouseParser.parseMouseEvent(A);if(!g){this.emitOpaqueResponse("unknown",A);return}this.events.push({type:"mouse",raw:kP(A),encoding:q,event:g})}emitLegacyHighByte(A){let q=A5(JZ.from([A]),{useKittyKeyboard:this.useKittyKeyboard});if(q){this.events.push({type:"key",raw:q.raw,key:q});return}this.events.push({type:"response",protocol:"unknown",sequence:String.fromCharCode(A)})}emitOpaqueResponse(A,q){this.events.push({type:"response",protocol:A,sequence:kP(q)})}consumePrefix(A){this.pending.consume(A),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1}takePendingBytes(){let A=this.pending.take();return this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,A}flushPendingOverflow(){if(this.pending.length===0)return;this.emitOpaqueResponse("unknown",this.pending.view()),this.pending.clear(),this.cursor=0,this.unitStart=0,this.pendingSinceMs=null,this.forceFlush=!1,this.state={tag:"ground"}}markPending(){this.pendingSinceMs=this.clock.now()}consumePasteBytes(A){let q=this.paste,g=F6A(q.tail,A),F=vP(g,LJ);if(F!==-1)return this.pushPasteBytes(g.subarray(0,F)),this.events.push({type:"paste",bytes:E6A(q.parts,q.totalLength)}),this.paste=null,g.subarray(F+LJ.length);let K=Math.min(LJ.length-1,g.length),E=g.length-K;if(E>0)this.pushPasteBytes(g.subarray(0,E));return q.tail=Uint8Array.from(g.subarray(E)),pH}pushPasteBytes(A){if(A.length===0)return;this.paste.parts.push(Uint8Array.from(A)),this.paste.totalLength+=A.length}reconcileDeferredStateWithProtocolContext(){switch(this.state.tag){case"csi_parametric_deferred":if(!xP(this.state,this.protocolContext))this.emitOpaqueResponse("unknown",this.pending.view().subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);return;case"csi_private_reply_deferred":if(!_P(this.protocolContext))this.emitOpaqueResponse("unknown",this.pending.view().subarray(this.unitStart,this.cursor)),this.state={tag:"ground"},this.consumePrefix(this.cursor);return}}reconcileTimeoutState(){if(!this.armTimeouts)return;if(this.paste||this.pendingSinceMs===null||this.pending.length===0){this.clearTimeout();return}this.clearTimeout(),this.timeoutId=this.clock.setTimeout(()=>{if(this.timeoutId=null,this.destroyed)return;try{this.tryForceFlush(),this.onTimeoutFlush?.()}catch(A){console.error("stdin parser timeout flush failed",A)}},this.timeoutMs)}clearTimeout(){if(!this.timeoutId)return;this.clock.clearTimeout(this.timeoutId),this.timeoutId=null}resetState(){this.pending.reset(oE),this.events.length=0,this.pendingSinceMs=null,this.forceFlush=!1,this.justFlushedEsc=!1,this.state={tag:"ground"},this.cursor=0,this.unitStart=0,this.paste=null,this.mouseParser.reset()}}u0({name:"OTUI_TS_STYLE_WARN",default:!1,description:"Enable warnings for missing syntax styles"});function uP(A){return A.split(".").length}function Z6A(A,q){if(q?.isInjection)return!1;return A==="markup.raw.block"}function R5(A,q,g,F){let K=[],E=g.getStyle("default"),Z=F?.enabled??!0,j=F?.baseHighlight?g.getStyle(F.baseHighlight):void 0,U=[],Q=[];for(let H=0;H<q.length;H++){let[G,O,,X]=q[H];if(G===O)continue;if(X?.containsInjection)U.push({start:G,end:O});Q.push({offset:G,type:"start",highlightIndex:H}),Q.push({offset:O,type:"end",highlightIndex:H})}Q.sort((H,G)=>{if(H.offset!==G.offset)return H.offset-G.offset;if(H.type==="end"&&G.type==="start")return-1;if(H.type==="start"&&G.type==="end")return 1;return 0});let Y=new Set,J=0;for(let H=0;H<Q.length;H++){let G=Q[H];if(J<G.offset&&Y.size>0){let O=A.slice(J,G.offset),X=[];for(let M of Y){let[,,L,B]=q[M];X.push({group:L,meta:B,index:M})}let W=Z?X.find((M)=>M.meta?.conceal!==void 0||M.group==="conceal"||M.group.startsWith("conceal.")):void 0;if(W){let M="";if(W.meta?.conceal!==void 0)M=W.meta.conceal;else if(W.group==="conceal.with.space")M=" ";if(M)K.push({__isChunk:!0,text:M,fg:E?.fg,bg:E?.bg,attributes:E?Hq({bold:E.bold,italic:E.italic,underline:E.underline,dim:E.dim}):0})}else{let M=U.some((D)=>J>=D.start&&J<D.end),B=X.filter((D)=>{if(M&&Z6A(D.group,D.meta))return!1;return!0}).sort((D,C)=>{let S=uP(D.group),v=uP(C.group);if(S!==v)return S-v;return D.index-C.index}),R=j?{...j}:{};for(let{group:D}of B){let C=g.getStyle(D);if(!C&&D.includes(".")){let S=D.split(".")[0];C=g.getStyle(S)}if(C){if(C.fg!==void 0)R.fg=C.fg;if(C.bg!==void 0)R.bg=C.bg;if(C.bold!==void 0)R.bold=C.bold;if(C.italic!==void 0)R.italic=C.italic;if(C.underline!==void 0)R.underline=C.underline;if(C.dim!==void 0)R.dim=C.dim}else if(D.includes(".")){let S=D.split(".")[0];if(R0.OTUI_TS_STYLE_WARN)console.warn(`Syntax style not found for group "${D}" or base scope "${S}", using default style`)}else if(R0.OTUI_TS_STYLE_WARN)console.warn(`Syntax style not found for group "${D}", using default style`)}let z=Object.keys(R).length>0?R:E;K.push({__isChunk:!0,text:O,fg:z?.fg,bg:z?.bg,attributes:z?Hq({bold:z.bold,italic:z.italic,underline:z.underline,dim:z.dim}):0})}}else if(J<G.offset){let O=A.slice(J,G.offset),X=j??E;K.push({__isChunk:!0,text:O,fg:X?.fg,bg:X?.bg,attributes:X?Hq({bold:X.bold,italic:X.italic,underline:X.underline,dim:X.dim}):0})}if(G.type==="start")Y.add(G.highlightIndex);else if(Y.delete(G.highlightIndex),Z){let[,,O,X]=q[G.highlightIndex];if(X?.concealLines!==void 0){if(G.offset<A.length&&A[G.offset]===`
|
|
481
|
-
`){J=G.offset+1;continue}}if(X?.conceal!==void 0){if(X.conceal===" "){if(G.offset<A.length&&A[G.offset]===" "){J=G.offset+1;continue}}else if(X.conceal===""&&O==="conceal"&&!X.isInjection){if(G.offset<A.length&&A[G.offset]===" "){J=G.offset+1;continue}}}}J=G.offset}if(J<A.length){let H=A.slice(J),G=j??E;K.push({__isChunk:!0,text:H,fg:G?.fg,bg:G?.bg,attributes:G?Hq({bold:G.bold,italic:G.italic,underline:G.underline,dim:G.dim}):0})}return K}async function sH(A,q,g,F,K){let E=await F.highlightOnce(A,q);if(E.highlights&&E.highlights.length>0||K?.baseHighlight){let Z=R5(A,E.highlights??[],g,{enabled:K?.conceal?.enabled??!0,baseHighlight:K?.baseHighlight});return new Xq(Z)}else{let Z=g.mergeStyles("default"),j=[{__isChunk:!0,text:A,fg:Z.fg,bg:Z.bg,attributes:Z.attributes}];return new Xq(j)}}var E9=new Map;class wz{scopeId;constructor(A){if(this.scopeId=A,!E9.has(this.scopeId))E9.set(this.scopeId,new Map)}debounce(A,q,g){let F=E9.get(this.scopeId);return new Promise((K,E)=>{if(F.has(A))clearTimeout(F.get(A));let Z=setTimeout(()=>{try{K(g())}catch(j){E(j)}F.delete(A)},q);F.set(A,Z)})}clearDebounce(A){let q=E9.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=E9.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function U6A(A){return new wz(A)}function Q6A(A){let q=E9.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class fz{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}function G6A({onlyFirst:A=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",A?void 0:"g")}var O6A=G6A();function xz(A){if(typeof A!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof A}\``);return A.replace(O6A,"")}function W6A(A){return A===161||A===164||A===167||A===168||A===170||A===173||A===174||A>=176&&A<=180||A>=182&&A<=186||A>=188&&A<=191||A===198||A===208||A===215||A===216||A>=222&&A<=225||A===230||A>=232&&A<=234||A===236||A===237||A===240||A===242||A===243||A>=247&&A<=250||A===252||A===254||A===257||A===273||A===275||A===283||A===294||A===295||A===299||A>=305&&A<=307||A===312||A>=319&&A<=322||A===324||A>=328&&A<=331||A===333||A===338||A===339||A===358||A===359||A===363||A===462||A===464||A===466||A===468||A===470||A===472||A===474||A===476||A===593||A===609||A===708||A===711||A>=713&&A<=715||A===717||A===720||A>=728&&A<=731||A===733||A===735||A>=768&&A<=879||A>=913&&A<=929||A>=931&&A<=937||A>=945&&A<=961||A>=963&&A<=969||A===1025||A>=1040&&A<=1103||A===1105||A===8208||A>=8211&&A<=8214||A===8216||A===8217||A===8220||A===8221||A>=8224&&A<=8226||A>=8228&&A<=8231||A===8240||A===8242||A===8243||A===8245||A===8251||A===8254||A===8308||A===8319||A>=8321&&A<=8324||A===8364||A===8451||A===8453||A===8457||A===8467||A===8470||A===8481||A===8482||A===8486||A===8491||A===8531||A===8532||A>=8539&&A<=8542||A>=8544&&A<=8555||A>=8560&&A<=8569||A===8585||A>=8592&&A<=8601||A===8632||A===8633||A===8658||A===8660||A===8679||A===8704||A===8706||A===8707||A===8711||A===8712||A===8715||A===8719||A===8721||A===8725||A===8730||A>=8733&&A<=8736||A===8739||A===8741||A>=8743&&A<=8748||A===8750||A>=8756&&A<=8759||A===8764||A===8765||A===8776||A===8780||A===8786||A===8800||A===8801||A>=8804&&A<=8807||A===8810||A===8811||A===8814||A===8815||A===8834||A===8835||A===8838||A===8839||A===8853||A===8857||A===8869||A===8895||A===8978||A>=9312&&A<=9449||A>=9451&&A<=9547||A>=9552&&A<=9587||A>=9600&&A<=9615||A>=9618&&A<=9621||A===9632||A===9633||A>=9635&&A<=9641||A===9650||A===9651||A===9654||A===9655||A===9660||A===9661||A===9664||A===9665||A>=9670&&A<=9672||A===9675||A>=9678&&A<=9681||A>=9698&&A<=9701||A===9711||A===9733||A===9734||A===9737||A===9742||A===9743||A===9756||A===9758||A===9792||A===9794||A===9824||A===9825||A>=9827&&A<=9829||A>=9831&&A<=9834||A===9836||A===9837||A===9839||A===9886||A===9887||A===9919||A>=9926&&A<=9933||A>=9935&&A<=9939||A>=9941&&A<=9953||A===9955||A===9960||A===9961||A>=9963&&A<=9969||A===9972||A>=9974&&A<=9977||A===9979||A===9980||A===9982||A===9983||A===10045||A>=10102&&A<=10111||A>=11094&&A<=11097||A>=12872&&A<=12879||A>=57344&&A<=63743||A>=65024&&A<=65039||A===65533||A>=127232&&A<=127242||A>=127248&&A<=127277||A>=127280&&A<=127337||A>=127344&&A<=127373||A===127375||A===127376||A>=127387&&A<=127404||A>=917760&&A<=917999||A>=983040&&A<=1048573||A>=1048576&&A<=1114109}function V6A(A){return A===12288||A>=65281&&A<=65376||A>=65504&&A<=65510}function $6A(A){return A>=4352&&A<=4447||A===8986||A===8987||A===9001||A===9002||A>=9193&&A<=9196||A===9200||A===9203||A===9725||A===9726||A===9748||A===9749||A>=9776&&A<=9783||A>=9800&&A<=9811||A===9855||A>=9866&&A<=9871||A===9875||A===9889||A===9898||A===9899||A===9917||A===9918||A===9924||A===9925||A===9934||A===9940||A===9962||A===9970||A===9971||A===9973||A===9978||A===9981||A===9989||A===9994||A===9995||A===10024||A===10060||A===10062||A>=10067&&A<=10069||A===10071||A>=10133&&A<=10135||A===10160||A===10175||A===11035||A===11036||A===11088||A===11093||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12287||A>=12289&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12591||A>=12593&&A<=12686||A>=12688&&A<=12773||A>=12783&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=94176&&A<=94180||A>=94192&&A<=94198||A>=94208&&A<=101589||A>=101631&&A<=101662||A>=101760&&A<=101874||A>=110576&&A<=110579||A>=110581&&A<=110587||A===110589||A===110590||A>=110592&&A<=110882||A===110898||A>=110928&&A<=110930||A===110933||A>=110948&&A<=110951||A>=110960&&A<=111355||A>=119552&&A<=119638||A>=119648&&A<=119670||A===126980||A===127183||A===127374||A>=127377&&A<=127386||A>=127488&&A<=127490||A>=127504&&A<=127547||A>=127552&&A<=127560||A===127568||A===127569||A>=127584&&A<=127589||A>=127744&&A<=127776||A>=127789&&A<=127797||A>=127799&&A<=127868||A>=127870&&A<=127891||A>=127904&&A<=127946||A>=127951&&A<=127955||A>=127968&&A<=127984||A===127988||A>=127992&&A<=128062||A===128064||A>=128066&&A<=128252||A>=128255&&A<=128317||A>=128331&&A<=128334||A>=128336&&A<=128359||A===128378||A===128405||A===128406||A===128420||A>=128507&&A<=128591||A>=128640&&A<=128709||A===128716||A>=128720&&A<=128722||A>=128725&&A<=128728||A>=128732&&A<=128735||A===128747||A===128748||A>=128756&&A<=128764||A>=128992&&A<=129003||A===129008||A>=129292&&A<=129338||A>=129340&&A<=129349||A>=129351&&A<=129535||A>=129648&&A<=129660||A>=129664&&A<=129674||A>=129678&&A<=129734||A===129736||A>=129741&&A<=129756||A>=129759&&A<=129770||A>=129775&&A<=129784||A>=131072&&A<=196605||A>=196608&&A<=262141}function L6A(A){if(!Number.isSafeInteger(A))throw TypeError(`Expected a code point, got \`${typeof A}\`.`)}function M6A(A,{ambiguousAsWide:q=!1}={}){if(L6A(A),V6A(A)||$6A(A)||q&&W6A(A))return 2;return 1}var R6A=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\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-\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]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\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)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\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(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g},B6A=new Intl.Segmenter,P6A=/^\p{Default_Ignorable_Code_Point}$/u;function z6A(A,q={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:g=!0,countAnsiEscapeCodes:F=!1}=q;if(!F)A=xz(A);if(A.length===0)return 0;let K=0,E={ambiguousAsWide:!g};for(let{segment:Z}of B6A.segment(A)){let j=Z.codePointAt(0);if(j<=31||j>=127&&j<=159)continue;if(j>=8203&&j<=8207||j===65279)continue;if(j>=768&&j<=879||j>=6832&&j<=6911||j>=7616&&j<=7679||j>=8400&&j<=8447||j>=65056&&j<=65071)continue;if(j>=55296&&j<=57343)continue;if(j>=65024&&j<=65039)continue;if(P6A.test(Z))continue;if(R6A().test(Z)){K+=2;continue}K+=M6A(j,E)}return K}var I6A=new TextEncoder,B5=globalThis.Bun,C6A=B5?.sleep??T6A,k4=B5?.stringWidth??z6A,N6A=B5?.stripANSI??xz,D6A=B5?.write??S6A;async function x2(A,q,g){if(!B5){let K=typeof q==="function"?q():q;return sE(K instanceof URL?K:new URL(K,g))}let F=(await A()).default;if(F.startsWith("file:"))return sE(F);if(H6A(F))return F;return X6A(bz(sE(g)),F)}function T6A(A){let q=A instanceof Date?A.getTime()-Date.now():A;return new Promise((g)=>setTimeout(g,q))}async function S6A(A,q,g){let F=A instanceof URL?sE(A):A;if(g?.createPath)await Y6A(bz(F),{recursive:!0});let K=typeof q==="string"?I6A.encode(q):new Uint8Array(q.buffer,q.byteOffset,q.byteLength);return await J6A(F,K,{mode:g?.mode}),K.byteLength}var RJ;function w6A(){if(!RJ)RJ=f6A();return RJ}async function f6A(){let A=await x2(()=>Promise.resolve().then(() => Uq(VP(),1)),"./assets/javascript/highlights.scm",import.meta.url),q=await x2(()=>Promise.resolve().then(() => Uq($P(),1)),"./assets/javascript/tree-sitter-javascript.wasm",import.meta.url),g=await x2(()=>Promise.resolve().then(() => Uq(LP(),1)),"./assets/typescript/highlights.scm",import.meta.url),F=await x2(()=>Promise.resolve().then(() => Uq(MP(),1)),"./assets/typescript/tree-sitter-typescript.wasm",import.meta.url),K=await x2(()=>Promise.resolve().then(() => Uq(RP(),1)),"./assets/markdown/highlights.scm",import.meta.url),E=await x2(()=>Promise.resolve().then(() => Uq(BP(),1)),"./assets/markdown/tree-sitter-markdown.wasm",import.meta.url),Z=await x2(()=>Promise.resolve().then(() => Uq(PP(),1)),"./assets/markdown/injections.scm",import.meta.url),j=await x2(()=>Promise.resolve().then(() => Uq(zP(),1)),"./assets/markdown_inline/highlights.scm",import.meta.url),U=await x2(()=>Promise.resolve().then(() => Uq(IP(),1)),"./assets/markdown_inline/tree-sitter-markdown_inline.wasm",import.meta.url),Q=await x2(()=>Promise.resolve().then(() => Uq(CP(),1)),"./assets/zig/highlights.scm",import.meta.url),Y=await x2(()=>Promise.resolve().then(() => Uq(NP(),1)),"./assets/zig/tree-sitter-zig.wasm",import.meta.url);return[{filetype:"javascript",aliases:["javascriptreact"],queries:{highlights:[A]},wasm:q},{filetype:"typescript",aliases:["typescriptreact"],queries:{highlights:[g]},wasm:F},{filetype:"markdown",queries:{highlights:[K],injections:[Z]},wasm:E,injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",jsx:"javascriptreact",javascriptreact:"javascriptreact",typescript:"typescript",ts:"typescript",tsx:"typescriptreact",typescriptreact:"typescriptreact",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[j]},wasm:U},{filetype:"zig",queries:{highlights:[Q]},wasm:Y}]}function _z(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function k6A(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function u6A(A){return v6A(k6A(),h6A(A))}var y6A="OpenTUI tree-sitter workers are not available for this runtime yet.";class hz{constructor(){throw Error(y6A)}}var m6A=globalThis.Worker??hz;u0({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker entry script",type:"string",default:""});var tE=[];function nH(A){for(let q of A)tE=[...tE.filter((g)=>g.filetype!==q.filetype),q]}var c6A=(A)=>A.startsWith("http://")||A.startsWith("https://");class L9 extends j6A{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=U6A("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A=this.resolveWorkerPath();this.worker=new m6A(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}resolveWorkerPath(){if(R0.OTUI_TREE_SITTER_WORKER_PATH)return R0.OTUI_TREE_SITTER_WORKER_PATH;return"/home/runner/work/tpaper/tpaper/node_modules/@opentui/core/parser.worker.js"}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initialized=!1,this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=this.initializeClient(),this.initializePromise}async initializeClient(){await new Promise((A,q)=>{let g=this.options.initTimeout??1e4,F=setTimeout(()=>{let K=Error("Worker initialization timed out");console.error("TreeSitter client:",K.message),this.initializeResolvers=void 0,q(K)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:F},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.registerDefaultParsers(),this.initialized=!0}async registerDefaultParsers(){let A=await w6A(),q=new Set(tE.map((g)=>g.filetype));for(let g of[...A.filter((F)=>!q.has(F.filetype)),...tE])this.addFiletypeParser(g)}resolvePath(A){if(c6A(A))return A;if(_z(A))return u6A(x6A(A).base);if(!b6A(A))return yP(A);return A}addFiletypeParser(A){let q={...A,aliases:A.aliases?[...new Set(A.aliases.filter((g)=>g!==A.filetype))]:void 0,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(F){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((F)=>{this.messageCallbacks.set(g,F),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:F,highlights:K,warning:E,messageId:Z,hasParser:j,performance:U,version:Q}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==Q){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,Q,K)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),F)console.error("TreeSitter client initialization failed:",F),this.initializeResolvers.reject(Error(F));else this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j,warning:E,error:F});return}if(q==="PRELOAD_PARSER_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let Y=this.messageCallbacks.get(`dispose_${g}`);if(Y)this.messageCallbacks.delete(`dispose_${g}`),Y(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({highlights:K,warning:E,error:F});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:F});return}if(q==="CLEAR_CACHE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:F});return}if(E){this.emitWarning(E,g);return}if(F){this.emitError(F,g);return}if(q==="WORKER_LOG"){let{logType:Y,data:J}=A.data,H=J.join(" ");this.emit("worker:log",Y,H);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((F)=>{this.messageCallbacks.set(q,F),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,F=1,K=!0){if(!this.initialized){if(!K)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(U){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:F,hasParser:!1});let E=`init_${this.messageIdCounter++}`,Z=await new Promise((U)=>{this.messageCallbacks.set(E,U),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:F,content:q,filetype:g,messageId:E})});if(!Z.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",A);return!1}let j={id:A,content:q,filetype:g,version:F,hasParser:!0};return this.buffers.set(A,j),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,F){if(!this.initialized)return;let K=this.buffers.get(A);if(!K||!K.hasParser)return;if(this.buffers.set(A,{...K,content:g,version:F}),!this.editQueues.has(A))this.editQueues.set(A,new fz((Z)=>this.processEdit(A,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:F})}async processEdit(A,q,g,F,K=!1){this.worker?.postMessage({type:K?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:F,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(F){console.error("Error disposing buffer",F),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),Q6A("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let F=this.buffers.get(A);if(!F||!F.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...F,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,F)=>{this.messageCallbacks.set(q,(K)=>{if(K.error)F(Error(K.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(F)=>{if(F.error)g(Error(F.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function a6A(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}u0({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});u0({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class P5 extends l6A{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!a6A(A))throw Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=mP.homedir(),g=R0.XDG_CONFIG_HOME||_F.join(A,".config");this._globalConfigPath=_F.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=_F.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=_F.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=mP.homedir(),g=R0.XDG_DATA_HOME||_F.join(A,".local/share");this._globalDataPath=_F.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function HZ(){return c4("data-paths-opentui",()=>new P5)}var XZ=new Map([["astro","astro"],["bash","bash"],["c","c"],["cc","cpp"],["cjs","javascript"],["clj","clojure"],["cljs","clojure"],["cljc","clojure"],["cpp","cpp"],["cxx","cpp"],["cs","csharp"],["cts","typescript"],["ctsx","typescriptreact"],["dart","dart"],["diff","diff"],["edn","clojure"],["go","go"],["gemspec","ruby"],["groovy","groovy"],["h","c"],["handlebars","handlebars"],["hbs","handlebars"],["hpp","cpp"],["hxx","cpp"],["h++","cpp"],["hh","cpp"],["hrl","erlang"],["hs","haskell"],["htm","html"],["html","html"],["ini","ini"],["js","javascript"],["jsx","javascriptreact"],["jl","julia"],["json","json"],["ksh","bash"],["kt","kotlin"],["kts","kotlin"],["latex","latex"],["less","less"],["lua","lua"],["markdown","markdown"],["md","markdown"],["mdown","markdown"],["mkd","markdown"],["mjs","javascript"],["ml","ocaml"],["mli","ocaml"],["mts","typescript"],["mtsx","typescriptreact"],["patch","diff"],["php","php"],["pl","perl"],["pm","perl"],["ps1","powershell"],["psm1","powershell"],["py","python"],["pyi","python"],["r","r"],["rb","ruby"],["rake","ruby"],["rs","rust"],["ru","ruby"],["sass","sass"],["sc","scala"],["scala","scala"],["scss","scss"],["sh","bash"],["sql","sql"],["svelte","svelte"],["swift","swift"],["ts","typescript"],["tsx","typescriptreact"],["tex","latex"],["toml","toml"],["vue","vue"],["vim","vim"],["xml","xml"],["xsl","xsl"],["yaml","yaml"],["yml","yaml"],["zig","zig"],["zon","zig"],["zsh","bash"],["c++","cpp"],["erl","erlang"],["exs","elixir"],["ex","elixir"],["elm","elm"],["fsharp","fsharp"],["fs","fsharp"],["fsx","fsharp"],["fsscript","fsharp"],["fsi","fsharp"],["java","java"],["css","css"]]),J9=new Map([[".bash_aliases","bash"],[".bash_logout","bash"],[".bash_profile","bash"],[".bashrc","bash"],[".kshrc","bash"],[".profile","bash"],[".vimrc","vim"],[".zlogin","bash"],[".zlogout","bash"],[".zprofile","bash"],[".zshenv","bash"],[".zshrc","bash"],["appfile","ruby"],["berksfile","ruby"],["brewfile","ruby"],["cheffile","ruby"],["containerfile","dockerfile"],["dockerfile","dockerfile"],["fastfile","ruby"],["gemfile","ruby"],["gnumakefile","make"],["gvimrc","vim"],["guardfile","ruby"],["makefile","make"],["podfile","ruby"],["rakefile","ruby"],["thorfile","ruby"],["vagrantfile","ruby"]]);function vz(A){return A.trim().replace(/^\./,"").toLowerCase()||void 0}function d6A(A){let q=A.trim().replaceAll("\\","/");if(!q)return;return cP.posix.basename(q).toLowerCase()||void 0}function z5(A){let q=vz(A);if(!q)return;return XZ.get(q)}function GZ(A){if(typeof A!=="string")return;let q=d6A(A);if(!q)return;let g=J9.get(q);if(g)return g;let F=q.lastIndexOf(".");if(F===-1||F===q.length-1)return;let K=q.substring(F+1);return z5(K)}function I5(A){if(typeof A!=="string")return;let q=A.trim().split(/\s+/,1)[0],g=J9.get(q.toLowerCase());if(g)return g;let F=vz(q);if(!F)return;return J9.get(F)??GZ(F)??z5(F)??F}function C5(){let A=HZ(),q={dataPath:A.globalDataPath};return c4("tree-sitter-client",()=>{let g=new L9(q);return A.on("paths:changed",(F)=>{g.setDataPath(F.globalDataPath)}),g})}class kz{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([F,K])=>[F,{...K}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class N5{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new kz;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let F=this.findVirtualExtmarkContaining(g);if(F&&A>=F.end){this.editBuffer.setCursorByOffset(F.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,F=this.editBuffer.getText().length;if(g>F){this.originalMoveCursorRight();return}let K=this.findVirtualExtmarkContaining(g);if(K&&A<=K.start){this.editBuffer.setCursorByOffset(K.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,F=this.findVirtualExtmarkContaining(g);if(F){let K=g-F.start,E=F.end-g;if(K<E)this.editorView.setCursorByOffset(F.start-1);else this.editorView.setCursorByOffset(F.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveDownVisual();let g=this.editorView.getVisualCursor().offset,F=this.findVirtualExtmarkContaining(g);if(F){let K=g-F.start,E=F.end-g;if(K<E){let Z=F.start-1,j=Z<=q?F.end:Z;this.editorView.setCursorByOffset(j)}else this.editorView.setCursorByOffset(F.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let K=this.findVirtualExtmarkContaining(A);if(K&&q<=K.start){this.originalSetCursorByOffset(K.end);return}}else for(let K of this.extmarks.values())if(K.virtual&&q>=K.end&&A<K.end&&A>=K.start){this.originalSetCursorByOffset(K.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,F=this.findVirtualExtmarkContaining(g);if(F&&A===F.end){let Z=this.offsetToPosition(F.start),j=this.offsetToPosition(F.end),U=F.start,Q=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(Z.row,Z.col,j.row,j.col),this.adjustExtmarksAfterDeletion(U,Q),this.updateHighlights();return}this.originalDeleteCharBackward();let K=this.editorView.getVisualCursor().offset,E=A-K;if(E>0)this.adjustExtmarksAfterDeletion(K,E)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalDeleteChar();return}let g=A,F=this.findVirtualExtmarkContaining(g);if(F&&A===F.start){let Z=this.offsetToPosition(F.start),j=this.offsetToPosition(F.end),U=F.start,Q=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(Z.row,Z.col,j.row,j.col),this.adjustExtmarksAfterDeletion(U,Q),this.updateHighlights();return}let E=this.getNextCursorOffset(A)-A;if(this.originalDeleteChar(),E>0)this.adjustExtmarksAfterDeletion(A,E)},this.editBuffer.deleteRange=(A,q,g,F)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,F);return}this.saveSnapshot();let K=this.positionToOffset(A,q),Z=this.positionToOffset(g,F)-K;this.originalDeleteRange(A,q,g,F),this.adjustExtmarksAfterDeletion(K,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let E=q-1;E>=0;E--)if(A[E]===`
|
|
481
|
+
`){J=G.offset+1;continue}}if(X?.conceal!==void 0){if(X.conceal===" "){if(G.offset<A.length&&A[G.offset]===" "){J=G.offset+1;continue}}else if(X.conceal===""&&O==="conceal"&&!X.isInjection){if(G.offset<A.length&&A[G.offset]===" "){J=G.offset+1;continue}}}}J=G.offset}if(J<A.length){let H=A.slice(J),G=j??E;K.push({__isChunk:!0,text:H,fg:G?.fg,bg:G?.bg,attributes:G?Hq({bold:G.bold,italic:G.italic,underline:G.underline,dim:G.dim}):0})}return K}async function sH(A,q,g,F,K){let E=await F.highlightOnce(A,q);if(E.highlights&&E.highlights.length>0||K?.baseHighlight){let Z=R5(A,E.highlights??[],g,{enabled:K?.conceal?.enabled??!0,baseHighlight:K?.baseHighlight});return new Xq(Z)}else{let Z=g.mergeStyles("default"),j=[{__isChunk:!0,text:A,fg:Z.fg,bg:Z.bg,attributes:Z.attributes}];return new Xq(j)}}var E9=new Map;class wz{scopeId;constructor(A){if(this.scopeId=A,!E9.has(this.scopeId))E9.set(this.scopeId,new Map)}debounce(A,q,g){let F=E9.get(this.scopeId);return new Promise((K,E)=>{if(F.has(A))clearTimeout(F.get(A));let Z=setTimeout(()=>{try{K(g())}catch(j){E(j)}F.delete(A)},q);F.set(A,Z)})}clearDebounce(A){let q=E9.get(this.scopeId);if(q&&q.has(A))clearTimeout(q.get(A)),q.delete(A)}clear(){let A=E9.get(this.scopeId);if(A)A.forEach((q)=>clearTimeout(q)),A.clear()}}function U6A(A){return new wz(A)}function Q6A(A){let q=E9.get(A);if(q)q.forEach((g)=>clearTimeout(g)),q.clear()}class fz{processor;queue=[];processing=!1;autoProcess=!0;constructor(A,q=!0){this.processor=A,this.autoProcess=q}enqueue(A){if(this.queue.push(A),!this.processing&&this.autoProcess)this.processQueue()}processQueue(){if(this.queue.length===0)return;this.processing=!0,queueMicrotask(async()=>{if(this.queue.length===0){this.processing=!1;return}let A=this.queue.shift();try{await this.processor(A)}catch(q){console.error("Error processing queue item:",q)}if(this.queue.length>0)this.processQueue();else this.processing=!1})}clear(){this.queue=[]}isProcessing(){return this.processing}size(){return this.queue.length}}function G6A({onlyFirst:A=!1}={}){return new RegExp("(?:\\u001B\\][\\s\\S]*?(?:\\u0007|\\u001B\\u005C|\\u009C))|[\\u001B\\u009B][[\\]()#;?]*(?:\\d{1,4}(?:[;:]\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]",A?void 0:"g")}var O6A=G6A();function xz(A){if(typeof A!=="string")throw TypeError(`Expected a \`string\`, got \`${typeof A}\``);return A.replace(O6A,"")}function W6A(A){return A===161||A===164||A===167||A===168||A===170||A===173||A===174||A>=176&&A<=180||A>=182&&A<=186||A>=188&&A<=191||A===198||A===208||A===215||A===216||A>=222&&A<=225||A===230||A>=232&&A<=234||A===236||A===237||A===240||A===242||A===243||A>=247&&A<=250||A===252||A===254||A===257||A===273||A===275||A===283||A===294||A===295||A===299||A>=305&&A<=307||A===312||A>=319&&A<=322||A===324||A>=328&&A<=331||A===333||A===338||A===339||A===358||A===359||A===363||A===462||A===464||A===466||A===468||A===470||A===472||A===474||A===476||A===593||A===609||A===708||A===711||A>=713&&A<=715||A===717||A===720||A>=728&&A<=731||A===733||A===735||A>=768&&A<=879||A>=913&&A<=929||A>=931&&A<=937||A>=945&&A<=961||A>=963&&A<=969||A===1025||A>=1040&&A<=1103||A===1105||A===8208||A>=8211&&A<=8214||A===8216||A===8217||A===8220||A===8221||A>=8224&&A<=8226||A>=8228&&A<=8231||A===8240||A===8242||A===8243||A===8245||A===8251||A===8254||A===8308||A===8319||A>=8321&&A<=8324||A===8364||A===8451||A===8453||A===8457||A===8467||A===8470||A===8481||A===8482||A===8486||A===8491||A===8531||A===8532||A>=8539&&A<=8542||A>=8544&&A<=8555||A>=8560&&A<=8569||A===8585||A>=8592&&A<=8601||A===8632||A===8633||A===8658||A===8660||A===8679||A===8704||A===8706||A===8707||A===8711||A===8712||A===8715||A===8719||A===8721||A===8725||A===8730||A>=8733&&A<=8736||A===8739||A===8741||A>=8743&&A<=8748||A===8750||A>=8756&&A<=8759||A===8764||A===8765||A===8776||A===8780||A===8786||A===8800||A===8801||A>=8804&&A<=8807||A===8810||A===8811||A===8814||A===8815||A===8834||A===8835||A===8838||A===8839||A===8853||A===8857||A===8869||A===8895||A===8978||A>=9312&&A<=9449||A>=9451&&A<=9547||A>=9552&&A<=9587||A>=9600&&A<=9615||A>=9618&&A<=9621||A===9632||A===9633||A>=9635&&A<=9641||A===9650||A===9651||A===9654||A===9655||A===9660||A===9661||A===9664||A===9665||A>=9670&&A<=9672||A===9675||A>=9678&&A<=9681||A>=9698&&A<=9701||A===9711||A===9733||A===9734||A===9737||A===9742||A===9743||A===9756||A===9758||A===9792||A===9794||A===9824||A===9825||A>=9827&&A<=9829||A>=9831&&A<=9834||A===9836||A===9837||A===9839||A===9886||A===9887||A===9919||A>=9926&&A<=9933||A>=9935&&A<=9939||A>=9941&&A<=9953||A===9955||A===9960||A===9961||A>=9963&&A<=9969||A===9972||A>=9974&&A<=9977||A===9979||A===9980||A===9982||A===9983||A===10045||A>=10102&&A<=10111||A>=11094&&A<=11097||A>=12872&&A<=12879||A>=57344&&A<=63743||A>=65024&&A<=65039||A===65533||A>=127232&&A<=127242||A>=127248&&A<=127277||A>=127280&&A<=127337||A>=127344&&A<=127373||A===127375||A===127376||A>=127387&&A<=127404||A>=917760&&A<=917999||A>=983040&&A<=1048573||A>=1048576&&A<=1114109}function V6A(A){return A===12288||A>=65281&&A<=65376||A>=65504&&A<=65510}function $6A(A){return A>=4352&&A<=4447||A===8986||A===8987||A===9001||A===9002||A>=9193&&A<=9196||A===9200||A===9203||A===9725||A===9726||A===9748||A===9749||A>=9776&&A<=9783||A>=9800&&A<=9811||A===9855||A>=9866&&A<=9871||A===9875||A===9889||A===9898||A===9899||A===9917||A===9918||A===9924||A===9925||A===9934||A===9940||A===9962||A===9970||A===9971||A===9973||A===9978||A===9981||A===9989||A===9994||A===9995||A===10024||A===10060||A===10062||A>=10067&&A<=10069||A===10071||A>=10133&&A<=10135||A===10160||A===10175||A===11035||A===11036||A===11088||A===11093||A>=11904&&A<=11929||A>=11931&&A<=12019||A>=12032&&A<=12245||A>=12272&&A<=12287||A>=12289&&A<=12350||A>=12353&&A<=12438||A>=12441&&A<=12543||A>=12549&&A<=12591||A>=12593&&A<=12686||A>=12688&&A<=12773||A>=12783&&A<=12830||A>=12832&&A<=12871||A>=12880&&A<=42124||A>=42128&&A<=42182||A>=43360&&A<=43388||A>=44032&&A<=55203||A>=63744&&A<=64255||A>=65040&&A<=65049||A>=65072&&A<=65106||A>=65108&&A<=65126||A>=65128&&A<=65131||A>=94176&&A<=94180||A>=94192&&A<=94198||A>=94208&&A<=101589||A>=101631&&A<=101662||A>=101760&&A<=101874||A>=110576&&A<=110579||A>=110581&&A<=110587||A===110589||A===110590||A>=110592&&A<=110882||A===110898||A>=110928&&A<=110930||A===110933||A>=110948&&A<=110951||A>=110960&&A<=111355||A>=119552&&A<=119638||A>=119648&&A<=119670||A===126980||A===127183||A===127374||A>=127377&&A<=127386||A>=127488&&A<=127490||A>=127504&&A<=127547||A>=127552&&A<=127560||A===127568||A===127569||A>=127584&&A<=127589||A>=127744&&A<=127776||A>=127789&&A<=127797||A>=127799&&A<=127868||A>=127870&&A<=127891||A>=127904&&A<=127946||A>=127951&&A<=127955||A>=127968&&A<=127984||A===127988||A>=127992&&A<=128062||A===128064||A>=128066&&A<=128252||A>=128255&&A<=128317||A>=128331&&A<=128334||A>=128336&&A<=128359||A===128378||A===128405||A===128406||A===128420||A>=128507&&A<=128591||A>=128640&&A<=128709||A===128716||A>=128720&&A<=128722||A>=128725&&A<=128728||A>=128732&&A<=128735||A===128747||A===128748||A>=128756&&A<=128764||A>=128992&&A<=129003||A===129008||A>=129292&&A<=129338||A>=129340&&A<=129349||A>=129351&&A<=129535||A>=129648&&A<=129660||A>=129664&&A<=129674||A>=129678&&A<=129734||A===129736||A>=129741&&A<=129756||A>=129759&&A<=129770||A>=129775&&A<=129784||A>=131072&&A<=196605||A>=196608&&A<=262141}function L6A(A){if(!Number.isSafeInteger(A))throw TypeError(`Expected a code point, got \`${typeof A}\`.`)}function M6A(A,{ambiguousAsWide:q=!1}={}){if(L6A(A),V6A(A)||$6A(A)||q&&W6A(A))return 2;return 1}var R6A=()=>{return/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\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-\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]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\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)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\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]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\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(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\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]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g},B6A=new Intl.Segmenter,P6A=/^\p{Default_Ignorable_Code_Point}$/u;function z6A(A,q={}){if(typeof A!=="string"||A.length===0)return 0;let{ambiguousIsNarrow:g=!0,countAnsiEscapeCodes:F=!1}=q;if(!F)A=xz(A);if(A.length===0)return 0;let K=0,E={ambiguousAsWide:!g};for(let{segment:Z}of B6A.segment(A)){let j=Z.codePointAt(0);if(j<=31||j>=127&&j<=159)continue;if(j>=8203&&j<=8207||j===65279)continue;if(j>=768&&j<=879||j>=6832&&j<=6911||j>=7616&&j<=7679||j>=8400&&j<=8447||j>=65056&&j<=65071)continue;if(j>=55296&&j<=57343)continue;if(j>=65024&&j<=65039)continue;if(P6A.test(Z))continue;if(R6A().test(Z)){K+=2;continue}K+=M6A(j,E)}return K}var I6A=new TextEncoder,B5=globalThis.Bun,C6A=B5?.sleep??T6A,k4=B5?.stringWidth??z6A,N6A=B5?.stripANSI??xz,D6A=B5?.write??S6A;async function x2(A,q,g){if(!B5){let K=typeof q==="function"?q():q;return sE(K instanceof URL?K:new URL(K,g))}let F=(await A()).default;if(F.startsWith("file:"))return sE(F);if(H6A(F))return F;return X6A(bz(sE(g)),F)}function T6A(A){let q=A instanceof Date?A.getTime()-Date.now():A;return new Promise((g)=>setTimeout(g,q))}async function S6A(A,q,g){let F=A instanceof URL?sE(A):A;if(g?.createPath)await Y6A(bz(F),{recursive:!0});let K=typeof q==="string"?I6A.encode(q):new Uint8Array(q.buffer,q.byteOffset,q.byteLength);return await J6A(F,K,{mode:g?.mode}),K.byteLength}var RJ;function w6A(){if(!RJ)RJ=f6A();return RJ}async function f6A(){let A=await x2(()=>Promise.resolve().then(() => Uq(VP(),1)),"./assets/javascript/highlights.scm",import.meta.url),q=await x2(()=>Promise.resolve().then(() => Uq($P(),1)),"./assets/javascript/tree-sitter-javascript.wasm",import.meta.url),g=await x2(()=>Promise.resolve().then(() => Uq(LP(),1)),"./assets/typescript/highlights.scm",import.meta.url),F=await x2(()=>Promise.resolve().then(() => Uq(MP(),1)),"./assets/typescript/tree-sitter-typescript.wasm",import.meta.url),K=await x2(()=>Promise.resolve().then(() => Uq(RP(),1)),"./assets/markdown/highlights.scm",import.meta.url),E=await x2(()=>Promise.resolve().then(() => Uq(BP(),1)),"./assets/markdown/tree-sitter-markdown.wasm",import.meta.url),Z=await x2(()=>Promise.resolve().then(() => Uq(PP(),1)),"./assets/markdown/injections.scm",import.meta.url),j=await x2(()=>Promise.resolve().then(() => Uq(zP(),1)),"./assets/markdown_inline/highlights.scm",import.meta.url),U=await x2(()=>Promise.resolve().then(() => Uq(IP(),1)),"./assets/markdown_inline/tree-sitter-markdown_inline.wasm",import.meta.url),Q=await x2(()=>Promise.resolve().then(() => Uq(CP(),1)),"./assets/zig/highlights.scm",import.meta.url),Y=await x2(()=>Promise.resolve().then(() => Uq(NP(),1)),"./assets/zig/tree-sitter-zig.wasm",import.meta.url);return[{filetype:"javascript",aliases:["javascriptreact"],queries:{highlights:[A]},wasm:q},{filetype:"typescript",aliases:["typescriptreact"],queries:{highlights:[g]},wasm:F},{filetype:"markdown",queries:{highlights:[K],injections:[Z]},wasm:E,injectionMapping:{nodeTypes:{inline:"markdown_inline",pipe_table_cell:"markdown_inline"},infoStringMap:{javascript:"javascript",js:"javascript",jsx:"javascriptreact",javascriptreact:"javascriptreact",typescript:"typescript",ts:"typescript",tsx:"typescriptreact",typescriptreact:"typescriptreact",markdown:"markdown",md:"markdown"}}},{filetype:"markdown_inline",queries:{highlights:[j]},wasm:U},{filetype:"zig",queries:{highlights:[Q]},wasm:Y}]}function _z(A){return A.includes("$bunfs")||/^B:[\\/]~BUN/i.test(A)}function k6A(){return process.platform==="win32"?"B:\\~BUN\\root":"/$bunfs/root"}function u6A(A){return v6A(k6A(),h6A(A))}var y6A="OpenTUI tree-sitter workers are not available for this runtime yet.";class hz{constructor(){throw Error(y6A)}}var m6A=globalThis.Worker??hz;u0({name:"OTUI_TREE_SITTER_WORKER_PATH",description:"Path to the TreeSitter worker entry script",type:"string",default:""});var tE=[];function nH(A){for(let q of A)tE=[...tE.filter((g)=>g.filetype!==q.filetype),q]}var c6A=(A)=>A.startsWith("http://")||A.startsWith("https://");class L9 extends j6A{initialized=!1;worker;buffers=new Map;initializePromise;initializeResolvers;messageCallbacks=new Map;messageIdCounter=0;editQueues=new Map;debouncer;options;constructor(A){super();this.options=A,this.debouncer=U6A("tree-sitter-client"),this.startWorker()}emitError(A,q){if(this.listenerCount("error")>0)this.emit("error",A,q)}emitWarning(A,q){if(this.listenerCount("warning")>0)this.emit("warning",A,q)}startWorker(){if(this.worker)return;let A=this.resolveWorkerPath();this.worker=new m6A(A),this.worker.onmessage=this.handleWorkerMessage.bind(this),this.worker.onerror=(q)=>{if(console.error("TreeSitter worker error:",q.message),this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error(`Worker error: ${q.message}`)),this.initializeResolvers=void 0;this.emitError(`Worker error: ${q.message}`)}}resolveWorkerPath(){if(R0.OTUI_TREE_SITTER_WORKER_PATH)return R0.OTUI_TREE_SITTER_WORKER_PATH;if(this.options.workerPath)return this.options.workerPath;let A=new URL("./parser.worker.js",import.meta.url).href;if(!_6A(yP(import.meta.dirname,"parser.worker.js")))A=new URL("./parser.worker.ts",import.meta.url).href;return A}stopWorker(){if(!this.worker)return;this.worker.terminate(),this.worker=void 0}handleReset(){return this.buffers.clear(),this.stopWorker(),this.startWorker(),this.initialized=!1,this.initializePromise=void 0,this.initializeResolvers=void 0,this.initialize()}async initialize(){if(this.initializePromise)return this.initializePromise;return this.initializePromise=this.initializeClient(),this.initializePromise}async initializeClient(){await new Promise((A,q)=>{let g=this.options.initTimeout??1e4,F=setTimeout(()=>{let K=Error("Worker initialization timed out");console.error("TreeSitter client:",K.message),this.initializeResolvers=void 0,q(K)},g);this.initializeResolvers={resolve:A,reject:q,timeoutId:F},this.worker?.postMessage({type:"INIT",dataPath:this.options.dataPath})}),await this.registerDefaultParsers(),this.initialized=!0}async registerDefaultParsers(){let A=await w6A(),q=new Set(tE.map((g)=>g.filetype));for(let g of[...A.filter((F)=>!q.has(F.filetype)),...tE])this.addFiletypeParser(g)}resolvePath(A){if(c6A(A))return A;if(_z(A))return u6A(x6A(A).base);if(!b6A(A))return yP(A);return A}addFiletypeParser(A){let q={...A,aliases:A.aliases?[...new Set(A.aliases.filter((g)=>g!==A.filetype))]:void 0,wasm:this.resolvePath(A.wasm),queries:{highlights:A.queries.highlights.map((g)=>this.resolvePath(g)),injections:A.queries.injections?.map((g)=>this.resolvePath(g))}};this.worker?.postMessage({type:"ADD_FILETYPE_PARSER",filetypeParser:q})}async getPerformance(){let A=`performance_${this.messageIdCounter++}`;return new Promise((q)=>{this.messageCallbacks.set(A,q),this.worker?.postMessage({type:"GET_PERFORMANCE",messageId:A})})}async highlightOnce(A,q){if(!this.initialized)try{await this.initialize()}catch(F){return{error:"Could not highlight because of initialization error"}}let g=`oneshot_${this.messageIdCounter++}`;return new Promise((F)=>{this.messageCallbacks.set(g,F),this.worker?.postMessage({type:"ONESHOT_HIGHLIGHT",content:A,filetype:q,messageId:g})})}handleWorkerMessage(A){let{type:q,bufferId:g,error:F,highlights:K,warning:E,messageId:Z,hasParser:j,performance:U,version:Q}=A.data;if(q==="HIGHLIGHT_RESPONSE"){let Y=this.buffers.get(g);if(!Y||!Y.hasParser)return;if(Y.version!==Q){this.resetBuffer(g,Y.version,Y.content);return}this.emit("highlights:response",g,Q,K)}if(q==="INIT_RESPONSE"){if(this.initializeResolvers){if(clearTimeout(this.initializeResolvers.timeoutId),F)console.error("TreeSitter client initialization failed:",F),this.initializeResolvers.reject(Error(F));else this.initializeResolvers.resolve();this.initializeResolvers=void 0;return}}if(q==="PARSER_INIT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j,warning:E,error:F});return}if(q==="PRELOAD_PARSER_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({hasParser:j});return}if(q==="BUFFER_DISPOSED"){let Y=this.messageCallbacks.get(`dispose_${g}`);if(Y)this.messageCallbacks.delete(`dispose_${g}`),Y(!0);this.emit("buffer:disposed",g);return}if(q==="PERFORMANCE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y(U);return}if(q==="ONESHOT_HIGHLIGHT_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({highlights:K,warning:E,error:F});return}if(q==="UPDATE_DATA_PATH_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:F});return}if(q==="CLEAR_CACHE_RESPONSE"){let Y=this.messageCallbacks.get(Z);if(Y)this.messageCallbacks.delete(Z),Y({error:F});return}if(E){this.emitWarning(E,g);return}if(F){this.emitError(F,g);return}if(q==="WORKER_LOG"){let{logType:Y,data:J}=A.data,H=J.join(" ");this.emit("worker:log",Y,H);return}}async preloadParser(A){let q=`has_parser_${this.messageIdCounter++}`;return(await new Promise((F)=>{this.messageCallbacks.set(q,F),this.worker?.postMessage({type:"PRELOAD_PARSER",filetype:A,messageId:q})})).hasParser}async createBuffer(A,q,g,F=1,K=!0){if(!this.initialized){if(!K)return this.emitError("Could not create buffer because client is not initialized"),!1;try{await this.initialize()}catch(U){return this.emitError("Could not create buffer because of initialization error"),!1}}if(this.buffers.has(A))throw Error(`Buffer with id ${A} already exists`);this.buffers.set(A,{id:A,content:q,filetype:g,version:F,hasParser:!1});let E=`init_${this.messageIdCounter++}`,Z=await new Promise((U)=>{this.messageCallbacks.set(E,U),this.worker?.postMessage({type:"INITIALIZE_PARSER",bufferId:A,version:F,content:q,filetype:g,messageId:E})});if(!Z.hasParser){if(this.emit("buffer:initialized",A,!1),g!=="plaintext")this.emitWarning(Z.warning||Z.error||"Buffer has no parser",A);return!1}let j={id:A,content:q,filetype:g,version:F,hasParser:!0};return this.buffers.set(A,j),this.emit("buffer:initialized",A,!0),!0}async updateBuffer(A,q,g,F){if(!this.initialized)return;let K=this.buffers.get(A);if(!K||!K.hasParser)return;if(this.buffers.set(A,{...K,content:g,version:F}),!this.editQueues.has(A))this.editQueues.set(A,new fz((Z)=>this.processEdit(A,Z.edits,Z.newContent,Z.version,Z.isReset)));this.editQueues.get(A).enqueue({edits:q,newContent:g,version:F})}async processEdit(A,q,g,F,K=!1){this.worker?.postMessage({type:K?"RESET_BUFFER":"HANDLE_EDITS",bufferId:A,version:F,content:g,edits:q})}async removeBuffer(A){if(!this.initialized)return;if(this.buffers.delete(A),this.editQueues.has(A))this.editQueues.get(A)?.clear(),this.editQueues.delete(A);if(this.worker)await new Promise((q)=>{let g=`dispose_${A}`;this.messageCallbacks.set(g,q);try{this.worker.postMessage({type:"DISPOSE_BUFFER",bufferId:A})}catch(F){console.error("Error disposing buffer",F),q(!1)}setTimeout(()=>{if(this.messageCallbacks.has(g))this.messageCallbacks.delete(g),console.warn({bufferId:A},"Timed out waiting for buffer to be disposed"),q(!1)},3000)});this.debouncer.clearDebounce(`reset-${A}`)}async destroy(){if(this.initializeResolvers)clearTimeout(this.initializeResolvers.timeoutId),this.initializeResolvers.reject(Error("Client destroyed during initialization")),this.initializeResolvers=void 0;for(let[A,q]of this.messageCallbacks.entries())if(typeof q==="function")try{q({error:"Client destroyed"})}catch(g){}this.messageCallbacks.clear(),Q6A("tree-sitter-client"),this.debouncer.clear(),this.editQueues.clear(),this.buffers.clear(),this.stopWorker(),this.initialized=!1,this.initializePromise=void 0}async resetBuffer(A,q,g){if(!this.initialized)return;let F=this.buffers.get(A);if(!F||!F.hasParser){this.emitError("Cannot reset buffer with no parser",A);return}this.buffers.set(A,{...F,content:g,version:q}),this.debouncer.debounce(`reset-${A}`,10,()=>this.processEdit(A,[],g,q,!0))}getBuffer(A){return this.buffers.get(A)}getAllBuffers(){return Array.from(this.buffers.values())}isInitialized(){return this.initialized}async setDataPath(A){if(this.options.dataPath===A)return;if(this.options.dataPath=A,this.initialized&&this.worker){let q=`update_datapath_${this.messageIdCounter++}`;return new Promise((g,F)=>{this.messageCallbacks.set(q,(K)=>{if(K.error)F(Error(K.error));else g()}),this.worker.postMessage({type:"UPDATE_DATA_PATH",dataPath:A,messageId:q})})}}async clearCache(){if(!this.initialized||!this.worker)throw Error("Cannot clear cache: client is not initialized");let A=`clear_cache_${this.messageIdCounter++}`;return new Promise((q,g)=>{this.messageCallbacks.set(A,(F)=>{if(F.error)g(Error(F.error));else q()}),this.worker.postMessage({type:"CLEAR_CACHE",messageId:A})})}}function a6A(A){if(!A||typeof A!=="string")return!1;if(A.trim().length===0)return!1;if(["CON","PRN","AUX","NUL","COM1","COM2","COM3","COM4","COM5","COM6","COM7","COM8","COM9","LPT1","LPT2","LPT3","LPT4","LPT5","LPT6","LPT7","LPT8","LPT9"].includes(A.toUpperCase()))return!1;if(/[<>:"|?*/\\\x00-\x1f]/.test(A))return!1;if(A.endsWith(".")||A.endsWith(" "))return!1;if(A==="."||A==="..")return!1;return!0}u0({name:"XDG_CONFIG_HOME",description:"Base directory for user-specific configuration files",type:"string",default:""});u0({name:"XDG_DATA_HOME",description:"Base directory for user-specific data files",type:"string",default:""});class P5 extends l6A{_appName;_globalConfigPath;_globalConfigFile;_localConfigFile;_globalDataPath;constructor(){super();this._appName="opentui"}get appName(){return this._appName}set appName(A){if(!a6A(A))throw Error(`Invalid app name "${A}": must be a valid directory name`);if(this._appName!==A)this._appName=A,this._globalConfigPath=void 0,this._globalConfigFile=void 0,this._localConfigFile=void 0,this._globalDataPath=void 0,this.emit("paths:changed",this.toObject())}get globalConfigPath(){if(this._globalConfigPath===void 0){let A=mP.homedir(),g=R0.XDG_CONFIG_HOME||_F.join(A,".config");this._globalConfigPath=_F.join(g,this._appName)}return this._globalConfigPath}get globalConfigFile(){if(this._globalConfigFile===void 0)this._globalConfigFile=_F.join(this.globalConfigPath,"init.ts");return this._globalConfigFile}get localConfigFile(){if(this._localConfigFile===void 0)this._localConfigFile=_F.join(process.cwd(),`.${this._appName}.ts`);return this._localConfigFile}get globalDataPath(){if(this._globalDataPath===void 0){let A=mP.homedir(),g=R0.XDG_DATA_HOME||_F.join(A,".local/share");this._globalDataPath=_F.join(g,this._appName)}return this._globalDataPath}toObject(){return{globalConfigPath:this.globalConfigPath,globalConfigFile:this.globalConfigFile,localConfigFile:this.localConfigFile,globalDataPath:this.globalDataPath}}}function HZ(){return c4("data-paths-opentui",()=>new P5)}var XZ=new Map([["astro","astro"],["bash","bash"],["c","c"],["cc","cpp"],["cjs","javascript"],["clj","clojure"],["cljs","clojure"],["cljc","clojure"],["cpp","cpp"],["cxx","cpp"],["cs","csharp"],["cts","typescript"],["ctsx","typescriptreact"],["dart","dart"],["diff","diff"],["edn","clojure"],["go","go"],["gemspec","ruby"],["groovy","groovy"],["h","c"],["handlebars","handlebars"],["hbs","handlebars"],["hpp","cpp"],["hxx","cpp"],["h++","cpp"],["hh","cpp"],["hrl","erlang"],["hs","haskell"],["htm","html"],["html","html"],["ini","ini"],["js","javascript"],["jsx","javascriptreact"],["jl","julia"],["json","json"],["ksh","bash"],["kt","kotlin"],["kts","kotlin"],["latex","latex"],["less","less"],["lua","lua"],["markdown","markdown"],["md","markdown"],["mdown","markdown"],["mkd","markdown"],["mjs","javascript"],["ml","ocaml"],["mli","ocaml"],["mts","typescript"],["mtsx","typescriptreact"],["patch","diff"],["php","php"],["pl","perl"],["pm","perl"],["ps1","powershell"],["psm1","powershell"],["py","python"],["pyi","python"],["r","r"],["rb","ruby"],["rake","ruby"],["rs","rust"],["ru","ruby"],["sass","sass"],["sc","scala"],["scala","scala"],["scss","scss"],["sh","bash"],["sql","sql"],["svelte","svelte"],["swift","swift"],["ts","typescript"],["tsx","typescriptreact"],["tex","latex"],["toml","toml"],["vue","vue"],["vim","vim"],["xml","xml"],["xsl","xsl"],["yaml","yaml"],["yml","yaml"],["zig","zig"],["zon","zig"],["zsh","bash"],["c++","cpp"],["erl","erlang"],["exs","elixir"],["ex","elixir"],["elm","elm"],["fsharp","fsharp"],["fs","fsharp"],["fsx","fsharp"],["fsscript","fsharp"],["fsi","fsharp"],["java","java"],["css","css"]]),J9=new Map([[".bash_aliases","bash"],[".bash_logout","bash"],[".bash_profile","bash"],[".bashrc","bash"],[".kshrc","bash"],[".profile","bash"],[".vimrc","vim"],[".zlogin","bash"],[".zlogout","bash"],[".zprofile","bash"],[".zshenv","bash"],[".zshrc","bash"],["appfile","ruby"],["berksfile","ruby"],["brewfile","ruby"],["cheffile","ruby"],["containerfile","dockerfile"],["dockerfile","dockerfile"],["fastfile","ruby"],["gemfile","ruby"],["gnumakefile","make"],["gvimrc","vim"],["guardfile","ruby"],["makefile","make"],["podfile","ruby"],["rakefile","ruby"],["thorfile","ruby"],["vagrantfile","ruby"]]);function vz(A){return A.trim().replace(/^\./,"").toLowerCase()||void 0}function d6A(A){let q=A.trim().replaceAll("\\","/");if(!q)return;return cP.posix.basename(q).toLowerCase()||void 0}function z5(A){let q=vz(A);if(!q)return;return XZ.get(q)}function GZ(A){if(typeof A!=="string")return;let q=d6A(A);if(!q)return;let g=J9.get(q);if(g)return g;let F=q.lastIndexOf(".");if(F===-1||F===q.length-1)return;let K=q.substring(F+1);return z5(K)}function I5(A){if(typeof A!=="string")return;let q=A.trim().split(/\s+/,1)[0],g=J9.get(q.toLowerCase());if(g)return g;let F=vz(q);if(!F)return;return J9.get(F)??GZ(F)??z5(F)??F}function C5(){let A=HZ(),q={dataPath:A.globalDataPath};return c4("tree-sitter-client",()=>{let g=new L9(q);return A.on("paths:changed",(F)=>{g.setDataPath(F.globalDataPath)}),g})}class kz{undoStack=[];redoStack=[];saveSnapshot(A,q){let g={extmarks:new Map(Array.from(A.entries()).map(([F,K])=>[F,{...K}])),nextId:q};this.undoStack.push(g),this.redoStack=[]}undo(){if(this.undoStack.length===0)return null;return this.undoStack.pop()}redo(){if(this.redoStack.length===0)return null;return this.redoStack.pop()}pushRedo(A){this.redoStack.push(A)}pushUndo(A){this.undoStack.push(A)}clear(){this.undoStack=[],this.redoStack=[]}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}}class N5{editBuffer;editorView;extmarks=new Map;extmarksByTypeId=new Map;metadata=new Map;nextId=1;destroyed=!1;history=new kz;typeNameToId=new Map;typeIdToName=new Map;nextTypeId=1;originalMoveCursorLeft;originalMoveCursorRight;originalSetCursorByOffset;originalMoveUpVisual;originalMoveDownVisual;originalDeleteCharBackward;originalDeleteChar;originalInsertText;originalInsertChar;originalDeleteRange;originalSetText;originalReplaceText;originalClear;originalNewLine;originalDeleteLine;originalEditorViewDeleteSelectedText;originalUndo;originalRedo;constructor(A,q){this.editBuffer=A,this.editorView=q,this.originalMoveCursorLeft=A.moveCursorLeft.bind(A),this.originalMoveCursorRight=A.moveCursorRight.bind(A),this.originalSetCursorByOffset=A.setCursorByOffset.bind(A),this.originalMoveUpVisual=q.moveUpVisual.bind(q),this.originalMoveDownVisual=q.moveDownVisual.bind(q),this.originalDeleteCharBackward=A.deleteCharBackward.bind(A),this.originalDeleteChar=A.deleteChar.bind(A),this.originalInsertText=A.insertText.bind(A),this.originalInsertChar=A.insertChar.bind(A),this.originalDeleteRange=A.deleteRange.bind(A),this.originalSetText=A.setText.bind(A),this.originalReplaceText=A.replaceText.bind(A),this.originalClear=A.clear.bind(A),this.originalNewLine=A.newLine.bind(A),this.originalDeleteLine=A.deleteLine.bind(A),this.originalEditorViewDeleteSelectedText=q.deleteSelectedText.bind(q),this.originalUndo=A.undo.bind(A),this.originalRedo=A.redo.bind(A),this.wrapCursorMovement(),this.wrapDeletion(),this.wrapInsertion(),this.wrapEditorViewDeleteSelectedText(),this.wrapUndoRedo(),this.setupContentChangeListener()}wrapCursorMovement(){this.editBuffer.moveCursorLeft=()=>{if(this.destroyed){this.originalMoveCursorLeft();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorLeft();return}let g=A-1;if(g<0){this.originalMoveCursorLeft();return}let F=this.findVirtualExtmarkContaining(g);if(F&&A>=F.end){this.editBuffer.setCursorByOffset(F.start-1);return}this.originalMoveCursorLeft()},this.editBuffer.moveCursorRight=()=>{if(this.destroyed){this.originalMoveCursorRight();return}let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalMoveCursorRight();return}let g=A+1,F=this.editBuffer.getText().length;if(g>F){this.originalMoveCursorRight();return}let K=this.findVirtualExtmarkContaining(g);if(K&&A<=K.start){this.editBuffer.setCursorByOffset(K.end);return}this.originalMoveCursorRight()},this.editorView.moveUpVisual=()=>{if(this.destroyed){this.originalMoveUpVisual();return}if(this.editorView.hasSelection()){this.originalMoveUpVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveUpVisual();let g=this.editorView.getVisualCursor().offset,F=this.findVirtualExtmarkContaining(g);if(F){let K=g-F.start,E=F.end-g;if(K<E)this.editorView.setCursorByOffset(F.start-1);else this.editorView.setCursorByOffset(F.end)}},this.editorView.moveDownVisual=()=>{if(this.destroyed){this.originalMoveDownVisual();return}if(this.editorView.hasSelection()){this.originalMoveDownVisual();return}let q=this.editorView.getVisualCursor().offset;this.originalMoveDownVisual();let g=this.editorView.getVisualCursor().offset,F=this.findVirtualExtmarkContaining(g);if(F){let K=g-F.start,E=F.end-g;if(K<E){let Z=F.start-1,j=Z<=q?F.end:Z;this.editorView.setCursorByOffset(j)}else this.editorView.setCursorByOffset(F.end)}},this.editBuffer.setCursorByOffset=(A)=>{if(this.destroyed){this.originalSetCursorByOffset(A);return}let q=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalSetCursorByOffset(A);return}if(A>q){let K=this.findVirtualExtmarkContaining(A);if(K&&q<=K.start){this.originalSetCursorByOffset(K.end);return}}else for(let K of this.extmarks.values())if(K.virtual&&q>=K.end&&A<K.end&&A>=K.start){this.originalSetCursorByOffset(K.start-1);return}this.originalSetCursorByOffset(A)}}wrapDeletion(){this.editBuffer.deleteCharBackward=()=>{if(this.destroyed){this.originalDeleteCharBackward();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset,q=this.editorView.hasSelection();if(A===0){this.originalDeleteCharBackward();return}if(q){this.originalDeleteCharBackward();return}let g=A-1,F=this.findVirtualExtmarkContaining(g);if(F&&A===F.end){let Z=this.offsetToPosition(F.start),j=this.offsetToPosition(F.end),U=F.start,Q=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(Z.row,Z.col,j.row,j.col),this.adjustExtmarksAfterDeletion(U,Q),this.updateHighlights();return}this.originalDeleteCharBackward();let K=this.editorView.getVisualCursor().offset,E=A-K;if(E>0)this.adjustExtmarksAfterDeletion(K,E)},this.editBuffer.deleteChar=()=>{if(this.destroyed){this.originalDeleteChar();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset;if(this.editorView.hasSelection()){this.originalDeleteChar();return}let g=A,F=this.findVirtualExtmarkContaining(g);if(F&&A===F.start){let Z=this.offsetToPosition(F.start),j=this.offsetToPosition(F.end),U=F.start,Q=F.end-F.start;this.deleteExtmarkById(F.id),this.originalDeleteRange(Z.row,Z.col,j.row,j.col),this.adjustExtmarksAfterDeletion(U,Q),this.updateHighlights();return}let E=this.getNextCursorOffset(A)-A;if(this.originalDeleteChar(),E>0)this.adjustExtmarksAfterDeletion(A,E)},this.editBuffer.deleteRange=(A,q,g,F)=>{if(this.destroyed){this.originalDeleteRange(A,q,g,F);return}this.saveSnapshot();let K=this.positionToOffset(A,q),Z=this.positionToOffset(g,F)-K;this.originalDeleteRange(A,q,g,F),this.adjustExtmarksAfterDeletion(K,Z)},this.editBuffer.deleteLine=()=>{if(this.destroyed){this.originalDeleteLine();return}this.saveSnapshot();let A=this.editBuffer.getText(),q=this.editorView.getVisualCursor().offset,g=0;for(let E=q-1;E>=0;E--)if(A[E]===`
|
|
482
482
|
`){g=E+1;break}let F=A.length;for(let E=q;E<A.length;E++)if(A[E]===`
|
|
483
483
|
`){F=E+1;break}let K=F-g;this.originalDeleteLine(),this.adjustExtmarksAfterDeletion(g,K)}}wrapInsertion(){this.editBuffer.insertText=(A)=>{if(this.destroyed){this.originalInsertText(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertText(A);let g=this.editorView.getVisualCursor().offset-q;if(g>0)this.adjustExtmarksAfterInsertion(q,g)},this.editBuffer.insertChar=(A)=>{if(this.destroyed){this.originalInsertChar(A);return}this.saveSnapshot();let q=this.editorView.getVisualCursor().offset;this.originalInsertChar(A);let g=this.editorView.getVisualCursor().offset-q;if(g>0)this.adjustExtmarksAfterInsertion(q,g)},this.editBuffer.setText=(A)=>{if(this.destroyed){this.originalSetText(A);return}this.clear(),this.originalSetText(A)},this.editBuffer.replaceText=(A)=>{if(this.destroyed){this.originalReplaceText(A);return}this.saveSnapshot(),this.clear(),this.originalReplaceText(A)},this.editBuffer.clear=()=>{if(this.destroyed){this.originalClear();return}this.saveSnapshot(),this.clear(),this.originalClear()},this.editBuffer.newLine=()=>{if(this.destroyed){this.originalNewLine();return}this.saveSnapshot();let A=this.editorView.getVisualCursor().offset;this.originalNewLine(),this.adjustExtmarksAfterInsertion(A,1)}}wrapEditorViewDeleteSelectedText(){this.editorView.deleteSelectedText=()=>{if(this.destroyed){this.originalEditorViewDeleteSelectedText();return}this.saveSnapshot();let A=this.editorView.getSelection();if(!A){this.originalEditorViewDeleteSelectedText();return}let q=Math.min(A.start,A.end),g=Math.abs(A.end-A.start);if(this.originalEditorViewDeleteSelectedText(),g>0)this.adjustExtmarksAfterDeletion(q,g)}}setupContentChangeListener(){this.editBuffer.on("content-changed",()=>{if(this.destroyed)return;this.updateHighlights()})}deleteExtmarkById(A){let q=this.extmarks.get(A);if(q)this.extmarks.delete(A),this.extmarksByTypeId.get(q.typeId)?.delete(A),this.metadata.delete(A)}findVirtualExtmarkContaining(A){for(let q of this.extmarks.values())if(q.virtual&&A>=q.start&&A<q.end)return q;return null}adjustExtmarksAfterInsertion(A,q){for(let g of this.extmarks.values())if(g.start>=A)g.start+=q,g.end+=q;else if(g.end>A)g.end+=q;this.updateHighlights()}adjustExtmarksAfterDeletion(A,q){let g=[];for(let F of this.extmarks.values()){if(F.end<=A)continue;if(F.start>=A+q)F.start-=q,F.end-=q;else if(F.start>=A&&F.end<=A+q)g.push(F.id);else if(F.start<A&&F.end>A+q)F.end-=q;else if(F.start<A&&F.end>A)F.end-=Math.min(F.end,A+q)-A;else if(F.start<A+q&&F.end>A+q){let K=A+q-F.start;F.start=A,F.end-=q}}for(let F of g)this.deleteExtmarkById(F);this.updateHighlights()}offsetToPosition(A){let q=this.editBuffer.offsetToPosition(A);if(!q)return{row:0,col:0};return q}positionToOffset(A,q){return this.editBuffer.positionToOffset(A,q)}getNextCursorOffset(A){this.originalMoveCursorRight();let q=this.editorView.getVisualCursor().offset;return this.originalSetCursorByOffset(A),q}updateHighlights(){this.editBuffer.clearAllHighlights();for(let A of this.extmarks.values())if(A.styleId!==void 0){let q=this.offsetExcludingNewlines(A.start),g=this.offsetExcludingNewlines(A.end);this.editBuffer.addHighlightByCharRange({start:q,end:g,styleId:A.styleId,priority:A.priority??0,hlRef:A.id})}}offsetExcludingNewlines(A){let q=this.editBuffer.getText(),g=0,F=0,K=0;while(K<q.length&&g<A)if(q[K]===`
|
|
484
484
|
`)g++,F++,K++;else{let E=K;while(E<q.length&&q[E]!==`
|
package/dist/parser.worker.js
CHANGED
|
@@ -13,6 +13,7 @@ var __export = (target, all) => {
|
|
|
13
13
|
set: __exportSetter.bind(all, name2)
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
16
17
|
var __require = import.meta.require;
|
|
17
18
|
|
|
18
19
|
// virtual:tree-sitter-wasm-path
|
|
@@ -20,7 +21,10 @@ var exports_tree_sitter_wasm_path = {};
|
|
|
20
21
|
__export(exports_tree_sitter_wasm_path, {
|
|
21
22
|
default: () => tree_sitter_wasm_path_default
|
|
22
23
|
});
|
|
23
|
-
var tree_sitter_wasm_path_default
|
|
24
|
+
var tree_sitter_wasm_path_default;
|
|
25
|
+
var init_tree_sitter_wasm_path = __esm(() => {
|
|
26
|
+
tree_sitter_wasm_path_default = import.meta.dirname + "/tree-sitter.wasm";
|
|
27
|
+
});
|
|
24
28
|
|
|
25
29
|
// node_modules/web-tree-sitter/tree-sitter.js
|
|
26
30
|
var __defProp2 = Object.defineProperty;
|
|
@@ -3511,7 +3515,7 @@ class ParserWorker {
|
|
|
3511
3515
|
this.tsDataPath = path2.join(dataPath, "tree-sitter");
|
|
3512
3516
|
await mkdir3(path2.join(this.tsDataPath, "languages"), { recursive: true });
|
|
3513
3517
|
await mkdir3(path2.join(this.tsDataPath, "queries"), { recursive: true });
|
|
3514
|
-
let treeWasm = await resolveBundledFilePath(() => Promise.resolve().then(() => exports_tree_sitter_wasm_path), () => import.meta.resolve("web-tree-sitter/tree-sitter.wasm"), import.meta.url);
|
|
3518
|
+
let treeWasm = await resolveBundledFilePath(() => Promise.resolve().then(() => (init_tree_sitter_wasm_path(), exports_tree_sitter_wasm_path)), () => import.meta.resolve("web-tree-sitter/tree-sitter.wasm"), import.meta.url);
|
|
3515
3519
|
if (isBunfsPath(treeWasm)) {
|
|
3516
3520
|
treeWasm = normalizeBunfsPath(path2.parse(treeWasm).base);
|
|
3517
3521
|
}
|
|
Binary file
|
package/package.json
CHANGED