UNPKG

@drincs/pixi-vn-ink

Version:

Pixi'VN gives you the ability to write your own narrative using Ink

5 lines 48.1 kB
import {a,b,l,m,j,g,n,c}from'./chunk-U7O2G6DA.mjs';import Y from'fs/promises';import L,{resolve,posix,sep,isAbsolute,basename,dirname,normalize,relative}from'path';import*as nn from'fs';import {statSync,stat,realpathSync,realpath,readdirSync,readdir}from'fs';import {fileURLToPath}from'url';import {createRequire}from'module';import {toJSONSchema}from'zod';var Xt=a((fs,vt)=>{var yt=process||{},Kt=yt.argv||[],xt=yt.env||{},je=!(xt.NO_COLOR||Kt.includes("--no-color"))&&(!!xt.FORCE_COLOR||Kt.includes("--color")||yt.platform==="win32"||(yt.stdout||{}).isTTY&&xt.TERM!=="dumb"||!!xt.CI),ze=(t,e,n=t)=>r=>{let s=""+r,o=s.indexOf(e,t.length);return ~o?t+Ve(s,e,n,o)+e:t+s+e},Ve=(t,e,n,r)=>{let s="",o=0;do s+=t.substring(o,r)+n,o=r+e.length,r=t.indexOf(e,o);while(~r);return s+t.substring(o)},qt=(t=je)=>{let e=t?ze:()=>String;return {isColorSupported:t,reset:e("\x1B[0m","\x1B[0m"),bold:e("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:e("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:e("\x1B[3m","\x1B[23m"),underline:e("\x1B[4m","\x1B[24m"),inverse:e("\x1B[7m","\x1B[27m"),hidden:e("\x1B[8m","\x1B[28m"),strikethrough:e("\x1B[9m","\x1B[29m"),black:e("\x1B[30m","\x1B[39m"),red:e("\x1B[31m","\x1B[39m"),green:e("\x1B[32m","\x1B[39m"),yellow:e("\x1B[33m","\x1B[39m"),blue:e("\x1B[34m","\x1B[39m"),magenta:e("\x1B[35m","\x1B[39m"),cyan:e("\x1B[36m","\x1B[39m"),white:e("\x1B[37m","\x1B[39m"),gray:e("\x1B[90m","\x1B[39m"),bgBlack:e("\x1B[40m","\x1B[49m"),bgRed:e("\x1B[41m","\x1B[49m"),bgGreen:e("\x1B[42m","\x1B[49m"),bgYellow:e("\x1B[43m","\x1B[49m"),bgBlue:e("\x1B[44m","\x1B[49m"),bgMagenta:e("\x1B[45m","\x1B[49m"),bgCyan:e("\x1B[46m","\x1B[49m"),bgWhite:e("\x1B[47m","\x1B[49m"),blackBright:e("\x1B[90m","\x1B[39m"),redBright:e("\x1B[91m","\x1B[39m"),greenBright:e("\x1B[92m","\x1B[39m"),yellowBright:e("\x1B[93m","\x1B[39m"),blueBright:e("\x1B[94m","\x1B[39m"),magentaBright:e("\x1B[95m","\x1B[39m"),cyanBright:e("\x1B[96m","\x1B[39m"),whiteBright:e("\x1B[97m","\x1B[39m"),bgBlackBright:e("\x1B[100m","\x1B[49m"),bgRedBright:e("\x1B[101m","\x1B[49m"),bgGreenBright:e("\x1B[102m","\x1B[49m"),bgYellowBright:e("\x1B[103m","\x1B[49m"),bgBlueBright:e("\x1B[104m","\x1B[49m"),bgMagentaBright:e("\x1B[105m","\x1B[49m"),bgCyanBright:e("\x1B[106m","\x1B[49m"),bgWhiteBright:e("\x1B[107m","\x1B[49m")}};vt.exports=qt();vt.exports.createColors=qt;});var ct=a((_s,ce)=>{var oe="[^\\\\/]",Qn="(?=.)",ie="[^/]",kt="(?:\\/|$)",ae="(?:^|\\/)",wt=`\\.{1,2}${kt}`,Yn="(?!\\.)",Zn=`(?!${ae}${wt})`,tr=`(?!\\.{0,1}${kt})`,er=`(?!${wt})`,nr="[^.\\/]",rr=`${ie}*?`,sr="/",ue={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:Qn,QMARK:ie,END_ANCHOR:kt,DOTS_SLASH:wt,NO_DOT:Yn,NO_DOTS:Zn,NO_DOT_SLASH:tr,NO_DOTS_SLASH:er,QMARK_NO_DOT:nr,STAR:rr,START_ANCHOR:ae,SEP:sr},or={...ue,SLASH_LITERAL:"[\\\\/]",QMARK:oe,STAR:`${oe}*?`,DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},ir={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};ce.exports={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:ir,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===true?or:ue}};});var lt=a(q=>{var{REGEX_BACKSLASH:ar,REGEX_REMOVE_BACKSLASH:ur,REGEX_SPECIAL_CHARS:cr,REGEX_SPECIAL_CHARS_GLOBAL:lr}=ct();q.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);q.hasRegexChars=t=>cr.test(t);q.isRegexChar=t=>t.length===1&&q.hasRegexChars(t);q.escapeRegex=t=>t.replace(lr,"\\$1");q.toPosixSlashes=t=>t.replace(ar,"/");q.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let t=navigator.platform.toLowerCase();return t==="win32"||t==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};q.removeBackslashes=t=>t.replace(ur,e=>e==="\\"?"":e);q.escapeLast=(t,e,n)=>{let r=t.lastIndexOf(e,n);return r===-1?t:t[r-1]==="\\"?q.escapeLast(t,e,r-1):`${t.slice(0,r)}\\${t.slice(r)}`};q.removePrefix=(t,e={})=>{let n=t;return n.startsWith("./")&&(n=n.slice(2),e.prefix="./"),n};q.wrapOutput=(t,e={},n={})=>{let r=n.contains?"":"^",s=n.contains?"":"$",o=`${r}(?:${t})${s}`;return e.negated===true&&(o=`(?:^(?!${o}).*$)`),o};q.basename=(t,{windows:e}={})=>{let n=t.split(e?/[\\/]/:"/"),r=n[n.length-1];return r===""?n[n.length-2]:r};});var be=a((vs,me)=>{var le=lt(),{CHAR_ASTERISK:It,CHAR_AT:pr,CHAR_BACKWARD_SLASH:pt,CHAR_COMMA:fr,CHAR_DOT:Ot,CHAR_EXCLAMATION_MARK:Lt,CHAR_FORWARD_SLASH:ge,CHAR_LEFT_CURLY_BRACE:Tt,CHAR_LEFT_PARENTHESES:Pt,CHAR_LEFT_SQUARE_BRACKET:hr,CHAR_PLUS:dr,CHAR_QUESTION_MARK:pe,CHAR_RIGHT_CURLY_BRACE:gr,CHAR_RIGHT_PARENTHESES:fe,CHAR_RIGHT_SQUARE_BRACKET:mr}=ct(),he=t=>t===ge||t===pt,de=t=>{t.isPrefix!==true&&(t.depth=t.isGlobstar?1/0:1);},br=(t,e)=>{let n=e||{},r=t.length-1,s=n.parts===true||n.scanToEnd===true,o=[],i=[],l=[],d=t,S=-1,A=0,x=0,E=false,$=false,v=false,I=false,P=false,y=false,p=false,R=false,H=false,_=false,g=0,C,m,b={value:"",depth:0,isGlob:false},a=()=>S>=r,J=()=>d.charCodeAt(S+1),O=()=>(C=m,d.charCodeAt(++S));for(;S<r;){m=O();let T;if(m===pt){p=b.backslashes=true,m=O(),m===Tt&&(y=true);continue}if(y===true||m===Tt){for(g++;a()!==true&&(m=O());){if(m===pt){p=b.backslashes=true,O();continue}if(m===Tt){g++;continue}if(y!==true&&m===Ot&&(m=O())===Ot){if(E=b.isBrace=true,v=b.isGlob=true,_=true,s===true)continue;break}if(y!==true&&m===fr){if(E=b.isBrace=true,v=b.isGlob=true,_=true,s===true)continue;break}if(m===gr&&(g--,g===0)){y=false,E=b.isBrace=true,_=true;break}}if(s===true)continue;break}if(m===ge){if(o.push(S),i.push(b),b={value:"",depth:0,isGlob:false},_===true)continue;if(C===Ot&&S===A+1){A+=2;continue}x=S+1;continue}if(n.noext!==true&&(m===dr||m===pr||m===It||m===pe||m===Lt)===true&&J()===Pt){if(v=b.isGlob=true,I=b.isExtglob=true,_=true,m===Lt&&S===A&&(H=true),s===true){for(;a()!==true&&(m=O());){if(m===pt){p=b.backslashes=true,m=O();continue}if(m===fe){v=b.isGlob=true,_=true;break}}continue}break}if(m===It){if(C===It&&(P=b.isGlobstar=true),v=b.isGlob=true,_=true,s===true)continue;break}if(m===pe){if(v=b.isGlob=true,_=true,s===true)continue;break}if(m===hr){for(;a()!==true&&(T=O());){if(T===pt){p=b.backslashes=true,O();continue}if(T===mr){$=b.isBracket=true,v=b.isGlob=true,_=true;break}}if(s===true)continue;break}if(n.nonegate!==true&&m===Lt&&S===A){R=b.negated=true,A++;continue}if(n.noparen!==true&&m===Pt){if(v=b.isGlob=true,s===true){for(;a()!==true&&(m=O());){if(m===Pt){p=b.backslashes=true,m=O();continue}if(m===fe){_=true;break}}continue}break}if(v===true){if(_=true,s===true)continue;break}}n.noext===true&&(I=false,v=false);let D=d,c="",u="";A>0&&(c=d.slice(0,A),d=d.slice(A),x-=A),D&&v===true&&x>0?(D=d.slice(0,x),u=d.slice(x)):v===true?(D="",u=d):D=d,D&&D!==""&&D!=="/"&&D!==d&&he(D.charCodeAt(D.length-1))&&(D=D.slice(0,-1)),n.unescape===true&&(u&&(u=le.removeBackslashes(u)),D&&p===true&&(D=le.removeBackslashes(D)));let K={prefix:c,input:t,start:A,base:D,glob:u,isBrace:E,isBracket:$,isGlob:v,isExtglob:I,isGlobstar:P,negated:R,negatedExtglob:H};if(n.tokens===true&&(K.maxDepth=0,he(m)||i.push(b),K.tokens=i),n.parts===true||n.tokens===true){let T;for(let F=0;F<o.length;F++){let Q=T?T+1:A,j=o[F],Z=t.slice(Q,j);n.tokens&&(F===0&&A!==0?(i[F].isPrefix=true,i[F].value=c):i[F].value=Z,de(i[F]),K.maxDepth+=i[F].depth),(F!==0||Z!=="")&&l.push(Z),T=j;}if(T&&T+1<t.length){let F=t.slice(T+1);l.push(F),n.tokens&&(i[i.length-1].value=F,de(i[i.length-1]),K.maxDepth+=i[i.length-1].depth);}K.slashes=o,K.parts=l;}return K};me.exports=br;});var Ae=a((Cs,Se)=>{var ft=ct(),X=lt(),{MAX_LENGTH:St,POSIX_REGEX_SOURCE:xr,REGEX_NON_SPECIAL_CHARS:yr,REGEX_SPECIAL_CHARS_BACKREF:Rr,REPLACEMENTS:xe}=ft,Sr=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let n=`[${t.join("-")}]`;try{new RegExp(n);}catch{return t.map(s=>X.escapeRegex(s)).join("..")}return n},ot=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,ye=t=>{let e=[],n=0,r=0,s=0,o="",i=false;for(let l of t){if(i===true){o+=l,i=false;continue}if(l==="\\"){o+=l,i=true;continue}if(l==='"'){s=s===1?0:1,o+=l;continue}if(s===0){if(l==="[")n++;else if(l==="]"&&n>0)n--;else if(n===0){if(l==="(")r++;else if(l===")"&&r>0)r--;else if(l==="|"&&r===0){e.push(o),o="";continue}}}o+=l;}return e.push(o),e},Ar=t=>{let e=false;for(let n of t){if(e===true){e=false;continue}if(n==="\\"){e=true;continue}if(/[?*+@!()[\]{}]/.test(n))return false}return true},Re=t=>{let e=t.trim(),n=true;for(;n===true;)n=false,/^@\([^\\()[\]{}|]+\)$/.test(e)&&(e=e.slice(2,-1),n=true);if(Ar(e))return e.replace(/\\(.)/g,"$1")},_r=t=>{let e=t.map(Re).filter(Boolean);for(let n=0;n<e.length;n++)for(let r=n+1;r<e.length;r++){let s=e[n],o=e[r],i=s[0];if(!(!i||s!==i.repeat(s.length)||o!==i.repeat(o.length))&&(s===o||s.startsWith(o)||o.startsWith(s)))return true}return false},Ht=(t,e=true)=>{if(t[0]!=="+"&&t[0]!=="*"||t[1]!=="(")return;let n=0,r=0,s=0,o=false;for(let i=1;i<t.length;i++){let l=t[i];if(o===true){o=false;continue}if(l==="\\"){o=true;continue}if(l==='"'){s=s===1?0:1;continue}if(s!==1){if(l==="["){n++;continue}if(l==="]"&&n>0){n--;continue}if(!(n>0)){if(l==="("){r++;continue}if(l===")"&&(r--,r===0))return e===true&&i!==t.length-1?void 0:{type:t[0],body:t.slice(2,i),end:i}}}}},Er=t=>{let e=0,n=[];for(;e<t.length;){let s=Ht(t.slice(e),false);if(!s||s.type!=="*")return;let o=ye(s.body).map(l=>l.trim());if(o.length!==1)return;let i=Re(o[0]);if(!i||i.length!==1)return;n.push(i),e+=s.end+1;}return n.length<1?void 0:`${n.length===1?X.escapeRegex(n[0]):`[${n.map(s=>X.escapeRegex(s)).join("")}]`}*`},vr=t=>{let e=0,n=t.trim(),r=Ht(n);for(;r;)e++,n=r.body.trim(),r=Ht(n);return e},Cr=(t,e)=>{if(e.maxExtglobRecursion===false)return {risky:false};let n=typeof e.maxExtglobRecursion=="number"?e.maxExtglobRecursion:ft.DEFAULT_MAX_EXTGLOB_RECURSION,r=ye(t).map(s=>s.trim());if(r.length>1&&(r.some(s=>s==="")||r.some(s=>/^[*?]+$/.test(s))||_r(r)))return {risky:true};for(let s of r){let o=Er(s);if(o)return {risky:true,safeOutput:o};if(vr(s)>n)return {risky:true}}return {risky:false}},Dt=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=xe[t]||t;let n={...e},r=typeof n.maxLength=="number"?Math.min(St,n.maxLength):St,s=t.length;if(s>r)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${r}`);let o={type:"bos",value:"",output:n.prepend||""},i=[o],l=n.capture?"":"?:",d=ft.globChars(n.windows),S=ft.extglobChars(d),{DOT_LITERAL:A,PLUS_LITERAL:x,SLASH_LITERAL:E,ONE_CHAR:$,DOTS_SLASH:v,NO_DOT:I,NO_DOT_SLASH:P,NO_DOTS_SLASH:y,QMARK:p,QMARK_NO_DOT:R,STAR:H,START_ANCHOR:_}=d,g=h=>`(${l}(?:(?!${_}${h.dot?v:A}).)*?)`,C=n.dot?"":I,m=n.dot?p:R,b=n.bash===true?g(n):H;n.capture&&(b=`(${b})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let a={input:t,index:-1,start:0,dot:n.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:i};t=X.removePrefix(t,a),s=t.length;let J=[],O=[],D=[],c=o,u,K=()=>a.index===s-1,T=a.peek=(h=1)=>t[a.index+h],F=a.advance=()=>t[++a.index]||"",Q=()=>t.slice(a.index+1),j=(h="",M=0)=>{a.consumed+=h,a.index+=M;},Z=h=>{a.output+=h.output!=null?h.output:h.value,j(h.value);},Ke=()=>{let h=1;for(;T()==="!"&&(T(2)!=="("||T(3)==="?");)F(),a.start++,h++;return h%2===0?false:(a.negated=true,a.start++,true)},dt=h=>{a[h]++,D.push(h);},tt=h=>{a[h]--,D.pop();},k=h=>{if(c.type==="globstar"){let M=a.braces>0&&(h.type==="comma"||h.type==="brace"),f=h.extglob===true||J.length&&(h.type==="pipe"||h.type==="paren");h.type!=="slash"&&h.type!=="paren"&&!M&&!f&&(a.output=a.output.slice(0,-c.output.length),c.type="star",c.value="*",c.output=b,a.output+=c.output);}if(J.length&&h.type!=="paren"&&(J[J.length-1].inner+=h.value),(h.value||h.output)&&Z(h),c&&c.type==="text"&&h.type==="text"){c.output=(c.output||c.value)+h.value,c.value+=h.value;return}h.prev=c,i.push(h),c=h;},gt=(h,M)=>{let f={...S[M],conditions:1,inner:""};f.prev=c,f.parens=a.parens,f.output=a.output,f.startIndex=a.index,f.tokensIndex=i.length;let w=(n.capture?"(":"")+f.open;dt("parens"),k({type:h,value:M,output:a.output?"":$}),k({type:"paren",extglob:true,value:F(),output:w}),J.push(f);},qe=h=>{let M=t.slice(h.startIndex,a.index+1),f=t.slice(h.startIndex+2,a.index),w=Cr(f,n);if((h.type==="plus"||h.type==="star")&&w.risky){let N=w.safeOutput?(h.output?"":$)+(n.capture?`(${w.safeOutput})`:w.safeOutput):void 0,z=i[h.tokensIndex];z.type="text",z.value=M,z.output=N||X.escapeRegex(M);for(let V=h.tokensIndex+1;V<i.length;V++)i[V].value="",i[V].output="",delete i[V].suffix;a.output=h.output+z.output,a.backtrack=true,k({type:"paren",extglob:true,value:u,output:""}),tt("parens");return}let B=h.close+(n.capture?")":""),U;if(h.type==="negate"){let N=b;if(h.inner&&h.inner.length>1&&h.inner.includes("/")&&(N=g(n)),(N!==b||K()||/^\)+$/.test(Q()))&&(B=h.close=`)$))${N}`),h.inner.includes("*")&&(U=Q())&&/^\.[^\\/.]+$/.test(U)){let z=Dt(U,{...e,fastpaths:false}).output;B=h.close=`)${z})${N})`;}h.prev.type==="bos"&&(a.negatedExtglob=true);}k({type:"paren",extglob:true,value:u,output:B}),tt("parens");};if(n.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(t)){let h=false,M=t.replace(Rr,(f,w,B,U,N,z)=>U==="\\"?(h=true,f):U==="?"?w?w+U+(N?p.repeat(N.length):""):z===0?m+(N?p.repeat(N.length):""):p.repeat(B.length):U==="."?A.repeat(B.length):U==="*"?w?w+U+(N?b:""):b:w?f:`\\${f}`);return h===true&&(n.unescape===true?M=M.replace(/\\/g,""):M=M.replace(/\\+/g,f=>f.length%2===0?"\\\\":f?"\\":"")),M===t&&n.contains===true?(a.output=t,a):(a.output=X.wrapOutput(M,a,e),a)}for(;!K();){if(u=F(),u==="\0")continue;if(u==="\\"){let f=T();if(f==="/"&&n.bash!==true||f==="."||f===";")continue;if(!f){u+="\\",k({type:"text",value:u});continue}let w=/^\\+/.exec(Q()),B=0;if(w&&w[0].length>2&&(B=w[0].length,a.index+=B,B%2!==0&&(u+="\\")),n.unescape===true?u=F():u+=F(),a.brackets===0){k({type:"text",value:u});continue}}if(a.brackets>0&&(u!=="]"||c.value==="["||c.value==="[^")){if(n.posix!==false&&u===":"){let f=c.value.slice(1);if(f.includes("[")&&(c.posix=true,f.includes(":"))){let w=c.value.lastIndexOf("["),B=c.value.slice(0,w),U=c.value.slice(w+2),N=xr[U];if(N){c.value=B+N,a.backtrack=true,F(),!o.output&&i.indexOf(c)===1&&(o.output=$);continue}}}(u==="["&&T()!==":"||u==="-"&&T()==="]")&&(u=`\\${u}`),u==="]"&&(c.value==="["||c.value==="[^")&&(u=`\\${u}`),n.posix===true&&u==="!"&&c.value==="["&&(u="^"),c.value+=u,Z({value:u});continue}if(a.quotes===1&&u!=='"'){u=X.escapeRegex(u),c.value+=u,Z({value:u});continue}if(u==='"'){a.quotes=a.quotes===1?0:1,n.keepQuotes===true&&k({type:"text",value:u});continue}if(u==="("){dt("parens"),k({type:"paren",value:u});continue}if(u===")"){if(a.parens===0&&n.strictBrackets===true)throw new SyntaxError(ot("opening","("));let f=J[J.length-1];if(f&&a.parens===f.parens+1){qe(J.pop());continue}k({type:"paren",value:u,output:a.parens?")":"\\)"}),tt("parens");continue}if(u==="["){if(n.nobracket===true||!Q().includes("]")){if(n.nobracket!==true&&n.strictBrackets===true)throw new SyntaxError(ot("closing","]"));u=`\\${u}`;}else dt("brackets");k({type:"bracket",value:u});continue}if(u==="]"){if(n.nobracket===true||c&&c.type==="bracket"&&c.value.length===1){k({type:"text",value:u,output:`\\${u}`});continue}if(a.brackets===0){if(n.strictBrackets===true)throw new SyntaxError(ot("opening","["));k({type:"text",value:u,output:`\\${u}`});continue}tt("brackets");let f=c.value.slice(1);if(c.posix!==true&&f[0]==="^"&&!f.includes("/")&&(u=`/${u}`),c.value+=u,Z({value:u}),n.literalBrackets===false||X.hasRegexChars(f))continue;let w=X.escapeRegex(c.value);if(a.output=a.output.slice(0,-c.value.length),n.literalBrackets===true){a.output+=w,c.value=w;continue}c.value=`(${l}${w}|${c.value})`,a.output+=c.value;continue}if(u==="{"&&n.nobrace!==true){dt("braces");let f={type:"brace",value:u,output:"(",outputIndex:a.output.length,tokensIndex:a.tokens.length};O.push(f),k(f);continue}if(u==="}"){let f=O[O.length-1];if(n.nobrace===true||!f){k({type:"text",value:u,output:u});continue}let w=")";if(f.dots===true){let B=i.slice(),U=[];for(let N=B.length-1;N>=0&&(i.pop(),B[N].type!=="brace");N--)B[N].type!=="dots"&&U.unshift(B[N].value);w=Sr(U,n),a.backtrack=true;}if(f.comma!==true&&f.dots!==true){let B=a.output.slice(0,f.outputIndex),U=a.tokens.slice(f.tokensIndex);f.value=f.output="\\{",u=w="\\}",a.output=B;for(let N of U)a.output+=N.output||N.value;}k({type:"brace",value:u,output:w}),tt("braces"),O.pop();continue}if(u==="|"){J.length>0&&J[J.length-1].conditions++,k({type:"text",value:u});continue}if(u===","){let f=u,w=O[O.length-1];w&&D[D.length-1]==="braces"&&(w.comma=true,f="|"),k({type:"comma",value:u,output:f});continue}if(u==="/"){if(c.type==="dot"&&a.index===a.start+1){a.start=a.index+1,a.consumed="",a.output="",i.pop(),c=o;continue}k({type:"slash",value:u,output:E});continue}if(u==="."){if(a.braces>0&&c.type==="dot"){c.value==="."&&(c.output=A);let f=O[O.length-1];c.type="dots",c.output+=u,c.value+=u,f.dots=true;continue}if(a.braces+a.parens===0&&c.type!=="bos"&&c.type!=="slash"){k({type:"text",value:u,output:A});continue}k({type:"dot",value:u,output:A});continue}if(u==="?"){if(!(c&&c.value==="(")&&n.noextglob!==true&&T()==="("&&T(2)!=="?"){gt("qmark",u);continue}if(c&&c.type==="paren"){let w=T(),B=u;(c.value==="("&&!/[!=<:]/.test(w)||w==="<"&&!/<([!=]|\w+>)/.test(Q()))&&(B=`\\${u}`),k({type:"text",value:u,output:B});continue}if(n.dot!==true&&(c.type==="slash"||c.type==="bos")){k({type:"qmark",value:u,output:R});continue}k({type:"qmark",value:u,output:p});continue}if(u==="!"){if(n.noextglob!==true&&T()==="("&&(T(2)!=="?"||!/[!=<:]/.test(T(3)))){gt("negate",u);continue}if(n.nonegate!==true&&a.index===0){Ke();continue}}if(u==="+"){if(n.noextglob!==true&&T()==="("&&T(2)!=="?"){gt("plus",u);continue}if(c&&c.value==="("||n.regex===false){k({type:"plus",value:u,output:x});continue}if(c&&(c.type==="bracket"||c.type==="paren"||c.type==="brace")||a.parens>0){k({type:"plus",value:u});continue}k({type:"plus",value:x});continue}if(u==="@"){if(n.noextglob!==true&&T()==="("&&T(2)!=="?"){k({type:"at",extglob:true,value:u,output:""});continue}k({type:"text",value:u});continue}if(u!=="*"){(u==="$"||u==="^")&&(u=`\\${u}`);let f=yr.exec(Q());f&&(u+=f[0],a.index+=f[0].length),k({type:"text",value:u});continue}if(c&&(c.type==="globstar"||c.star===true)){c.type="star",c.star=true,c.value+=u,c.output=b,a.backtrack=true,a.globstar=true,j(u);continue}let h=Q();if(n.noextglob!==true&&/^\([^?]/.test(h)){gt("star",u);continue}if(c.type==="star"){if(n.noglobstar===true){j(u);continue}let f=c.prev,w=f.prev,B=f.type==="slash"||f.type==="bos",U=w&&(w.type==="star"||w.type==="globstar");if(n.bash===true&&(!B||h[0]&&h[0]!=="/")){k({type:"star",value:u,output:""});continue}let N=a.braces>0&&(f.type==="comma"||f.type==="brace"),z=J.length&&(f.type==="pipe"||f.type==="paren");if(!B&&f.type!=="paren"&&!N&&!z){k({type:"star",value:u,output:""});continue}for(;h.slice(0,3)==="/**";){let V=t[a.index+4];if(V&&V!=="/")break;h=h.slice(3),j("/**",3);}if(f.type==="bos"&&K()){c.type="globstar",c.value+=u,c.output=g(n),a.output=c.output,a.globstar=true,j(u);continue}if(f.type==="slash"&&f.prev.type!=="bos"&&!U&&K()){a.output=a.output.slice(0,-(f.output+c.output).length),f.output=`(?:${f.output}`,c.type="globstar",c.output=g(n)+(n.strictSlashes?")":"|$)"),c.value+=u,a.globstar=true,a.output+=f.output+c.output,j(u);continue}if(f.type==="slash"&&f.prev.type!=="bos"&&h[0]==="/"){let V=h[1]!==void 0?"|$":"";a.output=a.output.slice(0,-(f.output+c.output).length),f.output=`(?:${f.output}`,c.type="globstar",c.output=`${g(n)}${E}|${E}${V})`,c.value+=u,a.output+=f.output+c.output,a.globstar=true,j(u+F()),k({type:"slash",value:"/",output:""});continue}if(f.type==="bos"&&h[0]==="/"){c.type="globstar",c.value+=u,c.output=`(?:^|${E}|${g(n)}${E})`,a.output=c.output,a.globstar=true,j(u+F()),k({type:"slash",value:"/",output:""});continue}a.output=a.output.slice(0,-c.output.length),c.type="globstar",c.output=g(n),c.value+=u,a.output+=c.output,a.globstar=true,j(u);continue}let M={type:"star",value:u,output:b};if(n.bash===true){M.output=".*?",(c.type==="bos"||c.type==="slash")&&(M.output=C+M.output),k(M);continue}if(c&&(c.type==="bracket"||c.type==="paren")&&n.regex===true){M.output=u,k(M);continue}(a.index===a.start||c.type==="slash"||c.type==="dot")&&(c.type==="dot"?(a.output+=P,c.output+=P):n.dot===true?(a.output+=y,c.output+=y):(a.output+=C,c.output+=C),T()!=="*"&&(a.output+=$,c.output+=$)),k(M);}for(;a.brackets>0;){if(n.strictBrackets===true)throw new SyntaxError(ot("closing","]"));a.output=X.escapeLast(a.output,"["),tt("brackets");}for(;a.parens>0;){if(n.strictBrackets===true)throw new SyntaxError(ot("closing",")"));a.output=X.escapeLast(a.output,"("),tt("parens");}for(;a.braces>0;){if(n.strictBrackets===true)throw new SyntaxError(ot("closing","}"));a.output=X.escapeLast(a.output,"{"),tt("braces");}if(n.strictSlashes!==true&&(c.type==="star"||c.type==="bracket")&&k({type:"maybe_slash",value:"",output:`${E}?`}),a.backtrack===true){a.output="";for(let h of a.tokens)a.output+=h.output!=null?h.output:h.value,h.suffix&&(a.output+=h.suffix);}return a};Dt.fastpaths=(t,e)=>{let n={...e},r=typeof n.maxLength=="number"?Math.min(St,n.maxLength):St,s=t.length;if(s>r)throw new SyntaxError(`Input length: ${s}, exceeds maximum allowed length: ${r}`);t=xe[t]||t;let{DOT_LITERAL:o,SLASH_LITERAL:i,ONE_CHAR:l,DOTS_SLASH:d,NO_DOT:S,NO_DOTS:A,NO_DOTS_SLASH:x,STAR:E,START_ANCHOR:$}=ft.globChars(n.windows),v=n.dot?A:S,I=n.dot?x:S,P=n.capture?"":"?:",y={negated:false,prefix:""},p=n.bash===true?".*?":E;n.capture&&(p=`(${p})`);let R=C=>C.noglobstar===true?p:`(${P}(?:(?!${$}${C.dot?d:o}).)*?)`,H=C=>{switch(C){case "*":return `${v}${l}${p}`;case ".*":return `${o}${l}${p}`;case "*.*":return `${v}${p}${o}${l}${p}`;case "*/*":return `${v}${p}${i}${l}${I}${p}`;case "**":return v+R(n);case "**/*":return `(?:${v}${R(n)}${i})?${I}${l}${p}`;case "**/*.*":return `(?:${v}${R(n)}${i})?${I}${p}${o}${l}${p}`;case "**/.*":return `(?:${v}${R(n)}${i})?${o}${l}${p}`;default:{let m=/^(.*?)\.(\w+)$/.exec(C);if(!m)return;let b=H(m[1]);return b?b+o+m[2]:void 0}}},_=X.removePrefix(t,y),g=H(_);return g&&n.strictSlashes!==true&&(g+=`${i}?`),g};Se.exports=Dt;});var ve=a(($s,Ee)=>{var $r=be(),Nt=Ae(),_e=lt(),kr=ct(),wr=t=>t&&typeof t=="object"&&!Array.isArray(t),G=(t,e,n=false)=>{if(Array.isArray(t)){let A=t.map(E=>G(E,e,n));return E=>{for(let $ of A){let v=$(E);if(v)return v}return false}}let r=wr(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!r)throw new TypeError("Expected pattern to be a non-empty string");let s=e||{},o=s.windows,i=r?G.compileRe(t,e):G.makeRe(t,e,false,true),l=i.state;delete i.state;let d=()=>false;if(s.ignore){let A={...e,ignore:null,onMatch:null,onResult:null};d=G(s.ignore,A,n);}let S=(A,x=false)=>{let{isMatch:E,match:$,output:v}=G.test(A,i,e,{glob:t,posix:o}),I={glob:t,state:l,regex:i,posix:o,input:A,output:v,match:$,isMatch:E};return typeof s.onResult=="function"&&s.onResult(I),E===false?(I.isMatch=false,x?I:false):d(A)?(typeof s.onIgnore=="function"&&s.onIgnore(I),I.isMatch=false,x?I:false):(typeof s.onMatch=="function"&&s.onMatch(I),x?I:true)};return n&&(S.state=l),S};G.test=(t,e,n,{glob:r,posix:s}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return {isMatch:false,output:""};let o=n||{},i=o.format||(s?_e.toPosixSlashes:null),l=t===r,d=l&&i?i(t):t;return l===false&&(d=i?i(t):t,l=d===r),(l===false||o.capture===true)&&(o.matchBase===true||o.basename===true?l=G.matchBase(t,e,n,s):l=e.exec(d)),{isMatch:!!l,match:l,output:d}};G.matchBase=(t,e,n)=>(e instanceof RegExp?e:G.makeRe(e,n)).test(_e.basename(t));G.isMatch=(t,e,n)=>G(e,n)(t);G.parse=(t,e)=>Array.isArray(t)?t.map(n=>G.parse(n,e)):Nt(t,{...e,fastpaths:false});G.scan=(t,e)=>$r(t,e);G.compileRe=(t,e,n=false,r=false)=>{if(n===true)return t.output;let s=e||{},o=s.contains?"":"^",i=s.contains?"":"$",l=`${o}(?:${t.output})${i}`;t&&t.negated===true&&(l=`^(?!${l}).*$`);let d=G.toRegex(l,e);return r===true&&(d.state=t),d};G.makeRe=(t,e={},n=false,r=false)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let s={negated:false,fastpaths:true};return e.fastpaths!==false&&(t[0]==="."||t[0]==="*")&&(s.output=Nt.fastpaths(t,e)),s.output||(s=Nt(t,e)),G.compileRe(s,e,n,r)};G.toRegex=(t,e)=>{try{let n=e||{};return new RegExp(t,n.flags||(n.nocase?"i":""))}catch(n){if(e&&e.debug===true)throw n;return /$^/}};G.constants=kr;Ee.exports=G;});var we=a((ks,ke)=>{var Ce=ve(),Ir=lt();function $e(t,e,n=false){return e&&(e.windows===null||e.windows===void 0)&&(e={...e,windows:Ir.isWindows()}),Ce(t,e,n)}Object.assign($e,Ce);ke.exports=$e;});var ut="/__pixi-vn-ink/hashtag-commands",bt="/__pixi-vn-ink/text-replaces";var Wt=b(l(),1),Ut=b(Xt(),1);var jt=createRequire(import.meta.url);function rn(t){let e=normalize(t);return e.length>1&&e[e.length-1]===sep&&(e=e.substring(0,e.length-1)),e}var sn=/[\\/]/g;function Qt(t,e){return t.replace(sn,e)}var on=/^[a-z]:[\\/]$/i;function an(t){return t==="/"||on.test(t)}function Ct(t,e){let{resolvePaths:n,normalizePath:r,pathSeparator:s}=e,o=process.platform==="win32"&&t.includes("/")||t.startsWith(".");if(n&&(t=resolve(t)),(r||o)&&(t=rn(t)),t===".")return "";let i=t[t.length-1]!==s;return Qt(i?t+s:t,s)}function Yt(t,e){return e+t}function un(t,e){return function(n,r){return r.startsWith(t)?r.slice(t.length)+n:Qt(relative(t,r),e.pathSeparator)+e.pathSeparator+n}}function cn(t){return t}function ln(t,e,n){return e+t+n}function pn(t,e){let{relativePaths:n,includeBasePath:r}=e;return n&&t?un(t,e):r?Yt:cn}function fn(t){return function(e,n){n.push(e.substring(t.length)||".");}}function hn(t){return function(e,n,r){let s=e.substring(t.length)||".";r.every(o=>o(s,true))&&n.push(s);}}var dn=(t,e)=>{e.push(t||".");},gn=(t,e,n)=>{let r=t||".";n.every(s=>s(r,true))&&e.push(r);},mn=()=>{};function bn(t,e){let{includeDirs:n,filters:r,relativePaths:s}=e;return n?s?r&&r.length?hn(t):fn(t):r&&r.length?gn:dn:mn}var xn=(t,e,n,r)=>{r.every(s=>s(t,false))&&n.files++;},yn=(t,e,n,r)=>{r.every(s=>s(t,false))&&e.push(t);},Rn=(t,e,n,r)=>{n.files++;},Sn=(t,e)=>{e.push(t);},An=()=>{};function _n(t){let{excludeFiles:e,filters:n,onlyCounts:r}=t;return e?An:n&&n.length?r?xn:yn:r?Rn:Sn}var En=t=>t,vn=()=>[""].slice(0,0);function Cn(t){return t.group?vn:En}var $n=(t,e,n)=>{t.push({directory:e,files:n,dir:e});},kn=()=>{};function wn(t){return t.group?$n:kn}var In=function(t,e,n){let{queue:r,fs:s,options:{suppressErrors:o}}=e;r.enqueue(),s.realpath(t,(i,l)=>{if(i)return r.dequeue(o?null:i,e);s.stat(l,(d,S)=>{if(d)return r.dequeue(o?null:d,e);if(S.isDirectory()&&Zt(t,l,e))return r.dequeue(null,e);n(S,l),r.dequeue(null,e);});});},On=function(t,e,n){let{queue:r,fs:s,options:{suppressErrors:o}}=e;r.enqueue();try{let i=s.realpathSync(t),l=s.statSync(i);if(l.isDirectory()&&Zt(t,i,e))return;n(l,i);}catch(i){if(!o)throw i}};function Ln(t,e){return !t.resolveSymlinks||t.excludeSymlinks?null:e?On:In}function Zt(t,e,n){if(n.options.useRealPaths)return Tn(e,n);let r=dirname(t),s=1;for(;r!==n.root&&s<2;){let o=n.symlinks.get(r);!!o&&(o===e||o.startsWith(e)||e.startsWith(o))?s++:r=dirname(r);}return n.symlinks.set(t,e),s>1}function Tn(t,e){return e.visited.includes(t+e.options.pathSeparator)}var Pn=t=>t.counts,Hn=t=>t.groups,Dn=t=>t.paths,Nn=t=>t.paths.slice(0,t.options.maxFiles),Bn=(t,e,n)=>(Rt(e,n,t.counts,t.options.suppressErrors),null),Mn=(t,e,n)=>(Rt(e,n,t.paths,t.options.suppressErrors),null),Fn=(t,e,n)=>(Rt(e,n,t.paths.slice(0,t.options.maxFiles),t.options.suppressErrors),null),Gn=(t,e,n)=>(Rt(e,n,t.groups,t.options.suppressErrors),null);function Rt(t,e,n,r){e(t&&!r?t:null,n);}function Wn(t,e){let{onlyCounts:n,group:r,maxFiles:s}=t;return n?e?Pn:Bn:r?e?Hn:Gn:s?e?Nn:Fn:e?Dn:Mn}var te={withFileTypes:true},Un=(t,e,n,r,s)=>{if(t.queue.enqueue(),r<0)return t.queue.dequeue(null,t);let{fs:o}=t;t.visited.push(e),t.counts.directories++,o.readdir(e||".",te,(i,l=[])=>{s(l,n,r),t.queue.dequeue(t.options.suppressErrors?null:i,t);});},Jn=(t,e,n,r,s)=>{let{fs:o}=t;if(r<0)return;t.visited.push(e),t.counts.directories++;let i=[];try{i=o.readdirSync(e||".",te);}catch(l){if(!t.options.suppressErrors)throw l}s(i,n,r);};function Kn(t){return t?Jn:Un}var qn=class{constructor(t){c(this,"count",0);this.onQueueEmpty=t;}enqueue(){return this.count++,this.count}dequeue(t,e){this.onQueueEmpty&&(--this.count<=0||t)&&(this.onQueueEmpty(t,e),t&&(e.controller.abort(),this.onQueueEmpty=void 0));}},Xn=class{constructor(){c(this,"_files",0);c(this,"_directories",0);}set files(t){this._files=t;}get files(){return this._files}set directories(t){this._directories=t;}get directories(){return this._directories}get dirs(){return this._directories}},jn=class{constructor(){c(this,"aborted",false);}abort(){this.aborted=true;}},ee=class{constructor(t,e,n){c(this,"root");c(this,"isSynchronous");c(this,"state");c(this,"joinPath");c(this,"pushDirectory");c(this,"pushFile");c(this,"getArray");c(this,"groupFiles");c(this,"resolveSymlink");c(this,"walkDirectory");c(this,"callbackInvoker");c(this,"walk",(t,e,n)=>{let{paths:r,options:{filters:s,resolveSymlinks:o,excludeSymlinks:i,exclude:l,maxFiles:d,signal:S,useRealPaths:A,pathSeparator:x},controller:E}=this.state;if(E.aborted||S&&S.aborted||d&&r.length>d)return;let $=this.getArray(this.state.paths);for(let v=0;v<t.length;++v){let I=t[v];if(I.isFile()||I.isSymbolicLink()&&!o&&!i){let P=this.joinPath(I.name,e);this.pushFile(P,$,this.state.counts,s);}else if(I.isDirectory()){let P=ln(I.name,e,this.state.options.pathSeparator);if(l&&l(I.name,P))continue;this.pushDirectory(P,r,s),this.walkDirectory(this.state,P,P,n-1,this.walk);}else if(this.resolveSymlink&&I.isSymbolicLink()){let P=Yt(I.name,e);this.resolveSymlink(P,this.state,(y,p)=>{if(y.isDirectory()){if(p=Ct(p,this.state.options),l&&l(I.name,A?p:P+x))return;this.walkDirectory(this.state,p,A?p:P+x,n-1,this.walk);}else {p=A?p:P;let R=basename(p),H=Ct(dirname(p),this.state.options);p=this.joinPath(R,H),this.pushFile(p,$,this.state.counts,s);}});}}this.groupFiles(this.state.groups,e,$);});this.isSynchronous=!n,this.callbackInvoker=Wn(e,this.isSynchronous),this.root=Ct(t,e),this.state={root:an(this.root)?this.root:this.root.slice(0,-1),paths:[""].slice(0,0),groups:[],counts:new Xn,options:e,queue:new qn((r,s)=>this.callbackInvoker(s,r,n)),symlinks:new Map,visited:[""].slice(0,0),controller:new jn,fs:e.fs||nn},this.joinPath=pn(this.root,e),this.pushDirectory=bn(this.root,e),this.pushFile=_n(e),this.getArray=Cn(e),this.groupFiles=wn(e),this.resolveSymlink=Ln(e,this.isSynchronous),this.walkDirectory=Kn(this.isSynchronous);}start(){return this.pushDirectory(this.root,this.state.paths,this.state.options.filters),this.walkDirectory(this.state,this.root,this.root,this.state.options.maxDepth,this.walk),this.isSynchronous?this.callbackInvoker(this.state,null):null}};function zn(t,e){return new Promise((n,r)=>{ne(t,e,(s,o)=>{if(s)return r(s);n(o);});})}function ne(t,e,n){new ee(t,e,n).start();}function Vn(t,e){return new ee(t,e).start()}var zt=class{constructor(t,e){this.root=t,this.options=e;}withPromise(){return zn(this.root,this.options)}withCallback(t){ne(this.root,this.options,t);}sync(){return Vn(this.root,this.options)}},re=null;try{jt.resolve("picomatch"),re=jt("picomatch");}catch{}var se=class{constructor(t){c(this,"globCache",{});c(this,"options",{maxDepth:1/0,suppressErrors:true,pathSeparator:sep,filters:[]});c(this,"globFunction");this.options={...this.options,...t},this.globFunction=this.options.globFunction;}group(){return this.options.group=true,this}withPathSeparator(t){return this.options.pathSeparator=t,this}withBasePath(){return this.options.includeBasePath=true,this}withRelativePaths(){return this.options.relativePaths=true,this}withDirs(){return this.options.includeDirs=true,this}withMaxDepth(t){return this.options.maxDepth=t,this}withMaxFiles(t){return this.options.maxFiles=t,this}withFullPaths(){return this.options.resolvePaths=true,this.options.includeBasePath=true,this}withErrors(){return this.options.suppressErrors=false,this}withSymlinks({resolvePaths:t=true}={}){return this.options.resolveSymlinks=true,this.options.useRealPaths=t,this.withFullPaths()}withAbortSignal(t){return this.options.signal=t,this}normalize(){return this.options.normalizePath=true,this}filter(t){return this.options.filters.push(t),this}onlyDirs(){return this.options.excludeFiles=true,this.options.includeDirs=true,this}exclude(t){return this.options.exclude=t,this}onlyCounts(){return this.options.onlyCounts=true,this}crawl(t){return new zt(t||".",this.options)}withGlobFunction(t){return this.globFunction=t,this}crawlWithOptions(t,e){return this.options={...this.options,...e},new zt(t||".",this.options)}glob(...t){return this.globFunction?this.globWithOptions(t):this.globWithOptions(t,{dot:true})}globWithOptions(t,...e){let n=this.globFunction||re;if(!n)throw new Error("Please specify a glob function to use glob matching.");var r=this.globCache[t.join("\0")];return r||(r=n(t,...e),this.globCache[t.join("\0")]=r),this.options.filters.push(s=>r(s)),this}};var it=b(we(),1),Fr=Array.isArray,Oe=/\\/g,Le=process.platform==="win32",Gr=/^(\/?\.\.)+$/;function Wr(t,e={}){let n=t.length,r=Array(n),s=Array(n),o,i;for(o=0;o<n;o++){let l=Te(t[o]);r[o]=l;let d=l.length,S=Array(d);for(i=0;i<d;i++)S[i]=(0, it.default)(l[i],e);s[o]=S;}return l=>{let d=l.split("/");if(d[0]===".."&&Gr.test(l))return true;for(o=0;o<n;o++){let S=r[o],A=s[o],x=d.length,E=Math.min(x,S.length);for(i=0;i<E;){let $=S[i];if($.includes("/"))return true;if(!A[i](d[i]))break;if(!e.noglobstar&&$==="**")return true;i++;}if(i===x)return true}return false}}var Ur=/^[A-Z]:\/$/i,Jr=Le?t=>Ur.test(t):t=>t==="/";function Ie(t,e,n){if(t===e||e.startsWith(`${t}/`)){if(n){let s=t.length+ +!Jr(t);return (o,i)=>o.slice(s,i?-1:void 0)||"."}let r=e.slice(t.length+1);return r?(s,o)=>{if(s===".")return r;let i=`${r}/${s}`;return o?i.slice(0,-1):i}:(s,o)=>o&&s!=="."?s.slice(0,-1):s}return n?r=>posix.relative(t,r)||".":r=>posix.relative(t,`${e}/${r}`)||"."}function Kr(t,e){if(e.startsWith(`${t}/`)){let n=e.slice(t.length+1);return r=>`${n}/${r}`}return n=>{let r=posix.relative(t,`${e}/${n}`);return n[n.length-1]==="/"&&r!==""?`${r}/`:r||"."}}var qr={parts:true};function Te(t){var e;let n=it.default.scan(t,qr);return !((e=n.parts)===null||e===void 0)&&e.length?n.parts:[t]}var Xr=/(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g,jr=/(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g,zr=t=>t.replace(Xr,"\\$&"),Vr=t=>t.replace(jr,"\\$&"),Qr=Le?Vr:zr;function Yr(t,e){let n=it.default.scan(t);return n.isGlob||n.negated}function ht(...t){console.log(`[tinyglobby ${new Date().toLocaleTimeString("es")}]`,...t);}function Pe(t){return typeof t=="string"?[t]:t??[]}var Zr=/^(\/?\.\.)+/,ts=/\\(?=[()[\]{}!*+?@|])/g;function Bt(t,e,n,r){var s;let o=e.cwd,i=t;t[t.length-1]==="/"&&(i=t.slice(0,-1)),i[i.length-1]!=="*"&&e.expandDirectories&&(i+="/**");let l=Qr(o);i=isAbsolute(i.replace(ts,""))?posix.relative(l,i):posix.normalize(i);let d=(s=Zr.exec(i))===null||s===void 0?void 0:s[0],S=Te(i);if(d){let x=(d.length+1)/3,E=0,$=l.split("/");for(;E<x&&S[E+x]===$[$.length+E-x];)i=i.slice(0,(x-E-1)*3)+i.slice((x-E)*3+S[E+x].length+1)||".",E++;let v=posix.join(o,d.slice(E*3));v[0]!=="."&&n.root.length>v.length&&(n.root=v,n.depthOffset=-x+E);}if(!r&&n.depthOffset>=0){var A;(A=n.commonPath)!==null&&A!==void 0||(n.commonPath=S);let x=[],E=Math.min(n.commonPath.length,S.length);for(let $=0;$<E;$++){let v=S[$];if(v==="**"&&!S[$+1]){x.pop();break}if($===S.length-1||v!==n.commonPath[$]||Yr(v))break;x.push(v);}n.depthOffset=x.length,n.commonPath=x,n.root=x.length>0?posix.join(o,...x):o;}return i}function es(t,e,n){let r=[],s=[];for(let o of t.ignore)o&&(o[0]!=="!"||o[1]==="(")&&s.push(Bt(o,t,n,true));for(let o of e)o&&(o[0]!=="!"||o[1]==="("?r.push(Bt(o,t,n,false)):(o[1]!=="!"||o[2]==="(")&&s.push(Bt(o.slice(1),t,n,true)));return {match:r,ignore:s}}function ns(t,e){let n=t.cwd,r={root:n,depthOffset:0},s=es(t,e,r);t.debug&&ht("internal processing patterns:",s);let{absolute:o,caseSensitiveMatch:i,debug:l,dot:d,followSymbolicLinks:S,onlyDirectories:A}=t,x=r.root.replace(Oe,""),E={dot:d,nobrace:t.braceExpansion===false,nocase:!i,noextglob:t.extglob===false,noglobstar:t.globstar===false,posix:true},$=(0, it.default)(s.match,E),v=(0, it.default)(s.ignore,E),I=Wr(s.match,E),P=Ie(n,x,o),y=o?P:Ie(n,x,true),p=(_,g)=>{let C=y(g,true);return C!=="."&&!I(C)||v(C)},R;t.deep!==void 0&&(R=Math.round(t.deep-r.depthOffset));let H=new se({filters:[l?(_,g)=>{let C=P(_,g),m=$(C)&&!v(C);return m&&ht(`matched ${C}`),m}:(_,g)=>{let C=P(_,g);return $(C)&&!v(C)}],exclude:l?(_,g)=>{let C=p(_,g);return ht(`${C?"skipped":"crawling"} ${g}`),C}:p,fs:t.fs,pathSeparator:"/",relativePaths:!o,resolvePaths:o,includeBasePath:o,resolveSymlinks:S,excludeSymlinks:!S,excludeFiles:A,includeDirs:A||!t.onlyFiles,maxDepth:R,signal:t.signal}).crawl(x);return t.debug&&ht("internal properties:",{...r,root:x}),[H,n!==x&&!o&&Kr(n,x)]}function rs(t,e){if(e)for(let n=t.length-1;n>=0;n--)t[n]=e(t[n]);return t}var ss={caseSensitiveMatch:true,cwd:process.cwd(),debug:!!process.env.TINYGLOBBY_DEBUG,expandDirectories:true,followSymbolicLinks:true,onlyFiles:true};function os(t){let e={...ss,...t};return e.cwd=(e.cwd instanceof URL?fileURLToPath(e.cwd):resolve(e.cwd)).replace(Oe,"/"),e.ignore=Pe(e.ignore),e.fs&&(e.fs={readdir:e.fs.readdir||readdir,readdirSync:e.fs.readdirSync||readdirSync,realpath:e.fs.realpath||realpath,realpathSync:e.fs.realpathSync||realpathSync,stat:e.fs.stat||stat,statSync:e.fs.statSync||statSync}),e.debug&&ht("globbing with options:",e),e}function is(t,e={}){var n;if(t&&e?.patterns)throw new Error("Cannot pass patterns as both an argument and an option");let r=Fr(t)||typeof t=="string",s=Pe((n=r?t:t.patterns)!==null&&n!==void 0?n:"**/*"),o=os(r?e:t);return s.length>0?ns(o,s):[]}async function Mt(t,e){let[n,r]=is(t,e);return n?rs(await n.withPromise(),r):[]}var st=Ut.default.cyan("(pixi-vn-ink)"),We="virtual:pixi-vn-ink",Ft=`\0${We}`,us="manifest.json",Ue=/\[(name|ext|extname|file|path|dir)\]/g;function He(t){if(typeof t=="string")return {type:"literal",value:t};if(t instanceof RegExp)return {type:"regexp",source:t.source,flags:t.flags};try{return {type:"zod",schema:toJSONSchema(t)}}catch{return {type:"literal",value:""}}}function et(t){return t.replaceAll("\\","/")}function Gt(t){let e=et(t.trim());if(!e)throw new Error("vitePluginInk option `inkGlob` must not be empty.");let n=e.replace(/^\.?\//,"");if(!n||n.startsWith("../"))throw new Error("vitePluginInk option `inkGlob` must be rooted in Vite `root` and cannot escape it.");return n}function De(t,e){let n=et(e).split("/"),r=[];for(let s of n)if(!(s==="."||s==="")){if(/[*!?[\]{}()]/.test(s))break;r.push(s);}return L.resolve(t,...r)}function Ne(t,e){if(!e)return;let n=e.trim();if(!n)throw new Error("vitePluginInk option `inkJsonOutputPattern` must not be empty.");return L.isAbsolute(n)?L.normalize(n):L.resolve(t,n)}function Be(t,e,n){if(!n)return L.join(e,us);let r=n.trim();if(!r)throw new Error("vitePluginInk option `inkJsonManifestPath` must not be empty.");return L.isAbsolute(r)?L.normalize(r):L.resolve(t,r)}function Me(t){let e=t.search(Ue);if(e===-1)return L.dirname(t);let n=t.slice(0,e).replace(/[\\/]+$/g,"");if(!n)throw new Error("vitePluginInk option `inkJsonOutputPattern` must start with a static directory before placeholders.");return L.normalize(n)}function at(t,e){let n=L.relative(t,e);return !n.startsWith("..")&&!L.isAbsolute(n)}function cs(t,e,n,r){let s=et(L.relative(n,r)),o=L.posix.parse(s),i=et(L.relative(e,r)),l=L.posix.dirname(i),d=L.posix.dirname(s),S={name:o.name,ext:o.ext.startsWith(".")?o.ext.slice(1):o.ext,extname:o.ext,file:s,path:d==="."?"":`${d}/`,dir:l==="."?"":`${l}/`},A=et(t).replace(Ue,(x,E)=>S[E]??"");return L.normalize(A)}function ls(t,e,n){return at(n,t)?`/${et(L.relative(n,t))}`:at(e,t)?et(L.relative(e,t)):et(t)}function Fe(t,e,n){let r=m.getUnknownHashtagCommands(t,e);r.forEach(({command:s,line:o})=>{n(`Unknown hashtag command "# ${s}": no registered handler matched this command.`,o);}),r.length>0&&n(`Hashtag command metadata is available via ${ut}.`);}function Ge(t){return new Promise((e,n)=>{let r="";t.on("data",s=>{r+=s.toString();}),t.on("end",()=>e(r)),t.on("error",n);})}function Je(t){let{inkGlob:e,inkJsonOutputPattern:n$1,inkJsonManifestPath:r}=t??{},s=!!n$1,o,i=[],l=[],d,S,A,x,E,$=async()=>{let y,p;if(x)try{let R=await x.ssrLoadModule("@drincs/pixi-vn-ink");y=R.HashtagCommands.info(),p=R.TextReplaces.info();}catch{y=j.info(),p=g.info();}else y=j.info(),p=g.info();i=y.map(({name:R,description:H,validation:_})=>({name:R,description:H,validation:He(_)})),l=p.map(({name:R,description:H,validation:_,type:g})=>({name:R,description:H,validation:He(_),type:g}));},v=y=>{if(!s||!S)return false;let p=L.resolve(y);return A&&p===A?true:at(S,p)},I=()=>{E!==void 0&&clearTimeout(E),E=setTimeout(()=>{E=void 0,P().then(()=>{let y=x?.moduleGraph.getModuleById(Ft);y&&x?.moduleGraph.invalidateModule(y),x?.ws.send({type:"custom",event:"ink-updated",data:{inkJson:s?d??[]:void 0}});}).catch(y=>{let p=y instanceof Error?y:new Error(String(y));o?.logger.error(`${st} Failed to re-export Ink JSON files after characters update.`,{error:p,timestamp:true});});},150);},P=async()=>{if(!o||!e){d=void 0;return}let y=Ne(o.root,n$1);if(!y){d=void 0,S=void 0,A=void 0;return}let p=Gt(e),R=Me(y);S=L.resolve(R);let H=De(o.root,p);if(!at(o.root,H))throw new Error("vitePluginInk option `inkGlob` must be rooted in Vite `root` and cannot escape it.");let _=await Mt(p,{absolute:true,cwd:o.root,onlyFiles:true}),g=[],C=[],m=new Set;await Y.mkdir(R,{recursive:true});for(let O of _){let D=await Y.readFile(O,"utf-8"),c;try{c=n(D);}catch(K){let T=K instanceof Error?K:new Error(String(K));o.logger.error(`${st} Failed to convert "${O}" to JSON.`,{error:T,timestamp:true});continue}let u=cs(y,o.root,H,O);if(!at(R,u)){o.logger.error(`${st} Output path "${u}" escapes managed directory "${R}".`,{timestamp:true});continue}if(m.add(u),!c){await Y.rm(u,{force:true});continue}C.push(c),await Y.mkdir(L.dirname(u),{recursive:true}),await Y.writeFile(u,`${JSON.stringify(c,null,2)} `,"utf-8"),g.push(ls(u,o.root,o.publicDir));}let b=Be(o.root,R,r);A=L.resolve(b);let a=await Mt("**/*.json",{absolute:true,cwd:R,onlyFiles:true});for(let O of a)L.resolve(O)!==L.resolve(b)&&!m.has(O)&&await Y.rm(O,{force:true});g.sort((O,D)=>O.localeCompare(D)),d=C;let J=C.reduce((O,D)=>O+Object.keys(D.labels??{}).length,0);o.logger.info(`${st} ${Ut.default.dim(`${_.length} file(s) exported: ${J} label(s), ${i.length} hashtag-command(s), ${l.length} text-replace(s)`)}`,{timestamp:true}),await Y.mkdir(L.dirname(b),{recursive:true}),await Y.writeFile(b,`${JSON.stringify(g,null,2)} `,"utf-8");};return {name:"vite-plugin-ink",enforce:"pre",configResolved(y){o=y,S=void 0,A=void 0;let p=e?Gt(e):void 0;if(p){let R=De(y.root,p);if(!at(y.root,R))throw new Error("vitePluginInk option `inkGlob` must be rooted in Vite `root` and cannot escape it.")}if(n$1&&!e)throw new Error("vitePluginInk option `inkJsonOutputPattern` requires `inkGlob` to be set.");if(n$1){let R=Ne(y.root,n$1);if(!R)return;let H=Me(R);if(S=L.resolve(H),A=L.resolve(Be(y.root,H,r)),L.resolve(H)===L.resolve(y.root))throw new Error("vitePluginInk option `inkJsonOutputPattern` must target a directory different from Vite `root`.")}},async buildStart(){let p=o?.plugins.find(R=>R.name==="vite-plugin-pixi-vn")?.api?.contentLoaded;p&&await p,await $(),await P();},configureServer(y){x=y,y.middlewares.use(async(_,g,C)=>{let m=_.url,b=_.method;if(m===ut){if(b==="GET"){g.setHeader("Content-Type","application/json"),g.end(JSON.stringify(i));return}if(b==="POST"){try{let a=await Ge(_);i=JSON.parse(a),g.statusCode=204,g.end();}catch(a){o?.logger.warn(`${st} Invalid JSON body for POST ${ut}: ${String(a)}`,{timestamp:true}),g.statusCode=400,g.end();}return}}if(m===bt){if(b==="GET"){g.setHeader("Content-Type","application/json"),g.end(JSON.stringify(l));return}if(b==="POST"){try{let a=await Ge(_);l=JSON.parse(a),g.statusCode=204,g.end();}catch(a){o?.logger.warn(`${st} Invalid JSON body for POST ${bt}: ${String(a)}`,{timestamp:true}),g.statusCode=400,g.end();}return}}C();});let p=y.config.plugins.find(_=>_.name==="vite-plugin-pixi-vn");(p?.api?.contentLoaded??Promise.resolve()).then(async()=>(await $(),P())).catch(_=>{let g=_ instanceof Error?_:new Error(String(_));o?.logger.error(`${st} Failed to export Ink JSON files during server initialization or restart.`,{error:g,timestamp:true});});let H=p?.api?.onReload;H&&H(()=>{$().then(()=>I());});},resolveId(y){if(y===We)return Ft},load(y){if(y===Ft){if(!e)return ["export const inkJsons = undefined;","export default [];"].join(` `);let p=Gt(e);return [`const modules = import.meta.glob(${JSON.stringify(`/${p}`)}, { eager: true, import: 'default' });`,`export const inkJsons = ${JSON.stringify(s?d??[]:void 0)};`,"export default Object.values(modules);"].join(` `)}},hotUpdate:{order:"post",async handler({type:y,file:p,server:R,read:H}){if(p.endsWith(".ink")){if(y!=="delete"){let _=await H(),{issues:g}=m.compile(_),C;g.forEach(({line:m,message:b,type:a})=>{a===Wt.ErrorType.Warning?R.config.logger.warn(`${p}:${m} ${b}`,{timestamp:true}):(R.config.logger.error(`${p}:${m} ${b}`,{timestamp:true}),C=b);}),Fe(_,i,(m,b)=>R.config.logger.warn(`${b!==void 0?`${p}:${b}`:p}: ${m}`,{timestamp:true})),await P(),C?R.ws.send({type:"error",err:{message:C,stack:p,plugin:"vite-plugin-ink"}}):(R.ws.send({type:"custom",event:"ink-error-cleared",data:{}}),R.ws.send({type:"custom",event:"ink-updated",data:{inkText:_,inkJson:s?d??[]:void 0}}));}else await P(),R.ws.send({type:"custom",event:"ink-updated",data:{inkJson:s?d??[]:void 0}});return []}if(p.endsWith(".json")&&v(p))return R.ws.send({type:"custom",event:"ink-updated",data:{inkJson:d??[]}}),[]}},async transform(y,p){if(!p.endsWith(".ink"))return null;let R=await Y.readFile(p,"utf-8"),{issues:H}=m.compile(R);return H.forEach(({line:_,message:g,type:C})=>{C===Wt.ErrorType.Warning?this.warn(`${p}:${_} ${g}`):this.error(`${p}:${_} ${g}`);}),Fe(R,i,(_,g)=>this.warn({message:_,loc:g!==void 0?{line:g,column:0}:void 0})),{code:`export default ${JSON.stringify(R)};`,map:null}}}}export{ut as INK_DEV_API_HASHTAG_COMMANDS,bt as INK_DEV_API_TEXT_REPLACES,Je as noHmrInkPlugin,Je as vitePluginInk};