@supabase/lite 0.2.0 → 0.2.1-next.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/dist/cli/lib.js CHANGED
@@ -1,4 +1,4 @@
1
- import*as v from'node:path';import v__default,{resolve,join,relative,sep as sep$1}from'node:path';import In,{type}from'node:os';import Ne,{stat as stat$1,unwatchFile,watchFile,watch}from'node:fs';import {createClient}from'@supabase/supabase-js';import {ensureVar,App,splitSqlStatements}from'@supabase/lite';import {cloud,createConnection}from'@supabase/lite/sqlite';import*as G from'node:fs/promises';import G__default,{stat,realpath,lstat,readdir,open}from'node:fs/promises';import {createHash}from'node:crypto';import {parse}from'dotenv';import'node:url';import*as Dt from'fs';import Dt__default from'fs';import cr,{posix,sep,basename,dirname,resolve as resolve$1,normalize,relative as relative$1}from'path';import {fileURLToPath}from'url';import {createRequire}from'module';import {EventEmitter}from'node:events';import {Readable}from'node:stream';try {
1
+ import'pgsql-deparser';import*as P from'node:path';import P__default,{resolve,join,relative,sep as sep$1}from'node:path';import fs,{type}from'node:os';import ye,{stat as stat$1,unwatchFile,watchFile,watch}from'node:fs';import {createClient}from'@supabase/supabase-js';import {ensureVar,App,splitSqlStatements}from'@supabase/lite';import {cloud,createConnection}from'@supabase/lite/sqlite';import*as B from'node:fs/promises';import B__default,{stat,realpath,lstat,readdir,open}from'node:fs/promises';import {createHash}from'node:crypto';import {parse}from'dotenv';import'node:url';import*as vt from'fs';import vt__default from'fs';import ni,{posix,sep,basename,dirname,resolve as resolve$1,normalize,relative as relative$1}from'path';import {fileURLToPath}from'url';import {createRequire}from'module';import {EventEmitter}from'node:events';import {Readable}from'node:stream';try {
2
2
  /**
3
3
  * Adding this to avoid warnings from node:sqlite being experimental
4
4
  */
@@ -9,70 +9,41 @@ import*as v from'node:path';import v__default,{resolve,join,relative,sep as sep$
9
9
  };
10
10
  } catch {}
11
11
 
12
- var bn=Object.create;var os=Object.defineProperty;var On=Object.getOwnPropertyDescriptor;var _n=Object.getOwnPropertyNames;var wn=Object.getPrototypeOf,dn=Object.prototype.hasOwnProperty;var P=(a,t)=>()=>(a&&(t=a(a=0)),t);var Ct=(a,t)=>()=>(t||a((t={exports:{}}).exports,t),t.exports),yn=(a,t)=>{for(var s in t)os(a,s,{get:t[s],enumerable:true});},Ln=(a,t,s,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of _n(t))!dn.call(a,i)&&i!==s&&os(a,i,{get:()=>t[i],enumerable:!(e=On(t,i))||e.enumerable});return a};var Ut=(a,t,s)=>(s=a!=null?bn(wn(a)):{},Ln(os(s,"default",{value:a,enumerable:true}),a));var Mt=Ct((Dp,ls)=>{var de=process||{},Ei=de.argv||[],we=de.env||{},$n=!(we.NO_COLOR||Ei.includes("--no-color"))&&(!!we.FORCE_COLOR||Ei.includes("--color")||de.platform==="win32"||(de.stdout||{}).isTTY&&we.TERM!=="dumb"||!!we.CI),jn=(a,t,s=a)=>e=>{let i=""+e,r=i.indexOf(t,a.length);return ~r?a+kn(i,t,s,r)+t:a+i+t},kn=(a,t,s,e)=>{let i="",r=0;do i+=a.substring(r,e)+s,r=e+t.length,e=a.indexOf(t,r);while(~e);return i+a.substring(r)},gi=(a=$n)=>{let t=a?jn:()=>String;return {isColorSupported:a,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};ls.exports=gi();ls.exports.createColors=gi;});var Jt=Ct(($f,Wi)=>{var xi="[^\\\\/]",go="(?=.)",qi="[^/]",Os="(?:\\/|$)",Vi="(?:^|\\/)",_s=`\\.{1,2}${Os}`,To="(?!\\.)",So=`(?!${Vi}${_s})`,Ao=`(?!\\.{0,1}${Os})`,Co=`(?!${_s})`,Ro="[^.\\/]",No=`${qi}*?`,bo="/",Gi={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:go,QMARK:qi,END_ANCHOR:Os,DOTS_SLASH:_s,NO_DOT:To,NO_DOTS:So,NO_DOT_SLASH:Ao,NO_DOTS_SLASH:Co,QMARK_NO_DOT:Ro,STAR:No,START_ANCHOR:Vi,SEP:bo},Oo={...Gi,SLASH_LITERAL:"[\\\\/]",QMARK:xi,STAR:`${xi}*?`,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:"\\"},_o={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"};Wi.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:_o,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(a){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${a.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(a){return a===true?Oo:Gi}};});var Yt=Ct(tt=>{var{REGEX_BACKSLASH:wo,REGEX_REMOVE_BACKSLASH:yo,REGEX_SPECIAL_CHARS:Lo,REGEX_SPECIAL_CHARS_GLOBAL:Io}=Jt();tt.isObject=a=>a!==null&&typeof a=="object"&&!Array.isArray(a);tt.hasRegexChars=a=>Lo.test(a);tt.isRegexChar=a=>a.length===1&&tt.hasRegexChars(a);tt.escapeRegex=a=>a.replace(Io,"\\$1");tt.toPosixSlashes=a=>a.replace(wo,"/");tt.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let a=navigator.platform.toLowerCase();return a==="win32"||a==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};tt.removeBackslashes=a=>a.replace(yo,t=>t==="\\"?"":t);tt.escapeLast=(a,t,s)=>{let e=a.lastIndexOf(t,s);return e===-1?a:a[e-1]==="\\"?tt.escapeLast(a,t,e-1):`${a.slice(0,e)}\\${a.slice(e)}`};tt.removePrefix=(a,t={})=>{let s=a;return s.startsWith("./")&&(s=s.slice(2),t.prefix="./"),s};tt.wrapOutput=(a,t={},s={})=>{let e=s.contains?"":"^",i=s.contains?"":"$",r=`${e}(?:${a})${i}`;return t.negated===true&&(r=`(?:^(?!${r}).*$)`),r};tt.basename=(a,{windows:t}={})=>{let s=a.split(t?/[\\/]/:"/"),e=s[s.length-1];return e===""?s[s.length-2]:e};});var Zi=Ct((kf,Qi)=>{var Hi=Yt(),{CHAR_ASTERISK:ws,CHAR_AT:vo,CHAR_BACKWARD_SLASH:Xt,CHAR_COMMA:Do,CHAR_DOT:ds,CHAR_EXCLAMATION_MARK:ys,CHAR_FORWARD_SLASH:zi,CHAR_LEFT_CURLY_BRACE:Ls,CHAR_LEFT_PARENTHESES:Is,CHAR_LEFT_SQUARE_BRACKET:Po,CHAR_PLUS:$o,CHAR_QUESTION_MARK:Ji,CHAR_RIGHT_CURLY_BRACE:jo,CHAR_RIGHT_PARENTHESES:Yi,CHAR_RIGHT_SQUARE_BRACKET:ko}=Jt(),Xi=a=>a===zi||a===Xt,Ki=a=>{a.isPrefix!==true&&(a.depth=a.isGlobstar?1/0:1);},Fo=(a,t)=>{let s=t||{},e=a.length-1,i=s.parts===true||s.scanToEnd===true,r=[],n=[],o=[],u=a,l=-1,p=0,f=0,h=false,E=false,g=false,R=false,b=false,d=false,O=false,J=false,et=false,Y=false,W=0,z,w,L={value:"",depth:0,isGlob:false},A=()=>l>=e,K=()=>u.charCodeAt(l+1),_=()=>(z=w,u.charCodeAt(++l));for(;l<e;){w=_();let k;if(w===Xt){O=L.backslashes=true,w=_(),w===Ls&&(d=true);continue}if(d===true||w===Ls){for(W++;A()!==true&&(w=_());){if(w===Xt){O=L.backslashes=true,_();continue}if(w===Ls){W++;continue}if(d!==true&&w===ds&&(w=_())===ds){if(h=L.isBrace=true,g=L.isGlob=true,Y=true,i===true)continue;break}if(d!==true&&w===Do){if(h=L.isBrace=true,g=L.isGlob=true,Y=true,i===true)continue;break}if(w===jo&&(W--,W===0)){d=false,h=L.isBrace=true,Y=true;break}}if(i===true)continue;break}if(w===zi){if(r.push(l),n.push(L),L={value:"",depth:0,isGlob:false},Y===true)continue;if(z===ds&&l===p+1){p+=2;continue}f=l+1;continue}if(s.noext!==true&&(w===$o||w===vo||w===ws||w===Ji||w===ys)===true&&K()===Is){if(g=L.isGlob=true,R=L.isExtglob=true,Y=true,w===ys&&l===p&&(et=true),i===true){for(;A()!==true&&(w=_());){if(w===Xt){O=L.backslashes=true,w=_();continue}if(w===Yi){g=L.isGlob=true,Y=true;break}}continue}break}if(w===ws){if(z===ws&&(b=L.isGlobstar=true),g=L.isGlob=true,Y=true,i===true)continue;break}if(w===Ji){if(g=L.isGlob=true,Y=true,i===true)continue;break}if(w===Po){for(;A()!==true&&(k=_());){if(k===Xt){O=L.backslashes=true,_();continue}if(k===ko){E=L.isBracket=true,g=L.isGlob=true,Y=true;break}}if(i===true)continue;break}if(s.nonegate!==true&&w===ys&&l===p){J=L.negated=true,p++;continue}if(s.noparen!==true&&w===Is){if(g=L.isGlob=true,i===true){for(;A()!==true&&(w=_());){if(w===Is){O=L.backslashes=true,w=_();continue}if(w===Yi){Y=true;break}}continue}break}if(g===true){if(Y=true,i===true)continue;break}}s.noext===true&&(R=false,g=false);let j=u,S="",T="";p>0&&(S=u.slice(0,p),u=u.slice(p),f-=p),j&&g===true&&f>0?(j=u.slice(0,f),T=u.slice(f)):g===true?(j="",T=u):j=u,j&&j!==""&&j!=="/"&&j!==u&&Xi(j.charCodeAt(j.length-1))&&(j=j.slice(0,-1)),s.unescape===true&&(T&&(T=Hi.removeBackslashes(T)),j&&O===true&&(j=Hi.removeBackslashes(j)));let it={prefix:S,input:a,start:p,base:j,glob:T,isBrace:h,isBracket:E,isGlob:g,isExtglob:R,isGlobstar:b,negated:J,negatedExtglob:et};if(s.tokens===true&&(it.maxDepth=0,Xi(w)||n.push(L),it.tokens=n),s.parts===true||s.tokens===true){let k;for(let B=0;B<r.length;B++){let ct=k?k+1:p,rt=r[B],Et=a.slice(ct,rt);s.tokens&&(B===0&&p!==0?(n[B].isPrefix=true,n[B].value=S):n[B].value=Et,Ki(n[B]),it.maxDepth+=n[B].depth),(B!==0||Et!=="")&&o.push(Et),k=rt;}if(k&&k+1<a.length){let B=a.slice(k+1);o.push(B),s.tokens&&(n[n.length-1].value=B,Ki(n[n.length-1]),it.maxDepth+=n[n.length-1].depth);}it.slashes=r,it.parts=o;}return it};Qi.exports=Fo;});var sr=Ct((Ff,er)=>{var xe=Jt(),pt=Yt(),{MAX_LENGTH:qe,POSIX_REGEX_SOURCE:Uo,REGEX_NON_SPECIAL_CHARS:Bo,REGEX_SPECIAL_CHARS_BACKREF:Mo,REPLACEMENTS:tr}=xe,xo=(a,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...a,t);a.sort();let s=`[${a.join("-")}]`;try{new RegExp(s);}catch{return a.map(i=>pt.escapeRegex(i)).join("..")}return s},vt=(a,t)=>`Missing ${a}: "${t}" - use "\\\\${t}" to match literal characters`,vs=(a,t)=>{if(typeof a!="string")throw new TypeError("Expected a string");a=tr[a]||a;let s={...t},e=typeof s.maxLength=="number"?Math.min(qe,s.maxLength):qe,i=a.length;if(i>e)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${e}`);let r={type:"bos",value:"",output:s.prepend||""},n=[r],o=s.capture?"":"?:",u=xe.globChars(s.windows),l=xe.extglobChars(u),{DOT_LITERAL:p,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:E,DOTS_SLASH:g,NO_DOT:R,NO_DOT_SLASH:b,NO_DOTS_SLASH:d,QMARK:O,QMARK_NO_DOT:J,STAR:et,START_ANCHOR:Y}=u,W=N=>`(${o}(?:(?!${Y}${N.dot?g:p}).)*?)`,z=s.dot?"":R,w=s.dot?O:J,L=s.bash===true?W(s):et;s.capture&&(L=`(${L})`),typeof s.noext=="boolean"&&(s.noextglob=s.noext);let A={input:a,index:-1,start:0,dot:s.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:n};a=pt.removePrefix(a,A),i=a.length;let K=[],_=[],j=[],S=r,T,it=()=>A.index===i-1,k=A.peek=(N=1)=>a[A.index+N],B=A.advance=()=>a[++A.index]||"",ct=()=>a.slice(A.index+1),rt=(N="",F=0)=>{A.consumed+=N,A.index+=F;},Et=N=>{A.output+=N.output!=null?N.output:N.value,rt(N.value);},Rn=()=>{let N=1;for(;k()==="!"&&(k(2)!=="("||k(3)==="?");)B(),A.start++,N++;return N%2===0?false:(A.negated=true,A.start++,true)},Ae=N=>{A[N]++,j.push(N);},At=N=>{A[N]--,j.pop();},D=N=>{if(S.type==="globstar"){let F=A.braces>0&&(N.type==="comma"||N.type==="brace"),C=N.extglob===true||K.length&&(N.type==="pipe"||N.type==="paren");N.type!=="slash"&&N.type!=="paren"&&!F&&!C&&(A.output=A.output.slice(0,-S.output.length),S.type="star",S.value="*",S.output=L,A.output+=S.output);}if(K.length&&N.type!=="paren"&&(K[K.length-1].inner+=N.value),(N.value||N.output)&&Et(N),S&&S.type==="text"&&N.type==="text"){S.output=(S.output||S.value)+N.value,S.value+=N.value;return}N.prev=S,n.push(N),S=N;},Ce=(N,F)=>{let C={...l[F],conditions:1,inner:""};C.prev=S,C.parens=A.parens,C.output=A.output;let I=(s.capture?"(":"")+C.open;Ae("parens"),D({type:N,value:F,output:A.output?"":E}),D({type:"paren",extglob:true,value:B(),output:I}),K.push(C);},Nn=N=>{let F=N.close+(s.capture?")":""),C;if(N.type==="negate"){let I=L;if(N.inner&&N.inner.length>1&&N.inner.includes("/")&&(I=W(s)),(I!==L||it()||/^\)+$/.test(ct()))&&(F=N.close=`)$))${I}`),N.inner.includes("*")&&(C=ct())&&/^\.[^\\/.]+$/.test(C)){let M=vs(C,{...t,fastpaths:false}).output;F=N.close=`)${M})${I})`;}N.prev.type==="bos"&&(A.negatedExtglob=true);}D({type:"paren",extglob:true,value:T,output:F}),At("parens");};if(s.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(a)){let N=false,F=a.replace(Mo,(C,I,M,Q,H,as)=>Q==="\\"?(N=true,C):Q==="?"?I?I+Q+(H?O.repeat(H.length):""):as===0?w+(H?O.repeat(H.length):""):O.repeat(M.length):Q==="."?p.repeat(M.length):Q==="*"?I?I+Q+(H?L:""):L:I?C:`\\${C}`);return N===true&&(s.unescape===true?F=F.replace(/\\/g,""):F=F.replace(/\\+/g,C=>C.length%2===0?"\\\\":C?"\\":"")),F===a&&s.contains===true?(A.output=a,A):(A.output=pt.wrapOutput(F,A,t),A)}for(;!it();){if(T=B(),T==="\0")continue;if(T==="\\"){let C=k();if(C==="/"&&s.bash!==true||C==="."||C===";")continue;if(!C){T+="\\",D({type:"text",value:T});continue}let I=/^\\+/.exec(ct()),M=0;if(I&&I[0].length>2&&(M=I[0].length,A.index+=M,M%2!==0&&(T+="\\")),s.unescape===true?T=B():T+=B(),A.brackets===0){D({type:"text",value:T});continue}}if(A.brackets>0&&(T!=="]"||S.value==="["||S.value==="[^")){if(s.posix!==false&&T===":"){let C=S.value.slice(1);if(C.includes("[")&&(S.posix=true,C.includes(":"))){let I=S.value.lastIndexOf("["),M=S.value.slice(0,I),Q=S.value.slice(I+2),H=Uo[Q];if(H){S.value=M+H,A.backtrack=true,B(),!r.output&&n.indexOf(S)===1&&(r.output=E);continue}}}(T==="["&&k()!==":"||T==="-"&&k()==="]")&&(T=`\\${T}`),T==="]"&&(S.value==="["||S.value==="[^")&&(T=`\\${T}`),s.posix===true&&T==="!"&&S.value==="["&&(T="^"),S.value+=T,Et({value:T});continue}if(A.quotes===1&&T!=='"'){T=pt.escapeRegex(T),S.value+=T,Et({value:T});continue}if(T==='"'){A.quotes=A.quotes===1?0:1,s.keepQuotes===true&&D({type:"text",value:T});continue}if(T==="("){Ae("parens"),D({type:"paren",value:T});continue}if(T===")"){if(A.parens===0&&s.strictBrackets===true)throw new SyntaxError(vt("opening","("));let C=K[K.length-1];if(C&&A.parens===C.parens+1){Nn(K.pop());continue}D({type:"paren",value:T,output:A.parens?")":"\\)"}),At("parens");continue}if(T==="["){if(s.nobracket===true||!ct().includes("]")){if(s.nobracket!==true&&s.strictBrackets===true)throw new SyntaxError(vt("closing","]"));T=`\\${T}`;}else Ae("brackets");D({type:"bracket",value:T});continue}if(T==="]"){if(s.nobracket===true||S&&S.type==="bracket"&&S.value.length===1){D({type:"text",value:T,output:`\\${T}`});continue}if(A.brackets===0){if(s.strictBrackets===true)throw new SyntaxError(vt("opening","["));D({type:"text",value:T,output:`\\${T}`});continue}At("brackets");let C=S.value.slice(1);if(S.posix!==true&&C[0]==="^"&&!C.includes("/")&&(T=`/${T}`),S.value+=T,Et({value:T}),s.literalBrackets===false||pt.hasRegexChars(C))continue;let I=pt.escapeRegex(S.value);if(A.output=A.output.slice(0,-S.value.length),s.literalBrackets===true){A.output+=I,S.value=I;continue}S.value=`(${o}${I}|${S.value})`,A.output+=S.value;continue}if(T==="{"&&s.nobrace!==true){Ae("braces");let C={type:"brace",value:T,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};_.push(C),D(C);continue}if(T==="}"){let C=_[_.length-1];if(s.nobrace===true||!C){D({type:"text",value:T,output:T});continue}let I=")";if(C.dots===true){let M=n.slice(),Q=[];for(let H=M.length-1;H>=0&&(n.pop(),M[H].type!=="brace");H--)M[H].type!=="dots"&&Q.unshift(M[H].value);I=xo(Q,s),A.backtrack=true;}if(C.comma!==true&&C.dots!==true){let M=A.output.slice(0,C.outputIndex),Q=A.tokens.slice(C.tokensIndex);C.value=C.output="\\{",T=I="\\}",A.output=M;for(let H of Q)A.output+=H.output||H.value;}D({type:"brace",value:T,output:I}),At("braces"),_.pop();continue}if(T==="|"){K.length>0&&K[K.length-1].conditions++,D({type:"text",value:T});continue}if(T===","){let C=T,I=_[_.length-1];I&&j[j.length-1]==="braces"&&(I.comma=true,C="|"),D({type:"comma",value:T,output:C});continue}if(T==="/"){if(S.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",n.pop(),S=r;continue}D({type:"slash",value:T,output:h});continue}if(T==="."){if(A.braces>0&&S.type==="dot"){S.value==="."&&(S.output=p);let C=_[_.length-1];S.type="dots",S.output+=T,S.value+=T,C.dots=true;continue}if(A.braces+A.parens===0&&S.type!=="bos"&&S.type!=="slash"){D({type:"text",value:T,output:p});continue}D({type:"dot",value:T,output:p});continue}if(T==="?"){if(!(S&&S.value==="(")&&s.noextglob!==true&&k()==="("&&k(2)!=="?"){Ce("qmark",T);continue}if(S&&S.type==="paren"){let I=k(),M=T;(S.value==="("&&!/[!=<:]/.test(I)||I==="<"&&!/<([!=]|\w+>)/.test(ct()))&&(M=`\\${T}`),D({type:"text",value:T,output:M});continue}if(s.dot!==true&&(S.type==="slash"||S.type==="bos")){D({type:"qmark",value:T,output:J});continue}D({type:"qmark",value:T,output:O});continue}if(T==="!"){if(s.noextglob!==true&&k()==="("&&(k(2)!=="?"||!/[!=<:]/.test(k(3)))){Ce("negate",T);continue}if(s.nonegate!==true&&A.index===0){Rn();continue}}if(T==="+"){if(s.noextglob!==true&&k()==="("&&k(2)!=="?"){Ce("plus",T);continue}if(S&&S.value==="("||s.regex===false){D({type:"plus",value:T,output:f});continue}if(S&&(S.type==="bracket"||S.type==="paren"||S.type==="brace")||A.parens>0){D({type:"plus",value:T});continue}D({type:"plus",value:f});continue}if(T==="@"){if(s.noextglob!==true&&k()==="("&&k(2)!=="?"){D({type:"at",extglob:true,value:T,output:""});continue}D({type:"text",value:T});continue}if(T!=="*"){(T==="$"||T==="^")&&(T=`\\${T}`);let C=Bo.exec(ct());C&&(T+=C[0],A.index+=C[0].length),D({type:"text",value:T});continue}if(S&&(S.type==="globstar"||S.star===true)){S.type="star",S.star=true,S.value+=T,S.output=L,A.backtrack=true,A.globstar=true,rt(T);continue}let N=ct();if(s.noextglob!==true&&/^\([^?]/.test(N)){Ce("star",T);continue}if(S.type==="star"){if(s.noglobstar===true){rt(T);continue}let C=S.prev,I=C.prev,M=C.type==="slash"||C.type==="bos",Q=I&&(I.type==="star"||I.type==="globstar");if(s.bash===true&&(!M||N[0]&&N[0]!=="/")){D({type:"star",value:T,output:""});continue}let H=A.braces>0&&(C.type==="comma"||C.type==="brace"),as=K.length&&(C.type==="pipe"||C.type==="paren");if(!M&&C.type!=="paren"&&!H&&!as){D({type:"star",value:T,output:""});continue}for(;N.slice(0,3)==="/**";){let Re=a[A.index+4];if(Re&&Re!=="/")break;N=N.slice(3),rt("/**",3);}if(C.type==="bos"&&it()){S.type="globstar",S.value+=T,S.output=W(s),A.output=S.output,A.globstar=true,rt(T);continue}if(C.type==="slash"&&C.prev.type!=="bos"&&!Q&&it()){A.output=A.output.slice(0,-(C.output+S.output).length),C.output=`(?:${C.output}`,S.type="globstar",S.output=W(s)+(s.strictSlashes?")":"|$)"),S.value+=T,A.globstar=true,A.output+=C.output+S.output,rt(T);continue}if(C.type==="slash"&&C.prev.type!=="bos"&&N[0]==="/"){let Re=N[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(C.output+S.output).length),C.output=`(?:${C.output}`,S.type="globstar",S.output=`${W(s)}${h}|${h}${Re})`,S.value+=T,A.output+=C.output+S.output,A.globstar=true,rt(T+B()),D({type:"slash",value:"/",output:""});continue}if(C.type==="bos"&&N[0]==="/"){S.type="globstar",S.value+=T,S.output=`(?:^|${h}|${W(s)}${h})`,A.output=S.output,A.globstar=true,rt(T+B()),D({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-S.output.length),S.type="globstar",S.output=W(s),S.value+=T,A.output+=S.output,A.globstar=true,rt(T);continue}let F={type:"star",value:T,output:L};if(s.bash===true){F.output=".*?",(S.type==="bos"||S.type==="slash")&&(F.output=z+F.output),D(F);continue}if(S&&(S.type==="bracket"||S.type==="paren")&&s.regex===true){F.output=T,D(F);continue}(A.index===A.start||S.type==="slash"||S.type==="dot")&&(S.type==="dot"?(A.output+=b,S.output+=b):s.dot===true?(A.output+=d,S.output+=d):(A.output+=z,S.output+=z),k()!=="*"&&(A.output+=E,S.output+=E)),D(F);}for(;A.brackets>0;){if(s.strictBrackets===true)throw new SyntaxError(vt("closing","]"));A.output=pt.escapeLast(A.output,"["),At("brackets");}for(;A.parens>0;){if(s.strictBrackets===true)throw new SyntaxError(vt("closing",")"));A.output=pt.escapeLast(A.output,"("),At("parens");}for(;A.braces>0;){if(s.strictBrackets===true)throw new SyntaxError(vt("closing","}"));A.output=pt.escapeLast(A.output,"{"),At("braces");}if(s.strictSlashes!==true&&(S.type==="star"||S.type==="bracket")&&D({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===true){A.output="";for(let N of A.tokens)A.output+=N.output!=null?N.output:N.value,N.suffix&&(A.output+=N.suffix);}return A};vs.fastpaths=(a,t)=>{let s={...t},e=typeof s.maxLength=="number"?Math.min(qe,s.maxLength):qe,i=a.length;if(i>e)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${e}`);a=tr[a]||a;let{DOT_LITERAL:r,SLASH_LITERAL:n,ONE_CHAR:o,DOTS_SLASH:u,NO_DOT:l,NO_DOTS:p,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:E}=xe.globChars(s.windows),g=s.dot?p:l,R=s.dot?f:l,b=s.capture?"":"?:",d={negated:false,prefix:""},O=s.bash===true?".*?":h;s.capture&&(O=`(${O})`);let J=z=>z.noglobstar===true?O:`(${b}(?:(?!${E}${z.dot?u:r}).)*?)`,et=z=>{switch(z){case "*":return `${g}${o}${O}`;case ".*":return `${r}${o}${O}`;case "*.*":return `${g}${O}${r}${o}${O}`;case "*/*":return `${g}${O}${n}${o}${R}${O}`;case "**":return g+J(s);case "**/*":return `(?:${g}${J(s)}${n})?${R}${o}${O}`;case "**/*.*":return `(?:${g}${J(s)}${n})?${R}${O}${r}${o}${O}`;case "**/.*":return `(?:${g}${J(s)}${n})?${r}${o}${O}`;default:{let w=/^(.*?)\.(\w+)$/.exec(z);if(!w)return;let L=et(w[1]);return L?L+r+w[2]:void 0}}},Y=pt.removePrefix(a,d),W=et(Y);return W&&s.strictSlashes!==true&&(W+=`${n}?`),W};er.exports=vs;});var nr=Ct((Uf,rr)=>{var qo=Zi(),Ds=sr(),ir=Yt(),Vo=Jt(),Go=a=>a&&typeof a=="object"&&!Array.isArray(a),V=(a,t,s=false)=>{if(Array.isArray(a)){let p=a.map(h=>V(h,t,s));return h=>{for(let E of p){let g=E(h);if(g)return g}return false}}let e=Go(a)&&a.tokens&&a.input;if(a===""||typeof a!="string"&&!e)throw new TypeError("Expected pattern to be a non-empty string");let i=t||{},r=i.windows,n=e?V.compileRe(a,t):V.makeRe(a,t,false,true),o=n.state;delete n.state;let u=()=>false;if(i.ignore){let p={...t,ignore:null,onMatch:null,onResult:null};u=V(i.ignore,p,s);}let l=(p,f=false)=>{let{isMatch:h,match:E,output:g}=V.test(p,n,t,{glob:a,posix:r}),R={glob:a,state:o,regex:n,posix:r,input:p,output:g,match:E,isMatch:h};return typeof i.onResult=="function"&&i.onResult(R),h===false?(R.isMatch=false,f?R:false):u(p)?(typeof i.onIgnore=="function"&&i.onIgnore(R),R.isMatch=false,f?R:false):(typeof i.onMatch=="function"&&i.onMatch(R),f?R:true)};return s&&(l.state=o),l};V.test=(a,t,s,{glob:e,posix:i}={})=>{if(typeof a!="string")throw new TypeError("Expected input to be a string");if(a==="")return {isMatch:false,output:""};let r=s||{},n=r.format||(i?ir.toPosixSlashes:null),o=a===e,u=o&&n?n(a):a;return o===false&&(u=n?n(a):a,o=u===e),(o===false||r.capture===true)&&(r.matchBase===true||r.basename===true?o=V.matchBase(a,t,s,i):o=t.exec(u)),{isMatch:!!o,match:o,output:u}};V.matchBase=(a,t,s)=>(t instanceof RegExp?t:V.makeRe(t,s)).test(ir.basename(a));V.isMatch=(a,t,s)=>V(t,s)(a);V.parse=(a,t)=>Array.isArray(a)?a.map(s=>V.parse(s,t)):Ds(a,{...t,fastpaths:false});V.scan=(a,t)=>qo(a,t);V.compileRe=(a,t,s=false,e=false)=>{if(s===true)return a.output;let i=t||{},r=i.contains?"":"^",n=i.contains?"":"$",o=`${r}(?:${a.output})${n}`;a&&a.negated===true&&(o=`^(?!${o}).*$`);let u=V.toRegex(o,t);return e===true&&(u.state=a),u};V.makeRe=(a,t={},s=false,e=false)=>{if(!a||typeof a!="string")throw new TypeError("Expected a non-empty string");let i={negated:false,fastpaths:true};return t.fastpaths!==false&&(a[0]==="."||a[0]==="*")&&(i.output=Ds.fastpaths(a,t)),i.output||(i=Ds(a,t)),V.compileRe(i,t,s,e)};V.toRegex=(a,t)=>{try{let s=t||{};return new RegExp(a,s.flags||(s.nocase?"i":""))}catch(s){if(t&&t.debug===true)throw s;return /$^/}};V.constants=Vo;rr.exports=V;});var lr=Ct((Bf,ur)=>{var ar=nr(),Wo=Yt();function or(a,t,s=false){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:Wo.isWindows()}),ar(a,t,s)}Object.assign(or,ar);ur.exports=or;});var St,Hs=P(()=>{St=class{newlineChar;tabChar;prettyMode;constructor(t=`
13
- `,s=" ",e=true){this.newlineChar=t,this.tabChar=s,this.prettyMode=e;}format(t,s=" "){return t.filter(e=>e!=null&&e!=="").join(s)}indent(t,s=1){if(!this.prettyMode)return t;let e=this.tabChar.repeat(s);return t.split(this.newlineChar).map(i=>i.trim()?e+i:i).join(this.newlineChar)}parens(t){return `(${t})`}newline(){return this.newlineChar}tab(){return this.tabChar}isPretty(){return this.prettyMode}};});var kt,kr=P(()=>{Hs();kt=class a{indentLevel;prettyMode;isStringLiteral;parentNodeTypes;formatter;select;from;group;sort;insertColumns;update;bool;isColumnConstraint;isDomainConstraint;alterColumnOptions;alterTableOptions;isEnumValue;objtype;subtype;constructor({indentLevel:t=0,prettyMode:s=true,isStringLiteral:e,parentNodeTypes:i=[],formatter:r,select:n,from:o,group:u,sort:l,insertColumns:p,update:f,bool:h,isColumnConstraint:E,isDomainConstraint:g,alterColumnOptions:R,alterTableOptions:b,isEnumValue:d,objtype:O,subtype:J,...et}={}){this.indentLevel=t,this.prettyMode=s,this.isStringLiteral=e,this.parentNodeTypes=i,this.formatter=r||new St(`
14
- `," ",s),this.select=n,this.from=o,this.group=u,this.sort=l,this.insertColumns=p,this.update=f,this.bool=h,this.isColumnConstraint=E,this.isDomainConstraint=g,this.alterColumnOptions=R,this.alterTableOptions=b,this.isEnumValue=d,this.objtype=O,this.subtype=J,Object.assign(this,et);}spawn(t,s={}){return new a({indentLevel:this.indentLevel,prettyMode:this.prettyMode,isStringLiteral:this.isStringLiteral,parentNodeTypes:[...this.parentNodeTypes,t],formatter:this.formatter,select:this.select,from:this.from,group:this.group,sort:this.sort,insertColumns:this.insertColumns,update:this.update,bool:this.bool,isColumnConstraint:this.isColumnConstraint,isDomainConstraint:this.isDomainConstraint,alterColumnOptions:this.alterColumnOptions,alterTableOptions:this.alterTableOptions,isEnumValue:this.isEnumValue,objtype:this.objtype,subtype:this.subtype,...s})}indent(t,s){if(!this.prettyMode)return t;let e=s!==void 0?s:this.indentLevel+1;return this.formatter.indent(t,e)}newline(){return this.formatter.newline()}parens(t){return this.formatter.parens(t)}format(t,s){return this.formatter.format(t,s)}isPretty(){return this.formatter.isPretty()}};});function Qe(a){let t=a.toLowerCase();return Fr.has(t)?"RESERVED_KEYWORD":Mr.has(t)?"TYPE_FUNC_NAME_KEYWORD":Br.has(t)?"COL_NAME_KEYWORD":Ur.has(t)?"UNRESERVED_KEYWORD":"NO_KEYWORD"}var te,Fr,Ur,Br,Mr,Js=P(()=>{te={UNRESERVED_KEYWORD:["abort","absent","absolute","access","action","add","admin","after","aggregate","also","alter","always","asensitive","assertion","assignment","at","atomic","attach","attribute","backward","before","begin","breadth","by","cache","call","called","cascade","cascaded","catalog","chain","characteristics","checkpoint","class","close","cluster","columns","comment","comments","commit","committed","compression","conditional","configuration","conflict","connection","constraints","content","continue","conversion","copy","cost","csv","cube","current","cursor","cycle","data","database","day","deallocate","declare","defaults","deferred","definer","delete","delimiter","delimiters","depends","depth","detach","dictionary","disable","discard","document","domain","double","drop","each","empty","enable","encoding","encrypted","enforced","enum","error","escape","event","exclude","excluding","exclusive","execute","explain","expression","extension","external","family","filter","finalize","first","following","force","format","forward","function","functions","generated","global","granted","groups","handler","header","hold","hour","identity","if","ignore","immediate","immutable","implicit","import","include","including","increment","indent","index","indexes","inherit","inherits","inline","input","insensitive","insert","instead","invoker","isolation","keep","key","keys","label","language","large","last","leakproof","level","listen","load","local","location","lock","locked","logged","lsn","mapping","match","matched","materialized","maxvalue","merge","method","minute","minvalue","mode","month","move","name","names","nested","new","next","nfc","nfd","nfkc","nfkd","no","normalized","nothing","notify","nowait","nulls","object","objects","of","off","oids","old","omit","operator","option","options","ordinality","others","over","overriding","owned","owner","parallel","parameter","parser","partial","partition","partitions","passing","password","path","period","plan","plans","policy","preceding","prepare","prepared","preserve","prior","privileges","procedural","procedure","procedures","program","publication","quote","quotes","range","read","reassign","recursive","ref","referencing","refresh","reindex","relative","release","rename","repeatable","replace","replica","reset","respect","restart","restrict","return","returns","revoke","role","rollback","rollup","routine","routines","rows","rule","savepoint","scalar","schema","schemas","scroll","search","second","security","sequence","sequences","serializable","server","session","set","sets","share","show","simple","skip","snapshot","source","split","sql","stable","standalone","start","statement","statistics","stdin","stdout","storage","stored","strict","string","strip","subscription","support","sysid","system","tables","tablespace","target","temp","template","temporary","text","ties","transaction","transform","trigger","truncate","trusted","type","types","uescape","unbounded","uncommitted","unconditional","unencrypted","unknown","unlisten","unlogged","until","update","vacuum","valid","validate","validator","value","varying","version","view","views","virtual","volatile","wait","whitespace","within","without","work","wrapper","write","xml","year","yes","zone"],RESERVED_KEYWORD:["all","analyse","analyze","and","any","array","as","asc","asymmetric","both","case","cast","check","collate","column","constraint","create","current_catalog","current_date","current_role","current_time","current_timestamp","current_user","default","deferrable","desc","distinct","do","else","end","except","false","fetch","for","foreign","from","grant","group","having","in","initially","intersect","into","lateral","leading","limit","localtime","localtimestamp","not","null","offset","on","only","or","order","placing","primary","references","returning","select","session_user","some","symmetric","system_user","table","then","to","trailing","true","union","unique","user","using","variadic","when","where","window","with"],TYPE_FUNC_NAME_KEYWORD:["authorization","binary","collation","concurrently","cross","current_schema","freeze","full","ilike","inner","is","isnull","join","left","like","natural","notnull","outer","overlaps","right","similar","tablesample","verbose"],COL_NAME_KEYWORD:["between","bigint","bit","boolean","char","character","coalesce","dec","decimal","exists","extract","float","greatest","grouping","inout","int","integer","interval","json","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_scalar","json_serialize","json_table","json_value","least","merge_action","national","nchar","none","normalize","nullif","numeric","out","overlay","position","precision","real","row","setof","smallint","substring","time","timestamp","treat","trim","values","varchar","xmlattributes","xmlconcat","xmlelement","xmlexists","xmlforest","xmlnamespaces","xmlparse","xmlpi","xmlroot","xmlserialize","xmltable"]},Fr=new Set(te.RESERVED_KEYWORD??[]),Ur=new Set(te.UNRESERVED_KEYWORD??[]),Br=new Set(te.COL_NAME_KEYWORD??[]),Mr=new Set(te.TYPE_FUNC_NAME_KEYWORD??[]);});var m,xr=P(()=>{Js();m=class a{static escape(t){return `'${t.replace(/'/g,"''")}'`}static escapeEString(t){return t.replace(/\\/g,"\\\\").replace(/'/g,"''")}static formatEString(t){return a.needsEscapePrefix(t)?`E'${a.escapeEString(t)}'`:a.escape(t)}static needsEscapePrefix(t){return !/^\\x[0-9a-fA-F]+$/i.test(t)&&t.includes("\\")}static quoteIdentifier(t){if(!t)return t;let s=true,e=t[0];e>="a"&&e<="z"||e==="_"||(s=false);for(let r=0;r<t.length;r++){let n=t[r];n>="a"&&n<="z"||n>="0"&&n<="9"||n==="_"||(s=false);}if(s){let r=Qe(t);r!=="NO_KEYWORD"&&r!=="UNRESERVED_KEYWORD"&&(s=false);}if(s)return t;let i='"';for(let r=0;r<t.length;r++){let n=t[r];n==='"'&&(i+='"'),i+=n;}return i+='"',i}static quoteIdentifierAfterDot(t){if(!t)return t;let s=true,e=t[0];e>="a"&&e<="z"||e==="_"||(s=false);for(let r=0;r<t.length;r++){let n=t[r];n>="a"&&n<="z"||n>="0"&&n<="9"||n==="_"||(s=false);}if(s)return t;let i='"';for(let r=0;r<t.length;r++){let n=t[r];n==='"'&&(i+='"'),i+=n;}return i+='"',i}static quoteDottedName(t){return !t||t.length===0?"":t.length===1?a.quoteIdentifier(t[0]):t.map((s,e)=>e===0?a.quoteIdentifier(s):a.quoteIdentifierAfterDot(s)).join(".")}static quoteQualifiedIdentifier(t,s){return t?`${a.quoteIdentifier(t)}.${a.quoteIdentifierAfterDot(s)}`:a.quoteIdentifier(s)}static quoteIdentifierTypeName(t){if(!t)return t;let s=true,e=t[0];e>="a"&&e<="z"||e==="_"||(s=false);for(let r=0;r<t.length;r++){let n=t[r];n>="a"&&n<="z"||n>="0"&&n<="9"||n==="_"||(s=false);}if(s&&Qe(t)==="RESERVED_KEYWORD"&&(s=false),s)return t;let i='"';for(let r=0;r<t.length;r++){let n=t[r];n==='"'&&(i+='"'),i+=n;}return i+='"',i}static quoteTypeDottedName(t){return !t||t.length===0?"":t.map(s=>a.quoteIdentifierTypeName(s)).join(".")}};});var Ys=P(()=>{xr();Js();});var c,qr=P(()=>{c=class{static unwrapList(t){return t==null?[]:t.List!==void 0?t.List.items||[]:Array.isArray(t)?t:[t]}static formatList(t,s=", ",e="",i){return !t||t.length===0?"":t.map(r=>`${e}${i(r)}`).join(s)}};});function pl(a){return a&&typeof a=="object"&&!Array.isArray(a)&&!("ParseResult"in a)&&!("RawStmt"in a)&&("stmts"in a||"version"in a)}var ul,ll,Ze,Vr=P(()=>{kr();Hs();Ys();qr();ul=["int2","int4","int8","float4","float8","numeric","varchar","char","bpchar","text","bool","date","time","timetz","timestamp","timestamptz","interval","bytea","uuid","json","jsonb","xml","money","bit","varbit","inet","cidr","macaddr","macaddr8"],ll=[["numeric",["decimal","dec"]],["int4",["int","integer"]],["float8",["float"]],["bpchar",["character"]],["varchar",["character varying"]]];Ze=class a{tree;options;constructor(t,s={}){this.options={functionDelimiter:"$$",functionDelimiterFallback:"$EOFCODE$",...s},pl(t)?this.tree=[{ParseResult:t}]:Array.isArray(t)?this.tree=t:this.tree=[t];}static deparse(t,s={}){return new a(t,s).deparseQuery()}deparseQuery(){let t=new St(this.options.newline,this.options.tab,this.options.pretty),s=new kt({formatter:t,prettyMode:this.options.pretty});return this.tree.map(e=>this.deparse(e,s)||"").filter(e=>e!=="").join(s.newline()+s.newline())}getFunctionDelimiter(t){let s=this.options.functionDelimiter||"$$";return t.includes(s)?this.options.functionDelimiterFallback||"$EOFCODE$":s}getObjectTypeKeyword(t){switch(t){case "OBJECT_TABLE":return "TABLE";case "OBJECT_VIEW":return "VIEW";case "OBJECT_INDEX":return "INDEX";case "OBJECT_SEQUENCE":return "SEQUENCE";case "OBJECT_FUNCTION":return "FUNCTION";case "OBJECT_PROCEDURE":return "PROCEDURE";case "OBJECT_SCHEMA":return "SCHEMA";case "OBJECT_DATABASE":return "DATABASE";case "OBJECT_DOMAIN":return "DOMAIN";case "OBJECT_AGGREGATE":return "AGGREGATE";case "OBJECT_CONVERSION":return "CONVERSION";case "OBJECT_LANGUAGE":return "LANGUAGE";case "OBJECT_OPERATOR":return "OPERATOR";case "OBJECT_OPFAMILY":return "OPERATOR FAMILY";case "OBJECT_OPCLASS":return "OPERATOR CLASS";case "OBJECT_TSDICTIONARY":return "TEXT SEARCH DICTIONARY";case "OBJECT_TSCONFIGURATION":return "TEXT SEARCH CONFIGURATION";case "OBJECT_EVENT_TRIGGER":return "EVENT TRIGGER";case "OBJECT_FDW":return "FOREIGN DATA WRAPPER";case "OBJECT_FOREIGN_SERVER":return "SERVER";case "OBJECT_TYPE":return "TYPE";case "OBJECT_COLLATION":return "COLLATION";case "OBJECT_PUBLICATION":return "PUBLICATION";case "OBJECT_ACCESS_METHOD":return "ACCESS METHOD";case "OBJECT_AMOP":return "OPERATOR CLASS";case "OBJECT_AMPROC":return "OPERATOR CLASS";case "OBJECT_ATTRIBUTE":return "ATTRIBUTE";case "OBJECT_CAST":return "CAST";case "OBJECT_COLUMN":return "COLUMN";case "OBJECT_DEFAULT":return "DEFAULT";case "OBJECT_DEFACL":return "DEFAULT PRIVILEGES";case "OBJECT_DOMCONSTRAINT":return "DOMAIN";case "OBJECT_EXTENSION":return "EXTENSION";case "OBJECT_FOREIGN_TABLE":return "FOREIGN TABLE";case "OBJECT_LARGEOBJECT":return "LARGE OBJECT";case "OBJECT_MATVIEW":return "MATERIALIZED VIEW";case "OBJECT_PARAMETER_ACL":return "PARAMETER";case "OBJECT_POLICY":return "POLICY";case "OBJECT_PUBLICATION_NAMESPACE":return "PUBLICATION";case "OBJECT_PUBLICATION_REL":return "PUBLICATION";case "OBJECT_ROLE":return "ROLE";case "OBJECT_ROUTINE":return "ROUTINE";case "OBJECT_RULE":return "RULE";case "OBJECT_STATISTIC_EXT":return "STATISTICS";case "OBJECT_SUBSCRIPTION":return "SUBSCRIPTION";case "OBJECT_TABCONSTRAINT":return "CONSTRAINT";case "OBJECT_TABLESPACE":return "TABLESPACE";case "OBJECT_TRANSFORM":return "TRANSFORM";case "OBJECT_TRIGGER":return "TRIGGER";case "OBJECT_TSPARSER":return "TEXT SEARCH PARSER";case "OBJECT_TSTEMPLATE":return "TEXT SEARCH TEMPLATE";case "OBJECT_USER_MAPPING":return "USER MAPPING";default:throw new Error(`Unsupported objectType: ${t}`)}}deparse(t,s){if(t==null)return null;if(!s){let e=new St(this.options.newline,this.options.tab,this.options.pretty);s=new kt({formatter:e,prettyMode:this.options.pretty});}if(typeof t=="number"||t instanceof Number)return t.toString();try{return this.visit(t,s)}catch(e){let i=Object.keys(t)[0];throw new Error(`Error deparsing ${i}: ${e.message}`)}}visit(t,s){if(!s){let n=new St(this.options.newline,this.options.tab,this.options.pretty);s=new kt({formatter:n,prettyMode:this.options.pretty});}let e=this.getNodeType(t);if(!e)return "";let i=this.getNodeData(t),r=e;if(typeof this[r]=="function")return this[r](i,s);throw new Error(`Deparser does not handle node type: ${e}`)}getNodeType(t){return Object.keys(t)[0]}getNodeData(t){let s=Object.keys(t);return s.length===1&&typeof t[s[0]]=="object"?t[s[0]]:t}ParseResult(t,s){return !t.stmts||t.stmts.length===0?"":t.stmts.filter(e=>e!=null).map(e=>this.RawStmt(e,s)).filter(e=>e!=="").join(s.newline()+s.newline())}RawStmt(t,s){if(!t.stmt)return "";let e=this.deparse(t.stmt,s);return t.stmt_len?e+";":e}SelectStmt(t,s){let e=[];if(t.withClause&&e.push(this.WithClause(t.withClause,s)),!t.op||t.op==="SETOP_NONE")t.valuesLists==null&&(!s.isPretty()||!t.targetList)&&e.push("SELECT");else {let r=this.SelectStmt(t.larg,s),n=this.SelectStmt(t.rarg,s),o=t.larg&&(t.larg.op&&t.larg.op!=="SETOP_NONE"||t.larg.sortClause||t.larg.limitCount||t.larg.limitOffset||t.larg.withClause),u=t.rarg&&(t.rarg.op&&t.rarg.op!=="SETOP_NONE"||t.rarg.sortClause||t.rarg.limitCount||t.rarg.limitOffset||t.rarg.withClause);switch(o?e.push(s.parens(r)):e.push(r),t.op){case "SETOP_UNION":e.push("UNION");break;case "SETOP_INTERSECT":e.push("INTERSECT");break;case "SETOP_EXCEPT":e.push("EXCEPT");break;default:throw new Error(`Bad SelectStmt op: ${t.op}`)}t.all&&e.push("ALL"),u?e.push(s.parens(n)):e.push(n);}let i="";if(t.distinctClause){let r=c.unwrapList(t.distinctClause);if(r.length>0&&Object.keys(r[0]).length>0){let n=r.map(o=>this.visit(o,s.spawn("SelectStmt",{select:true}))).join(", ");i=" DISTINCT ON "+s.parens(n);}else i=" DISTINCT";if(!s.isPretty())if(r.length>0&&Object.keys(r[0]).length>0){e.push("DISTINCT ON");let n=r.map(o=>this.visit(o,s.spawn("SelectStmt",{select:true}))).join(", ");e.push(s.parens(n));}else e.push("DISTINCT");}if(t.targetList){let r=c.unwrapList(t.targetList);if(s.isPretty())if(r.length===1){let n=r[0],o=this.visit(n,s.spawn("SelectStmt",{select:true}));this.isComplexSelectTarget(n)?(e.push("SELECT"+i),this.containsMultilineStringLiteral(o)?e.push(o):e.push(s.indent(o))):e.push("SELECT"+i+" "+o);}else {let o=r.map(u=>{let l=this.visit(u,s.spawn("SelectStmt",{select:true}));return this.containsMultilineStringLiteral(l)?l:s.indent(l)}).join(","+s.newline());e.push("SELECT"+i),e.push(o);}else {let n=r.map(o=>this.visit(o,s.spawn("SelectStmt",{select:true}))).join(", ");e.push(n);}}if(t.intoClause&&(e.push("INTO"),e.push(this.IntoClause(t.intoClause,s))),t.fromClause){let n=c.unwrapList(t.fromClause).map(o=>this.deparse(o,s.spawn("SelectStmt",{from:true}))).join(", ");e.push("FROM "+n.trim());}if(t.whereClause)if(s.isPretty()){e.push("WHERE");let o=this.visit(t.whereClause,s).split(s.newline()).map((u,l)=>l===0?s.indent(u):u);e.push(o.join(s.newline()));}else e.push("WHERE"),e.push(this.visit(t.whereClause,s));if(t.valuesLists)if(s.isPretty()){e.push("VALUES");let n=c.unwrapList(t.valuesLists).map(o=>{let u=c.unwrapList(o).map(l=>this.visit(l,s));return s.parens(u.join(", "))}).map(o=>this.containsMultilineStringLiteral(o)?o:s.indent(o));e.push(n.join(`,
15
- `));}else {e.push("VALUES");let r=c.unwrapList(t.valuesLists).map(n=>{let o=c.unwrapList(n).map(u=>this.visit(u,s));return s.parens(o.join(", "))});e.push(r.join(", "));}if(t.groupClause){let r=c.unwrapList(t.groupClause);if(s.isPretty()){let n=r.map(o=>{let u=this.visit(o,s.spawn("SelectStmt",{group:true,indentLevel:s.indentLevel+1}));return this.containsMultilineStringLiteral(u)?u:s.indent(u)}).join(","+s.newline());e.push("GROUP BY"),e.push(n);}else {e.push("GROUP BY");let n=r.map(o=>this.visit(o,s.spawn("SelectStmt",{group:true}))).join(", ");e.push(n);}}if(t.havingClause)if(s.isPretty()){e.push("HAVING");let r=this.visit(t.havingClause,s);this.containsMultilineStringLiteral(r)?e.push(r):e.push(s.indent(r));}else e.push("HAVING"),e.push(this.visit(t.havingClause,s));if(t.windowClause){e.push("WINDOW");let n=c.unwrapList(t.windowClause).map(o=>this.visit(o,s)).join(", ");e.push(n);}if(t.sortClause){let r=c.unwrapList(t.sortClause);if(s.isPretty()){let n=r.map(o=>{let u=this.visit(o,s.spawn("SelectStmt",{sort:true,indentLevel:s.indentLevel+1}));return this.containsMultilineStringLiteral(u)?u:s.indent(u)}).join(","+s.newline());e.push("ORDER BY"),e.push(n);}else {e.push("ORDER BY");let n=r.map(o=>this.visit(o,s.spawn("SelectStmt",{sort:true}))).join(", ");e.push(n);}}if(t.limitCount&&e.push("LIMIT "+this.visit(t.limitCount,s)),t.limitOffset&&e.push("OFFSET "+this.visit(t.limitOffset,s)),t.lockingClause){let n=c.unwrapList(t.lockingClause).map(o=>this.visit(o,s)).join(" ");e.push(n);}return s.isPretty()?e.filter(n=>n.trim()!=="").join(s.newline()):e.join(" ")}A_Expr(t,s){let e=t.kind,i=c.unwrapList(t.name),r=t.lexpr,n=t.rexpr;switch(e){case "AEXPR_OP":if(r&&n){let h=this.deparseOperatorName(i,s),E=this.visit(r,s),g=this.visit(n,s),R=false;if(r&&"A_Expr"in r&&r.A_Expr?.kind==="AEXPR_OP"){let d=this.deparseOperatorName(c.unwrapList(r.A_Expr.name),s);this.needsParentheses(d,h,"left")&&(R=true);}r&&this.isComplexExpression(r)&&(R=true),R&&(E=s.parens(E));let b=false;if(n&&"A_Expr"in n&&n.A_Expr?.kind==="AEXPR_OP"){let d=this.deparseOperatorName(c.unwrapList(n.A_Expr.name),s);this.needsParentheses(d,h,"right")&&(b=true);}return n&&this.isComplexExpression(n)&&(b=true),b&&(g=s.parens(g)),s.format([E,h,g])}else if(n){let h=this.deparseOperatorName(i,s),E=this.visit(n,s);return n&&"A_Expr"in n&&n.A_Expr?.kind==="AEXPR_OP"&&n.A_Expr?.lexpr&&(E=s.parens(E)),s.format([h,E])}break;case "AEXPR_OP_ANY":return s.format([this.visit(r,s),this.deparseOperatorName(i,s),"ANY",s.parens(this.visit(n,s))]);case "AEXPR_OP_ALL":return s.format([this.visit(r,s),this.deparseOperatorName(i,s),"ALL",s.parens(this.visit(n,s))]);case "AEXPR_DISTINCT":{let h=this.visit(r,s),E=this.visit(n,s);return r&&this.isComplexExpression(r)&&(h=s.parens(h)),n&&this.isComplexExpression(n)&&(E=s.parens(E)),s.format([h,"IS DISTINCT FROM",E])}case "AEXPR_NOT_DISTINCT":{let h=this.visit(r,s),E=this.visit(n,s);return r&&this.isComplexExpression(r)&&(h=s.parens(h)),n&&this.isComplexExpression(n)&&(E=s.parens(E)),s.format([h,"IS NOT DISTINCT FROM",E])}case "AEXPR_NULLIF":return s.format(["NULLIF",s.parens([this.visit(r,s),this.visit(n,s)].join(", "))]);case "AEXPR_IN":let o=this.deparseOperatorName(i,s);return o==="<>"||o==="!="?s.format([this.visit(r,s),"NOT IN",s.parens(this.visit(n,s))]):s.format([this.visit(r,s),"IN",s.parens(this.visit(n,s))]);case "AEXPR_LIKE":return this.deparseOperatorName(i,s)==="!~~"?s.format([this.visit(r,s),"NOT LIKE",this.visit(n,s)]):s.format([this.visit(r,s),"LIKE",this.visit(n,s)]);case "AEXPR_ILIKE":return this.deparseOperatorName(i,s)==="!~~*"?s.format([this.visit(r,s),"NOT ILIKE",this.visit(n,s)]):s.format([this.visit(r,s),"ILIKE",this.visit(n,s)]);case "AEXPR_SIMILAR":let p=this.deparseOperatorName(i,s),f;if(n&&"FuncCall"in n&&n.FuncCall?.funcname?.length===2&&n.FuncCall.funcname[0]?.String?.sval==="pg_catalog"&&n.FuncCall.funcname[1]?.String?.sval==="similar_to_escape"){let h=n.FuncCall.args||[];f=this.visit(h[0],s),h.length>1&&(f+=` ESCAPE ${this.visit(h[1],s)}`);}else f=this.visit(n,s);return p==="!~"?s.format([this.visit(r,s),"NOT SIMILAR TO",f]):s.format([this.visit(r,s),"SIMILAR TO",f]);case "AEXPR_BETWEEN":return s.format([this.visit(r,s),"BETWEEN",this.visitBetweenRange(n,s)]);case "AEXPR_NOT_BETWEEN":return s.format([this.visit(r,s),"NOT BETWEEN",this.visitBetweenRange(n,s)]);case "AEXPR_BETWEEN_SYM":return s.format([this.visit(r,s),"BETWEEN SYMMETRIC",this.visitBetweenRange(n,s)]);case "AEXPR_NOT_BETWEEN_SYM":return s.format([this.visit(r,s),"NOT BETWEEN SYMMETRIC",this.visitBetweenRange(n,s)])}throw new Error(`Unhandled A_Expr kind: ${e}`)}deparseOperatorName(t,s){if(!t||t.length===0)return "";let e=t.map(i=>i.String?i.String.sval||i.String.str:this.visit(i,s));return e.length>1?`OPERATOR(${e.join(".")})`:e.join(".")}getOperatorPrecedence(t){return {"||":1,OR:2,AND:3,NOT:4,IS:5,IN:5,BETWEEN:5,LIKE:5,ILIKE:5,SIMILAR:5,"<":6,"<=":6,">":6,">=":6,"=":6,"<>":6,"!=":6,"+":7,"-":7,"*":8,"/":8,"%":8,"^":9,"~":10,"&":10,"|":10,"#":10,"<<":10,">>":10}[t]||0}needsParentheses(t,s,e){let i=this.getOperatorPrecedence(t),r=this.getOperatorPrecedence(s);return i<r||i===r&&e==="right"&&(s==="-"||s==="/")}isComplexExpression(t){return !!(t.NullTest||t.BooleanTest||t.BoolExpr||t.CaseExpr||t.CoalesceExpr||t.SubLink||t.A_Expr)}isComplexSelectTarget(t){if(!t)return false;if(t.ResTarget?.val)return this.isComplexExpression(t.ResTarget.val);if(t.CaseExpr||t.SubLink||t.NullTest||t.BooleanTest||t.BoolExpr)return true;if(t.CoalesceExpr){let s=t.CoalesceExpr.args;if(s&&Array.isArray(s)&&s.length>1)return true}if(t.FuncCall){let s=t.FuncCall,e=s.args?Array.isArray(s.args)?s.args:[s.args]:[];if(s.over||s.agg_filter||s.agg_order||s.agg_distinct||e.length>1)return true;if(e.length===1)return this.isComplexSelectTarget(e[0])}if(t.A_Expr){let s=t.A_Expr;return !!(s.lexpr&&this.isComplexSelectTarget(s.lexpr)||s.rexpr&&this.isComplexSelectTarget(s.rexpr))}return t.TypeCast?this.isComplexSelectTarget(t.TypeCast.arg):t.A_ArrayExpr?true:t.A_Indirection?this.isComplexSelectTarget(t.A_Indirection.arg):(t.A_Const||t.ColumnRef||t.ParamRef||t.A_Star,false)}visitBetweenRange(t,s){return t&&"List"in t&&t.List?.items?t.List.items.map(i=>this.visit(i,s)).join(" AND "):this.visit(t,s)}InsertStmt(t,s){let e=[];if(t.withClause&&e.push(this.WithClause(t.withClause,s)),e.push("INSERT INTO"),e.push(this.RangeVar(t.relation,s)),t.cols){let i=c.unwrapList(t.cols),r=s.spawn("InsertStmt",{insertColumns:true}),n=i.map(o=>this.visit(o,r));if(s.isPretty()){let o=n.map(u=>s.indent(u));e.push(`(
16
- `+o.join(`,
17
- `)+`
18
- )`);}else e.push(s.parens(n.join(", ")));}if(t.selectStmt?e.push(this.visit(t.selectStmt,s)):(!t.cols||t.cols&&c.unwrapList(t.cols).length===0)&&e.push("DEFAULT VALUES"),t.onConflictClause){if(e.push("ON CONFLICT"),t.onConflictClause.infer){let i=t.onConflictClause.infer;if(i.conname)e.push("ON CONSTRAINT"),e.push(i.conname);else if(i.indexElems){let n=c.unwrapList(i.indexElems).map(o=>this.visit(o,s));e.push(s.parens(n.join(", ")));}i.whereClause&&(e.push("WHERE"),e.push(this.visit(i.whereClause,s)));}if(t.onConflictClause.action==="ONCONFLICT_UPDATE"){e.push("DO UPDATE SET");let i=c.unwrapList(t.onConflictClause.targetList);if(i&&i.length){let r=i[0];if(r.ResTarget?.val?.MultiAssignRef&&i.every(n=>n.ResTarget?.val?.MultiAssignRef)){let o=i.sort((u,l)=>u.ResTarget.val.MultiAssignRef.colno-l.ResTarget.val.MultiAssignRef.colno).map(u=>u.ResTarget.name);e.push(s.parens(o.join(", "))),e.push("="),e.push(this.visit(r.ResTarget.val.MultiAssignRef.source,s));}else {let n=s.spawn("UpdateStmt",{update:true}),o=i.map(u=>this.visit(u,n));if(s.isPretty()){let u=o.map(l=>s.indent(l));e.push(`
19
- `+u.join(`,
20
- `));}else e.push(o.join(", "));}}t.onConflictClause.whereClause&&(e.push("WHERE"),e.push(this.visit(t.onConflictClause.whereClause,s)));}else t.onConflictClause.action==="ONCONFLICT_NOTHING"&&e.push("DO NOTHING");}if(t.returningList){e.push("RETURNING");let r=c.unwrapList(t.returningList).map(n=>this.visit(n,s));e.push(r.join(", "));}return e.join(" ")}UpdateStmt(t,s){let e=[];t.withClause&&e.push(this.WithClause(t.withClause,s)),e.push("UPDATE"),t.relation&&e.push(this.RangeVar(t.relation,s)),e.push("SET");let i=c.unwrapList(t.targetList);if(i&&i.length){i[0];let n=new Set,o=[];for(let u=0;u<i.length;u++){if(n.has(u))continue;let l=i[u],p=l.ResTarget?.val?.MultiAssignRef;if(p){let f=[];for(let g=u;g<i.length;g++){let R=i[g],b=R.ResTarget?.val?.MultiAssignRef;b&&JSON.stringify(b.source)===JSON.stringify(p.source)&&(f.push(R),n.add(g));}let h=f.map(g=>g.ResTarget.name),E=`${s.parens(h.join(", "))} = ${this.visit(p.source,s)}`;o.push(E);}else o.push(this.visit(l,s.spawn("UpdateStmt",{update:true}))),n.add(u);}e.push(o.join(","));}if(t.fromClause){e.push("FROM");let n=c.unwrapList(t.fromClause).map(o=>this.visit(o,s));e.push(n.join(", "));}return t.whereClause&&(e.push("WHERE"),e.push(this.visit(t.whereClause,s))),t.returningList&&(e.push("RETURNING"),e.push(this.deparseReturningList(t.returningList,s))),e.join(" ")}DeleteStmt(t,s){try{let e=[];if(t.withClause)try{e.push(this.WithClause(t.withClause,s));}catch(i){throw console.warn(`Error processing withClause in DeleteStmt: ${i instanceof Error?i.message:String(i)}`),new Error(`Error deparsing DeleteStmt: ${i instanceof Error?i.message:String(i)}`)}if(e.push("DELETE"),e.push("FROM"),!t.relation)throw new Error("DeleteStmt requires a relation");if(e.push(this.RangeVar(t.relation,s)),t.usingClause){e.push("USING");let r=c.unwrapList(t.usingClause).filter(n=>n!=null&&this.getNodeType(n)!=="undefined").map(n=>{try{return this.visit(n,s)}catch(o){return console.warn(`Error processing usingClause item in DeleteStmt: ${o instanceof Error?o.message:String(o)}`),""}}).filter(n=>n&&n.trim());r.length>0&&e.push(r.join(", "));}if(t.whereClause){e.push("WHERE");try{e.push(this.visit(t.whereClause,s));}catch(i){throw console.warn(`Error processing whereClause in DeleteStmt: ${i instanceof Error?i.message:String(i)}`),new Error(`Error deparsing DeleteStmt: ${i instanceof Error?i.message:String(i)}`)}}if(t.returningList){e.push("RETURNING");try{e.push(this.deparseReturningList(t.returningList,s));}catch(i){throw console.warn(`Error processing returningList in DeleteStmt: ${i instanceof Error?i.message:String(i)}`),new Error(`Error deparsing DeleteStmt: ${i instanceof Error?i.message:String(i)}`)}}return e.join(" ")}catch(e){throw new Error(`Error deparsing DeleteStmt: ${e instanceof Error?e.message:String(e)}`)}}WithClause(t,s){let e=["WITH"];if(t.recursive&&e.push("RECURSIVE"),t.ctes&&t.ctes.length>0){let i=c.unwrapList(t.ctes);if(s.isPretty()){let r=i.map((n,o)=>{let u=this.visit(n,s),l=o===0?s.newline():","+s.newline();return this.containsMultilineStringLiteral(u)?l+u:l+s.indent(u)});e.push(r.join(""));}else {let r=i.map(n=>this.visit(n,s));e.push(r.join(", "));}}return e.join(" ")}ResTarget(t,s){let e=[];if(s.update&&t.name){if(e.push(m.quoteIdentifier(t.name)),t.indirection&&t.indirection.length>0){let i=c.unwrapList(t.indirection).map(r=>r.String?`.${m.quoteIdentifierAfterDot(r.String.sval||r.String.str)}`:this.visit(r,s));e.push(i.join(""));}e.push("="),t.val&&e.push(this.deparse(t.val,s));}else if(s.insertColumns&&t.name){if(e.push(m.quoteIdentifier(t.name)),t.indirection&&t.indirection.length>0){let i=c.unwrapList(t.indirection).map(r=>r.String?`.${m.quoteIdentifierAfterDot(r.String.sval||r.String.str)}`:this.visit(r,s));e.push(i.join(""));}}else t.val&&e.push(this.deparse(t.val,s)),t.name&&(e.push("AS"),e.push(m.quoteIdentifier(t.name)));return e.join(" ")}deparseReturningList(t,s){return c.unwrapList(t).filter(e=>e!=null&&this.getNodeType(e)!=="undefined").map(e=>{try{if(this.getNodeType(e)==="ResTarget"){let i=this.getNodeData(e),r=i.val?this.visit(i.val,s):"",n=i.name?` AS ${m.quoteIdentifier(i.name)}`:"";return r+n}else return this.visit(e,s)}catch(i){return console.warn(`Error processing returning item: ${i instanceof Error?i.message:String(i)}`),""}}).filter(e=>e&&e.trim()).join(", ")}BoolExpr(t,s){let e=t.boolop,i=c.unwrapList(t.args),r="%s";s.bool&&(r="(%s)");let n=s.spawn("BoolExpr",{bool:true});switch(e){case "AND_EXPR":if(s.isPretty()&&i.length>1){let o=i.map(u=>this.visit(u,n)).join(s.newline()+s.indent("AND "));return r.replace("%s",()=>o)}else {let o=i.map(u=>this.visit(u,n)).join(" AND ");return r.replace("%s",()=>o)}case "OR_EXPR":if(s.isPretty()&&i.length>1){let o=i.map(u=>this.visit(u,n)).join(s.newline()+s.indent("OR "));return r.replace("%s",()=>o)}else {let o=i.map(u=>this.visit(u,n)).join(" OR ");return r.replace("%s",()=>o)}case "NOT_EXPR":return `NOT (${this.visit(i[0],s)})`;default:throw new Error(`Unhandled BoolExpr boolop: ${e}`)}}FuncCall(t,s){let e=c.unwrapList(t.funcname),i=c.unwrapList(t.args),r=e.map(p=>p.String?.sval||p.String?.str||"").filter(p=>p),n=m.quoteDottedName(r);if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.xmlexists"&&i.length>=2){let p=this.visit(i[0],s),f=this.visit(i[1],s);return `xmlexists (${p} PASSING ${f})`}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.extract"&&i.length>=2){let p=this.visit(i[0],s),f=this.visit(i[1],s);return p.startsWith("'")&&p.endsWith("'")&&(p=p.slice(1,-1).toUpperCase()),`EXTRACT(${p} FROM ${f})`}if(t.funcformat==="COERCE_SQL_SYNTAX"&&(n==="pg_catalog.rtrim"||n==="pg_catalog.ltrim"||n==="pg_catalog.btrim")&&i.length>=1){let p=this.visit(i[0],s),f="";if(i.length>=2&&(f=` ${this.visit(i[1],s)}`),n==="pg_catalog.rtrim")return `TRIM(TRAILING${f} FROM ${p})`;if(n==="pg_catalog.ltrim")return `TRIM(LEADING${f} FROM ${p})`;if(n==="pg_catalog.btrim")return `TRIM(BOTH${f} FROM ${p})`}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.pg_collation_for")return `COLLATION FOR (${i.map(f=>this.visit(f,s)).join(", ")})`;if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.substring"){let p=this.visit(i[0],s);if(i.length===3){let f=this.visit(i[1],s),h=this.visit(i[2],s);return `SUBSTRING(${p} FROM ${f} FOR ${h})`}else if(i.length===2){let f=this.visit(i[1],s);return `SUBSTRING(${p} FROM ${f})`}}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.position"&&i.length===2){let p=this.visit(i[0],s);return `POSITION(${this.visit(i[1],s)} IN ${p})`}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.overlay"){if(i.length===4){let p=this.visit(i[0],s),f=this.visit(i[1],s),h=this.visit(i[2],s),E=this.visit(i[3],s);return `OVERLAY(${p} PLACING ${f} FROM ${h} FOR ${E})`}else if(i.length===3){let p=this.visit(i[0],s),f=this.visit(i[1],s),h=this.visit(i[2],s);return `OVERLAY(${p} PLACING ${f} FROM ${h})`}}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.is_normalized"){let p=this.visit(i[0],s);if(i.length===2){let h=this.visit(i[1],s).replace(/'/g,"");return `${p} IS ${h} NORMALIZED`}else return `${p} IS NORMALIZED`}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.normalize"){let p=this.visit(i[0],s);if(i.length===2){let h=this.visit(i[1],s).replace(/'/g,"");return `normalize(${p}, ${h})`}else return `normalize(${p})`}if(t.funcformat==="COERCE_SQL_SYNTAX"&&n==="pg_catalog.system_user"&&i.length===0)return "SYSTEM_USER";if(n==="pg_catalog.overlaps"&&i.length===4){let p=this.visit(i[0],s),f=this.visit(i[1],s),h=this.visit(i[2],s),E=this.visit(i[3],s);return `(${p}, ${f}) OVERLAPS (${h}, ${E})`}if(n==="pg_catalog.timezone"&&i.length===2){let p=this.visit(i[1],s),f=this.visit(i[0],s);if(i[1]&&"A_Expr"in i[1]&&i[1].A_Expr?.kind==="AEXPR_OP"){let h=this.deparseOperatorName(c.unwrapList(i[1].A_Expr.name),s);(h==="+"||h==="-"||h==="*"||h==="/")&&(p=s.parens(p));}return `${p} AT TIME ZONE ${f}`}let o=[];if(t.agg_star)t.agg_distinct?o.push("DISTINCT *"):o.push("*");else {let p=i.map(f=>this.visit(f,s));if(t.func_variadic&&p.length>0){let f=p.length-1;p[f]=`VARIADIC ${p[f]}`;}t.agg_distinct&&p.length>0?o.push("DISTINCT "+p.join(", ")):o.push(...p);}let u="";if(t.agg_order&&t.agg_order.length>0){let f=c.unwrapList(t.agg_order).map(h=>this.visit(h,s));t.agg_within_group?u=` WITHIN GROUP (ORDER BY ${f.join(", ")})`:u=` ORDER BY ${f.join(", ")}`;}let l;if(t.agg_within_group&&u?l=`${n}(${o.join(", ")})${u}`:l=`${n}(${o.join(", ")}${u})`,t.agg_filter&&(l+=` FILTER (WHERE ${this.visit(t.agg_filter,s)})`),t.over)if(t.over.name)l+=` OVER ${t.over.name}`;else {let p=[];if(t.over.partitionClause){let E=c.unwrapList(t.over.partitionClause).map(g=>this.visit(g,s));p.push(`PARTITION BY ${E.join(", ")}`);}if(t.over.orderClause){let E=c.unwrapList(t.over.orderClause).map(g=>this.visit(g,s));p.push(`ORDER BY ${E.join(", ")}`);}let f=this.formatWindowFrame(t.over,s.spawn("FuncCall"));if(f&&p.push(f),p.length>0)if(s.isPretty()&&p.length>1){let h=p.map(E=>s.indent(E));l+=` OVER (${s.newline()}${h.join(s.newline())}${s.newline()})`;}else l+=` OVER (${p.join(" ")})`;else l+=" OVER ()";}return l}FuncExpr(t,s){let e=`func_${t.funcid}`,i=t.args?c.unwrapList(t.args).map(r=>this.visit(r,s)).join(", "):"";return `${e}(${i})`}A_Const(t,s){let e=t;if(e.ival!==void 0)return typeof e.ival=="object"&&e.ival!==null?e.ival.ival!==void 0?e.ival.ival.toString():Object.keys(e.ival).length===0?"0":e.ival.toString():e.ival===null?"NULL":e.ival.toString();if(e.fval!==void 0)return typeof e.fval=="object"&&e.fval!==null?e.fval.fval!==void 0?e.fval.fval.toString():Object.keys(e.fval).length===0?"0.0":e.fval.toString():e.fval===null?"NULL":e.fval.toString();if(e.sval!==void 0)return typeof e.sval=="object"&&e.sval!==null?e.sval.sval!==void 0?m.formatEString(e.sval.sval):e.sval.String&&e.sval.String.sval!==void 0?m.formatEString(e.sval.String.sval):Object.keys(e.sval).length===0?"''":m.formatEString(e.sval.toString()):e.sval===null?"NULL":m.formatEString(e.sval);if(e.boolval!==void 0)return typeof e.boolval=="object"&&e.boolval!==null?e.boolval.boolval!==void 0?e.boolval.boolval?"true":"false":Object.keys(e.boolval).length===0?"false":e.boolval?"true":"false":e.boolval===null?"NULL":e.boolval?"true":"false";if(e.bsval!==void 0)if(typeof e.bsval=="object"&&e.bsval!==null)if(e.bsval.bsval!==void 0){let i=e.bsval.bsval;return i.startsWith("x")&&/^x[0-9A-Fa-f]+$/.test(i)?`x'${i.substring(1)}'`:i.startsWith("b")?`b'${i.substring(1)}'`:`b'${i}'`}else return Object.keys(e.bsval).length===0?"''":e.bsval.toString();else {if(e.bsval===null)return "NULL";{let i=e.bsval;return i.startsWith("x")&&/^x[0-9A-Fa-f]+$/.test(i)?`x'${i.substring(1)}'`:i.startsWith("b")?`b'${i.substring(1)}'`:`b'${i}'`}}if(e.val){if(e.val.Integer?.ival!==void 0)return e.val.Integer.ival.toString();if(e.val.Float?.fval!==void 0)return e.val.Float.fval.toString();if(e.val.String?.sval!==void 0)return m.escape(e.val.String.sval);if(e.val.Boolean?.boolval!==void 0)return e.val.Boolean.boolval?"true":"false";if(e.val.BitString?.bsval!==void 0)return e.val.BitString.bsval}return e.isnull===true?"NULL":typeof e=="object"&&e!==null?e.Boolean!==void 0?e.Boolean?"true":"false":e.Integer!==void 0?typeof e.Integer=="object"&&e.Integer.ival!==void 0?e.Integer.ival.toString():e.Integer.toString():e.Float!==void 0?typeof e.Float=="object"&&e.Float.fval!==void 0?e.Float.fval.toString():e.Float.toString():e.String!==void 0?typeof e.String=="object"&&e.String.sval!==void 0?m.escape(e.String.sval):m.escape(e.String):(Object.keys(e).length===0||console.warn("A_Const: Unhandled object structure:",JSON.stringify(e,null,2)),"NULL"):"NULL"}ColumnRef(t,s){return c.unwrapList(t.fields).map(i=>i.String?m.quoteIdentifier(i.String.sval||i.String.str):i.A_Star?"*":this.visit(i,s)).join(".")}TypeName(t,s){if(!t.names)return "";let e=[];t.setof&&e.push("SETOF");let i=t.names.map(l=>l.String?l.String.sval||l.String.str:"").filter(Boolean);if(i.length===0)return "";let r=null;t.typmods?i.some(p=>(typeof p=="string"?p:p.String?.sval||p.String?.str)==="interval")?r=this.formatIntervalTypeMods(t.typmods,s):r=this.formatTypeMods(t.typmods,s):t.typemod&&t.typemod!==-1&&(r=this.formatSingleTypeMod(t.typemod,i[0]));let n=(l,p)=>p!=null?l==="interval"?p.startsWith("(")?`${l}${p}`:`${l} ${p}`:`${l}(${p})`:l,o=l=>l.map(p=>p.Integer&&p.Integer.ival!==void 0&&p.Integer.ival!==-1?`[${p.Integer.ival}]`:"[]").join("");if(i.length===1){let l=i[0];if(l==="char")return s.parentNodeTypes.includes("TypeCast")&&r==="1"?e.push('"char"'):e.push(n('"char"',r)),e.join(" ");let p=n(m.quoteIdentifierTypeName(l),r);return t.arrayBounds&&t.arrayBounds.length>0&&(p+=o(t.arrayBounds)),e.push(p),e.join(" ")}if(i.length===2){let[l,p]=i;if(l==="pg_catalog"&&p==="char")return e.push(n("pg_catalog.char",r)),e.join(" ");if(l==="pg_catalog"){let f=`${l}.${p}`;p==="bpchar"&&r?f="char":p==="varchar"?f="varchar":p==="numeric"?f="numeric":p==="int4"?f="int":p==="float8"?f="double precision":p==="float4"?f="real":p==="int8"?f="bigint":p==="int2"?f="smallint":p==="bool"?f="boolean":p==="interval"?(s.parentNodeTypes.includes("TypeCast"),f="interval"):p==="timestamptz"?r?(f=`timestamp(${r}) with time zone`,r=null):f="timestamp with time zone":p==="timetz"?r?(f=`time(${r}) with time zone`,r=null):f="time with time zone":p==="timestamp"?r?(f=`timestamp(${r})`,r=null):f="timestamp":p==="time"&&(r?(f=`time(${r})`,r=null):f="time");let h=n(f,r);return t.arrayBounds&&t.arrayBounds.length>0&&(h+=o(t.arrayBounds)),e.push(h),e.join(" ")}}let u=n(m.quoteTypeDottedName(i),r);return t.arrayBounds&&t.arrayBounds.length>0&&(u+=o(t.arrayBounds)),e.push(u),e.join(" ")}Alias(t,s){let e=t.aliasname,i=[];if(t.colnames){let n=c.unwrapList(t.colnames).map(o=>{let u=this.deparse(o,s);return u.startsWith('"')&&u.endsWith('"')?u:this.quoteIfNeeded(u)});i.push("AS",this.quoteIfNeeded(e)+s.parens(n.join(", ")));}else i.push("AS",this.quoteIfNeeded(e));return i.join(" ")}RangeVar(t,s){let e=[];t&&(!("inh"in t)||t.inh===void 0)&&!s.parentNodeTypes.includes("CompositeTypeStmt")&&!s.parentNodeTypes.includes("AlterTypeStmt")&&s.objtype!=="OBJECT_TYPE"&&!s.parentNodeTypes.includes("CreateForeignTableStmt")&&e.push("ONLY");let i="";if(t.catalogname?(i=m.quoteIdentifier(t.catalogname),t.schemaname&&(i+="."+m.quoteIdentifierAfterDot(t.schemaname)),i+="."+m.quoteIdentifierAfterDot(t.relname)):t.schemaname?i=m.quoteQualifiedIdentifier(t.schemaname,t.relname):i=m.quoteIdentifier(t.relname),e.push(i),t.alias){let n=this.Alias(t.alias,s);e.push(n);}return e.join(" ")}formatIntervalTypeMods(t,s){if(!t||t.length===0)return null;let e=c.unwrapList(t),i={4:"year",2:"month",8:"day",1024:"hour",2048:"minute",4096:"second",6:"year to month",1032:"day to hour",3080:"day to minute",7176:"day to second",3072:"hour to minute",7168:"hour to second",6144:"minute to second"};if(e.length===1){let n=e[0];if(n&&typeof n=="object"){let o=n.A_Const;if(o&&o.ival!==void 0){let u=typeof o.ival=="object"?o.ival.ival:o.ival;if(u!==void 0)return i[u]?i[u]:`(${u})`}}}if(e.length===2){let n=e[0],o=e[1];if(n&&typeof n=="object"){let u=n.A_Const;if(u&&u.ival!==void 0){let l=typeof u.ival=="object"?u.ival.ival:u.ival;if(o&&typeof o=="object"){let p=o.A_Const;if(p&&p.ival!==void 0){let f=typeof p.ival=="object"?p.ival.ival!==void 0?p.ival.ival:0:p.ival;if(l===32767&&f>=0)return `(${f})`;if(i[l]&&f>=0)return `${i[l]}(${f})`}}}}}let r=e.map(n=>{if(n&&typeof n=="object"){let u=n.A_Const;if(u&&u.ival!==void 0){let l=typeof u.ival=="object"?u.ival.ival:u.ival;if(l!==void 0)return i[l]||l.toString()}}return this.visit(n,s)||""}).filter(Boolean);return r.length>0?r.join(" "):null}formatTypeMods(t,s){if(!t||t.length===0)return null;let i=c.unwrapList(t).filter(r=>{if(r&&typeof r=="object"){let n=r.A_Const;if(n&&n.ival&&(typeof n.ival=="object"?n.ival.ival:n.ival)===32767)return false}return true});return i.length===0?null:i.map(r=>this.deparse(r,s)).join(", ")}formatSingleTypeMod(t,s){switch(s){case "varchar":case "bpchar":case "char":if(t>4)return (t-64).toString();break;case "numeric":case "decimal":if(t>4){let e=t-4,i=e>>16&65535,r=e&65535;return r>0?`${i},${r}`:i.toString()}break;case "time":case "timetz":case "timestamp":case "timestamptz":case "interval":if(t>=0)return t.toString();break}return null}getPgCatalogTypeName(t,s){switch(t){case "bpchar":return s!=null?"char":"bpchar";case "varchar":return "varchar";case "numeric":return "numeric";case "bool":return "boolean";case "int2":return "smallint";case "int4":return "int";case "int8":return "bigint";case "real":return "float4";case "time":return "time";case "timestamp":return "timestamp";case "interval":return "interval";case "bit":return "bit";default:return t}}isPgCatalogType(t){let s=t.replace(/^pg_catalog\./,"");if(ul.includes(s))return true;for(let[e,i]of ll)if(i.includes(s))return true;return false}A_ArrayExpr(t,s){return `ARRAY[${c.unwrapList(t.elements).map(r=>this.visit(r,s)).join(", ")}]`}A_Indices(t,s){let e=[];return t.is_slice?(t.lidx&&e.push(this.visit(t.lidx,s)),e.push(":"),t.uidx&&e.push(this.visit(t.uidx,s))):t.uidx&&e.push(this.visit(t.uidx,s)),`[${e.join("")}]`}A_Indirection(t,s){let e=this.visit(t.arg,s),i=this.getNodeType(t.arg);(i==="TypeCast"||i==="SubLink"||i==="A_Expr"||i==="FuncCall"||i==="A_Indirection"||i==="ColumnRef"||i==="RowExpr")&&(e=`(${e})`);let r=[e],n=c.unwrapList(t.indirection);for(let o of n)if(o.String||o.A_Star){let u=o.A_Star?"*":m.quoteIdentifier(o.String.sval||o.String.str);r.push(`.${u}`);}else r.push(this.visit(o,s));return r.join("")}A_Star(t,s){return "*"}CaseExpr(t,s){let e=["CASE"];t.arg&&e.push(this.visit(t.arg,s));let i=c.unwrapList(t.args);if(s.isPretty()&&i.length>0){for(let r of i){let n=this.visit(r,s);this.containsMultilineStringLiteral(n)?e.push(s.newline()+n):e.push(s.newline()+s.indent(n));}if(t.defresult){let r=this.visit(t.defresult,s);this.containsMultilineStringLiteral(r)?e.push(s.newline()+"ELSE "+r):e.push(s.newline()+s.indent("ELSE "+r));}return e.push(s.newline()+"END"),e.join(" ")}else {for(let r of i)e.push(this.visit(r,s));return t.defresult&&(e.push("ELSE"),e.push(this.visit(t.defresult,s))),e.push("END"),e.join(" ")}}CoalesceExpr(t,s){return `COALESCE(${c.unwrapList(t.args).map(r=>this.visit(r,s)).join(", ")})`}TypeCast(t,s){let e=this.visit(t.arg,s),i=this.TypeName(t.typeName,s);if(i==="bpchar"||i==="pg_catalog.bpchar"){let r=t.typeName?.names;if(r&&r.length===2&&r[0]?.String?.sval==="pg_catalog"&&r[1]?.String?.sval==="bpchar")return `CAST(${e} AS ${i})`}if(this.isPgCatalogType(i)){let r=this.getNodeType(t.arg),n=r==="A_Const"||r==="ColumnRef",o=r==="FuncCall";if((n||o)&&!(n&&(e.includes("(")||e.startsWith("-")))){let l=i.replace("pg_catalog.","");return o?`${s.parens(e)}::${l}`:`${e}::${l}`}}return `CAST(${e} AS ${i})`}CollateClause(t,s){let e=[];if(t.arg){let i=this.visit(t.arg,s),r=this.getNodeType(t.arg);(r==="A_Expr"||r==="FuncCall"||r==="SubLink")&&(i=`(${i})`),e.push(i);}if(e.push("COLLATE"),t.collname){let i=c.unwrapList(t.collname);e.push(i.map(r=>this.visit(r,s)).join("."));}return e.join(" ")}BooleanTest(t,s){let e=[],i=s.spawn("BooleanTest",{bool:true});switch(e.push(this.visit(t.arg,i)),t.booltesttype){case "IS_TRUE":e.push("IS TRUE");break;case "IS_NOT_TRUE":e.push("IS NOT TRUE");break;case "IS_FALSE":e.push("IS FALSE");break;case "IS_NOT_FALSE":e.push("IS NOT FALSE");break;case "IS_UNKNOWN":e.push("IS UNKNOWN");break;case "IS_NOT_UNKNOWN":e.push("IS NOT UNKNOWN");break}return e.join(" ")}NullTest(t,s){let e=[];switch(e.push(this.visit(t.arg,s)),t.nulltesttype){case "IS_NULL":e.push("IS NULL");break;case "IS_NOT_NULL":e.push("IS NOT NULL");break}return e.join(" ")}quoteIfNeeded(t){return m.quoteIdentifier(t)}preserveOperatorDefElemCase(t){return {leftarg:"Leftarg",rightarg:"Rightarg",procedure:"Procedure",function:"Function",commutator:"Commutator",negator:"Negator",restrict:"Restrict",join:"Join",hashes:"Hashes",merges:"Merges"}[t.toLowerCase()]||t}String(t,s){if(s.isStringLiteral||s.isEnumValue)return m.formatEString(t.sval||"");let e=t.sval||"";return s.parentNodeTypes.includes("DefElem")||s.parentNodeTypes.includes("CreateOpClassItem")||s.parentNodeTypes.includes("ObjectWithArgs")&&/^[+\-*/<>=~!@#%^&|`?]+$/.test(e)?e:m.quoteIdentifier(e)}Integer(t,s){return t.ival?.toString()||"0"}Float(t,s){return t.fval||"0.0"}Boolean(t,s){return t.boolval?"true":"false"}BitString(t,s){return t.bsval.startsWith("x")?`x'${t.bsval.substring(1)}'`:t.bsval.startsWith("b")?`b'${t.bsval.substring(1)}'`:`b'${t.bsval}'`}Null(t,s){return "NULL"}List(t,s){return !t.items||t.items.length===0?"":t.items.map(e=>this.visit(e,s)).join(", ")}CreateStmt(t,s){let e=["CREATE"];if(t.relation&&t.relation.relpersistence==="t"?e.push("TEMPORARY"):t.relation&&t.relation.relpersistence==="u"&&e.push("UNLOGGED"),t.if_not_exists?e.push("TABLE IF NOT EXISTS"):e.push("TABLE"),e.push(this.RangeVar(t.relation,s)),t.ofTypename){if(e.push("OF"),e.push(this.TypeName(t.ofTypename,s)),t.tableElts){let r=c.unwrapList(t.tableElts).map(n=>this.deparse(n,s));e.push(s.parens(r.join(", ")));}}else if(t.tableElts){let r=c.unwrapList(t.tableElts).map(n=>this.deparse(n,s.spawn("CreateStmt")));if(s.isPretty()){let n=r.map(o=>{let u=o.trim();return u.startsWith(`
21
- `)?s.indent(u.substring(1)):s.indent(u)}).join(","+s.newline());e.push("("+s.newline()+n+s.newline()+")");}else e.push(s.parens(r.join(", ")));}else t.partbound||e.push(s.parens(""));if(t.partbound&&t.inhRelations&&t.inhRelations.length>0){e.push("PARTITION OF");let r=c.unwrapList(t.inhRelations).map(n=>this.visit(n,s));if(e.push(r[0]),t.partbound.strategy==="l"&&t.partbound.listdatums){e.push("FOR VALUES IN");let n=c.unwrapList(t.partbound.listdatums).map(o=>this.visit(o,s)).join(", ");e.push(`(${n})`);}else if(t.partbound.strategy==="r"&&(t.partbound.lowerdatums||t.partbound.upperdatums)){if(e.push("FOR VALUES FROM"),t.partbound.lowerdatums){let n=c.unwrapList(t.partbound.lowerdatums).map(o=>this.visit(o,s)).join(", ");e.push(`(${n})`);}if(t.partbound.upperdatums){e.push("TO");let n=c.unwrapList(t.partbound.upperdatums).map(o=>this.visit(o,s)).join(", ");e.push(`(${n})`);}}else if(t.partbound.strategy==="h"&&t.partbound.modulus!==void 0){e.push("FOR VALUES WITH");let n=t.partbound.remainder!==void 0?t.partbound.remainder:0;e.push(`(MODULUS ${t.partbound.modulus}, REMAINDER ${n})`);}else t.partbound.is_default&&e.push("DEFAULT");}else if(t.inhRelations){e.push("INHERITS");let r=c.unwrapList(t.inhRelations).map(n=>this.visit(n,s));e.push(s.parens(r.join(", ")));}if(t.partspec){switch(e.push("PARTITION BY"),t.partspec.strategy){case "PARTITION_STRATEGY_HASH":e.push("HASH");break;case "PARTITION_STRATEGY_LIST":e.push("LIST");break;case "PARTITION_STRATEGY_RANGE":e.push("RANGE");break}if(t.partspec.partParams&&t.partspec.partParams.length>0){let i=c.unwrapList(t.partspec.partParams).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}}if(t.oncommit&&t.oncommit!=="ONCOMMIT_NOOP")switch(e.push("ON COMMIT"),t.oncommit){case "ONCOMMIT_PRESERVE_ROWS":e.push("PRESERVE ROWS");break;case "ONCOMMIT_DELETE_ROWS":e.push("DELETE ROWS");break;case "ONCOMMIT_DROP":e.push("DROP");break}if(t.options&&t.options.length>0){let i=s.spawn("CreateStmt"),r=t.options.map(n=>this.deparse(n,i));e.push("WITH",`(${r.join(", ")})`);}return t.accessMethod&&(e.push("USING"),e.push(this.quoteIfNeeded(t.accessMethod))),e.join(" ")}ColumnDef(t,s){let e=[];if(t.colname&&e.push(m.quoteIdentifier(t.colname)),t.typeName&&e.push(this.TypeName(t.typeName,s)),t.fdwoptions&&t.fdwoptions.length>0){e.push("OPTIONS");let i=s.spawn("ColumnDef"),r=c.unwrapList(t.fdwoptions).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}if(t.collClause&&e.push(this.CollateClause(t.collClause,s)),t.constraints){let r=c.unwrapList(t.constraints).map(n=>{let o=s.spawn("ColumnDef",{isColumnConstraint:true});return this.visit(n,o)});e.push(...r);}return t.raw_default&&(e.push("DEFAULT"),e.push(this.visit(t.raw_default,s))),t.generated&&(e.push("GENERATED ALWAYS AS"),e.push(`(${t.generated})`),e.push("STORED")),t.is_not_null&&e.push("NOT NULL"),e.join(" ")}Constraint(t,s){let e=[];switch(t.conname&&(t.contype==="CONSTR_CHECK"||t.contype==="CONSTR_UNIQUE"||t.contype==="CONSTR_PRIMARY"||t.contype==="CONSTR_FOREIGN")&&(e.push("CONSTRAINT"),e.push(m.quoteIdentifier(t.conname))),t.contype){case "CONSTR_NULL":e.push("NULL");break;case "CONSTR_NOTNULL":e.push("NOT NULL");break;case "CONSTR_DEFAULT":e.push("DEFAULT"),t.raw_expr&&e.push(this.visit(t.raw_expr,s));break;case "CONSTR_CHECK":if(s.isPretty()&&!s.isColumnConstraint?e.push(`
22
- `+s.indent("CHECK")):e.push("CHECK"),t.raw_expr)if(s.isPretty()){let i=this.visit(t.raw_expr,s);i.includes(`
23
- `)?e.push(`(
24
- `+s.indent(i)+`
25
- )`):e.push(`(${i})`);}else e.push(s.parens(this.visit(t.raw_expr,s)));t.skip_validation&&e.push("NOT VALID"),t.is_no_inherit&&!s.isDomainConstraint&&e.push("NO INHERIT");break;case "CONSTR_GENERATED":e.push("GENERATED"),t.generated_when==="a"?e.push("ALWAYS"):t.generated_when==="s"&&e.push("BY DEFAULT"),e.push("AS"),t.raw_expr&&e.push(s.parens(this.visit(t.raw_expr,s))),e.push("STORED");break;case "CONSTR_IDENTITY":if(e.push("GENERATED"),t.generated_when==="a"?e.push("ALWAYS"):(t.generated_when==="d"||t.generated_when==="s")&&e.push("BY DEFAULT"),e.push("AS IDENTITY"),t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>{if(r.DefElem){let n=r.DefElem;if(n.defname==="sequence_name")return n.arg&&n.arg.List?`SEQUENCE NAME ${c.unwrapList(n.arg).map(l=>this.visit(l,s)).join(".")}`:"SEQUENCE NAME";if(n.defname==="start")return `START WITH ${n.arg?this.visit(n.arg,s):""}`;if(n.defname==="increment")return `INCREMENT BY ${n.arg?this.visit(n.arg,s):""}`;if(n.defname==="minvalue")return n.arg?`MINVALUE ${this.visit(n.arg,s)}`:"NO MINVALUE";if(n.defname==="maxvalue")return n.arg?`MAXVALUE ${this.visit(n.arg,s)}`:"NO MAXVALUE";if(n.defname==="cache")return `CACHE ${n.arg?this.visit(n.arg,s):""}`;if(n.defname==="cycle")return (n.arg?this.visit(n.arg,s):"")==="true"?"CYCLE":"NO CYCLE";let o=n.arg?this.visit(n.arg,s):"";return `${n.defname.toUpperCase()} ${o}`}return this.visit(r,s)});if(s.isPretty()){let r=i.map(n=>s.indent(n));e.push(`(
26
- `+r.join(`
27
- `)+`
28
- )`);}else e.push(`(${i.join(" ")})`);}break;case "CONSTR_PRIMARY":if(e.push("PRIMARY KEY"),t.keys&&t.keys.length>0){let i=c.unwrapList(t.keys).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}t.indexname&&(e.push("USING INDEX"),e.push(t.indexname));break;case "CONSTR_UNIQUE":if(s.isPretty()&&!s.isColumnConstraint?e.push(`
29
- `+s.indent("UNIQUE")):e.push("UNIQUE"),t.nulls_not_distinct&&e.push("NULLS NOT DISTINCT"),t.keys&&t.keys.length>0){let i=c.unwrapList(t.keys).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}t.indexname&&(e.push("USING INDEX"),e.push(t.indexname));break;case "CONSTR_FOREIGN":if(s.isColumnConstraint)e.push("REFERENCES");else if(s.isPretty()){if(e.push(`
30
- `+s.indent("FOREIGN KEY")),t.fk_attrs&&t.fk_attrs.length>0){let i=c.unwrapList(t.fk_attrs).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}e.push(`
31
- `+s.indent("REFERENCES"));}else {if(e.push("FOREIGN KEY"),t.fk_attrs&&t.fk_attrs.length>0){let i=c.unwrapList(t.fk_attrs).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}e.push("REFERENCES");}if(t.pktable)if(s.isPretty()&&!s.isColumnConstraint){let i=e.length-1;i>=0&&e[i].includes("REFERENCES")?e[i]+=" "+this.RangeVar(t.pktable,s):e.push(this.RangeVar(t.pktable,s));}else e.push(this.RangeVar(t.pktable,s));if(t.pk_attrs&&t.pk_attrs.length>0){let i=c.unwrapList(t.pk_attrs).map(r=>this.visit(r,s)).join(", ");if(s.isPretty()&&!s.isColumnConstraint){let r=e.length-1;r>=0?e[r]+=` (${i})`:e.push(`(${i})`);}else e.push(`(${i})`);}if(t.fk_matchtype&&t.fk_matchtype!=="s"){let i="";switch(t.fk_matchtype){case "f":i="MATCH FULL";break;case "p":i="MATCH PARTIAL";break}s.isPretty()&&!s.isColumnConstraint?e.push(`
32
- `+s.indent(i)):e.push(i);}if(t.fk_upd_action&&t.fk_upd_action!=="a"){let i="ON UPDATE ";switch(t.fk_upd_action){case "r":i+="RESTRICT";break;case "c":i+="CASCADE";break;case "n":i+="SET NULL";break;case "d":i+="SET DEFAULT";break}s.isPretty()?e.push(`
33
- `+s.indent(i)):(e.push("ON UPDATE"),e.push(i.replace("ON UPDATE ","")));}if(t.fk_del_action&&t.fk_del_action!=="a"){let i="ON DELETE ";switch(t.fk_del_action){case "r":i+="RESTRICT";break;case "c":i+="CASCADE";break;case "n":i+="SET NULL";break;case "d":i+="SET DEFAULT";break}s.isPretty()?e.push(`
34
- `+s.indent(i)):(e.push("ON DELETE"),e.push(i.replace("ON DELETE ","")));}t.skip_validation&&!s.isDomainConstraint&&(s.isPretty()&&!s.isColumnConstraint?e.push(`
35
- `+s.indent("NOT VALID")):e.push("NOT VALID"));break;case "CONSTR_ATTR_DEFERRABLE":e.push("DEFERRABLE");break;case "CONSTR_ATTR_NOT_DEFERRABLE":e.push("NOT DEFERRABLE");break;case "CONSTR_ATTR_DEFERRED":e.push("INITIALLY DEFERRED");break;case "CONSTR_ATTR_IMMEDIATE":e.push("INITIALLY IMMEDIATE");break;case "CONSTR_EXCLUSION":if(e.push("EXCLUDE"),t.access_method&&(e.push("USING"),e.push(t.access_method)),t.exclusions&&t.exclusions.length>0){let i=c.unwrapList(t.exclusions).map(r=>{if(this.getNodeType(r)==="List"){let n=c.unwrapList(r);if(n.length>=2){let o=this.visit(n[0],s),u=n[1],l="";if(this.getNodeType(u)==="List"){let p=c.unwrapList(u);p.length>0&&p[0].String&&(l=p[0].String.sval);}else u.String?l=u.String.sval:l=this.visit(u,s);return `${o} WITH ${l}`}}return this.visit(r,s)});e.push(`(${i.join(", ")})`);}t.where_clause&&(e.push("WHERE"),e.push(s.parens(this.visit(t.where_clause,s))));break}if((t.contype==="CONSTR_PRIMARY"||t.contype==="CONSTR_UNIQUE"||t.contype==="CONSTR_FOREIGN")&&(t.deferrable?s.isPretty()&&t.contype==="CONSTR_FOREIGN"?(e.push(`
36
- `+s.indent("DEFERRABLE")),t.initdeferred===true?e.push(`
37
- `+s.indent("INITIALLY DEFERRED")):t.initdeferred===false&&e.push(`
38
- `+s.indent("INITIALLY IMMEDIATE"))):(e.push("DEFERRABLE"),t.initdeferred===true?e.push("INITIALLY DEFERRED"):t.initdeferred===false&&e.push("INITIALLY IMMEDIATE")):t.deferrable===false&&(s.isPretty()&&t.contype==="CONSTR_FOREIGN"?e.push(`
39
- `+s.indent("NOT DEFERRABLE")):e.push("NOT DEFERRABLE"))),s.isPretty()&&t.contype==="CONSTR_FOREIGN"){let i="";for(let r=0;r<e.length;r++)e[r].startsWith(`
40
- `)||r>0&&!e[r-1].startsWith(`
41
- `)&&(i+=" "),i+=e[r];return i}return e.join(" ")}SubLink(t,s){let e=s.parens(this.visit(t.subselect,s));switch(t.subLinkType){case "ANY_SUBLINK":if(t.testexpr&&t.operName){let i=this.visit(t.testexpr,s),r=this.deparseOperatorName(t.operName,s);return `${i} ${r} ANY ${e}`}else if(t.testexpr)return `${this.visit(t.testexpr,s)} IN ${e}`;return e;case "ALL_SUBLINK":if(t.testexpr&&t.operName){let i=this.visit(t.testexpr,s),r=this.deparseOperatorName(t.operName,s);return `${i} ${r} ALL ${e}`}return e;case "EXISTS_SUBLINK":return `EXISTS ${e}`;case "ARRAY_SUBLINK":return `ARRAY${e}`;default:return e}}CaseWhen(t,s){let e=["WHEN"];return t.expr&&e.push(this.visit(t.expr,s)),e.push("THEN"),t.result&&e.push(this.visit(t.result,s)),e.join(" ")}WindowDef(t,s){let e=[];t.name&&e.push(t.name);let i=[];if(t.partitionClause){let n=c.unwrapList(t.partitionClause).map(o=>this.visit(o,s));i.push(`PARTITION BY ${n.join(", ")}`);}if(t.orderClause){let n=c.unwrapList(t.orderClause).map(o=>this.visit(o,s));i.push(`ORDER BY ${n.join(", ")}`);}if(t.frameOptions&&t.frameOptions!==1058){let r=this.formatWindowFrame(t,s.spawn("WindowDef"));r&&i.push(r);}return i.length>0?(t.name&&e.push("AS"),e.push(`(${i.join(" ")})`)):t.name?(e.push("AS"),e.push("()")):e.length===0&&e.push("()"),e.join(" ")}formatWindowFrame(t,s){if(!t.frameOptions)return null;let e=t.frameOptions,r=e&-229377,n=[];if(e&1&&(e&2?n.push("RANGE"):e&4?n.push("ROWS"):e&8&&n.push("GROUPS")),n.length===0)return null;let o=[];if(r===789)o.push("CURRENT ROW"),o.push("AND UNBOUNDED FOLLOWING");else if(r===1077)o.push("UNBOUNDED PRECEDING"),o.push("AND CURRENT ROW");else if(r===18453)t.startOffset&&t.endOffset&&(o.push(`${this.visit(t.startOffset,s)} PRECEDING`),o.push(`AND ${this.visit(t.endOffset,s)} FOLLOWING`));else if(r===1557)o.push("CURRENT ROW"),o.push("AND CURRENT ROW");else if(r===16917)o.push("CURRENT ROW"),t.endOffset&&o.push(`AND ${this.visit(t.endOffset,s)} FOLLOWING`);else {if(r===1058)return null;t.startOffset?e&1024?o.push(`${this.visit(t.startOffset,s)} PRECEDING`):e&2048?o.push(`${this.visit(t.startOffset,s)} FOLLOWING`):o.push(`${this.visit(t.startOffset,s)} PRECEDING`):e&16?o.push("UNBOUNDED PRECEDING"):e&32&&o.push("CURRENT ROW"),t.endOffset?o.length>0&&(e&4096?o.push(`AND ${this.visit(t.endOffset,s)} PRECEDING`):e&8192?o.push(`AND ${this.visit(t.endOffset,s)} FOLLOWING`):o.push(`AND ${this.visit(t.endOffset,s)} FOLLOWING`)):e&128?o.length>0&&o.push("AND UNBOUNDED FOLLOWING"):(o.length>0&&o.push("AND CURRENT ROW"));}return o.length>0&&(n.push("BETWEEN"),n.push(o.join(" "))),e&32768?n.push("EXCLUDE CURRENT ROW"):e&65536?n.push("EXCLUDE GROUP"):e&131072&&n.push("EXCLUDE TIES"),n.join(" ")}SortBy(t,s){let e=[];if(t.node&&e.push(this.visit(t.node,s)),t.sortby_dir==="SORTBY_USING"&&t.useOp){e.push("USING");let i=c.unwrapList(t.useOp);e.push(i.map(r=>r.String&&r.String.sval?r.String.sval:this.visit(r,s)).join("."));}else t.sortby_dir==="SORTBY_ASC"?e.push("ASC"):t.sortby_dir==="SORTBY_DESC"&&e.push("DESC");return t.sortby_nulls==="SORTBY_NULLS_FIRST"?e.push("NULLS FIRST"):t.sortby_nulls==="SORTBY_NULLS_LAST"&&e.push("NULLS LAST"),e.join(" ")}GroupingSet(t,s){switch(t.kind){case "GROUPING_SET_EMPTY":return "()";case "GROUPING_SET_SIMPLE":return "";case "GROUPING_SET_ROLLUP":return `ROLLUP (${c.unwrapList(t.content).map(l=>this.visit(l,s)).join(", ")})`;case "GROUPING_SET_CUBE":return `CUBE (${c.unwrapList(t.content).map(l=>this.visit(l,s)).join(", ")})`;case "GROUPING_SET_SETS":return `GROUPING SETS (${c.unwrapList(t.content).map(l=>this.visit(l,s)).join(", ")})`;default:return ""}}CommonTableExpr(t,s){let e=[];if(t.ctename&&e.push(t.ctename),t.aliascolnames){let r=c.unwrapList(t.aliascolnames).map(n=>this.visit(n,s));e[e.length-1]+=s.parens(r.join(", "));}return e.push("AS"),t.ctematerialized==="CTEMaterializeNever"?e.push("NOT MATERIALIZED"):t.ctematerialized==="CTEMaterializeAlways"&&e.push("MATERIALIZED"),t.ctequery&&e.push(s.parens(this.visit(t.ctequery,s))),e.join(" ")}ParamRef(t,s){return `$${t.number}`}LockingClause(t,s){let e=[];switch(t.strength){case "LCS_FORUPDATE":e.push("FOR UPDATE");break;case "LCS_FORSHARE":e.push("FOR SHARE");break;case "LCS_FORKEYSHARE":e.push("FOR KEY SHARE");break;case "LCS_FORNOKEYUPDATE":e.push("FOR NO KEY UPDATE");break;default:throw new Error(`Unsupported locking strength: ${t.strength}`)}if(t.lockedRels&&t.lockedRels.length>0){e.push("OF");let i=c.unwrapList(t.lockedRels).map(r=>this.visit(r,s)).join(", ");e.push(i);}return t.waitPolicy==="LockWaitSkip"?e.push("SKIP LOCKED"):t.waitPolicy==="LockWaitError"&&e.push("NOWAIT"),e.join(" ")}MinMaxExpr(t,s){let i=c.unwrapList(t.args).map(r=>this.visit(r,s));return t.op==="IS_GREATEST"?`GREATEST(${i.join(", ")})`:`LEAST(${i.join(", ")})`}RowExpr(t,s){let i=c.unwrapList(t.args).map(r=>this.visit(r,s));return t.row_format==="COERCE_IMPLICIT_CAST"?`(${i.join(", ")})`:`ROW(${i.join(", ")})`}OpExpr(t,s){let e=c.unwrapList(t.args);if(e.length===2){let i=this.visit(e[0],s),r=this.visit(e[1],s),n=this.getOperatorName(t.opno);return `${i} ${n} ${r}`}else if(e.length===1){let i=this.visit(e[0],s);return `${this.getOperatorName(t.opno)} ${i}`}throw new Error(`Unsupported OpExpr with ${e.length} arguments`)}DistinctExpr(t,s){let e=c.unwrapList(t.args);if(e.length===2){let i=s.spawn("DistinctExpr",{isStringLiteral:true}),r=this.visit(e[0],i),n=this.visit(e[1],i);return `${r} IS DISTINCT FROM ${n}`}throw new Error(`DistinctExpr requires exactly 2 arguments, got ${e.length}`)}NullIfExpr(t,s){let e=c.unwrapList(t.args);if(e.length===2){let i=s.spawn("NullIfExpr",{isStringLiteral:true}),r=this.visit(e[0],i),n=this.visit(e[1],i);return `NULLIF(${r}, ${n})`}throw new Error(`NullIfExpr requires exactly 2 arguments, got ${e.length}`)}ScalarArrayOpExpr(t,s){let e=c.unwrapList(t.args);if(e.length===2){let i=this.visit(e[0],s),r=this.visit(e[1],s),n=t.useOr?"ANY":"ALL",o=this.getOperatorName(t.opno);return `${i} ${o} ${n}(${r})`}throw new Error(`ScalarArrayOpExpr requires exactly 2 arguments, got ${e.length}`)}Aggref(t,s){let e=this.getAggFunctionName(t.aggfnoid),i=e+"(",r=t.aggdistinct&&t.aggdistinct.length>0;if(t.args&&t.args.length>0){let o=c.unwrapList(t.args).map(u=>this.visit(u,s));r?i+="DISTINCT "+o.join(", "):i+=o.join(", ");}else e.toUpperCase()==="COUNT"&&(r?i+="DISTINCT *":i+="*");if(i+=")",t.aggorder&&t.aggorder.length>0){i+=" ORDER BY ";let o=c.unwrapList(t.aggorder).map(u=>this.visit(u,s));i+=o.join(", ");}return i}WindowFunc(t,s){let i=this.getWindowFunctionName(t.winfnoid)+"(";if(t.args&&t.args.length>0){let n=c.unwrapList(t.args).map(o=>this.visit(o,s));i+=n.join(", ");}return i+=") OVER (",t.winref&&typeof t.winref=="object"?i+=this.visit(t.winref,s):t.winref&&(i+="ORDER BY created_at ASC"),i+=")",i}FieldSelect(t,s){let e=[];return t.arg&&e.push(this.visit(t.arg,s)),t.fieldnum!==void 0&&e.push(`.field_${t.fieldnum}`),e.join("")}RelabelType(t,s){if(t.arg){let e=s.spawn("RelabelType",{isStringLiteral:true});return this.visit(t.arg,e)}return ""}CoerceViaIO(t,s){return t.arg?this.visit(t.arg,s):""}ArrayCoerceExpr(t,s){return t.arg?this.visit(t.arg,s):""}ConvertRowtypeExpr(t,s){if(t.arg){let e=s.spawn("ConvertRowtypeExpr",{isStringLiteral:true});return this.visit(t.arg,e)}return ""}NamedArgExpr(t,s){let e=[];return t.name&&(e.push(t.name),e.push("=>")),t.arg&&e.push(this.visit(t.arg,s)),e.join(" ")}ViewStmt(t,s){let e=[];if(e.push("CREATE"),t.replace&&e.push("OR REPLACE"),t.view&&t.view.relpersistence==="t"&&e.push("TEMPORARY"),e.push("VIEW"),t.view&&e.push(this.RangeVar(t.view,s)),t.aliases&&t.aliases.length>0){let i=c.unwrapList(t.aliases).map(r=>this.visit(r,s));e.push(s.parens(i.join(", ")));}if(t.options&&t.options.length>0){let i=s.spawn("ViewStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`WITH (${r.join(", ")})`);}if(e.push("AS"),t.query&&e.push(this.visit(t.query,s)),t.withCheckOption)switch(t.withCheckOption){case "CASCADED_CHECK_OPTION":e.push("WITH CASCADED CHECK OPTION");break;case "LOCAL_CHECK_OPTION":e.push("WITH LOCAL CHECK OPTION");break}return e.join(" ")}IndexStmt(t,s){let e=[];if(e.push("CREATE"),t.unique&&e.push("UNIQUE"),e.push("INDEX"),t.concurrent&&e.push("CONCURRENTLY"),t.if_not_exists&&e.push("IF NOT EXISTS"),t.idxname&&e.push(m.quoteIdentifier(t.idxname)),e.push("ON"),t.relation&&e.push(this.RangeVar(t.relation,s)),t.accessMethod&&t.accessMethod!=="btree"&&(e.push("USING"),e.push(t.accessMethod)),t.indexParams&&t.indexParams.length>0){let i=c.unwrapList(t.indexParams).map(r=>this.visit(r,s));e.push(s.parens(i.join(", ")));}if(t.indexIncludingParams&&t.indexIncludingParams.length>0){let i=c.unwrapList(t.indexIncludingParams).map(r=>this.visit(r,s));e.push("INCLUDE"),e.push(s.parens(i.join(", ")));}if(t.whereClause&&(e.push("WHERE"),e.push(this.visit(t.whereClause,s))),t.options&&t.options.length>0){let i=s.spawn("IndexStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push("WITH"),e.push(s.parens(r.join(", ")));}return t.nulls_not_distinct&&e.push("NULLS NOT DISTINCT"),t.tableSpace&&(e.push("TABLESPACE"),e.push(m.quoteIdentifier(t.tableSpace))),e.join(" ")}IndexElem(t,s){let e=[];if(t.name?e.push(m.quoteIdentifier(t.name)):t.expr&&e.push(s.parens(this.visit(t.expr,s))),t.collation&&t.collation.length>0){let i=c.unwrapList(t.collation).map(r=>this.visit(r,s));e.push("COLLATE"),e.push(i.join("."));}if(t.opclass&&t.opclass.length>0){let r=c.unwrapList(t.opclass).map(n=>this.visit(n,s)).join(".");if(t.opclassopts&&t.opclassopts.length>0){let n=c.unwrapList(t.opclassopts).map(o=>{if(o.DefElem&&o.DefElem.arg&&this.getNodeType(o.DefElem.arg)==="String"){let u=this.getNodeData(o.DefElem.arg);return `${o.DefElem.defname}='${u.sval}'`}return this.visit(o,s.spawn("IndexElem"))});r+=`(${n.join(", ")})`;}e.push(r);}if(t.ordering)switch(t.ordering){case "SORTBY_ASC":e.push("ASC");break;case "SORTBY_DESC":e.push("DESC");break}if(t.nulls_ordering)switch(t.nulls_ordering){case "SORTBY_NULLS_FIRST":e.push("NULLS FIRST");break;case "SORTBY_NULLS_LAST":e.push("NULLS LAST");break}return e.join(" ")}PartitionElem(t,s){let e=[];if(t.name?e.push(m.quoteIdentifier(t.name)):t.expr&&e.push(s.parens(this.visit(t.expr,s))),t.collation&&t.collation.length>0){let i=c.unwrapList(t.collation).map(r=>this.visit(r,s));e.push("COLLATE"),e.push(i.join("."));}if(t.opclass&&t.opclass.length>0){let i=c.unwrapList(t.opclass).map(r=>this.visit(r,s));e.push(i.join("."));}return e.join(" ")}PartitionCmd(t,s){let e=[];if(t.concurrent&&e.push("CONCURRENTLY"),t.name&&e.push(this.visit(t.name,s)),t.bound)if(t.bound.strategy==="l"&&t.bound.listdatums){e.push("FOR VALUES IN");let i=c.unwrapList(t.bound.listdatums).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}else if(t.bound.strategy==="r"&&(t.bound.lowerdatums||t.bound.upperdatums)){if(e.push("FOR VALUES FROM"),t.bound.lowerdatums){let i=c.unwrapList(t.bound.lowerdatums).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}if(t.bound.upperdatums){e.push("TO");let i=c.unwrapList(t.bound.upperdatums).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}}else t.bound.strategy==="h"&&t.bound.modulus!==void 0&&t.bound.remainder!==void 0?(e.push("FOR VALUES WITH"),e.push(`(modulus ${t.bound.modulus}, remainder ${t.bound.remainder})`)):t.bound.is_default&&e.push("DEFAULT");return e.join(" ")}getAggFunctionName(t){return {2100:"avg",2101:"count",2102:"max",2103:"min",2104:"sum",2105:"stddev",2106:"variance",2107:"array_agg",2108:"string_agg"}[t||0]||"unknown_agg"}getWindowFunctionName(t){return {3100:"row_number",3101:"rank",3102:"dense_rank",3103:"percent_rank",3104:"cume_dist",3105:"ntile",3106:"lag",3107:"lead",3108:"first_value",3109:"last_value"}[t||0]||"unknown_window_func"}getOperatorName(t){return {96:"=",518:"<>",97:"<",521:">",523:"<=",525:">=",551:"+",552:"-",553:"*",554:"/",555:"%",484:"-",1752:"~~",1753:"!~~",1754:"~~*",1755:"!~~*",15:"=",58:"<",59:"<=",61:">",62:">="}[t||0]||"="}JoinExpr(t,s){let e=[];t.larg&&e.push(this.visit(t.larg,s));let i="";switch(t.isNatural&&(i="NATURAL "),t.jointype){case "JOIN_INNER":t.isNatural?i+="JOIN":!t.quals&&(!t.usingClause||t.usingClause.length===0)?i+="CROSS JOIN":i+="JOIN";break;case "JOIN_LEFT":i+="LEFT JOIN";break;case "JOIN_FULL":i+="FULL JOIN";break;case "JOIN_RIGHT":i+="RIGHT JOIN";break;default:i+="JOIN";}if(t.rarg){let n=this.visit(t.rarg,s);t.rarg&&"JoinExpr"in t.rarg&&!t.rarg.JoinExpr.alias&&(n=`(${n})`),s.isPretty()?e.push(s.newline()+i+" "+n):e.push(i+" "+n);}else s.isPretty()?e.push(s.newline()+i):e.push(i);if(t.usingClause&&t.usingClause.length>0){let o=c.unwrapList(t.usingClause).map(u=>this.visit(u,s));s.isPretty()?e.push(` USING (${o.join(", ")})`):e.push(`USING (${o.join(", ")})`);}else if(t.quals){let n=this.visit(t.quals,s);s.isPretty()?n.includes("AND")||n.includes("OR")||n.length>50?this.containsMultilineStringLiteral(n)?e.push(` ON ${n}`):e.push(` ON${s.newline()}${s.indent(n)}`):e.push(` ON ${n}`):e.push(`ON ${n}`);}let r;if(s.isPretty()?r=e.join(""):r=e.join(" "),t.join_using_alias&&t.join_using_alias.aliasname){let n=t.join_using_alias.aliasname;if(t.join_using_alias.colnames&&t.join_using_alias.colnames.length>0){let u=c.unwrapList(t.join_using_alias.colnames).map(l=>this.visit(l,s)).join(", ");n+=`(${u})`;}r+=` AS ${n}`;}if(t.alias&&t.alias.aliasname){let n=t.alias.aliasname;if(t.alias.colnames&&t.alias.colnames.length>0){let u=c.unwrapList(t.alias.colnames).map(l=>this.visit(l,s)).join(", ");n+=`(${u})`;}r=`(${r}) ${n}`;}return r}FromExpr(t,s){let r=c.unwrapList(t.fromlist).map(n=>this.visit(n,s)).join(", ");return t.quals&&(r+=` WHERE ${this.visit(t.quals,s)}`),r}TransactionStmt(t,s){let e=[];switch(t.kind){case "TRANS_STMT_BEGIN":e.push("BEGIN");break;case "TRANS_STMT_START":e.push("START TRANSACTION");break;case "TRANS_STMT_COMMIT":e.push("COMMIT");break;case "TRANS_STMT_ROLLBACK":e.push("ROLLBACK");break;case "TRANS_STMT_SAVEPOINT":e.push("SAVEPOINT"),t.savepoint_name&&e.push(m.quoteIdentifier(t.savepoint_name));break;case "TRANS_STMT_RELEASE":e.push("RELEASE SAVEPOINT"),t.savepoint_name&&e.push(m.quoteIdentifier(t.savepoint_name));break;case "TRANS_STMT_ROLLBACK_TO":e.push("ROLLBACK TO"),t.savepoint_name&&e.push(m.quoteIdentifier(t.savepoint_name));break;case "TRANS_STMT_PREPARE":e.push("PREPARE TRANSACTION"),t.gid&&e.push(`'${t.gid}'`);break;case "TRANS_STMT_COMMIT_PREPARED":e.push("COMMIT PREPARED"),t.gid&&e.push(`'${t.gid}'`);break;case "TRANS_STMT_ROLLBACK_PREPARED":e.push("ROLLBACK PREPARED"),t.gid&&e.push(`'${t.gid}'`);break;default:throw new Error(`Unsupported TransactionStmt kind: ${t.kind}`)}if(t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>{if(r.DefElem){let n=r.DefElem;if(n.defname==="transaction_read_only"){let o=false;if(n.arg){let u=this.getNodeData(n.arg);if(u.ival!==void 0)o=(typeof u.ival=="object"?u.ival.ival:u.ival)===1;else if(u.sval!==void 0){let p=(typeof u.sval=="object"?u.sval.sval:u.sval).replace(/'/g,"");o=p.toLowerCase()==="on"||p.toLowerCase()==="true";}}return o?"READ ONLY":"READ WRITE"}else if(n.defname==="transaction_isolation"){if(n.arg&&n.arg.A_Const&&n.arg.A_Const.sval)return `ISOLATION LEVEL ${n.arg.A_Const.sval.sval.toUpperCase()}`}else if(n.defname==="transaction_deferrable"){let o=false;if(n.arg){let u=this.getNodeData(n.arg);if(u.ival!==void 0)o=(typeof u.ival=="object"?u.ival.ival:u.ival)===1;else if(u.sval!==void 0){let p=(typeof u.sval=="object"?u.sval.sval:u.sval).replace(/'/g,"");o=p.toLowerCase()==="on"||p.toLowerCase()==="true";}}return o?"DEFERRABLE":"NOT DEFERRABLE"}}return this.visit(r,s)}).filter(Boolean);i.length>0&&e.push(i.join(", "));}return e.join(" ")}VariableSetStmt(t,s){switch(t.kind){case "VAR_SET_VALUE":let e=t.is_local?"LOCAL ":"",i=t.args?c.unwrapList(t.args).map(l=>{let p=this.getNodeData(l);if(p.sval!==void 0){let f=typeof p.sval=="object"?p.sval.sval:p.sval;return f===""||f.includes(" ")||f.includes("-")||/[A-Z]/.test(f)||/^\d/.test(f)||f.includes(".")||f.includes("$")||f.toLowerCase()==="all"||/^[+-]\d/.test(f)?`'${f}'`:f}return this.visit(l,s)}).join(", "):"",r=m.quoteIdentifier(t.name);return !t.args||t.args.length===0?`SET ${e}${r}`:`SET ${e}${r} TO ${i}`;case "VAR_SET_DEFAULT":return `SET ${m.quoteIdentifier(t.name)} TO DEFAULT`;case "VAR_SET_CURRENT":return `SET ${m.quoteIdentifier(t.name)} FROM CURRENT`;case "VAR_SET_MULTI":if(t.name==="TRANSACTION"||t.name==="SESSION CHARACTERISTICS"){let l=[];if(t.args){let p=c.unwrapList(t.args);for(let f of p)if(f.DefElem){let h=f.DefElem;if(h.defname==="transaction_isolation"){let E=h.arg?this.visit(h.arg,s):"";l.push(`ISOLATION LEVEL ${E.replace(/'/g,"").toUpperCase()}`);}else if(h.defname==="transaction_read_only"){let E=false;if(h.arg){let g=this.getNodeData(h.arg);if(g.ival!==void 0)E=(typeof g.ival=="object"?g.ival.ival:g.ival)===1;else if(g.sval!==void 0){let b=(typeof g.sval=="object"?g.sval.sval:g.sval).replace(/'/g,"");E=b.toLowerCase()==="on"||b.toLowerCase()==="true";}}l.push(E?"READ ONLY":"READ WRITE");}else if(h.defname==="transaction_deferrable"){let E=false;if(h.arg){let g=this.getNodeData(h.arg);if(g.ival!==void 0)E=(typeof g.ival=="object"?g.ival.ival:g.ival)===1;else if(g.sval!==void 0){let b=(typeof g.sval=="object"?g.sval.sval:g.sval).replace(/'/g,"");E=b.toLowerCase()==="on"||b.toLowerCase()==="true";}}l.push(E?"DEFERRABLE":"NOT DEFERRABLE");}}}return t.name==="SESSION CHARACTERISTICS"?`SET SESSION CHARACTERISTICS AS TRANSACTION ${l.join(", ")}`:`SET TRANSACTION ${l.join(", ")}`}else return `SET ${t.args?c.unwrapList(t.args).map(p=>p.VariableSetStmt?this.VariableSetStmt(p.VariableSetStmt,s):this.visit(p,s)).join(", "):""}`;case "VAR_RESET":return `RESET ${m.quoteIdentifier(t.name)}`;case "VAR_RESET_ALL":return "RESET ALL";default:throw new Error(`Unsupported VariableSetStmt kind: ${t.kind}`)}}VariableShowStmt(t,s){return t.name==="ALL"?"SHOW ALL":`SHOW ${t.name}`}CreateSchemaStmt(t,s){let e=["CREATE SCHEMA"];if(t.if_not_exists&&e.push("IF NOT EXISTS"),t.schemaname&&e.push(m.quoteIdentifier(t.schemaname)),t.authrole&&(e.push("AUTHORIZATION"),e.push(this.RoleSpec(t.authrole,s))),t.schemaElts&&t.schemaElts.length>0){let i=c.unwrapList(t.schemaElts).map(r=>this.visit(r,s)).join(" ");e.push(i);}return e.join(" ")}RoleSpec(t,s){if(t.rolename)return this.quoteIfNeeded(t.rolename);switch(t.roletype){case "ROLESPEC_PUBLIC":return "PUBLIC";case "ROLESPEC_CURRENT_USER":return "CURRENT_USER";case "ROLESPEC_SESSION_USER":return "SESSION_USER";case "ROLESPEC_CURRENT_ROLE":return "CURRENT_ROLE";default:return "PUBLIC"}}roletype(t,s){return t.rolename?t.rolename:""}DropStmt(t,s){let e=["DROP"];if(t.removeType)switch(t.removeType){case "OBJECT_TABLE":e.push("TABLE");break;case "OBJECT_VIEW":e.push("VIEW");break;case "OBJECT_INDEX":e.push("INDEX");break;case "OBJECT_SEQUENCE":e.push("SEQUENCE");break;case "OBJECT_SCHEMA":e.push("SCHEMA");break;case "OBJECT_FUNCTION":e.push("FUNCTION");break;case "OBJECT_PROCEDURE":e.push("PROCEDURE");break;case "OBJECT_DATABASE":e.push("DATABASE");break;case "OBJECT_EXTENSION":e.push("EXTENSION");break;case "OBJECT_TYPE":e.push("TYPE");break;case "OBJECT_DOMAIN":e.push("DOMAIN");break;case "OBJECT_TRIGGER":e.push("TRIGGER");break;case "OBJECT_RULE":e.push("RULE");break;case "OBJECT_POLICY":e.push("POLICY");break;case "OBJECT_ROLE":e.push("ROLE");break;case "OBJECT_TABLESPACE":e.push("TABLESPACE");break;case "OBJECT_FOREIGN_SERVER":e.push("SERVER");break;case "OBJECT_FDW":e.push("FOREIGN DATA WRAPPER");break;case "OBJECT_PUBLICATION":e.push("PUBLICATION");break;case "OBJECT_SUBSCRIPTION":e.push("SUBSCRIPTION");break;case "OBJECT_CAST":e.push("CAST");break;case "OBJECT_TRANSFORM":e.push("TRANSFORM");break;case "OBJECT_ACCESS_METHOD":e.push("ACCESS METHOD");break;case "OBJECT_OPERATOR":e.push("OPERATOR");break;case "OBJECT_FOREIGN_TABLE":e.push("FOREIGN TABLE");break;case "OBJECT_MATVIEW":e.push("MATERIALIZED VIEW");break;case "OBJECT_OPCLASS":e.push("OPERATOR CLASS");break;case "OBJECT_OPFAMILY":e.push("OPERATOR FAMILY");break;case "OBJECT_COLLATION":e.push("COLLATION");break;case "OBJECT_CONVERSION":e.push("CONVERSION");break;case "OBJECT_LANGUAGE":e.push("LANGUAGE");break;case "OBJECT_LARGEOBJECT":e.push("LARGE OBJECT");break;case "OBJECT_AGGREGATE":e.push("AGGREGATE");break;case "OBJECT_STATISTIC_EXT":e.push("STATISTICS");break;case "OBJECT_EVENT_TRIGGER":e.push("EVENT TRIGGER");break;case "OBJECT_AMOP":e.push("OPERATOR CLASS");break;case "OBJECT_AMPROC":e.push("OPERATOR CLASS");break;case "OBJECT_ATTRIBUTE":e.push("ATTRIBUTE");break;case "OBJECT_DEFAULT":e.push("DEFAULT");break;case "OBJECT_DEFACL":e.push("DEFAULT PRIVILEGES");break;case "OBJECT_PARAMETER_ACL":e.push("PARAMETER");break;case "OBJECT_PUBLICATION_NAMESPACE":e.push("PUBLICATION");break;case "OBJECT_PUBLICATION_REL":e.push("PUBLICATION");break;case "OBJECT_ROUTINE":e.push("ROUTINE");break;case "OBJECT_TABCONSTRAINT":e.push("CONSTRAINT");break;case "OBJECT_TSCONFIGURATION":e.push("TEXT SEARCH CONFIGURATION");break;case "OBJECT_TSDICTIONARY":e.push("TEXT SEARCH DICTIONARY");break;case "OBJECT_TSPARSER":e.push("TEXT SEARCH PARSER");break;case "OBJECT_TSTEMPLATE":e.push("TEXT SEARCH TEMPLATE");break;case "OBJECT_USER_MAPPING":e.push("USER MAPPING");break;default:throw new Error(`Unsupported DROP object type: ${t.removeType}`)}if(t.concurrent&&e.push("CONCURRENTLY"),t.missing_ok&&e.push("IF EXISTS"),t.objects&&t.objects.length>0)if(t.removeType==="OBJECT_POLICY"){let i=t.objects[0];if(i&&i.List&&i.List.items){let r=i.List.items.map(n=>n.String&&n.String.sval?n.String.sval:this.visit(n,s));if(r.length===3){let[n,o,u]=r;e.push(`${u} ON ${n}.${o}`);}else if(r.length===2){let[n,o]=r;e.push(`${o} ON ${n}`);}else e.push(r.join(", "));}}else if(t.removeType==="OBJECT_CAST"){let i=t.objects.map(r=>{if(r&&r.List&&r.List.items){let o=r.List.items.map(u=>this.visit(u,s)).filter(u=>u&&u.trim());if(o.length===2){let[u,l]=o;return `(${u} AS ${l})`}return o.join(".")}return this.visit(r,s)}).filter(r=>r&&r.trim()).join(", ");i&&e.push(i);}else if(t.removeType==="OBJECT_TRIGGER"||t.removeType==="OBJECT_RULE"){let i=t.objects.map(r=>{if(r&&r.List&&r.List.items){let o=r.List.items.map(u=>u.String&&u.String.sval?m.quoteIdentifier(u.String.sval):this.visit(u,s)).filter(u=>u&&u.trim());if(o.length===2){let[u,l]=o;return `${l} ON ${u}`}else if(o.length===3){let[u,l,p]=o;return `${p} ON ${u}.${l}`}return o.join(".")}return this.visit(r,s)}).filter(r=>r&&r.trim()).join(", ");i&&e.push(i);}else if(t.removeType==="OBJECT_OPFAMILY"||t.removeType==="OBJECT_OPCLASS"){let i=t.objects.map(r=>{if(r&&r.List&&r.List.items){let o=r.List.items.map(u=>u.String&&u.String.sval?u.String.sval:this.visit(u,s)).filter(u=>u&&u.trim());if(o.length===2){let u=o[0],l=o[1];return `${m.quoteIdentifier(l)} USING ${u}`}else if(o.length===3){let u=o[0],l=o[1],p=o[2];return `${m.quoteQualifiedIdentifier(l,p)} USING ${u}`}return o.join(".")}return this.visit(r,s)}).filter(r=>r&&r.trim()).join(", ");i&&e.push(i);}else if(t.removeType==="OBJECT_TRANSFORM"){let i=t.objects.map(r=>{if(r&&r.List&&r.List.items){let o=r.List.items.map(u=>u.String&&u.String.sval?u.String.sval:this.visit(u,s)).filter(u=>u&&u.trim());if(o.length===2){let[u,l]=o;return `FOR ${u} LANGUAGE ${l}`}return o.join(".")}return this.visit(r,s)}).filter(r=>r&&r.trim()).join(", ");i&&e.push(i);}else {let i=t.objects.map(r=>{if(Array.isArray(r))return r.map(l=>this.visit(l,s)).filter(l=>l&&l.trim()).join(".");if(r&&r.List&&r.List.items)return r.List.items.map(l=>l.String&&l.String.sval?m.quoteIdentifier(l.String.sval):this.visit(l,s)).filter(l=>l&&l.trim()).join(".");let n=s.spawn("DropStmt",{objtype:t.removeType});return this.visit(r,n)}).filter(r=>r&&r.trim()).join(", ");i&&e.push(i);}return t.behavior==="DROP_CASCADE"&&e.push("CASCADE"),e.join(" ")}TruncateStmt(t,s){let e=["TRUNCATE"];if(t.relations&&t.relations.length>0){let i=t.relations.map(r=>this.visit(r,s)).join(", ");e.push(i);}return t.restart_seqs&&e.push("RESTART IDENTITY"),t.behavior==="DROP_CASCADE"&&e.push("CASCADE"),e.join(" ")}ReturnStmt(t,s){let e=["RETURN"];if(t.returnval){let i=this.visit(t.returnval,s);e.push(i);}return e.join(" ")}PLAssignStmt(t,s){let e=[];if(t.name){let i=m.quoteIdentifier(t.name);if(t.indirection&&t.indirection.length>0){let r=t.indirection.map(n=>this.visit(n,s)).join("");i+=r;}e.push(i);}if(e.push(":="),t.val){let i=t.val;if(i.targetList){e.push("SELECT");let r=this.targetList(i.targetList,s);e.push(r);}else {let r=this.visit(t.val,s);e.push(r);}}return e.join(" ")}CopyStmt(t,s){let e=["COPY"];if(t.relation){let i=this.RangeVar(t.relation,s);e.push(i);}else if(t.query){let i=this.visit(t.query,s);e.push(`(${i})`);}if(t.attlist&&t.attlist.length>0){let i=c.unwrapList(t.attlist).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}if(t.is_from?e.push("FROM"):e.push("TO"),t.is_program&&e.push("PROGRAM"),t.filename?e.push(`'${t.filename}'`):e.push("STDIN"),t.options&&t.options.length>0){e.push("WITH");let i=c.unwrapList(t.options).map(r=>this.visit(r,s.spawn("CopyStmt"))).join(", ");e.push(`(${i})`);}if(t.whereClause){e.push("WHERE");let i=this.visit(t.whereClause,s);e.push(i);}return e.join(" ")}AlterTableStmt(t,s){let e=["ALTER"];if(t.objtype)switch(t.objtype){case "OBJECT_TABLE":e.push("TABLE");break;case "OBJECT_INDEX":e.push("INDEX");break;case "OBJECT_SEQUENCE":e.push("SEQUENCE");break;case "OBJECT_VIEW":e.push("VIEW");break;case "OBJECT_MATVIEW":e.push("MATERIALIZED VIEW");break;case "OBJECT_FOREIGN_TABLE":e.push("FOREIGN TABLE");break;case "OBJECT_TYPE":e.push("TYPE");break;default:e.push("TABLE");}else e.push("TABLE");t.missing_ok&&e.push("IF EXISTS");let i=s.spawn("AlterTableStmt",{objtype:t.objtype});if(t.relation){let r=this.RangeVar(t.relation,i);e.push(r);}if(t.cmds&&t.cmds.length>0){let r=c.unwrapList(t.cmds);if(s.isPretty()){let n=r.map(o=>{let u=this.visit(o,i);return s.newline()+s.indent(u)}).join(",");e.push(n);}else {let n=r.map(o=>this.visit(o,i)).join(", ");e.push(n);}}return e.join(" ")}AlterTableCmd(t,s){let e=[];if(t.subtype)switch(t.subtype){case "AT_AddColumn":if(s.objtype==="OBJECT_TYPE"?e.push("ADD ATTRIBUTE"):e.push("ADD COLUMN"),t.missing_ok&&e.push("IF NOT EXISTS"),t.def){let i=this.getNodeData(t.def);if(s.isPretty()){let r=[],n=[];if(i.colname&&r.push(m.quoteIdentifier(i.colname)),i.typeName&&r.push(this.TypeName(i.typeName,s)),i.is_not_null&&n.push("NOT NULL"),i.collClause&&n.push(this.CollateClause(i.collClause,s)),i.constraints&&c.unwrapList(i.constraints).forEach(l=>{let p=s.spawn("ColumnDef",{isColumnConstraint:true}),f=this.visit(l,p);if(f.includes("REFERENCES")&&f.includes("ON DELETE")){let h=f.match(/^(.*REFERENCES[^)]*\([^)]*\))\s*(ON\s+DELETE\s+CASCADE.*)$/);h?(n.push(h[1]),n.push(h[2])):n.push(f);}else if(f==="UNIQUE"&&i.raw_default){let h="DEFAULT "+this.visit(i.raw_default,s);n.push("UNIQUE "+h);}else n.push(f);}),i.raw_default&&!i.constraints?.some(u=>this.visit(u,s.spawn("ColumnDef",{isColumnConstraint:true}))==="UNIQUE")){let u="DEFAULT "+this.visit(i.raw_default,s);n.push(u);}if(i.fdwoptions&&i.fdwoptions.length>0){n.push("OPTIONS");let u=s.spawn("ColumnDef"),l=c.unwrapList(i.fdwoptions).map(p=>this.visit(p,u));n.push(`(${l.join(", ")})`);}let o=r.join(" ");if(n.length>0){let u=n.map(l=>s.indent(l)).join(s.newline());o+=s.newline()+u;}e.push(o);}else {let r=[];if(i.colname&&r.push(m.quoteIdentifier(i.colname)),i.typeName&&r.push(this.TypeName(i.typeName,s)),i.collClause&&r.push(this.CollateClause(i.collClause,s)),i.fdwoptions&&i.fdwoptions.length>0){r.push("OPTIONS");let n=s.spawn("ColumnDef"),o=c.unwrapList(i.fdwoptions).map(u=>this.visit(u,n));r.push(`(${o.join(", ")})`);}if(i.constraints){let o=c.unwrapList(i.constraints).map(u=>{let l=s.spawn("ColumnDef",{isColumnConstraint:true});return this.visit(u,l)});r.push(...o);}i.raw_default&&(r.push("DEFAULT"),r.push(this.visit(i.raw_default,s))),i.is_not_null&&r.push("NOT NULL"),e.push(r.join(" "));}}t.behavior==="DROP_CASCADE"&&e.push("CASCADE");break;case "AT_DropColumn":t.missing_ok?s.objtype==="OBJECT_TYPE"?e.push("DROP ATTRIBUTE IF EXISTS"):e.push("DROP COLUMN IF EXISTS"):s.objtype==="OBJECT_TYPE"?e.push("DROP ATTRIBUTE"):e.push("DROP COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),t.behavior==="DROP_CASCADE"?e.push("CASCADE"):t.behavior==="DROP_RESTRICT"&&e.push("RESTRICT");break;case "AT_AlterColumnType":if(s.objtype==="OBJECT_TYPE"?e.push("ALTER ATTRIBUTE"):e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("TYPE"),t.def){let i=this.getNodeData(t.def);if(i&&i.typeName)e.push(this.TypeName(i.typeName,s)),i.raw_default&&(e.push("USING"),e.push(this.visit(i.raw_default,s)));else {let r=this.visit(t.def,s);e.push(r);}}t.behavior==="DROP_CASCADE"&&e.push("CASCADE");break;case "AT_SetTableSpace":e.push("SET TABLESPACE"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_AddConstraint":if(e.push("ADD"),t.def){let i=this.visit(t.def,s);e.push(i);}break;case "AT_DropConstraint":t.missing_ok?e.push("DROP CONSTRAINT IF EXISTS"):e.push("DROP CONSTRAINT"),t.name&&e.push(m.quoteIdentifier(t.name)),t.behavior==="DROP_CASCADE"?e.push("CASCADE"):t.behavior==="DROP_RESTRICT"&&e.push("RESTRICT");break;case "AT_SetRelOptions":if(e.push("SET"),t.def){let i=s.spawn("AlterTableCmd",{subtype:"AT_SetRelOptions"}),r=c.unwrapList(t.def).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}else e.push("()");break;case "AT_ResetRelOptions":if(e.push("RESET"),t.def){let i=s.spawn("AlterTableCmd",{subtype:"AT_ResetRelOptions"}),r=c.unwrapList(t.def).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}else e.push("()");break;case "AT_ColumnDefault":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),t.def?(e.push("SET DEFAULT"),e.push(this.visit(t.def,s))):e.push("DROP DEFAULT");break;case "AT_SetStorage":if(e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET STORAGE"),t.def){let i=this.visit(t.def,s);e.push(i);}break;case "AT_ClusterOn":e.push("CLUSTER ON"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_DropCluster":e.push("SET WITHOUT CLUSTER");break;case "AT_ChangeOwner":e.push("OWNER TO"),t.newowner&&e.push(this.RoleSpec(t.newowner,s));break;case "AT_AddInherit":e.push("INHERIT"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DropInherit":e.push("NO INHERIT"),t.def&&e.push(this.visit(t.def,s));break;case "AT_SetNotNull":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET NOT NULL");break;case "AT_DropNotNull":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("DROP NOT NULL");break;case "AT_SetStatistics":e.push("ALTER COLUMN"),t.name?e.push(m.quoteIdentifier(t.name)):t.num!==void 0&&t.num!==null&&e.push(t.num.toString()),e.push("SET STATISTICS"),t.def&&e.push(this.visit(t.def,s));break;case "AT_SetOptions":if(e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET"),t.def){let i=s.spawn("AlterTableCmd",{subtype:"AT_SetOptions"}),r=c.unwrapList(t.def).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}else e.push("()");break;case "AT_ResetOptions":if(e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("RESET"),t.def){let i=s.spawn("AlterTableCmd",{subtype:"AT_ResetOptions"}),r=c.unwrapList(t.def).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}else e.push("()");break;case "AT_SetCompression":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET COMPRESSION"),t.def&&e.push(this.visit(t.def,s));break;case "AT_ValidateConstraint":e.push("VALIDATE CONSTRAINT"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_EnableTrig":e.push("ENABLE TRIGGER"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_EnableAlwaysTrig":e.push("ENABLE ALWAYS TRIGGER"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_EnableReplicaTrig":e.push("ENABLE REPLICA TRIGGER"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_DisableTrig":e.push("DISABLE TRIGGER"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_EnableTrigAll":e.push("ENABLE TRIGGER ALL");break;case "AT_DisableTrigAll":e.push("DISABLE TRIGGER ALL");break;case "AT_EnableTrigUser":e.push("ENABLE TRIGGER USER");break;case "AT_DisableTrigUser":e.push("DISABLE TRIGGER USER");break;case "AT_EnableRule":e.push("ENABLE RULE"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_EnableAlwaysRule":e.push("ENABLE ALWAYS RULE"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_EnableReplicaRule":e.push("ENABLE REPLICA RULE"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_DisableRule":e.push("DISABLE RULE"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "AT_SetAccessMethod":e.push("SET ACCESS METHOD"),t.name?e.push(m.quoteIdentifier(t.name)):e.push("DEFAULT");break;case "AT_EnableRowSecurity":e.push("ENABLE ROW LEVEL SECURITY");break;case "AT_DisableRowSecurity":e.push("DISABLE ROW LEVEL SECURITY");break;case "AT_ForceRowSecurity":e.push("FORCE ROW LEVEL SECURITY");break;case "AT_NoForceRowSecurity":e.push("NO FORCE ROW LEVEL SECURITY");break;case "AT_AttachPartition":e.push("ATTACH PARTITION"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DetachPartition":e.push("DETACH PARTITION"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DetachPartitionFinalize":e.push("DETACH PARTITION"),t.def&&e.push(this.visit(t.def,s)),e.push("FINALIZE");break;case "AT_SetLogged":e.push("SET LOGGED");break;case "AT_SetUnLogged":e.push("SET UNLOGGED");break;case "AT_AddColumnToView":if(e.push("ADD COLUMN"),t.def){let i=this.visit(t.def,s);e.push(i);}break;case "AT_CookedColumnDefault":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),t.def?(e.push("SET DEFAULT"),e.push(this.visit(t.def,s))):e.push("DROP DEFAULT");break;case "AT_SetExpression":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET EXPRESSION"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DropExpression":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("DROP EXPRESSION");break;case "AT_CheckNotNull":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET NOT NULL");break;case "AT_AddIndex":e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;case "AT_ReAddIndex":e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;case "AT_ReAddConstraint":e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;case "AT_ReAddDomainConstraint":e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;case "AT_AlterConstraint":if(e.push("ALTER CONSTRAINT"),t.def&&this.getNodeType(t.def)==="Constraint"){let i=this.getNodeData(t.def);i.conname&&(e.push(m.quoteIdentifier(i.conname)),i.deferrable!==void 0&&e.push(i.deferrable?"DEFERRABLE":"NOT DEFERRABLE"),i.initdeferred!==void 0&&e.push(i.initdeferred?"INITIALLY DEFERRED":"INITIALLY IMMEDIATE"));}else t.name&&(e.push(m.quoteIdentifier(t.name)),t.def&&e.push(this.visit(t.def,s)));break;case "AT_AddIndexConstraint":e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;case "AT_ReAddComment":e.push("COMMENT"),t.def&&e.push(this.visit(t.def,s));break;case "AT_AlterColumnGenericOptions":if(e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("OPTIONS"),t.def){let i=s.spawn("AlterTableCmd",{alterColumnOptions:true}),r=c.unwrapList(t.def).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}break;case "AT_DropOids":e.push("SET WITHOUT OIDS");break;case "AT_ReplaceRelOptions":if(e.push("REPLACE"),t.def&&Array.isArray(t.def)){let i=c.unwrapList(t.def).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}else e.push("()");break;case "AT_AddOf":e.push("OF"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DropOf":e.push("NOT OF");break;case "AT_ReplicaIdentity":e.push("REPLICA IDENTITY"),t.def&&e.push(this.visit(t.def,s));break;case "AT_GenericOptions":if(e.push("OPTIONS"),t.def){let i=s.spawn("AlterTableCmd",{alterTableOptions:true}),r=c.unwrapList(t.def).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}break;case "AT_AddIdentity":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;case "AT_SetIdentity":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("SET"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DropIdentity":e.push("ALTER COLUMN"),t.name&&e.push(m.quoteIdentifier(t.name)),e.push("DROP IDENTITY"),t.behavior==="DROP_CASCADE"?e.push("CASCADE"):t.behavior==="DROP_RESTRICT"&&e.push("RESTRICT");break;case "AT_ReAddStatistics":e.push("ADD"),t.def&&e.push(this.visit(t.def,s));break;default:throw new Error(`Unsupported AlterTableCmd subtype: ${t.subtype}`)}return e.join(" ")}CreateFunctionStmt(t,s){let e=["CREATE"];if(t.replace&&e.push("OR REPLACE"),t.is_procedure?e.push("PROCEDURE"):e.push("FUNCTION"),t.funcname&&t.funcname.length>0){let r=t.funcname.map(o=>o.String?.sval||o.String?.str||"").filter(o=>o),n=m.quoteDottedName(r);if(t.parameters&&t.parameters.length>0){let o=t.parameters.filter(u=>this.getNodeData(u).mode!=="FUNC_PARAM_TABLE").map(u=>this.visit(u,s));if(o.length>0)if(s.isPretty()){let u=o.map(l=>s.indent(l)).join(","+s.newline());e.push(n+"("+s.newline()+u+s.newline()+")");}else e.push(n+"("+o.join(", ")+")");else e.push(n+"()");}else e.push(n+"()");}if(t.parameters&&t.parameters.some(r=>this.getNodeData(r).mode==="FUNC_PARAM_TABLE")){let r=t.parameters.filter(n=>this.getNodeData(n).mode==="FUNC_PARAM_TABLE").map(n=>this.visit(n,s));if(s.isPretty()){let n=r.map(o=>s.indent(o)).join(","+s.newline());e.push("RETURNS TABLE ("+s.newline()+n+s.newline()+")");}else e.push("RETURNS TABLE ("),e.push(r.join(", ")),e.push(")");}else t.returnType&&(e.push("RETURNS"),e.push(this.TypeName(t.returnType,s)));if(t.options&&t.options.length>0){let r=s.spawn("CreateFunctionStmt"),n=t.options.map(o=>this.visit(o,r));e.push(...n);}if(t.sql_body){let r=this.getNodeType(t.sql_body);if(r==="ReturnStmt")e.push(this.visit(t.sql_body,s));else {if(e.push("BEGIN ATOMIC"),r==="List"){let n=c.unwrapList(t.sql_body);if(!(n.length===0||n.length===1&&Object.keys(n[0]).length===0)){let o=n;n.length===1&&n[0].List&&(o=c.unwrapList(n[0]));let u=o.filter(l=>l&&Object.keys(l).length>0).map(l=>{let p=this.visit(l,s);return p.endsWith(";")?p:p+";"});u.length>0&&e.push(u.join(" "));}}else {let n=this.visit(t.sql_body,s);n&&!n.endsWith(";")?e.push(n+";"):e.push(n);}e.push("END");}}return e.join(" ")}FunctionParameter(t,s){let e=[];if(t.mode)switch(t.mode){case "FUNC_PARAM_IN":e.push("IN");break;case "FUNC_PARAM_OUT":e.push("OUT");break;case "FUNC_PARAM_INOUT":e.push("INOUT");break;case "FUNC_PARAM_VARIADIC":e.push("VARIADIC");break}return t.name&&e.push(m.quoteIdentifier(t.name)),t.argType&&e.push(this.TypeName(t.argType,s)),t.defexpr&&(e.push("DEFAULT"),e.push(this.visit(t.defexpr,s))),e.join(" ")}CreateEnumStmt(t,s){let e=["CREATE","TYPE"];if(t.typeName){let i=c.unwrapList(t.typeName).map(r=>this.visit(r,s)).join(".");e.push(i);}if(e.push("AS","ENUM"),t.vals&&t.vals.length>0){let i=s.spawn("CreateEnumStmt",{isEnumValue:true}),r=c.unwrapList(t.vals).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}else e.push("()");return e.join(" ")}CreateDomainStmt(t,s){let e=["CREATE","DOMAIN"];if(t.domainname){let i=c.unwrapList(t.domainname).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.typeName&&(e.push("AS"),e.push(this.TypeName(t.typeName,s))),t.collClause&&e.push(this.CollateClause(t.collClause,s)),t.constraints){let i=c.unwrapList(t.constraints).map(r=>this.visit(r,s)).join(" ");i&&e.push(i);}return e.join(" ")}CreateRoleStmt(t,s){let e=["CREATE"];if(t.stmt_type==="ROLESTMT_ROLE"?e.push("ROLE"):t.stmt_type==="ROLESTMT_USER"?e.push("USER"):t.stmt_type==="ROLESTMT_GROUP"?e.push("GROUP"):e.push("ROLE"),t.role){let i=m.quoteIdentifier(t.role);e.push(i);}if(t.options){let i=c.unwrapList(t.options).map(r=>this.visit(r,s.spawn("CreateRoleStmt"))).join(" ");i&&(e.push("WITH"),e.push(i));}return e.join(" ")}DefElem(t,s){if(!t.defname)return "";if(s.parentNodeTypes.includes("DefineStmt")&&["commutator","negator"].includes(t.defname.toLowerCase())&&t.arg&&this.getNodeType(t.arg)==="List"){let e=this.getNodeData(t.arg),i=c.unwrapList(e.items);if(i.length===1&&i[0].String)return `${this.preserveOperatorDefElemCase(t.defname)} = ${i[0].String.sval}`}if(s.parentNodeTypes.includes("IndexElem")){if(t.arg&&this.getNodeType(t.arg)==="String"){let e=this.getNodeData(t.arg);return `${t.defname}='${e.sval}'`}return `${t.defname}=${this.visit(t.arg,s.spawn("DefElem"))}`}if(s.parentNodeTypes.includes("DefineStmt")&&["hashes","merges"].includes(t.defname.toLowerCase())&&!t.arg)return t.defname!==t.defname.toLowerCase()&&t.defname!==t.defname.toUpperCase()?m.quoteIdentifier(t.defname):t.defname.charAt(0).toUpperCase()+t.defname.slice(1).toLowerCase();if(s.parentNodeTypes.includes("AlterFdwStmt")||s.parentNodeTypes.includes("CreateFdwStmt")||s.parentNodeTypes.includes("CreateForeignServerStmt")||s.parentNodeTypes.includes("AlterForeignServerStmt")||s.parentNodeTypes.includes("CreateUserMappingStmt")||s.parentNodeTypes.includes("AlterUserMappingStmt")||s.parentNodeTypes.includes("ColumnDef")||s.parentNodeTypes.includes("CreateForeignTableStmt")||s.parentNodeTypes.includes("ImportForeignSchemaStmt")||s.alterColumnOptions||s.alterTableOptions){if(["handler","validator"].includes(t.defname)){if(!t.arg)return `NO ${t.defname.toUpperCase()}`;let e=s.spawn("DefElem"),i=this.visit(t.arg,e);return `${t.defname.toUpperCase()} ${i}`}if(t.arg){let e=s.spawn("DefElem"),i=this.visit(t.arg,e);if(s.parentNodeTypes.includes("CreateFdwStmt")||s.parentNodeTypes.includes("AlterFdwStmt")){let o=typeof i=="string"&&!i.startsWith("'")?`'${i}'`:i,u=m.quoteIdentifier(t.defname);return t.defaction==="DEFELEM_ADD"?`ADD ${u} ${o}`:t.defaction==="DEFELEM_DROP"?`DROP ${u}`:t.defaction==="DEFELEM_SET"?`SET ${u} ${o}`:`${u} ${o}`}let r=typeof i=="string"&&!i.startsWith("'")?`'${i}'`:i;return t.defaction==="DEFELEM_ADD"?`ADD ${t.defname} ${r}`:t.defaction==="DEFELEM_DROP"?`DROP ${t.defname}`:t.defaction==="DEFELEM_SET"?`SET ${t.defname} ${r}`:`${m.quoteIdentifier(t.defname)} ${r}`}else if(t.defaction==="DEFELEM_DROP")return `DROP ${t.defname}`}if((s.parentNodeTypes.includes("CreateSeqStmt")||s.parentNodeTypes.includes("AlterSeqStmt"))&&(t.defname==="minvalue"||t.defname==="maxvalue")&&!t.arg)return `NO ${t.defname.toUpperCase()}`;if((s.parentNodeTypes.includes("CreateRoleStmt")||s.parentNodeTypes.includes("AlterRoleStmt"))&&t.defname==="password"){if(!t.arg)return "PASSWORD NULL";let e=s.spawn("DefElem"),i=this.visit(t.arg,e);return `PASSWORD ${typeof i=="string"&&!i.startsWith("'")?`'${i}'`:i}`}if(t.arg){let e=s.spawn("DefElem"),i=this.visit(t.arg,e);if(s.parentNodeTypes.includes("AlterOperatorStmt")){if(t.arg&&this.getNodeType(t.arg)==="TypeName"){let n=this.getNodeData(t.arg);if(n.names){let o=c.unwrapList(n.names);if(o.length===1&&o[0].String)return `${t.defname} = ${o[0].String.sval}`}}if(t.arg&&this.getNodeType(t.arg)==="List"){let n=this.getNodeData(t.arg),o=c.unwrapList(n.items);if(o.length===1&&o[0].String)return `${t.defname} = ${o[0].String.sval}`}}if(s.parentNodeTypes.includes("CreatedbStmt")||s.parentNodeTypes.includes("DropdbStmt")){let n=typeof i=="string"?m.escape(i):i;return `${t.defname} = ${n}`}if(s.parentNodeTypes.includes("CreateForeignServerStmt")||s.parentNodeTypes.includes("AlterForeignServerStmt")){let n=typeof i=="string"?m.escape(i):i;return `${m.quoteIdentifier(t.defname)} ${n}`}if(s.parentNodeTypes.includes("CreateRoleStmt")||s.parentNodeTypes.includes("AlterRoleStmt")){if(t.defname==="rolemembers"&&t.arg&&this.getNodeType(t.arg)==="List"){let n=this.getNodeData(t.arg),u=c.unwrapList(n.items).map(l=>this.visit(l,s));return s.parentNodeTypes.includes("CreateRoleStmt")?`ROLE ${u.join(", ")}`:`ADD USER ${u.join(", ")}`}if(t.defname==="addroleto"&&t.arg&&this.getNodeType(t.arg)==="List"){let n=this.getNodeData(t.arg);return `IN ROLE ${c.unwrapList(n.items).map(l=>this.visit(l,s)).join(", ")}`}if(t.defname==="validUntil")return `VALID UNTIL ${typeof i=="string"&&!i.startsWith("'")?`'${i}'`:i}`;if(t.defname==="adminmembers")return `ADMIN ${i}`;if(t.defname==="connectionlimit")return `CONNECTION LIMIT ${i}`;if(t.defname==="sysid")return `SYSID ${i}`;if(String(i)==="true")return t.defname==="isreplication"?"REPLICATION":t.defname==="canlogin"?"LOGIN":t.defname.toUpperCase();if(String(i)==="false")return t.defname==="canlogin"?"NOLOGIN":t.defname==="isreplication"?"NOREPLICATION":`NO${t.defname.toUpperCase()}`}if(s.parentNodeTypes.includes("CreateSeqStmt")||s.parentNodeTypes.includes("AlterSeqStmt")){if(t.defname==="owned_by")if(t.arg&&this.getNodeType(t.arg)==="List"){let n=this.getNodeData(t.arg);return `OWNED BY ${c.unwrapList(n.items).map(l=>{let p=this.getNodeData(l);if(this.getNodeType(l)==="String"){let f=p.sval;return m.quoteIdentifier(f)}return this.visit(l,s)}).join(".")}`}else return `OWNED BY ${i}`;if(t.defname==="cycle"){let n=String(i).toLowerCase();if(n==="true"||n==="1")return "CYCLE";if(n==="false"||n==="0")return "NO CYCLE"}return (t.defname==="minvalue"||t.defname==="maxvalue")&&!t.arg?`NO ${t.defname.toUpperCase()}`:`${t.defname.toUpperCase()} ${i}`}if(s.parentNodeTypes.includes("CreateTableSpaceStmt")||s.parentNodeTypes.includes("AlterTableSpaceOptionsStmt"))return `${t.defname.toUpperCase()} ${i}`;if(s.parentNodeTypes.includes("ExplainStmt"))return i?`${t.defname.toUpperCase()} ${i.toUpperCase()}`:t.defname.toUpperCase();if(s.parentNodeTypes.includes("DoStmt")){if(t.defname==="as"){let n=s.spawn("DefElem"),o=t.arg?this.visit(t.arg,n):"";if(Array.isArray(o)){let l=o.join(""),p=this.getFunctionDelimiter(l);return `${p}${l}${p}`}else {let u=this.getFunctionDelimiter(o);return `${u}${o}${u}`}}return ""}if(s.parentNodeTypes.includes("CreateFunctionStmt")||s.parentNodeTypes.includes("AlterFunctionStmt")){if(t.defname==="as")if(t.arg&&t.arg.List){let u=(t.arg.List.items||[]).map(l=>l.String?l.String.sval:this.visit(l,s));if(u.length===1){let l=u[0],p=this.getFunctionDelimiter(l);return `AS ${p}${l}${p}`}else return `AS ${u.map(l=>{let p=this.getFunctionDelimiter(l);return `${p}${l}${p}`}).join(", ")}`}else if(Array.isArray(i)){let n=i;if(n.length===1){let o=n[0],u=this.getFunctionDelimiter(o);return `AS ${u}${o}${u}`}else return `AS ${n.map(o=>{let u=this.getFunctionDelimiter(o);return `${u}${o}${u}`}).join(", ")}`}else {let n=this.getFunctionDelimiter(i);return `AS ${n}${i}${n}`}return t.defname==="language"?`LANGUAGE ${i}`:t.defname==="volatility"?i.toUpperCase():t.defname==="strict"?i==="true"?"STRICT":"CALLED ON NULL INPUT":t.defname==="security"?i==="true"?"SECURITY DEFINER":"SECURITY INVOKER":t.defname==="leakproof"?i==="true"?"LEAKPROOF":"NOT LEAKPROOF":t.defname==="cost"?`COST ${i}`:t.defname==="rows"?`ROWS ${i}`:t.defname==="window"?i==="true"?"WINDOW":"":t.defname==="set"?this.visit(t.arg,s):`${t.defname.toUpperCase()} ${i}`}if(s.parentNodeTypes.includes("CreateExtensionStmt")||s.parentNodeTypes.includes("AlterExtensionStmt")||s.parentNodeTypes.includes("CreateFdwStmt")||s.parentNodeTypes.includes("AlterFdwStmt")){if(s.parentNodeTypes.includes("AlterExtensionStmt")){if(t.defname==="new_version")return `UPDATE TO ${typeof i=="string"&&!i.startsWith("'")?`'${i}'`:i}`;if(t.defname==="schema")return `SET SCHEMA ${i}`}if(s.parentNodeTypes.includes("CreateFdwStmt")){if(["handler","validator"].includes(t.defname))return `${t.defname.toUpperCase()} ${i}`;let n=typeof i=="string"?m.escape(i):i;return `${t.defname} ${n}`}return t.defname==="cascade"?i==="true"?"CASCADE":"":`${t.defname.toUpperCase()} ${i}`}if(s.parentNodeTypes.includes("IndexStmt"))return `${t.defname}=${i}`;if(s.parentNodeTypes.includes("IndexElem")){if(t.arg&&this.getNodeType(t.arg)==="String"){let n=this.getNodeData(t.arg);return `${t.defname}='${n.sval}'`}return `${t.defname}=${i}`}if(s.parentNodeTypes.includes("CreateStmt")){if(t.arg&&this.getNodeType(t.arg)==="Integer"){let n=this.getNodeData(t.arg);return `${t.defname}=${n.ival}`}return `${t.defname}=${i}`}if(s.parentNodeTypes.includes("CreateEventTrigStmt")){if(t.arg&&this.getNodeType(t.arg)==="List"){let n=this.getNodeData(t.arg),u=c.unwrapList(n.items).map(l=>this.getNodeType(l)==="String"?`'${this.getNodeData(l).sval||""}'`:this.visit(l,s));return `${t.defname} IN (${u.join(", ")})`}return `${t.defname} = ${i}`}if((s.parentNodeTypes.includes("AlterTableCmd")||s.parentNodeTypes.includes("AlterTableStmt"))&&!s.parentNodeTypes.includes("ColumnDef")){let n=t.defnamespace?`${t.defnamespace}.${t.defname}`:t.defname;return t.arg&&this.getNodeType(t.arg)==="TypeName"?`${n} = ${i}`:`${n} = ${i}`}if(s.parentNodeTypes.includes("ViewStmt")){if(typeof i=="string"&&/^\d+$/.test(i))return `${t.defname}=${i}`;let n=typeof i=="string"?m.escape(i):i;return `${t.defname} = ${n}`}if(s.parentNodeTypes.includes("CopyStmt"))return t.defname==="format"&&t.arg&&this.getNodeType(t.arg)==="String"?`FORMAT ${this.getNodeData(t.arg).sval.toUpperCase()}`:t.arg?`${t.defname.toUpperCase()} ${i}`:t.defname.toUpperCase();if(s.parentNodeTypes.includes("DefineStmt")){let n=this.preserveOperatorDefElemCase(t.defname);if(["commutator","negator"].includes(t.defname.toLowerCase())){if(t.arg){if(t.arg&&this.getNodeType(t.arg)==="List"){let l=this.getNodeData(t.arg),p=c.unwrapList(l.items);if(p.length===1&&p[0].String)return `${n} = ${p[0].String.sval}`}let u=i.replace(/^"(.*)"$/,"$1");return `${n} = ${u}`}return n}if(["hashes","merges"].includes(t.defname.toLowerCase()))return t.defname!==t.defname.toLowerCase()&&t.defname!==t.defname.toUpperCase()?m.quoteIdentifier(t.defname):n.toUpperCase();let o=m.quoteIdentifier(t.defname);if(o!==t.defname){if(t.arg){if(this.getNodeType(t.arg)==="String"){let u=this.getNodeData(t.arg);return u.sval==="true"||u.sval==="false"?`${o} = ${u.sval}`:`${o} = '${u.sval}'`}return `${o} = ${i}`}return o}if(n!==t.defname)return t.arg?`${n} = ${i}`:n;if(t.arg&&this.getNodeType(t.arg)==="String"){let u=this.getNodeData(t.arg);return u.sval==="true"||u.sval==="false"?`${t.defname} = ${u.sval}`:`${t.defname} = '${u.sval}'`}if(t.arg&&this.getNodeType(t.arg)==="Boolean"){let u=this.getNodeData(t.arg);return `${t.defname} = ${u.boolval?"true":"false"}`}if(t.arg&&this.getNodeType(t.arg)==="Integer"){let u=this.getNodeData(t.arg);return `${t.defname} = ${u.ival}`}if(t.arg&&this.getNodeType(t.arg)==="TypeName"){let u=this.getNodeData(t.arg);if(u.names){let l=c.unwrapList(u.names);if(l.length===1&&l[0].String)return `${t.defname} = ${l[0].String.sval}`}return `${t.defname} = ${i}`}}let r=typeof i=="string"?m.escape(i):i;return `${t.defname} = ${r}`}return s.parentNodeTypes.includes("DefineStmt")&&!t.arg&&t.defname!==t.defname.toLowerCase()&&t.defname!==t.defname.toUpperCase()?m.quoteIdentifier(t.defname):t.defname.toUpperCase()}CreateTableSpaceStmt(t,s){let e=["CREATE","TABLESPACE"];if(t.tablespacename&&e.push(t.tablespacename),t.owner&&(e.push("OWNER"),e.push(this.RoleSpec(t.owner,s))),t.location&&(e.push("LOCATION"),e.push(`'${t.location}'`)),t.options&&t.options.length>0){e.push("WITH");let i=s.spawn("CreateTableSpaceStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}return e.join(" ")}DropTableSpaceStmt(t,s){let e=["DROP","TABLESPACE"];return t.missing_ok&&e.push("IF","EXISTS"),t.tablespacename&&e.push(t.tablespacename),e.join(" ")}AlterTableSpaceOptionsStmt(t,s){let e=["ALTER","TABLESPACE"];if(t.tablespacename&&e.push(t.tablespacename),t.isReset?e.push("RESET"):e.push("SET"),t.options&&t.options.length>0){let i=s.spawn("AlterTableSpaceOptionsStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}return e.join(" ")}CreateExtensionStmt(t,s){let e=["CREATE","EXTENSION"];if(t.if_not_exists&&e.push("IF","NOT","EXISTS"),t.extname&&e.push(this.quoteIfNeeded(t.extname)),t.options&&t.options.length>0){let i=s.spawn("CreateExtensionStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i)).join(" ");e.push(r);}return e.join(" ")}AlterExtensionStmt(t,s){let e=["ALTER","EXTENSION"];if(t.extname&&e.push(this.quoteIfNeeded(t.extname)),t.options&&t.options.length>0){let i=s.spawn("AlterExtensionStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i)).join(" ");e.push(r);}return e.join(" ")}AlterExtensionContentsStmt(t,s){let e=["ALTER","EXTENSION"];if(t.extname&&e.push(this.quoteIfNeeded(t.extname)),t.action===1?e.push("ADD"):t.action===-1&&e.push("DROP"),t.objtype)try{e.push(this.getObjectTypeKeyword(t.objtype));}catch{e.push(t.objtype.toString());}return t.object&&e.push(this.visit(t.object,s)),e.join(" ")}CreateFdwStmt(t,s){let e=["CREATE","FOREIGN","DATA","WRAPPER"];if(t.fdwname&&e.push(t.fdwname),t.func_options&&t.func_options.length>0){let i=s.spawn("CreateFdwStmt"),r=c.unwrapList(t.func_options).map(n=>this.visit(n,i)).join(" ");e.push(r);}if(t.options&&t.options.length>0){e.push("OPTIONS");let i=s.spawn("CreateFdwStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i)).join(", ");e.push(`(${r})`);}return e.join(" ")}SetOperationStmt(t,s){let e=[];if(t.larg&&e.push(this.visit(t.larg,s)),t.op)switch(t.op){case "SETOP_UNION":e.push(t.all?"UNION ALL":"UNION");break;case "SETOP_INTERSECT":e.push(t.all?"INTERSECT ALL":"INTERSECT");break;case "SETOP_EXCEPT":e.push(t.all?"EXCEPT ALL":"EXCEPT");break;default:throw new Error(`Unsupported SetOperation: ${t.op}`)}return t.rarg&&e.push(this.visit(t.rarg,s)),e.join(" ")}ReplicaIdentityStmt(t,s){let e=[];if(t.identity_type)switch(t.identity_type){case "d":case "REPLICA_IDENTITY_DEFAULT":e.push("DEFAULT");break;case "f":case "REPLICA_IDENTITY_FULL":e.push("FULL");break;case "n":case "REPLICA_IDENTITY_NOTHING":e.push("NOTHING");break;case "i":case "REPLICA_IDENTITY_INDEX":e.push("USING","INDEX"),t.name&&e.push(m.quoteIdentifier(t.name));break;default:throw new Error(`Unsupported replica identity type: ${t.identity_type}`)}return e.join(" ")}AlterCollationStmt(t,s){let e=["ALTER","COLLATION"];if(t.collname&&t.collname.length>0){let i=c.unwrapList(t.collname).map(r=>this.visit(r,s)).join(".");e.push(i);}return e.push("REFRESH","VERSION"),e.join(" ")}AlterDomainStmt(t,s){let e=["ALTER","DOMAIN"];if(t.typeName&&t.typeName.length>0){let i=c.unwrapList(t.typeName).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.subtype)switch(t.subtype){case "AT_SetNotNull":e.push("SET","NOT","NULL");break;case "AT_DropNotNull":e.push("DROP","NOT","NULL");break;case "AT_SetDefault":e.push("SET","DEFAULT"),t.def&&e.push(this.visit(t.def,s));break;case "AT_DropDefault":e.push("DROP","DEFAULT");break;case "AT_AddConstraint":if(e.push("ADD"),t.def){let i=s.spawn("CreateDomainStmt",{isDomainConstraint:true});e.push(this.visit(t.def,i));}break;case "AT_DropConstraint":e.push("DROP","CONSTRAINT"),t.missing_ok&&e.push("IF","EXISTS"),t.name&&e.push(m.quoteIdentifier(t.name)),t.behavior==="DROP_CASCADE"&&e.push("CASCADE");break;case "AT_ValidateConstraint":e.push("VALIDATE","CONSTRAINT"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "C":if(e.push("ADD"),t.def){let i=s.spawn("CreateDomainStmt",{isDomainConstraint:true});e.push(this.visit(t.def,i));}break;case "X":e.push("DROP","CONSTRAINT"),t.missing_ok&&e.push("IF","EXISTS"),t.name&&e.push(m.quoteIdentifier(t.name)),t.behavior==="DROP_CASCADE"&&e.push("CASCADE");break;case "V":e.push("VALIDATE","CONSTRAINT"),t.name&&e.push(m.quoteIdentifier(t.name));break;case "O":e.push("SET","NOT","NULL");break;case "N":e.push("DROP","NOT","NULL");break;case "T":t.def?(e.push("SET","DEFAULT"),e.push(this.visit(t.def,s))):e.push("DROP","DEFAULT");break;default:throw new Error(`Unsupported AlterDomainStmt subtype: ${t.subtype}`)}return e.join(" ")}PrepareStmt(t,s){let e=["PREPARE"];if(t.name&&e.push(t.name),t.argtypes&&t.argtypes.length>0){let i=c.unwrapList(t.argtypes).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}return e.push("AS"),t.query&&e.push(this.visit(t.query,s)),e.join(" ")}ExecuteStmt(t,s){let e=["EXECUTE"];if(t.name&&e.push(t.name),t.params&&t.params.length>0){let i=c.unwrapList(t.params).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}return e.join(" ")}DeallocateStmt(t,s){let e=["DEALLOCATE"];return t.isall?e.push("ALL"):t.name&&e.push(t.name),e.join(" ")}NotifyStmt(t,s){let e=["NOTIFY"];return t.conditionname&&e.push(t.conditionname),t.payload!==null&&t.payload!==void 0&&(e.push(","),e.push(`'${t.payload}'`)),e.join(" ")}ListenStmt(t,s){let e=["LISTEN"];return t.conditionname&&e.push(t.conditionname),e.join(" ")}UnlistenStmt(t,s){let e=["UNLISTEN"];return t.conditionname?e.push(t.conditionname):e.push("*"),e.join(" ")}CheckPointStmt(t,s){return "CHECKPOINT"}LoadStmt(t,s){if(!t.filename)throw new Error("LoadStmt requires filename");return `LOAD '${t.filename}'`}DiscardStmt(t,s){switch(t.target){case "DISCARD_ALL":return "DISCARD ALL";case "DISCARD_PLANS":return "DISCARD PLANS";case "DISCARD_SEQUENCES":return "DISCARD SEQUENCES";case "DISCARD_TEMP":return "DISCARD TEMP";default:throw new Error(`Unsupported DiscardStmt target: ${t.target}`)}}CommentStmt(t,s){let e=["COMMENT ON"];if(t.objtype)switch(t.objtype){case "OBJECT_TABLE":e.push("TABLE");break;case "OBJECT_COLUMN":e.push("COLUMN");break;case "OBJECT_INDEX":e.push("INDEX");break;case "OBJECT_FUNCTION":e.push("FUNCTION");break;case "OBJECT_VIEW":e.push("VIEW");break;case "OBJECT_SCHEMA":e.push("SCHEMA");break;case "OBJECT_DATABASE":e.push("DATABASE");break;case "OBJECT_MATVIEW":e.push("MATERIALIZED VIEW");break;case "OBJECT_TABCONSTRAINT":e.push("CONSTRAINT");break;case "OBJECT_TRIGGER":e.push("TRIGGER");break;case "OBJECT_FDW":e.push("FOREIGN DATA WRAPPER");break;case "OBJECT_EVENT_TRIGGER":e.push("EVENT TRIGGER");break;case "OBJECT_FOREIGN_SERVER":e.push("SERVER");break;case "OBJECT_FOREIGN_TABLE":e.push("FOREIGN TABLE");break;case "OBJECT_STATISTIC_EXT":e.push("STATISTICS");break;case "OBJECT_LARGEOBJECT":e.push("LARGE OBJECT");break;case "OBJECT_OPERATOR":e.push("OPERATOR");break;case "OBJECT_OPCLASS":e.push("OPERATOR CLASS");break;case "OBJECT_OPFAMILY":e.push("OPERATOR FAMILY");break;case "OBJECT_POLICY":e.push("POLICY");break;case "OBJECT_TSPARSER":e.push("TEXT SEARCH PARSER");break;case "OBJECT_TSDICTIONARY":e.push("TEXT SEARCH DICTIONARY");break;case "OBJECT_TSTEMPLATE":e.push("TEXT SEARCH TEMPLATE");break;case "OBJECT_TSCONFIGURATION":e.push("TEXT SEARCH CONFIGURATION");break;case "OBJECT_TRANSFORM":e.push("TRANSFORM");break;default:e.push(t.objtype.replace("OBJECT_",""));}if(t.object)if(t.object&&typeof t.object=="object"&&"List"in t.object){let i=t.object.List;if(i.items&&i.items.length>0){let r=c.unwrapList(i.items).map(n=>this.visit(n,s));if(t.objtype==="OBJECT_TABCONSTRAINT")if(r.length===3){let[n,o,u]=r;e.push(u),e.push("ON"),e.push(`${n}.${o}`);}else if(r.length===2){let[n,o]=r;e.push(o),e.push("ON"),e.push(n);}else e.push(r.join("."));else if(t.objtype==="OBJECT_TRIGGER")if(r.length===2){let[n,o]=r;e.push(o),e.push("ON"),e.push(n);}else e.push(r.join("."));else if(t.objtype==="OBJECT_RULE")if(r.length===2){let[n,o]=r;e.push(o),e.push("ON"),e.push(n);}else e.push(r.join("."));else if(t.objtype==="OBJECT_OPERATOR")if(t.object&&t.object.ObjectWithArgs){let n=t.object.ObjectWithArgs,o=n.objname&&n.objname[0]&&n.objname[0].String?n.objname[0].String.sval:"unknown";o.startsWith('"')&&o.endsWith('"')&&(o=o.slice(1,-1));let u=[];n.objargs&&n.objargs.forEach(l=>{if(!l||Object.keys(l).length===0)u.push("NONE");else if(l.TypeName){let p=this.visit(l,s);u.push(p);}else u.push("unknown");}),e.push(`${o} (${u.join(", ")})`);}else e.push(r.join("."));else if(t.objtype==="OBJECT_OPCLASS"||t.objtype==="OBJECT_OPFAMILY")if(r.length>=2){let n=r[r.length-1],o=r[r.length-2];e.push(`${n} USING ${o}`);}else e.push(r.join(" USING "));else if(t.objtype==="OBJECT_POLICY")if(r.length===2){let[n,o]=r;e.push(o),e.push("ON"),e.push(n);}else e.push(r.join("."));else if(t.objtype==="OBJECT_TRANSFORM")if(r.length===2){let[n,o]=r;e.push("FOR"),e.push(n),e.push("LANGUAGE"),e.push(o);}else e.push(r.join("."));else e.push(r.join("."));}}else if(t.objtype==="OBJECT_OPERATOR"&&t.object&&t.object.ObjectWithArgs){let i=t.object.ObjectWithArgs,r=i.objname&&i.objname[0]&&i.objname[0].String?i.objname[0].String.sval:"unknown";r.startsWith('"')&&r.endsWith('"')&&(r=r.slice(1,-1));let n=[];i.objargs&&i.objargs.forEach(o=>{if(!o||Object.keys(o).length===0)n.push("NONE");else if(o.TypeName){let u=this.visit(o,s);n.push(u);}else n.push("unknown");}),e.push(`${r}(${n.join(", ")})`);}else {let i=s.spawn("CommentStmt",{objtype:t.objtype});e.push(this.visit(t.object,i));}return e.push("IS"),t.comment===null||t.comment===void 0?e.push("NULL"):t.comment&&e.push(m.formatEString(t.comment)),e.join(" ")}LockStmt(t,s){let e=["LOCK","TABLE"];if(t.relations&&t.relations.length>0){let i=c.unwrapList(t.relations).map(r=>this.visit(r,s)).join(", ");e.push(i);}if(t.mode!==void 0){let i=["","ACCESS SHARE","ROW SHARE","ROW EXCLUSIVE","SHARE UPDATE EXCLUSIVE","SHARE","SHARE ROW EXCLUSIVE","EXCLUSIVE","ACCESS EXCLUSIVE"];t.mode>=1&&t.mode<i.length&&e.push("IN",i[t.mode],"MODE");}return t.nowait&&e.push("NOWAIT"),e.join(" ")}CreatePolicyStmt(t,s){let e=[],i=["CREATE","POLICY"];if(t.policy_name&&i.push(m.quoteIdentifier(t.policy_name)),e.push(i.join(" ")),t.table&&(s.isPretty()?e.push(s.newline()+s.indent(`ON ${this.RangeVar(t.table,s)}`)):(e.push("ON"),e.push(this.RangeVar(t.table,s)))),t.permissive===void 0?s.isPretty()?e.push(s.newline()+s.indent("AS RESTRICTIVE")):e.push("AS","RESTRICTIVE"):t.permissive===true&&(s.isPretty()?e.push(s.newline()+s.indent("AS PERMISSIVE")):e.push("AS","PERMISSIVE")),t.cmd_name&&(s.isPretty()?e.push(s.newline()+s.indent(`FOR ${t.cmd_name.toUpperCase()}`)):e.push("FOR",t.cmd_name.toUpperCase())),t.roles&&t.roles.length>0){let r=c.unwrapList(t.roles).map(n=>this.visit(n,s));s.isPretty()?e.push(s.newline()+s.indent(`TO ${r.join(", ")}`)):(e.push("TO"),e.push(r.join(", ")));}if(t.qual)if(s.isPretty()){let r=this.visit(t.qual,s);e.push(s.newline()+s.indent("USING (")),e.push(s.newline()+s.indent(s.indent(r))),e.push(s.newline()+s.indent(")"));}else e.push("USING"),e.push(`(${this.visit(t.qual,s)})`);if(t.with_check)if(s.isPretty()){let r=this.visit(t.with_check,s);e.push(s.newline()+s.indent("WITH CHECK (")),e.push(s.newline()+s.indent(s.indent(r))),e.push(s.newline()+s.indent(")"));}else e.push("WITH CHECK"),e.push(`(${this.visit(t.with_check,s)})`);return s.isPretty()?e.join(""):e.join(" ")}AlterPolicyStmt(t,s){let e=["ALTER","POLICY"];if(t.policy_name&&e.push(m.quoteIdentifier(t.policy_name)),t.table&&(e.push("ON"),e.push(this.RangeVar(t.table,s))),t.roles&&t.roles.length>0){e.push("TO");let i=c.unwrapList(t.roles).map(r=>this.visit(r,s));e.push(i.join(", "));}return t.qual&&(e.push("USING"),e.push(`(${this.visit(t.qual,s)})`)),t.with_check&&(e.push("WITH CHECK"),e.push(`(${this.visit(t.with_check,s)})`)),e.join(" ")}CreateUserMappingStmt(t,s){let e=["CREATE"];if(t.if_not_exists&&e.push("IF","NOT","EXISTS"),e.push("USER","MAPPING"),e.push("FOR"),t.user?e.push(this.RoleSpec(t.user,s)):e.push("CURRENT_USER"),e.push("SERVER"),t.servername&&e.push(m.quoteIdentifier(t.servername)),t.options&&t.options.length>0){e.push("OPTIONS");let i=s.spawn("CreateUserMappingStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}return e.join(" ")}CreateStatsStmt(t,s){let e=["CREATE"];if(t.if_not_exists&&e.push("IF","NOT","EXISTS"),e.push("STATISTICS"),t.defnames&&t.defnames.length>0){let i=c.unwrapList(t.defnames).map(r=>this.visit(r,s));e.push(i.join("."));}if(t.stat_types&&t.stat_types.length>0){let i=c.unwrapList(t.stat_types).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}if(e.push("ON"),t.exprs&&t.exprs.length>0){let i=c.unwrapList(t.exprs).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.relations&&t.relations.length>0){e.push("FROM");let i=c.unwrapList(t.relations).map(r=>this.visit(r,s));e.push(i.join(", "));}return e.join(" ")}StatsElem(t,s){return t.name?this.quoteIfNeeded(t.name):t.expr?`(${this.visit(t.expr,s)})`:""}CreatePublicationStmt(t,s){let e=["CREATE","PUBLICATION"];if(t.pubname&&e.push(m.quoteIdentifier(t.pubname)),t.pubobjects&&t.pubobjects.length>0){e.push("FOR","TABLE");let i=c.unwrapList(t.pubobjects).map(r=>this.visit(r,s));e.push(i.join(", "));}else t.for_all_tables&&e.push("FOR","ALL","TABLES");if(t.options&&t.options.length>0){e.push("WITH");let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return e.join(" ")}CreateSubscriptionStmt(t,s){let e=["CREATE","SUBSCRIPTION"];if(t.subname&&e.push(m.quoteIdentifier(t.subname)),e.push("CONNECTION"),t.conninfo&&e.push(`'${t.conninfo}'`),e.push("PUBLICATION"),t.publication&&t.publication.length>0){let i=c.unwrapList(t.publication).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.options&&t.options.length>0){e.push("WITH");let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return e.join(" ")}AlterPublicationStmt(t,s){let e=["ALTER","PUBLICATION"];if(t.pubname&&e.push(m.quoteIdentifier(t.pubname)),t.action)switch(t.action){case "AP_AddObjects":e.push("ADD");break;case "AP_DropObjects":e.push("DROP");break;case "AP_SetObjects":e.push("SET");break;default:throw new Error(`Unsupported AlterPublicationStmt action: ${t.action}`)}if(t.for_all_tables)e.push("FOR ALL TABLES");else if(t.pubobjects&&t.pubobjects.length>0){e.push("FOR TABLE");let i=c.unwrapList(t.pubobjects).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.options&&t.options.length>0){e.push("WITH");let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return e.join(" ")}AlterSubscriptionStmt(t,s){let e=["ALTER","SUBSCRIPTION"];if(t.subname&&e.push(m.quoteIdentifier(t.subname)),t.kind)switch(t.kind){case "ALTER_SUBSCRIPTION_OPTIONS":e.push("SET");break;case "ALTER_SUBSCRIPTION_CONNECTION":e.push("CONNECTION"),t.conninfo&&e.push(`'${t.conninfo}'`);break;case "ALTER_SUBSCRIPTION_SET_PUBLICATION":if(e.push("SET PUBLICATION"),t.publication&&t.publication.length>0){let i=c.unwrapList(t.publication).map(r=>this.visit(r,s));e.push(i.join(", "));}break;case "ALTER_SUBSCRIPTION_REFRESH":e.push("REFRESH PUBLICATION");break;case "ALTER_SUBSCRIPTION_ENABLED":e.push("ENABLE");break;case "ALTER_SUBSCRIPTION_SKIP":e.push("SKIP");break;default:throw new Error(`Unsupported AlterSubscriptionStmt kind: ${t.kind}`)}if(t.options&&t.options.length>0){e.push("WITH");let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return e.join(" ")}DropSubscriptionStmt(t,s){let e=["DROP","SUBSCRIPTION"];if(t.missing_ok&&e.push("IF EXISTS"),t.subname&&e.push(m.quoteIdentifier(t.subname)),t.behavior)switch(t.behavior){case "DROP_CASCADE":e.push("CASCADE");break;case "DROP_RESTRICT":e.push("RESTRICT");break}return e.join(" ")}DoStmt(t,s){let e=["DO"];if(t.args&&t.args.length>0){let i=s.spawn("DoStmt"),r=c.unwrapList(t.args),n=[];for(let o of r)if(this.getNodeType(o)==="DefElem"){let l=this.getNodeData(o);if(l.defname==="language"){let p=this.visit(l.arg,i);n.push(`LANGUAGE ${p}`);}else if(l.defname==="as")if(this.getNodeType(l.arg)==="String"){let f=this.getNodeData(l.arg),h=this.getFunctionDelimiter(f.sval);n.push(`${h}${f.sval}${h}`);}else n.push(this.visit(l.arg,i));}e.push(...n);}return e.join(" ")}generateUniqueDollarTag(t){let s=/\$[a-zA-Z0-9_]*\$/g,e=t.match(s)||[];if(e.length===0)return "$$";let i=new Set(e);if(i.has("$$")){let r=1,n=`$do${r}$`;for(;i.has(n);)r++,n=`$do${r}$`;return n}return "$$"}InlineCodeBlock(t,s){if(t.source_text){let i=this.getFunctionDelimiter(t.source_text);return `${i}${t.source_text}${i}`}let e=this.options.functionDelimiter||"$$";return `${e}${e}`}CallContext(t,s){return t.atomic!==void 0?t.atomic?"ATOMIC":"NOT ATOMIC":""}ConstraintsSetStmt(t,s){let e=["SET","CONSTRAINTS"];if(t.constraints&&t.constraints.length>0){let i=c.unwrapList(t.constraints).map(r=>this.visit(r,s));e.push(i.join(", "));}else e.push("ALL");return e.push(t.deferred?"DEFERRED":"IMMEDIATE"),e.join(" ")}AlterSystemStmt(t,s){let e=["ALTER","SYSTEM"];if(t.setstmt){let r=this.VariableSetStmt(t.setstmt,s).replace(/^SET\s+/,"");e.push("SET",r);}return e.join(" ")}VacuumRelation(t,s){let e=[];if(t.relation&&e.push(this.RangeVar(t.relation,s)),t.va_cols&&t.va_cols.length>0){e.push("(");let i=c.unwrapList(t.va_cols).map(r=>this.visit(r,s));e.push(i.join(", ")),e.push(")");}return e.join(" ")}DropOwnedStmt(t,s){let e=["DROP","OWNED","BY"];if(t.roles&&t.roles.length>0){let i=c.unwrapList(t.roles).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.behavior)switch(t.behavior){case "DROP_CASCADE":e.push("CASCADE");break;case "DROP_RESTRICT":e.push("RESTRICT");break}return e.join(" ")}ReassignOwnedStmt(t,s){let e=["REASSIGN","OWNED","BY"];if(t.roles&&t.roles.length>0){let i=c.unwrapList(t.roles).map(r=>this.visit(r,s));e.push(i.join(", "));}return e.push("TO"),t.newrole&&e.push(this.RoleSpec(t.newrole,s)),e.join(" ")}AlterTSDictionaryStmt(t,s){let e=["ALTER","TEXT","SEARCH","DICTIONARY"];if(t.dictname&&t.dictname.length>0){let i=c.unwrapList(t.dictname).map(r=>this.visit(r,s));e.push(i.join("."));}if(t.options&&t.options.length>0){e.push("(");let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(i.join(", ")),e.push(")");}return e.join(" ")}AlterTSConfigurationStmt(t,s){let e=["ALTER","TEXT","SEARCH","CONFIGURATION"];if(t.cfgname&&t.cfgname.length>0){let i=c.unwrapList(t.cfgname).map(r=>this.visit(r,s));e.push(i.join("."));}if(t.kind)switch(t.kind){case "ALTER_TSCONFIG_ADD_MAPPING":if(e.push("ADD","MAPPING","FOR"),t.tokentype&&t.tokentype.length>0){let i=c.unwrapList(t.tokentype).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.dicts&&t.dicts.length>0){e.push("WITH");let i=c.unwrapList(t.dicts).map(r=>r.List&&r.List.items?c.unwrapList(r.List.items).map(n=>this.visit(n,s)).join("."):this.visit(r,s));e.push(i.join(", "));}break;case "ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN":if(e.push("ALTER","MAPPING","FOR"),t.tokentype&&t.tokentype.length>0){let i=c.unwrapList(t.tokentype).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.dicts&&t.dicts.length>0){e.push("WITH");let i=c.unwrapList(t.dicts).map(r=>r.List&&r.List.items?c.unwrapList(r.List.items).map(n=>this.visit(n,s)).join("."):this.visit(r,s));e.push(i.join(", "));}break;case "ALTER_TSCONFIG_REPLACE_DICT":if(e.push("ALTER","MAPPING","REPLACE"),t.dicts&&t.dicts.length>=2){let i=c.unwrapList(t.dicts).map(r=>r.List&&r.List.items?c.unwrapList(r.List.items).map(n=>this.visit(n,s)).join("."):this.visit(r,s));e.push(i[0],"WITH",i.slice(1).join(", "));}break;case "ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN":if(e.push("ALTER","MAPPING","FOR"),t.tokentype&&t.tokentype.length>0){let i=c.unwrapList(t.tokentype).map(r=>this.visit(r,s));e.push(i.join(", "));}if(t.dicts&&t.dicts.length>=2){e.push("REPLACE");let i=c.unwrapList(t.dicts).map(r=>r.List&&r.List.items?c.unwrapList(r.List.items).map(n=>this.visit(n,s)).join("."):this.visit(r,s));e.push(i[0],"WITH",i.slice(1).join(", "));}break;case "ALTER_TSCONFIG_DROP_MAPPING":if(e.push("DROP","MAPPING","FOR"),t.tokentype&&t.tokentype.length>0){let i=c.unwrapList(t.tokentype).map(r=>this.visit(r,s));e.push(i.join(", "));}break;default:throw new Error(`Unsupported AlterTSConfigurationStmt kind: ${t.kind}`)}return e.join(" ")}ClosePortalStmt(t,s){let e=["CLOSE"];return t.portalname?e.push(m.quoteIdentifier(t.portalname)):e.push("ALL"),e.join(" ")}FetchStmt(t,s){let e=[t.ismove?"MOVE":"FETCH"],i=t.howMany===9223372036854776e3;if(t.direction)switch(t.direction){case "FETCH_FORWARD":i?e.push("FORWARD","ALL"):t.howMany!==void 0&&t.howMany!==null?e.push("FORWARD",t.howMany.toString()):e.push("FORWARD");break;case "FETCH_BACKWARD":i?e.push("BACKWARD","ALL"):t.howMany!==void 0&&t.howMany!==null?e.push("BACKWARD",t.howMany.toString()):e.push("BACKWARD");break;case "FETCH_ABSOLUTE":t.howMany!==void 0&&t.howMany!==null&&e.push("ABSOLUTE",t.howMany.toString());break;case "FETCH_RELATIVE":t.howMany!==void 0&&t.howMany!==null?e.push("RELATIVE",t.howMany.toString()):e.push("RELATIVE","0");break;default:throw new Error(`Unsupported FetchStmt direction: ${t.direction}`)}else i&&e.push("ALL");return t.portalname&&e.push(m.quoteIdentifier(t.portalname)),e.join(" ")}AlterStatsStmt(t,s){let e=["ALTER","STATISTICS"];if(t.defnames&&t.defnames.length>0){let i=c.unwrapList(t.defnames).map(r=>this.visit(r,s));e.push(i.join("."));}return e.push("SET","STATISTICS"),t.stxstattarget&&e.push(this.visit(t.stxstattarget,s)),e.join(" ")}ObjectWithArgs(t,s){let e="";if(t.objname&&t.objname.length>0){let i=s.spawn("ObjectWithArgs");e=c.unwrapList(t.objname).map(n=>this.visit(n,i)).join(".");}if(t.objfuncargs&&t.objfuncargs.length>0){let i=c.unwrapList(t.objfuncargs).map(r=>this.visit(r,s));e+=`(${i.join(", ")})`;}else if(t.objargs&&t.objargs.length>0){let i=c.unwrapList(t.objargs).map(r=>!r||Object.keys(r).length===0?"NONE":this.visit(r,s));e+=`(${i.join(", ")})`;}else t.args_unspecified||((s.parentNodeTypes.includes("CommentStmt")||s.parentNodeTypes.includes("DropStmt"))&&s.objtype==="OBJECT_AGGREGATE"?e+="(*)":s.parentNodeTypes.includes("CreateOpClassItem")||(e+="()"));return e}AlterOperatorStmt(t,s){let e=["ALTER","OPERATOR"];if(t.opername&&e.push(this.ObjectWithArgs(t.opername,s)),e.push("SET"),t.options&&t.options.length>0){let i=s.spawn("AlterOperatorStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}return e.join(" ")}AlterFdwStmt(t,s){let e=["ALTER","FOREIGN","DATA","WRAPPER"];if(t.fdwname&&e.push(m.quoteIdentifier(t.fdwname)),t.func_options&&t.func_options.length>0){let i=s.spawn("AlterFdwStmt"),r=c.unwrapList(t.func_options).map(n=>this.visit(n,i));e.push(r.join(" "));}if(t.options&&t.options.length>0){e.push("OPTIONS");let i=s.spawn("AlterFdwStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}return e.join(" ")}CreateForeignServerStmt(t,s){let e=["CREATE","SERVER"];if(t.if_not_exists&&e.push("IF","NOT","EXISTS"),t.servername&&e.push(m.quoteIdentifier(t.servername)),t.servertype&&e.push("TYPE",m.escape(t.servertype)),t.version&&e.push("VERSION",m.escape(t.version)),t.fdwname&&e.push("FOREIGN","DATA","WRAPPER",m.quoteIdentifier(t.fdwname)),t.options&&t.options.length>0){e.push("OPTIONS"),e.push("(");let i=s.spawn("CreateForeignServerStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(r.join(", ")),e.push(")");}return e.join(" ")}AlterForeignServerStmt(t,s){let e=["ALTER","SERVER"];if(t.servername&&e.push(m.quoteIdentifier(t.servername)),t.version&&e.push("VERSION",m.escape(t.version)),t.options&&t.options.length>0){e.push("OPTIONS"),e.push("(");let i=s.spawn("AlterForeignServerStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(r.join(", ")),e.push(")");}return e.join(" ")}AlterUserMappingStmt(t,s){let e=["ALTER","USER","MAPPING","FOR"];if(t.user?e.push(this.RoleSpec(t.user,s)):e.push("CURRENT_USER"),e.push("SERVER"),t.servername&&e.push(m.quoteIdentifier(t.servername)),t.options&&t.options.length>0){e.push("OPTIONS");let i=s.spawn("AlterUserMappingStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}return e.join(" ")}DropUserMappingStmt(t,s){let e=["DROP","USER","MAPPING"];return t.missing_ok&&e.push("IF","EXISTS"),e.push("FOR"),t.user?e.push(this.RoleSpec(t.user,s)):e.push("CURRENT_USER"),e.push("SERVER"),t.servername&&e.push(m.quoteIdentifier(t.servername)),e.join(" ")}ImportForeignSchemaStmt(t,s){let e=["IMPORT","FOREIGN","SCHEMA"];if(t.remote_schema&&e.push(m.quoteIdentifier(t.remote_schema)),t.list_type)switch(t.list_type){case "FDW_IMPORT_SCHEMA_ALL":break;case "FDW_IMPORT_SCHEMA_LIMIT_TO":if(e.push("LIMIT","TO"),t.table_list&&t.table_list.length>0){let i=c.unwrapList(t.table_list).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}break;case "FDW_IMPORT_SCHEMA_EXCEPT":if(e.push("EXCEPT"),t.table_list&&t.table_list.length>0){let i=c.unwrapList(t.table_list).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}break;default:throw new Error(`Unsupported ImportForeignSchemaStmt list_type: ${t.list_type}`)}if(e.push("FROM","SERVER"),t.server_name&&e.push(m.quoteIdentifier(t.server_name)),e.push("INTO"),t.local_schema&&e.push(m.quoteIdentifier(t.local_schema)),t.options&&t.options.length>0){let i=s.spawn("ImportForeignSchemaStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`OPTIONS (${r.join(", ")})`);}return e.join(" ")}ClusterStmt(t,s){let e=["CLUSTER"];if(t.relation&&(e.push(this.RangeVar(t.relation,s)),t.indexname&&e.push("USING",m.quoteIdentifier(t.indexname))),t.params&&t.params.length>0){let i=c.unwrapList(t.params).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return e.join(" ")}VacuumStmt(t,s){let e=[t.is_vacuumcmd?"VACUUM":"ANALYZE"];if(t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}if(t.rels&&t.rels.length>0){let i=c.unwrapList(t.rels).map(r=>this.visit(r,s));e.push(i.join(", "));}return e.join(" ")}ExplainStmt(t,s){let e=["EXPLAIN"];if(t.options&&t.options.length>0){let i=s.spawn("ExplainStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}return t.query&&e.push(this.visit(t.query,s)),e.join(" ")}ReindexStmt(t,s){let e=["REINDEX"];if(t.params&&t.params.length>0){let i=c.unwrapList(t.params).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}if(t.kind)switch(t.kind){case "REINDEX_OBJECT_INDEX":e.push("INDEX");break;case "REINDEX_OBJECT_TABLE":e.push("TABLE");break;case "REINDEX_OBJECT_SCHEMA":e.push("SCHEMA");break;case "REINDEX_OBJECT_SYSTEM":e.push("SYSTEM");break;case "REINDEX_OBJECT_DATABASE":e.push("DATABASE");break;default:throw new Error(`Unsupported ReindexStmt kind: ${t.kind}`)}return t.relation&&e.push(this.RangeVar(t.relation,s)),t.name&&e.push(m.quoteIdentifier(t.name)),e.join(" ")}CallStmt(t,s){let e=["CALL"];if(t.funccall){let i=t.funccall;if(i.funcname&&i.funcname.length>0){let n=i.funcname.map(u=>u.String?u.String.sval:this.visit(u,s)).join("."),o="";i.args&&i.args.length>0?o=`(${i.args.map(l=>this.visit(l,s)).join(", ")})`:o="()",e.push(`${n}${o}`);}}else if(t.funcexpr)e.push(this.FuncExpr(t.funcexpr,s));else throw new Error("CallStmt requires either funccall or funcexpr");return e.join(" ")}CreatedbStmt(t,s){let e=["CREATE DATABASE"];if(!t.dbname)throw new Error("CreatedbStmt requires dbname");if(e.push(m.quoteIdentifier(t.dbname)),t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>this.visit(r,s)).join(" ");e.push("WITH",i);}return e.join(" ")}DropdbStmt(t,s){let e=["DROP DATABASE"];if(t.missing_ok&&e.push("IF EXISTS"),!t.dbname)throw new Error("DropdbStmt requires dbname");if(e.push(m.quoteIdentifier(t.dbname)),t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>this.visit(r,s)).join(" ");e.push("WITH",i);}return e.join(" ")}RenameStmt(t,s){let e=["ALTER"];if(!t.renameType)throw new Error("RenameStmt requires renameType");switch(t.renameType){case "OBJECT_TABLE":e.push("TABLE");break;case "OBJECT_VIEW":e.push("VIEW");break;case "OBJECT_INDEX":e.push("INDEX");break;case "OBJECT_SEQUENCE":e.push("SEQUENCE");break;case "OBJECT_FUNCTION":e.push("FUNCTION");break;case "OBJECT_PROCEDURE":e.push("PROCEDURE");break;case "OBJECT_SCHEMA":e.push("SCHEMA");break;case "OBJECT_DATABASE":e.push("DATABASE");break;case "OBJECT_COLUMN":t.relationType==="OBJECT_FOREIGN_TABLE"?e.push("FOREIGN TABLE"):t.relationType==="OBJECT_VIEW"?e.push("VIEW"):e.push("TABLE");break;case "OBJECT_DOMAIN":e.push("DOMAIN");break;case "OBJECT_TYPE":e.push("TYPE");break;case "OBJECT_DOMCONSTRAINT":e.push("DOMAIN");break;case "OBJECT_TABCONSTRAINT":e.push("TABLE");break;case "OBJECT_AGGREGATE":e.push("AGGREGATE");break;case "OBJECT_COLLATION":e.push("COLLATION");break;case "OBJECT_CONVERSION":e.push("CONVERSION");break;case "OBJECT_EXTENSION":e.push("EXTENSION");break;case "OBJECT_FOREIGN_SERVER":e.push("SERVER");break;case "OBJECT_FOREIGN_TABLE":e.push("FOREIGN TABLE");break;case "OBJECT_LANGUAGE":e.push("LANGUAGE");break;case "OBJECT_MATVIEW":e.push("MATERIALIZED VIEW");break;case "OBJECT_OPCLASS":e.push("OPERATOR CLASS");break;case "OBJECT_OPERATOR":e.push("OPERATOR");break;case "OBJECT_OPFAMILY":e.push("OPERATOR FAMILY");break;case "OBJECT_POLICY":e.push("POLICY"),t.subname&&e.push(m.quoteIdentifier(t.subname));break;case "OBJECT_PUBLICATION":e.push("PUBLICATION");break;case "OBJECT_ROLE":e.push("ROLE");break;case "OBJECT_RULE":e.push("RULE");break;case "OBJECT_SUBSCRIPTION":e.push("SUBSCRIPTION");break;case "OBJECT_TABLESPACE":e.push("TABLESPACE");break;case "OBJECT_TRIGGER":e.push("TRIGGER");break;case "OBJECT_TSCONFIGURATION":e.push("TEXT SEARCH CONFIGURATION");break;case "OBJECT_TSDICTIONARY":e.push("TEXT SEARCH DICTIONARY");break;case "OBJECT_TSPARSER":e.push("TEXT SEARCH PARSER");break;case "OBJECT_TSTEMPLATE":e.push("TEXT SEARCH TEMPLATE");break;case "OBJECT_FDW":e.push("FOREIGN DATA WRAPPER");break;case "OBJECT_EVENT_TRIGGER":e.push("EVENT TRIGGER");break;case "OBJECT_ATTRIBUTE":t.relationType==="OBJECT_TYPE"?e.push("TYPE"):e.push("TABLE");break;case "OBJECT_ROUTINE":e.push("ROUTINE");break;default:throw new Error(`Unsupported RenameStmt renameType: ${t.renameType}`)}if(t.missing_ok&&e.push("IF EXISTS"),t.renameType==="OBJECT_RULE"&&t.subname&&t.relation)e.push(m.quoteIdentifier(t.subname)),e.push("ON"),e.push(this.RangeVar(t.relation,s));else if(t.relation){let i=s.spawn("RenameStmt",{objtype:t.relationType});t.renameType==="OBJECT_POLICY"&&e.push("ON"),e.push(this.RangeVar(t.relation,i));}else if(t.object)if((t.renameType==="OBJECT_OPFAMILY"||t.renameType==="OBJECT_OPCLASS")&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(`${m.quoteIdentifier(n)} USING ${r}`);}else e.push(this.visit(t.object,s));}else if(t.renameType==="OBJECT_SCHEMA"&&t.object.List){let i=c.unwrapList(t.object);i.length>0&&i[0].String?e.push(this.quoteIfNeeded(i[0].String.sval)):e.push(this.visit(t.object,s));}else e.push(this.visit(t.object,s));if(t.renameType==="OBJECT_COLUMN"&&t.subname?e.push("RENAME COLUMN",m.quoteIdentifier(t.subname),"TO"):t.renameType==="OBJECT_DOMCONSTRAINT"&&t.subname?e.push("RENAME CONSTRAINT",m.quoteIdentifier(t.subname),"TO"):t.renameType==="OBJECT_TABCONSTRAINT"&&t.subname?e.push("RENAME CONSTRAINT",m.quoteIdentifier(t.subname),"TO"):t.renameType==="OBJECT_ATTRIBUTE"&&t.subname?e.push("RENAME ATTRIBUTE",m.quoteIdentifier(t.subname),"TO"):t.renameType==="OBJECT_ROLE"&&t.subname?e.push(m.quoteIdentifier(t.subname),"RENAME TO"):t.renameType==="OBJECT_SCHEMA"&&t.subname?e.push(this.quoteIfNeeded(t.subname),"RENAME TO"):(t.renameType,e.push("RENAME TO")),!t.newname)throw new Error("RenameStmt requires newname");return e.push(m.quoteIdentifier(t.newname)),t.behavior==="DROP_CASCADE"&&e.push("CASCADE"),e.join(" ")}AlterOwnerStmt(t,s){let e=["ALTER"];if(!t.objectType)throw new Error("AlterOwnerStmt requires objectType");if(e.push(this.getObjectTypeKeyword(t.objectType)),t.relation)e.push(this.RangeVar(t.relation,s));else if(t.object)if((t.objectType==="OBJECT_OPFAMILY"||t.objectType==="OBJECT_OPCLASS")&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(`${m.quoteIdentifier(n)} USING ${r}`);}else e.push(this.visit(t.object,s));}else e.push(this.visit(t.object,s));if(e.push("OWNER TO"),!t.newowner)throw new Error("AlterOwnerStmt requires newowner");return e.push(this.RoleSpec(t.newowner,s)),e.join(" ")}GrantStmt(t,s){let e=[];if(t.is_grant?e.push("GRANT"):(e.push("REVOKE"),t.grant_option&&e.push("GRANT OPTION FOR")),t.privileges&&t.privileges.length>0){let i=s.spawn("GrantStmt"),r=c.unwrapList(t.privileges).map(n=>this.visit(n,i)).join(", ");e.push(r);}else e.push("ALL");if(e.push("ON"),t.objtype&&t.targtype==="ACL_TARGET_DEFAULTS")switch(t.objtype){case "OBJECT_TABLE":e.push("TABLES");break;case "OBJECT_SEQUENCE":e.push("SEQUENCES");break;case "OBJECT_FUNCTION":e.push("FUNCTIONS");break;case "OBJECT_PROCEDURE":e.push("PROCEDURES");break;case "OBJECT_ROUTINE":e.push("ROUTINES");break;case "OBJECT_TYPE":e.push("TYPES");break;case "OBJECT_SCHEMA":e.push("SCHEMAS");break;}switch(t.targtype){case "ACL_TARGET_OBJECT":if(t.objtype==="OBJECT_SCHEMA"?e.push("SCHEMA"):t.objtype==="OBJECT_LANGUAGE"?e.push("LANGUAGE"):t.objtype==="OBJECT_FUNCTION"?e.push("FUNCTION"):t.objtype==="OBJECT_PROCEDURE"?e.push("PROCEDURE"):t.objtype==="OBJECT_TYPE"?e.push("TYPE"):t.objtype==="OBJECT_DOMAIN"?e.push("DOMAIN"):t.objtype==="OBJECT_LARGEOBJECT"?e.push("LARGE OBJECT"):t.objtype==="OBJECT_FDW"?e.push("FOREIGN","DATA","WRAPPER"):t.objtype==="OBJECT_FOREIGN_SERVER"?e.push("FOREIGN","SERVER"):t.objtype==="OBJECT_DATABASE"&&e.push("DATABASE"),t.objects&&t.objects.length>0){let i=c.unwrapList(t.objects).map(r=>this.visit(r,s)).join(", ");e.push(i);}break;case "ACL_TARGET_ALL_IN_SCHEMA":switch(t.objtype){case "OBJECT_TABLE":e.push("ALL TABLES IN SCHEMA");break;case "OBJECT_SEQUENCE":e.push("ALL SEQUENCES IN SCHEMA");break;case "OBJECT_FUNCTION":e.push("ALL FUNCTIONS IN SCHEMA");break;case "OBJECT_PROCEDURE":e.push("ALL PROCEDURES IN SCHEMA");break;case "OBJECT_ROUTINE":e.push("ALL ROUTINES IN SCHEMA");break;case "OBJECT_TYPE":e.push("ALL TYPES IN SCHEMA");break;default:e.push("ALL TABLES IN SCHEMA");break}if(t.objects&&t.objects.length>0){let i=c.unwrapList(t.objects).map(r=>this.visit(r,s)).join(", ");e.push(i);}break;default:if(t.objects&&t.objects.length>0){let i=c.unwrapList(t.objects).map(r=>this.visit(r,s)).join(", ");e.push(i);}}if(t.is_grant?e.push("TO"):e.push("FROM"),t.grantees&&t.grantees.length>0){let i=c.unwrapList(t.grantees).map(r=>this.visit(r,s)).join(", ");e.push(i);}return t.grant_option&&t.is_grant&&e.push("WITH GRANT OPTION"),t.is_grant||(t.behavior==="DROP_CASCADE"?e.push("CASCADE"):t.behavior==="DROP_RESTRICT"&&e.push("RESTRICT")),e.join(" ")}GrantRoleStmt(t,s){let e=[],i=false,r=false,n=false,o,u,l;if(t.opt&&t.opt.length>0){let p=c.unwrapList(t.opt),f=p.find(g=>g.DefElem&&g.DefElem.defname==="inherit"),h=p.find(g=>g.String&&g.String.sval==="admin"||g.DefElem&&g.DefElem.defname==="admin"),E=p.find(g=>g.DefElem&&g.DefElem.defname==="set");f&&f.DefElem&&(i=true,o=f.DefElem.arg?.Boolean?.boolval),h&&(r=true,h.DefElem&&h.DefElem.arg&&(u=h.DefElem.arg.Boolean?.boolval)),E&&E.DefElem&&(n=true,l=E.DefElem.arg?.Boolean?.boolval);}if(t.is_grant?e.push("GRANT"):(e.push("REVOKE"),i?e.push("INHERIT OPTION FOR"):r&&e.push("ADMIN OPTION FOR")),t.granted_roles&&t.granted_roles.length>0){let p=c.unwrapList(t.granted_roles).map(f=>this.visit(f,s)).join(", ");e.push(p);}if(t.is_grant?e.push("TO"):e.push("FROM"),t.grantee_roles&&t.grantee_roles.length>0){let p=c.unwrapList(t.grantee_roles).map(f=>this.visit(f,s)).join(", ");e.push(p);}if(t.is_grant){let p=[];r&&(u===true?p.push("ADMIN OPTION"):u===false?p.push("ADMIN FALSE"):p.push("ADMIN OPTION")),i&&(o===true?p.push("INHERIT OPTION"):o===false&&p.push("INHERIT FALSE")),n&&(l===true?p.push("SET TRUE"):l===false&&p.push("SET FALSE")),p.length>0&&e.push("WITH",p.join(", "));}return e.join(" ")}SecLabelStmt(t,s){let e=["SECURITY LABEL"];if(t.provider&&e.push("FOR",m.quoteIdentifier(t.provider)),e.push("ON"),t.objtype)switch(t.objtype){case "OBJECT_TABLE":e.push("TABLE");break;case "OBJECT_COLUMN":e.push("COLUMN");break;case "OBJECT_FUNCTION":e.push("FUNCTION");break;case "OBJECT_SCHEMA":e.push("SCHEMA");break;case "OBJECT_DATABASE":e.push("DATABASE");break;case "OBJECT_ROLE":e.push("ROLE");break;default:e.push(t.objtype.replace("OBJECT_",""));}return t.object&&e.push(this.visit(t.object,s)),e.push("IS"),t.label?e.push(`'${t.label}'`):e.push("NULL"),e.join(" ")}AlterDefaultPrivilegesStmt(t,s){let e=["ALTER DEFAULT PRIVILEGES"];if(t.options&&t.options.length>0){let i=c.unwrapList(t.options);for(let r of i){let n=this.getNodeData(r);if(n.defname==="schemas"){if(e.push("IN SCHEMA"),n.arg){let o=c.unwrapList(n.arg).map(u=>this.visit(u,s)).join(", ");e.push(o);}}else if(n.defname==="roles"&&(e.push("FOR ROLE"),n.arg)){let o=c.unwrapList(n.arg).map(u=>this.visit(u,s)).join(", ");e.push(o);}}}if(t.action){let i=this.GrantStmt(t.action,s);if(s.isPretty())return e.join(" ")+s.newline()+s.indent(i);e.push(i);}return e.join(" ")}CreateConversionStmt(t,s){let e=["CREATE"];if(t.def&&e.push("DEFAULT"),e.push("CONVERSION"),t.conversion_name&&t.conversion_name.length>0){let i=c.unwrapList(t.conversion_name).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.for_encoding_name&&e.push("FOR",`'${t.for_encoding_name}'`),t.to_encoding_name&&e.push("TO",`'${t.to_encoding_name}'`),t.func_name&&t.func_name.length>0){e.push("FROM");let i=c.unwrapList(t.func_name).map(r=>this.visit(r,s)).join(".");e.push(i);}return e.join(" ")}CreateCastStmt(t,s){let e=["CREATE CAST"];if(e.push("("),t.sourcetype&&e.push(this.TypeName(t.sourcetype,s)),e.push("AS"),t.targettype&&e.push(this.TypeName(t.targettype,s)),e.push(")"),t.func?(e.push("WITH FUNCTION"),e.push(this.ObjectWithArgs(t.func,s))):t.inout?e.push("WITH INOUT"):e.push("WITHOUT FUNCTION"),t.context)switch(t.context){case "COERCION_IMPLICIT":e.push("AS IMPLICIT");break;case "COERCION_ASSIGNMENT":e.push("AS ASSIGNMENT");break;case "COERCION_EXPLICIT":break;default:throw new Error(`Unsupported CreateCastStmt context: ${t.context}`)}else t.context==="COERCION_ASSIGNMENT"&&e.push("AS ASSIGNMENT");return e.join(" ")}CreatePLangStmt(t,s){let e=["CREATE"];if(t.replace&&e.push("OR REPLACE"),t.pltrusted&&e.push("TRUSTED"),e.push("LANGUAGE"),t.plname&&e.push(m.quoteIdentifier(t.plname)),t.plhandler&&t.plhandler.length>0){e.push("HANDLER");let i=c.unwrapList(t.plhandler).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.plinline&&t.plinline.length>0){e.push("INLINE");let i=c.unwrapList(t.plinline).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.plvalidator&&t.plvalidator.length>0){e.push("VALIDATOR");let i=c.unwrapList(t.plvalidator).map(r=>this.visit(r,s)).join(".");e.push(i);}return e.join(" ")}CreateTransformStmt(t,s){let e=["CREATE"];t.replace&&e.push("OR REPLACE"),e.push("TRANSFORM FOR"),t.type_name&&e.push(this.TypeName(t.type_name,s)),e.push("LANGUAGE"),t.lang&&e.push(m.quoteIdentifier(t.lang)),e.push("(");let i=[];if(t.fromsql){let r=this.ObjectWithArgs(t.fromsql,s);i.push(`FROM SQL WITH FUNCTION ${r}`);}if(t.tosql){let r=this.ObjectWithArgs(t.tosql,s);i.push(`TO SQL WITH FUNCTION ${r}`);}return e.push(i.join(", ")),e.push(")"),e.join(" ")}CreateTrigStmt(t,s){let e=["CREATE"];if(t.replace&&e.push("OR REPLACE"),t.isconstraint&&e.push("CONSTRAINT"),e.push("TRIGGER"),t.trigname&&e.push(m.quoteIdentifier(t.trigname)),s.isPretty()){let i=[],r=[];t.timing&2?r.push("BEFORE"):t.timing&64?r.push("INSTEAD OF"):r.push("AFTER");let n=[];if(t.events&4&&n.push("INSERT"),t.events&8&&n.push("DELETE"),t.events&16){let u="UPDATE";if(t.columns&&t.columns.length>0){let l=c.unwrapList(t.columns).map(p=>this.visit(p,s)).join(", ");u+=" OF "+l;}n.push(u);}if(t.events&32&&n.push("TRUNCATE"),i.push(s.indent(r.join(" ")+" "+n.join(" OR "))),t.relation&&i.push(s.indent("ON "+this.RangeVar(t.relation,s))),t.transitionRels&&t.transitionRels.length>0){let u=c.unwrapList(t.transitionRels).map(l=>this.visit(l,s)).join(" ");i.push(s.indent("REFERENCING "+u));}if(t.deferrable&&i.push(s.indent("DEFERRABLE")),t.initdeferred&&i.push(s.indent("INITIALLY DEFERRED")),t.row?i.push(s.indent("FOR EACH ROW")):i.push(s.indent("FOR EACH STATEMENT")),t.whenClause){let u="WHEN ("+this.visit(t.whenClause,s)+")";i.push(s.indent(u));}let o="EXECUTE";if(t.funcname&&t.funcname.length>0){let u=c.unwrapList(t.funcname).map(l=>this.visit(l,s)).join(".");o+=" PROCEDURE "+u;}if(t.args&&t.args.length>0){let u=s.spawn("CreateTrigStmt",{isStringLiteral:true}),l=c.unwrapList(t.args).map(p=>this.visit(p,u)).join(", ");o+="("+l+")";}else o+="()";return i.push(s.indent(o)),e.join(" ")+s.newline()+i.join(s.newline())}else {let i=[];t.timing&2?i.push("BEFORE"):t.timing&64?i.push("INSTEAD OF"):i.push("AFTER"),e.push(i.join(" "));let r=[];if(t.events&4&&r.push("INSERT"),t.events&8&&r.push("DELETE"),t.events&16&&r.push("UPDATE"),t.events&32&&r.push("TRUNCATE"),e.push(r.join(" OR ")),t.columns&&t.columns.length>0){e.push("OF");let n=c.unwrapList(t.columns).map(o=>this.visit(o,s)).join(", ");e.push(n);}if(e.push("ON"),t.relation&&e.push(this.RangeVar(t.relation,s)),t.constrrel&&(e.push("FROM"),e.push(this.RangeVar(t.constrrel,s))),t.deferrable&&e.push("DEFERRABLE"),t.initdeferred&&e.push("INITIALLY DEFERRED"),t.transitionRels&&t.transitionRels.length>0){e.push("REFERENCING");let n=c.unwrapList(t.transitionRels).map(o=>this.visit(o,s)).join(" ");e.push(n);}if(t.row?e.push("FOR EACH ROW"):e.push("FOR EACH STATEMENT"),t.whenClause&&(e.push("WHEN"),e.push("("),e.push(this.visit(t.whenClause,s)),e.push(")")),e.push("EXECUTE"),t.funcname&&t.funcname.length>0){let n=c.unwrapList(t.funcname).map(o=>this.visit(o,s)).join(".");e.push("FUNCTION",n);}if(t.args&&t.args.length>0){e.push("(");let n=s.spawn("CreateTrigStmt",{isStringLiteral:true}),o=c.unwrapList(t.args).map(u=>this.visit(u,n)).join(", ");e.push(o),e.push(")");}else e.push("()");return e.join(" ")}}TriggerTransition(t,s){let e=[];return t.isNew?e.push("NEW TABLE AS"):e.push("OLD TABLE AS"),t.name&&e.push(m.quoteIdentifier(t.name)),e.join(" ")}CreateEventTrigStmt(t,s){let e=["CREATE EVENT TRIGGER"];if(t.trigname&&e.push(m.quoteIdentifier(t.trigname)),e.push("ON"),t.eventname&&e.push(t.eventname),t.whenclause&&t.whenclause.length>0){e.push("WHEN");let i=s.spawn("CreateEventTrigStmt"),r=c.unwrapList(t.whenclause).map(n=>this.visit(n,i)).join(" AND ");e.push(r);}if(e.push("EXECUTE"),t.funcname&&t.funcname.length>0){let i=c.unwrapList(t.funcname).map(r=>this.visit(r,s)).join(".");e.push("PROCEDURE",i+"()");}return e.join(" ")}AlterEventTrigStmt(t,s){let e=["ALTER EVENT TRIGGER"];if(t.trigname&&e.push(m.quoteIdentifier(t.trigname)),t.tgenabled)switch(t.tgenabled){case "O":e.push("ENABLE");break;case "D":e.push("DISABLE");break;case "R":e.push("ENABLE REPLICA");break;case "A":e.push("ENABLE ALWAYS");break;default:throw new Error(`Unsupported trigger enable state: ${t.tgenabled}`)}return e.join(" ")}CreateOpClassStmt(t,s){let e=["CREATE OPERATOR CLASS"];if(t.opclassname&&t.opclassname.length>0){let i=c.unwrapList(t.opclassname).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.isDefault&&e.push("DEFAULT"),e.push("FOR TYPE"),t.datatype&&e.push(this.TypeName(t.datatype,s)),e.push("USING"),t.amname&&e.push(t.amname),t.opfamilyname&&t.opfamilyname.length>0){e.push("FAMILY");let i=c.unwrapList(t.opfamilyname).map(r=>this.visit(r,s)).join(".");e.push(i);}if(e.push("AS"),t.items&&t.items.length>0){let i=c.unwrapList(t.items).map(r=>this.visit(r,s)).join(", ");e.push(i);}return e.join(" ")}CreateOpFamilyStmt(t,s){let e=["CREATE OPERATOR FAMILY"];if(t.opfamilyname&&t.opfamilyname.length>0){let i=c.unwrapList(t.opfamilyname).map(r=>this.visit(r,s)).join(".");e.push(i);}return e.push("USING"),t.amname&&e.push(t.amname),e.join(" ")}AlterOpFamilyStmt(t,s){let e=["ALTER OPERATOR FAMILY"];if(t.opfamilyname&&t.opfamilyname.length>0){let i=c.unwrapList(t.opfamilyname).map(r=>this.visit(r,s)).join(".");e.push(i);}if(e.push("USING"),t.amname&&e.push(t.amname),t.isDrop?e.push("DROP"):e.push("ADD"),t.items&&t.items.length>0){let i=c.unwrapList(t.items).map(r=>this.visit(r,s)).join(", ");e.push(i);}return e.join(" ")}MergeStmt(t,s){let e=[];if(t.withClause&&e.push(this.WithClause(t.withClause,s)),e.push("MERGE INTO"),t.relation&&e.push(this.RangeVar(t.relation,s)),t.sourceRelation&&(e.push("USING"),e.push(this.visit(t.sourceRelation,s))),t.joinCondition&&(e.push("ON"),e.push(this.visit(t.joinCondition,s))),t.mergeWhenClauses&&t.mergeWhenClauses.length>0){let i=c.unwrapList(t.mergeWhenClauses).map(r=>this.visit(r,s)).join(" ");e.push(i);}return e.join(" ")}AlterTableMoveAllStmt(t,s){let e=["ALTER"];return t.objtype==="OBJECT_TABLE"?e.push("TABLE"):t.objtype==="OBJECT_INDEX"?e.push("INDEX"):e.push("TABLE"),e.push("ALL","IN","TABLESPACE"),t.orig_tablespacename&&e.push(m.quoteIdentifier(t.orig_tablespacename)),e.push("SET","TABLESPACE"),t.new_tablespacename&&e.push(m.quoteIdentifier(t.new_tablespacename)),t.nowait&&e.push("NOWAIT"),e.join(" ")}CreateSeqStmt(t,s){let e=["CREATE"];if(t.sequence&&t.sequence.relpersistence==="t"&&e.push("TEMPORARY"),e.push("SEQUENCE"),t.if_not_exists&&e.push("IF NOT EXISTS"),t.sequence){let i=[],r=t.sequence;r.schemaname&&i.push(m.quoteIdentifier(r.schemaname)),r.relname&&i.push(m.quoteIdentifier(r.relname)),e.push(i.join("."));}if(t.options&&t.options.length>0){let i=s.spawn("CreateSeqStmt"),r=c.unwrapList(t.options).filter(n=>n!=null&&this.getNodeType(n)!=="undefined").map(n=>{try{return this.visit(n,i)}catch(o){return console.warn(`Error processing option in CreateSeqStmt: ${o instanceof Error?o.message:String(o)}`),""}}).filter(n=>n!=="").join(" ");r&&e.push(r);}return e.join(" ")}AlterSeqStmt(t,s){let e=["ALTER","SEQUENCE"];if(t.missing_ok&&e.push("IF EXISTS"),t.sequence){let i=[],r=t.sequence;r.schemaname&&i.push(m.quoteIdentifier(r.schemaname)),r.relname&&i.push(m.quoteIdentifier(r.relname)),e.push(i.join("."));}if(t.options&&t.options.length>0){let i=s.spawn("AlterSeqStmt"),r=c.unwrapList(t.options).filter(n=>n&&n!==void 0).map(n=>{try{return !n||this.getNodeType(n)==="undefined"?"":this.visit(n,i)}catch(o){return console.warn(`Error processing option in AlterSeqStmt: ${o instanceof Error?o.message:String(o)}`),""}}).filter(n=>n&&n.trim().length>0).join(" ");r&&e.push(r);}return t.for_identity&&e.push("FOR IDENTITY"),e.join(" ")}CompositeTypeStmt(t,s){let e=["CREATE","TYPE"];if(t.typevar){let i=s.spawn("CompositeTypeStmt");e.push(this.RangeVar(t.typevar,i));}if(e.push("AS"),t.coldeflist&&t.coldeflist.length>0){let i=c.unwrapList(t.coldeflist).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}else e.push("()");return e.join(" ")}CreateRangeStmt(t,s){let e=["CREATE","TYPE"];if(t.typeName&&t.typeName.length>0){let i=c.unwrapList(t.typeName).map(r=>this.visit(r,s)).join(".");e.push(i);}if(e.push("AS","RANGE"),t.params&&t.params.length>0){let i=c.unwrapList(t.params).map(r=>{let n=this.getNodeData(r);if(n.defname&&n.arg){let o=this.visit(n.arg,s);return `${n.defname} = ${o}`}return this.visit(r,s)});e.push(`(${i.join(", ")})`);}return e.join(" ")}AlterEnumStmt(t,s){let e=["ALTER","TYPE"];if(t.typeName&&t.typeName.length>0){let i=c.unwrapList(t.typeName).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.oldVal&&t.newVal){let i=t.oldVal.replace(/'/g,"''"),r=t.newVal.replace(/'/g,"''");e.push("RENAME","VALUE",`'${i}'`,"TO",`'${r}'`);}else if(t.newVal){e.push("ADD","VALUE"),t.skipIfNewValExists&&e.push("IF NOT EXISTS");let i=t.newVal.replace(/'/g,"''");if(e.push(`'${i}'`),t.newValNeighbor){let r=t.newValNeighbor.replace(/'/g,"''");t.newValIsAfter?e.push("AFTER",`'${r}'`):e.push("BEFORE",`'${r}'`);}}return e.join(" ")}AlterTypeStmt(t,s){let e=["ALTER","TYPE"];if(t.typeName&&t.typeName.length>0){let i=c.unwrapList(t.typeName).map(r=>this.visit(r,s)).join(".");e.push(i);}if(e.push("SET"),t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>{let n=this.getNodeData(r);if(n.defname&&n.arg){let o=this.visit(n.arg,s);return `${n.defname} = ${o}`}return this.visit(r,s)});e.push(`(${i.join(", ")})`);}return e.join(" ")}AlterRoleStmt(t,s){let e=t.options&&c.unwrapList(t.options).some(r=>r.DefElem&&r.DefElem.defname==="rolemembers"),i=["ALTER",e?"GROUP":"ROLE"];if(t.role&&i.push(this.RoleSpec(t.role,s)),t.options){let r=s.spawn("AlterRoleStmt");if(e){let n=c.unwrapList(t.options).find(o=>o.DefElem&&o.DefElem.defname==="rolemembers");if(n&&n.DefElem){let o=t.action===1?"ADD":"DROP";if(i.push(o,"USER"),n.DefElem.arg&&n.DefElem.arg.List){let u=c.unwrapList(n.DefElem.arg.List.items).map(l=>this.visit(l,r)).join(", ");i.push(u);}}}else {let n=c.unwrapList(t.options).map(o=>this.visit(o,r)).join(" ");n&&i.push(n);}}return i.join(" ")}DropRoleStmt(t,s){let e=["DROP","ROLE"];if(t.missing_ok&&e.push("IF EXISTS"),t.roles){let i=c.unwrapList(t.roles).map(r=>this.visit(r,s)).join(", ");e.push(i);}return e.join(" ")}targetList(t,s){return !t||!Array.isArray(t)?"":t.map(e=>this.visit(e,s)).join(", ")}CreateAggregateStmt(t,s){let e=["CREATE"];if(t.replace&&e.push("OR REPLACE"),e.push("AGGREGATE"),t.defnames&&t.defnames.length>0){let r=c.unwrapList(t.defnames).map(n=>this.visit(n,s)).join(".");e.push(r);}if(e.push("("),t.args&&t.args.length>0){let r=c.unwrapList(t.args).map(n=>this.visit(n,s)).join(", ");e.push(r);}else e.push("*");e.push(")"),e.push("(");let i=[];if(t.definition&&t.definition.length>0){let r=c.unwrapList(t.definition).map(n=>{let o=this.getNodeData(n);return o.defname==="sfunc"||o.defname==="sfunc1"?`SFUNC = ${this.visit(o.arg,s)}`:o.defname==="stype"||o.defname==="stype1"?`STYPE = ${this.visit(o.arg,s)}`:o.defname==="basetype"?`BASETYPE = ${this.visit(o.arg,s)}`:o.defname==="finalfunc"?`FINALFUNC = ${this.visit(o.arg,s)}`:o.defname==="initcond"||o.defname==="initcond1"?`INITCOND = ${this.visit(o.arg,s)}`:o.defname==="combinefunc"?`COMBINEFUNC = ${this.visit(o.arg,s)}`:o.defname==="serialfunc"?`SERIALFUNC = ${this.visit(o.arg,s)}`:o.defname==="deserialfunc"?`DESERIALFUNC = ${this.visit(o.arg,s)}`:o.defname==="parallel"?`PARALLEL = ${this.visit(o.arg,s)}`:this.visit(n,s)});i.push(...r);}return e.push(i.join(", ")),e.push(")"),e.join(" ")}CreateTableAsStmt(t,s){let e=["CREATE"];if(t.objtype==="OBJECT_MATVIEW"?e.push("MATERIALIZED VIEW"):t.into&&t.into.rel&&t.into.rel.relpersistence==="t"?e.push("TEMPORARY TABLE"):e.push("TABLE"),t.if_not_exists&&e.push("IF NOT EXISTS"),t.into&&t.into.rel&&e.push(this.RangeVar(t.into.rel,s)),t.into&&t.into.colNames&&t.into.colNames.length>0){e.push("(");let i=c.unwrapList(t.into.colNames).map(r=>this.visit(r,s)).join(", ");e.push(i),e.push(")");}if(t.into&&t.into.accessMethod&&(e.push("USING"),e.push(t.into.accessMethod)),t.into&&t.into.onCommit&&t.into.onCommit!=="ONCOMMIT_NOOP")switch(e.push("ON COMMIT"),t.into.onCommit){case "ONCOMMIT_PRESERVE_ROWS":e.push("PRESERVE ROWS");break;case "ONCOMMIT_DELETE_ROWS":e.push("DELETE ROWS");break;case "ONCOMMIT_DROP":e.push("DROP");break}if(e.push("AS"),t.query&&e.push(this.visit(t.query,s)),t.into&&t.into.options&&t.into.options.length>0){e.push("WITH");let i=c.unwrapList(t.into.options).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}return t.into&&t.into.skipData&&e.push("WITH NO DATA"),e.join(" ")}RefreshMatViewStmt(t,s){let e=["REFRESH","MATERIALIZED","VIEW"];return t.concurrent&&e.push("CONCURRENTLY"),t.relation&&e.push(this.visit(t.relation,s)),t.skipData&&e.push("WITH NO DATA"),e.join(" ")}AccessPriv(t,s){let e=[];if(t.priv_name?e.push(t.priv_name.toUpperCase()):e.push("ALL"),t.cols&&t.cols.length>0){e.push("(");let i=s.spawn("AccessPriv"),r=c.unwrapList(t.cols).map(n=>this.visit(n,i));e.push(r.join(", ")),e.push(")");}return e.join(" ")}aliasname(t,s){return typeof t=="string"?m.quoteIdentifier(t):this.visit(t,s)}DefineStmt(t,s){let e=[];if(!t.kind)throw new Error("DefineStmt requires kind property");switch(t.kind){case "OBJECT_OPERATOR":if(e.push("CREATE OPERATOR"),t.defnames&&t.defnames.length>0){let i=c.unwrapList(t.defnames).map((r,n)=>{if(n===t.defnames.length-1){let o=this.getNodeData(r);if(o&&o.sval)return o.sval}return this.visit(r,s)});e.push(i.join("."));}if(t.definition&&t.definition.length>0){e.push("(");let i=c.unwrapList(t.definition).map(r=>{if(r.DefElem){let n=r.DefElem,o=n.defname,u=n.arg;if(o&&u){let l=m.quoteIdentifier(o),p=l!==o?l:this.preserveOperatorDefElemCase(o);if((o.toLowerCase()==="commutator"||o.toLowerCase()==="negator")&&u.List){let f=c.unwrapList(u.List.items);if(f.length===1&&f[0].String)return `${p} = ${f[0].String.sval}`}return o.toLowerCase()==="commutator"||o.toLowerCase()==="negator"?`${p} = ${this.visit(u,s)}`:`${p} = ${this.visit(u,s)}`}else if(o&&!u)return o==="Hashes"||o==="Merges"?m.quoteIdentifier(o):this.preserveOperatorDefElemCase(o).toUpperCase()}return this.visit(r,s)});e.push(i.join(", ")),e.push(")");}break;case "OBJECT_TYPE":if(e.push("CREATE TYPE"),t.defnames&&t.defnames.length>0&&e.push(c.unwrapList(t.defnames).map(i=>this.visit(i,s)).join(".")),t.definition&&t.definition.length>0){let i=s.spawn("DefineStmt"),r=c.unwrapList(t.definition).map(n=>this.visit(n,i));e.push(`(${r.join(", ")})`);}break;case "OBJECT_AGGREGATE":if(e.push("CREATE"),t.replace&&e.push("OR REPLACE"),e.push("AGGREGATE"),t.defnames&&t.defnames.length>0){let i=c.unwrapList(t.defnames).map(r=>this.visit(r,s));e.push(i.join("."));}if(t.args&&t.args.length>0){let i=c.unwrapList(t.args),r=i.some(u=>u.Integer&&u.Integer.ival===1),n=i.length>=2&&i[0].List&&i[0].List.items&&i[0].List.items.length===1&&i[0].List.items[0].FunctionParameter&&i[0].List.items[0].FunctionParameter.mode==="FUNC_PARAM_DEFAULT"&&i[1].Integer&&Object.keys(i[1].Integer).length===0,o=i.filter(u=>!(u.Integer&&(u.Integer.ival===-1||u.Integer.ival===1)||u.Integer&&Object.keys(u.Integer).length===0&&n));if(o.length>0)if(n){let u=o[0];if(u.List&&u.List.items&&u.List.items[0].FunctionParameter){let l=u.List.items[0].FunctionParameter,p;if(l.argType&&l.argType.names){let f=l.argType.names;f.length>=2&&f[0].String&&f[0].String.sval==="pg_catalog"?p=f[1].String.sval:f.length>=1&&f[0].String?p=f[0].String.sval:p="unknown";}else p=this.visit({TypeName:l.argType},s);e.push(`(ORDER BY ${p})`);}else {let l=this.visit(u,s);e.push(`(ORDER BY ${l})`);}}else if(r&&o.length===1&&o[0].List){let u=o[0].List;if(u.items&&u.items.length>=2){let l=c.unwrapList(u.items),p=this.visit(l[0],s),f=l.slice(1).map(h=>this.visit(h,s));e.push(`(${p} ORDER BY ${f.join(", ")})`);}else if(u.items&&u.items.length===1){let l=u.items[0];if(l.FunctionParameter&&l.FunctionParameter.mode==="FUNC_PARAM_VARIADIC"){let p=this.visit(l,s);e.push(`(${p} ORDER BY ${p})`);}else {let p=this.visit(l,s);e.push(`(${p})`);}}else {let l=o.map(p=>Object.keys(p).length===0?"*":this.visit(p,s));e.push(`(${l.join(", ")})`);}}else {let u=o.map(l=>Object.keys(l).length===0?"*":this.visit(l,s));e.push(`(${u.join(", ")})`);}}if(t.definition&&t.definition.length>0){let i=c.unwrapList(t.definition).map(r=>{if(r.DefElem){let n=r.DefElem,o=n.defname,u=n.arg;if(o&&u){let l=m.quoteIdentifier(o),p=l!==o?l:o;return u.String?`${p} = '${u.String.sval}'`:`${p} = ${this.visit(u,s)}`}}return this.visit(r,s)});e.push(`(${i.join(", ")})`);}break;case "OBJECT_TSDICTIONARY":if(e.push("CREATE TEXT SEARCH DICTIONARY"),t.defnames&&t.defnames.length>0&&e.push(c.unwrapList(t.defnames).map(i=>this.visit(i,s)).join(".")),t.definition&&t.definition.length>0){e.push("(");let i=c.unwrapList(t.definition).map(r=>{if(r.DefElem){let n=r.DefElem,o=n.defname,u=n.arg;if(o&&u)return `${o} = ${this.visit(u,s)}`}return this.visit(r,s)});e.push(i.join(", ")),e.push(")");}break;case "OBJECT_TSCONFIGURATION":if(e.push("CREATE TEXT SEARCH CONFIGURATION"),t.defnames&&t.defnames.length>0&&e.push(c.unwrapList(t.defnames).map(i=>this.visit(i,s)).join(".")),t.definition&&t.definition.length>0){e.push("(");let i=c.unwrapList(t.definition).map(r=>{if(r.DefElem){let n=r.DefElem,o=n.defname,u=n.arg;if(o&&u)return `${o} = ${this.visit(u,s)}`}return this.visit(r,s)});e.push(i.join(", ")),e.push(")");}break;case "OBJECT_TSPARSER":if(e.push("CREATE TEXT SEARCH PARSER"),t.defnames&&t.defnames.length>0){let i=c.unwrapList(t.defnames).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.definition&&t.definition.length>0){e.push("(");let i=c.unwrapList(t.definition).map(r=>{if(r.DefElem){let n=r.DefElem,o=n.defname,u=n.arg;if(o&&u)return `${o} = ${this.visit(u,s)}`}return this.visit(r,s)});e.push(i.join(", ")),e.push(")");}break;case "OBJECT_TSTEMPLATE":if(e.push("CREATE TEXT SEARCH TEMPLATE"),t.defnames&&t.defnames.length>0){let i=c.unwrapList(t.defnames).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.definition&&t.definition.length>0){e.push("(");let i=c.unwrapList(t.definition).map(r=>{if(r.DefElem){let n=r.DefElem,o=n.defname,u=n.arg;if(o&&u)return `${o} = ${this.visit(u,s)}`}return this.visit(r,s)});e.push(i.join(", ")),e.push(")");}break;case "OBJECT_COLLATION":if(e.push("CREATE COLLATION"),t.defnames&&t.defnames.length>0&&e.push(c.unwrapList(t.defnames).map(i=>this.visit(i,s)).join(".")),t.definition&&t.definition.length>0){let i=c.unwrapList(t.definition).map(n=>{if(n.DefElem){let o=n.DefElem,u=o.defname,l=o.arg;if(u&&l){if(u==="from")return `FROM ${this.visit(l,s)}`;let p;return l.String?p=`'${l.String.sval}'`:p=this.visit(l,s),`${u} = ${p}`}}return this.visit(n,s)});i.some(n=>n.startsWith("FROM "))?e.push(i.join(" ")):e.push(`(${i.join(", ")})`);}break;default:throw new Error(`Unsupported DefineStmt kind: ${t.kind}`)}return e.join(" ")}AlterDatabaseStmt(t,s){let e=["ALTER","DATABASE"];if(t.dbname&&e.push(m.quoteIdentifier(t.dbname)),t.options&&t.options.length>0){let i=c.unwrapList(t.options).map(r=>this.visit(r,s));e.push(i.join(" "));}return e.join(" ")}AlterDatabaseRefreshCollStmt(t,s){let e=["ALTER","DATABASE"];return t.dbname&&e.push(m.quoteIdentifier(t.dbname)),e.push("REFRESH","COLLATION","VERSION"),e.join(" ")}AlterDatabaseSetStmt(t,s){let e=["ALTER","DATABASE"];if(t.dbname&&e.push(m.quoteIdentifier(t.dbname)),t.setstmt){let i=this.VariableSetStmt(t.setstmt,s);e.push(i);}return e.join(" ")}DeclareCursorStmt(t,s){let e=["DECLARE"];t.portalname&&e.push(m.quoteIdentifier(t.portalname));let i=[];return t.options&&(t.options&2?i.push("SCROLL"):t.options&4&&i.push("NO SCROLL"),t.options&1&&i.push("BINARY"),t.options&8&&i.push("INSENSITIVE")),i.length>0&&e.push(...i),e.push("CURSOR"),t.options&&t.options&32&&e.push("WITH HOLD"),e.push("FOR"),t.query&&e.push(this.visit(t.query,s)),e.join(" ")}PublicationObjSpec(t,s){let e=[];return t.pubobjtype==="PUBLICATIONOBJ_TABLE"?(e.push("TABLE"),t.pubtable&&e.push(this.PublicationTable(t.pubtable,s))):t.pubobjtype==="PUBLICATIONOBJ_TABLES_IN_SCHEMA"?(e.push("TABLES IN SCHEMA"),t.name&&e.push(m.quoteIdentifier(t.name))):t.pubobjtype==="PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA"&&e.push("TABLES IN SCHEMA CURRENT_SCHEMA"),e.join(" ")}PublicationTable(t,s){let e=[];if(t.relation&&e.push(this.RangeVar(t.relation,s)),t.columns&&t.columns.length>0){let i=c.unwrapList(t.columns).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return t.whereClause&&(e.push("WHERE"),e.push(this.visit(t.whereClause,s))),e.join(" ")}CreateAmStmt(t,s){let e=["CREATE","ACCESS","METHOD"];switch(t.amname&&e.push(m.quoteIdentifier(t.amname)),e.push("TYPE"),t.amtype){case "i":e.push("INDEX");break;case "t":e.push("TABLE");break;default:e.push(t.amtype||"");break}if(t.handler_name&&t.handler_name.length>0){e.push("HANDLER");let i=c.unwrapList(t.handler_name).map(r=>this.visit(r,s)).join(".");e.push(i);}return e.join(" ")}IntoClause(t,s){let e=[];if(t.rel&&e.push(this.RangeVar(t.rel,s)),t.colNames&&t.colNames.length>0){let i=c.unwrapList(t.colNames).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}if(t.accessMethod&&e.push("USING",t.accessMethod),t.options&&t.options.length>0){e.push("WITH");let i=c.unwrapList(t.options).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}if(t.onCommit&&t.onCommit!=="ONCOMMIT_NOOP")switch(e.push("ON COMMIT"),t.onCommit){case "ONCOMMIT_PRESERVE_ROWS":e.push("PRESERVE ROWS");break;case "ONCOMMIT_DELETE_ROWS":e.push("DELETE ROWS");break;case "ONCOMMIT_DROP":e.push("DROP");break}return t.tableSpaceName&&e.push("TABLESPACE",m.quoteIdentifier(t.tableSpaceName)),e.join(" ")}OnConflictExpr(t,s){let e=["ON CONFLICT"];if(t.arbiterElems&&t.arbiterElems.length>0){let i=c.unwrapList(t.arbiterElems).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}if(t.arbiterWhere&&(e.push("WHERE"),e.push(this.visit(t.arbiterWhere,s))),t.action==="ONCONFLICT_NOTHING")e.push("DO NOTHING");else if(t.action==="ONCONFLICT_UPDATE"){if(e.push("DO UPDATE SET"),t.onConflictSet&&t.onConflictSet.length>0){let i=c.unwrapList(t.onConflictSet).map(r=>this.visit(r,s)).join(", ");e.push(i);}t.onConflictWhere&&(e.push("WHERE"),e.push(this.visit(t.onConflictWhere,s)));}return e.join(" ")}ScanToken(t,s){return ""}CreateOpClassItem(t,s){let e=[];if(t.itemtype===1){e.push("OPERATOR");let i=t.number!==void 0?t.number:0;if(e.push(i.toString()),t.name){let r=s.spawn("CreateOpClassItem");e.push(this.ObjectWithArgs(t.name,r));}}else if(t.itemtype===2){e.push("FUNCTION");let i=t.number!==void 0?t.number:0;if(e.push(i.toString()),t.name){let r=s.spawn("CreateOpClassItem");e.push(this.ObjectWithArgs(t.name,r));}}else t.itemtype===3&&(e.push("STORAGE"),t.storedtype&&e.push(this.TypeName(t.storedtype,s)));if(t.order_family&&t.order_family.length>0){e.push("FOR ORDER BY");let i=c.unwrapList(t.order_family).map(r=>this.visit(r,s)).join(".");e.push(i);}if(t.class_args&&t.class_args.length>0){let i=c.unwrapList(t.class_args).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}return e.join(" ")}Var(t,s){return t.varno&&t.varattno?`$${t.varno}.${t.varattno}`:"$var"}TableFunc(t,s){let e=[];if(t.functype==="TFT_XMLTABLE"){if(e.push("XMLTABLE"),t.ns_names&&t.ns_names.length>0){e.push("XMLNAMESPACES");let i=c.unwrapList(t.ns_names).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}if(t.rowexpr&&e.push(`(${this.visit(t.rowexpr,s)})`),t.docexpr&&(e.push("PASSING"),e.push(this.visit(t.docexpr,s))),t.colexprs&&t.colexprs.length>0){e.push("COLUMNS");let i=c.unwrapList(t.colexprs).map(r=>this.visit(r,s)).join(", ");e.push(i);}}else if(t.functype==="TFT_JSON_TABLE"&&(e.push("JSON_TABLE"),t.docexpr&&e.push(`(${this.visit(t.docexpr,s)})`),t.rowexpr&&(e.push(","),e.push(`'${this.visit(t.rowexpr,s)}'`)),t.colexprs&&t.colexprs.length>0)){e.push("COLUMNS");let i=c.unwrapList(t.colexprs).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}return e.join(" ")}RangeTableFunc(t,s){let e=[];if(t.lateral&&e.push("LATERAL"),t.docexpr&&e.push(this.visit(t.docexpr,s)),t.rowexpr&&(e.push("PASSING"),e.push(this.visit(t.rowexpr,s))),t.columns&&t.columns.length>0){e.push("COLUMNS");let i=c.unwrapList(t.columns).map(r=>this.visit(r,s)).join(", ");e.push(`(${i})`);}return t.alias&&e.push(this.Alias(t.alias,s)),e.join(" ")}RangeTableFuncCol(t,s){let e=[];return t.colname&&e.push(m.quoteIdentifier(t.colname)),t.for_ordinality?e.push("FOR ORDINALITY"):t.typeName&&e.push(this.TypeName(t.typeName,s)),t.colexpr&&(e.push("PATH"),e.push(`'${this.visit(t.colexpr,s)}'`)),t.coldefexpr&&(e.push("DEFAULT"),e.push(this.visit(t.coldefexpr,s))),e.join(" ")}JsonArrayQueryConstructor(t,s){let e=["JSON_ARRAYAGG"];return t.query&&e.push(`(${this.visit(t.query,s)})`),t.format&&e.push("FORMAT JSON"),t.output&&e.push("RETURNING TEXT"),t.absent_on_null?e.push("ABSENT ON NULL"):e.push("NULL ON NULL"),e.join(" ")}RangeFunction(t,s){let e=[];if(t.lateral&&e.push("LATERAL"),t.is_rowsfrom){if(e.push("ROWS FROM"),t.functions&&t.functions.length>0){let i=c.unwrapList(t.functions).filter(r=>r!=null).map(r=>{try{if(this.getNodeType(r)==="List"){let o=this.getNodeData(r);if(o&&o.items&&Array.isArray(o.items)){let u=o.items;if(u.length>=2){let l=this.visit(u[0],s),p=this.getNodeData(u[1]);if(p&&p.items&&Array.isArray(p.items)){let f=p.items.map(h=>this.visit(h,s)).filter(h=>h&&h.trim());if(f.length>0)return `${l} AS (${f.join(", ")})`}return l}else if(u.length===1)return this.visit(u[0],s)}}return this.visit(r,s)}catch(n){return console.warn(`Error processing function in RangeFunction: ${n instanceof Error?n.message:String(n)}`),""}}).filter(r=>r&&r.trim());i.length>0&&e.push(`(${i.join(", ")})`);}}else if(t.functions&&t.functions.length>0){let i=c.unwrapList(t.functions).filter(r=>r!=null).map(r=>{try{if(this.getNodeType(r)==="List"){let o=this.getNodeData(r);if(o&&o.items&&Array.isArray(o.items)){let u=o.items;if(u.length>=1)return this.visit(u[0],s)}}return this.visit(r,s)}catch(n){return console.warn(`Error processing function in RangeFunction: ${n instanceof Error?n.message:String(n)}`),""}}).filter(r=>r&&r.trim());i.length>0&&e.push(i.join(", "));}if(t.ordinality&&e.push("WITH ORDINALITY"),t.alias)if(t.coldeflist&&t.coldeflist.length>0){let i=t.alias.aliasname,r=c.unwrapList(t.coldeflist).map(n=>this.visit(n,s)).filter(n=>n&&n.trim());e.push(`${i} (${r.join(", ")})`);}else e.push(this.Alias(t.alias,s));else if(t.coldeflist&&t.coldeflist.length>0){let i=c.unwrapList(t.coldeflist).map(r=>this.visit(r,s)).filter(r=>r&&r.trim());e.push(`AS (${i.join(", ")})`);}return e.join(" ")}XmlExpr(t,s){if(t.op==="IS_XMLPI")if(t.name&&t.args&&t.args.length>0){let i=c.unwrapList(t.args).map(r=>this.visit(r,s));return `xmlpi(name ${m.quoteIdentifier(t.name)}, ${i.join(", ")})`}else return t.name?`xmlpi(name ${m.quoteIdentifier(t.name)})`:"XMLPI()";let e=[];switch(t.op){case "IS_XMLCONCAT":e.push("XMLCONCAT");break;case "IS_XMLELEMENT":e.push("XMLELEMENT");let i=[];if(t.name&&i.push(`NAME ${m.quoteIdentifier(t.name)}`),t.named_args&&t.named_args.length>0){let n=c.unwrapList(t.named_args).map(o=>this.visit(o,s));i.push(`XMLATTRIBUTES(${n.join(", ")})`);}if(t.args&&t.args.length>0){let n=c.unwrapList(t.args).map(o=>this.visit(o,s));i.push(...n);}i.length>0&&e.push(`(${i.join(", ")})`);break;case "IS_XMLFOREST":e.push("XMLFOREST");break;case "IS_XMLPARSE":e.push("XMLPARSE");let r=[];if(t.xmloption&&(t.xmloption==="XMLOPTION_DOCUMENT"?r.push("DOCUMENT"):t.xmloption==="XMLOPTION_CONTENT"&&r.push("CONTENT")),t.args&&t.args.length>0){let n=c.unwrapList(t.args).map(o=>this.visit(o,s));n.length>0&&r.push(n[0]);}r.length>0&&e.push(`(${r.join(" ")})`);break;case "IS_XMLROOT":if(e.push("XMLROOT"),t.args&&t.args.length>0){let n=c.unwrapList(t.args),o=[];if(n[0]&&o.push(this.visit(n[0],s)),n[1]){let u=n[1];u.A_Const&&u.A_Const.isnull?o.push("version NO VALUE"):o.push(`version ${this.visit(u,s)}`);}if(n[2]){let u=n[2];u.A_Const&&u.A_Const.ival!==void 0?u.A_Const.ival.ival===1?o.push("STANDALONE NO"):u.A_Const.ival.ival===2?o.push("STANDALONE NO VALUE"):u.A_Const.ival.ival===3||(Object.keys(u.A_Const.ival).length===0?o.push("STANDALONE YES"):o.push(`STANDALONE ${this.visit(u,s)}`)):o.push(`STANDALONE ${this.visit(u,s)}`);}o.length>0&&e.push(`(${o.join(", ")})`);}break;case "IS_XMLSERIALIZE":e.push("XMLSERIALIZE");break;case "IS_DOCUMENT":if(t.args&&t.args.length>0){let n=c.unwrapList(t.args).map(o=>this.visit(o,s));e.push(`${n[0]} IS DOCUMENT`);}else e.push("IS DOCUMENT");break;default:throw new Error(`Unsupported XmlExpr op: ${t.op}`)}if(t.op!=="IS_XMLELEMENT"&&t.op!=="IS_XMLPARSE"&&t.op!=="IS_XMLROOT"&&t.op!=="IS_DOCUMENT"){if(t.name){let i=m.quoteIdentifier(t.name);e.push(`NAME ${i}`);}if(t.args&&t.args.length>0){let i=c.unwrapList(t.args).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}}if(t.named_args&&t.named_args.length>0&&t.op!=="IS_XMLELEMENT"){let i=c.unwrapList(t.named_args).map(r=>this.visit(r,s));t.op==="IS_XMLFOREST"?e.push(`(${i.join(", ")})`):e.push(`XMLATTRIBUTES(${i.join(", ")})`);}return e.join(" ")}schemaname(t,s){if(typeof t=="string")return m.quoteIdentifier(t);if(t&&t.String&&t.String.sval)return m.quoteIdentifier(t.String.sval);if(t&&typeof t=="object"){if(t.sval!==void 0)return m.quoteIdentifier(t.sval);if(t.List&&Array.isArray(t.List.items)){let e=t.List.items;if(e.length>0&&e[0].String&&e[0].String.sval)return m.quoteIdentifier(e[0].String.sval)}return t.val!==void 0?m.quoteIdentifier(t.val):""}return ""}RangeTableSample(t,s){let e=[];if(t.relation&&e.push(this.visit(t.relation,s)),e.push("TABLESAMPLE"),t.method&&t.method.length>0){let i=t.method.map(r=>this.visit(r,s));e.push(i.join("."));}if(t.args&&t.args.length>0){let i=t.args.map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}return t.repeatable&&(e.push("REPEATABLE"),e.push(`(${this.visit(t.repeatable,s)})`)),e.join(" ")}XmlSerialize(t,s){let e=["XMLSERIALIZE"];return e.push("("),t.typeName&&(t.xmloption==="XMLOPTION_DOCUMENT"?e.push("DOCUMENT"):e.push("CONTENT"),e.push(this.visit(t.expr,s)),e.push("AS"),e.push(this.TypeName(t.typeName,s))),e.push(")"),e.join(" ")}ctes(t,s){if(!t||!Array.isArray(t))return "";let e=["WITH"];t.length>0&&t[0]&&t[0].CommonTableExpr&&t[0].CommonTableExpr.recursive&&e.push("RECURSIVE");let i=t.map(r=>this.visit(r,s));return e.push(i.join(", ")),e.join(" ")}RuleStmt(t,s){let e=["CREATE"];if(t.replace&&e.push("OR REPLACE"),e.push("RULE"),t.rulename&&e.push(m.quoteIdentifier(t.rulename)),e.push("AS ON"),t.event)switch(t.event){case "CMD_SELECT":e.push("SELECT");break;case "CMD_INSERT":e.push("INSERT");break;case "CMD_UPDATE":e.push("UPDATE");break;case "CMD_DELETE":e.push("DELETE");break;default:e.push(t.event.toString());}if(e.push("TO"),t.relation&&e.push(this.RangeVar(t.relation,s)),t.whereClause&&(e.push("WHERE"),e.push(this.visit(t.whereClause,s))),e.push("DO"),t.instead&&e.push("INSTEAD"),t.actions&&t.actions.length>0)if(t.actions.length===1)e.push(this.visit(t.actions[0],s));else {e.push("(");let i=c.unwrapList(t.actions).map(r=>this.visit(r,s));e.push(i.join("; ")),e.push(")");}else e.push("NOTHING");return e.join(" ")}RangeSubselect(t,s){let e=[];return t.lateral&&e.push("LATERAL"),t.subquery&&(e.push("("),e.push(this.visit(t.subquery,s)),e.push(")")),t.alias&&e.push(this.Alias(t.alias,s)),e.join(" ")}relname(t,s){return typeof t=="string"?m.quoteIdentifier(t):t&&t.String&&t.String.sval?m.quoteIdentifier(t.String.sval):t&&typeof t=="object"&&t.relname?m.quoteIdentifier(t.relname):this.visit(t,s)}rel(t,s){return typeof t=="string"?m.quoteIdentifier(t):t&&t.String&&t.String.sval?m.quoteIdentifier(t.String.sval):t&&t.RangeVar?this.RangeVar(t.RangeVar,s):t&&typeof t=="object"&&t.relname?m.quoteIdentifier(t.relname):this.visit(t,s)}objname(t,s){return typeof t=="string"?m.quoteIdentifier(t):t&&t.String&&t.String.sval?m.quoteIdentifier(t.String.sval):Array.isArray(t)?t.map(i=>i&&i.String&&i.String.sval?m.quoteIdentifier(i.String.sval):this.visit(i,s)).join("."):this.visit(t,s)}SQLValueFunction(t,s){switch(t.op){case "SVFOP_CURRENT_DATE":return "CURRENT_DATE";case "SVFOP_CURRENT_TIME":return "CURRENT_TIME";case "SVFOP_CURRENT_TIME_N":return `CURRENT_TIME(${t.typmod||0})`;case "SVFOP_CURRENT_TIMESTAMP":return "CURRENT_TIMESTAMP";case "SVFOP_CURRENT_TIMESTAMP_N":return `CURRENT_TIMESTAMP(${t.typmod||0})`;case "SVFOP_LOCALTIME":return "LOCALTIME";case "SVFOP_LOCALTIME_N":return `LOCALTIME(${t.typmod||0})`;case "SVFOP_LOCALTIMESTAMP":return "LOCALTIMESTAMP";case "SVFOP_LOCALTIMESTAMP_N":return `LOCALTIMESTAMP(${t.typmod||0})`;case "SVFOP_CURRENT_ROLE":return "CURRENT_ROLE";case "SVFOP_CURRENT_USER":return "CURRENT_USER";case "SVFOP_USER":return "USER";case "SVFOP_SESSION_USER":return "SESSION_USER";case "SVFOP_CURRENT_CATALOG":return "CURRENT_CATALOG";case "SVFOP_CURRENT_SCHEMA":return "CURRENT_SCHEMA";default:throw new Error(`Unsupported SQLValueFunction op: ${t.op}`)}}GroupingFunc(t,s){let e=["GROUPING"];if(t.args&&t.args.length>0){let i=c.unwrapList(t.args).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}else e.push("()");return e.join("")}MultiAssignRef(t,s){let e=[];return t.source&&e.push(this.visit(t.source,s)),t.colno>0&&e.push(`[${t.colno}]`),e.join("")}SetToDefault(t,s){return "DEFAULT"}CurrentOfExpr(t,s){let e=["CURRENT OF"];return t.cursor_name&&e.push(m.quoteIdentifier(t.cursor_name)),t.cursor_param>0&&e.push(`$${t.cursor_param}`),e.join(" ")}TableLikeClause(t,s){let e=["LIKE"];if(t.relation&&e.push(this.visit(t.relation,s)),t.options&&typeof t.options=="number")if(t.options===2147483647||t.options===2147483647)e.push("INCLUDING ALL");else {let i=[];t.options&1&&i.push("INCLUDING COMMENTS"),t.options&4&&i.push("INCLUDING CONSTRAINTS"),t.options&8&&i.push("INCLUDING DEFAULTS"),t.options&16&&i.push("INCLUDING GENERATED"),t.options&32&&i.push("INCLUDING IDENTITY"),t.options&64&&i.push("INCLUDING INDEXES"),t.options&128&&i.push("INCLUDING STATISTICS"),t.options&256&&i.push("INCLUDING STORAGE"),i.length>0&&e.push(i.join(" "));}return e.join(" ")}AlterFunctionStmt(t,s){let e=["ALTER"];if(t.objtype==="OBJECT_PROCEDURE"?e.push("PROCEDURE"):e.push("FUNCTION"),t.func&&e.push(this.ObjectWithArgs(t.func,s)),t.actions&&t.actions.length>0){let i=s.spawn("AlterFunctionStmt"),r=c.unwrapList(t.actions).map(n=>this.visit(n,i));e.push(r.join(" "));}return e.join(" ")}AlterObjectSchemaStmt(t,s){let e=["ALTER"];try{e.push(this.getObjectTypeKeyword(t.objectType));}catch{e.push(t.objectType.toString());}if(t.missing_ok&&e.push("IF EXISTS"),t.relation&&(t.objectType==="OBJECT_TABLE"||t.objectType==="OBJECT_FOREIGN_TABLE"||t.objectType==="OBJECT_MATVIEW"))e.push(this.RangeVar(t.relation,s));else if(t.object)if(t.objectType==="OBJECT_DOMAIN"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_TYPE"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_CONVERSION"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_TSPARSER"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_TSCONFIGURATION"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_TSTEMPLATE"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_TSDICTIONARY"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(m.quoteQualifiedIdentifier(r,n));}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_OPCLASS"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(`${m.quoteIdentifier(n)} USING ${r}`);}else if(i.length===3){let r=i[0].String?.sval||"",n=i[1].String?.sval||"",o=i[2].String?.sval||"";e.push(`${m.quoteQualifiedIdentifier(n,o)} USING ${r}`);}else e.push(this.visit(t.object,s));}else if(t.objectType==="OBJECT_OPFAMILY"&&t.object.List){let i=c.unwrapList(t.object);if(i.length===2){let r=i[0].String?.sval||"",n=i[1].String?.sval||"";e.push(`${m.quoteIdentifier(n)} USING ${r}`);}else if(i.length===3){let r=i[0].String?.sval||"",n=i[1].String?.sval||"",o=i[2].String?.sval||"";e.push(`${m.quoteQualifiedIdentifier(n,o)} USING ${r}`);}else e.push(this.visit(t.object,s));}else e.push(this.visit(t.object,s));return e.push("SET SCHEMA"),t.newschema&&e.push(m.quoteIdentifier(t.newschema)),e.join(" ")}AlterRoleSetStmt(t,s){let e=["ALTER","ROLE"];if(t.role?e.push(this.RoleSpec(t.role,s)):e.push("ALL"),t.database&&(e.push("IN DATABASE"),e.push(this.quoteIfNeeded(t.database))),t.setstmt){if(t.setstmt.kind==="VAR_RESET")e.push("RESET"),t.setstmt.name&&e.push(t.setstmt.name);else if(e.push("SET"),t.setstmt.name&&e.push(t.setstmt.name),t.setstmt.args&&t.setstmt.args.length>0){e.push("TO");let i=c.unwrapList(t.setstmt.args).map(r=>this.visit(r,s)).join(", ");e.push(i);}}return e.join(" ")}CreateForeignTableStmt(t,s){let e=["CREATE FOREIGN TABLE"];if(t.base&&t.base.relation){let i=s.spawn("CreateForeignTableStmt");e.push(this.RangeVar(t.base.relation,i));}if(t.base&&t.base.tableElts){let i=c.unwrapList(t.base.tableElts).map(r=>this.visit(r,s));e.push(`(${i.join(", ")})`);}else t.base?.partbound||e.push("()");if(t.base&&t.base.inhRelations&&t.base.inhRelations.length>0)if(t.base.partbound){let i=c.unwrapList(t.base.inhRelations).map(r=>this.visit(r,s));e.push(`PARTITION OF ${i.join(", ")}`),t.base.partbound.is_default&&e.push("DEFAULT");}else {let i=c.unwrapList(t.base.inhRelations).map(r=>this.visit(r,s));e.push(`INHERITS (${i.join(", ")})`);}if(t.servername&&(e.push("SERVER"),e.push(m.quoteIdentifier(t.servername))),t.options&&t.options.length>0){let i=s.spawn("CreateForeignTableStmt"),r=c.unwrapList(t.options).map(n=>this.visit(n,i));e.push(`OPTIONS (${r.join(", ")})`);}return e.join(" ")}containsMultilineStringLiteral(t){return /'[^']*\n[^']*'/g.test(t)}};});var Gr=P(()=>{Vr();Ys();Ze.deparse;});function ee(a){if("String"in a)return a.String.sval}function _t(a){return a.map(ee).filter(t=>t!=null)}function Wr(a){return Object.keys(a)[0]}function Hr(a){if("A_Const"in a){if(a.A_Const.ival)return a.A_Const.ival.ival;if(a.A_Const.fval)return a.A_Const.fval.fval;if(a.A_Const.sval)return a.A_Const.sval.sval;if(a.A_Const.boolval)return a.A_Const.boolval.boolval;if(a.A_Const.isnull)return null}}var ts=P(()=>{Gr();});function Jr(a){let t=a.toLowerCase();return ["serial","serial4","bigserial","serial8","smallserial","serial2"].includes(t)}function Yr(a){let t=a.toLowerCase();return ["varchar","character varying","char","character","bpchar"].includes(t)}function Xr(a){let t=a.toLowerCase();return ["numeric","decimal"].includes(t)}var Xs,es,cl,Ks=P(()=>{ts();Xs=class extends Error{},es=class extends Xs{constructor(s,e){super(e??`Unsupported node type: ${Wr(s)}`);this.node=s;}};cl={CreateEnumStmt:{react:"ignore"},CreateDomainStmt:{react:"warn"},CreateSeqStmt:{react:"error"},AlterSeqStmt:{react:"error"},CreateSchemaStmt:{react:"warn"},CreatePolicyStmt:{react:"ignore"},PartitionElem:{react:"error"},PartitionCmd:{react:"error"},VariableSetStmt:{react:"ignore"},CompositeTypeStmt:{react:"error"},AlterEnumStmt:{react:"error"},AlterObjectSchemaStmt:{react:"error"},AlterOwnerStmt:{react:"error"},AlterTypeStmt:{react:"error"},AlterFunctionStmt:{react:"error"},AlterDefaultPrivilegesStmt:{react:"error"},GrantStmt:{react:"error"},GrantRoleStmt:{react:"error"},CopyStmt:{react:"error"},CreateCastStmt:{react:"error"},AlterOpFamilyStmt:{react:"error"},AlterOperatorStmt:{react:"error"},TruncateStmt:{react:"error"},A_Indirection:{react:"error"},XmlExpr:{react:"error"},XmlSerialize:{react:"error"},RangeTableSample:{react:"error"},GroupingSet:{react:"error"}},new Map(Object.entries(cl));});var nt,ss,Kr=P(()=>{ts();Ks();nt=class extends es{constructor(t,s){super(t,`Unsupported expression: ${s}`);}},ss=class{deparse(t){if("A_Const"in t){let i=t.A_Const;if(i.boolval!==void 0)return i.boolval.boolval?{}:{$always:false}}let s=Object.keys(t)[0],e=this[s];if(!e)throw new nt({[s]:t},`Unsupported expression: ${s}`);return e.call(this,t[s])}deparseValue(t){if("A_Const"in t)return this.A_Const(t.A_Const);if("ColumnRef"in t)return this.ColumnRef(t.ColumnRef);if("FuncCall"in t)return this.FuncCall(t.FuncCall);if("SubLink"in t)return this.SubLink(t.SubLink);if("TypeCast"in t)return this.TypeCast(t.TypeCast);if("A_Expr"in t){let e=this.isJwtAccessor(t.A_Expr);return e||this.A_Expr(t.A_Expr)}if("BoolExpr"in t)return this.BoolExpr(t.BoolExpr);let s=Object.keys(t)[0];throw new nt({[s]:t},`deparseValue: ${s}`)}A_Expr(t){if(t.kind==="AEXPR_OP"){let s=t.name?.[0],e=s?ee(s):void 0;if(!e)throw new nt({A_Expr:t},"A_Expr missing operator");let i=this.isJwtAccessor(t);if(i)return {[i]:{}};let r=t.lexpr?this.deparseValue(t.lexpr):void 0,n=t.rexpr?this.deparseValue(t.rexpr):void 0,o=this.mapOperator(e);if(!o)throw new nt({A_Expr:t},`Unsupported operator: ${e}`);let u=t.rexpr!=null&&"ColumnRef"in t.rexpr;if(typeof r=="string"&&r.startsWith("{{")&&u)return {[n]:{[o]:r}};let l=u&&typeof n=="string"?{$ref:n}:n;return {[r]:{[o]:l}}}if(t.kind==="AEXPR_LIKE"||t.kind==="AEXPR_ILIKE"){let s=t.lexpr?this.deparseValue(t.lexpr):void 0,e=t.rexpr?this.deparseValue(t.rexpr):void 0,r=(t.name?.[0]?ee(t.name[0]):"~~")==="!~~"?"$notLike":"$like";return {[s]:{[r]:e}}}if(t.kind==="AEXPR_IN"){let s=t.lexpr?this.deparseValue(t.lexpr):void 0,e=t.rexpr&&"List"in t.rexpr&&t.rexpr.List.items?t.rexpr.List.items.map(i=>this.deparseValue(i)):[];return {[s]:{$in:e}}}throw new nt({A_Expr:t},`A_Expr kind: ${t.kind}`)}BoolExpr(t){let s=t.args??[];switch(t.boolop){case "AND_EXPR":return {$and:s.map(e=>this.deparse(e))};case "OR_EXPR":return {$or:s.map(e=>this.deparse(e))};case "NOT_EXPR":return {$not:this.deparse(s[0])};default:throw new nt({BoolExpr:t},`BoolExpr op: ${t.boolop}`)}}NullTest(t){let s=t.arg?this.deparseValue(t.arg):void 0;return t.nulltesttype==="IS_NULL"?{[s]:{$is:null}}:{[s]:{$isNot:null}}}SubLink(t){if(t.subLinkType==="ANY_SUBLINK"){let s=t.testexpr?this.deparseValue(t.testexpr):void 0,e=t.subselect?this.SelectStmt(t.subselect.SelectStmt):void 0;return {[s]:{$in:e}}}if(t.subLinkType==="EXISTS_SUBLINK")return {$exists:t.subselect?this.SelectStmt(t.subselect.SelectStmt):void 0};if(t.subLinkType==="EXPR_SUBLINK"){let s=t.subselect?t.subselect.SelectStmt:void 0;if(s?.fromClause?.length)return this.SelectStmt(s);if(s?.targetList?.[0]){let e=s.targetList[0],i="ResTarget"in e?e.ResTarget:void 0;if(i?.val){let r=this.deparseValue(i.val);return r}}}throw new nt({SubLink:t},`SubLink type: ${t.subLinkType}`)}SelectStmt(t){let{from:s,schema:e,join:i}=this.deparseFromClause(t.fromClause??[]),r=[];for(let h of t.targetList??[]){let E="ResTarget"in h?h.ResTarget:void 0;if(E?.val){let g=this.deparseValue(E.val);Array.isArray(g)?r.push(...g.map(String)):g!=null&&g!==""&&r.push(String(g));}}let n=t.whereClause?this.deparse(t.whereClause):void 0,o=this.deparseSortClause(t.sortClause),u=this.deparseLimit(t.limitCount),l=this.deparseLimit(t.limitOffset),p=this.deparseGroupClause(t.groupClause),f={type:"query",from:s,select:r};return e&&(f.schema=e),Object.keys(i).length>0&&(f.join=i),n&&(f.where=n),o.length>0&&(f.order=o),u!==void 0&&(f.limit=u),l!==void 0&&(f.offset=l),p.length>0&&(f.group=p),f}FuncCall(t){let s=this.isAuthFunc(t.funcname??[]);if(s)return s;throw new nt({FuncCall:t},`FuncCall: ${_t(t.funcname??[]).join(".")}`)}ColumnRef(t){let s=_t(t.fields??[]);return s.length===1?s[0]:s.join(".")}A_Const(t){if(t.boolval!==void 0)return t.boolval.boolval;if(t.ival!==void 0)return t.ival.ival??0;if(t.fval!==void 0)return parseFloat(t.fval.fval??"0");if(t.sval!==void 0)return t.sval.sval??"";if(t.isnull)return null;throw new nt({A_Const:t},"A_Const: unknown variant")}TypeCast(t){if(!t.arg)throw new nt({TypeCast:t},"TypeCast: missing arg");return this.deparseValue(t.arg)}BooleanTest(t){let s=t.arg?this.deparseValue(t.arg):void 0;return t.booltesttype==="IS_TRUE"?{[s]:{$eq:true}}:{[s]:{$eq:false}}}deparseFromClause(t){let s={};if(t.length===0)return {from:"",join:s};let e=t[0];if("RangeVar"in e){let i=e.RangeVar;return {from:i.relname??"",schema:i.schemaname,join:s}}if("JoinExpr"in e){let{from:i,schema:r}=this.walkJoinExpr(e.JoinExpr,s);return {from:i,schema:r,join:s}}return {from:"",join:s}}walkJoinExpr(t,s){let e={from:""};if(t.larg)if("RangeVar"in t.larg){let i=t.larg.RangeVar;e={from:i.relname??"",schema:i.schemaname};}else "JoinExpr"in t.larg&&(e=this.walkJoinExpr(t.larg.JoinExpr,s));if(t.rarg&&"RangeVar"in t.rarg){let i=t.rarg.RangeVar,r=i.relname??"",n=i.alias?.aliasname??r,o=t.jointype==="JOIN_LEFT"?"left":"inner",u={from:r,type:o};t.quals&&(u.on=this.deparse(t.quals));let l=n;if(l in s){let p=2;for(;`${l}_${p}`in s;)p++;l=`${l}_${p}`;}s[l]=u;}return e}deparseSortClause(t){if(!t)return [];let s=[];for(let e of t){if(!("SortBy"in e))continue;let i=e.SortBy;if(!i.node)continue;let r=String(this.deparseValue(i.node)),n=i.sortby_dir==="SORTBY_DESC"?"desc":"asc",o={column:r,direction:n};i.sortby_nulls==="SORTBY_NULLS_FIRST"?o.nullsFirst=true:i.sortby_nulls==="SORTBY_NULLS_LAST"&&(o.nullsFirst=false),s.push(o);}return s}deparseLimit(t){if(!t)return;let s=this.deparseValue(t);return typeof s=="number"?s:Number(s)}deparseGroupClause(t){return t?t.map(s=>String(this.deparseValue(s))):[]}isAuthFunc(t){let s=_t(t);if(s.length===2&&s[0]==="auth"){if(s[1]==="uid")return "{{auth.uid}}";if(s[1]==="jwt")return "{{auth.jwt}}";if(s[1]==="role")return "{{auth.role}}";throw new Error(`Unsupported auth function: "${s.slice(1).join(".")}"`)}return null}isJwtAccessor(t){if(t.kind!=="AEXPR_OP")return null;let s=t.name?.[0]?ee(t.name[0]):void 0;if(s!=="->"&&s!=="->>")return null;let e=t.rexpr&&"A_Const"in t.rexpr?t.rexpr.A_Const.sval?.sval:void 0;if(e===void 0)return null;if(t.lexpr&&"FuncCall"in t.lexpr)return this.isAuthFunc(t.lexpr.FuncCall.funcname??[])==="{{auth.jwt}}"?`{{auth.jwt.${e}}}`:null;if(t.lexpr&&"A_Expr"in t.lexpr){let i=this.isJwtAccessor(t.lexpr.A_Expr);if(i)return `${i.slice(0,-2)}.${e}}}`}return null}mapOperator(t){switch(t){case "=":return "$eq";case "<>":case "!=":return "$neq";case ">":return "$gt";case ">=":return "$gte";case "<":return "$lt";case "<=":return "$lte";case "~~":return "$like";case "!~~":return "$notLike";default:return}}};});var is,zr=P(()=>{is=class a{constructor(t){this.data=t;}appliesTo(t){return this.data.command==="ALL"||this.data.command===t}appliesToRole(t){return this.data.roles.length===0||this.data.roles.includes(t)}toJSON(){return this.data}static fromJSON(t){return new a(t)}};});var se,zs=P(()=>{se=class extends Error{constructor(s,e,i,r){super(`check constraint "${i}" violated for ${s}.${e}`);this.table=s;this.column=e;this.constraint=i;this.value=r;this.name="CheckConstraintError";}};});var X,mt=P(()=>{zs();X=class{context;constructor(t){this.context=t;}get isShimBacked(){return false}checkConstraint(){return null}serialize(t){return t}deserialize(t){return t}validateStorage(t){return {status:"pass",message:null}}validationFail(t,s){return {status:"fail",message:t,action:s}}validationPass(){return {status:"pass",message:null}}isNullish(t){return t==null}toColumnDDL(t){let{includeNullable:s=true}=t??{},e=[],i=this.context.column;e.push(this.quoteIfNeeded(i)),e.push(this.sqliteType),this.context.isPrimaryKey&&e.push("PRIMARY KEY"),this.context.isSerial&&this.context.isPrimaryKey&&e.push("AUTOINCREMENT"),s&&!this.context.nullable&&!this.context.isPrimaryKey&&e.push("NOT NULL"),this.context.isUnique&&!this.context.isPrimaryKey&&e.push("UNIQUE"),this.context.defaultValue!==null&&e.push(`DEFAULT ${this.context.defaultValue}`);let r=this.checkConstraint();return r&&e.push(`CHECK (${r})`),e.join(" ")}checkError(t,s){return new se(this.context.table,this.context.column,t,s)}quoteIfNeeded(t){return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)?t:`"${t}"`}};});var wt,rs=P(()=>{mt();wt=class extends X{get sqliteType(){return "INTEGER"}};});var ie,Qs=P(()=>{rs();ie=class extends wt{constructor(t){super({...t,isSerial:true});}};});function fl(a,t){let{precision:s,scale:e}=t,i=10**e,r=10**(s-e);return Math.abs(Math.round(a*i)-a*i)<1e-4&&Math.abs(a)<r}var re,Zs=P(()=>{mt();re=class extends X{numericPrecision;constructor(t,s){super(t),this.numericPrecision=s;}get isShimBacked(){return this.numericPrecision!==void 0}get sqliteType(){return "REAL"}checkConstraint(){if(this.numericPrecision){let{precision:t,scale:s}=this.numericPrecision,e=this.context.column,i=10**s,r=10**(t-s);return `ABS(ROUND(${e} * ${i}) - ${e} * ${i}) < 0.0001 AND ABS(${e}) < ${r}`}return null}validateStorage(t){if(this.isNullish(t))return this.validationPass();if(typeof t!="number"||!Number.isFinite(t))return this.validationFail("Expected finite number.","Patch rows with finite numbers.");if(this.numericPrecision){let{precision:s,scale:e}=this.numericPrecision;if(!fl(t,this.numericPrecision))return this.validationFail(`Does not fit numeric(${s}, ${e}).`,"Patch rows within numeric precision.")}return this.validationPass()}};});var q,ut=P(()=>{mt();q=class extends X{lengthConstraint;constructor(t,s){super(t),this.lengthConstraint=s;}get isShimBacked(){return this.lengthConstraint!==void 0}get sqliteType(){return "TEXT"}checkConstraint(){return this.lengthConstraint!==void 0?`length(${this.context.column}) <= ${this.lengthConstraint}`:null}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"?this.validationFail("Expected text.","Patch rows with text values."):this.lengthConstraint!==void 0&&Array.from(t).length>this.lengthConstraint?this.validationFail(`Exceeds length ${this.lengthConstraint}.`,"Patch rows with shorter text."):this.validationPass()}};});var ne,ti=P(()=>{mt();ne=class extends X{get sqliteType(){return "BLOB"}};});var ae,ei=P(()=>{mt();ae=class extends X{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}checkConstraint(){return `${this.context.column} IN (0, 1)`}serialize(t){if(this.isNullish(t))return t;if(t===true||t===1)return 1;if(t===false||t===0)return 0;throw this.checkError("boolean_range",t)}deserialize(t){return this.isNullish(t)?t:t===1?true:t===0?false:t}validateStorage(t){return this.isNullish(t)?this.validationPass():t===1||t===0?this.validationPass():this.validationFail("Expected 0 or 1.","Patch rows with boolean values.")}};});function Qr(a){try{return {ok:!0,value:JSON.parse(a)}}catch{return {ok:false}}}var oe,si=P(()=>{mt();oe=class extends X{get isShimBacked(){return true}get sqliteType(){return "TEXT"}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR json_valid(${t})`}serialize(t){if(this.isNullish(t))return t;try{return JSON.stringify(t)}catch{throw this.checkError("json_valid",t)}}deserialize(t){if(this.isNullish(t))return t;if(typeof t=="string"){let s=Qr(t);return s.ok?s.value:t}return t}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"?this.validationFail("Expected JSON text.","Patch rows with JSON values."):Qr(t).ok?this.validationPass():this.validationFail("Invalid JSON text.","Patch rows with valid JSON.")}};});function hl(a){if(!/^\d{4}-\d{2}-\d{2}$/.test(a))return false;let t=new Date(`${a}T00:00:00.000Z`);return !Number.isNaN(t.getTime())&&t.toISOString().slice(0,10)===a}var ue,ii=P(()=>{ut();ue=class extends q{get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR date(${t}) IS NOT NULL`}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!hl(t)?this.validationFail("Invalid date.","Patch rows with YYYY-MM-DD dates."):this.validationPass()}};});function ml(a){let t=a.match(/^(\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?([+-](\d{2}):?(\d{2}))?$/);if(!t)return false;let s=Number(t[1]),e=Number(t[2]),i=t[3]===void 0?0:Number(t[3]),r=t[5]===void 0?null:Number(t[5]),n=t[6]===void 0?null:Number(t[6]),o=r===null||n!==null&&r<=15&&n<=59;return s<=24&&e<=59&&i<=59&&(s!==24||e===0&&i===0)&&o}var le,ri=P(()=>{ut();le=class extends q{get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR time(${t}) IS NOT NULL`}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!ml(t)?this.validationFail("Invalid time.","Patch rows with HH:MM[:SS] times."):this.validationPass()}};});function El(a){let t=a.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?(?:Z|([+-](\d{2}):?(\d{2})))?$/);if(!t)return false;let s=Number(t[1]),e=Number(t[2]),i=Number(t[3]),r=Number(t[4]),n=Number(t[5]),o=t[6]===void 0?0:Number(t[6]),u=t[8]===void 0?null:Number(t[8]),l=t[9]===void 0?null:Number(t[9]),p=new Date(Date.UTC(s,e-1,i)),f=p.getUTCFullYear()===s&&p.getUTCMonth()===e-1&&p.getUTCDate()===i,h=r<=24&&n<=59&&o<=59&&(r!==24||n===0&&o===0),E=u===null||l!==null&&u<=15&&l<=59;return f&&h&&E}var pe,ni=P(()=>{ut();pe=class extends q{get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR datetime(${t}) IS NOT NULL`}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!El(t)?this.validationFail("Invalid timestamp.","Patch rows with ISO timestamps."):this.validationPass()}};});var ce,ai=P(()=>{ut();ce=class extends q{get isShimBacked(){return true}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||t.trim().length===0?this.validationFail("Expected interval text.","Patch rows with interval strings."):/^-?\d+(?:\.\d+)?$/.test(t.trim())?this.validationFail("Ambiguous numeric interval.","Patch rows with explicit interval strings."):this.validationPass()}};});var fe,oi=P(()=>{ut();fe=class extends q{enumValues;constructor(t,s){super(t),this.enumValues=s;}get isShimBacked(){return true}checkConstraint(){let t=this.context.column,s=this.enumValues.map(e=>`'${e.replace(/'/g,"''")}'`).join(", ");return `${t} IN (${s})`}serialize(t){if(this.isNullish(t))return t;if(typeof t!="string"||!this.enumValues.includes(t))throw this.checkError("enum_membership",t);return t}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!this.enumValues.includes(t)?this.validationFail("Invalid enum value.","Patch rows with declared enum values."):this.validationPass()}};});function Zr(a){try{return {ok:!0,value:JSON.parse(a)}}catch{return {ok:false}}}var Ft,ui=P(()=>{mt();Ft=class extends X{elementField;constructor(t,s){super(t),this.elementField=s;}get sqliteType(){return "TEXT"}get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR (json_valid(${t}) AND json_type(${t}) = 'array')`}serialize(t){if(this.isNullish(t))return t;if(!Array.isArray(t))throw this.checkError("array_type",t);return this.elementField?JSON.stringify(t.map(s=>this.elementField.serialize(s))):JSON.stringify(t)}deserialize(t){if(this.isNullish(t))return t;if(typeof t=="string"){let s=Zr(t);if(s.ok&&Array.isArray(s.value))return this.elementField?s.value.map(e=>this.elementField.deserialize(e)):s.value}return t}validateStorage(t){if(this.isNullish(t))return this.validationPass();if(typeof t!="string")return this.validationFail("Expected JSON array text.","Patch rows with array values.");let s=Zr(t);if(!s.ok)return this.validationFail("Invalid JSON array text.","Patch rows with array values.");if(!Array.isArray(s.value))return this.validationFail("Expected JSON array.","Patch rows with array values.");if(this.elementField)for(let e of s.value){let i=this.elementField.validateStorage(e);if(i.status==="fail")return this.validationFail(`Invalid ${this.elementField.context.pgTypeName} array element.`,i.action??"Patch rows with valid array elements.")}return this.validationPass()}};});function tn(a){return Tl.test(a.toLowerCase())}var gl,Tl,he,li=P(()=>{ut();gl="????????-????-????-????-????????????",Tl=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;he=class extends q{get isShimBacked(){return true}checkConstraint(){let t=this.quoteIfNeeded(this.context.column);return `${t} IS NULL OR ${t} GLOB '${gl}'`}serialize(t){if(this.isNullish(t))return t;if(typeof t!="string")throw this.checkError("uuid_format",t);let s=t.toLowerCase();if(!tn(s))throw this.checkError("uuid_format",t);return s}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!tn(t)?this.validationFail("Invalid UUID.","Patch rows with valid UUIDs."):this.validationPass()}};});function Sl(a){let t=a.split("/");if(t.length>2)return null;let s=t[0];if(!s)return null;if(t.length===1)return {address:s,prefix:null};let e=t[1];return !e||!/^\d+$/.test(e)?null:{address:s,prefix:Number(e)}}function Al(a){let t=a.split(".");return t.length!==4?false:t.every(s=>{if(!/^\d+$/.test(s))return false;let e=Number(s);return e>=0&&e<=255})}function Cl(a){if(!a.includes(":"))return false;try{return new URL(`http://[${a}]/`),!0}catch{return false}}function en(a){let t=Sl(a);return t?Al(t.address)?t.prefix===null||t.prefix>=0&&t.prefix<=32:Cl(t.address)?t.prefix===null||t.prefix>=0&&t.prefix<=128:false:false}var me,pi=P(()=>{ut();me=class extends q{get isShimBacked(){return true}checkConstraint(){let t=this.quoteIfNeeded(this.context.column);return `${t} IS NULL OR (length(${t}) BETWEEN 3 AND 49 AND (instr(${t}, '.') > 0 OR instr(${t}, ':') > 0))`}serialize(t){if(this.isNullish(t))return t;if(typeof t!="string")throw this.checkError("inet_format",t);let s=t.trim();if(!en(s))throw this.checkError("inet_format",t);return s}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!en(t.trim())?this.validationFail("Invalid inet address.","Patch rows with valid inet strings."):this.validationPass()}};});var Ee,ci=P(()=>{ut();Ee=class extends q{serialize(t){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}deserialize(t){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}toColumnDDL(){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}};});function ge(a,t){if(t?.isArray){let e=ge(a,{...t,isArray:false});return new Ft(a,e)}if(t?.enumValues)return new fe(a,t.enumValues);let s=a.pgTypeName.toLowerCase().trim();if(s.startsWith("_")||s.endsWith("[]")){let e=s.startsWith("_")?s.slice(1):s.slice(0,-2),i={...a,pgTypeName:e},r=ge(i);return new Ft(a,r)}return Nl.has(s)?new ie(a):Rl.has(s)?new wt(a):wl.has(s)?new ae(a):dl.has(s)?new oe(a):vl.has(s)?new ue(a):Dl.has(s)?new le(a):Pl.has(s)?new pe(a):$l.has(s)?new ce(a):_l.has(s)?new ne(a):bl.has(s)?new re(a,t?.numericPrecision):yl.has(s)?new he(a):Ll.has(s)?new q(a,63):Il.has(s)?new me(a):Ol.has(s)?new q(a,t?.lengthConstraint):new Ee(a)}var Rl,Nl,bl,Ol,_l,wl,dl,yl,Ll,Il,vl,Dl,Pl,$l,sn=P(()=>{rs();Qs();Zs();ut();ti();ei();si();ii();ri();ni();ai();oi();ui();li();pi();ci();Rl=new Set(["int2","smallint","int4","integer","int","int8","bigint"]),Nl=new Set(["serial","serial4","bigserial","serial8","smallserial","serial2"]),bl=new Set(["float4","real","float8","double precision","numeric","decimal"]),Ol=new Set(["text","varchar","character varying","char","character","bpchar"]),_l=new Set(["bytea"]),wl=new Set(["bool","boolean"]),dl=new Set(["json","jsonb"]),yl=new Set(["uuid"]),Ll=new Set(["name"]),Il=new Set(["inet"]),vl=new Set(["date"]),Dl=new Set(["time","timetz","time without time zone","time with time zone"]),Pl=new Set(["timestamp","timestamptz","timestamp without time zone","timestamp with time zone"]),$l=new Set(["interval"]);});var rn=P(()=>{});var Te,nn=P(()=>{Te=class{table;schema;fields;constructor(t,s="public",e=new Map){this.table=t,this.schema=s,this.fields=e;}get(t){return this.fields.get(t)}has(t){return this.fields.has(t)}set(t,s){this.fields.set(t,s);}columns(){return Array.from(this.fields.keys())}all(){return Array.from(this.fields.values())}serializeRow(t){let s={};for(let[e,i]of Object.entries(t)){let r=this.fields.get(e);s[e]=r?r.serialize(i):i;}return s}deserializeRow(t){let s={};for(let[e,i]of Object.entries(t)){let r=this.fields.get(e);s[e]=r?r.deserialize(i):i;}return s}applyDefaults(t){let s={...t};for(let[e,i]of this.fields)!(e in s)&&i.context.defaultFn&&(s[e]=i.context.defaultFn());return s}};});var an=P(()=>{mt();zs();rs();Qs();Zs();ut();ti();ei();si();ii();ri();ni();ai();oi();ui();li();pi();ci();sn();rn();nn();});var on={};yn(on,{_resetWarnedMissingToClauseForTests:()=>jl,collectComments:()=>xl,collectEnums:()=>kl,collectPolicies:()=>Ul,collectSchema:()=>Bl,collectTableConstraints:()=>Ml,collectVariables:()=>Fl});function jl(){fi.clear();}function kl(a){let t=new Map;for(let s of a.stmts??[]){if(!s.stmt||!("CreateEnumStmt"in s.stmt))continue;let e=s.stmt.CreateEnumStmt,i=_t(e.typeName??[]).join(".");if(!i||!e.vals)continue;let r=_t(e.vals);t.set(i.toLowerCase(),r);}return t}function Fl(a){let t=new Map;for(let s of a.stmts??[]){if(!s.stmt||!("VariableSetStmt"in s.stmt))continue;let e=s.stmt.VariableSetStmt,i=e.name,r=Hr(e.args?.[0]??{});t.set(i,{value:r,local:e.is_local});}return t}function Ul(a){let t=new ss,s=new Set,e=[];for(let i of a.stmts??[])if(i.stmt){if("CreatePolicyStmt"in i.stmt){let r=i.stmt.CreatePolicyStmt,n=r.table?.relname??"",o=r.table?.schemaname,u={select:"SELECT",insert:"INSERT",update:"UPDATE",delete:"DELETE"},l=r.cmd_name?u[r.cmd_name]??"ALL":"ALL",p=r.permissive===true,f=[],h=false;for(let b of r.roles??[])if("RoleSpec"in b){let d=b.RoleSpec;d.roletype==="ROLESPEC_PUBLIC"?d.location===-1&&(h=true):d.roletype==="ROLESPEC_CSTRING"&&d.rolename&&f.push(d.rolename);}if(h){let b=o?`${o}.${n}`:n,d=r.policy_name??"",O=`${b}::${d}`;fi.has(O)||(fi.add(O),console.warn(`[supalite] policy "${d}" on "${b}" has no TO clause \u2014 applies to all roles (PUBLIC). For clarity, prefer an explicit \`TO <role>\` clause (e.g. \`TO authenticated\`).`));}let E=r.qual?t.deparse(r.qual):void 0,g=r.with_check?t.deparse(r.with_check):void 0,R=new is({name:r.policy_name??"",table:n,schema:o,command:l,permissive:p,roles:f,using:E,withCheck:g});e.push(R);}if("AlterTableStmt"in i.stmt){let r=i.stmt.AlterTableStmt;if((r.cmds??[]).some(u=>"AlterTableCmd"in u&&(u.AlterTableCmd.subtype==="AT_EnableRowSecurity"||u.AlterTableCmd.subtype==="AT_ForceRowSecurity"))){let u=r.relation?.relname??"";s.add(u);}}}return {policies:e,tables:s}}function Bl(a,t){let s=new Map;for(let e of a.stmts??[]){if(!e.stmt||!("CreateStmt"in e.stmt))continue;let i=e.stmt.CreateStmt,r=i.relation?.relname??"",n=i.relation?.schemaname??"public";if(!r)continue;let o=new Te(r,n);for(let u of i.tableElts??[]){if(!("ColumnDef"in u))continue;let l=u.ColumnDef,p=l.colname;if(!p)continue;let f=l.typeName?.names?.map(_=>_.String?.sval||_.String?.str).filter(Boolean),h=f&&(f.length===2&&f[0]==="pg_catalog"?f[1]:f[0]);if(!h)continue;let E=!!l.typeName?.arrayBounds?.length,g=Array.isArray(l.typeName?.typmods)?l.typeName.typmods:[],R=_=>g[_]?.A_Const?.ival?.ival??g[_]?.A_Const?.val?.ival?.ival,b={isArray:E};if(Yr(h)&&g.length>0){let _=R(0);typeof _=="number"&&_>0&&(b.lengthConstraint=_);}if(Xr(h)&&g.length>=2){let _=R(0),j=R(1);typeof _=="number"&&typeof j=="number"&&_>0&&j>=0&&(b.numericPrecision={precision:_,scale:j});}let d=t.get(h.toLowerCase());d&&(b.enumValues=d);let O=Array.isArray(l.constraints)?l.constraints:[],J=O.some(_=>_.Constraint?.contype==="CONSTR_PRIMARY"),et=Jr(h)||O.some(_=>_.Constraint?.contype==="CONSTR_IDENTITY"),Y=O.some(_=>_.Constraint?.contype==="CONSTR_NOTNULL"),W=O.find(_=>_.Constraint?.contype==="CONSTR_UNIQUE"),z=O.find(_=>_.Constraint?.contype==="CONSTR_GENERATED"),w=O.find(_=>_.Constraint?.contype==="CONSTR_FOREIGN"),L=O.find(_=>_.Constraint?.contype==="CONSTR_CHECK"),A;if(w){let _=w.Constraint,j=_.pktable?.relname,S=_.pktable?.schemaname,T=_.pk_attrs?.[0]?.String?.sval;j&&T&&(A={refSchema:S,refTable:j,refColumn:T,constraintName:_.conname||void 0});}let K={schema:n,table:r,column:p,pgTypeName:h,nullable:!Y&&!J,defaultValue:null,defaultFn:null,isPrimaryKey:J,isUnique:!!W,isSerial:et,isGenerated:!!z,fkRef:A,hasCheck:!!L,checkConstraintName:L?.Constraint?.conname||void 0,uniqueConstraintName:W?.Constraint?.conname||void 0};o.set(p,ge(K,b));}s.set(`${n}.${r}`,o);}return s}function Ml(a){let t=[];for(let s of a.stmts??[]){if(!s.stmt||!("CreateStmt"in s.stmt))continue;let e=s.stmt.CreateStmt,i=e.relation?.relname??"",r=e.relation?.schemaname??"public";if(i)for(let n of e.tableElts??[]){if("ColumnDef"in n)continue;let o=n;if(!o.Constraint)continue;let u=o.Constraint,l=u.contype;if(l==="CONSTR_UNIQUE"){let p=(u.keys??[]).map(f=>f.String?.sval??f.String?.str).filter(Boolean);if(p.length===0)continue;t.push({schema:r,table:i,kind:"unique",name:u.conname||void 0,columns:p});}else if(l==="CONSTR_CHECK")t.push({schema:r,table:i,kind:"check",name:u.conname||void 0,columns:[]});else if(l==="CONSTR_FOREIGN"){let p=(u.fk_attrs??[]).map(E=>E.String?.sval??E.String?.str).filter(Boolean),f=(u.pk_attrs??[]).map(E=>E.String?.sval??E.String?.str).filter(Boolean),h=u.pktable?.relname;if(!h)continue;t.push({schema:r,table:i,kind:"foreign_key",name:u.conname||void 0,columns:p,refSchema:u.pktable?.schemaname,refTable:h,refColumns:f});}}}return t}function xl(a){let t=[];for(let s of a.stmts??[]){if(!s.stmt||!("CommentStmt"in s.stmt))continue;let e=s.stmt.CommentStmt,i=e.comment??"";if(!i)continue;let r=e.objtype,n=(e.object?.List?.items??e.object?.items??[]).map(o=>o.String?.sval??o.String?.str).filter(Boolean);if(n.length!==0){if(r==="OBJECT_TABLE"||r==="OBJECT_VIEW"){let[o,u]=n.length>=2?n:["public",n[0]];t.push({schema:o,table:u,text:i});}else if(r==="OBJECT_COLUMN"){let o="public",u,l;n.length>=3?[o,u,l]=n:[u,l]=n,t.push({schema:o,table:u,column:l,text:i});}}}return t}var fi,un=P(()=>{Kr();ts();zr();an();Ks();fi=new Set;});function at(a,t){Ne.existsSync(a)||(Ne.mkdirSync(a,{recursive:true}),t?.());}function Rt(a,t,s){Ne.existsSync(a)||(Ne.writeFileSync(a,t),s?.());}var ht=class a{root;constructor(t,s){let e=s??a.projectDir();this.root=v__default.join(e,t??"");}ensureRoot(){at(this.root);}static homeDir(){return v__default.join(In.homedir(),".lite")}static projectDir(){return v__default.join(process.cwd(),"supabase")}deleteAll(t=false){try{Ne.rmSync(this.root,{recursive:!0});}catch(s){if(!t)throw s}this.ensureRoot();}delete(t,s=false){try{Ne.unlinkSync(v__default.join(this.root,t));}catch(e){if(!s)throw e}}write(t,s,e=false){try{this.ensureRoot(),Ne.writeFileSync(v__default.join(this.root,t),s);}catch(i){if(!e)throw i}}read(t,s=false){try{return Ne.readFileSync(v__default.join(this.root,t),"utf8")}catch(e){if(!s)throw e}}relativePath(t){return t?v__default.relative(process.cwd(),v__default.join(this.root,t)):this.root}path(t){return t?v__default.join(this.root,t):this.root}};var Bt=process.env.SUPALITE_CLOUD_URL??(process.env.LOCAL?"http://localhost:2000":"https://www.lite.dev");var _e=class{root;constructor(t){this.root=t??v__default.join(In.homedir(),".lite","auth"),at(this.root);}async getItem(t){try{return Ne.readFileSync(v__default.join(this.root,t+".json"),"utf8")}catch{return null}}async setItem(t,s){Ne.writeFileSync(v__default.join(this.root,t+".json"),s);}async removeItem(t){try{Ne.unlinkSync(v__default.join(this.root,t+".json"));}catch{return}}};var yt=class{constructor(t){this.config=t;this.tempFs=new ht(".temp",this.config.root),this.projectFs=new ht("supabase",this.config.root),this.schemaFs=new ht("schemas",this.config.root),this.authStorage=this.config.authStorage??new _e(v__default.join(ht.homeDir(),"auth")),this._client=this.config.withSupabaseClient!==false?this.config.client??createClient(this.config.host??Bt,process.env.SUPALITE_CLOUD_ANON_KEY??"...",{auth:{storage:this.authStorage}}):void 0;}tempFs;projectFs;schemaFs;_client;authStorage;async fetch(t,s){if(!this.config.token)throw new Error("Not authenticated, sign in first.");let e=t instanceof URL?t:new URL(t,this.config.host??Bt);return await fetch(e,{...s,headers:{...s?.headers,Authorization:`Bearer ${this.config.token}`}})}};var Lt=class extends yt{constructor(s){super(s);this.config=s;}get client(){if(!this._client)throw new Error("Supabase client not initialized");return this._client}projectRef(){return this.tempFs.read("project-ref",true)}projectUrl(s){let e=new URL(this.config.host),i=e.hostname==="localhost"?"supalite.local":e.hostname,r=i.split(".").filter(o=>o!=="www"),n=r.length>=2?r.slice(-2).join("."):i;return `${e.protocol}//${s}.${n}${e.port?`:${e.port}`:""}`}};var gt={config_dir:"supabase",default_db_url:"file:supabase/.temp/data.db",default_db_dir:"supabase/.temp/data"};var Ht=Ut(Mt());function Fn(a,t){let s=a.slice(0,t).split(/\r\n|\n|\r/g);return [s.length,s.pop().length+1]}function Un(a,t,s){let e=a.split(/\r\n|\n|\r/g),i="",r=(Math.log10(t+1)|0)+1;for(let n=t-1;n<=t+1;n++){let o=e[n-1];o&&(i+=n.toString().padEnd(r," "),i+=": ",i+=o,i+=`
42
- `,n===t&&(i+=" ".repeat(r+s+2),i+=`^
43
- `));}return i}var y=class extends Error{line;column;codeblock;constructor(t,s){let[e,i]=Fn(s.toml,s.ptr),r=Un(s.toml,e,i);super(`Invalid TOML document: ${t}
12
+ var is=Object.create;var tn=Object.defineProperty;var ss=Object.getOwnPropertyDescriptor;var os=Object.getOwnPropertyNames;var as=Object.getPrototypeOf,ls=Object.prototype.hasOwnProperty;var F=(e,t)=>()=>(e&&(t=e(e=0)),t);var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cs=(e,t)=>{for(var n in t)tn(e,n,{get:t[n],enumerable:true});},us=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of os(t))!ls.call(e,i)&&i!==n&&tn(e,i,{get:()=>t[i],enumerable:!(r=ss(t,i))||r.enumerable});return e};var Ft=(e,t,n)=>(n=e!=null?is(as(e)):{},us(tn(n,"default",{value:e,enumerable:true}),e));var It=yt((uu,nn)=>{var Ee=process||{},or=Ee.argv||[],_e=Ee.env||{},ds=!(_e.NO_COLOR||or.includes("--no-color"))&&(!!_e.FORCE_COLOR||or.includes("--color")||Ee.platform==="win32"||(Ee.stdout||{}).isTTY&&_e.TERM!=="dumb"||!!_e.CI),gs=(e,t,n=e)=>r=>{let i=""+r,s=i.indexOf(t,e.length);return ~s?e+ys(i,t,n,s)+t:e+i+t},ys=(e,t,n,r)=>{let i="",s=0;do i+=e.substring(s,r)+n,s=r+t.length,r=e.indexOf(t,s);while(~r);return i+e.substring(s)},ar=(e=ds)=>{let t=e?gs:()=>String;return {isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}};nn.exports=ar();nn.exports.createColors=ar;});var qt=yt((pp,Ir)=>{var $r="[^\\\\/]",Qo="(?=.)",Lr="[^/]",wn="(?:\\/|$)",Fr="(?:^|\\/)",bn=`\\.{1,2}${wn}`,Zo="(?!\\.)",ta=`(?!${Fr}${bn})`,ea=`(?!\\.{0,1}${wn})`,na=`(?!${bn})`,ra="[^.\\/]",ia=`${Lr}*?`,sa="/",Or={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:Qo,QMARK:Lr,END_ANCHOR:wn,DOTS_SLASH:bn,NO_DOT:Zo,NO_DOTS:ta,NO_DOT_SLASH:ea,NO_DOTS_SLASH:na,QMARK_NO_DOT:ra,STAR:ia,START_ANCHOR:Fr,SEP:sa},oa={...Or,SLASH_LITERAL:"[\\\\/]",QMARK:$r,STAR:`${$r}*?`,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:"\\"},aa={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"};Ir.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:aa,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(e){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${e.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(e){return e===true?oa:Or}};});var Wt=yt(Q=>{var{REGEX_BACKSLASH:la,REGEX_REMOVE_BACKSLASH:ca,REGEX_SPECIAL_CHARS:ua,REGEX_SPECIAL_CHARS_GLOBAL:fa}=qt();Q.isObject=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);Q.hasRegexChars=e=>ua.test(e);Q.isRegexChar=e=>e.length===1&&Q.hasRegexChars(e);Q.escapeRegex=e=>e.replace(fa,"\\$1");Q.toPosixSlashes=e=>e.replace(la,"/");Q.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let e=navigator.platform.toLowerCase();return e==="win32"||e==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};Q.removeBackslashes=e=>e.replace(ca,t=>t==="\\"?"":t);Q.escapeLast=(e,t,n)=>{let r=e.lastIndexOf(t,n);return r===-1?e:e[r-1]==="\\"?Q.escapeLast(e,t,r-1):`${e.slice(0,r)}\\${e.slice(r)}`};Q.removePrefix=(e,t={})=>{let n=e;return n.startsWith("./")&&(n=n.slice(2),t.prefix="./"),n};Q.wrapOutput=(e,t={},n={})=>{let r=n.contains?"":"^",i=n.contains?"":"$",s=`${r}(?:${e})${i}`;return t.negated===true&&(s=`(?:^(?!${s}).*$)`),s};Q.basename=(e,{windows:t}={})=>{let n=e.split(t?/[\\/]/:"/"),r=n[n.length-1];return r===""?n[n.length-2]:r};});var Wr=yt((mp,qr)=>{var Dr=Wt(),{CHAR_ASTERISK:xn,CHAR_AT:pa,CHAR_BACKWARD_SLASH:zt,CHAR_COMMA:ha,CHAR_DOT:_n,CHAR_EXCLAMATION_MARK:En,CHAR_FORWARD_SLASH:Br,CHAR_LEFT_CURLY_BRACE:Sn,CHAR_LEFT_PARENTHESES:Tn,CHAR_LEFT_SQUARE_BRACKET:ma,CHAR_PLUS:da,CHAR_QUESTION_MARK:jr,CHAR_RIGHT_CURLY_BRACE:ga,CHAR_RIGHT_PARENTHESES:Mr,CHAR_RIGHT_SQUARE_BRACKET:ya}=qt(),Hr=e=>e===Br||e===zt,Ur=e=>{e.isPrefix!==true&&(e.depth=e.isGlobstar?1/0:1);},wa=(e,t)=>{let n=t||{},r=e.length-1,i=n.parts===true||n.scanToEnd===true,s=[],o=[],a=[],l=e,c=-1,u=0,p=0,f=false,g=false,y=false,x=false,T=false,v=false,_=false,K=false,rt=false,z=false,q=0,Y,S,R={value:"",depth:0,isGlob:false},d=()=>c>=r,G=()=>l.charCodeAt(c+1),E=()=>(Y=S,l.charCodeAt(++c));for(;c<r;){S=E();let L;if(S===zt){_=R.backslashes=true,S=E(),S===Sn&&(v=true);continue}if(v===true||S===Sn){for(q++;d()!==true&&(S=E());){if(S===zt){_=R.backslashes=true,E();continue}if(S===Sn){q++;continue}if(v!==true&&S===_n&&(S=E())===_n){if(f=R.isBrace=true,y=R.isGlob=true,z=true,i===true)continue;break}if(v!==true&&S===ha){if(f=R.isBrace=true,y=R.isGlob=true,z=true,i===true)continue;break}if(S===ga&&(q--,q===0)){v=false,f=R.isBrace=true,z=true;break}}if(i===true)continue;break}if(S===Br){if(s.push(c),o.push(R),R={value:"",depth:0,isGlob:false},z===true)continue;if(Y===_n&&c===u+1){u+=2;continue}p=c+1;continue}if(n.noext!==true&&(S===da||S===pa||S===xn||S===jr||S===En)===true&&G()===Tn){if(y=R.isGlob=true,x=R.isExtglob=true,z=true,S===En&&c===u&&(rt=true),i===true){for(;d()!==true&&(S=E());){if(S===zt){_=R.backslashes=true,S=E();continue}if(S===Mr){y=R.isGlob=true,z=true;break}}continue}break}if(S===xn){if(Y===xn&&(T=R.isGlobstar=true),y=R.isGlob=true,z=true,i===true)continue;break}if(S===jr){if(y=R.isGlob=true,z=true,i===true)continue;break}if(S===ma){for(;d()!==true&&(L=E());){if(L===zt){_=R.backslashes=true,E();continue}if(L===ya){g=R.isBracket=true,y=R.isGlob=true,z=true;break}}if(i===true)continue;break}if(n.nonegate!==true&&S===En&&c===u){K=R.negated=true,u++;continue}if(n.noparen!==true&&S===Tn){if(y=R.isGlob=true,i===true){for(;d()!==true&&(S=E());){if(S===Tn){_=R.backslashes=true,S=E();continue}if(S===Mr){z=true;break}}continue}break}if(y===true){if(z=true,i===true)continue;break}}n.noext===true&&(x=false,y=false);let $=l,m="",h="";u>0&&(m=l.slice(0,u),l=l.slice(u),p-=u),$&&y===true&&p>0?($=l.slice(0,p),h=l.slice(p)):y===true?($="",h=l):$=l,$&&$!==""&&$!=="/"&&$!==l&&Hr($.charCodeAt($.length-1))&&($=$.slice(0,-1)),n.unescape===true&&(h&&(h=Dr.removeBackslashes(h)),$&&_===true&&($=Dr.removeBackslashes($)));let tt={prefix:m,input:e,start:u,base:$,glob:h,isBrace:f,isBracket:g,isGlob:y,isExtglob:x,isGlobstar:T,negated:K,negatedExtglob:rt};if(n.tokens===true&&(tt.maxDepth=0,Hr(S)||o.push(R),tt.tokens=o),n.parts===true||n.tokens===true){let L;for(let D=0;D<s.length;D++){let ct=L?L+1:u,et=s[D],ht=e.slice(ct,et);n.tokens&&(D===0&&u!==0?(o[D].isPrefix=true,o[D].value=m):o[D].value=ht,Ur(o[D]),tt.maxDepth+=o[D].depth),(D!==0||ht!=="")&&a.push(ht),L=et;}if(L&&L+1<e.length){let D=e.slice(L+1);a.push(D),n.tokens&&(o[o.length-1].value=D,Ur(o[o.length-1]),tt.maxDepth+=o[o.length-1].depth);}tt.slashes=s,tt.parts=a;}return tt};qr.exports=wa;});var Gr=yt((dp,Vr)=>{var Ie=qt(),lt=Wt(),{MAX_LENGTH:De,POSIX_REGEX_SOURCE:ba,REGEX_NON_SPECIAL_CHARS:xa,REGEX_SPECIAL_CHARS_BACKREF:_a,REPLACEMENTS:zr}=Ie,Ea=(e,t)=>{if(typeof t.expandRange=="function")return t.expandRange(...e,t);e.sort();let n=`[${e.join("-")}]`;try{new RegExp(n);}catch{return e.map(i=>lt.escapeRegex(i)).join("..")}return n},Pt=(e,t)=>`Missing ${e}: "${t}" - use "\\\\${t}" to match literal characters`,An=(e,t)=>{if(typeof e!="string")throw new TypeError("Expected a string");e=zr[e]||e;let n={...t},r=typeof n.maxLength=="number"?Math.min(De,n.maxLength):De,i=e.length;if(i>r)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${r}`);let s={type:"bos",value:"",output:n.prepend||""},o=[s],a=n.capture?"":"?:",l=Ie.globChars(n.windows),c=Ie.extglobChars(l),{DOT_LITERAL:u,PLUS_LITERAL:p,SLASH_LITERAL:f,ONE_CHAR:g,DOTS_SLASH:y,NO_DOT:x,NO_DOT_SLASH:T,NO_DOTS_SLASH:v,QMARK:_,QMARK_NO_DOT:K,STAR:rt,START_ANCHOR:z}=l,q=b=>`(${a}(?:(?!${z}${b.dot?y:u}).)*?)`,Y=n.dot?"":x,S=n.dot?_:K,R=n.bash===true?q(n):rt;n.capture&&(R=`(${R})`),typeof n.noext=="boolean"&&(n.noextglob=n.noext);let d={input:e,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:o};e=lt.removePrefix(e,d),i=e.length;let G=[],E=[],$=[],m=s,h,tt=()=>d.index===i-1,L=d.peek=(b=1)=>e[d.index+b],D=d.advance=()=>e[++d.index]||"",ct=()=>e.slice(d.index+1),et=(b="",O=0)=>{d.consumed+=b,d.index+=O;},ht=b=>{d.output+=b.output!=null?b.output:b.value,et(b.value);},ns=()=>{let b=1;for(;L()==="!"&&(L(2)!=="("||L(3)==="?");)D(),d.start++,b++;return b%2===0?false:(d.negated=true,d.start++,true)},me=b=>{d[b]++,$.push(b);},gt=b=>{d[b]--,$.pop();},N=b=>{if(m.type==="globstar"){let O=d.braces>0&&(b.type==="comma"||b.type==="brace"),w=b.extglob===true||G.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!O&&!w&&(d.output=d.output.slice(0,-m.output.length),m.type="star",m.value="*",m.output=R,d.output+=m.output);}if(G.length&&b.type!=="paren"&&(G[G.length-1].inner+=b.value),(b.value||b.output)&&ht(b),m&&m.type==="text"&&b.type==="text"){m.output=(m.output||m.value)+b.value,m.value+=b.value;return}b.prev=m,o.push(b),m=b;},de=(b,O)=>{let w={...c[O],conditions:1,inner:""};w.prev=m,w.parens=d.parens,w.output=d.output;let C=(n.capture?"(":"")+w.open;me("parens"),N({type:b,value:O,output:d.output?"":g}),N({type:"paren",extglob:true,value:D(),output:C}),G.push(w);},rs=b=>{let O=b.close+(n.capture?")":""),w;if(b.type==="negate"){let C=R;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(C=q(n)),(C!==R||tt()||/^\)+$/.test(ct()))&&(O=b.close=`)$))${C}`),b.inner.includes("*")&&(w=ct())&&/^\.[^\\/.]+$/.test(w)){let j=An(w,{...t,fastpaths:false}).output;O=b.close=`)${j})${C})`;}b.prev.type==="bos"&&(d.negatedExtglob=true);}N({type:"paren",extglob:true,value:h,output:O}),gt("parens");};if(n.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(e)){let b=false,O=e.replace(_a,(w,C,j,X,W,Ze)=>X==="\\"?(b=true,w):X==="?"?C?C+X+(W?_.repeat(W.length):""):Ze===0?S+(W?_.repeat(W.length):""):_.repeat(j.length):X==="."?u.repeat(j.length):X==="*"?C?C+X+(W?R:""):R:C?w:`\\${w}`);return b===true&&(n.unescape===true?O=O.replace(/\\/g,""):O=O.replace(/\\+/g,w=>w.length%2===0?"\\\\":w?"\\":"")),O===e&&n.contains===true?(d.output=e,d):(d.output=lt.wrapOutput(O,d,t),d)}for(;!tt();){if(h=D(),h==="\0")continue;if(h==="\\"){let w=L();if(w==="/"&&n.bash!==true||w==="."||w===";")continue;if(!w){h+="\\",N({type:"text",value:h});continue}let C=/^\\+/.exec(ct()),j=0;if(C&&C[0].length>2&&(j=C[0].length,d.index+=j,j%2!==0&&(h+="\\")),n.unescape===true?h=D():h+=D(),d.brackets===0){N({type:"text",value:h});continue}}if(d.brackets>0&&(h!=="]"||m.value==="["||m.value==="[^")){if(n.posix!==false&&h===":"){let w=m.value.slice(1);if(w.includes("[")&&(m.posix=true,w.includes(":"))){let C=m.value.lastIndexOf("["),j=m.value.slice(0,C),X=m.value.slice(C+2),W=ba[X];if(W){m.value=j+W,d.backtrack=true,D(),!s.output&&o.indexOf(m)===1&&(s.output=g);continue}}}(h==="["&&L()!==":"||h==="-"&&L()==="]")&&(h=`\\${h}`),h==="]"&&(m.value==="["||m.value==="[^")&&(h=`\\${h}`),n.posix===true&&h==="!"&&m.value==="["&&(h="^"),m.value+=h,ht({value:h});continue}if(d.quotes===1&&h!=='"'){h=lt.escapeRegex(h),m.value+=h,ht({value:h});continue}if(h==='"'){d.quotes=d.quotes===1?0:1,n.keepQuotes===true&&N({type:"text",value:h});continue}if(h==="("){me("parens"),N({type:"paren",value:h});continue}if(h===")"){if(d.parens===0&&n.strictBrackets===true)throw new SyntaxError(Pt("opening","("));let w=G[G.length-1];if(w&&d.parens===w.parens+1){rs(G.pop());continue}N({type:"paren",value:h,output:d.parens?")":"\\)"}),gt("parens");continue}if(h==="["){if(n.nobracket===true||!ct().includes("]")){if(n.nobracket!==true&&n.strictBrackets===true)throw new SyntaxError(Pt("closing","]"));h=`\\${h}`;}else me("brackets");N({type:"bracket",value:h});continue}if(h==="]"){if(n.nobracket===true||m&&m.type==="bracket"&&m.value.length===1){N({type:"text",value:h,output:`\\${h}`});continue}if(d.brackets===0){if(n.strictBrackets===true)throw new SyntaxError(Pt("opening","["));N({type:"text",value:h,output:`\\${h}`});continue}gt("brackets");let w=m.value.slice(1);if(m.posix!==true&&w[0]==="^"&&!w.includes("/")&&(h=`/${h}`),m.value+=h,ht({value:h}),n.literalBrackets===false||lt.hasRegexChars(w))continue;let C=lt.escapeRegex(m.value);if(d.output=d.output.slice(0,-m.value.length),n.literalBrackets===true){d.output+=C,m.value=C;continue}m.value=`(${a}${C}|${m.value})`,d.output+=m.value;continue}if(h==="{"&&n.nobrace!==true){me("braces");let w={type:"brace",value:h,output:"(",outputIndex:d.output.length,tokensIndex:d.tokens.length};E.push(w),N(w);continue}if(h==="}"){let w=E[E.length-1];if(n.nobrace===true||!w){N({type:"text",value:h,output:h});continue}let C=")";if(w.dots===true){let j=o.slice(),X=[];for(let W=j.length-1;W>=0&&(o.pop(),j[W].type!=="brace");W--)j[W].type!=="dots"&&X.unshift(j[W].value);C=Ea(X,n),d.backtrack=true;}if(w.comma!==true&&w.dots!==true){let j=d.output.slice(0,w.outputIndex),X=d.tokens.slice(w.tokensIndex);w.value=w.output="\\{",h=C="\\}",d.output=j;for(let W of X)d.output+=W.output||W.value;}N({type:"brace",value:h,output:C}),gt("braces"),E.pop();continue}if(h==="|"){G.length>0&&G[G.length-1].conditions++,N({type:"text",value:h});continue}if(h===","){let w=h,C=E[E.length-1];C&&$[$.length-1]==="braces"&&(C.comma=true,w="|"),N({type:"comma",value:h,output:w});continue}if(h==="/"){if(m.type==="dot"&&d.index===d.start+1){d.start=d.index+1,d.consumed="",d.output="",o.pop(),m=s;continue}N({type:"slash",value:h,output:f});continue}if(h==="."){if(d.braces>0&&m.type==="dot"){m.value==="."&&(m.output=u);let w=E[E.length-1];m.type="dots",m.output+=h,m.value+=h,w.dots=true;continue}if(d.braces+d.parens===0&&m.type!=="bos"&&m.type!=="slash"){N({type:"text",value:h,output:u});continue}N({type:"dot",value:h,output:u});continue}if(h==="?"){if(!(m&&m.value==="(")&&n.noextglob!==true&&L()==="("&&L(2)!=="?"){de("qmark",h);continue}if(m&&m.type==="paren"){let C=L(),j=h;(m.value==="("&&!/[!=<:]/.test(C)||C==="<"&&!/<([!=]|\w+>)/.test(ct()))&&(j=`\\${h}`),N({type:"text",value:h,output:j});continue}if(n.dot!==true&&(m.type==="slash"||m.type==="bos")){N({type:"qmark",value:h,output:K});continue}N({type:"qmark",value:h,output:_});continue}if(h==="!"){if(n.noextglob!==true&&L()==="("&&(L(2)!=="?"||!/[!=<:]/.test(L(3)))){de("negate",h);continue}if(n.nonegate!==true&&d.index===0){ns();continue}}if(h==="+"){if(n.noextglob!==true&&L()==="("&&L(2)!=="?"){de("plus",h);continue}if(m&&m.value==="("||n.regex===false){N({type:"plus",value:h,output:p});continue}if(m&&(m.type==="bracket"||m.type==="paren"||m.type==="brace")||d.parens>0){N({type:"plus",value:h});continue}N({type:"plus",value:p});continue}if(h==="@"){if(n.noextglob!==true&&L()==="("&&L(2)!=="?"){N({type:"at",extglob:true,value:h,output:""});continue}N({type:"text",value:h});continue}if(h!=="*"){(h==="$"||h==="^")&&(h=`\\${h}`);let w=xa.exec(ct());w&&(h+=w[0],d.index+=w[0].length),N({type:"text",value:h});continue}if(m&&(m.type==="globstar"||m.star===true)){m.type="star",m.star=true,m.value+=h,m.output=R,d.backtrack=true,d.globstar=true,et(h);continue}let b=ct();if(n.noextglob!==true&&/^\([^?]/.test(b)){de("star",h);continue}if(m.type==="star"){if(n.noglobstar===true){et(h);continue}let w=m.prev,C=w.prev,j=w.type==="slash"||w.type==="bos",X=C&&(C.type==="star"||C.type==="globstar");if(n.bash===true&&(!j||b[0]&&b[0]!=="/")){N({type:"star",value:h,output:""});continue}let W=d.braces>0&&(w.type==="comma"||w.type==="brace"),Ze=G.length&&(w.type==="pipe"||w.type==="paren");if(!j&&w.type!=="paren"&&!W&&!Ze){N({type:"star",value:h,output:""});continue}for(;b.slice(0,3)==="/**";){let ge=e[d.index+4];if(ge&&ge!=="/")break;b=b.slice(3),et("/**",3);}if(w.type==="bos"&&tt()){m.type="globstar",m.value+=h,m.output=q(n),d.output=m.output,d.globstar=true,et(h);continue}if(w.type==="slash"&&w.prev.type!=="bos"&&!X&&tt()){d.output=d.output.slice(0,-(w.output+m.output).length),w.output=`(?:${w.output}`,m.type="globstar",m.output=q(n)+(n.strictSlashes?")":"|$)"),m.value+=h,d.globstar=true,d.output+=w.output+m.output,et(h);continue}if(w.type==="slash"&&w.prev.type!=="bos"&&b[0]==="/"){let ge=b[1]!==void 0?"|$":"";d.output=d.output.slice(0,-(w.output+m.output).length),w.output=`(?:${w.output}`,m.type="globstar",m.output=`${q(n)}${f}|${f}${ge})`,m.value+=h,d.output+=w.output+m.output,d.globstar=true,et(h+D()),N({type:"slash",value:"/",output:""});continue}if(w.type==="bos"&&b[0]==="/"){m.type="globstar",m.value+=h,m.output=`(?:^|${f}|${q(n)}${f})`,d.output=m.output,d.globstar=true,et(h+D()),N({type:"slash",value:"/",output:""});continue}d.output=d.output.slice(0,-m.output.length),m.type="globstar",m.output=q(n),m.value+=h,d.output+=m.output,d.globstar=true,et(h);continue}let O={type:"star",value:h,output:R};if(n.bash===true){O.output=".*?",(m.type==="bos"||m.type==="slash")&&(O.output=Y+O.output),N(O);continue}if(m&&(m.type==="bracket"||m.type==="paren")&&n.regex===true){O.output=h,N(O);continue}(d.index===d.start||m.type==="slash"||m.type==="dot")&&(m.type==="dot"?(d.output+=T,m.output+=T):n.dot===true?(d.output+=v,m.output+=v):(d.output+=Y,m.output+=Y),L()!=="*"&&(d.output+=g,m.output+=g)),N(O);}for(;d.brackets>0;){if(n.strictBrackets===true)throw new SyntaxError(Pt("closing","]"));d.output=lt.escapeLast(d.output,"["),gt("brackets");}for(;d.parens>0;){if(n.strictBrackets===true)throw new SyntaxError(Pt("closing",")"));d.output=lt.escapeLast(d.output,"("),gt("parens");}for(;d.braces>0;){if(n.strictBrackets===true)throw new SyntaxError(Pt("closing","}"));d.output=lt.escapeLast(d.output,"{"),gt("braces");}if(n.strictSlashes!==true&&(m.type==="star"||m.type==="bracket")&&N({type:"maybe_slash",value:"",output:`${f}?`}),d.backtrack===true){d.output="";for(let b of d.tokens)d.output+=b.output!=null?b.output:b.value,b.suffix&&(d.output+=b.suffix);}return d};An.fastpaths=(e,t)=>{let n={...t},r=typeof n.maxLength=="number"?Math.min(De,n.maxLength):De,i=e.length;if(i>r)throw new SyntaxError(`Input length: ${i}, exceeds maximum allowed length: ${r}`);e=zr[e]||e;let{DOT_LITERAL:s,SLASH_LITERAL:o,ONE_CHAR:a,DOTS_SLASH:l,NO_DOT:c,NO_DOTS:u,NO_DOTS_SLASH:p,STAR:f,START_ANCHOR:g}=Ie.globChars(n.windows),y=n.dot?u:c,x=n.dot?p:c,T=n.capture?"":"?:",v={negated:false,prefix:""},_=n.bash===true?".*?":f;n.capture&&(_=`(${_})`);let K=Y=>Y.noglobstar===true?_:`(${T}(?:(?!${g}${Y.dot?l:s}).)*?)`,rt=Y=>{switch(Y){case "*":return `${y}${a}${_}`;case ".*":return `${s}${a}${_}`;case "*.*":return `${y}${_}${s}${a}${_}`;case "*/*":return `${y}${_}${o}${a}${x}${_}`;case "**":return y+K(n);case "**/*":return `(?:${y}${K(n)}${o})?${x}${a}${_}`;case "**/*.*":return `(?:${y}${K(n)}${o})?${x}${_}${s}${a}${_}`;case "**/.*":return `(?:${y}${K(n)}${o})?${s}${a}${_}`;default:{let S=/^(.*?)\.(\w+)$/.exec(Y);if(!S)return;let R=rt(S[1]);return R?R+s+S[2]:void 0}}},z=lt.removePrefix(e,v),q=rt(z);return q&&n.strictSlashes!==true&&(q+=`${o}?`),q};Vr.exports=An;});var Xr=yt((gp,Yr)=>{var Sa=Wr(),Rn=Gr(),Kr=Wt(),Ta=qt(),Aa=e=>e&&typeof e=="object"&&!Array.isArray(e),U=(e,t,n=false)=>{if(Array.isArray(e)){let u=e.map(f=>U(f,t,n));return f=>{for(let g of u){let y=g(f);if(y)return y}return false}}let r=Aa(e)&&e.tokens&&e.input;if(e===""||typeof e!="string"&&!r)throw new TypeError("Expected pattern to be a non-empty string");let i=t||{},s=i.windows,o=r?U.compileRe(e,t):U.makeRe(e,t,false,true),a=o.state;delete o.state;let l=()=>false;if(i.ignore){let u={...t,ignore:null,onMatch:null,onResult:null};l=U(i.ignore,u,n);}let c=(u,p=false)=>{let{isMatch:f,match:g,output:y}=U.test(u,o,t,{glob:e,posix:s}),x={glob:e,state:a,regex:o,posix:s,input:u,output:y,match:g,isMatch:f};return typeof i.onResult=="function"&&i.onResult(x),f===false?(x.isMatch=false,p?x:false):l(u)?(typeof i.onIgnore=="function"&&i.onIgnore(x),x.isMatch=false,p?x:false):(typeof i.onMatch=="function"&&i.onMatch(x),p?x:true)};return n&&(c.state=a),c};U.test=(e,t,n,{glob:r,posix:i}={})=>{if(typeof e!="string")throw new TypeError("Expected input to be a string");if(e==="")return {isMatch:false,output:""};let s=n||{},o=s.format||(i?Kr.toPosixSlashes:null),a=e===r,l=a&&o?o(e):e;return a===false&&(l=o?o(e):e,a=l===r),(a===false||s.capture===true)&&(s.matchBase===true||s.basename===true?a=U.matchBase(e,t,n,i):a=t.exec(l)),{isMatch:!!a,match:a,output:l}};U.matchBase=(e,t,n)=>(t instanceof RegExp?t:U.makeRe(t,n)).test(Kr.basename(e));U.isMatch=(e,t,n)=>U(t,n)(e);U.parse=(e,t)=>Array.isArray(e)?e.map(n=>U.parse(n,t)):Rn(e,{...t,fastpaths:false});U.scan=(e,t)=>Sa(e,t);U.compileRe=(e,t,n=false,r=false)=>{if(n===true)return e.output;let i=t||{},s=i.contains?"":"^",o=i.contains?"":"$",a=`${s}(?:${e.output})${o}`;e&&e.negated===true&&(a=`^(?!${a}).*$`);let l=U.toRegex(a,t);return r===true&&(l.state=e),l};U.makeRe=(e,t={},n=false,r=false)=>{if(!e||typeof e!="string")throw new TypeError("Expected a non-empty string");let i={negated:false,fastpaths:true};return t.fastpaths!==false&&(e[0]==="."||e[0]==="*")&&(i.output=Rn.fastpaths(e,t)),i.output||(i=Rn(e,t)),U.compileRe(i,t,n,r)};U.toRegex=(e,t)=>{try{let n=t||{};return new RegExp(e,n.flags||(n.nocase?"i":""))}catch(n){if(t&&t.debug===true)throw n;return /$^/}};U.constants=Ta;Yr.exports=U;});var ti=yt((yp,Zr)=>{var Jr=Xr(),Ra=Wt();function Qr(e,t,n=false){return t&&(t.windows===null||t.windows===void 0)&&(t={...t,windows:Ra.isWindows()}),Jr(e,t,n)}Object.assign(Qr,Jr);Zr.exports=Qr;});function Xt(e){if("String"in e)return e.String.sval}function Et(e){return e.map(Xt).filter(t=>t!=null)}function Ci(e){return Object.keys(e)[0]}function Pi(e){if("A_Const"in e){if(e.A_Const.ival)return e.A_Const.ival.ival;if(e.A_Const.fval)return e.A_Const.fval.fval;if(e.A_Const.sval)return e.A_Const.sval.sval;if(e.A_Const.boolval)return e.A_Const.boolval.boolval;if(e.A_Const.isnull)return null}}var Ge=F(()=>{});function vi(e){let t=e.toLowerCase();return ["serial","serial4","bigserial","serial8","smallserial","serial2"].includes(t)}function Ni(e){let t=e.toLowerCase();return ["varchar","character varying","char","character","bpchar"].includes(t)}function ki(e){let t=e.toLowerCase();return ["numeric","decimal"].includes(t)}var Hn,Ke,ql,Un=F(()=>{Ge();Hn=class extends Error{},Ke=class extends Hn{constructor(n,r){super(r??`Unsupported node type: ${Ci(n)}`);this.node=n;}};ql={CreateEnumStmt:{react:"ignore"},CreateDomainStmt:{react:"warn"},CreateSeqStmt:{react:"error"},AlterSeqStmt:{react:"error"},CreateSchemaStmt:{react:"warn"},CreatePolicyStmt:{react:"ignore"},PartitionElem:{react:"error"},PartitionCmd:{react:"error"},VariableSetStmt:{react:"ignore"},CompositeTypeStmt:{react:"error"},AlterEnumStmt:{react:"error"},AlterObjectSchemaStmt:{react:"error"},AlterOwnerStmt:{react:"error"},AlterTypeStmt:{react:"error"},AlterFunctionStmt:{react:"error"},AlterDefaultPrivilegesStmt:{react:"error"},GrantStmt:{react:"error"},GrantRoleStmt:{react:"error"},CopyStmt:{react:"error"},CreateCastStmt:{react:"error"},AlterOpFamilyStmt:{react:"error"},AlterOperatorStmt:{react:"error"},TruncateStmt:{react:"error"},A_Indirection:{react:"error"},XmlExpr:{react:"error"},XmlSerialize:{react:"error"},RangeTableSample:{react:"error"},GroupingSet:{react:"error"}},new Map(Object.entries(ql));});var nt,Ye,$i=F(()=>{Ge();Un();nt=class extends Ke{constructor(t,n){super(t,`Unsupported expression: ${n}`);}},Ye=class{deparse(t){if("A_Const"in t){let i=t.A_Const;if(i.boolval!==void 0)return i.boolval.boolval?{}:{$always:false}}let n=Object.keys(t)[0],r=this[n];if(!r)throw new nt({[n]:t},`Unsupported expression: ${n}`);return r.call(this,t[n])}deparseValue(t){if("A_Const"in t)return this.A_Const(t.A_Const);if("ColumnRef"in t)return this.ColumnRef(t.ColumnRef);if("FuncCall"in t)return this.FuncCall(t.FuncCall);if("SubLink"in t)return this.SubLink(t.SubLink);if("TypeCast"in t)return this.TypeCast(t.TypeCast);if("A_Expr"in t){let r=this.isJwtAccessor(t.A_Expr);return r||this.A_Expr(t.A_Expr)}if("BoolExpr"in t)return this.BoolExpr(t.BoolExpr);let n=Object.keys(t)[0];throw new nt({[n]:t},`deparseValue: ${n}`)}A_Expr(t){if(t.kind==="AEXPR_OP"){let n=t.name?.[0],r=n?Xt(n):void 0;if(!r)throw new nt({A_Expr:t},"A_Expr missing operator");let i=this.isJwtAccessor(t);if(i)return {[i]:{}};let s=t.lexpr?this.deparseValue(t.lexpr):void 0,o=t.rexpr?this.deparseValue(t.rexpr):void 0,a=this.mapOperator(r);if(!a)throw new nt({A_Expr:t},`Unsupported operator: ${r}`);let l=t.rexpr!=null&&"ColumnRef"in t.rexpr;if(typeof s=="string"&&s.startsWith("{{")&&l)return {[o]:{[a]:s}};let c=l&&typeof o=="string"?{$ref:o}:o;return {[s]:{[a]:c}}}if(t.kind==="AEXPR_LIKE"||t.kind==="AEXPR_ILIKE"){let n=t.lexpr?this.deparseValue(t.lexpr):void 0,r=t.rexpr?this.deparseValue(t.rexpr):void 0,s=(t.name?.[0]?Xt(t.name[0]):"~~")==="!~~"?"$notLike":"$like";return {[n]:{[s]:r}}}if(t.kind==="AEXPR_IN"){let n=t.lexpr?this.deparseValue(t.lexpr):void 0,r=t.rexpr&&"List"in t.rexpr&&t.rexpr.List.items?t.rexpr.List.items.map(i=>this.deparseValue(i)):[];return {[n]:{$in:r}}}throw new nt({A_Expr:t},`A_Expr kind: ${t.kind}`)}BoolExpr(t){let n=t.args??[];switch(t.boolop){case "AND_EXPR":return {$and:n.map(r=>this.deparse(r))};case "OR_EXPR":return {$or:n.map(r=>this.deparse(r))};case "NOT_EXPR":return {$not:this.deparse(n[0])};default:throw new nt({BoolExpr:t},`BoolExpr op: ${t.boolop}`)}}NullTest(t){let n=t.arg?this.deparseValue(t.arg):void 0;return t.nulltesttype==="IS_NULL"?{[n]:{$is:null}}:{[n]:{$isNot:null}}}SubLink(t){if(t.subLinkType==="ANY_SUBLINK"){let n=t.testexpr?this.deparseValue(t.testexpr):void 0,r=t.subselect?this.SelectStmt(t.subselect.SelectStmt):void 0;return {[n]:{$in:r}}}if(t.subLinkType==="EXISTS_SUBLINK")return {$exists:t.subselect?this.SelectStmt(t.subselect.SelectStmt):void 0};if(t.subLinkType==="EXPR_SUBLINK"){let n=t.subselect?t.subselect.SelectStmt:void 0;if(n?.fromClause?.length)return this.SelectStmt(n);if(n?.targetList?.[0]){let r=n.targetList[0],i="ResTarget"in r?r.ResTarget:void 0;if(i?.val){let s=this.deparseValue(i.val);return s}}}throw new nt({SubLink:t},`SubLink type: ${t.subLinkType}`)}SelectStmt(t){let{from:n,schema:r,join:i}=this.deparseFromClause(t.fromClause??[]),s=[];for(let f of t.targetList??[]){let g="ResTarget"in f?f.ResTarget:void 0;if(g?.val){let y=this.deparseValue(g.val);Array.isArray(y)?s.push(...y.map(String)):y!=null&&y!==""&&s.push(String(y));}}let o=t.whereClause?this.deparse(t.whereClause):void 0,a=this.deparseSortClause(t.sortClause),l=this.deparseLimit(t.limitCount),c=this.deparseLimit(t.limitOffset),u=this.deparseGroupClause(t.groupClause),p={type:"query",from:n,select:s};return r&&(p.schema=r),Object.keys(i).length>0&&(p.join=i),o&&(p.where=o),a.length>0&&(p.order=a),l!==void 0&&(p.limit=l),c!==void 0&&(p.offset=c),u.length>0&&(p.group=u),p}FuncCall(t){let n=this.isAuthFunc(t.funcname??[]);if(n)return n;throw new nt({FuncCall:t},`FuncCall: ${Et(t.funcname??[]).join(".")}`)}ColumnRef(t){let n=Et(t.fields??[]);return n.length===1?n[0]:n.join(".")}A_Const(t){if(t.boolval!==void 0)return t.boolval.boolval;if(t.ival!==void 0)return t.ival.ival??0;if(t.fval!==void 0)return parseFloat(t.fval.fval??"0");if(t.sval!==void 0)return t.sval.sval??"";if(t.isnull)return null;throw new nt({A_Const:t},"A_Const: unknown variant")}TypeCast(t){if(!t.arg)throw new nt({TypeCast:t},"TypeCast: missing arg");return this.deparseValue(t.arg)}BooleanTest(t){let n=t.arg?this.deparseValue(t.arg):void 0;return t.booltesttype==="IS_TRUE"?{[n]:{$eq:true}}:{[n]:{$eq:false}}}deparseFromClause(t){let n={};if(t.length===0)return {from:"",join:n};let r=t[0];if("RangeVar"in r){let i=r.RangeVar;return {from:i.relname??"",schema:i.schemaname,join:n}}if("JoinExpr"in r){let{from:i,schema:s}=this.walkJoinExpr(r.JoinExpr,n);return {from:i,schema:s,join:n}}return {from:"",join:n}}walkJoinExpr(t,n){let r={from:""};if(t.larg)if("RangeVar"in t.larg){let i=t.larg.RangeVar;r={from:i.relname??"",schema:i.schemaname};}else "JoinExpr"in t.larg&&(r=this.walkJoinExpr(t.larg.JoinExpr,n));if(t.rarg&&"RangeVar"in t.rarg){let i=t.rarg.RangeVar,s=i.relname??"",o=i.alias?.aliasname??s,a=t.jointype==="JOIN_LEFT"?"left":"inner",l={from:s,type:a};t.quals&&(l.on=this.deparse(t.quals));let c=o;if(c in n){let u=2;for(;`${c}_${u}`in n;)u++;c=`${c}_${u}`;}n[c]=l;}return r}deparseSortClause(t){if(!t)return [];let n=[];for(let r of t){if(!("SortBy"in r))continue;let i=r.SortBy;if(!i.node)continue;let s=String(this.deparseValue(i.node)),o=i.sortby_dir==="SORTBY_DESC"?"desc":"asc",a={column:s,direction:o};i.sortby_nulls==="SORTBY_NULLS_FIRST"?a.nullsFirst=true:i.sortby_nulls==="SORTBY_NULLS_LAST"&&(a.nullsFirst=false),n.push(a);}return n}deparseLimit(t){if(!t)return;let n=this.deparseValue(t);return typeof n=="number"?n:Number(n)}deparseGroupClause(t){return t?t.map(n=>String(this.deparseValue(n))):[]}isAuthFunc(t){let n=Et(t);if(n.length===2&&n[0]==="auth"){if(n[1]==="uid")return "{{auth.uid}}";if(n[1]==="jwt")return "{{auth.jwt}}";if(n[1]==="role")return "{{auth.role}}";throw new Error(`Unsupported auth function: "${n.slice(1).join(".")}"`)}return null}isJwtAccessor(t){if(t.kind!=="AEXPR_OP")return null;let n=t.name?.[0]?Xt(t.name[0]):void 0;if(n!=="->"&&n!=="->>")return null;let r=t.rexpr&&"A_Const"in t.rexpr?t.rexpr.A_Const.sval?.sval:void 0;if(r===void 0)return null;if(t.lexpr&&"FuncCall"in t.lexpr)return this.isAuthFunc(t.lexpr.FuncCall.funcname??[])==="{{auth.jwt}}"?`{{auth.jwt.${r}}}`:null;if(t.lexpr&&"A_Expr"in t.lexpr){let i=this.isJwtAccessor(t.lexpr.A_Expr);if(i)return `${i.slice(0,-2)}.${r}}}`}return null}mapOperator(t){switch(t){case "=":return "$eq";case "<>":case "!=":return "$neq";case ">":return "$gt";case ">=":return "$gte";case "<":return "$lt";case "<=":return "$lte";case "~~":return "$like";case "!~~":return "$notLike";default:return}}};});var Xe,Li=F(()=>{Xe=class e{constructor(t){this.data=t;}appliesTo(t){return this.data.command==="ALL"||this.data.command===t}appliesToRole(t){return this.data.roles.length===0||this.data.roles.includes(t)}toJSON(){return this.data}static fromJSON(t){return new e(t)}};});var Jt,Bn=F(()=>{Jt=class extends Error{constructor(n,r,i,s){super(`check constraint "${i}" violated for ${n}.${r}`);this.table=n;this.column=r;this.constraint=i;this.value=s;this.name="CheckConstraintError";}};});var V,pt=F(()=>{Bn();V=class{context;constructor(t){this.context=t;}get isShimBacked(){return false}checkConstraint(){return null}serialize(t){return t}deserialize(t){return t}validateStorage(t){return {status:"pass",message:null}}validationFail(t,n){return {status:"fail",message:t,action:n}}validationPass(){return {status:"pass",message:null}}isNullish(t){return t==null}toColumnDDL(t){let{includeNullable:n=true}=t??{},r=[],i=this.context.column;r.push(this.quoteIfNeeded(i)),r.push(this.sqliteType),this.context.isPrimaryKey&&r.push("PRIMARY KEY"),this.context.isSerial&&this.context.isPrimaryKey&&r.push("AUTOINCREMENT"),n&&!this.context.nullable&&!this.context.isPrimaryKey&&r.push("NOT NULL"),this.context.isUnique&&!this.context.isPrimaryKey&&r.push("UNIQUE"),this.context.defaultValue!==null&&r.push(`DEFAULT ${this.context.defaultValue}`);let s=this.checkConstraint();return s&&r.push(`CHECK (${s})`),r.join(" ")}checkError(t,n){return new Jt(this.context.table,this.context.column,t,n)}quoteIfNeeded(t){return /^[a-zA-Z_][a-zA-Z0-9_]*$/.test(t)?t:`"${t}"`}};});var St,Je=F(()=>{pt();St=class extends V{get sqliteType(){return "INTEGER"}};});var Qt,qn=F(()=>{Je();Qt=class extends St{constructor(t){super({...t,isSerial:true});}};});function Wl(e,t){let{precision:n,scale:r}=t,i=10**r,s=10**(n-r);return Math.abs(Math.round(e*i)-e*i)<1e-4&&Math.abs(e)<s}var Zt,Wn=F(()=>{pt();Zt=class extends V{numericPrecision;constructor(t,n){super(t),this.numericPrecision=n;}get isShimBacked(){return this.numericPrecision!==void 0}get sqliteType(){return "REAL"}checkConstraint(){if(this.numericPrecision){let{precision:t,scale:n}=this.numericPrecision,r=this.context.column,i=10**n,s=10**(t-n);return `ABS(ROUND(${r} * ${i}) - ${r} * ${i}) < 0.0001 AND ABS(${r}) < ${s}`}return null}validateStorage(t){if(this.isNullish(t))return this.validationPass();if(typeof t!="number"||!Number.isFinite(t))return this.validationFail("Expected finite number.","Patch rows with finite numbers.");if(this.numericPrecision){let{precision:n,scale:r}=this.numericPrecision;if(!Wl(t,this.numericPrecision))return this.validationFail(`Does not fit numeric(${n}, ${r}).`,"Patch rows within numeric precision.")}return this.validationPass()}};});var H,ot=F(()=>{pt();H=class extends V{lengthConstraint;constructor(t,n){super(t),this.lengthConstraint=n;}get isShimBacked(){return this.lengthConstraint!==void 0}get sqliteType(){return "TEXT"}checkConstraint(){return this.lengthConstraint!==void 0?`length(${this.context.column}) <= ${this.lengthConstraint}`:null}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"?this.validationFail("Expected text.","Patch rows with text values."):this.lengthConstraint!==void 0&&Array.from(t).length>this.lengthConstraint?this.validationFail(`Exceeds length ${this.lengthConstraint}.`,"Patch rows with shorter text."):this.validationPass()}};});var te,zn=F(()=>{pt();te=class extends V{get sqliteType(){return "BLOB"}};});var ee,Vn=F(()=>{pt();ee=class extends V{get isShimBacked(){return true}get sqliteType(){return "INTEGER"}checkConstraint(){return `${this.context.column} IN (0, 1)`}serialize(t){if(this.isNullish(t))return t;if(t===true||t===1)return 1;if(t===false||t===0)return 0;throw this.checkError("boolean_range",t)}deserialize(t){return this.isNullish(t)?t:t===1?true:t===0?false:t}validateStorage(t){return this.isNullish(t)?this.validationPass():t===1||t===0?this.validationPass():this.validationFail("Expected 0 or 1.","Patch rows with boolean values.")}};});function Fi(e){try{return {ok:!0,value:JSON.parse(e)}}catch{return {ok:false}}}var ne,Gn=F(()=>{pt();ne=class extends V{get isShimBacked(){return true}get sqliteType(){return "TEXT"}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR json_valid(${t})`}serialize(t){if(this.isNullish(t))return t;try{return JSON.stringify(t)}catch{throw this.checkError("json_valid",t)}}deserialize(t){if(this.isNullish(t))return t;if(typeof t=="string"){let n=Fi(t);return n.ok?n.value:t}return t}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"?this.validationFail("Expected JSON text.","Patch rows with JSON values."):Fi(t).ok?this.validationPass():this.validationFail("Invalid JSON text.","Patch rows with valid JSON.")}};});function zl(e){if(!/^\d{4}-\d{2}-\d{2}$/.test(e))return false;let t=new Date(`${e}T00:00:00.000Z`);return !Number.isNaN(t.getTime())&&t.toISOString().slice(0,10)===e}var re,Kn=F(()=>{ot();re=class extends H{get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR date(${t}) IS NOT NULL`}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!zl(t)?this.validationFail("Invalid date.","Patch rows with YYYY-MM-DD dates."):this.validationPass()}};});function Vl(e){let t=e.match(/^(\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?([+-](\d{2}):?(\d{2}))?$/);if(!t)return false;let n=Number(t[1]),r=Number(t[2]),i=t[3]===void 0?0:Number(t[3]),s=t[5]===void 0?null:Number(t[5]),o=t[6]===void 0?null:Number(t[6]),a=s===null||o!==null&&s<=15&&o<=59;return n<=24&&r<=59&&i<=59&&(n!==24||r===0&&i===0)&&a}var ie,Yn=F(()=>{ot();ie=class extends H{get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR time(${t}) IS NOT NULL`}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!Vl(t)?this.validationFail("Invalid time.","Patch rows with HH:MM[:SS] times."):this.validationPass()}};});function Gl(e){let t=e.match(/^(\d{4})-(\d{2})-(\d{2})[ T](\d{2}):(\d{2})(?::(\d{2})(?:\.\d{1,6})?)?(?:Z|([+-](\d{2}):?(\d{2})))?$/);if(!t)return false;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]),s=Number(t[4]),o=Number(t[5]),a=t[6]===void 0?0:Number(t[6]),l=t[8]===void 0?null:Number(t[8]),c=t[9]===void 0?null:Number(t[9]),u=new Date(Date.UTC(n,r-1,i)),p=u.getUTCFullYear()===n&&u.getUTCMonth()===r-1&&u.getUTCDate()===i,f=s<=24&&o<=59&&a<=59&&(s!==24||o===0&&a===0),g=l===null||c!==null&&l<=15&&c<=59;return p&&f&&g}var se,Xn=F(()=>{ot();se=class extends H{get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR datetime(${t}) IS NOT NULL`}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!Gl(t)?this.validationFail("Invalid timestamp.","Patch rows with ISO timestamps."):this.validationPass()}};});var oe,Jn=F(()=>{ot();oe=class extends H{get isShimBacked(){return true}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||t.trim().length===0?this.validationFail("Expected interval text.","Patch rows with interval strings."):/^-?\d+(?:\.\d+)?$/.test(t.trim())?this.validationFail("Ambiguous numeric interval.","Patch rows with explicit interval strings."):this.validationPass()}};});var ae,Qn=F(()=>{ot();ae=class extends H{enumValues;constructor(t,n){super(t),this.enumValues=n;}get isShimBacked(){return true}checkConstraint(){let t=this.context.column,n=this.enumValues.map(r=>`'${r.replace(/'/g,"''")}'`).join(", ");return `${t} IN (${n})`}serialize(t){if(this.isNullish(t))return t;if(typeof t!="string"||!this.enumValues.includes(t))throw this.checkError("enum_membership",t);return t}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!this.enumValues.includes(t)?this.validationFail("Invalid enum value.","Patch rows with declared enum values."):this.validationPass()}};});function Oi(e){try{return {ok:!0,value:JSON.parse(e)}}catch{return {ok:false}}}var Lt,Zn=F(()=>{pt();Lt=class extends V{elementField;constructor(t,n){super(t),this.elementField=n;}get sqliteType(){return "TEXT"}get isShimBacked(){return true}checkConstraint(){let t=this.context.column;return `${t} IS NULL OR (json_valid(${t}) AND json_type(${t}) = 'array')`}serialize(t){if(this.isNullish(t))return t;if(!Array.isArray(t))throw this.checkError("array_type",t);return this.elementField?JSON.stringify(t.map(n=>this.elementField.serialize(n))):JSON.stringify(t)}deserialize(t){if(this.isNullish(t))return t;if(typeof t=="string"){let n=Oi(t);if(n.ok&&Array.isArray(n.value))return this.elementField?n.value.map(r=>this.elementField.deserialize(r)):n.value}return t}validateStorage(t){if(this.isNullish(t))return this.validationPass();if(typeof t!="string")return this.validationFail("Expected JSON array text.","Patch rows with array values.");let n=Oi(t);if(!n.ok)return this.validationFail("Invalid JSON array text.","Patch rows with array values.");if(!Array.isArray(n.value))return this.validationFail("Expected JSON array.","Patch rows with array values.");if(this.elementField)for(let r of n.value){let i=this.elementField.validateStorage(r);if(i.status==="fail")return this.validationFail(`Invalid ${this.elementField.context.pgTypeName} array element.`,i.action??"Patch rows with valid array elements.")}return this.validationPass()}};});function Ii(e){return Yl.test(e.toLowerCase())}var Kl,Yl,le,tr=F(()=>{ot();Kl="????????-????-????-????-????????????",Yl=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;le=class extends H{get isShimBacked(){return true}checkConstraint(){let t=this.quoteIfNeeded(this.context.column);return `${t} IS NULL OR ${t} GLOB '${Kl}'`}serialize(t){if(this.isNullish(t))return t;if(typeof t!="string")throw this.checkError("uuid_format",t);let n=t.toLowerCase();if(!Ii(n))throw this.checkError("uuid_format",t);return n}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!Ii(t)?this.validationFail("Invalid UUID.","Patch rows with valid UUIDs."):this.validationPass()}};});function Xl(e){let t=e.split("/");if(t.length>2)return null;let n=t[0];if(!n)return null;if(t.length===1)return {address:n,prefix:null};let r=t[1];return !r||!/^\d+$/.test(r)?null:{address:n,prefix:Number(r)}}function Jl(e){let t=e.split(".");return t.length!==4?false:t.every(n=>{if(!/^\d+$/.test(n))return false;let r=Number(n);return r>=0&&r<=255})}function Ql(e){if(!e.includes(":"))return false;try{return new URL(`http://[${e}]/`),!0}catch{return false}}function Di(e){let t=Xl(e);return t?Jl(t.address)?t.prefix===null||t.prefix>=0&&t.prefix<=32:Ql(t.address)?t.prefix===null||t.prefix>=0&&t.prefix<=128:false:false}var ce,er=F(()=>{ot();ce=class extends H{get isShimBacked(){return true}checkConstraint(){let t=this.quoteIfNeeded(this.context.column);return `${t} IS NULL OR (length(${t}) BETWEEN 3 AND 49 AND (instr(${t}, '.') > 0 OR instr(${t}, ':') > 0))`}serialize(t){if(this.isNullish(t))return t;if(typeof t!="string")throw this.checkError("inet_format",t);let n=t.trim();if(!Di(n))throw this.checkError("inet_format",t);return n}validateStorage(t){return this.isNullish(t)?this.validationPass():typeof t!="string"||!Di(t.trim())?this.validationFail("Invalid inet address.","Patch rows with valid inet strings."):this.validationPass()}};});var ue,nr=F(()=>{ot();ue=class extends H{serialize(t){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}deserialize(t){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}toColumnDDL(){throw new Error(`Unsupported type "${this.context.pgTypeName}" for ${this.context.table}.${this.context.column}`)}};});function fe(e,t){if(t?.isArray){let r=fe(e,{...t,isArray:false});return new Lt(e,r)}if(t?.enumValues)return new ae(e,t.enumValues);let n=e.pgTypeName.toLowerCase().trim();if(n.startsWith("_")||n.endsWith("[]")){let r=n.startsWith("_")?n.slice(1):n.slice(0,-2),i={...e,pgTypeName:r},s=fe(i);return new Lt(e,s)}return tc.has(n)?new Qt(e):Zl.has(n)?new St(e):ic.has(n)?new ee(e):sc.has(n)?new ne(e):cc.has(n)?new re(e):uc.has(n)?new ie(e):fc.has(n)?new se(e):pc.has(n)?new oe(e):rc.has(n)?new te(e):ec.has(n)?new Zt(e,t?.numericPrecision):oc.has(n)?new le(e):ac.has(n)?new H(e,63):lc.has(n)?new ce(e):nc.has(n)?new H(e,t?.lengthConstraint):new ue(e)}var Zl,tc,ec,nc,rc,ic,sc,oc,ac,lc,cc,uc,fc,pc,ji=F(()=>{Je();qn();Wn();ot();zn();Vn();Gn();Kn();Yn();Xn();Jn();Qn();Zn();tr();er();nr();Zl=new Set(["int2","smallint","int4","integer","int","int8","bigint"]),tc=new Set(["serial","serial4","bigserial","serial8","smallserial","serial2"]),ec=new Set(["float4","real","float8","double precision","numeric","decimal"]),nc=new Set(["text","varchar","character varying","char","character","bpchar"]),rc=new Set(["bytea"]),ic=new Set(["bool","boolean"]),sc=new Set(["json","jsonb"]),oc=new Set(["uuid"]),ac=new Set(["name"]),lc=new Set(["inet"]),cc=new Set(["date"]),uc=new Set(["time","timetz","time without time zone","time with time zone"]),fc=new Set(["timestamp","timestamptz","timestamp without time zone","timestamp with time zone"]),pc=new Set(["interval"]);});var Mi=F(()=>{});var pe,Hi=F(()=>{pe=class{table;schema;fields;constructor(t,n="public",r=new Map){this.table=t,this.schema=n,this.fields=r;}get(t){return this.fields.get(t)}has(t){return this.fields.has(t)}set(t,n){this.fields.set(t,n);}columns(){return Array.from(this.fields.keys())}all(){return Array.from(this.fields.values())}serializeRow(t){let n={};for(let[r,i]of Object.entries(t)){let s=this.fields.get(r);n[r]=s?s.serialize(i):i;}return n}deserializeRow(t){let n={};for(let[r,i]of Object.entries(t)){let s=this.fields.get(r);n[r]=s?s.deserialize(i):i;}return n}applyDefaults(t){let n={...t};for(let[r,i]of this.fields)!(r in n)&&i.context.defaultFn&&(n[r]=i.context.defaultFn());return n}};});var Ui=F(()=>{pt();Bn();Je();qn();Wn();ot();zn();Vn();Gn();Kn();Yn();Xn();Jn();Qn();Zn();tr();er();nr();ji();Mi();Hi();});var Bi={};cs(Bi,{_resetWarnedMissingToClauseForTests:()=>hc,collectComments:()=>bc,collectEnums:()=>mc,collectPolicies:()=>gc,collectSchema:()=>yc,collectTableConstraints:()=>wc,collectVariables:()=>dc});function hc(){rr.clear();}function mc(e){let t=new Map;for(let n of e.stmts??[]){if(!n.stmt||!("CreateEnumStmt"in n.stmt))continue;let r=n.stmt.CreateEnumStmt,i=Et(r.typeName??[]).join(".");if(!i||!r.vals)continue;let s=Et(r.vals);t.set(i.toLowerCase(),s);}return t}function dc(e){let t=new Map;for(let n of e.stmts??[]){if(!n.stmt||!("VariableSetStmt"in n.stmt))continue;let r=n.stmt.VariableSetStmt,i=r.name,s=Pi(r.args?.[0]??{});t.set(i,{value:s,local:r.is_local});}return t}function gc(e){let t=new Ye,n=new Set,r=[];for(let i of e.stmts??[])if(i.stmt){if("CreatePolicyStmt"in i.stmt){let s=i.stmt.CreatePolicyStmt,o=s.table?.relname??"",a=s.table?.schemaname,l={select:"SELECT",insert:"INSERT",update:"UPDATE",delete:"DELETE"},c=s.cmd_name?l[s.cmd_name]??"ALL":"ALL",u=s.permissive===true,p=[],f=false;for(let T of s.roles??[])if("RoleSpec"in T){let v=T.RoleSpec;v.roletype==="ROLESPEC_PUBLIC"?v.location===-1&&(f=true):v.roletype==="ROLESPEC_CSTRING"&&v.rolename&&p.push(v.rolename);}if(f){let T=a?`${a}.${o}`:o,v=s.policy_name??"",_=`${T}::${v}`;rr.has(_)||(rr.add(_),console.warn(`[supalite] policy "${v}" on "${T}" has no TO clause \u2014 applies to all roles (PUBLIC). For clarity, prefer an explicit \`TO <role>\` clause (e.g. \`TO authenticated\`).`));}let g=s.qual?t.deparse(s.qual):void 0,y=s.with_check?t.deparse(s.with_check):void 0,x=new Xe({name:s.policy_name??"",table:o,schema:a,command:c,permissive:u,roles:p,using:g,withCheck:y});r.push(x);}if("AlterTableStmt"in i.stmt){let s=i.stmt.AlterTableStmt;if((s.cmds??[]).some(l=>"AlterTableCmd"in l&&(l.AlterTableCmd.subtype==="AT_EnableRowSecurity"||l.AlterTableCmd.subtype==="AT_ForceRowSecurity"))){let l=s.relation?.relname??"";n.add(l);}}}return {policies:r,tables:n}}function yc(e,t){let n=new Map;for(let r of e.stmts??[]){if(!r.stmt||!("CreateStmt"in r.stmt))continue;let i=r.stmt.CreateStmt,s=i.relation?.relname??"",o=i.relation?.schemaname??"public";if(!s)continue;let a=new pe(s,o);for(let l of i.tableElts??[]){if(!("ColumnDef"in l))continue;let c=l.ColumnDef,u=c.colname;if(!u)continue;let p=c.typeName?.names?.map(E=>E.String?.sval||E.String?.str).filter(Boolean),f=p&&(p.length===2&&p[0]==="pg_catalog"?p[1]:p[0]);if(!f)continue;let g=!!c.typeName?.arrayBounds?.length,y=Array.isArray(c.typeName?.typmods)?c.typeName.typmods:[],x=E=>y[E]?.A_Const?.ival?.ival??y[E]?.A_Const?.val?.ival?.ival,T={isArray:g};if(Ni(f)&&y.length>0){let E=x(0);typeof E=="number"&&E>0&&(T.lengthConstraint=E);}if(ki(f)&&y.length>=2){let E=x(0),$=x(1);typeof E=="number"&&typeof $=="number"&&E>0&&$>=0&&(T.numericPrecision={precision:E,scale:$});}let v=t.get(f.toLowerCase());v&&(T.enumValues=v);let _=Array.isArray(c.constraints)?c.constraints:[],K=_.some(E=>E.Constraint?.contype==="CONSTR_PRIMARY"),rt=vi(f)||_.some(E=>E.Constraint?.contype==="CONSTR_IDENTITY"),z=_.some(E=>E.Constraint?.contype==="CONSTR_NOTNULL"),q=_.find(E=>E.Constraint?.contype==="CONSTR_UNIQUE"),Y=_.find(E=>E.Constraint?.contype==="CONSTR_GENERATED"),S=_.find(E=>E.Constraint?.contype==="CONSTR_FOREIGN"),R=_.find(E=>E.Constraint?.contype==="CONSTR_CHECK"),d;if(S){let E=S.Constraint,$=E.pktable?.relname,m=E.pktable?.schemaname,h=E.pk_attrs?.[0]?.String?.sval;$&&h&&(d={refSchema:m,refTable:$,refColumn:h,constraintName:E.conname||void 0});}let G={schema:o,table:s,column:u,pgTypeName:f,nullable:!z&&!K,defaultValue:null,defaultFn:null,isPrimaryKey:K,isUnique:!!q,isSerial:rt,isGenerated:!!Y,fkRef:d,hasCheck:!!R,checkConstraintName:R?.Constraint?.conname||void 0,uniqueConstraintName:q?.Constraint?.conname||void 0};a.set(u,fe(G,T));}n.set(`${o}.${s}`,a);}return n}function wc(e){let t=[];for(let n of e.stmts??[]){if(!n.stmt||!("CreateStmt"in n.stmt))continue;let r=n.stmt.CreateStmt,i=r.relation?.relname??"",s=r.relation?.schemaname??"public";if(i)for(let o of r.tableElts??[]){if("ColumnDef"in o)continue;let a=o;if(!a.Constraint)continue;let l=a.Constraint,c=l.contype;if(c==="CONSTR_UNIQUE"){let u=(l.keys??[]).map(p=>p.String?.sval??p.String?.str).filter(Boolean);if(u.length===0)continue;t.push({schema:s,table:i,kind:"unique",name:l.conname||void 0,columns:u});}else if(c==="CONSTR_CHECK")t.push({schema:s,table:i,kind:"check",name:l.conname||void 0,columns:[]});else if(c==="CONSTR_FOREIGN"){let u=(l.fk_attrs??[]).map(g=>g.String?.sval??g.String?.str).filter(Boolean),p=(l.pk_attrs??[]).map(g=>g.String?.sval??g.String?.str).filter(Boolean),f=l.pktable?.relname;if(!f)continue;t.push({schema:s,table:i,kind:"foreign_key",name:l.conname||void 0,columns:u,refSchema:l.pktable?.schemaname,refTable:f,refColumns:p});}}}return t}function bc(e){let t=[];for(let n of e.stmts??[]){if(!n.stmt||!("CommentStmt"in n.stmt))continue;let r=n.stmt.CommentStmt,i=r.comment??"";if(!i)continue;let s=r.objtype,o=(r.object?.List?.items??r.object?.items??[]).map(a=>a.String?.sval??a.String?.str).filter(Boolean);if(o.length!==0){if(s==="OBJECT_TABLE"||s==="OBJECT_VIEW"){let[a,l]=o.length>=2?o:["public",o[0]];t.push({schema:a,table:l,text:i});}else if(s==="OBJECT_COLUMN"){let a="public",l,c;o.length>=3?[a,l,c]=o:[l,c]=o,t.push({schema:a,table:l,column:c,text:i});}}}return t}var rr,qi=F(()=>{$i();Ge();Li();Ui();Un();rr=new Set;});function it(e,t){ye.existsSync(e)||(ye.mkdirSync(e,{recursive:true}),t?.());}function wt(e,t,n){ye.existsSync(e)||(ye.writeFileSync(e,t),n?.());}var ft=class e{root;constructor(t,n){let r=n??e.projectDir();this.root=P__default.join(r,t??"");}ensureRoot(){it(this.root);}static homeDir(){return P__default.join(fs.homedir(),".lite")}static projectDir(){return P__default.join(process.cwd(),"supabase")}deleteAll(t=false){try{ye.rmSync(this.root,{recursive:!0});}catch(n){if(!t)throw n}this.ensureRoot();}delete(t,n=false){try{ye.unlinkSync(P__default.join(this.root,t));}catch(r){if(!n)throw r}}write(t,n,r=false){try{this.ensureRoot(),ye.writeFileSync(P__default.join(this.root,t),n);}catch(i){if(!r)throw i}}read(t,n=false){try{return ye.readFileSync(P__default.join(this.root,t),"utf8")}catch(r){if(!n)throw r}}relativePath(t){return t?P__default.relative(process.cwd(),P__default.join(this.root,t)):this.root}path(t){return t?P__default.join(this.root,t):this.root}};var Ot=process.env.SUPALITE_CLOUD_URL??(process.env.LOCAL?"http://localhost:2000":"https://www.lite.dev");var xe=class{root;constructor(t){this.root=t??P__default.join(fs.homedir(),".lite","auth"),it(this.root);}async getItem(t){try{return ye.readFileSync(P__default.join(this.root,t+".json"),"utf8")}catch{return null}}async setItem(t,n){ye.writeFileSync(P__default.join(this.root,t+".json"),n);}async removeItem(t){try{ye.unlinkSync(P__default.join(this.root,t+".json"));}catch{return}}};var At=class{constructor(t){this.config=t;this.tempFs=new ft(".temp",this.config.root),this.projectFs=new ft("supabase",this.config.root),this.schemaFs=new ft("schemas",this.config.root),this.authStorage=this.config.authStorage??new xe(P__default.join(ft.homeDir(),"auth")),this._client=this.config.withSupabaseClient!==false?this.config.client??createClient(this.config.host??Ot,process.env.SUPALITE_CLOUD_ANON_KEY??"...",{auth:{storage:this.authStorage}}):void 0;}tempFs;projectFs;schemaFs;_client;authStorage;async fetch(t,n){if(!this.config.token)throw new Error("Not authenticated, sign in first.");let r=t instanceof URL?t:new URL(t,this.config.host??Ot);return await fetch(r,{...n,headers:{...n?.headers,Authorization:`Bearer ${this.config.token}`}})}};var Rt=class extends At{constructor(n){super(n);this.config=n;}get client(){if(!this._client)throw new Error("Supabase client not initialized");return this._client}projectRef(){return this.tempFs.read("project-ref",true)}projectUrl(n){let r=new URL(this.config.host),i=r.hostname==="localhost"?"supalite.local":r.hostname,s=i.split(".").filter(a=>a!=="www"),o=s.length>=2?s.slice(-2).join("."):i;return `${r.protocol}//${n}.${o}${r.port?`:${r.port}`:""}`}};var mt={config_dir:"supabase",default_db_url:"file:supabase/.temp/data.db",default_db_dir:"supabase/.temp/data"};var Bt=Ft(It());function ws(e,t){let n=e.slice(0,t).split(/\r\n|\n|\r/g);return [n.length,n.pop().length+1]}function bs(e,t,n){let r=e.split(/\r\n|\n|\r/g),i="",s=(Math.log10(t+1)|0)+1;for(let o=t-1;o<=t+1;o++){let a=r[o-1];a&&(i+=o.toString().padEnd(s," "),i+=": ",i+=a,i+=`
13
+ `,o===t&&(i+=" ".repeat(s+n+2),i+=`^
14
+ `));}return i}var A=class extends Error{line;column;codeblock;constructor(t,n){let[r,i]=ws(n.toml,n.ptr),s=bs(n.toml,r,i);super(`Invalid TOML document: ${t}
44
15
 
45
- ${r}`,s),this.line=e,this.column=i,this.codeblock=r;}};function Bn(a,t){let s=0;for(;a[t-++s]==="\\";);return --s&&s%2}function ye(a,t=0,s=a.length){let e=a.indexOf(`
46
- `,t);return a[e-1]==="\r"&&e--,e<=s?e:-1}function It(a,t){for(let s=t;s<a.length;s++){let e=a[s];if(e===`
47
- `)return s;if(e==="\r"&&a[s+1]===`
48
- `)return s+1;if(e<" "&&e!==" "||e==="\x7F")throw new y("control characters are not allowed in comments",{toml:a,ptr:t})}return a.length}function Z(a,t,s,e){let i;for(;(i=a[t])===" "||i===" "||!s&&(i===`
49
- `||i==="\r"&&a[t+1]===`
50
- `);)t++;return e||i!=="#"?t:Z(a,It(a,t),s)}function Ti(a,t,s,e,i=false){if(!e)return t=ye(a,t),t<0?a.length:t;for(let r=t;r<a.length;r++){let n=a[r];if(n==="#")r=ye(a,r);else {if(n===s)return r+1;if(n===e||i&&(n===`
51
- `||n==="\r"&&a[r+1]===`
52
- `))return r}}throw new y("cannot find end of structure",{toml:a,ptr:t})}function Le(a,t){let s=a[t],e=s===a[t+1]&&a[t+1]===a[t+2]?a.slice(t,t+3):s;t+=e.length-1;do t=a.indexOf(e,++t);while(t>-1&&s!=="'"&&Bn(a,t));return t>-1&&(t+=e.length,e.length>1&&(a[t]===s&&t++,a[t]===s&&t++)),t}var Mn=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,xt=class a extends Date{#e=false;#s=false;#t=null;constructor(t){let s=true,e=true,i="Z";if(typeof t=="string"){let r=t.match(Mn);r?(r[1]||(s=false,t=`0000-01-01T${t}`),e=!!r[2],e&&t[10]===" "&&(t=t.replace(" ","T")),r[2]&&+r[2]>23?t="":(i=r[3]||null,t=t.toUpperCase(),!i&&e&&(t+="Z"))):t="";}super(t),isNaN(this.getTime())||(this.#e=s,this.#s=e,this.#t=i);}isDateTime(){return this.#e&&this.#s}isLocal(){return !this.#e||!this.#s||!this.#t}isDate(){return this.#e&&!this.#s}isTime(){return this.#s&&!this.#e}isValid(){return this.#e||this.#s}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#t===null)return t.slice(0,-1);if(this.#t==="Z")return t;let s=+this.#t.slice(1,3)*60+ +this.#t.slice(4,6);return s=this.#t[0]==="-"?s:-s,new Date(this.getTime()-s*6e4).toISOString().slice(0,-1)+this.#t}static wrapAsOffsetDateTime(t,s="Z"){let e=new a(t);return e.#t=s,e}static wrapAsLocalDateTime(t){let s=new a(t);return s.#t=null,s}static wrapAsLocalDate(t){let s=new a(t);return s.#s=false,s.#t=null,s}static wrapAsLocalTime(t){let s=new a(t);return s.#e=false,s.#t=null,s}};var xn=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,qn=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,Vn=/^[+-]?0[0-9_]/,Gn=/^[0-9a-f]{2,8}$/i,Si={b:"\b",t:" ",n:`
53
- `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function Ie(a,t=0,s=a.length){let e=a[t]==="'",i=a[t++]===a[t]&&a[t]===a[t+1];i&&(s-=2,a[t+=2]==="\r"&&t++,a[t]===`
54
- `&&t++);let r=0,n,o="",u=t;for(;t<s-1;){let l=a[t++];if(l===`
55
- `||l==="\r"&&a[t]===`
56
- `){if(!i)throw new y("newlines are not allowed in strings",{toml:a,ptr:t-1})}else if(l<" "&&l!==" "||l==="\x7F")throw new y("control characters are not allowed in strings",{toml:a,ptr:t-1});if(n){if(n=false,l==="x"||l==="u"||l==="U"){let p=a.slice(t,t+=l==="x"?2:l==="u"?4:8);if(!Gn.test(p))throw new y("invalid unicode escape",{toml:a,ptr:r});try{o+=String.fromCodePoint(parseInt(p,16));}catch{throw new y("invalid unicode escape",{toml:a,ptr:r})}}else if(i&&(l===`
57
- `||l===" "||l===" "||l==="\r")){if(t=Z(a,t-1,true),a[t]!==`
58
- `&&a[t]!=="\r")throw new y("invalid escape: only line-ending whitespace may be escaped",{toml:a,ptr:r});t=Z(a,t);}else if(l in Si)o+=Si[l];else throw new y("unrecognized escape sequence",{toml:a,ptr:r});u=t;}else !e&&l==="\\"&&(r=t-1,n=true,o+=a.slice(u,r));}return o+a.slice(u,s-1)}function Ai(a,t,s,e){if(a==="true")return true;if(a==="false")return false;if(a==="-inf")return -1/0;if(a==="inf"||a==="+inf")return 1/0;if(a==="nan"||a==="+nan"||a==="-nan")return NaN;if(a==="-0")return e?0n:0;let i=xn.test(a);if(i||qn.test(a)){if(Vn.test(a))throw new y("leading zeroes are not allowed",{toml:t,ptr:s});a=a.replace(/_/g,"");let n=+a;if(isNaN(n))throw new y("invalid number",{toml:t,ptr:s});if(i){if((i=!Number.isSafeInteger(n))&&!e)throw new y("integer value cannot be represented losslessly",{toml:t,ptr:s});(i||e===true)&&(n=BigInt(a));}return n}let r=new xt(a);if(!r.isValid())throw new y("invalid value",{toml:t,ptr:s});return r}function Wn(a,t,s){let e=a.slice(t,s),i=e.indexOf("#");return i>-1&&(It(a,i),e=e.slice(0,i)),[e.trimEnd(),i]}function qt(a,t,s,e,i){if(e===0)throw new y("document contains excessively nested structures. aborting.",{toml:a,ptr:t});let r=a[t];if(r==="["||r==="{"){let[u,l]=r==="["?Ri(a,t,e,i):Ci(a,t,e,i);if(s){if(l=Z(a,l),a[l]===",")l++;else if(a[l]!==s)throw new y("expected comma or end of structure",{toml:a,ptr:l})}return [u,l]}let n;if(r==='"'||r==="'"){n=Le(a,t);let u=Ie(a,t,n);if(s){if(n=Z(a,n),a[n]&&a[n]!==","&&a[n]!==s&&a[n]!==`
59
- `&&a[n]!=="\r")throw new y("unexpected character encountered",{toml:a,ptr:n});n+=+(a[n]===",");}return [u,n]}n=Ti(a,t,",",s);let o=Wn(a,t,n-+(a[n-1]===","));if(!o[0])throw new y("incomplete key-value declaration: no value specified",{toml:a,ptr:t});return s&&o[1]>-1&&(n=Z(a,t+o[1]),n+=+(a[n]===",")),[Ai(o[0],a,t,i),n]}var Hn=/^[a-zA-Z0-9-_]+[ \t]*$/;function ve(a,t,s="="){let e=t-1,i=[],r=a.indexOf(s,t);if(r<0)throw new y("incomplete key-value: cannot find end of key",{toml:a,ptr:t});do{let n=a[t=++e];if(n!==" "&&n!==" ")if(n==='"'||n==="'"){if(n===a[t+1]&&n===a[t+2])throw new y("multiline strings are not allowed in keys",{toml:a,ptr:t});let o=Le(a,t);if(o<0)throw new y("unfinished string encountered",{toml:a,ptr:t});e=a.indexOf(".",o);let u=a.slice(o,e<0||e>r?r:e),l=ye(u);if(l>-1)throw new y("newlines are not allowed in keys",{toml:a,ptr:t+e+l});if(u.trimStart())throw new y("found extra tokens after the string part",{toml:a,ptr:o});if(r<o&&(r=a.indexOf(s,o),r<0))throw new y("incomplete key-value: cannot find end of key",{toml:a,ptr:t});i.push(Ie(a,t,o));}else {e=a.indexOf(".",t);let o=a.slice(t,e<0||e>r?r:e);if(!Hn.test(o))throw new y("only letter, numbers, dashes and underscores are allowed in keys",{toml:a,ptr:t});i.push(o.trimEnd());}}while(e+1&&e<r);return [i,Z(a,r+1,true,true)]}function Ci(a,t,s,e){let i={},r=new Set,n;for(t++;(n=a[t++])!=="}"&&n;){if(n===",")throw new y("expected value, found comma",{toml:a,ptr:t-1});if(n==="#")t=It(a,t);else if(n!==" "&&n!==" "&&n!==`
60
- `&&n!=="\r"){let o,u=i,l=false,[p,f]=ve(a,t-1);for(let g=0;g<p.length;g++){if(g&&(u=l?u[o]:u[o]={}),o=p[g],(l=Object.hasOwn(u,o))&&(typeof u[o]!="object"||r.has(u[o])))throw new y("trying to redefine an already defined value",{toml:a,ptr:t});!l&&o==="__proto__"&&Object.defineProperty(u,o,{enumerable:true,configurable:true,writable:true});}if(l)throw new y("trying to redefine an already defined value",{toml:a,ptr:t});let[h,E]=qt(a,f,"}",s-1,e);r.add(h),u[o]=h,t=E;}}if(!n)throw new y("unfinished table encountered",{toml:a,ptr:t});return [i,t]}function Ri(a,t,s,e){let i=[],r;for(t++;(r=a[t++])!=="]"&&r;){if(r===",")throw new y("expected value, found comma",{toml:a,ptr:t-1});if(r==="#")t=It(a,t);else if(r!==" "&&r!==" "&&r!==`
61
- `&&r!=="\r"){let n=qt(a,t-1,"]",s-1,e);i.push(n[0]),t=n[1];}}if(!r)throw new y("unfinished array encountered",{toml:a,ptr:t});return [i,t]}function Ni(a,t,s,e){let i=t,r=s,n,o=false,u;for(let l=0;l<a.length;l++){if(l){if(i=o?i[n]:i[n]={},r=(u=r[n]).c,e===0&&(u.t===1||u.t===2))return null;if(u.t===2){let p=i.length-1;i=i[p],r=r[p].c;}}if(n=a[l],(o=Object.hasOwn(i,n))&&r[n]?.t===0&&r[n]?.d)return null;o||(n==="__proto__"&&(Object.defineProperty(i,n,{enumerable:true,configurable:true,writable:true}),Object.defineProperty(r,n,{enumerable:true,configurable:true,writable:true})),r[n]={t:l<a.length-1&&e===2?3:e,d:false,i:0,c:{}});}if(u=r[n],u.t!==e&&!(e===1&&u.t===3)||(e===2&&(u.d||(u.d=true,i[n]=[]),i[n].push(i={}),u.c[u.i++]=u={t:1,d:false,i:0,c:{}}),u.d))return null;if(u.d=true,e===1)i=o?i[n]:i[n]={};else if(e===0&&o)return null;return [n,i,u.c]}function Vt(a,{maxDepth:t=1e3,integersAsBigInt:s}={}){let e={},i={},r=e,n=i;for(let o=Z(a,0);o<a.length;){if(a[o]==="["){let u=a[++o]==="[",l=ve(a,o+=+u,"]");if(u){if(a[l[1]-1]!=="]")throw new y("expected end of table declaration",{toml:a,ptr:l[1]-1});l[1]++;}let p=Ni(l[0],e,i,u?2:1);if(!p)throw new y("trying to redefine an already defined table or value",{toml:a,ptr:o});n=p[2],r=p[1],o=l[1];}else {let u=ve(a,o),l=Ni(u[0],r,n,0);if(!l)throw new y("trying to redefine an already defined table or value",{toml:a,ptr:o});let p=qt(a,u[1],void 0,t,s);l[1][l[0]]=p[0],o=p[1];}if(o=Z(a,o,true),a[o]&&a[o]!==`
62
- `&&a[o]!=="\r")throw new y("each key-value declaration must be followed by an end-of-line",{toml:a,ptr:o});o=Z(a,o);}return e}var bi=/^[a-z0-9-_]+$/i;function Gt(a){let t=typeof a;if(t==="object"){if(Array.isArray(a))return "array";if(a instanceof Date)return "date"}return t}function Jn(a){for(let t=0;t<a.length;t++)if(Gt(a[t])!=="object")return false;return a.length!=0}function ps(a){return JSON.stringify(a).replace(/\x7f/g,"\\u007f")}function cs(a,t,s,e){if(s===0)throw new Error("Could not stringify the object: maximum object depth exceeded");if(t==="number")return isNaN(a)?"nan":a===1/0?"inf":a===-1/0?"-inf":e&&Number.isInteger(a)?a.toFixed(1):a.toString();if(t==="bigint"||t==="boolean")return a.toString();if(t==="string")return ps(a);if(t==="date"){if(isNaN(a.getTime()))throw new TypeError("cannot serialize invalid date");return a.toISOString()}if(t==="object")return Yn(a,s,e);if(t==="array")return Xn(a,s,e)}function Yn(a,t,s){let e=Object.keys(a);if(e.length===0)return "{}";let i="{ ";for(let r=0;r<e.length;r++){let n=e[r];r&&(i+=", "),i+=bi.test(n)?n:ps(n),i+=" = ",i+=cs(a[n],Gt(a[n]),t-1,s);}return i+" }"}function Xn(a,t,s){if(a.length===0)return "[]";let e="[ ";for(let i=0;i<a.length;i++){if(i&&(e+=", "),a[i]===null||a[i]===void 0)throw new TypeError("arrays cannot contain null or undefined values");e+=cs(a[i],Gt(a[i]),t-1,s);}return e+" ]"}function Kn(a,t,s,e){if(s===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="";for(let r=0;r<a.length;r++)i+=`${i&&`
16
+ ${s}`,n),this.line=r,this.column=i,this.codeblock=s;}};function xs(e,t){let n=0;for(;e[t-++n]==="\\";);return --n&&n%2}function Se(e,t=0,n=e.length){let r=e.indexOf(`
17
+ `,t);return e[r-1]==="\r"&&r--,r<=n?r:-1}function Ct(e,t){for(let n=t;n<e.length;n++){let r=e[n];if(r===`
18
+ `)return n;if(r==="\r"&&e[n+1]===`
19
+ `)return n+1;if(r<" "&&r!==" "||r==="\x7F")throw new A("control characters are not allowed in comments",{toml:e,ptr:t})}return e.length}function J(e,t,n,r){let i;for(;(i=e[t])===" "||i===" "||!n&&(i===`
20
+ `||i==="\r"&&e[t+1]===`
21
+ `);)t++;return r||i!=="#"?t:J(e,Ct(e,t),n)}function lr(e,t,n,r,i=false){if(!r)return t=Se(e,t),t<0?e.length:t;for(let s=t;s<e.length;s++){let o=e[s];if(o==="#")s=Se(e,s);else {if(o===n)return s+1;if(o===r||i&&(o===`
22
+ `||o==="\r"&&e[s+1]===`
23
+ `))return s}}throw new A("cannot find end of structure",{toml:e,ptr:t})}function Te(e,t){let n=e[t],r=n===e[t+1]&&e[t+1]===e[t+2]?e.slice(t,t+3):n;t+=r.length-1;do t=e.indexOf(r,++t);while(t>-1&&n!=="'"&&xs(e,t));return t>-1&&(t+=r.length,r.length>1&&(e[t]===n&&t++,e[t]===n&&t++)),t}var _s=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,Dt=class e extends Date{#e=false;#n=false;#t=null;constructor(t){let n=true,r=true,i="Z";if(typeof t=="string"){let s=t.match(_s);s?(s[1]||(n=false,t=`0000-01-01T${t}`),r=!!s[2],r&&t[10]===" "&&(t=t.replace(" ","T")),s[2]&&+s[2]>23?t="":(i=s[3]||null,t=t.toUpperCase(),!i&&r&&(t+="Z"))):t="";}super(t),isNaN(this.getTime())||(this.#e=n,this.#n=r,this.#t=i);}isDateTime(){return this.#e&&this.#n}isLocal(){return !this.#e||!this.#n||!this.#t}isDate(){return this.#e&&!this.#n}isTime(){return this.#n&&!this.#e}isValid(){return this.#e||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#t===null)return t.slice(0,-1);if(this.#t==="Z")return t;let n=+this.#t.slice(1,3)*60+ +this.#t.slice(4,6);return n=this.#t[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#t}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#t=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#t=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=false,n.#t=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#e=false,n.#t=null,n}};var Es=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,Ss=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,Ts=/^[+-]?0[0-9_]/,As=/^[0-9a-f]{2,8}$/i,cr={b:"\b",t:" ",n:`
24
+ `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function Ae(e,t=0,n=e.length){let r=e[t]==="'",i=e[t++]===e[t]&&e[t]===e[t+1];i&&(n-=2,e[t+=2]==="\r"&&t++,e[t]===`
25
+ `&&t++);let s=0,o,a="",l=t;for(;t<n-1;){let c=e[t++];if(c===`
26
+ `||c==="\r"&&e[t]===`
27
+ `){if(!i)throw new A("newlines are not allowed in strings",{toml:e,ptr:t-1})}else if(c<" "&&c!==" "||c==="\x7F")throw new A("control characters are not allowed in strings",{toml:e,ptr:t-1});if(o){if(o=false,c==="x"||c==="u"||c==="U"){let u=e.slice(t,t+=c==="x"?2:c==="u"?4:8);if(!As.test(u))throw new A("invalid unicode escape",{toml:e,ptr:s});try{a+=String.fromCodePoint(parseInt(u,16));}catch{throw new A("invalid unicode escape",{toml:e,ptr:s})}}else if(i&&(c===`
28
+ `||c===" "||c===" "||c==="\r")){if(t=J(e,t-1,true),e[t]!==`
29
+ `&&e[t]!=="\r")throw new A("invalid escape: only line-ending whitespace may be escaped",{toml:e,ptr:s});t=J(e,t);}else if(c in cr)a+=cr[c];else throw new A("unrecognized escape sequence",{toml:e,ptr:s});l=t;}else !r&&c==="\\"&&(s=t-1,o=true,a+=e.slice(l,s));}return a+e.slice(l,n-1)}function ur(e,t,n,r){if(e==="true")return true;if(e==="false")return false;if(e==="-inf")return -1/0;if(e==="inf"||e==="+inf")return 1/0;if(e==="nan"||e==="+nan"||e==="-nan")return NaN;if(e==="-0")return r?0n:0;let i=Es.test(e);if(i||Ss.test(e)){if(Ts.test(e))throw new A("leading zeroes are not allowed",{toml:t,ptr:n});e=e.replace(/_/g,"");let o=+e;if(isNaN(o))throw new A("invalid number",{toml:t,ptr:n});if(i){if((i=!Number.isSafeInteger(o))&&!r)throw new A("integer value cannot be represented losslessly",{toml:t,ptr:n});(i||r===true)&&(o=BigInt(e));}return o}let s=new Dt(e);if(!s.isValid())throw new A("invalid value",{toml:t,ptr:n});return s}function Rs(e,t,n){let r=e.slice(t,n),i=r.indexOf("#");return i>-1&&(Ct(e,i),r=r.slice(0,i)),[r.trimEnd(),i]}function jt(e,t,n,r,i){if(r===0)throw new A("document contains excessively nested structures. aborting.",{toml:e,ptr:t});let s=e[t];if(s==="["||s==="{"){let[l,c]=s==="["?pr(e,t,r,i):fr(e,t,r,i);if(n){if(c=J(e,c),e[c]===",")c++;else if(e[c]!==n)throw new A("expected comma or end of structure",{toml:e,ptr:c})}return [l,c]}let o;if(s==='"'||s==="'"){o=Te(e,t);let l=Ae(e,t,o);if(n){if(o=J(e,o),e[o]&&e[o]!==","&&e[o]!==n&&e[o]!==`
30
+ `&&e[o]!=="\r")throw new A("unexpected character encountered",{toml:e,ptr:o});o+=+(e[o]===",");}return [l,o]}o=lr(e,t,",",n);let a=Rs(e,t,o-+(e[o-1]===","));if(!a[0])throw new A("incomplete key-value declaration: no value specified",{toml:e,ptr:t});return n&&a[1]>-1&&(o=J(e,t+a[1]),o+=+(e[o]===",")),[ur(a[0],e,t,i),o]}var Cs=/^[a-zA-Z0-9-_]+[ \t]*$/;function Re(e,t,n="="){let r=t-1,i=[],s=e.indexOf(n,t);if(s<0)throw new A("incomplete key-value: cannot find end of key",{toml:e,ptr:t});do{let o=e[t=++r];if(o!==" "&&o!==" ")if(o==='"'||o==="'"){if(o===e[t+1]&&o===e[t+2])throw new A("multiline strings are not allowed in keys",{toml:e,ptr:t});let a=Te(e,t);if(a<0)throw new A("unfinished string encountered",{toml:e,ptr:t});r=e.indexOf(".",a);let l=e.slice(a,r<0||r>s?s:r),c=Se(l);if(c>-1)throw new A("newlines are not allowed in keys",{toml:e,ptr:t+r+c});if(l.trimStart())throw new A("found extra tokens after the string part",{toml:e,ptr:a});if(s<a&&(s=e.indexOf(n,a),s<0))throw new A("incomplete key-value: cannot find end of key",{toml:e,ptr:t});i.push(Ae(e,t,a));}else {r=e.indexOf(".",t);let a=e.slice(t,r<0||r>s?s:r);if(!Cs.test(a))throw new A("only letter, numbers, dashes and underscores are allowed in keys",{toml:e,ptr:t});i.push(a.trimEnd());}}while(r+1&&r<s);return [i,J(e,s+1,true,true)]}function fr(e,t,n,r){let i={},s=new Set,o;for(t++;(o=e[t++])!=="}"&&o;){if(o===",")throw new A("expected value, found comma",{toml:e,ptr:t-1});if(o==="#")t=Ct(e,t);else if(o!==" "&&o!==" "&&o!==`
31
+ `&&o!=="\r"){let a,l=i,c=false,[u,p]=Re(e,t-1);for(let y=0;y<u.length;y++){if(y&&(l=c?l[a]:l[a]={}),a=u[y],(c=Object.hasOwn(l,a))&&(typeof l[a]!="object"||s.has(l[a])))throw new A("trying to redefine an already defined value",{toml:e,ptr:t});!c&&a==="__proto__"&&Object.defineProperty(l,a,{enumerable:true,configurable:true,writable:true});}if(c)throw new A("trying to redefine an already defined value",{toml:e,ptr:t});let[f,g]=jt(e,p,"}",n-1,r);s.add(f),l[a]=f,t=g;}}if(!o)throw new A("unfinished table encountered",{toml:e,ptr:t});return [i,t]}function pr(e,t,n,r){let i=[],s;for(t++;(s=e[t++])!=="]"&&s;){if(s===",")throw new A("expected value, found comma",{toml:e,ptr:t-1});if(s==="#")t=Ct(e,t);else if(s!==" "&&s!==" "&&s!==`
32
+ `&&s!=="\r"){let o=jt(e,t-1,"]",n-1,r);i.push(o[0]),t=o[1];}}if(!s)throw new A("unfinished array encountered",{toml:e,ptr:t});return [i,t]}function hr(e,t,n,r){let i=t,s=n,o,a=false,l;for(let c=0;c<e.length;c++){if(c){if(i=a?i[o]:i[o]={},s=(l=s[o]).c,r===0&&(l.t===1||l.t===2))return null;if(l.t===2){let u=i.length-1;i=i[u],s=s[u].c;}}if(o=e[c],(a=Object.hasOwn(i,o))&&s[o]?.t===0&&s[o]?.d)return null;a||(o==="__proto__"&&(Object.defineProperty(i,o,{enumerable:true,configurable:true,writable:true}),Object.defineProperty(s,o,{enumerable:true,configurable:true,writable:true})),s[o]={t:c<e.length-1&&r===2?3:r,d:false,i:0,c:{}});}if(l=s[o],l.t!==r&&!(r===1&&l.t===3)||(r===2&&(l.d||(l.d=true,i[o]=[]),i[o].push(i={}),l.c[l.i++]=l={t:1,d:false,i:0,c:{}}),l.d))return null;if(l.d=true,r===1)i=a?i[o]:i[o]={};else if(r===0&&a)return null;return [o,i,l.c]}function Mt(e,{maxDepth:t=1e3,integersAsBigInt:n}={}){let r={},i={},s=r,o=i;for(let a=J(e,0);a<e.length;){if(e[a]==="["){let l=e[++a]==="[",c=Re(e,a+=+l,"]");if(l){if(e[c[1]-1]!=="]")throw new A("expected end of table declaration",{toml:e,ptr:c[1]-1});c[1]++;}let u=hr(c[0],r,i,l?2:1);if(!u)throw new A("trying to redefine an already defined table or value",{toml:e,ptr:a});o=u[2],s=u[1],a=c[1];}else {let l=Re(e,a),c=hr(l[0],s,o,0);if(!c)throw new A("trying to redefine an already defined table or value",{toml:e,ptr:a});let u=jt(e,l[1],void 0,t,n);c[1][c[0]]=u[0],a=u[1];}if(a=J(e,a,true),e[a]&&e[a]!==`
33
+ `&&e[a]!=="\r")throw new A("each key-value declaration must be followed by an end-of-line",{toml:e,ptr:a});a=J(e,a);}return r}var mr=/^[a-z0-9-_]+$/i;function Ht(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return "array";if(e instanceof Date)return "date"}return t}function Ps(e){for(let t=0;t<e.length;t++)if(Ht(e[t])!=="object")return false;return e.length!=0}function rn(e){return JSON.stringify(e).replace(/\x7f/g,"\\u007f")}function sn(e,t,n,r){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");if(t==="number")return isNaN(e)?"nan":e===1/0?"inf":e===-1/0?"-inf":r&&Number.isInteger(e)?e.toFixed(1):e.toString();if(t==="bigint"||t==="boolean")return e.toString();if(t==="string")return rn(e);if(t==="date"){if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString()}if(t==="object")return vs(e,n,r);if(t==="array")return Ns(e,n,r)}function vs(e,t,n){let r=Object.keys(e);if(r.length===0)return "{}";let i="{ ";for(let s=0;s<r.length;s++){let o=r[s];s&&(i+=", "),i+=mr.test(o)?o:rn(o),i+=" = ",i+=sn(e[o],Ht(e[o]),t-1,n);}return i+" }"}function Ns(e,t,n){if(e.length===0)return "[]";let r="[ ";for(let i=0;i<e.length;i++){if(i&&(r+=", "),e[i]===null||e[i]===void 0)throw new TypeError("arrays cannot contain null or undefined values");r+=sn(e[i],Ht(e[i]),t-1,n);}return r+" ]"}function ks(e,t,n,r){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="";for(let s=0;s<e.length;s++)i+=`${i&&`
63
34
  `}[[${t}]]
64
- `,i+=fs(0,a[r],t,s,e);return i}function fs(a,t,s,e,i){if(e===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let r="",n="",o=Object.keys(t);for(let u=0;u<o.length;u++){let l=o[u];if(t[l]!==null&&t[l]!==void 0){let p=Gt(t[l]);if(p==="symbol"||p==="function")throw new TypeError(`cannot serialize values of type '${p}'`);let f=bi.test(l)?l:ps(l);if(p==="array"&&Jn(t[l]))n+=(n&&`
65
- `)+Kn(t[l],s?`${s}.${f}`:f,e-1,i);else if(p==="object"){let h=s?`${s}.${f}`:f;n+=(n&&`
66
- `)+fs(h,t[l],h,e-1,i);}else r+=f,r+=" = ",r+=cs(t[l],p,e,i),r+=`
67
- `;}}return a&&(r||!n)&&(r=r?`[${a}]
68
- ${r}`:`[${a}]`),r&&n?`${r}
69
- ${n}`:r||n}function hs(a,{maxDepth:t=1e3,numbersAsFloat:s=false}={}){if(Gt(a)!=="object")throw new TypeError("stringify can only be called with an object");let e=fs(0,a,"",t,s);return e[e.length-1]!==`
70
- `?e+`
71
- `:e}var zn={storage:"EXPERIMENTAL_STORAGE",cloud:"EXPERIMENTAL_CLOUD"},Qn=["storage","cloud"];Object.fromEntries(Qn.map(a=>[a,Zn(a)]));function Zn(a){let t=typeof process<"u"&&process.env||void 0;return t?t.NODE_ENV==="test"?true:t[zn[a]]==="1":false}function De(a){let t=[],s="",e=0,i=a.length,r=n=>{ea(n).length>0&&t.push(n.trim());};for(;e<i;){let n=a[e],o=a[e+1];if(n==="-"&&o==="-"){for(;e<i&&a[e]!==`
72
- `;)s+=a[e],e++;continue}if(n==="/"&&o==="*"){for(s+="/*",e+=2;e<i&&!(a[e]==="*"&&a[e+1]==="/");)s+=a[e],e++;e<i&&(s+="*/",e+=2);continue}if(n==="'"){for(s+=n,e++;e<i;){if(a[e]==="'"&&a[e+1]==="'"){s+="''",e+=2;continue}if(s+=a[e],a[e]==="'"){e++;break}e++;}continue}if(n==='"'){for(s+=n,e++;e<i;){if(a[e]==='"'&&a[e+1]==='"'){s+='""',e+=2;continue}if(s+=a[e],a[e]==='"'){e++;break}e++;}continue}if(n==="$"){let u=a.indexOf("$",e+1);if(u!==-1){let l=a.slice(e,u+1);if(/^\$[A-Za-z_][A-Za-z0-9_]*\$$|^\$\$$/.test(l)){s+=l,e=u+1;let f=a.indexOf(l,e);f===-1?(s+=a.slice(e),e=i):(s+=a.slice(e,f+l.length),e=f+l.length);continue}}}if(n===";"){r(s),s="",e++;continue}s+=n,e++;}return r(s),t}function ea(a){let t="",s=0,e=a.length;for(;s<e;){let i=a[s],r=a[s+1];if(i==="-"&&r==="-"){for(;s<e&&a[s]!==`
73
- `;)s++;continue}if(i==="/"&&r==="*"){for(s+=2;s<e&&!(a[s]==="*"&&a[s+1]==="/");)s++;s+=2;continue}t+=i,s++;}return t.trim()}function ms(a){return typeof a=="number"?a:Number.parseInt(String(a),10)}var $e=class{driver=G;basePath;constructor(t){this.basePath=v.resolve(t.basePath);}filePath(t,s){return v.join(this.basePath,t,s)}async ensureDir(t){await G.mkdir(v.dirname(t),{recursive:true});}async getObject(t,s,e,i){let r=this.filePath(t,s),n=await G.stat(r),o=`"${createHash("md5").update(`${r}:${n.mtimeMs}`).digest("hex")}"`;if(i?.ifNoneMatch===o)return {httpStatusCode:304,metadata:this.buildMetadata(n,o,s)};if(i?.ifModifiedSince){let h=new Date(i.ifModifiedSince);if(n.mtime<=h)return {httpStatusCode:304,metadata:this.buildMetadata(n,o,s)}}let u,l,p=n.size,f=200;if(i?.range){let h=i.range.match(/^bytes=(\d+)-(\d*)$/);if(h){let E=Number.parseInt(h[1],10),g=h[2]?Number.parseInt(h[2],10):n.size-1;p=g-E+1,l=`bytes ${E}-${g}/${n.size}`,f=206,u=(await G.open(r,"r")).readableWebStream();}else u=(await G.open(r,"r")).readableWebStream();}else u=(await G.open(r,"r")).readableWebStream();return {httpStatusCode:f,metadata:{...this.buildMetadata(n,o,s),contentLength:p,contentRange:l},body:u}}async uploadObject(t,s,e,i,r,n){let o=this.filePath(t,s);await this.ensureDir(o);let u;if(i instanceof Uint8Array||Buffer.isBuffer(i))u=i;else {let f=[],h=i.getReader();for(;;){let{done:E,value:g}=await h.read();if(E)break;f.push(g);}u=Buffer.concat(f);}await G.writeFile(o,u);let l=await G.stat(o),p=`"${createHash("md5").update(u).digest("hex")}"`;return {cacheControl:n,contentLength:l.size,size:l.size,mimetype:r,lastModified:l.mtime,eTag:p}}async deleteObject(t,s,e){let i=this.filePath(t,s);await G.unlink(i).catch(r=>{if(r.code!=="ENOENT")throw r});}async deleteObjects(t,s){for(let e of s)await this.deleteObject(t,e,void 0);}async copyObject(t,s,e,i,r){let n=this.filePath(t,s),o=this.filePath(t,i);await this.ensureDir(o),await G.copyFile(n,o);let u=await G.stat(o),l=await G.readFile(o);return {httpStatusCode:200,eTag:`"${createHash("md5").update(l).digest("hex")}"`,lastModified:u.mtime}}async headObject(t,s,e){let i=this.filePath(t,s),r=await G.stat(i),n=`"${createHash("md5").update(`${i}:${r.mtimeMs}`).digest("hex")}"`;return this.buildMetadata(r,n,s)}async privateAssetUrl(t,s,e){return `file://${this.filePath(t,s)}`}buildMetadata(t,s,e){return {cacheControl:"no-cache",contentLength:ms(t.size),size:ms(t.size),mimetype:sa(e),lastModified:t.mtime,eTag:s}}};function sa(a){let t=v.extname(a).toLowerCase();return {".html":"text/html",".css":"text/css",".js":"application/javascript",".json":"application/json",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".avif":"image/avif",".pdf":"application/pdf",".txt":"text/plain",".xml":"application/xml",".zip":"application/zip",".mp4":"video/mp4",".webm":"video/webm",".mp3":"audio/mpeg",".wav":"audio/wav",".woff":"font/woff",".woff2":"font/woff2"}[t]??"application/octet-stream"}var ia=new Function("spec","return import(spec)");async function Es(a,t,s){try{return await ia(a)}catch(e){throw e?.code==="ERR_MODULE_NOT_FOUND"||/Cannot find package/.test(String(e?.message))?new Error(`Driver '${t}' selected but '${s}' is not installed. Run: bun add ${s}`):e}}function _i(a,t={}){let s=v__default.resolve(t.cwd??process.cwd()),e=t.env??process.env,i=process.env.SUPABASE_ENV||"development",r=[`.env.${i}.local`,i==="test"?null:".env.local",`.env.${i}`,".env"].filter(o=>o!==null),n=aa(v__default.resolve(a),s);for(let o of n)for(let u of r){let l=v__default.join(o,u),p;try{p=Ne.readFileSync(l,"utf-8");}catch{continue}let f;try{f=parse(p);}catch(h){throw new Error(`Failed to parse ${l}: ${h.message}`)}for(let[h,E]of Object.entries(f))e[h]===void 0&&(e[h]=E);}}function aa(a,t){let s=[],e=a,i=v__default.parse(e).root;for(;s.push(e),!(e===t||e===i);){let r=v__default.dirname(e);if(r===e)break;e=r;}return s}var oa=/^env\((\w+)\)$/;function wi(a,t=process.env){return gs(a,t)}function gs(a,t){if(typeof a=="string"){let s=a.match(oa);return s?t[s[1]]??"":a}if(Array.isArray(a))return a.map(s=>gs(s,t));if(a&&typeof a=="object"){let s={};for(let[e,i]of Object.entries(a))s[e]=gs(i,t);return s}return a}var la=["toml","json","ts","mts","js","mjs","cjs"],je=class extends Lt{ref(){return this.projectRef()}setRef(t){return this.tempFs.write("project-ref",t),this}link(t){return this.setRef(t.id),t}unlink(){return this.tempFs.delete("project-ref"),this}url(){let t=this.ref();if(!t)throw new Error("No project linked");return this.projectUrl(t)}async getConfigPath(t){let s=v__default.relative(process.cwd(),gt.config_dir);if(!t)for(let e of la){let i=v__default.join(s,`config.${e}`);if(await G__default.access(i).then(()=>true).catch(()=>false)){t=i;break}}return t}async readConfig(t){let s=await this.getConfigPath(t);if(!s)return {};console.log(Ht.default.dim(`Using config file: ${Ht.default.cyan(`./${s}`)}`));let e=v__default.dirname(v__default.resolve(s));_i(e);let i=s.split(".").pop(),r;switch(i){case "toml":r=Vt(await G__default.readFile(s,"utf-8"));break;case "json":r=JSON.parse(await G__default.readFile(s,"utf-8"));break;case "ts":case "mts":case "js":case "mjs":case "cjs":try{r=(await import(v__default.join(process.cwd(),s))).default;break}catch(n){throw console.error("Failed to import config file",n),n}default:throw new Error(`Unsupported config file type: ${s}`)}return wi(r)}async createConnection(){throw new Error("Not implemented")}async getConfig(t){let s=await this.readConfig(t);if("connection"in s)return {...s,connection:await s.connection};let e,i;switch(s.db?.driver){case "sqlite":i=s.db?.url??gt.default_db_url,e=await createConnection({url:i,ddlDialect:"sqlite"});break;case "pglite":{i=s.db?.url??v__default.join(process.cwd(),gt.default_db_dir);let{createPgliteConnection:r}=await Es("@supabase/lite/pglite","pglite","@electric-sql/pglite");e=await r({url:i});break}case "postgres":{i=s.db?.url??"";let{createPostgresConnection:r}=await Es("@supabase/lite/postgres","postgres","postgres");e=await r({url:i});break}default:i=s.db?.url??gt.default_db_url,e=await createConnection({url:i,ddlDialect:"postgres"});break}if(!e)throw new Error("Failed to create connection");return console.log(Ht.default.green(" \u279C"),"Database located at",Ht.default.cyan(i??"in-memory")),{...s,connection:e}}async createApp(t){let s=await this.getConfig(t),e=new App(s);return e.config.storage?.enabled&&process.env.EXPERIMENTAL_STORAGE==="1"&&!e._storageAdapter&&(e._storageAdapter=new $e({basePath:v__default.join(process.cwd(),gt.config_dir,".temp/storage")})),await e.init()}};var ke=class extends Lt{url(t){return this.projectUrl(t)}async ping(){return (await this.fetch("/v1/system/ping")).ok}async list(){let t=await this.fetch("/v1/projects");if(!t.ok)throw new Error("Failed to list projects");let s=await t.json();if(!s||!s.data)throw new Error("Failed to list projects");return s.data}async get(t){if(t=t??this.projectRef(),!t)throw new Error("No project ref found");let s=await this.fetch(`/v1/projects/${t}`);if(!s.ok)throw new Error(`Failed to get project: ${s.status} ${s.statusText}`);let e=await s.json();if(!e||!e.id)throw new Error("Failed to get project");return e}async create(t={}){let s=await this.fetch("/v1/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok)throw new Error(`Failed to create project: ${s.status} ${s.statusText}`);let e=await s.json();if(!e.data||!e.data.id)throw new Error("Failed to create project");return e.data}async getConfig(t){let s=await this.fetch(`/v1/projects/${t}/config`);if(!s.ok)throw new Error(`Failed to get project config: ${s.status} ${s.statusText}`);let e=await s.json();if(!e)throw new Error("Failed to get project config");return e}async setConfig(t,s){let e=await this.fetch(`/v1/projects/${t}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!e.ok)throw new Error(`Failed to set project config: ${e.status} ${e.statusText}`);return true}async createApp(t){if(!this.config.host)throw new Error("No host specified");let{data:s,error:e}=await this.client.auth.getSession();if(e)throw e;if(!s?.session?.access_token)throw new Error("Not authenticated, sign in first.");let i=await this.getConfig(t);return await new App({...i.config,connection:cloud({projectRef:t,token:s.session.access_token,host:this.config.host})}).init()}};var Fe=class extends yt{project;get client(){if(!this._client)throw new Error("Supabase client not initialized");return this._client}async getSession(){return await this.client.auth.getSession()}async getAccessToken(){let{data:t,error:s}=await this.getSession();if(s)throw s;return t?.session?.access_token}async requireSession(){let t=await this.getAccessToken();if(!t)throw new Error("Not authenticated, sign in first.");return t}async init(){let t={...this.config};return this.config.withSupabaseClient!==false&&(t.client=this.client,t.token=await this.getAccessToken()),this.project={local:new je(t),remote:new ke(t)},this}};async function fa(a={}){return await new Fe({host:Bt,root:ht.projectDir(),...a}).init()}var Rs=Ut(Mt());var As=Ut(Mt());var ha=["toml","json","ts","mts","js","mjs","cjs"];async function Be(a){let t=v__default.relative(process.cwd(),gt.config_dir);if(!a)for(let s of ha){let e=v__default.join(t,`config.${s}`);if(await G__default.access(e).then(()=>true).catch(()=>false)){a=e;break}}return a}async function yi(a){let t=await Be(a);if(!t)return {};switch(console.log(As.default.dim(`Using config file: ${As.default.cyan(`./${t}`)}`)),t.split(".").pop()){case "toml":return Vt(await G__default.readFile(t,"utf-8"));case "json":return JSON.parse(await G__default.readFile(t,"utf-8"));case "ts":case "mts":case "js":case "mjs":case "cjs":try{return (await import(v__default.join(process.cwd(),t))).default}catch(e){throw console.error("Failed to import config file",e),e}default:throw new Error(`Unsupported config file type: ${t}`)}}function Li(a){if(!a||a===":memory:")return;let t=a;if(t.startsWith("file://")?t=t.slice(7):t.startsWith("file:")&&(t=t.slice(5)),!(!t||t===":memory:"))return v__default.resolve(process.cwd(),t)}async function ma(a={}){let t=process.cwd();if(a.recreate){console.log(Rs.default.dim("Recreating database..."));try{let e=await Be();if(e&&!/\.(ts|mts|js|mjs|cjs)$/.test(e)){let r=(await yi(e))?.db?.url,n=r?Li(r):void 0;n&&Ne.existsSync(n)&&(Ne.rmSync(n,{recursive:!0,force:!0}),console.log(Rs.default.dim(` \u279C removed ${v__default.relative(t,n)}`)));}}catch{}try{Ne.rmSync(v__default.join(t,"supabase",".temp"),{recursive:!0,force:!0});}catch{}}if(at(v__default.join(t,"supabase")),!await Be()){let e={db:{driver:"sqlite-postgres",url:"file:./supabase/.temp/data.db"},auth:{enabled:true}};a.driver==="pglite"&&(e.db.driver="pglite",e.db.url=v__default.relative(process.cwd(),v__default.join(t,"supabase",".temp","data")));let i=a.configFormat??"toml",r=v__default.join(t,"supabase",`config.${i}`);i==="json"?Rt(r,JSON.stringify(e)):Rt(r,hs(e));}at(v__default.join(t,"supabase",".temp")),at(v__default.join(t,"supabase","schemas"),()=>{Rt(v__default.join(t,"supabase","schemas","schema.sql"),a.template?Ea:`-- This is a schema file for the database
74
- `);}),Rt(v__default.join(t,"supabase","seed.sql"),a.template?ga:`-- This is a seed file for the database
75
- `);}var Ea=`
35
+ `,i+=on(0,e[s],t,n,r);return i}function on(e,t,n,r,i){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let s="",o="",a=Object.keys(t);for(let l=0;l<a.length;l++){let c=a[l];if(t[c]!==null&&t[c]!==void 0){let u=Ht(t[c]);if(u==="symbol"||u==="function")throw new TypeError(`cannot serialize values of type '${u}'`);let p=mr.test(c)?c:rn(c);if(u==="array"&&Ps(t[c]))o+=(o&&`
36
+ `)+ks(t[c],n?`${n}.${p}`:p,r-1,i);else if(u==="object"){let f=n?`${n}.${p}`:p;o+=(o&&`
37
+ `)+on(f,t[c],f,r-1,i);}else s+=p,s+=" = ",s+=sn(t[c],u,r,i),s+=`
38
+ `;}}return e&&(s||!o)&&(s=s?`[${e}]
39
+ ${s}`:`[${e}]`),s&&o?`${s}
40
+ ${o}`:s||o}function an(e,{maxDepth:t=1e3,numbersAsFloat:n=false}={}){if(Ht(e)!=="object")throw new TypeError("stringify can only be called with an object");let r=on(0,e,"",t,n);return r[r.length-1]!==`
41
+ `?r+`
42
+ `:r}var $s={storage:"EXPERIMENTAL_STORAGE",cloud:"EXPERIMENTAL_CLOUD"},Ls=["storage","cloud"];Object.fromEntries(Ls.map(e=>[e,Fs(e)]));function Fs(e){let t=typeof process<"u"&&process.env||void 0;return t?t.NODE_ENV==="test"?true:t[$s[e]]==="1":false}function Ce(e){let t=[],n="",r=0,i=e.length,s=o=>{Is(o).length>0&&t.push(o.trim());};for(;r<i;){let o=e[r],a=e[r+1];if(o==="-"&&a==="-"){for(;r<i&&e[r]!==`
43
+ `;)n+=e[r],r++;continue}if(o==="/"&&a==="*"){for(n+="/*",r+=2;r<i&&!(e[r]==="*"&&e[r+1]==="/");)n+=e[r],r++;r<i&&(n+="*/",r+=2);continue}if(o==="'"){for(n+=o,r++;r<i;){if(e[r]==="'"&&e[r+1]==="'"){n+="''",r+=2;continue}if(n+=e[r],e[r]==="'"){r++;break}r++;}continue}if(o==='"'){for(n+=o,r++;r<i;){if(e[r]==='"'&&e[r+1]==='"'){n+='""',r+=2;continue}if(n+=e[r],e[r]==='"'){r++;break}r++;}continue}if(o==="$"){let l=e.indexOf("$",r+1);if(l!==-1){let c=e.slice(r,l+1);if(/^\$[A-Za-z_][A-Za-z0-9_]*\$$|^\$\$$/.test(c)){n+=c,r=l+1;let p=e.indexOf(c,r);p===-1?(n+=e.slice(r),r=i):(n+=e.slice(r,p+c.length),r=p+c.length);continue}}}if(o===";"){s(n),n="",r++;continue}n+=o,r++;}return s(n),t}function Is(e){let t="",n=0,r=e.length;for(;n<r;){let i=e[n],s=e[n+1];if(i==="-"&&s==="-"){for(;n<r&&e[n]!==`
44
+ `;)n++;continue}if(i==="/"&&s==="*"){for(n+=2;n<r&&!(e[n]==="*"&&e[n+1]==="/");)n++;n+=2;continue}t+=i,n++;}return t.trim()}function ln(e){return typeof e=="number"?e:Number.parseInt(String(e),10)}var ve=class{driver=B;basePath;constructor(t){this.basePath=P.resolve(t.basePath);}filePath(t,n){return P.join(this.basePath,t,n)}async ensureDir(t){await B.mkdir(P.dirname(t),{recursive:true});}async getObject(t,n,r,i){let s=this.filePath(t,n),o=await B.stat(s),a=`"${createHash("md5").update(`${s}:${o.mtimeMs}`).digest("hex")}"`;if(i?.ifNoneMatch===a)return {httpStatusCode:304,metadata:this.buildMetadata(o,a,n)};if(i?.ifModifiedSince){let f=new Date(i.ifModifiedSince);if(o.mtime<=f)return {httpStatusCode:304,metadata:this.buildMetadata(o,a,n)}}let l,c,u=o.size,p=200;if(i?.range){let f=i.range.match(/^bytes=(\d+)-(\d*)$/);if(f){let g=Number.parseInt(f[1],10),y=f[2]?Number.parseInt(f[2],10):o.size-1;u=y-g+1,c=`bytes ${g}-${y}/${o.size}`,p=206,l=(await B.open(s,"r")).readableWebStream();}else l=(await B.open(s,"r")).readableWebStream();}else l=(await B.open(s,"r")).readableWebStream();return {httpStatusCode:p,metadata:{...this.buildMetadata(o,a,n),contentLength:u,contentRange:c},body:l}}async uploadObject(t,n,r,i,s,o){let a=this.filePath(t,n);await this.ensureDir(a);let l;if(i instanceof Uint8Array||Buffer.isBuffer(i))l=i;else {let p=[],f=i.getReader();for(;;){let{done:g,value:y}=await f.read();if(g)break;p.push(y);}l=Buffer.concat(p);}await B.writeFile(a,l);let c=await B.stat(a),u=`"${createHash("md5").update(l).digest("hex")}"`;return {cacheControl:o,contentLength:c.size,size:c.size,mimetype:s,lastModified:c.mtime,eTag:u}}async deleteObject(t,n,r){let i=this.filePath(t,n);await B.unlink(i).catch(s=>{if(s.code!=="ENOENT")throw s});}async deleteObjects(t,n){for(let r of n)await this.deleteObject(t,r,void 0);}async copyObject(t,n,r,i,s){let o=this.filePath(t,n),a=this.filePath(t,i);await this.ensureDir(a),await B.copyFile(o,a);let l=await B.stat(a),c=await B.readFile(a);return {httpStatusCode:200,eTag:`"${createHash("md5").update(c).digest("hex")}"`,lastModified:l.mtime}}async headObject(t,n,r){let i=this.filePath(t,n),s=await B.stat(i),o=`"${createHash("md5").update(`${i}:${s.mtimeMs}`).digest("hex")}"`;return this.buildMetadata(s,o,n)}async privateAssetUrl(t,n,r){return `file://${this.filePath(t,n)}`}buildMetadata(t,n,r){return {cacheControl:"no-cache",contentLength:ln(t.size),size:ln(t.size),mimetype:Ds(r),lastModified:t.mtime,eTag:n}}};function Ds(e){let t=P.extname(e).toLowerCase();return {".html":"text/html",".css":"text/css",".js":"application/javascript",".json":"application/json",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".avif":"image/avif",".pdf":"application/pdf",".txt":"text/plain",".xml":"application/xml",".zip":"application/zip",".mp4":"video/mp4",".webm":"video/webm",".mp3":"audio/mpeg",".wav":"audio/wav",".woff":"font/woff",".woff2":"font/woff2"}[t]??"application/octet-stream"}var js=new Function("spec","return import(spec)");async function cn(e,t,n){try{return await js(e)}catch(r){throw r?.code==="ERR_MODULE_NOT_FOUND"||/Cannot find package/.test(String(r?.message))?new Error(`Driver '${t}' selected but '${n}' is not installed. Run: bun add ${n}`):r}}function gr(e,t={}){let n=P__default.resolve(t.cwd??process.cwd()),r=t.env??process.env,i=process.env.SUPABASE_ENV||"development",s=[`.env.${i}.local`,i==="test"?null:".env.local",`.env.${i}`,".env"].filter(a=>a!==null),o=Us(P__default.resolve(e),n);for(let a of o)for(let l of s){let c=P__default.join(a,l),u;try{u=ye.readFileSync(c,"utf-8");}catch{continue}let p;try{p=parse(u);}catch(f){throw new Error(`Failed to parse ${c}: ${f.message}`)}for(let[f,g]of Object.entries(p))r[f]===void 0&&(r[f]=g);}}function Us(e,t){let n=[],r=e,i=P__default.parse(r).root;for(;n.push(r),!(r===t||r===i);){let s=P__default.dirname(r);if(s===r)break;r=s;}return n}var Bs=/^env\((\w+)\)$/;function yr(e,t=process.env){return un(e,t)}function un(e,t){if(typeof e=="string"){let n=e.match(Bs);return n?t[n[1]]??"":e}if(Array.isArray(e))return e.map(n=>un(n,t));if(e&&typeof e=="object"){let n={};for(let[r,i]of Object.entries(e))n[r]=un(i,t);return n}return e}var Ws=["toml","json","ts","mts","js","mjs","cjs"],Ne=class extends Rt{ref(){return this.projectRef()}setRef(t){return this.tempFs.write("project-ref",t),this}link(t){return this.setRef(t.id),t}unlink(){return this.tempFs.delete("project-ref"),this}url(){let t=this.ref();if(!t)throw new Error("No project linked");return this.projectUrl(t)}async getConfigPath(t){let n=P__default.relative(process.cwd(),mt.config_dir);if(!t)for(let r of Ws){let i=P__default.join(n,`config.${r}`);if(await B__default.access(i).then(()=>true).catch(()=>false)){t=i;break}}return t}async readConfig(t){let n=await this.getConfigPath(t);if(!n)return {};console.log(Bt.default.dim(`Using config file: ${Bt.default.cyan(`./${n}`)}`));let r=P__default.dirname(P__default.resolve(n));gr(r);let i=n.split(".").pop(),s;switch(i){case "toml":s=Mt(await B__default.readFile(n,"utf-8"));break;case "json":s=JSON.parse(await B__default.readFile(n,"utf-8"));break;case "ts":case "mts":case "js":case "mjs":case "cjs":try{s=(await import(P__default.join(process.cwd(),n))).default;break}catch(o){throw console.error("Failed to import config file",o),o}default:throw new Error(`Unsupported config file type: ${n}`)}return yr(s)}async createConnection(){throw new Error("Not implemented")}async getConfig(t){let n=await this.readConfig(t);if("connection"in n)return {...n,connection:await n.connection};let r,i;switch(n.db?.driver){case "sqlite":i=n.db?.url??mt.default_db_url,r=await createConnection({url:i,ddlDialect:"sqlite"});break;case "pglite":{i=n.db?.url??P__default.join(process.cwd(),mt.default_db_dir);let{createPgliteConnection:s}=await cn("@supabase/lite/pglite","pglite","@electric-sql/pglite");r=await s({url:i});break}case "postgres":{i=n.db?.url??"";let{createPostgresConnection:s}=await cn("@supabase/lite/postgres","postgres","postgres");r=await s({url:i});break}default:i=n.db?.url??mt.default_db_url,r=await createConnection({url:i,ddlDialect:"postgres"});break}if(!r)throw new Error("Failed to create connection");return console.log(Bt.default.green(" \u279C"),"Database located at",Bt.default.cyan(i??"in-memory")),{...n,connection:r}}async createApp(t){let n=await this.getConfig(t),r=new App(n);return r.config.storage?.enabled&&process.env.EXPERIMENTAL_STORAGE==="1"&&!r._storageAdapter&&(r._storageAdapter=new ve({basePath:P__default.join(process.cwd(),mt.config_dir,".temp/storage")})),await r.init()}};var ke=class extends Rt{url(t){return this.projectUrl(t)}async ping(){return (await this.fetch("/v1/system/ping")).ok}async list(){let t=await this.fetch("/v1/projects");if(!t.ok)throw new Error("Failed to list projects");let n=await t.json();if(!n||!n.data)throw new Error("Failed to list projects");return n.data}async get(t){if(t=t??this.projectRef(),!t)throw new Error("No project ref found");let n=await this.fetch(`/v1/projects/${t}`);if(!n.ok)throw new Error(`Failed to get project: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!r.id)throw new Error("Failed to get project");return r}async create(t={}){let n=await this.fetch("/v1/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok)throw new Error(`Failed to create project: ${n.status} ${n.statusText}`);let r=await n.json();if(!r.data||!r.data.id)throw new Error("Failed to create project");return r.data}async getConfig(t){let n=await this.fetch(`/v1/projects/${t}/config`);if(!n.ok)throw new Error(`Failed to get project config: ${n.status} ${n.statusText}`);let r=await n.json();if(!r)throw new Error("Failed to get project config");return r}async setConfig(t,n){let r=await this.fetch(`/v1/projects/${t}/config`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`Failed to set project config: ${r.status} ${r.statusText}`);return true}async createApp(t){if(!this.config.host)throw new Error("No host specified");let{data:n,error:r}=await this.client.auth.getSession();if(r)throw r;if(!n?.session?.access_token)throw new Error("Not authenticated, sign in first.");let i=await this.getConfig(t);return await new App({...i.config,connection:cloud({projectRef:t,token:n.session.access_token,host:this.config.host})}).init()}};var $e=class extends At{project;get client(){if(!this._client)throw new Error("Supabase client not initialized");return this._client}async getSession(){return await this.client.auth.getSession()}async getAccessToken(){let{data:t,error:n}=await this.getSession();if(n)throw n;return t?.session?.access_token}async requireSession(){let t=await this.getAccessToken();if(!t)throw new Error("Not authenticated, sign in first.");return t}async init(){let t={...this.config};return this.config.withSupabaseClient!==false&&(t.client=this.client,t.token=await this.getAccessToken()),this.project={local:new Ne(t),remote:new ke(t)},this}};async function Gs(e={}){return await new $e({host:Ot,root:ft.projectDir(),...e}).init()}var dn=Ft(It());var hn=Ft(It());var Ks=["toml","json","ts","mts","js","mjs","cjs"];async function Fe(e){let t=P__default.relative(process.cwd(),mt.config_dir);if(!e)for(let n of Ks){let r=P__default.join(t,`config.${n}`);if(await B__default.access(r).then(()=>true).catch(()=>false)){e=r;break}}return e}async function br(e){let t=await Fe(e);if(!t)return {};switch(console.log(hn.default.dim(`Using config file: ${hn.default.cyan(`./${t}`)}`)),t.split(".").pop()){case "toml":return Mt(await B__default.readFile(t,"utf-8"));case "json":return JSON.parse(await B__default.readFile(t,"utf-8"));case "ts":case "mts":case "js":case "mjs":case "cjs":try{return (await import(P__default.join(process.cwd(),t))).default}catch(r){throw console.error("Failed to import config file",r),r}default:throw new Error(`Unsupported config file type: ${t}`)}}function xr(e){if(!e||e===":memory:")return;let t=e;if(t.startsWith("file://")?t=t.slice(7):t.startsWith("file:")&&(t=t.slice(5)),!(!t||t===":memory:"))return P__default.resolve(process.cwd(),t)}async function Ys(e={}){let t=process.cwd();if(e.recreate){console.log(dn.default.dim("Recreating database..."));try{let r=await Fe();if(r&&!/\.(ts|mts|js|mjs|cjs)$/.test(r)){let s=(await br(r))?.db?.url,o=s?xr(s):void 0;o&&ye.existsSync(o)&&(ye.rmSync(o,{recursive:!0,force:!0}),console.log(dn.default.dim(` \u279C removed ${P__default.relative(t,o)}`)));}}catch{}try{ye.rmSync(P__default.join(t,"supabase",".temp"),{recursive:!0,force:!0});}catch{}}if(it(P__default.join(t,"supabase")),!await Fe()){let r={db:{driver:"sqlite-postgres",url:"file:./supabase/.temp/data.db"},auth:{enabled:true}};e.driver==="pglite"&&(r.db.driver="pglite",r.db.url=P__default.relative(process.cwd(),P__default.join(t,"supabase",".temp","data")));let i=e.configFormat??"toml",s=P__default.join(t,"supabase",`config.${i}`);i==="json"?wt(s,JSON.stringify(r)):wt(s,an(r));}it(P__default.join(t,"supabase",".temp")),it(P__default.join(t,"supabase","schemas"),()=>{wt(P__default.join(t,"supabase","schemas","schema.sql"),e.template?Xs:`-- This is a schema file for the database
45
+ `);}),wt(P__default.join(t,"supabase","seed.sql"),e.template?Js:`-- This is a seed file for the database
46
+ `);}var Xs=`
76
47
  create table todos (
77
48
  id serial primary key,
78
49
  title text not null,
@@ -85,13 +56,13 @@ create table todos (
85
56
  create table test (
86
57
  id serial primary key,
87
58
  name text not null
88
- )`,ga="insert into todos (`id`, `title`, `description`, `completed`) values (1, 'test', 'test', false);\ninsert into todos (`id`, `title`, `description`, `completed`) values (2, 'test2', 'test2', true);\ninsert into test (`id`, `name`) values (1, 'test');\n";var Ii=createRequire(import.meta.url);function ba(a){let t=normalize(a);return t.length>1&&t[t.length-1]===sep&&(t=t.substring(0,t.length-1)),t}var Oa=/[\\/]/g;function Pi(a,t){return a.replace(Oa,t)}var _a=/^[a-z]:[\\/]$/i;function wa(a){return a==="/"||_a.test(a)}function Ns(a,t){let{resolvePaths:s,normalizePath:e,pathSeparator:i}=t,r=process.platform==="win32"&&a.includes("/")||a.startsWith(".");if(s&&(a=resolve$1(a)),(e||r)&&(a=ba(a)),a===".")return "";let n=a[a.length-1]!==i;return Pi(n?a+i:a,i)}function $i(a,t){return t+a}function da(a,t){return function(s,e){return e.startsWith(a)?e.slice(a.length)+s:Pi(relative$1(a,e),t.pathSeparator)+t.pathSeparator+s}}function ya(a){return a}function La(a,t,s){return t+a+s}function Ia(a,t){let{relativePaths:s,includeBasePath:e}=t;return s&&a?da(a,t):e?$i:ya}function va(a){return function(t,s){s.push(t.substring(a.length)||".");}}function Da(a){return function(t,s,e){let i=t.substring(a.length)||".";e.every(r=>r(i,true))&&s.push(i);}}var Pa=(a,t)=>{t.push(a||".");},$a=(a,t,s)=>{let e=a||".";s.every(i=>i(e,true))&&t.push(e);},ja=()=>{};function ka(a,t){let{includeDirs:s,filters:e,relativePaths:i}=t;return s?i?e&&e.length?Da(a):va(a):e&&e.length?$a:Pa:ja}var Fa=(a,t,s,e)=>{e.every(i=>i(a,false))&&s.files++;},Ua=(a,t,s,e)=>{e.every(i=>i(a,false))&&t.push(a);},Ba=(a,t,s,e)=>{s.files++;},Ma=(a,t)=>{t.push(a);},xa=()=>{};function qa(a){let{excludeFiles:t,filters:s,onlyCounts:e}=a;return t?xa:s&&s.length?e?Fa:Ua:e?Ba:Ma}var Va=a=>a,Ga=()=>[""].slice(0,0);function Wa(a){return a.group?Ga:Va}var Ha=(a,t,s)=>{a.push({directory:t,files:s,dir:t});},Ja=()=>{};function Ya(a){return a.group?Ha:Ja}var Xa=function(a,t,s){let{queue:e,fs:i,options:{suppressErrors:r}}=t;e.enqueue(),i.realpath(a,(n,o)=>{if(n)return e.dequeue(r?null:n,t);i.stat(o,(u,l)=>{if(u)return e.dequeue(r?null:u,t);if(l.isDirectory()&&ji(a,o,t))return e.dequeue(null,t);s(l,o),e.dequeue(null,t);});});},Ka=function(a,t,s){let{queue:e,fs:i,options:{suppressErrors:r}}=t;e.enqueue();try{let n=i.realpathSync(a),o=i.statSync(n);if(o.isDirectory()&&ji(a,n,t))return;s(o,n);}catch(n){if(!r)throw n}};function za(a,t){return !a.resolveSymlinks||a.excludeSymlinks?null:t?Ka:Xa}function ji(a,t,s){if(s.options.useRealPaths)return Qa(t,s);let e=dirname(a),i=1;for(;e!==s.root&&i<2;){let r=s.symlinks.get(e);!!r&&(r===t||r.startsWith(t)||t.startsWith(r))?i++:e=dirname(e);}return s.symlinks.set(a,t),i>1}function Qa(a,t){return t.visited.includes(a+t.options.pathSeparator)}var Za=a=>a.counts,to=a=>a.groups,eo=a=>a.paths,so=a=>a.paths.slice(0,a.options.maxFiles),io=(a,t,s)=>(Me(t,s,a.counts,a.options.suppressErrors),null),ro=(a,t,s)=>(Me(t,s,a.paths,a.options.suppressErrors),null),no=(a,t,s)=>(Me(t,s,a.paths.slice(0,a.options.maxFiles),a.options.suppressErrors),null),ao=(a,t,s)=>(Me(t,s,a.groups,a.options.suppressErrors),null);function Me(a,t,s,e){t(a&&!e?a:null,s);}function oo(a,t){let{onlyCounts:s,group:e,maxFiles:i}=a;return s?t?Za:io:e?t?to:ao:i?t?so:no:t?eo:ro}var ki={withFileTypes:true},uo=(a,t,s,e,i)=>{if(a.queue.enqueue(),e<0)return a.queue.dequeue(null,a);let{fs:r}=a;a.visited.push(t),a.counts.directories++,r.readdir(t||".",ki,(n,o=[])=>{i(o,s,e),a.queue.dequeue(a.options.suppressErrors?null:n,a);});},lo=(a,t,s,e,i)=>{let{fs:r}=a;if(e<0)return;a.visited.push(t),a.counts.directories++;let n=[];try{n=r.readdirSync(t||".",ki);}catch(o){if(!a.options.suppressErrors)throw o}i(n,s,e);};function po(a){return a?lo:uo}var co=class{count=0;constructor(a){this.onQueueEmpty=a;}enqueue(){return this.count++,this.count}dequeue(a,t){this.onQueueEmpty&&(--this.count<=0||a)&&(this.onQueueEmpty(a,t),a&&(t.controller.abort(),this.onQueueEmpty=void 0));}},fo=class{_files=0;_directories=0;set files(a){this._files=a;}get files(){return this._files}set directories(a){this._directories=a;}get directories(){return this._directories}get dirs(){return this._directories}},ho=class{aborted=false;abort(){this.aborted=true;}},Fi=class{root;isSynchronous;state;joinPath;pushDirectory;pushFile;getArray;groupFiles;resolveSymlink;walkDirectory;callbackInvoker;constructor(a,t,s){this.isSynchronous=!s,this.callbackInvoker=oo(t,this.isSynchronous),this.root=Ns(a,t),this.state={root:wa(this.root)?this.root:this.root.slice(0,-1),paths:[""].slice(0,0),groups:[],counts:new fo,options:t,queue:new co((e,i)=>this.callbackInvoker(i,e,s)),symlinks:new Map,visited:[""].slice(0,0),controller:new ho,fs:t.fs||Dt},this.joinPath=Ia(this.root,t),this.pushDirectory=ka(this.root,t),this.pushFile=qa(t),this.getArray=Wa(t),this.groupFiles=Ya(t),this.resolveSymlink=za(t,this.isSynchronous),this.walkDirectory=po(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}walk=(a,t,s)=>{let{paths:e,options:{filters:i,resolveSymlinks:r,excludeSymlinks:n,exclude:o,maxFiles:u,signal:l,useRealPaths:p,pathSeparator:f},controller:h}=this.state;if(h.aborted||l&&l.aborted||u&&e.length>u)return;let E=this.getArray(this.state.paths);for(let g=0;g<a.length;++g){let R=a[g];if(R.isFile()||R.isSymbolicLink()&&!r&&!n){let b=this.joinPath(R.name,t);this.pushFile(b,E,this.state.counts,i);}else if(R.isDirectory()){let b=La(R.name,t,this.state.options.pathSeparator);if(o&&o(R.name,b))continue;this.pushDirectory(b,e,i),this.walkDirectory(this.state,b,b,s-1,this.walk);}else if(this.resolveSymlink&&R.isSymbolicLink()){let b=$i(R.name,t);this.resolveSymlink(b,this.state,(d,O)=>{if(d.isDirectory()){if(O=Ns(O,this.state.options),o&&o(R.name,p?O:b+f))return;this.walkDirectory(this.state,O,p?O:b+f,s-1,this.walk);}else {O=p?O:b;let J=basename(O),et=Ns(dirname(O),this.state.options);O=this.joinPath(J,et),this.pushFile(O,E,this.state.counts,i);}});}}this.groupFiles(this.state.groups,t,E);}};function mo(a,t){return new Promise((s,e)=>{Ui(a,t,(i,r)=>{if(i)return e(i);s(r);});})}function Ui(a,t,s){new Fi(a,t,s).start();}function Eo(a,t){return new Fi(a,t).start()}var vi=class{constructor(a,t){this.root=a,this.options=t;}withPromise(){return mo(this.root,this.options)}withCallback(a){Ui(this.root,this.options,a);}sync(){return Eo(this.root,this.options)}},Bi=null;try{Ii.resolve("picomatch"),Bi=Ii("picomatch");}catch{}var Mi=class{globCache={};options={maxDepth:1/0,suppressErrors:true,pathSeparator:sep,filters:[]};globFunction;constructor(a){this.options={...this.options,...a},this.globFunction=this.options.globFunction;}group(){return this.options.group=true,this}withPathSeparator(a){return this.options.pathSeparator=a,this}withBasePath(){return this.options.includeBasePath=true,this}withRelativePaths(){return this.options.relativePaths=true,this}withDirs(){return this.options.includeDirs=true,this}withMaxDepth(a){return this.options.maxDepth=a,this}withMaxFiles(a){return this.options.maxFiles=a,this}withFullPaths(){return this.options.resolvePaths=true,this.options.includeBasePath=true,this}withErrors(){return this.options.suppressErrors=false,this}withSymlinks({resolvePaths:a=true}={}){return this.options.resolveSymlinks=true,this.options.useRealPaths=a,this.withFullPaths()}withAbortSignal(a){return this.options.signal=a,this}normalize(){return this.options.normalizePath=true,this}filter(a){return this.options.filters.push(a),this}onlyDirs(){return this.options.excludeFiles=true,this.options.includeDirs=true,this}exclude(a){return this.options.exclude=a,this}onlyCounts(){return this.options.onlyCounts=true,this}crawl(a){return new vi(a||".",this.options)}withGlobFunction(a){return this.globFunction=a,this}crawlWithOptions(a,t){return this.options={...this.options,...t},new vi(a||".",this.options)}glob(...a){return this.globFunction?this.globWithOptions(a):this.globWithOptions(a,{dot:true})}globWithOptions(a,...t){let s=this.globFunction||Bi;if(!s)throw new Error("Please specify a glob function to use glob matching.");var e=this.globCache[a.join("\0")];return e||(e=s(a,...t),this.globCache[a.join("\0")]=e),this.options.filters.push(i=>e(i)),this}};var $t=Ut(lr()),Jo=Array.isArray,fr=process.platform==="win32",Yo=/^(\/?\.\.)+$/;function Xo(a,t={}){let s=a.length,e=Array(s),i=Array(s),r=!t.noglobstar;for(let n=0;n<s;n++){let o=hr(a[n]);e[n]=o;let u=o.length,l=Array(u);for(let p=0;p<u;p++)l[p]=(0, $t.default)(o[p],t);i[n]=l;}return n=>{let o=n.split("/");if(o[0]===".."&&Yo.test(n))return true;for(let u=0;u<a.length;u++){let l=e[u],p=i[u],f=o.length,h=Math.min(f,l.length),E=0;for(;E<h;){let g=l[E];if(g.includes("/"))return true;if(!p[E](o[E]))break;if(r&&g==="**")return true;E++;}if(E===f)return true}return false}}var Ko=/^[A-Z]:\/$/i,zo=fr?a=>Ko.test(a):a=>a==="/";function pr(a,t,s){if(a===t||t.startsWith(`${a}/`)){if(s){let i=zo(a)?a.length:a.length+1;return (r,n)=>r.slice(i,n?-1:void 0)||"."}let e=t.slice(a.length+1);return e?(i,r)=>{if(i===".")return e;let n=`${e}/${i}`;return r?n.slice(0,-1):n}:(i,r)=>r&&i!=="."?i.slice(0,-1):i}return s?e=>posix.relative(a,e)||".":e=>posix.relative(a,`${t}/${e}`)||"."}function Qo(a,t){if(t.startsWith(`${a}/`)){let s=t.slice(a.length+1);return e=>`${s}/${e}`}return s=>{let e=posix.relative(a,`${t}/${s}`);return s.endsWith("/")&&e!==""?`${e}/`:e||"."}}var Zo={parts:true};function hr(a){var t;let s=$t.default.scan(a,Zo);return !((t=s.parts)===null||t===void 0)&&t.length?s.parts:[a]}var tu=/(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g,eu=/(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g,su=a=>a.replace(tu,"\\$&"),iu=a=>a.replace(eu,"\\$&"),ru=fr?iu:su;function nu(a,t){let s=$t.default.scan(a);return s.isGlob||s.negated}function Pt(...a){console.log(`[tinyglobby ${new Date().toLocaleTimeString("es")}]`,...a);}var au=/^(\/?\.\.)+/,ou=/\\(?=[()[\]{}!*+?@|])/g,Ve=/\\/g;function Ps(a,t,s,e,i){let r=a;a.endsWith("/")&&(r=a.slice(0,-1)),!r.endsWith("*")&&t&&(r+="/**");let n=ru(s);cr.isAbsolute(r.replace(ou,""))?r=posix.relative(n,r):r=posix.normalize(r);let o=au.exec(r),u=hr(r);if(o?.[0]){let p=(o[0].length+1)/3,f=0,h=n.split("/");for(;f<p&&u[f+p]===h[h.length+f-p];)r=r.slice(0,(p-f-1)*3)+r.slice((p-f)*3+u[f+p].length+1)||".",f++;let E=posix.join(s,o[0].slice(f*3));!E.startsWith(".")&&e.root.length>E.length&&(e.root=E,e.depthOffset=-p+f);}if(!i&&e.depthOffset>=0){var l;(l=e.commonPath)!==null&&l!==void 0||(e.commonPath=u);let p=[],f=Math.min(e.commonPath.length,u.length);for(let h=0;h<f;h++){let E=u[h];if(E==="**"&&!u[h+1]){p.pop();break}if(E!==e.commonPath[h]||nu(E)||h===u.length-1)break;p.push(E);}e.depthOffset=p.length,e.commonPath=p,e.root=p.length>0?posix.join(s,...p):s;}return r}function uu({patterns:a=["**/*"],ignore:t=[],expandDirectories:s=true},e,i){typeof a=="string"&&(a=[a]),typeof t=="string"&&(t=[t]);let r=[],n=[];for(let o of t)o&&(o[0]!=="!"||o[1]==="(")&&n.push(Ps(o,s,e,i,true));for(let o of a)o&&(o[0]!=="!"||o[1]==="("?r.push(Ps(o,s,e,i,false)):(o[1]!=="!"||o[2]==="(")&&n.push(Ps(o.slice(1),s,e,i,true)));return {match:r,ignore:n}}function lu(a,t){for(let s=a.length-1;s>=0;s--){let e=a[s];a[s]=t(e);}return a}function pu(a){return a?a instanceof URL?fileURLToPath(a).replace(Ve,"/"):cr.resolve(a).replace(Ve,"/"):process.cwd().replace(Ve,"/")}function cu(a,t={}){let s=process.env.TINYGLOBBY_DEBUG?{...t,debug:true}:t,e=pu(s.cwd);if(s.debug&&Pt("globbing with:",{patterns:a,options:s,cwd:e}),Array.isArray(a)&&a.length===0)return [{sync:()=>[],withPromise:async()=>[]},false];let i={root:e,commonPath:null,depthOffset:0},r=uu({...s,patterns:a},e,i);s.debug&&Pt("internal processing patterns:",r);let n={dot:s.dot,nobrace:s.braceExpansion===false,nocase:s.caseSensitiveMatch===false,noextglob:s.extglob===false,noglobstar:s.globstar===false,posix:true},o=(0, $t.default)(r.match,{...n,ignore:r.ignore}),u=(0, $t.default)(r.ignore,n),l=Xo(r.match,n),p=pr(e,i.root,s.absolute),f=s.absolute?p:pr(e,i.root,true),h={filters:[s.debug?(R,b)=>{let d=p(R,b),O=o(d);return O&&Pt(`matched ${d}`),O}:(R,b)=>o(p(R,b))],exclude:s.debug?(R,b)=>{let d=f(b,true),O=d!=="."&&!l(d)||u(d);return Pt(O?`skipped ${b}`:`crawling ${b}`),O}:(R,b)=>{let d=f(b,true);return d!=="."&&!l(d)||u(d)},fs:s.fs?{readdir:s.fs.readdir||Dt__default.readdir,readdirSync:s.fs.readdirSync||Dt__default.readdirSync,realpath:s.fs.realpath||Dt__default.realpath,realpathSync:s.fs.realpathSync||Dt__default.realpathSync,stat:s.fs.stat||Dt__default.stat,statSync:s.fs.statSync||Dt__default.statSync}:void 0,pathSeparator:"/",relativePaths:true,resolveSymlinks:true,signal:s.signal};s.deep!==void 0&&(h.maxDepth=Math.round(s.deep-i.depthOffset)),s.absolute&&(h.relativePaths=false,h.resolvePaths=true,h.includeBasePath=true),s.followSymbolicLinks===false&&(h.resolveSymlinks=false,h.excludeSymlinks=true),s.onlyDirectories?(h.excludeFiles=true,h.includeDirs=true):s.onlyFiles===false&&(h.includeDirs=true),i.root=i.root.replace(Ve,"");let E=i.root;s.debug&&Pt("internal properties:",i);let g=e!==E&&!s.absolute&&Qo(e,i.root);return [new Mi(h).crawl(E),g]}async function Kt(a,t){if(a&&t?.patterns)throw new Error("Cannot pass patterns as both an argument and an option");let s=Jo(a)||typeof a=="string",e=s?t:a,i=s?a:a.patterns,[r,n]=cu(i,e);return n?lu(await r.withPromise(),n):r.withPromise()}var $=Ut(Mt());var st={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},$s={root:".",fileFilter:a=>true,directoryFilter:a=>true,type:st.FILE_TYPE,lstat:false,depth:2147483648,alwaysStat:false,highWaterMark:4096};Object.freeze($s);var Ar="READDIRP_RECURSIVE_ERROR",Au=new Set(["ENOENT","EPERM","EACCES","ELOOP",Ar]),gr=[st.DIR_TYPE,st.EVERYTHING_TYPE,st.FILE_DIR_TYPE,st.FILE_TYPE],Cu=new Set([st.DIR_TYPE,st.EVERYTHING_TYPE,st.FILE_DIR_TYPE]),Ru=new Set([st.EVERYTHING_TYPE,st.FILE_DIR_TYPE,st.FILE_TYPE]),Nu=a=>Au.has(a.code),bu=process.platform==="win32",Tr=a=>true,Sr=a=>{if(a===void 0)return Tr;if(typeof a=="function")return a;if(typeof a=="string"){let t=a.trim();return s=>s.basename===t}if(Array.isArray(a)){let t=a.map(s=>s.trim());return s=>t.some(e=>s.basename===e)}return Tr},js=class extends Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(t={}){super({objectMode:true,autoDestroy:true,highWaterMark:t.highWaterMark});let s={...$s,...t},{root:e,type:i}=s;this._fileFilter=Sr(s.fileFilter),this._directoryFilter=Sr(s.directoryFilter);let r=s.lstat?lstat:stat;bu?this._stat=n=>r(n,{bigint:true}):this._stat=r,this._maxDepth=s.depth!=null&&Number.isSafeInteger(s.depth)?s.depth:$s.depth,this._wantsDir=i?Cu.has(i):false,this._wantsFile=i?Ru.has(i):false,this._wantsEverything=i===st.EVERYTHING_TYPE,this._root=resolve(e),this._isDirent=!s.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(e,1)],this.reading=false,this.parent=void 0;}async _read(t){if(!this.reading){this.reading=true;try{for(;!this.destroyed&&t>0;){let s=this.parent,e=s&&s.files;if(e&&e.length>0){let{path:i,depth:r}=s,n=e.splice(0,t).map(u=>this._formatEntry(u,i)),o=await Promise.all(n);for(let u of o){if(!u)continue;if(this.destroyed)return;let l=await this._getEntryType(u);l==="directory"&&this._directoryFilter(u)?(r<=this._maxDepth&&this.parents.push(this._exploreDir(u.fullPath,r+1)),this._wantsDir&&(this.push(u),t--)):(l==="file"||this._includeAsFile(u))&&this._fileFilter(u)&&this._wantsFile&&(this.push(u),t--);}}else {let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(s){this.destroy(s);}finally{this.reading=false;}}}async _exploreDir(t,s){let e;try{e=await readdir(t,this._rdOptions);}catch(i){this._onError(i);}return {files:e,depth:s,path:t}}async _formatEntry(t,s){let e,i=this._isDirent?t.name:t;try{let r=resolve(join(s,i));e={path:relative(this._root,r),fullPath:r,basename:i},e[this._statsProp]=this._isDirent?t:await this._stat(r);}catch(r){this._onError(r);return}return e}_onError(t){Nu(t)&&!this.destroyed?this.emit("warn",t):this.destroy(t);}async _getEntryType(t){if(!t&&this._statsProp in t)return "";let s=t[this._statsProp];if(s.isFile())return "file";if(s.isDirectory())return "directory";if(s&&s.isSymbolicLink()){let e=t.fullPath;try{let i=await realpath(e),r=await lstat(i);if(r.isFile())return "file";if(r.isDirectory()){let n=i.length;if(e.startsWith(i)&&e.substr(n,1)===sep$1){let o=new Error(`Circular symlink detected: "${e}" points to "${i}"`);return o.code=Ar,this._onError(o)}return "directory"}}catch(i){return this._onError(i),""}}}_includeAsFile(t){let s=t&&t[this._statsProp];return s&&this._wantsEverything&&!s.isDirectory()}};function Cr(a,t={}){let s=t.entryType||t.type;if(s==="both"&&(s=st.FILE_DIR_TYPE),s&&(t.type=s),a){if(typeof a!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(s&&!gr.includes(s))throw new Error(`readdirp: Invalid type passed. Use one of ${gr.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return t.root=a,new js(t)}var Lu="data",Bs="end",Or="close",Ye=()=>{};var Xe=process.platform,Ms=Xe==="win32",Iu=Xe==="darwin",vu=Xe==="linux",Du=Xe==="freebsd",_r=type()==="OS400",x={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},ot=x,Pu="watch",$u={lstat:lstat,stat:stat},Ot="listeners",Ge="errHandlers",jt="rawEmitters",ju=[Ot,Ge,jt],ku=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),Fu=a=>ku.has(v.extname(a).slice(1).toLowerCase()),Us=(a,t)=>{a instanceof Set?a.forEach(t):t(a);},zt=(a,t,s)=>{let e=a[t];e instanceof Set||(a[t]=e=new Set([e])),e.add(s);},Uu=a=>t=>{let s=a[t];s instanceof Set?s.clear():delete a[t];},Qt=(a,t,s)=>{let e=a[t];e instanceof Set?e.delete(s):e===s&&delete a[t];},wr=a=>a instanceof Set?a.size===0:!a,We=new Map;function Nr(a,t,s,e,i){let r=(n,o)=>{s(a),i(n,o,{watchedPath:a}),o&&a!==o&&He(v.resolve(a,o),Ot,v.join(a,o));};try{return watch(a,{persistent:t.persistent},r)}catch(n){e(n);return}}var He=(a,t,s,e,i)=>{let r=We.get(a);r&&Us(r[t],n=>{n(s,e,i);});},Bu=(a,t,s,e)=>{let{listener:i,errHandler:r,rawEmitter:n}=e,o=We.get(t),u;if(!s.persistent)return u=Nr(a,s,i,r,n),u?u.close.bind(u):void 0;if(o)zt(o,Ot,i),zt(o,Ge,r),zt(o,jt,n);else {if(u=Nr(a,s,He.bind(null,t,Ot),r,He.bind(null,t,jt)),!u)return;u.on(ot.ERROR,async l=>{let p=He.bind(null,t,Ge);if(o&&(o.watcherUnusable=true),Ms&&l.code==="EPERM")try{await(await open(a,"r")).close(),p(l);}catch{}else p(l);}),o={listeners:i,errHandlers:r,rawEmitters:n,watcher:u},We.set(t,o);}return ()=>{Qt(o,Ot,i),Qt(o,Ge,r),Qt(o,jt,n),wr(o.listeners)&&(o.watcher.close(),We.delete(t),ju.forEach(Uu(o)),o.watcher=void 0,Object.freeze(o));}},Fs=new Map,Mu=(a,t,s,e)=>{let{listener:i,rawEmitter:r}=e,n=Fs.get(t),o=n&&n.options;return o&&(o.persistent<s.persistent||o.interval>s.interval)&&(unwatchFile(t),n=void 0),n?(zt(n,Ot,i),zt(n,jt,r)):(n={listeners:i,rawEmitters:r,options:s,watcher:watchFile(t,s,(u,l)=>{Us(n.rawEmitters,f=>{f(ot.CHANGE,t,{curr:u,prev:l});});let p=u.mtimeMs;(u.size!==l.size||p>l.mtimeMs||p===0)&&Us(n.listeners,f=>f(a,u));})},Fs.set(t,n)),()=>{Qt(n,Ot,i),Qt(n,jt,r),wr(n.listeners)&&(Fs.delete(t),unwatchFile(t),n.options=n.watcher=void 0,Object.freeze(n));}},Je=class{fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=s=>t._handleError(s);}_watchWithNodeFs(t,s){let e=this.fsw.options,i=v.dirname(t),r=v.basename(t);this.fsw._getWatchedDir(i).add(r);let o=v.resolve(t),u={persistent:e.persistent};s||(s=Ye);let l;if(e.usePolling){let p=e.interval!==e.binaryInterval;u.interval=p&&Fu(r)?e.binaryInterval:e.interval,l=Mu(t,o,u,{listener:s,rawEmitter:this.fsw._emitRaw});}else l=Bu(t,o,u,{listener:s,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return l}_handleFile(t,s,e){if(this.fsw.closed)return;let i=v.dirname(t),r=v.basename(t),n=this.fsw._getWatchedDir(i),o=s;if(n.has(r))return;let u=async(p,f)=>{if(this.fsw._throttle(Pu,t,5)){if(!f||f.mtimeMs===0)try{let h=await stat(t);if(this.fsw.closed)return;let E=h.atimeMs,g=h.mtimeMs;if((!E||E<=g||g!==o.mtimeMs)&&this.fsw._emit(ot.CHANGE,t,h),(Iu||vu||Du)&&o.ino!==h.ino){this.fsw._closeFile(p),o=h;let R=this._watchWithNodeFs(t,u);R&&this.fsw._addPathCloser(p,R);}else o=h;}catch{this.fsw._remove(i,r);}else if(n.has(r)){let h=f.atimeMs,E=f.mtimeMs;(!h||h<=E||E!==o.mtimeMs)&&this.fsw._emit(ot.CHANGE,t,f),o=f;}}},l=this._watchWithNodeFs(t,u);if(!(e&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(ot.ADD,t,0))return;this.fsw._emit(ot.ADD,t,s);}return l}async _handleSymlink(t,s,e,i){if(this.fsw.closed)return;let r=t.fullPath,n=this.fsw._getWatchedDir(s);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await realpath(e);}catch{return this.fsw._emitReady(),true}return this.fsw.closed?void 0:(n.has(i)?this.fsw._symlinkPaths.get(r)!==o&&(this.fsw._symlinkPaths.set(r,o),this.fsw._emit(ot.CHANGE,e,t.stats)):(n.add(i),this.fsw._symlinkPaths.set(r,o),this.fsw._emit(ot.ADD,e,t.stats)),this.fsw._emitReady(),true)}if(this.fsw._symlinkPaths.has(r))return true;this.fsw._symlinkPaths.set(r,true);}_handleRead(t,s,e,i,r,n,o){t=v.join(t,"");let u=i?`${t}:${i}`:t;if(o=this.fsw._throttle("readdir",u,1e3),!o)return;let l=this.fsw._getWatchedDir(e.path),p=new Set,f=this.fsw._readdirp(t,{fileFilter:h=>e.filterPath(h),directoryFilter:h=>e.filterDir(h)});if(f)return f.on(Lu,async h=>{if(this.fsw.closed){f=void 0;return}let E=h.path,g=v.join(t,E);if(p.add(E),!(h.stats.isSymbolicLink()&&await this._handleSymlink(h,t,g,E))){if(this.fsw.closed){f=void 0;return}(E===i||!i&&!l.has(E))&&(this.fsw._incrReadyCount(),g=v.join(r,v.relative(r,g)),this._addToNodeFs(g,s,e,n+1));}}).on(ot.ERROR,this._boundHandleError),new Promise((h,E)=>{if(!f)return E();f.once(Bs,()=>{if(this.fsw.closed){f=void 0;return}let g=o?o.clear():false;h(void 0),l.getChildren().filter(R=>R!==t&&!p.has(R)).forEach(R=>{this.fsw._remove(t,R);}),f=void 0,g&&this._handleRead(t,false,e,i,r,n,o);});})}async _handleDir(t,s,e,i,r,n,o){let u=this.fsw._getWatchedDir(v.dirname(t)),l=u.has(v.basename(t));!(e&&this.fsw.options.ignoreInitial)&&!r&&!l&&this.fsw._emit(ot.ADD_DIR,t,s),u.add(v.basename(t)),this.fsw._getWatchedDir(t);let p,f,h=this.fsw.options.depth;if((h==null||i<=h)&&!this.fsw._symlinkPaths.has(o)){if(!r&&(await this._handleRead(t,e,n,r,t,i,p),this.fsw.closed))return;f=this._watchWithNodeFs(t,(E,g)=>{g&&g.mtimeMs===0||this._handleRead(E,false,n,r,t,i,p);});}return f}async _addToNodeFs(t,s,e,i,r){let n=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return n(),false;let o=this.fsw._getWatchHelpers(t);e&&(o.filterPath=u=>e.filterPath(u),o.filterDir=u=>e.filterDir(u));try{let u=await $u[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,u))return n(),!1;let l=this.fsw.options.followSymlinks,p;if(u.isDirectory()){let f=v.resolve(t),h=l?await realpath(t):t;if(this.fsw.closed||(p=await this._handleDir(o.watchPath,u,s,i,r,o,h),this.fsw.closed))return;f!==h&&h!==void 0&&this.fsw._symlinkPaths.set(f,h);}else if(u.isSymbolicLink()){let f=l?await realpath(t):t;if(this.fsw.closed)return;let h=v.dirname(o.watchPath);if(this.fsw._getWatchedDir(h).add(o.watchPath),this.fsw._emit(ot.ADD,o.watchPath,u),p=await this._handleDir(h,u,s,i,t,o,f),this.fsw.closed)return;f!==void 0&&this.fsw._symlinkPaths.set(v.resolve(t),f);}else p=this._handleFile(o.watchPath,u,s);return n(),p&&this.fsw._addPathCloser(t,p),!1}catch(u){if(this.fsw._handleError(u))return n(),t}}};var xs="/",Wu="//",vr=".",Hu="..",Ju="string",Yu=/\\/g,Dr=/\/\//g,Xu=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,Ku=/^\.[/\\]/;function Ke(a){return Array.isArray(a)?a:[a]}var qs=a=>typeof a=="object"&&a!==null&&!(a instanceof RegExp);function zu(a){return typeof a=="function"?a:typeof a=="string"?t=>a===t:a instanceof RegExp?t=>a.test(t):typeof a=="object"&&a!==null?t=>{if(a.path===t)return true;if(a.recursive){let s=v.relative(a.path,t);return s?!s.startsWith("..")&&!v.isAbsolute(s):false}return false}:()=>false}function Qu(a){if(typeof a!="string")throw new Error("string expected");a=v.normalize(a),a=a.replace(/\\/g,"/");let t=false;return a.startsWith("//")&&(t=true),a=a.replace(Dr,"/"),t&&(a="/"+a),a}function dr(a,t,s){let e=Qu(t);for(let i=0;i<a.length;i++){let r=a[i];if(r(e,s))return true}return false}function Zu(a,t){if(a==null)throw new TypeError("anymatch: specify first argument");let e=Ke(a).map(i=>zu(i));return t==null?(i,r)=>dr(e,i,r):dr(e,t)}var yr=a=>{let t=Ke(a).flat();if(!t.every(s=>typeof s===Ju))throw new TypeError(`Non-string provided as watch path: ${t}`);return t.map(Pr)},Lr=a=>{let t=a.replace(Yu,xs),s=false;return t.startsWith(Wu)&&(s=true),t=t.replace(Dr,xs),s&&(t=xs+t),t},Pr=a=>Lr(v.normalize(Lr(a))),Ir=(a="")=>t=>typeof t=="string"?Pr(v.isAbsolute(t)?t:v.join(a,t)):t,tl=(a,t)=>v.isAbsolute(a)?a:v.join(t,a),el=Object.freeze(new Set),Vs=class{path;_removeWatcher;items;constructor(t,s){this.path=t,this._removeWatcher=s,this.items=new Set;}add(t){let{items:s}=this;s&&t!==vr&&t!==Hu&&s.add(t);}async remove(t){let{items:s}=this;if(!s||(s.delete(t),s.size>0))return;let e=this.path;try{await readdir(e);}catch{this._removeWatcher&&this._removeWatcher(v.dirname(e),v.basename(e));}}has(t){let{items:s}=this;if(s)return s.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=Ye,this.items=el,Object.freeze(this);}},sl="stat",il="lstat",Gs=class{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,s,e){this.fsw=e;let i=t;this.path=t=t.replace(Ku,""),this.watchPath=i,this.fullWatchPath=v.resolve(i),this.dirParts=[],this.dirParts.forEach(r=>{r.length>1&&r.pop();}),this.followSymlinks=s,this.statMethod=s?sl:il;}entryPath(t){return v.join(this.watchPath,v.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:s}=t;if(s&&s.isSymbolicLink())return this.filterDir(t);let e=this.entryPath(t);return this.fsw._isntIgnored(e,s)&&this.fsw._hasReadPermissions(s)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}},ze=class extends EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=false,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=false;let s=t.awaitWriteFinish,e={stabilityThreshold:2e3,pollInterval:100},i={persistent:true,ignoreInitial:false,ignorePermissionErrors:false,interval:100,binaryInterval:300,followSymlinks:true,usePolling:false,atomic:true,...t,ignored:t.ignored?Ke(t.ignored):Ke([]),awaitWriteFinish:s===true?e:typeof s=="object"?{...e,...s}:false};_r&&(i.usePolling=true),i.atomic===void 0&&(i.atomic=!i.usePolling);let r=process.env.CHOKIDAR_USEPOLLING;if(r!==void 0){let u=r.toLowerCase();u==="false"||u==="0"?i.usePolling=false:u==="true"||u==="1"?i.usePolling=true:i.usePolling=!!u;}let n=process.env.CHOKIDAR_INTERVAL;n&&(i.interval=Number.parseInt(n,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=Ye,this._readyEmitted=true,process.nextTick(()=>this.emit(x.READY)));},this._emitRaw=(...u)=>this.emit(x.RAW,...u),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new Je(this),Object.freeze(i);}_addIgnoredPath(t){if(qs(t)){for(let s of this._ignoredPaths)if(qs(s)&&s.path===t.path&&s.recursive===t.recursive)return}this._ignoredPaths.add(t);}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),typeof t=="string")for(let s of this._ignoredPaths)qs(s)&&s.path===t&&this._ignoredPaths.delete(s);}add(t,s,e){let{cwd:i}=this.options;this.closed=false,this._closePromise=void 0;let r=yr(t);return i&&(r=r.map(n=>tl(n,i))),r.forEach(n=>{this._removeIgnoredPath(n);}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=r.length,Promise.all(r.map(async n=>{let o=await this._nodeFsHandler._addToNodeFs(n,!e,void 0,0,s);return o&&this._emitReady(),o})).then(n=>{this.closed||n.forEach(o=>{o&&this.add(v.dirname(o),v.basename(s||o));});}),this}unwatch(t){if(this.closed)return this;let s=yr(t),{cwd:e}=this.options;return s.forEach(i=>{!v.isAbsolute(i)&&!this._closers.has(i)&&(e&&(i=v.join(e,i)),i=v.resolve(i)),this._closePath(i),this._addIgnoredPath(i),this._watched.has(i)&&this._addIgnoredPath({path:i,recursive:true}),this._userIgnored=void 0;}),this}close(){if(this._closePromise)return this._closePromise;this.closed=true,this.removeAllListeners();let t=[];return this._closers.forEach(s=>s.forEach(e=>{let i=e();i instanceof Promise&&t.push(i);})),this._streams.forEach(s=>s.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=false,this._watched.forEach(s=>s.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((s,e)=>{let r=(this.options.cwd?v.relative(this.options.cwd,e):e)||vr;t[r]=s.getChildren().sort();}),t}emitWithAll(t,s){this.emit(t,...s),t!==x.ERROR&&this.emit(x.ALL,t,...s);}async _emit(t,s,e){if(this.closed)return;let i=this.options;Ms&&(s=v.normalize(s)),i.cwd&&(s=v.relative(i.cwd,s));let r=[s];e!=null&&r.push(e);let n=i.awaitWriteFinish,o;if(n&&(o=this._pendingWrites.get(s)))return o.lastChange=new Date,this;if(i.atomic){if(t===x.UNLINK)return this._pendingUnlinks.set(s,[t,...r]),setTimeout(()=>{this._pendingUnlinks.forEach((u,l)=>{this.emit(...u),this.emit(x.ALL,...u),this._pendingUnlinks.delete(l);});},typeof i.atomic=="number"?i.atomic:100),this;t===x.ADD&&this._pendingUnlinks.has(s)&&(t=x.CHANGE,this._pendingUnlinks.delete(s));}if(n&&(t===x.ADD||t===x.CHANGE)&&this._readyEmitted){let u=(l,p)=>{l?(t=x.ERROR,r[0]=l,this.emitWithAll(t,r)):p&&(r.length>1?r[1]=p:r.push(p),this.emitWithAll(t,r));};return this._awaitWriteFinish(s,n.stabilityThreshold,t,u),this}if(t===x.CHANGE&&!this._throttle(x.CHANGE,s,50))return this;if(i.alwaysStat&&e===void 0&&(t===x.ADD||t===x.ADD_DIR||t===x.CHANGE)){let u=i.cwd?v.join(i.cwd,s):s,l;try{l=await stat(u);}catch{}if(!l||this.closed)return;r.push(l);}return this.emitWithAll(t,r),this}_handleError(t){let s=t&&t.code;return t&&s!=="ENOENT"&&s!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||s!=="EPERM"&&s!=="EACCES")&&this.emit(x.ERROR,t),t||this.closed}_throttle(t,s,e){this._throttled.has(t)||this._throttled.set(t,new Map);let i=this._throttled.get(t);if(!i)throw new Error("invalid throttle");let r=i.get(s);if(r)return r.count++,false;let n,o=()=>{let l=i.get(s),p=l?l.count:0;return i.delete(s),clearTimeout(n),l&&clearTimeout(l.timeoutObject),p};n=setTimeout(o,e);let u={timeoutObject:n,clear:o,count:0};return i.set(s,u),u}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,s,e,i){let r=this.options.awaitWriteFinish;if(typeof r!="object")return;let n=r.pollInterval,o,u=t;this.options.cwd&&!v.isAbsolute(t)&&(u=v.join(this.options.cwd,t));let l=new Date,p=this._pendingWrites;function f(h){stat$1(u,(E,g)=>{if(E||!p.has(t)){E&&E.code!=="ENOENT"&&i(E);return}let R=Number(new Date);h&&g.size!==h.size&&(p.get(t).lastChange=R);let b=p.get(t);R-b.lastChange>=s?(p.delete(t),i(void 0,g)):o=setTimeout(f,n,g);});}p.has(t)||(p.set(t,{lastChange:l,cancelWait:()=>(p.delete(t),clearTimeout(o),e)}),o=setTimeout(f,n));}_isIgnored(t,s){if(this.options.atomic&&Xu.test(t))return true;if(!this._userIgnored){let{cwd:e}=this.options,r=(this.options.ignored||[]).map(Ir(e)),o=[...[...this._ignoredPaths].map(Ir(e)),...r];this._userIgnored=Zu(o,void 0);}return this._userIgnored(t,s)}_isntIgnored(t,s){return !this._isIgnored(t,s)}_getWatchHelpers(t){return new Gs(t,this.options.followSymlinks,this)}_getWatchedDir(t){let s=v.resolve(t);return this._watched.has(s)||this._watched.set(s,new Vs(s,this._boundRemove)),this._watched.get(s)}_hasReadPermissions(t){return this.options.ignorePermissionErrors?true:!!(Number(t.mode)&256)}_remove(t,s,e){let i=v.join(t,s),r=v.resolve(i);if(e=e??(this._watched.has(i)||this._watched.has(r)),!this._throttle("remove",i,100))return;!e&&this._watched.size===1&&this.add(t,s,true),this._getWatchedDir(i).getChildren().forEach(h=>this._remove(i,h));let u=this._getWatchedDir(t),l=u.has(s);u.remove(s),this._symlinkPaths.has(r)&&this._symlinkPaths.delete(r);let p=i;if(this.options.cwd&&(p=v.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(p)&&this._pendingWrites.get(p).cancelWait()===x.ADD)return;this._watched.delete(i),this._watched.delete(r);let f=e?x.UNLINK_DIR:x.UNLINK;l&&!this._isIgnored(i)&&this._emit(f,i),this._closePath(i);}_closePath(t){this._closeFile(t);let s=v.dirname(t);this._getWatchedDir(s).remove(v.basename(t));}_closeFile(t){let s=this._closers.get(t);s&&(s.forEach(e=>e()),this._closers.delete(t));}_addPathCloser(t,s){if(!s)return;let e=this._closers.get(t);e||(e=[],this._closers.set(t,e)),e.push(s);}_readdirp(t,s){if(this.closed)return;let e={type:x.ALL,alwaysStat:true,lstat:true,...s,depth:0},i=Cr(t,e);return this._streams.add(i),i.once(Or,()=>{i=void 0;}),i.once(Bs,()=>{i&&(this._streams.delete(i),i=void 0);}),i}};function rl(a,t={}){let s=new ze(t);return s.add(a),s}var $r={watch:rl,FSWatcher:ze};var al=/^(\d{14})(?:_([^.]+))?\.sql$/;function jr(a){return a.config?.db?.driver==="sqlite"?"./sqlite-migrations/*.sql":"./migrations/*.sql"}function ol(a){return v__default.posix.dirname(jr(a))}async function Zt(a){let t=v__default.join(process.cwd(),"supabase"),s=await Kt([jr(a)],{cwd:t,absolute:true}),e=[];for(let i of s){let r=v__default.basename(i),n=al.exec(r);if(!n)continue;let o=await G__default.readFile(i,"utf-8");e.push({version:n[1],name:n[2]??null,filename:r,path:i,sql:o});}return e.sort((i,r)=>i.version.localeCompare(r.version))}var fn="supabase/.temp/.translation-cache.json",hn=2;async function Vl(a,t){let s=await a.connection.introspect(),e=hi(s);await mn(a,{...t,dbHasTables:s.tables.length>0,dbFingerprint:e}),s.tables.length===0&&await Hl(a);let i=await a.connection.introspect();gn(i,a);}async function Gl(a){let t=await Kt(a.config.db?.seed?.sql_paths??["./seed.sql"],{cwd:v__default.join(process.cwd(),"supabase"),absolute:true});return (await Promise.all(t.map(e=>G__default.readFile(e,"utf-8")))).flatMap(e=>splitSqlStatements(e))}async function Wl(a,t){let s=await Gl(a);if(s.length===0)return 0;console.log($.default.dim("Seeding database..."));try{return await a.connection.transaction(s),s.length}catch(e){let i="Fix `supabase/seed.sql`, then run `bun run dev --recreate` to reset and reseed.";throw new Error(`Seed failed and was rolled back: ${String(e.message??e)}
89
- ${i}`)}}async function Hl(a){await Wl(a);}async function Jl(a){let t=await Kt(a.config?.db?.migrations?.schema_paths??["./schemas/*.sql"],{cwd:v__default.join(process.cwd(),"supabase"),absolute:true}),s=await Promise.all(t.map(async e=>await G__default.readFile(e,"utf-8"))).then(e=>e.map(i=>i.split(`
90
- `).filter(r=>r.trim().length>0&&!r.trim().startsWith("--")).join(`
59
+ )`,Js="insert into todos (`id`, `title`, `description`, `completed`) values (1, 'test', 'test', false);\ninsert into todos (`id`, `title`, `description`, `completed`) values (2, 'test2', 'test2', true);\ninsert into test (`id`, `name`) values (1, 'test');\n";var _r=createRequire(import.meta.url);function io(e){let t=normalize(e);return t.length>1&&t[t.length-1]===sep&&(t=t.substring(0,t.length-1)),t}var so=/[\\/]/g;function Tr(e,t){return e.replace(so,t)}var oo=/^[a-z]:[\\/]$/i;function ao(e){return e==="/"||oo.test(e)}function gn(e,t){let{resolvePaths:n,normalizePath:r,pathSeparator:i}=t,s=process.platform==="win32"&&e.includes("/")||e.startsWith(".");if(n&&(e=resolve$1(e)),(r||s)&&(e=io(e)),e===".")return "";let o=e[e.length-1]!==i;return Tr(o?e+i:e,i)}function Ar(e,t){return t+e}function lo(e,t){return function(n,r){return r.startsWith(e)?r.slice(e.length)+n:Tr(relative$1(e,r),t.pathSeparator)+t.pathSeparator+n}}function co(e){return e}function uo(e,t,n){return t+e+n}function fo(e,t){let{relativePaths:n,includeBasePath:r}=t;return n&&e?lo(e,t):r?Ar:co}function po(e){return function(t,n){n.push(t.substring(e.length)||".");}}function ho(e){return function(t,n,r){let i=t.substring(e.length)||".";r.every(s=>s(i,true))&&n.push(i);}}var mo=(e,t)=>{t.push(e||".");},go=(e,t,n)=>{let r=e||".";n.every(i=>i(r,true))&&t.push(r);},yo=()=>{};function wo(e,t){let{includeDirs:n,filters:r,relativePaths:i}=t;return n?i?r&&r.length?ho(e):po(e):r&&r.length?go:mo:yo}var bo=(e,t,n,r)=>{r.every(i=>i(e,false))&&n.files++;},xo=(e,t,n,r)=>{r.every(i=>i(e,false))&&t.push(e);},_o=(e,t,n,r)=>{n.files++;},Eo=(e,t)=>{t.push(e);},So=()=>{};function To(e){let{excludeFiles:t,filters:n,onlyCounts:r}=e;return t?So:n&&n.length?r?bo:xo:r?_o:Eo}var Ao=e=>e,Ro=()=>[""].slice(0,0);function Co(e){return e.group?Ro:Ao}var Po=(e,t,n)=>{e.push({directory:t,files:n,dir:t});},vo=()=>{};function No(e){return e.group?Po:vo}var ko=function(e,t,n){let{queue:r,fs:i,options:{suppressErrors:s}}=t;r.enqueue(),i.realpath(e,(o,a)=>{if(o)return r.dequeue(s?null:o,t);i.stat(a,(l,c)=>{if(l)return r.dequeue(s?null:l,t);if(c.isDirectory()&&Rr(e,a,t))return r.dequeue(null,t);n(c,a),r.dequeue(null,t);});});},$o=function(e,t,n){let{queue:r,fs:i,options:{suppressErrors:s}}=t;r.enqueue();try{let o=i.realpathSync(e),a=i.statSync(o);if(a.isDirectory()&&Rr(e,o,t))return;n(a,o);}catch(o){if(!s)throw o}};function Lo(e,t){return !e.resolveSymlinks||e.excludeSymlinks?null:t?$o:ko}function Rr(e,t,n){if(n.options.useRealPaths)return Fo(t,n);let r=dirname(e),i=1;for(;r!==n.root&&i<2;){let s=n.symlinks.get(r);!!s&&(s===t||s.startsWith(t)||t.startsWith(s))?i++:r=dirname(r);}return n.symlinks.set(e,t),i>1}function Fo(e,t){return t.visited.includes(e+t.options.pathSeparator)}var Oo=e=>e.counts,Io=e=>e.groups,Do=e=>e.paths,jo=e=>e.paths.slice(0,e.options.maxFiles),Mo=(e,t,n)=>(Oe(t,n,e.counts,e.options.suppressErrors),null),Ho=(e,t,n)=>(Oe(t,n,e.paths,e.options.suppressErrors),null),Uo=(e,t,n)=>(Oe(t,n,e.paths.slice(0,e.options.maxFiles),e.options.suppressErrors),null),Bo=(e,t,n)=>(Oe(t,n,e.groups,e.options.suppressErrors),null);function Oe(e,t,n,r){t(e&&!r?e:null,n);}function qo(e,t){let{onlyCounts:n,group:r,maxFiles:i}=e;return n?t?Oo:Mo:r?t?Io:Bo:i?t?jo:Uo:t?Do:Ho}var Cr={withFileTypes:true},Wo=(e,t,n,r,i)=>{if(e.queue.enqueue(),r<0)return e.queue.dequeue(null,e);let{fs:s}=e;e.visited.push(t),e.counts.directories++,s.readdir(t||".",Cr,(o,a=[])=>{i(a,n,r),e.queue.dequeue(e.options.suppressErrors?null:o,e);});},zo=(e,t,n,r,i)=>{let{fs:s}=e;if(r<0)return;e.visited.push(t),e.counts.directories++;let o=[];try{o=s.readdirSync(t||".",Cr);}catch(a){if(!e.options.suppressErrors)throw a}i(o,n,r);};function Vo(e){return e?zo:Wo}var Go=class{count=0;constructor(e){this.onQueueEmpty=e;}enqueue(){return this.count++,this.count}dequeue(e,t){this.onQueueEmpty&&(--this.count<=0||e)&&(this.onQueueEmpty(e,t),e&&(t.controller.abort(),this.onQueueEmpty=void 0));}},Ko=class{_files=0;_directories=0;set files(e){this._files=e;}get files(){return this._files}set directories(e){this._directories=e;}get directories(){return this._directories}get dirs(){return this._directories}},Yo=class{aborted=false;abort(){this.aborted=true;}},Pr=class{root;isSynchronous;state;joinPath;pushDirectory;pushFile;getArray;groupFiles;resolveSymlink;walkDirectory;callbackInvoker;constructor(e,t,n){this.isSynchronous=!n,this.callbackInvoker=qo(t,this.isSynchronous),this.root=gn(e,t),this.state={root:ao(this.root)?this.root:this.root.slice(0,-1),paths:[""].slice(0,0),groups:[],counts:new Ko,options:t,queue:new Go((r,i)=>this.callbackInvoker(i,r,n)),symlinks:new Map,visited:[""].slice(0,0),controller:new Yo,fs:t.fs||vt},this.joinPath=fo(this.root,t),this.pushDirectory=wo(this.root,t),this.pushFile=To(t),this.getArray=Co(t),this.groupFiles=No(t),this.resolveSymlink=Lo(t,this.isSynchronous),this.walkDirectory=Vo(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}walk=(e,t,n)=>{let{paths:r,options:{filters:i,resolveSymlinks:s,excludeSymlinks:o,exclude:a,maxFiles:l,signal:c,useRealPaths:u,pathSeparator:p},controller:f}=this.state;if(f.aborted||c&&c.aborted||l&&r.length>l)return;let g=this.getArray(this.state.paths);for(let y=0;y<e.length;++y){let x=e[y];if(x.isFile()||x.isSymbolicLink()&&!s&&!o){let T=this.joinPath(x.name,t);this.pushFile(T,g,this.state.counts,i);}else if(x.isDirectory()){let T=uo(x.name,t,this.state.options.pathSeparator);if(a&&a(x.name,T))continue;this.pushDirectory(T,r,i),this.walkDirectory(this.state,T,T,n-1,this.walk);}else if(this.resolveSymlink&&x.isSymbolicLink()){let T=Ar(x.name,t);this.resolveSymlink(T,this.state,(v,_)=>{if(v.isDirectory()){if(_=gn(_,this.state.options),a&&a(x.name,u?_:T+p))return;this.walkDirectory(this.state,_,u?_:T+p,n-1,this.walk);}else {_=u?_:T;let K=basename(_),rt=gn(dirname(_),this.state.options);_=this.joinPath(K,rt),this.pushFile(_,g,this.state.counts,i);}});}}this.groupFiles(this.state.groups,t,g);}};function Xo(e,t){return new Promise((n,r)=>{vr(e,t,(i,s)=>{if(i)return r(i);n(s);});})}function vr(e,t,n){new Pr(e,t,n).start();}function Jo(e,t){return new Pr(e,t).start()}var Er=class{constructor(e,t){this.root=e,this.options=t;}withPromise(){return Xo(this.root,this.options)}withCallback(e){vr(this.root,this.options,e);}sync(){return Jo(this.root,this.options)}},Nr=null;try{_r.resolve("picomatch"),Nr=_r("picomatch");}catch{}var kr=class{globCache={};options={maxDepth:1/0,suppressErrors:true,pathSeparator:sep,filters:[]};globFunction;constructor(e){this.options={...this.options,...e},this.globFunction=this.options.globFunction;}group(){return this.options.group=true,this}withPathSeparator(e){return this.options.pathSeparator=e,this}withBasePath(){return this.options.includeBasePath=true,this}withRelativePaths(){return this.options.relativePaths=true,this}withDirs(){return this.options.includeDirs=true,this}withMaxDepth(e){return this.options.maxDepth=e,this}withMaxFiles(e){return this.options.maxFiles=e,this}withFullPaths(){return this.options.resolvePaths=true,this.options.includeBasePath=true,this}withErrors(){return this.options.suppressErrors=false,this}withSymlinks({resolvePaths:e=true}={}){return this.options.resolveSymlinks=true,this.options.useRealPaths=e,this.withFullPaths()}withAbortSignal(e){return this.options.signal=e,this}normalize(){return this.options.normalizePath=true,this}filter(e){return this.options.filters.push(e),this}onlyDirs(){return this.options.excludeFiles=true,this.options.includeDirs=true,this}exclude(e){return this.options.exclude=e,this}onlyCounts(){return this.options.onlyCounts=true,this}crawl(e){return new Er(e||".",this.options)}withGlobFunction(e){return this.globFunction=e,this}crawlWithOptions(e,t){return this.options={...this.options,...t},new Er(e||".",this.options)}glob(...e){return this.globFunction?this.globWithOptions(e):this.globWithOptions(e,{dot:true})}globWithOptions(e,...t){let n=this.globFunction||Nr;if(!n)throw new Error("Please specify a glob function to use glob matching.");var r=this.globCache[e.join("\0")];return r||(r=n(e,...t),this.globCache[e.join("\0")]=r),this.options.filters.push(i=>r(i)),this}};var kt=Ft(ti()),Pa=Array.isArray,ri=process.platform==="win32",va=/^(\/?\.\.)+$/;function Na(e,t={}){let n=e.length,r=Array(n),i=Array(n),s=!t.noglobstar;for(let o=0;o<n;o++){let a=ii(e[o]);r[o]=a;let l=a.length,c=Array(l);for(let u=0;u<l;u++)c[u]=(0, kt.default)(a[u],t);i[o]=c;}return o=>{let a=o.split("/");if(a[0]===".."&&va.test(o))return true;for(let l=0;l<e.length;l++){let c=r[l],u=i[l],p=a.length,f=Math.min(p,c.length),g=0;for(;g<f;){let y=c[g];if(y.includes("/"))return true;if(!u[g](a[g]))break;if(s&&y==="**")return true;g++;}if(g===p)return true}return false}}var ka=/^[A-Z]:\/$/i,$a=ri?e=>ka.test(e):e=>e==="/";function ei(e,t,n){if(e===t||t.startsWith(`${e}/`)){if(n){let i=$a(e)?e.length:e.length+1;return (s,o)=>s.slice(i,o?-1:void 0)||"."}let r=t.slice(e.length+1);return r?(i,s)=>{if(i===".")return r;let o=`${r}/${i}`;return s?o.slice(0,-1):o}:(i,s)=>s&&i!=="."?i.slice(0,-1):i}return n?r=>posix.relative(e,r)||".":r=>posix.relative(e,`${t}/${r}`)||"."}function La(e,t){if(t.startsWith(`${e}/`)){let n=t.slice(e.length+1);return r=>`${n}/${r}`}return n=>{let r=posix.relative(e,`${t}/${n}`);return n.endsWith("/")&&r!==""?`${r}/`:r||"."}}var Fa={parts:true};function ii(e){var t;let n=kt.default.scan(e,Fa);return !((t=n.parts)===null||t===void 0)&&t.length?n.parts:[e]}var Oa=/(?<!\\)([()[\]{}*?|]|^!|[!+@](?=\()|\\(?![()[\]{}!*+?@|]))/g,Ia=/(?<!\\)([()[\]{}]|^!|[!+@](?=\())/g,Da=e=>e.replace(Oa,"\\$&"),ja=e=>e.replace(Ia,"\\$&"),Ma=ri?ja:Da;function Ha(e,t){let n=kt.default.scan(e);return n.isGlob||n.negated}function Nt(...e){console.log(`[tinyglobby ${new Date().toLocaleTimeString("es")}]`,...e);}var Ua=/^(\/?\.\.)+/,Ba=/\\(?=[()[\]{}!*+?@|])/g,je=/\\/g;function Cn(e,t,n,r,i){let s=e;e.endsWith("/")&&(s=e.slice(0,-1)),!s.endsWith("*")&&t&&(s+="/**");let o=Ma(n);ni.isAbsolute(s.replace(Ba,""))?s=posix.relative(o,s):s=posix.normalize(s);let a=Ua.exec(s),l=ii(s);if(a?.[0]){let u=(a[0].length+1)/3,p=0,f=o.split("/");for(;p<u&&l[p+u]===f[f.length+p-u];)s=s.slice(0,(u-p-1)*3)+s.slice((u-p)*3+l[p+u].length+1)||".",p++;let g=posix.join(n,a[0].slice(p*3));!g.startsWith(".")&&r.root.length>g.length&&(r.root=g,r.depthOffset=-u+p);}if(!i&&r.depthOffset>=0){var c;(c=r.commonPath)!==null&&c!==void 0||(r.commonPath=l);let u=[],p=Math.min(r.commonPath.length,l.length);for(let f=0;f<p;f++){let g=l[f];if(g==="**"&&!l[f+1]){u.pop();break}if(g!==r.commonPath[f]||Ha(g)||f===l.length-1)break;u.push(g);}r.depthOffset=u.length,r.commonPath=u,r.root=u.length>0?posix.join(n,...u):n;}return s}function qa({patterns:e=["**/*"],ignore:t=[],expandDirectories:n=true},r,i){typeof e=="string"&&(e=[e]),typeof t=="string"&&(t=[t]);let s=[],o=[];for(let a of t)a&&(a[0]!=="!"||a[1]==="(")&&o.push(Cn(a,n,r,i,true));for(let a of e)a&&(a[0]!=="!"||a[1]==="("?s.push(Cn(a,n,r,i,false)):(a[1]!=="!"||a[2]==="(")&&o.push(Cn(a.slice(1),n,r,i,true)));return {match:s,ignore:o}}function Wa(e,t){for(let n=e.length-1;n>=0;n--){let r=e[n];e[n]=t(r);}return e}function za(e){return e?e instanceof URL?fileURLToPath(e).replace(je,"/"):ni.resolve(e).replace(je,"/"):process.cwd().replace(je,"/")}function Va(e,t={}){let n=process.env.TINYGLOBBY_DEBUG?{...t,debug:true}:t,r=za(n.cwd);if(n.debug&&Nt("globbing with:",{patterns:e,options:n,cwd:r}),Array.isArray(e)&&e.length===0)return [{sync:()=>[],withPromise:async()=>[]},false];let i={root:r,commonPath:null,depthOffset:0},s=qa({...n,patterns:e},r,i);n.debug&&Nt("internal processing patterns:",s);let o={dot:n.dot,nobrace:n.braceExpansion===false,nocase:n.caseSensitiveMatch===false,noextglob:n.extglob===false,noglobstar:n.globstar===false,posix:true},a=(0, kt.default)(s.match,{...o,ignore:s.ignore}),l=(0, kt.default)(s.ignore,o),c=Na(s.match,o),u=ei(r,i.root,n.absolute),p=n.absolute?u:ei(r,i.root,true),f={filters:[n.debug?(x,T)=>{let v=u(x,T),_=a(v);return _&&Nt(`matched ${v}`),_}:(x,T)=>a(u(x,T))],exclude:n.debug?(x,T)=>{let v=p(T,true),_=v!=="."&&!c(v)||l(v);return Nt(_?`skipped ${T}`:`crawling ${T}`),_}:(x,T)=>{let v=p(T,true);return v!=="."&&!c(v)||l(v)},fs:n.fs?{readdir:n.fs.readdir||vt__default.readdir,readdirSync:n.fs.readdirSync||vt__default.readdirSync,realpath:n.fs.realpath||vt__default.realpath,realpathSync:n.fs.realpathSync||vt__default.realpathSync,stat:n.fs.stat||vt__default.stat,statSync:n.fs.statSync||vt__default.statSync}:void 0,pathSeparator:"/",relativePaths:true,resolveSymlinks:true,signal:n.signal};n.deep!==void 0&&(f.maxDepth=Math.round(n.deep-i.depthOffset)),n.absolute&&(f.relativePaths=false,f.resolvePaths=true,f.includeBasePath=true),n.followSymbolicLinks===false&&(f.resolveSymlinks=false,f.excludeSymlinks=true),n.onlyDirectories?(f.excludeFiles=true,f.includeDirs=true):n.onlyFiles===false&&(f.includeDirs=true),i.root=i.root.replace(je,"");let g=i.root;n.debug&&Nt("internal properties:",i);let y=r!==g&&!n.absolute&&La(r,i.root);return [new kr(f).crawl(g),y]}async function Vt(e,t){if(e&&t?.patterns)throw new Error("Cannot pass patterns as both an argument and an option");let n=Pa(e)||typeof e=="string",r=n?t:e,i=n?e:e.patterns,[s,o]=Va(i,r);return o?Wa(await s.withPromise(),o):s.withPromise()}var k=Ft(It());var Z={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Pn={root:".",fileFilter:e=>true,directoryFilter:e=>true,type:Z.FILE_TYPE,lstat:false,depth:2147483648,alwaysStat:false,highWaterMark:4096};Object.freeze(Pn);var ui="READDIRP_RECURSIVE_ERROR",tl=new Set(["ENOENT","EPERM","EACCES","ELOOP",ui]),ai=[Z.DIR_TYPE,Z.EVERYTHING_TYPE,Z.FILE_DIR_TYPE,Z.FILE_TYPE],el=new Set([Z.DIR_TYPE,Z.EVERYTHING_TYPE,Z.FILE_DIR_TYPE]),nl=new Set([Z.EVERYTHING_TYPE,Z.FILE_DIR_TYPE,Z.FILE_TYPE]),rl=e=>tl.has(e.code),il=process.platform==="win32",li=e=>true,ci=e=>{if(e===void 0)return li;if(typeof e=="function")return e;if(typeof e=="string"){let t=e.trim();return n=>n.basename===t}if(Array.isArray(e)){let t=e.map(n=>n.trim());return n=>t.some(r=>n.basename===r)}return li},vn=class extends Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(t={}){super({objectMode:true,autoDestroy:true,highWaterMark:t.highWaterMark});let n={...Pn,...t},{root:r,type:i}=n;this._fileFilter=ci(n.fileFilter),this._directoryFilter=ci(n.directoryFilter);let s=n.lstat?lstat:stat;il?this._stat=o=>s(o,{bigint:true}):this._stat=s,this._maxDepth=n.depth!=null&&Number.isSafeInteger(n.depth)?n.depth:Pn.depth,this._wantsDir=i?el.has(i):false,this._wantsFile=i?nl.has(i):false,this._wantsEverything=i===Z.EVERYTHING_TYPE,this._root=resolve(r),this._isDirent=!n.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(r,1)],this.reading=false,this.parent=void 0;}async _read(t){if(!this.reading){this.reading=true;try{for(;!this.destroyed&&t>0;){let n=this.parent,r=n&&n.files;if(r&&r.length>0){let{path:i,depth:s}=n,o=r.splice(0,t).map(l=>this._formatEntry(l,i)),a=await Promise.all(o);for(let l of a){if(!l)continue;if(this.destroyed)return;let c=await this._getEntryType(l);c==="directory"&&this._directoryFilter(l)?(s<=this._maxDepth&&this.parents.push(this._exploreDir(l.fullPath,s+1)),this._wantsDir&&(this.push(l),t--)):(c==="file"||this._includeAsFile(l))&&this._fileFilter(l)&&this._wantsFile&&(this.push(l),t--);}}else {let i=this.parents.pop();if(!i){this.push(null);break}if(this.parent=await i,this.destroyed)return}}}catch(n){this.destroy(n);}finally{this.reading=false;}}}async _exploreDir(t,n){let r;try{r=await readdir(t,this._rdOptions);}catch(i){this._onError(i);}return {files:r,depth:n,path:t}}async _formatEntry(t,n){let r,i=this._isDirent?t.name:t;try{let s=resolve(join(n,i));r={path:relative(this._root,s),fullPath:s,basename:i},r[this._statsProp]=this._isDirent?t:await this._stat(s);}catch(s){this._onError(s);return}return r}_onError(t){rl(t)&&!this.destroyed?this.emit("warn",t):this.destroy(t);}async _getEntryType(t){if(!t&&this._statsProp in t)return "";let n=t[this._statsProp];if(n.isFile())return "file";if(n.isDirectory())return "directory";if(n&&n.isSymbolicLink()){let r=t.fullPath;try{let i=await realpath(r),s=await lstat(i);if(s.isFile())return "file";if(s.isDirectory()){let o=i.length;if(r.startsWith(i)&&r.substr(o,1)===sep$1){let a=new Error(`Circular symlink detected: "${r}" points to "${i}"`);return a.code=ui,this._onError(a)}return "directory"}}catch(i){return this._onError(i),""}}}_includeAsFile(t){let n=t&&t[this._statsProp];return n&&this._wantsEverything&&!n.isDirectory()}};function fi(e,t={}){let n=t.entryType||t.type;if(n==="both"&&(n=Z.FILE_DIR_TYPE),n&&(t.type=n),e){if(typeof e!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(n&&!ai.includes(n))throw new Error(`readdirp: Invalid type passed. Use one of ${ai.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return t.root=e,new vn(t)}var ul="data",Ln="end",di="close",qe=()=>{};var We=process.platform,Fn=We==="win32",fl=We==="darwin",pl=We==="linux",hl=We==="freebsd",gi=type()==="OS400",M={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},st=M,ml="watch",dl={lstat:lstat,stat:stat},_t="listeners",Me="errHandlers",$t="rawEmitters",gl=[_t,Me,$t],yl=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),wl=e=>yl.has(P.extname(e).slice(1).toLowerCase()),$n=(e,t)=>{e instanceof Set?e.forEach(t):t(e);},Gt=(e,t,n)=>{let r=e[t];r instanceof Set||(e[t]=r=new Set([r])),r.add(n);},bl=e=>t=>{let n=e[t];n instanceof Set?n.clear():delete e[t];},Kt=(e,t,n)=>{let r=e[t];r instanceof Set?r.delete(n):r===n&&delete e[t];},yi=e=>e instanceof Set?e.size===0:!e,He=new Map;function hi(e,t,n,r,i){let s=(o,a)=>{n(e),i(o,a,{watchedPath:e}),a&&e!==a&&Ue(P.resolve(e,a),_t,P.join(e,a));};try{return watch(e,{persistent:t.persistent},s)}catch(o){r(o);return}}var Ue=(e,t,n,r,i)=>{let s=He.get(e);s&&$n(s[t],o=>{o(n,r,i);});},xl=(e,t,n,r)=>{let{listener:i,errHandler:s,rawEmitter:o}=r,a=He.get(t),l;if(!n.persistent)return l=hi(e,n,i,s,o),l?l.close.bind(l):void 0;if(a)Gt(a,_t,i),Gt(a,Me,s),Gt(a,$t,o);else {if(l=hi(e,n,Ue.bind(null,t,_t),s,Ue.bind(null,t,$t)),!l)return;l.on(st.ERROR,async c=>{let u=Ue.bind(null,t,Me);if(a&&(a.watcherUnusable=true),Fn&&c.code==="EPERM")try{await(await open(e,"r")).close(),u(c);}catch{}else u(c);}),a={listeners:i,errHandlers:s,rawEmitters:o,watcher:l},He.set(t,a);}return ()=>{Kt(a,_t,i),Kt(a,Me,s),Kt(a,$t,o),yi(a.listeners)&&(a.watcher.close(),He.delete(t),gl.forEach(bl(a)),a.watcher=void 0,Object.freeze(a));}},kn=new Map,_l=(e,t,n,r)=>{let{listener:i,rawEmitter:s}=r,o=kn.get(t),a=o&&o.options;return a&&(a.persistent<n.persistent||a.interval>n.interval)&&(unwatchFile(t),o=void 0),o?(Gt(o,_t,i),Gt(o,$t,s)):(o={listeners:i,rawEmitters:s,options:n,watcher:watchFile(t,n,(l,c)=>{$n(o.rawEmitters,p=>{p(st.CHANGE,t,{curr:l,prev:c});});let u=l.mtimeMs;(l.size!==c.size||u>c.mtimeMs||u===0)&&$n(o.listeners,p=>p(e,l));})},kn.set(t,o)),()=>{Kt(o,_t,i),Kt(o,$t,s),yi(o.listeners)&&(kn.delete(t),unwatchFile(t),o.options=o.watcher=void 0,Object.freeze(o));}},Be=class{fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=n=>t._handleError(n);}_watchWithNodeFs(t,n){let r=this.fsw.options,i=P.dirname(t),s=P.basename(t);this.fsw._getWatchedDir(i).add(s);let a=P.resolve(t),l={persistent:r.persistent};n||(n=qe);let c;if(r.usePolling){let u=r.interval!==r.binaryInterval;l.interval=u&&wl(s)?r.binaryInterval:r.interval,c=_l(t,a,l,{listener:n,rawEmitter:this.fsw._emitRaw});}else c=xl(t,a,l,{listener:n,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return c}_handleFile(t,n,r){if(this.fsw.closed)return;let i=P.dirname(t),s=P.basename(t),o=this.fsw._getWatchedDir(i),a=n;if(o.has(s))return;let l=async(u,p)=>{if(this.fsw._throttle(ml,t,5)){if(!p||p.mtimeMs===0)try{let f=await stat(t);if(this.fsw.closed)return;let g=f.atimeMs,y=f.mtimeMs;if((!g||g<=y||y!==a.mtimeMs)&&this.fsw._emit(st.CHANGE,t,f),(fl||pl||hl)&&a.ino!==f.ino){this.fsw._closeFile(u),a=f;let x=this._watchWithNodeFs(t,l);x&&this.fsw._addPathCloser(u,x);}else a=f;}catch{this.fsw._remove(i,s);}else if(o.has(s)){let f=p.atimeMs,g=p.mtimeMs;(!f||f<=g||g!==a.mtimeMs)&&this.fsw._emit(st.CHANGE,t,p),a=p;}}},c=this._watchWithNodeFs(t,l);if(!(r&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(st.ADD,t,0))return;this.fsw._emit(st.ADD,t,n);}return c}async _handleSymlink(t,n,r,i){if(this.fsw.closed)return;let s=t.fullPath,o=this.fsw._getWatchedDir(n);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let a;try{a=await realpath(r);}catch{return this.fsw._emitReady(),true}return this.fsw.closed?void 0:(o.has(i)?this.fsw._symlinkPaths.get(s)!==a&&(this.fsw._symlinkPaths.set(s,a),this.fsw._emit(st.CHANGE,r,t.stats)):(o.add(i),this.fsw._symlinkPaths.set(s,a),this.fsw._emit(st.ADD,r,t.stats)),this.fsw._emitReady(),true)}if(this.fsw._symlinkPaths.has(s))return true;this.fsw._symlinkPaths.set(s,true);}_handleRead(t,n,r,i,s,o,a){t=P.join(t,"");let l=i?`${t}:${i}`:t;if(a=this.fsw._throttle("readdir",l,1e3),!a)return;let c=this.fsw._getWatchedDir(r.path),u=new Set,p=this.fsw._readdirp(t,{fileFilter:f=>r.filterPath(f),directoryFilter:f=>r.filterDir(f)});if(p)return p.on(ul,async f=>{if(this.fsw.closed){p=void 0;return}let g=f.path,y=P.join(t,g);if(u.add(g),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,t,y,g))){if(this.fsw.closed){p=void 0;return}(g===i||!i&&!c.has(g))&&(this.fsw._incrReadyCount(),y=P.join(s,P.relative(s,y)),this._addToNodeFs(y,n,r,o+1));}}).on(st.ERROR,this._boundHandleError),new Promise((f,g)=>{if(!p)return g();p.once(Ln,()=>{if(this.fsw.closed){p=void 0;return}let y=a?a.clear():false;f(void 0),c.getChildren().filter(x=>x!==t&&!u.has(x)).forEach(x=>{this.fsw._remove(t,x);}),p=void 0,y&&this._handleRead(t,false,r,i,s,o,a);});})}async _handleDir(t,n,r,i,s,o,a){let l=this.fsw._getWatchedDir(P.dirname(t)),c=l.has(P.basename(t));!(r&&this.fsw.options.ignoreInitial)&&!s&&!c&&this.fsw._emit(st.ADD_DIR,t,n),l.add(P.basename(t)),this.fsw._getWatchedDir(t);let u,p,f=this.fsw.options.depth;if((f==null||i<=f)&&!this.fsw._symlinkPaths.has(a)){if(!s&&(await this._handleRead(t,r,o,s,t,i,u),this.fsw.closed))return;p=this._watchWithNodeFs(t,(g,y)=>{y&&y.mtimeMs===0||this._handleRead(g,false,o,s,t,i,u);});}return p}async _addToNodeFs(t,n,r,i,s){let o=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return o(),false;let a=this.fsw._getWatchHelpers(t);r&&(a.filterPath=l=>r.filterPath(l),a.filterDir=l=>r.filterDir(l));try{let l=await dl[a.statMethod](a.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(a.watchPath,l))return o(),!1;let c=this.fsw.options.followSymlinks,u;if(l.isDirectory()){let p=P.resolve(t),f=c?await realpath(t):t;if(this.fsw.closed||(u=await this._handleDir(a.watchPath,l,n,i,s,a,f),this.fsw.closed))return;p!==f&&f!==void 0&&this.fsw._symlinkPaths.set(p,f);}else if(l.isSymbolicLink()){let p=c?await realpath(t):t;if(this.fsw.closed)return;let f=P.dirname(a.watchPath);if(this.fsw._getWatchedDir(f).add(a.watchPath),this.fsw._emit(st.ADD,a.watchPath,l),u=await this._handleDir(f,l,n,i,t,a,p),this.fsw.closed)return;p!==void 0&&this.fsw._symlinkPaths.set(P.resolve(t),p);}else u=this._handleFile(a.watchPath,l,n);return o(),u&&this.fsw._addPathCloser(t,u),!1}catch(l){if(this.fsw._handleError(l))return o(),t}}};var On="/",Rl="//",Ei=".",Cl="..",Pl="string",vl=/\\/g,Si=/\/\//g,Nl=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,kl=/^\.[/\\]/;function ze(e){return Array.isArray(e)?e:[e]}var In=e=>typeof e=="object"&&e!==null&&!(e instanceof RegExp);function $l(e){return typeof e=="function"?e:typeof e=="string"?t=>e===t:e instanceof RegExp?t=>e.test(t):typeof e=="object"&&e!==null?t=>{if(e.path===t)return true;if(e.recursive){let n=P.relative(e.path,t);return n?!n.startsWith("..")&&!P.isAbsolute(n):false}return false}:()=>false}function Ll(e){if(typeof e!="string")throw new Error("string expected");e=P.normalize(e),e=e.replace(/\\/g,"/");let t=false;return e.startsWith("//")&&(t=true),e=e.replace(Si,"/"),t&&(e="/"+e),e}function wi(e,t,n){let r=Ll(t);for(let i=0;i<e.length;i++){let s=e[i];if(s(r,n))return true}return false}function Fl(e,t){if(e==null)throw new TypeError("anymatch: specify first argument");let r=ze(e).map(i=>$l(i));return t==null?(i,s)=>wi(r,i,s):wi(r,t)}var bi=e=>{let t=ze(e).flat();if(!t.every(n=>typeof n===Pl))throw new TypeError(`Non-string provided as watch path: ${t}`);return t.map(Ti)},xi=e=>{let t=e.replace(vl,On),n=false;return t.startsWith(Rl)&&(n=true),t=t.replace(Si,On),n&&(t=On+t),t},Ti=e=>xi(P.normalize(xi(e))),_i=(e="")=>t=>typeof t=="string"?Ti(P.isAbsolute(t)?t:P.join(e,t)):t,Ol=(e,t)=>P.isAbsolute(e)?e:P.join(t,e),Il=Object.freeze(new Set),Dn=class{path;_removeWatcher;items;constructor(t,n){this.path=t,this._removeWatcher=n,this.items=new Set;}add(t){let{items:n}=this;n&&t!==Ei&&t!==Cl&&n.add(t);}async remove(t){let{items:n}=this;if(!n||(n.delete(t),n.size>0))return;let r=this.path;try{await readdir(r);}catch{this._removeWatcher&&this._removeWatcher(P.dirname(r),P.basename(r));}}has(t){let{items:n}=this;if(n)return n.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=qe,this.items=Il,Object.freeze(this);}},Dl="stat",jl="lstat",jn=class{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,n,r){this.fsw=r;let i=t;this.path=t=t.replace(kl,""),this.watchPath=i,this.fullWatchPath=P.resolve(i),this.dirParts=[],this.dirParts.forEach(s=>{s.length>1&&s.pop();}),this.followSymlinks=n,this.statMethod=n?Dl:jl;}entryPath(t){return P.join(this.watchPath,P.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:n}=t;if(n&&n.isSymbolicLink())return this.filterDir(t);let r=this.entryPath(t);return this.fsw._isntIgnored(r,n)&&this.fsw._hasReadPermissions(n)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}},Ve=class extends EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=false,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=false;let n=t.awaitWriteFinish,r={stabilityThreshold:2e3,pollInterval:100},i={persistent:true,ignoreInitial:false,ignorePermissionErrors:false,interval:100,binaryInterval:300,followSymlinks:true,usePolling:false,atomic:true,...t,ignored:t.ignored?ze(t.ignored):ze([]),awaitWriteFinish:n===true?r:typeof n=="object"?{...r,...n}:false};gi&&(i.usePolling=true),i.atomic===void 0&&(i.atomic=!i.usePolling);let s=process.env.CHOKIDAR_USEPOLLING;if(s!==void 0){let l=s.toLowerCase();l==="false"||l==="0"?i.usePolling=false:l==="true"||l==="1"?i.usePolling=true:i.usePolling=!!l;}let o=process.env.CHOKIDAR_INTERVAL;o&&(i.interval=Number.parseInt(o,10));let a=0;this._emitReady=()=>{a++,a>=this._readyCount&&(this._emitReady=qe,this._readyEmitted=true,process.nextTick(()=>this.emit(M.READY)));},this._emitRaw=(...l)=>this.emit(M.RAW,...l),this._boundRemove=this._remove.bind(this),this.options=i,this._nodeFsHandler=new Be(this),Object.freeze(i);}_addIgnoredPath(t){if(In(t)){for(let n of this._ignoredPaths)if(In(n)&&n.path===t.path&&n.recursive===t.recursive)return}this._ignoredPaths.add(t);}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),typeof t=="string")for(let n of this._ignoredPaths)In(n)&&n.path===t&&this._ignoredPaths.delete(n);}add(t,n,r){let{cwd:i}=this.options;this.closed=false,this._closePromise=void 0;let s=bi(t);return i&&(s=s.map(o=>Ol(o,i))),s.forEach(o=>{this._removeIgnoredPath(o);}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=s.length,Promise.all(s.map(async o=>{let a=await this._nodeFsHandler._addToNodeFs(o,!r,void 0,0,n);return a&&this._emitReady(),a})).then(o=>{this.closed||o.forEach(a=>{a&&this.add(P.dirname(a),P.basename(n||a));});}),this}unwatch(t){if(this.closed)return this;let n=bi(t),{cwd:r}=this.options;return n.forEach(i=>{!P.isAbsolute(i)&&!this._closers.has(i)&&(r&&(i=P.join(r,i)),i=P.resolve(i)),this._closePath(i),this._addIgnoredPath(i),this._watched.has(i)&&this._addIgnoredPath({path:i,recursive:true}),this._userIgnored=void 0;}),this}close(){if(this._closePromise)return this._closePromise;this.closed=true,this.removeAllListeners();let t=[];return this._closers.forEach(n=>n.forEach(r=>{let i=r();i instanceof Promise&&t.push(i);})),this._streams.forEach(n=>n.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=false,this._watched.forEach(n=>n.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((n,r)=>{let s=(this.options.cwd?P.relative(this.options.cwd,r):r)||Ei;t[s]=n.getChildren().sort();}),t}emitWithAll(t,n){this.emit(t,...n),t!==M.ERROR&&this.emit(M.ALL,t,...n);}async _emit(t,n,r){if(this.closed)return;let i=this.options;Fn&&(n=P.normalize(n)),i.cwd&&(n=P.relative(i.cwd,n));let s=[n];r!=null&&s.push(r);let o=i.awaitWriteFinish,a;if(o&&(a=this._pendingWrites.get(n)))return a.lastChange=new Date,this;if(i.atomic){if(t===M.UNLINK)return this._pendingUnlinks.set(n,[t,...s]),setTimeout(()=>{this._pendingUnlinks.forEach((l,c)=>{this.emit(...l),this.emit(M.ALL,...l),this._pendingUnlinks.delete(c);});},typeof i.atomic=="number"?i.atomic:100),this;t===M.ADD&&this._pendingUnlinks.has(n)&&(t=M.CHANGE,this._pendingUnlinks.delete(n));}if(o&&(t===M.ADD||t===M.CHANGE)&&this._readyEmitted){let l=(c,u)=>{c?(t=M.ERROR,s[0]=c,this.emitWithAll(t,s)):u&&(s.length>1?s[1]=u:s.push(u),this.emitWithAll(t,s));};return this._awaitWriteFinish(n,o.stabilityThreshold,t,l),this}if(t===M.CHANGE&&!this._throttle(M.CHANGE,n,50))return this;if(i.alwaysStat&&r===void 0&&(t===M.ADD||t===M.ADD_DIR||t===M.CHANGE)){let l=i.cwd?P.join(i.cwd,n):n,c;try{c=await stat(l);}catch{}if(!c||this.closed)return;s.push(c);}return this.emitWithAll(t,s),this}_handleError(t){let n=t&&t.code;return t&&n!=="ENOENT"&&n!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||n!=="EPERM"&&n!=="EACCES")&&this.emit(M.ERROR,t),t||this.closed}_throttle(t,n,r){this._throttled.has(t)||this._throttled.set(t,new Map);let i=this._throttled.get(t);if(!i)throw new Error("invalid throttle");let s=i.get(n);if(s)return s.count++,false;let o,a=()=>{let c=i.get(n),u=c?c.count:0;return i.delete(n),clearTimeout(o),c&&clearTimeout(c.timeoutObject),u};o=setTimeout(a,r);let l={timeoutObject:o,clear:a,count:0};return i.set(n,l),l}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,n,r,i){let s=this.options.awaitWriteFinish;if(typeof s!="object")return;let o=s.pollInterval,a,l=t;this.options.cwd&&!P.isAbsolute(t)&&(l=P.join(this.options.cwd,t));let c=new Date,u=this._pendingWrites;function p(f){stat$1(l,(g,y)=>{if(g||!u.has(t)){g&&g.code!=="ENOENT"&&i(g);return}let x=Number(new Date);f&&y.size!==f.size&&(u.get(t).lastChange=x);let T=u.get(t);x-T.lastChange>=n?(u.delete(t),i(void 0,y)):a=setTimeout(p,o,y);});}u.has(t)||(u.set(t,{lastChange:c,cancelWait:()=>(u.delete(t),clearTimeout(a),r)}),a=setTimeout(p,o));}_isIgnored(t,n){if(this.options.atomic&&Nl.test(t))return true;if(!this._userIgnored){let{cwd:r}=this.options,s=(this.options.ignored||[]).map(_i(r)),a=[...[...this._ignoredPaths].map(_i(r)),...s];this._userIgnored=Fl(a,void 0);}return this._userIgnored(t,n)}_isntIgnored(t,n){return !this._isIgnored(t,n)}_getWatchHelpers(t){return new jn(t,this.options.followSymlinks,this)}_getWatchedDir(t){let n=P.resolve(t);return this._watched.has(n)||this._watched.set(n,new Dn(n,this._boundRemove)),this._watched.get(n)}_hasReadPermissions(t){return this.options.ignorePermissionErrors?true:!!(Number(t.mode)&256)}_remove(t,n,r){let i=P.join(t,n),s=P.resolve(i);if(r=r??(this._watched.has(i)||this._watched.has(s)),!this._throttle("remove",i,100))return;!r&&this._watched.size===1&&this.add(t,n,true),this._getWatchedDir(i).getChildren().forEach(f=>this._remove(i,f));let l=this._getWatchedDir(t),c=l.has(n);l.remove(n),this._symlinkPaths.has(s)&&this._symlinkPaths.delete(s);let u=i;if(this.options.cwd&&(u=P.relative(this.options.cwd,i)),this.options.awaitWriteFinish&&this._pendingWrites.has(u)&&this._pendingWrites.get(u).cancelWait()===M.ADD)return;this._watched.delete(i),this._watched.delete(s);let p=r?M.UNLINK_DIR:M.UNLINK;c&&!this._isIgnored(i)&&this._emit(p,i),this._closePath(i);}_closePath(t){this._closeFile(t);let n=P.dirname(t);this._getWatchedDir(n).remove(P.basename(t));}_closeFile(t){let n=this._closers.get(t);n&&(n.forEach(r=>r()),this._closers.delete(t));}_addPathCloser(t,n){if(!n)return;let r=this._closers.get(t);r||(r=[],this._closers.set(t,r)),r.push(n);}_readdirp(t,n){if(this.closed)return;let r={type:M.ALL,alwaysStat:true,lstat:true,...n,depth:0},i=fi(t,r);return this._streams.add(i),i.once(di,()=>{i=void 0;}),i.once(Ln,()=>{i&&(this._streams.delete(i),i=void 0);}),i}};function Ml(e,t={}){let n=new Ve(t);return n.add(e),n}var Ai={watch:Ml,FSWatcher:Ve};var Ul=/^(\d{14})(?:_([^.]+))?\.sql$/;function Ri(e){return e.config?.db?.driver==="sqlite"?"./sqlite-migrations/*.sql":"./migrations/*.sql"}function Bl(e){return P__default.posix.dirname(Ri(e))}async function Yt(e){let t=P__default.join(process.cwd(),"supabase"),n=await Vt([Ri(e)],{cwd:t,absolute:true}),r=[];for(let i of n){let s=P__default.basename(i),o=Ul.exec(s);if(!o)continue;let a=await B__default.readFile(i,"utf-8");r.push({version:o[1],name:o[2]??null,filename:s,path:i,sql:a});}return r.sort((i,s)=>i.version.localeCompare(s.version))}var Gi="supabase/.temp/.translation-cache.json",Ki=2;async function _c(e,t){let n=await e.connection.introspect(),r=ir(n);await Yi(e,{...t,dbHasTables:n.tables.length>0,dbFingerprint:r}),n.tables.length===0&&await Tc(e);let i=await e.connection.introspect();Ji(i,e);}async function Ec(e){let t=await Vt(e.config.db?.seed?.sql_paths??["./seed.sql"],{cwd:P__default.join(process.cwd(),"supabase"),absolute:true});return (await Promise.all(t.map(r=>B__default.readFile(r,"utf-8")))).flatMap(r=>splitSqlStatements(r))}async function Sc(e,t){let n=await Ec(e);if(n.length===0)return 0;console.log(k.default.dim("Seeding database..."));try{return await e.connection.transaction(n),n.length}catch(r){let i="Fix `supabase/seed.sql`, then run `bun run dev --recreate` to reset and reseed.";throw new Error(`Seed failed and was rolled back: ${String(r.message??r)}
60
+ ${i}`)}}async function Tc(e){await Sc(e);}async function Ac(e){let t=await Vt(e.config?.db?.migrations?.schema_paths??["./schemas/*.sql"],{cwd:P__default.join(process.cwd(),"supabase"),absolute:true}),n=await Promise.all(t.map(async r=>await B__default.readFile(r,"utf-8"))).then(r=>r.map(i=>i.split(`
61
+ `).filter(s=>s.trim().length>0&&!s.trim().startsWith("--")).join(`
91
62
  `)).join(`
92
- `));return s||""}async function mn(a,t){let s=await Jl(a);if(!(!s&&(await Zt(a)).length>0)&&!(!s&&!a.connection.config.baseSchema)){if(t?.dbHasTables&&await Xl(a,s,t.dbFingerprint)){console.log($.default.dim("Schema unchanged \u2014 skipping translation."));return}try{let e=a.connection.createMigrator(s),i=await e.diff(),r=e.translationResult?.ast,n=await a.connection.introspect(),o=hi(n);if(i.plan.steps.length===0){await pn(a,s,r,o);return}await e.migratePlan(i.plan,{force:t?.force??!1}),Zl(i);let u=await a.connection.introspect();return await pn(a,s,r,hi(u)),console.log(""),tp(i),i}catch(e){if(String(e).includes("likely empty"))console.log($.default.dim("Nothing to migrate."));else {console.error("Migration error: "+String(e));try{await a.connection.exec("rollback");}catch{}}}}}function Yl(a){return a.connection.config?.baseSchema??""}function En(a,t){let s=createHash("sha256");return s.update(JSON.stringify([Yl(a),t??""])),s.digest("hex")}function hi(a){let t=(e,i)=>[...e].sort((r,n)=>i(r).localeCompare(i(n))),s={tables:t(a.tables??[],e=>`${e.schema??""}.${e.name}`).map(e=>({schema:e.schema,name:e.name,type:e.type,sql:e.sql})),columns:t(a.columns??[],e=>`${e.schema??""}.${e.table}.${e.name}`).map(e=>({schema:e.schema,table:e.table,name:e.name,type:e.type,nullable:e.nullable,default_value:e.default_value,is_primary_key:e.is_primary_key})),indexes:t(a.indexes??[],e=>`${e.schema??""}.${e.table}.${e.name}`).map(e=>({schema:e.schema,table:e.table,name:e.name,unique:e.unique,columns:e.columns})),foreign_keys:t(a.foreign_keys??[],e=>`${e.schema??""}.${e.table}.${e.column}->${e.ref_table}.${e.ref_column}`).map(e=>({schema:e.schema,table:e.table,column:e.column,ref_schema:e.ref_schema,ref_table:e.ref_table,ref_column:e.ref_column})),primary_keys:t(a.primary_keys??[],e=>`${e.schema??""}.${e.table}`).map(e=>({schema:e.schema,table:e.table,columns:e.columns})),check_constraints:t(a.check_constraints??[],e=>`${e.schema??""}.${e.table}.${e.name??""}.${e.column??""}`).map(e=>({schema:e.schema,table:e.table,name:e.name,column:e.column,expression:e.expression})),unique_constraints:t(a.unique_constraints??[],e=>`${e.schema??""}.${e.table}.${e.name}`).map(e=>({schema:e.schema,table:e.table,name:e.name,columns:e.columns})),views:t(a.views??[],e=>`${e.schema??""}.${e.name}`).map(e=>({schema:e.schema,name:e.name,sql:e.sql})),triggers:t(a.triggers??[],e=>`${e.schema??""}.${e.table}.${e.name}`).map(e=>({schema:e.schema,table:e.table,name:e.name,sql:e.sql})),custom_types:t(a.custom_types??[],e=>`${e.schema??""}.${e.type}`).map(e=>({schema:e.schema,type:e.type,kind:e.kind,values:e.values,fields:e.fields}))};return createHash("sha256").update(JSON.stringify(s)).digest("hex")}async function Xl(a,t,s){let e=a.connection;if(typeof e.updateDeparseInfo!="function")return false;let i=v__default.join(process.cwd(),fn),r;try{r=await G__default.readFile(i,"utf-8");}catch{return false}let n;try{n=JSON.parse(r);}catch{return false}if(n.v!==hn||n.hash!==En(a,t)||!s||n.dbFingerprint!==s||!n.ast||typeof n.ast!="object")return false;try{let o=await Promise.resolve().then(()=>(un(),on)),u=n.ast,l=o.collectEnums(u),p=o.collectSchema(u,l),f=o.collectVariables(u),h=o.collectTableConstraints(u),E=o.collectComments(u),{policies:g,tables:R}=o.collectPolicies(u);return e.updateDeparseInfo({enums:l,rls:{tables:R,policies:g},schema:p,vars:f,tableConstraints:h,comments:E}),!0}catch{return false}}async function pn(a,t,s,e){if(!s||typeof s!="object")return;let i={v:hn,hash:En(a,t),dbFingerprint:e,ast:s},r=v__default.join(process.cwd(),fn);try{await G__default.mkdir(v__default.dirname(r),{recursive:!0}),await G__default.writeFile(r,JSON.stringify(i),"utf-8");}catch{}}function gn(a,t){console.log();let s=(i,r)=>{let n=u=>{let l=$.default.dim;return typeof u=="number"&&(u>=0&&(l=u>0?$.default.green:$.default.dim),u<0&&(l=$.default.red)),typeof u=="boolean"?u?$.default.green("\u2713"):$.default.red("\u2717"):l(String(u))},o=Object.entries(r).map(([u,l])=>`${u}: ${n(l)}`).join($.default.dim(" / "));console.log(`${$.default.dim("[")} ${i} ${$.default.dim("]")} ${o}`);};s($.default.green("DATA"),{tables:a.tables.length,columns:a.columns.length,indexes:a.indexes.length});let e=t.config.rls??t.connection.config.translation?.deparse?.rls??{tables:new Set([]),policies:[]};s($.default.green("AUTH"),{enabled:!!t.config.auth?.enabled,tables:ensureVar.Set(e.tables).size,policies:ensureVar.Array(e.policies).length});}function Kl(a,t){setTimeout(()=>{console.log($.default.dim("Watching for changes...")),$r.watch("./supabase/schemas").on("change",async e=>{console.log(),console.log($.default.dim(`Schema changed: ${e}`)),await mn(a,t);let i=await a.connection.introspect();gn(i,a);});},200);}function zl(a,t){let s=e=>e;return a.plan.steps.flatMap(e=>[e.description?s(`-- ${e.description}`):"",e.sql+`
93
- `]).filter(e=>e.trim().length>0).join(`
94
- `)}function Ql(a){let t=new Date;return `${t.getFullYear().toString()+(t.getMonth()+1).toString().padStart(2,"0")+t.getDate().toString().padStart(2,"0")+t.getHours().toString().padStart(2,"0")+t.getMinutes().toString().padStart(2,"0")+t.getSeconds().toString().padStart(2,"0")}.sql`}function Zl(a,t){let s="./supabase/.temp/migrations";at(s);let e=Ql(),i=zl(a);Rt(v__default.join(s,e),i),console.log($.default.dim(`Migration written to ${$.default.cyan(v__default.join(s,e))}`));}function tp({diff:a}){if(typeof a=="string"){console.log($.default.cyan(a));return}if(!a.has_changes)return;console.log($.default.bgWhite($.default.black(" Schema Diff "))),console.log();let t={added:{color:$.default.green,symbol:"+"},removed:{color:$.default.red,symbol:"-"},modified:{color:$.default.yellow,symbol:"~"}};if(a.tables.length>0){console.log($.default.dim("Tables:"));for(let s of a.tables){let{color:e,symbol:i}=t[s.type];console.log(e(`${i} ${s.name}`));}console.log();}if(a.columns.length>0){console.log($.default.dim("Columns:"));for(let s of a.columns){let{color:e,symbol:i}=t[s.type],r="";s.changes&&(r=Object.entries(s.changes).map(([n,o])=>`${n}: ${o.from} \u2192 ${o.to}`).join(", ")),console.log(e(`${i} ${s.table}.${s.name}${r?` (${r})`:""}`));}console.log();}if(a.indexes.length>0){console.log($.default.dim("Indexes:"));for(let s of a.indexes){let{color:e,symbol:i}=t[s.type];console.log(e(`${i} ${s.name} on ${s.table}`));}console.log();}if(a.foreign_keys.length>0){console.log($.default.dim("Foreign Keys:"));for(let s of a.foreign_keys){let{color:e,symbol:i}=t[s.type];console.log(e(`${i} ${s.table}.${s.column} \u2192 ${s.ref_table}.${s.ref_column}`));}console.log();}}function ns(a){return a.dialect==="postgres"?"pg":a.config?.ddlDialect==="sqlite"?"sqlite":"pg-flat"}function Tn(a){return a==="sqlite"?{schema_migrations:"migrations",seed_files:null}:a==="pg-flat"?{schema_migrations:'"supabase_migrations.schema_migrations"',seed_files:'"supabase_migrations.seed_files"'}:{schema_migrations:"supabase_migrations.schema_migrations",seed_files:"supabase_migrations.seed_files"}}function mi(a){return `'${a.replace(/'/g,"''")}'`}function ep(a){return `'${`{${a.map(e=>`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`).join(",")}}`.replace(/'/g,"''")}'`}function sp(a){return a==="sqlite"?[`CREATE TABLE IF NOT EXISTS migrations (
63
+ `));return n||""}async function Yi(e,t){let n=await Ac(e);if(!(!n&&(await Yt(e)).length>0)&&!(!n&&!e.connection.config.baseSchema)){if(t?.dbHasTables&&await Cc(e,n,t.dbFingerprint)){console.log(k.default.dim("Schema unchanged \u2014 skipping translation."));return}try{let r=e.connection.createMigrator(n),i=await r.diff(),s=r.translationResult?.ast,o=await e.connection.introspect(),a=ir(o);if(i.plan.steps.length===0){await zi(e,n,s,a);return}await r.migratePlan(i.plan,{force:t?.force??!1}),kc(i);let l=await e.connection.introspect();return await zi(e,n,s,ir(l)),console.log(""),$c(i),i}catch(r){if(String(r).includes("likely empty"))console.log(k.default.dim("Nothing to migrate."));else {console.error("Migration error: "+String(r));try{await e.connection.exec("rollback");}catch{}}}}}function Rc(e){return e.connection.config?.baseSchema??""}function Xi(e,t){let n=createHash("sha256");return n.update(JSON.stringify([Rc(e),t??""])),n.digest("hex")}function ir(e){let t=(r,i)=>[...r].sort((s,o)=>i(s).localeCompare(i(o))),n={tables:t(e.tables??[],r=>`${r.schema??""}.${r.name}`).map(r=>({schema:r.schema,name:r.name,type:r.type,sql:r.sql})),columns:t(e.columns??[],r=>`${r.schema??""}.${r.table}.${r.name}`).map(r=>({schema:r.schema,table:r.table,name:r.name,type:r.type,nullable:r.nullable,default_value:r.default_value,is_primary_key:r.is_primary_key})),indexes:t(e.indexes??[],r=>`${r.schema??""}.${r.table}.${r.name}`).map(r=>({schema:r.schema,table:r.table,name:r.name,unique:r.unique,columns:r.columns})),foreign_keys:t(e.foreign_keys??[],r=>`${r.schema??""}.${r.table}.${r.column}->${r.ref_table}.${r.ref_column}`).map(r=>({schema:r.schema,table:r.table,column:r.column,ref_schema:r.ref_schema,ref_table:r.ref_table,ref_column:r.ref_column})),primary_keys:t(e.primary_keys??[],r=>`${r.schema??""}.${r.table}`).map(r=>({schema:r.schema,table:r.table,columns:r.columns})),check_constraints:t(e.check_constraints??[],r=>`${r.schema??""}.${r.table}.${r.name??""}.${r.column??""}`).map(r=>({schema:r.schema,table:r.table,name:r.name,column:r.column,expression:r.expression})),unique_constraints:t(e.unique_constraints??[],r=>`${r.schema??""}.${r.table}.${r.name}`).map(r=>({schema:r.schema,table:r.table,name:r.name,columns:r.columns})),views:t(e.views??[],r=>`${r.schema??""}.${r.name}`).map(r=>({schema:r.schema,name:r.name,sql:r.sql})),triggers:t(e.triggers??[],r=>`${r.schema??""}.${r.table}.${r.name}`).map(r=>({schema:r.schema,table:r.table,name:r.name,sql:r.sql})),custom_types:t(e.custom_types??[],r=>`${r.schema??""}.${r.type}`).map(r=>({schema:r.schema,type:r.type,kind:r.kind,values:r.values,fields:r.fields}))};return createHash("sha256").update(JSON.stringify(n)).digest("hex")}async function Cc(e,t,n){let r=e.connection;if(typeof r.updateDeparseInfo!="function")return false;let i=P__default.join(process.cwd(),Gi),s;try{s=await B__default.readFile(i,"utf-8");}catch{return false}let o;try{o=JSON.parse(s);}catch{return false}if(o.v!==Ki||o.hash!==Xi(e,t)||!n||o.dbFingerprint!==n||!o.ast||typeof o.ast!="object")return false;try{let a=await Promise.resolve().then(()=>(qi(),Bi)),l=o.ast,c=a.collectEnums(l),u=a.collectSchema(l,c),p=a.collectVariables(l),f=a.collectTableConstraints(l),g=a.collectComments(l),{policies:y,tables:x}=a.collectPolicies(l);return r.updateDeparseInfo({enums:c,rls:{tables:x,policies:y},schema:u,vars:p,tableConstraints:f,comments:g}),!0}catch{return false}}async function zi(e,t,n,r){if(!n||typeof n!="object")return;let i={v:Ki,hash:Xi(e,t),dbFingerprint:r,ast:n},s=P__default.join(process.cwd(),Gi);try{await B__default.mkdir(P__default.dirname(s),{recursive:!0}),await B__default.writeFile(s,JSON.stringify(i),"utf-8");}catch{}}function Ji(e,t){console.log();let n=(i,s)=>{let o=l=>{let c=k.default.dim;return typeof l=="number"&&(l>=0&&(c=l>0?k.default.green:k.default.dim),l<0&&(c=k.default.red)),typeof l=="boolean"?l?k.default.green("\u2713"):k.default.red("\u2717"):c(String(l))},a=Object.entries(s).map(([l,c])=>`${l}: ${o(c)}`).join(k.default.dim(" / "));console.log(`${k.default.dim("[")} ${i} ${k.default.dim("]")} ${a}`);};n(k.default.green("DATA"),{tables:e.tables.length,columns:e.columns.length,indexes:e.indexes.length});let r=t.config.rls??t.connection.config.translation?.deparse?.rls??{tables:new Set([]),policies:[]};n(k.default.green("AUTH"),{enabled:!!t.config.auth?.enabled,tables:ensureVar.Set(r.tables).size,policies:ensureVar.Array(r.policies).length});}function Pc(e,t){setTimeout(()=>{console.log(k.default.dim("Watching for changes...")),Ai.watch("./supabase/schemas").on("change",async r=>{console.log(),console.log(k.default.dim(`Schema changed: ${r}`)),await Yi(e,t);let i=await e.connection.introspect();Ji(i,e);});},200);}function vc(e,t){let n=r=>r;return e.plan.steps.flatMap(r=>[r.description?n(`-- ${r.description}`):"",r.sql+`
64
+ `]).filter(r=>r.trim().length>0).join(`
65
+ `)}function Nc(e){let t=new Date;return `${t.getFullYear().toString()+(t.getMonth()+1).toString().padStart(2,"0")+t.getDate().toString().padStart(2,"0")+t.getHours().toString().padStart(2,"0")+t.getMinutes().toString().padStart(2,"0")+t.getSeconds().toString().padStart(2,"0")}.sql`}function kc(e,t){let n="./supabase/.temp/migrations";it(n);let r=Nc(),i=vc(e);wt(P__default.join(n,r),i),console.log(k.default.dim(`Migration written to ${k.default.cyan(P__default.join(n,r))}`));}function $c({diff:e}){if(typeof e=="string"){console.log(k.default.cyan(e));return}if(!e.has_changes)return;console.log(k.default.bgWhite(k.default.black(" Schema Diff "))),console.log();let t={added:{color:k.default.green,symbol:"+"},removed:{color:k.default.red,symbol:"-"},modified:{color:k.default.yellow,symbol:"~"}};if(e.tables.length>0){console.log(k.default.dim("Tables:"));for(let n of e.tables){let{color:r,symbol:i}=t[n.type];console.log(r(`${i} ${n.name}`));}console.log();}if(e.columns.length>0){console.log(k.default.dim("Columns:"));for(let n of e.columns){let{color:r,symbol:i}=t[n.type],s="";n.changes&&(s=Object.entries(n.changes).map(([o,a])=>`${o}: ${a.from} \u2192 ${a.to}`).join(", ")),console.log(r(`${i} ${n.table}.${n.name}${s?` (${s})`:""}`));}console.log();}if(e.indexes.length>0){console.log(k.default.dim("Indexes:"));for(let n of e.indexes){let{color:r,symbol:i}=t[n.type];console.log(r(`${i} ${n.name} on ${n.table}`));}console.log();}if(e.foreign_keys.length>0){console.log(k.default.dim("Foreign Keys:"));for(let n of e.foreign_keys){let{color:r,symbol:i}=t[n.type];console.log(r(`${i} ${n.table}.${n.column} \u2192 ${n.ref_table}.${n.ref_column}`));}console.log();}}function Qe(e){return e.dialect==="postgres"?"pg":e.config?.ddlDialect==="sqlite"?"sqlite":"pg-flat"}function Qi(e){return e==="sqlite"?{schema_migrations:"migrations",seed_files:null}:e==="pg-flat"?{schema_migrations:'"supabase_migrations.schema_migrations"',seed_files:'"supabase_migrations.seed_files"'}:{schema_migrations:"supabase_migrations.schema_migrations",seed_files:"supabase_migrations.seed_files"}}function sr(e){return `'${e.replace(/'/g,"''")}'`}function Lc(e){return `'${`{${e.map(r=>`"${r.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`).join(",")}}`.replace(/'/g,"''")}'`}function Fc(e){return e==="sqlite"?[`CREATE TABLE IF NOT EXISTS migrations (
95
66
  version TEXT NOT NULL PRIMARY KEY,
96
67
  statements TEXT,
97
68
  name TEXT
@@ -102,9 +73,9 @@ ${i}`)}}async function Hl(a){await Wl(a);}async function Jl(a){let t=await Kt(a.
102
73
  )`,`CREATE TABLE IF NOT EXISTS supabase_migrations.seed_files (
103
74
  path text NOT NULL PRIMARY KEY,
104
75
  hash text NOT NULL
105
- )`]}function Sn(a,t){let{schema_migrations:s}=Tn(a),e=t.name===null?"NULL":mi(t.name),i=a==="pg"?ep(t.statements):mi(JSON.stringify(t.statements));return `INSERT INTO ${s} (version, statements, name) VALUES (${mi(t.version)}, ${i}, ${e})`}function ip(a){let{schema_migrations:t}=Tn(a);return `SELECT version FROM ${t} ORDER BY version ASC`}async function rp(a,t){if(a.dialect==="postgres"||a.config.ddlDialect==="sqlite")return t;let e=await a.translateDdl(t);return typeof e=="string"?e:e.ddl??t}function np(a){return a.split(/;\s*(?:\n|$)/).map(t=>t.trim()).filter(t=>t.length>0)}async function An(a){let t=ns(a),e=sp(t).map(r=>r.trim()).join(`;
106
- `)+";",i=await rp(a,e);for(let r of np(i))await a.exec(r);}async function Cn(a){let t=ns(a);return ((await a.exec(ip(t)))?.rows??[]).map(e=>e.version)}async function ap(a){await up(a),await An(a.connection);let t=new Set(await Cn(a.connection)),s=await Zt(a),e=ns(a.connection),i=[],r=[];for(let n of s){if(t.has(n.version)){r.push(n);continue}let o=De(n.sql),u;if(e==="pg-flat"){let p=await a.connection.translateDdl(n.sql),f=typeof p=="string"?p:p.ddl??"";u=De(f);}else u=o;let l=Sn(e,{version:n.version,name:n.name,statements:o});await a.connection.transaction([...u,l],{intent:"migration"}),i.push(n);}return s.length>0&&e!=="sqlite"&&await op(a,s),{applied:i,skipped:r}}async function op(a,t){let s=t.map(n=>n.sql).join(`
107
- `);if(!s.trim())return;let e=a.connection;if(typeof e.translateDdl!="function"||typeof e.updateDeparseInfo!="function")return;let i=await e.translateDdl(s),r=e.config?.translation?.deparse??{};e.updateDeparseInfo({...r,...i});}async function up(a){let t=a.connection.config?.baseSchema;if(!t||!t.trim())return;let s=a.connection,e=t;if(s.dialect==="sqlite"&&s.config.ddlDialect!=="sqlite"&&s.translateDdl){let i=await s.translateDdl(t);e=typeof i=="string"?i:i.ddl??t;}for(let i of De(e))try{await s.exec(i);}catch{}}/*! Bundled license information:
76
+ )`]}function Zi(e,t){let{schema_migrations:n}=Qi(e),r=t.name===null?"NULL":sr(t.name),i=e==="pg"?Lc(t.statements):sr(JSON.stringify(t.statements));return `INSERT INTO ${n} (version, statements, name) VALUES (${sr(t.version)}, ${i}, ${r})`}function Oc(e){let{schema_migrations:t}=Qi(e);return `SELECT version FROM ${t} ORDER BY version ASC`}async function Ic(e,t){if(e.dialect==="postgres"||e.config.ddlDialect==="sqlite")return t;let r=await e.translateDdl(t);return typeof r=="string"?r:r.ddl??t}function Dc(e){return e.split(/;\s*(?:\n|$)/).map(t=>t.trim()).filter(t=>t.length>0)}async function ts(e){let t=Qe(e),r=Fc(t).map(s=>s.trim()).join(`;
77
+ `)+";",i=await Ic(e,r);for(let s of Dc(i))await e.exec(s);}async function es(e){let t=Qe(e);return ((await e.exec(Oc(t)))?.rows??[]).map(r=>r.version)}async function jc(e){await Hc(e),await ts(e.connection);let t=new Set(await es(e.connection)),n=await Yt(e),r=Qe(e.connection),i=[],s=[];for(let o of n){if(t.has(o.version)){s.push(o);continue}let a=Ce(o.sql),l;if(r==="pg-flat"){let u=await e.connection.translateDdl(o.sql),p=typeof u=="string"?u:u.ddl??"";l=Ce(p);}else l=a;let c=Zi(r,{version:o.version,name:o.name,statements:a});await e.connection.transaction([...l,c],{intent:"migration"}),i.push(o);}return n.length>0&&r!=="sqlite"&&await Mc(e,n),{applied:i,skipped:s}}async function Mc(e,t){let n=t.map(o=>o.sql).join(`
78
+ `);if(!n.trim())return;let r=e.connection;if(typeof r.translateDdl!="function"||typeof r.updateDeparseInfo!="function")return;let i=await r.translateDdl(n),s=r.config?.translation?.deparse??{};r.updateDeparseInfo({...s,...i});}async function Hc(e){let t=e.connection.config?.baseSchema;if(!t||!t.trim())return;let n=e.connection,r=t;if(n.dialect==="sqlite"&&n.config.ddlDialect!=="sqlite"&&n.translateDdl){let i=await n.translateDdl(t);r=typeof i=="string"?i:i.ddl??t;}for(let i of Ce(r))try{await n.exec(i);}catch{}}/*! Bundled license information:
108
79
 
109
80
  smol-toml/dist/error.js:
110
81
  smol-toml/dist/util.js:
@@ -145,4 +116,4 @@ smol-toml/dist/index.js:
145
116
 
146
117
  chokidar/index.js:
147
118
  (*! chokidar - MIT License (c) 2012 Paul Miller (paulmillr.com) *)
148
- */export{ap as applyPendingMigrations,fa as createApi,ma as ensureInitialStructure,Vl as ensureSchema,Zt as listMigrationFiles,ol as migrationsDir,Kl as watchSchema};
119
+ */export{jc as applyPendingMigrations,Gs as createApi,Ys as ensureInitialStructure,_c as ensureSchema,Yt as listMigrationFiles,Bl as migrationsDir,Pc as watchSchema};