@tensorix/metahub 0.3.1 → 0.3.2

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/webui-fmt.js CHANGED
@@ -422,4 +422,4 @@ ${this.dialectInfo()}`)}dialectInfo(){if(this.dialectName==="sql")return`This li
422
422
  If possible, please select a more specific dialect (like sqlite, postgresql, etc).`;else return`SQL dialect used: "${this.dialectName}".`}getWhitespace(){Rx.lastIndex=this.index;let e=Rx.exec(this.input);if(e)return this.index+=e[0].length,e[0];return}getNextToken(){for(let e of this.rules){let t=this.match(e);if(t)return t}return}match(e){e.regex.lastIndex=this.index;let t=e.regex.exec(this.input);if(t){let r=t[0],n={type:e.type,raw:r,text:e.text?e.text(r):r,start:this.index};if(e.key)n.key=e.key(r);return this.index+=r.length,n}return}}var p8=/\/\*/uy,vse=/[\s\S]/uy,Tse=/\*\//uy;class Hx{constructor(){this.lastIndex=0}exec(e){let t="",r,n=0;if(r=this.matchSection(p8,e))t+=r,n++;else return null;while(n>0)if(r=this.matchSection(p8,e))t+=r,n++;else if(r=this.matchSection(Tse,e))t+=r,n--;else if(r=this.matchSection(vse,e))t+=r;else return null;return[t]}matchSection(e,t){e.lastIndex=this.lastIndex;let r=e.exec(t);if(r)this.lastIndex+=r[0].length;return r?r[0]:null}}class py{constructor(e,t){this.cfg=e,this.dialectName=t,this.rulesBeforeParams=this.buildRulesBeforeParams(e),this.rulesAfterParams=this.buildRulesAfterParams(e)}tokenize(e,t){let r=[...this.rulesBeforeParams,...this.buildParamRules(this.cfg,t),...this.rulesAfterParams],n=new cy(r,this.dialectName).tokenize(e);return this.cfg.postProcess?this.cfg.postProcess(n):n}buildRulesBeforeParams(e){var t,r,n;return this.validRules([{type:oe.DISABLE_COMMENT,regex:/(\/\* *sql-formatter-disable *\*\/[\s\S]*?(?:\/\* *sql-formatter-enable *\*\/|$))/uy},{type:oe.BLOCK_COMMENT,regex:e.nestedBlockComments?new Hx:/(\/\*[^]*?\*\/)/uy},{type:oe.LINE_COMMENT,regex:o8((t=e.lineCommentTypes)!==null&&t!==void 0?t:["--"])},{type:oe.QUOTED_IDENTIFIER,regex:qx(e.identTypes)},{type:oe.NUMBER,regex:e.underscoresInNumbers?/(?:0x[0-9a-fA-F_]+|0b[01_]+|(?:-\s*)?(?:[0-9_]*\.[0-9_]+|[0-9_]+(?:\.[0-9_]*)?)(?:[eE][-+]?[0-9_]+(?:\.[0-9_]+)?)?)(?![\w\p{Alphabetic}])/uy:/(?:0x[0-9a-fA-F]+|0b[01]+|(?:-\s*)?(?:[0-9]*\.[0-9]+|[0-9]+(?:\.[0-9]*)?)(?:[eE][-+]?[0-9]+(?:\.[0-9]+)?)?)(?![\w\p{Alphabetic}])/uy},{type:oe.RESERVED_KEYWORD_PHRASE,regex:Ti((r=e.reservedKeywordPhrases)!==null&&r!==void 0?r:[],e.identChars),text:er},{type:oe.RESERVED_DATA_TYPE_PHRASE,regex:Ti((n=e.reservedDataTypePhrases)!==null&&n!==void 0?n:[],e.identChars),text:er},{type:oe.CASE,regex:/CASE\b/iuy,text:er},{type:oe.END,regex:/END\b/iuy,text:er},{type:oe.BETWEEN,regex:/BETWEEN\b/iuy,text:er},{type:oe.LIMIT,regex:e.reservedClauses.includes("LIMIT")?/LIMIT\b/iuy:void 0,text:er},{type:oe.RESERVED_CLAUSE,regex:Ti(e.reservedClauses,e.identChars),text:er},{type:oe.RESERVED_SELECT,regex:Ti(e.reservedSelect,e.identChars),text:er},{type:oe.RESERVED_SET_OPERATION,regex:Ti(e.reservedSetOperations,e.identChars),text:er},{type:oe.WHEN,regex:/WHEN\b/iuy,text:er},{type:oe.ELSE,regex:/ELSE\b/iuy,text:er},{type:oe.THEN,regex:/THEN\b/iuy,text:er},{type:oe.RESERVED_JOIN,regex:Ti(e.reservedJoins,e.identChars),text:er},{type:oe.AND,regex:/AND\b/iuy,text:er},{type:oe.OR,regex:/OR\b/iuy,text:er},{type:oe.XOR,regex:e.supportsXor?/XOR\b/iuy:void 0,text:er},...e.operatorKeyword?[{type:oe.OPERATOR,regex:/OPERATOR *\([^)]+\)/iuy}]:[],{type:oe.RESERVED_FUNCTION_NAME,regex:Ti(e.reservedFunctionNames,e.identChars),text:er},{type:oe.RESERVED_DATA_TYPE,regex:Ti(e.reservedDataTypes,e.identChars),text:er},{type:oe.RESERVED_KEYWORD,regex:Ti(e.reservedKeywords,e.identChars),text:er}])}buildRulesAfterParams(e){var t,r;return this.validRules([{type:oe.VARIABLE,regex:e.variableTypes?l8(e.variableTypes):void 0},{type:oe.STRING,regex:qx(e.stringTypes)},{type:oe.IDENTIFIER,regex:c8(e.identChars)},{type:oe.DELIMITER,regex:/[;]/uy},{type:oe.COMMA,regex:/[,]/y},{type:oe.OPEN_PAREN,regex:jx("open",e.extraParens)},{type:oe.CLOSE_PAREN,regex:jx("close",e.extraParens)},{type:oe.OPERATOR,regex:Ux(["+","-","/",">","<","=","<>","<=",">=","!=",...(t=e.operators)!==null&&t!==void 0?t:[]])},{type:oe.ASTERISK,regex:/[*]/uy},{type:oe.PROPERTY_ACCESS_OPERATOR,regex:Ux([".",...(r=e.propertyAccessOperators)!==null&&r!==void 0?r:[]])}])}buildParamRules(e,t){var r,n,i,s,a;let u={named:(t===null||t===void 0?void 0:t.named)||((r=e.paramTypes)===null||r===void 0?void 0:r.named)||[],quoted:(t===null||t===void 0?void 0:t.quoted)||((n=e.paramTypes)===null||n===void 0?void 0:n.quoted)||[],numbered:(t===null||t===void 0?void 0:t.numbered)||((i=e.paramTypes)===null||i===void 0?void 0:i.numbered)||[],positional:typeof(t===null||t===void 0?void 0:t.positional)==="boolean"?t.positional:(s=e.paramTypes)===null||s===void 0?void 0:s.positional,custom:(t===null||t===void 0?void 0:t.custom)||((a=e.paramTypes)===null||a===void 0?void 0:a.custom)||[]};return this.validRules([{type:oe.NAMED_PARAMETER,regex:uy(u.named,Vx(e.paramChars||e.identChars)),key:(l)=>l.slice(1)},{type:oe.QUOTED_PARAMETER,regex:uy(u.quoted,$x(e.identTypes)),key:(l)=>(({tokenKey:c,quoteChar:p})=>c.replace(new RegExp(un("\\"+p),"gu"),p))({tokenKey:l.slice(2,-1),quoteChar:l.slice(-1)})},{type:oe.NUMBERED_PARAMETER,regex:uy(u.numbered,"[0-9]+"),key:(l)=>l.slice(1)},{type:oe.POSITIONAL_PARAMETER,regex:u.positional?/[?]/y:void 0},...u.custom.map((l)=>{var c;return{type:oe.CUSTOM_PARAMETER,regex:as(l.regex),key:(c=l.key)!==null&&c!==void 0?c:(p)=>p}})])}validRules(e){return e.filter((t)=>Boolean(t.regex))}}var er=(e)=>Lu(e.toUpperCase());var h8=new Map,d8=(e)=>{let t=h8.get(e);if(!t)t=kse(e),h8.set(e,t);return t},kse=(e)=>({tokenizer:new py(e.tokenizerOptions,e.name),formatOptions:wse(e)}),wse=({tokenizerOptions:e,formatOptions:t})=>{var r,n;return{alwaysDenseOperators:t.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(t.onelineClauses.map((i)=>[i,!0])),tabularOnelineClauses:Object.fromEntries(((r=t.tabularOnelineClauses)!==null&&r!==void 0?r:t.onelineClauses).map((i)=>[i,!0])),identifierDashes:Boolean((n=e.identChars)===null||n===void 0?void 0:n.dashes)}};function f8(e){if(e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight")return" ".repeat(10);if(e.useTabs)return"\t";return" ".repeat(e.tabWidth)}function io(e){return e.indentStyle==="tabularLeft"||e.indentStyle==="tabularRight"}class hy{constructor(e){this.params=e,this.index=0}get({key:e,text:t}){if(!this.params)return t;if(e)return this.params[e];return this.params[this.index++]}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(e){this.index=e}}var C8=$b(D8(),1);function y8(e){return e.map(Sse).map(_se).map(Nse).map(Ise).map(Pse)}var Sse=(e,t,r)=>{if(ay(e.type)){let n=Bse(r,t);if(n&&n.type===oe.PROPERTY_ACCESS_OPERATOR)return Object.assign(Object.assign({},e),{type:oe.IDENTIFIER,text:e.raw});let i=Ou(r,t);if(i&&i.type===oe.PROPERTY_ACCESS_OPERATOR)return Object.assign(Object.assign({},e),{type:oe.IDENTIFIER,text:e.raw})}return e},_se=(e,t,r)=>{if(e.type===oe.RESERVED_FUNCTION_NAME){let n=Ou(r,t);if(!n||!g8(n))return Object.assign(Object.assign({},e),{type:oe.IDENTIFIER,text:e.raw})}return e},Nse=(e,t,r)=>{if(e.type===oe.RESERVED_DATA_TYPE){let n=Ou(r,t);if(n&&g8(n))return Object.assign(Object.assign({},e),{type:oe.RESERVED_PARAMETERIZED_DATA_TYPE})}return e},Ise=(e,t,r)=>{if(e.type===oe.IDENTIFIER){let n=Ou(r,t);if(n&&E8(n))return Object.assign(Object.assign({},e),{type:oe.ARRAY_IDENTIFIER})}return e},Pse=(e,t,r)=>{if(e.type===oe.RESERVED_DATA_TYPE){let n=Ou(r,t);if(n&&E8(n))return Object.assign(Object.assign({},e),{type:oe.ARRAY_KEYWORD})}return e},Bse=(e,t)=>Ou(e,t,-1),Ou=(e,t,r=1)=>{let n=1;while(e[t+n*r]&&Lse(e[t+n*r]))n++;return e[t+n*r]},g8=(e)=>e.type===oe.OPEN_PAREN&&e.text==="(",E8=(e)=>e.type===oe.OPEN_PAREN&&e.text==="[",Lse=(e)=>e.type===oe.BLOCK_COMMENT||e.type===oe.LINE_COMMENT;class Mu{constructor(e){this.tokenize=e,this.index=0,this.tokens=[],this.input=""}reset(e,t){this.input=e,this.index=0,this.tokens=this.tokenize(e)}next(){return this.tokens[this.index++]}save(){}formatError(e){let{line:t,col:r}=ly(this.input,e.start);return`Parse error at token: ${e.text} at line ${t} column ${r}`}has(e){return e in oe}}var Oe;(function(e){e.statement="statement",e.clause="clause",e.set_operation="set_operation",e.function_call="function_call",e.parameterized_data_type="parameterized_data_type",e.array_subscript="array_subscript",e.property_access="property_access",e.parenthesis="parenthesis",e.between_predicate="between_predicate",e.case_expression="case_expression",e.case_when="case_when",e.case_else="case_else",e.limit_clause="limit_clause",e.all_columns_asterisk="all_columns_asterisk",e.literal="literal",e.identifier="identifier",e.keyword="keyword",e.data_type="data_type",e.parameter="parameter",e.operator="operator",e.comma="comma",e.line_comment="line_comment",e.block_comment="block_comment",e.disable_comment="disable_comment"})(Oe=Oe||(Oe={}));function zx(e){return e[0]}var Ge=new Mu((e)=>[]),so=([[e]])=>e,or=(e)=>({type:Oe.keyword,tokenType:e.type,text:e.text,raw:e.raw}),x8=(e)=>({type:Oe.data_type,text:e.text,raw:e.raw}),ur=(e,{leading:t,trailing:r})=>{if(t===null||t===void 0?void 0:t.length)e=Object.assign(Object.assign({},e),{leadingComments:t});if(r===null||r===void 0?void 0:r.length)e=Object.assign(Object.assign({},e),{trailingComments:r});return e},Ose=(e,{leading:t,trailing:r})=>{if(t===null||t===void 0?void 0:t.length){let[n,...i]=e;e=[ur(n,{leading:t}),...i]}if(r===null||r===void 0?void 0:r.length){let n=e.slice(0,-1),i=e[e.length-1];e=[...n,ur(i,{trailing:r})]}return e},Mse={Lexer:Ge,ParserRules:[{name:"main$ebnf$1",symbols:[]},{name:"main$ebnf$1",symbols:["main$ebnf$1","statement"],postprocess:(e)=>e[0].concat([e[1]])},{name:"main",symbols:["main$ebnf$1"],postprocess:([e])=>{let t=e[e.length-1];if(t&&!t.hasSemicolon)return t.children.length>0?e:e.slice(0,-1);else return e}},{name:"statement$subexpression$1",symbols:[Ge.has("DELIMITER")?{type:"DELIMITER"}:DELIMITER]},{name:"statement$subexpression$1",symbols:[Ge.has("EOF")?{type:"EOF"}:EOF]},{name:"statement",symbols:["expressions_or_clauses","statement$subexpression$1"],postprocess:([e,[t]])=>({type:Oe.statement,children:e,hasSemicolon:t.type===oe.DELIMITER})},{name:"expressions_or_clauses$ebnf$1",symbols:[]},{name:"expressions_or_clauses$ebnf$1",symbols:["expressions_or_clauses$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"expressions_or_clauses$ebnf$2",symbols:[]},{name:"expressions_or_clauses$ebnf$2",symbols:["expressions_or_clauses$ebnf$2","clause"],postprocess:(e)=>e[0].concat([e[1]])},{name:"expressions_or_clauses",symbols:["expressions_or_clauses$ebnf$1","expressions_or_clauses$ebnf$2"],postprocess:([e,t])=>[...e,...t]},{name:"clause$subexpression$1",symbols:["limit_clause"]},{name:"clause$subexpression$1",symbols:["select_clause"]},{name:"clause$subexpression$1",symbols:["other_clause"]},{name:"clause$subexpression$1",symbols:["set_operation"]},{name:"clause",symbols:["clause$subexpression$1"],postprocess:so},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["free_form_sql"]},{name:"limit_clause$ebnf$1$subexpression$1$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"limit_clause$ebnf$1$subexpression$1",symbols:[Ge.has("COMMA")?{type:"COMMA"}:COMMA,"limit_clause$ebnf$1$subexpression$1$ebnf$1"]},{name:"limit_clause$ebnf$1",symbols:["limit_clause$ebnf$1$subexpression$1"],postprocess:zx},{name:"limit_clause$ebnf$1",symbols:[],postprocess:()=>null},{name:"limit_clause",symbols:[Ge.has("LIMIT")?{type:"LIMIT"}:LIMIT,"_","expression_chain_","limit_clause$ebnf$1"],postprocess:([e,t,r,n])=>{if(n){let[i,s]=n;return{type:Oe.limit_clause,limitKw:ur(or(e),{trailing:t}),offset:r,count:s}}else return{type:Oe.limit_clause,limitKw:ur(or(e),{trailing:t}),count:r}}},{name:"select_clause$subexpression$1$ebnf$1",symbols:[]},{name:"select_clause$subexpression$1$ebnf$1",symbols:["select_clause$subexpression$1$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["all_columns_asterisk","select_clause$subexpression$1$ebnf$1"]},{name:"select_clause$subexpression$1$ebnf$2",symbols:[]},{name:"select_clause$subexpression$1$ebnf$2",symbols:["select_clause$subexpression$1$ebnf$2","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"select_clause$subexpression$1",symbols:["asteriskless_free_form_sql","select_clause$subexpression$1$ebnf$2"]},{name:"select_clause",symbols:[Ge.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT,"select_clause$subexpression$1"],postprocess:([e,[t,r]])=>({type:Oe.clause,nameKw:or(e),children:[t,...r]})},{name:"select_clause",symbols:[Ge.has("RESERVED_SELECT")?{type:"RESERVED_SELECT"}:RESERVED_SELECT],postprocess:([e])=>({type:Oe.clause,nameKw:or(e),children:[]})},{name:"all_columns_asterisk",symbols:[Ge.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK],postprocess:()=>({type:Oe.all_columns_asterisk})},{name:"other_clause$ebnf$1",symbols:[]},{name:"other_clause$ebnf$1",symbols:["other_clause$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"other_clause",symbols:[Ge.has("RESERVED_CLAUSE")?{type:"RESERVED_CLAUSE"}:RESERVED_CLAUSE,"other_clause$ebnf$1"],postprocess:([e,t])=>({type:Oe.clause,nameKw:or(e),children:t})},{name:"set_operation$ebnf$1",symbols:[]},{name:"set_operation$ebnf$1",symbols:["set_operation$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"set_operation",symbols:[Ge.has("RESERVED_SET_OPERATION")?{type:"RESERVED_SET_OPERATION"}:RESERVED_SET_OPERATION,"set_operation$ebnf$1"],postprocess:([e,t])=>({type:Oe.set_operation,nameKw:or(e),children:t})},{name:"expression_chain_$ebnf$1",symbols:["expression_with_comments_"]},{name:"expression_chain_$ebnf$1",symbols:["expression_chain_$ebnf$1","expression_with_comments_"],postprocess:(e)=>e[0].concat([e[1]])},{name:"expression_chain_",symbols:["expression_chain_$ebnf$1"],postprocess:zx},{name:"expression_chain$ebnf$1",symbols:[]},{name:"expression_chain$ebnf$1",symbols:["expression_chain$ebnf$1","_expression_with_comments"],postprocess:(e)=>e[0].concat([e[1]])},{name:"expression_chain",symbols:["expression","expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"andless_expression_chain$ebnf$1",symbols:[]},{name:"andless_expression_chain$ebnf$1",symbols:["andless_expression_chain$ebnf$1","_andless_expression_with_comments"],postprocess:(e)=>e[0].concat([e[1]])},{name:"andless_expression_chain",symbols:["andless_expression","andless_expression_chain$ebnf$1"],postprocess:([e,t])=>[e,...t]},{name:"expression_with_comments_",symbols:["expression","_"],postprocess:([e,t])=>ur(e,{trailing:t})},{name:"_expression_with_comments",symbols:["_","expression"],postprocess:([e,t])=>ur(t,{leading:e})},{name:"_andless_expression_with_comments",symbols:["_","andless_expression"],postprocess:([e,t])=>ur(t,{leading:e})},{name:"free_form_sql$subexpression$1",symbols:["asteriskless_free_form_sql"]},{name:"free_form_sql$subexpression$1",symbols:["asterisk"]},{name:"free_form_sql",symbols:["free_form_sql$subexpression$1"],postprocess:so},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["logic_operator"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comma"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["comment"]},{name:"asteriskless_free_form_sql$subexpression$1",symbols:["other_keyword"]},{name:"asteriskless_free_form_sql",symbols:["asteriskless_free_form_sql$subexpression$1"],postprocess:so},{name:"expression$subexpression$1",symbols:["andless_expression"]},{name:"expression$subexpression$1",symbols:["logic_operator"]},{name:"expression",symbols:["expression$subexpression$1"],postprocess:so},{name:"andless_expression$subexpression$1",symbols:["asteriskless_andless_expression"]},{name:"andless_expression$subexpression$1",symbols:["asterisk"]},{name:"andless_expression",symbols:["andless_expression$subexpression$1"],postprocess:so},{name:"asteriskless_andless_expression$subexpression$1",symbols:["atomic_expression"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["between_predicate"]},{name:"asteriskless_andless_expression$subexpression$1",symbols:["case_expression"]},{name:"asteriskless_andless_expression",symbols:["asteriskless_andless_expression$subexpression$1"],postprocess:so},{name:"atomic_expression$subexpression$1",symbols:["array_subscript"]},{name:"atomic_expression$subexpression$1",symbols:["function_call"]},{name:"atomic_expression$subexpression$1",symbols:["property_access"]},{name:"atomic_expression$subexpression$1",symbols:["parenthesis"]},{name:"atomic_expression$subexpression$1",symbols:["curly_braces"]},{name:"atomic_expression$subexpression$1",symbols:["square_brackets"]},{name:"atomic_expression$subexpression$1",symbols:["operator"]},{name:"atomic_expression$subexpression$1",symbols:["identifier"]},{name:"atomic_expression$subexpression$1",symbols:["parameter"]},{name:"atomic_expression$subexpression$1",symbols:["literal"]},{name:"atomic_expression$subexpression$1",symbols:["data_type"]},{name:"atomic_expression$subexpression$1",symbols:["keyword"]},{name:"atomic_expression",symbols:["atomic_expression$subexpression$1"],postprocess:so},{name:"array_subscript",symbols:[Ge.has("ARRAY_IDENTIFIER")?{type:"ARRAY_IDENTIFIER"}:ARRAY_IDENTIFIER,"_","square_brackets"],postprocess:([e,t,r])=>({type:Oe.array_subscript,array:ur({type:Oe.identifier,quoted:!1,text:e.text},{trailing:t}),parenthesis:r})},{name:"array_subscript",symbols:[Ge.has("ARRAY_KEYWORD")?{type:"ARRAY_KEYWORD"}:ARRAY_KEYWORD,"_","square_brackets"],postprocess:([e,t,r])=>({type:Oe.array_subscript,array:ur(or(e),{trailing:t}),parenthesis:r})},{name:"function_call",symbols:[Ge.has("RESERVED_FUNCTION_NAME")?{type:"RESERVED_FUNCTION_NAME"}:RESERVED_FUNCTION_NAME,"_","parenthesis"],postprocess:([e,t,r])=>({type:Oe.function_call,nameKw:ur(or(e),{trailing:t}),parenthesis:r})},{name:"parenthesis",symbols:[{literal:"("},"expressions_or_clauses",{literal:")"}],postprocess:([e,t,r])=>({type:Oe.parenthesis,children:t,openParen:"(",closeParen:")"})},{name:"curly_braces$ebnf$1",symbols:[]},{name:"curly_braces$ebnf$1",symbols:["curly_braces$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"curly_braces",symbols:[{literal:"{"},"curly_braces$ebnf$1",{literal:"}"}],postprocess:([e,t,r])=>({type:Oe.parenthesis,children:t,openParen:"{",closeParen:"}"})},{name:"square_brackets$ebnf$1",symbols:[]},{name:"square_brackets$ebnf$1",symbols:["square_brackets$ebnf$1","free_form_sql"],postprocess:(e)=>e[0].concat([e[1]])},{name:"square_brackets",symbols:[{literal:"["},"square_brackets$ebnf$1",{literal:"]"}],postprocess:([e,t,r])=>({type:Oe.parenthesis,children:t,openParen:"[",closeParen:"]"})},{name:"property_access$subexpression$1",symbols:["identifier"]},{name:"property_access$subexpression$1",symbols:["array_subscript"]},{name:"property_access$subexpression$1",symbols:["all_columns_asterisk"]},{name:"property_access$subexpression$1",symbols:["parameter"]},{name:"property_access",symbols:["atomic_expression","_",Ge.has("PROPERTY_ACCESS_OPERATOR")?{type:"PROPERTY_ACCESS_OPERATOR"}:PROPERTY_ACCESS_OPERATOR,"_","property_access$subexpression$1"],postprocess:([e,t,r,n,[i]])=>{return{type:Oe.property_access,object:ur(e,{trailing:t}),operator:r.text,property:ur(i,{leading:n})}}},{name:"between_predicate",symbols:[Ge.has("BETWEEN")?{type:"BETWEEN"}:BETWEEN,"_","andless_expression_chain","_",Ge.has("AND")?{type:"AND"}:AND,"_","andless_expression"],postprocess:([e,t,r,n,i,s,a])=>({type:Oe.between_predicate,betweenKw:or(e),expr1:Ose(r,{leading:t,trailing:n}),andKw:or(i),expr2:[ur(a,{leading:s})]})},{name:"case_expression$ebnf$1",symbols:["expression_chain_"],postprocess:zx},{name:"case_expression$ebnf$1",symbols:[],postprocess:()=>null},{name:"case_expression$ebnf$2",symbols:[]},{name:"case_expression$ebnf$2",symbols:["case_expression$ebnf$2","case_clause"],postprocess:(e)=>e[0].concat([e[1]])},{name:"case_expression",symbols:[Ge.has("CASE")?{type:"CASE"}:CASE,"_","case_expression$ebnf$1","case_expression$ebnf$2",Ge.has("END")?{type:"END"}:END],postprocess:([e,t,r,n,i])=>({type:Oe.case_expression,caseKw:ur(or(e),{trailing:t}),endKw:or(i),expr:r||[],clauses:n})},{name:"case_clause",symbols:[Ge.has("WHEN")?{type:"WHEN"}:WHEN,"_","expression_chain_",Ge.has("THEN")?{type:"THEN"}:THEN,"_","expression_chain_"],postprocess:([e,t,r,n,i,s])=>({type:Oe.case_when,whenKw:ur(or(e),{trailing:t}),thenKw:ur(or(n),{trailing:i}),condition:r,result:s})},{name:"case_clause",symbols:[Ge.has("ELSE")?{type:"ELSE"}:ELSE,"_","expression_chain_"],postprocess:([e,t,r])=>({type:Oe.case_else,elseKw:ur(or(e),{trailing:t}),result:r})},{name:"comma$subexpression$1",symbols:[Ge.has("COMMA")?{type:"COMMA"}:COMMA]},{name:"comma",symbols:["comma$subexpression$1"],postprocess:([[e]])=>({type:Oe.comma})},{name:"asterisk$subexpression$1",symbols:[Ge.has("ASTERISK")?{type:"ASTERISK"}:ASTERISK]},{name:"asterisk",symbols:["asterisk$subexpression$1"],postprocess:([[e]])=>({type:Oe.operator,text:e.text})},{name:"operator$subexpression$1",symbols:[Ge.has("OPERATOR")?{type:"OPERATOR"}:OPERATOR]},{name:"operator",symbols:["operator$subexpression$1"],postprocess:([[e]])=>({type:Oe.operator,text:e.text})},{name:"identifier$subexpression$1",symbols:[Ge.has("IDENTIFIER")?{type:"IDENTIFIER"}:IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[Ge.has("QUOTED_IDENTIFIER")?{type:"QUOTED_IDENTIFIER"}:QUOTED_IDENTIFIER]},{name:"identifier$subexpression$1",symbols:[Ge.has("VARIABLE")?{type:"VARIABLE"}:VARIABLE]},{name:"identifier",symbols:["identifier$subexpression$1"],postprocess:([[e]])=>({type:Oe.identifier,quoted:e.type!=="IDENTIFIER",text:e.text})},{name:"parameter$subexpression$1",symbols:[Ge.has("NAMED_PARAMETER")?{type:"NAMED_PARAMETER"}:NAMED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[Ge.has("QUOTED_PARAMETER")?{type:"QUOTED_PARAMETER"}:QUOTED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[Ge.has("NUMBERED_PARAMETER")?{type:"NUMBERED_PARAMETER"}:NUMBERED_PARAMETER]},{name:"parameter$subexpression$1",symbols:[Ge.has("POSITIONAL_PARAMETER")?{type:"POSITIONAL_PARAMETER"}:POSITIONAL_PARAMETER]},{name:"parameter$subexpression$1",symbols:[Ge.has("CUSTOM_PARAMETER")?{type:"CUSTOM_PARAMETER"}:CUSTOM_PARAMETER]},{name:"parameter",symbols:["parameter$subexpression$1"],postprocess:([[e]])=>({type:Oe.parameter,key:e.key,text:e.text})},{name:"literal$subexpression$1",symbols:[Ge.has("NUMBER")?{type:"NUMBER"}:NUMBER]},{name:"literal$subexpression$1",symbols:[Ge.has("STRING")?{type:"STRING"}:STRING]},{name:"literal",symbols:["literal$subexpression$1"],postprocess:([[e]])=>({type:Oe.literal,text:e.text})},{name:"keyword$subexpression$1",symbols:[Ge.has("RESERVED_KEYWORD")?{type:"RESERVED_KEYWORD"}:RESERVED_KEYWORD]},{name:"keyword$subexpression$1",symbols:[Ge.has("RESERVED_KEYWORD_PHRASE")?{type:"RESERVED_KEYWORD_PHRASE"}:RESERVED_KEYWORD_PHRASE]},{name:"keyword$subexpression$1",symbols:[Ge.has("RESERVED_JOIN")?{type:"RESERVED_JOIN"}:RESERVED_JOIN]},{name:"keyword",symbols:["keyword$subexpression$1"],postprocess:([[e]])=>or(e)},{name:"data_type$subexpression$1",symbols:[Ge.has("RESERVED_DATA_TYPE")?{type:"RESERVED_DATA_TYPE"}:RESERVED_DATA_TYPE]},{name:"data_type$subexpression$1",symbols:[Ge.has("RESERVED_DATA_TYPE_PHRASE")?{type:"RESERVED_DATA_TYPE_PHRASE"}:RESERVED_DATA_TYPE_PHRASE]},{name:"data_type",symbols:["data_type$subexpression$1"],postprocess:([[e]])=>x8(e)},{name:"data_type",symbols:[Ge.has("RESERVED_PARAMETERIZED_DATA_TYPE")?{type:"RESERVED_PARAMETERIZED_DATA_TYPE"}:RESERVED_PARAMETERIZED_DATA_TYPE,"_","parenthesis"],postprocess:([e,t,r])=>({type:Oe.parameterized_data_type,dataType:ur(x8(e),{trailing:t}),parenthesis:r})},{name:"logic_operator$subexpression$1",symbols:[Ge.has("AND")?{type:"AND"}:AND]},{name:"logic_operator$subexpression$1",symbols:[Ge.has("OR")?{type:"OR"}:OR]},{name:"logic_operator$subexpression$1",symbols:[Ge.has("XOR")?{type:"XOR"}:XOR]},{name:"logic_operator",symbols:["logic_operator$subexpression$1"],postprocess:([[e]])=>or(e)},{name:"other_keyword$subexpression$1",symbols:[Ge.has("WHEN")?{type:"WHEN"}:WHEN]},{name:"other_keyword$subexpression$1",symbols:[Ge.has("THEN")?{type:"THEN"}:THEN]},{name:"other_keyword$subexpression$1",symbols:[Ge.has("ELSE")?{type:"ELSE"}:ELSE]},{name:"other_keyword$subexpression$1",symbols:[Ge.has("END")?{type:"END"}:END]},{name:"other_keyword",symbols:["other_keyword$subexpression$1"],postprocess:([[e]])=>or(e)},{name:"_$ebnf$1",symbols:[]},{name:"_$ebnf$1",symbols:["_$ebnf$1","comment"],postprocess:(e)=>e[0].concat([e[1]])},{name:"_",symbols:["_$ebnf$1"],postprocess:([e])=>e},{name:"comment",symbols:[Ge.has("LINE_COMMENT")?{type:"LINE_COMMENT"}:LINE_COMMENT],postprocess:([e])=>({type:Oe.line_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[Ge.has("BLOCK_COMMENT")?{type:"BLOCK_COMMENT"}:BLOCK_COMMENT],postprocess:([e])=>({type:Oe.block_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})},{name:"comment",symbols:[Ge.has("DISABLE_COMMENT")?{type:"DISABLE_COMMENT"}:DISABLE_COMMENT],postprocess:([e])=>({type:Oe.disable_comment,text:e.text,precedingWhitespace:e.precedingWhitespace})}],ParserStart:"main"},b8=Mse;var{Parser:Rse,Grammar:jse}=C8.default;function A8(e){let t={},r=new Mu((i)=>[...y8(e.tokenize(i,t)),Dx(i.length)]),n=new Rse(jse.fromCompiled(b8),{lexer:r});return{parse:(i,s)=>{t=s;let{results:a}=n.feed(i);if(a.length===1)return a[0];else if(a.length===0)throw Error("Parse error: Invalid SQL");else throw Error(`Parse error: Ambiguous grammar
423
423
  ${JSON.stringify(a,void 0,2)}`)}}}var ue;(function(e){e[e.SPACE=0]="SPACE",e[e.NO_SPACE=1]="NO_SPACE",e[e.NO_NEWLINE=2]="NO_NEWLINE",e[e.NEWLINE=3]="NEWLINE",e[e.MANDATORY_NEWLINE=4]="MANDATORY_NEWLINE",e[e.INDENT=5]="INDENT",e[e.SINGLE_INDENT=6]="SINGLE_INDENT"})(ue=ue||(ue={}));class Ru{constructor(e){this.indentation=e,this.items=[]}add(...e){for(let t of e)switch(t){case ue.SPACE:this.items.push(ue.SPACE);break;case ue.NO_SPACE:this.trimHorizontalWhitespace();break;case ue.NO_NEWLINE:this.trimWhitespace();break;case ue.NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(ue.NEWLINE);break;case ue.MANDATORY_NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(ue.MANDATORY_NEWLINE);break;case ue.INDENT:this.addIndentation();break;case ue.SINGLE_INDENT:this.items.push(ue.SINGLE_INDENT);break;default:this.items.push(t)}}trimHorizontalWhitespace(){while(Use(Xs(this.items)))this.items.pop()}trimWhitespace(){while($se(Xs(this.items)))this.items.pop()}addNewline(e){if(this.items.length>0)switch(Xs(this.items)){case ue.NEWLINE:this.items.pop(),this.items.push(e);break;case ue.MANDATORY_NEWLINE:break;default:this.items.push(e);break}}addIndentation(){for(let e=0;e<this.indentation.getLevel();e++)this.items.push(ue.SINGLE_INDENT)}toString(){return this.items.map((e)=>this.itemToString(e)).join("")}getLayoutItems(){return this.items}isAtStartOfLine(){for(let e=this.items.length-1;e>=0;e--){let t=this.items[e];if(t===ue.SINGLE_INDENT)continue;return t===ue.NEWLINE||t===ue.MANDATORY_NEWLINE}return!1}itemToString(e){switch(e){case ue.SPACE:return" ";case ue.NEWLINE:case ue.MANDATORY_NEWLINE:return`
424
424
  `;case ue.SINGLE_INDENT:return this.indentation.getSingleIndent();default:return e}}}var Use=(e)=>e===ue.SPACE||e===ue.SINGLE_INDENT,$se=(e)=>e===ue.SPACE||e===ue.SINGLE_INDENT||e===ue.NEWLINE;function fy(e,t){if(t==="standard")return e;let r=[];if(e.length>=10&&e.includes(" "))[e,...r]=e.split(" ");if(t==="tabularLeft")e=e.padEnd(9," ");else e=e.padStart(9," ");return e+["",...r].join(" ")}function Wx(e){return cI(e)||e===oe.RESERVED_CLAUSE||e===oe.RESERVED_SELECT||e===oe.RESERVED_SET_OPERATION||e===oe.RESERVED_JOIN||e===oe.LIMIT}var Gx="top-level",qse="block-level";class ju{constructor(e){this.indent=e,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(Gx)}increaseBlockLevel(){this.indentTypes.push(qse)}decreaseTopLevel(){if(this.indentTypes.length>0&&Xs(this.indentTypes)===Gx)this.indentTypes.pop()}decreaseBlockLevel(){while(this.indentTypes.length>0)if(this.indentTypes.pop()!==Gx)break}}class my extends Ru{constructor(e){super(new ju(""));this.expressionWidth=e,this.length=0,this.trailingSpace=!1}add(...e){if(e.forEach((t)=>this.addToLength(t)),this.length>this.expressionWidth)throw new qp;super.add(...e)}addToLength(e){if(typeof e==="string")this.length+=e.length,this.trailingSpace=!1;else if(e===ue.MANDATORY_NEWLINE||e===ue.NEWLINE)throw new qp;else if(e===ue.INDENT||e===ue.SINGLE_INDENT||e===ue.SPACE){if(!this.trailingSpace)this.length++,this.trailingSpace=!0}else if(e===ue.NO_NEWLINE||e===ue.NO_SPACE){if(this.trailingSpace)this.trailingSpace=!1,this.length--}}}class qp extends Error{}class Uu{constructor({cfg:e,dialectCfg:t,params:r,layout:n,inline:i=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=e,this.dialectCfg=t,this.inline=i,this.params=r,this.layout=n}format(e){this.nodes=e;for(this.index=0;this.index<this.nodes.length;this.index++)this.formatNode(this.nodes[this.index]);return this.layout}formatNode(e){this.formatComments(e.leadingComments),this.formatNodeWithoutComments(e),this.formatComments(e.trailingComments)}formatNodeWithoutComments(e){switch(e.type){case Oe.function_call:return this.formatFunctionCall(e);case Oe.parameterized_data_type:return this.formatParameterizedDataType(e);case Oe.array_subscript:return this.formatArraySubscript(e);case Oe.property_access:return this.formatPropertyAccess(e);case Oe.parenthesis:return this.formatParenthesis(e);case Oe.between_predicate:return this.formatBetweenPredicate(e);case Oe.case_expression:return this.formatCaseExpression(e);case Oe.case_when:return this.formatCaseWhen(e);case Oe.case_else:return this.formatCaseElse(e);case Oe.clause:return this.formatClause(e);case Oe.set_operation:return this.formatSetOperation(e);case Oe.limit_clause:return this.formatLimitClause(e);case Oe.all_columns_asterisk:return this.formatAllColumnsAsterisk(e);case Oe.literal:return this.formatLiteral(e);case Oe.identifier:return this.formatIdentifier(e);case Oe.parameter:return this.formatParameter(e);case Oe.operator:return this.formatOperator(e);case Oe.comma:return this.formatComma(e);case Oe.line_comment:return this.formatLineComment(e);case Oe.block_comment:return this.formatBlockComment(e);case Oe.disable_comment:return this.formatBlockComment(e);case Oe.data_type:return this.formatDataType(e);case Oe.keyword:return this.formatKeywordNode(e)}}formatFunctionCall(e){this.withComments(e.nameKw,()=>{this.layout.add(this.showFunctionKw(e.nameKw))}),this.formatNode(e.parenthesis)}formatParameterizedDataType(e){this.withComments(e.dataType,()=>{this.layout.add(this.showDataType(e.dataType))}),this.formatNode(e.parenthesis)}formatArraySubscript(e){let t;switch(e.array.type){case Oe.data_type:t=this.showDataType(e.array);break;case Oe.keyword:t=this.showKw(e.array);break;default:t=this.showIdentifier(e.array);break}this.withComments(e.array,()=>{this.layout.add(t)}),this.formatNode(e.parenthesis)}formatPropertyAccess(e){this.formatNode(e.object),this.layout.add(ue.NO_SPACE,e.operator),this.formatNode(e.property)}formatParenthesis(e){let t=this.formatInlineExpression(e.children);if(t)this.layout.add(e.openParen),this.layout.add(...t.getLayoutItems()),this.layout.add(ue.NO_SPACE,e.closeParen,ue.SPACE);else{if(this.layout.add(e.openParen,ue.NEWLINE),io(this.cfg))this.layout.add(ue.INDENT),this.layout=this.formatSubExpression(e.children);else this.layout.indentation.increaseBlockLevel(),this.layout.add(ue.INDENT),this.layout=this.formatSubExpression(e.children),this.layout.indentation.decreaseBlockLevel();this.layout.add(ue.NEWLINE,ue.INDENT,e.closeParen,ue.SPACE)}}formatBetweenPredicate(e){this.layout.add(this.showKw(e.betweenKw),ue.SPACE),this.layout=this.formatSubExpression(e.expr1),this.layout.add(ue.NO_SPACE,ue.SPACE,this.showNonTabularKw(e.andKw),ue.SPACE),this.layout=this.formatSubExpression(e.expr2),this.layout.add(ue.SPACE)}formatCaseExpression(e){this.formatNode(e.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(e.expr),this.layout=this.formatSubExpression(e.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(ue.NEWLINE,ue.INDENT),this.formatNode(e.endKw)}formatCaseWhen(e){this.layout.add(ue.NEWLINE,ue.INDENT),this.formatNode(e.whenKw),this.layout=this.formatSubExpression(e.condition),this.formatNode(e.thenKw),this.layout=this.formatSubExpression(e.result)}formatCaseElse(e){this.layout.add(ue.NEWLINE,ue.INDENT),this.formatNode(e.elseKw),this.layout=this.formatSubExpression(e.result)}formatClause(e){if(this.isOnelineClause(e))this.formatClauseInOnelineStyle(e);else if(io(this.cfg))this.formatClauseInTabularStyle(e);else this.formatClauseInIndentedStyle(e)}isOnelineClause(e){if(io(this.cfg))return this.dialectCfg.tabularOnelineClauses[e.nameKw.text];else return this.dialectCfg.onelineClauses[e.nameKw.text]}formatClauseInIndentedStyle(e){this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e.nameKw),ue.NEWLINE),this.layout.indentation.increaseTopLevel(),this.layout.add(ue.INDENT),this.layout=this.formatSubExpression(e.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(e){this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e.nameKw),ue.SPACE),this.layout=this.formatSubExpression(e.children)}formatClauseInTabularStyle(e){this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e.nameKw),ue.SPACE),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(e.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(e){this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e.nameKw),ue.NEWLINE),this.layout.add(ue.INDENT),this.layout=this.formatSubExpression(e.children)}formatLimitClause(e){if(this.withComments(e.limitKw,()=>{this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e.limitKw))}),this.layout.indentation.increaseTopLevel(),io(this.cfg))this.layout.add(ue.SPACE);else this.layout.add(ue.NEWLINE,ue.INDENT);if(e.offset)this.layout=this.formatSubExpression(e.offset),this.layout.add(ue.NO_SPACE,",",ue.SPACE),this.layout=this.formatSubExpression(e.count);else this.layout=this.formatSubExpression(e.count);this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(e){this.layout.add("*",ue.SPACE)}formatLiteral(e){this.layout.add(e.text,ue.SPACE)}formatIdentifier(e){this.layout.add(this.showIdentifier(e),ue.SPACE)}formatParameter(e){this.layout.add(this.params.get(e),ue.SPACE)}formatOperator({text:e}){if(e==="-"&&this.dialectCfg.identifierDashes)this.layout.add(e,ue.SPACE);else if(this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(e))this.layout.add(ue.NO_SPACE,e);else if(e===":")this.layout.add(ue.NO_SPACE,e,ue.SPACE);else this.layout.add(e,ue.SPACE)}formatComma(e){if(!this.inline)this.layout.add(ue.NO_SPACE,",",ue.NEWLINE,ue.INDENT);else this.layout.add(ue.NO_SPACE,",",ue.SPACE)}withComments(e,t){this.formatComments(e.leadingComments),t(),this.formatComments(e.trailingComments)}formatComments(e){if(!e)return;e.forEach((t)=>{if(t.type===Oe.line_comment)this.formatLineComment(t);else this.formatBlockComment(t)})}formatLineComment(e){if(oy(e.precedingWhitespace||""))this.layout.add(ue.NEWLINE,ue.INDENT,e.text,ue.MANDATORY_NEWLINE,ue.INDENT);else if(this.layout.getLayoutItems().length>0)this.layout.add(ue.NO_NEWLINE,ue.SPACE,e.text,ue.MANDATORY_NEWLINE,ue.INDENT);else this.layout.add(e.text,ue.MANDATORY_NEWLINE,ue.INDENT)}formatBlockComment(e){if(e.type===Oe.block_comment&&this.isStandaloneBlockComment(e))this.splitBlockComment(e.text).forEach((t)=>{this.layout.add(ue.NEWLINE,ue.INDENT,t)}),this.layout.add(ue.NEWLINE,ue.INDENT);else this.layout.add(e.text,ue.SPACE)}isStandaloneBlockComment(e){return oy(e.text)||oy(e.precedingWhitespace||"")||this.layout.isAtStartOfLine()}isDocComment(e){let t=e.split(/\n/);return/^\/\*\*?$/.test(t[0])&&t.slice(1,t.length-1).every((r)=>/^\s*\*/.test(r))&&/^\s*\*\/$/.test(Xs(t))}splitBlockComment(e){if(this.isDocComment(e))return e.split(/\n/).map((t)=>{if(/^\s*\*/.test(t))return" "+t.replace(/^\s*/,"");else return t});else return e.split(/\n/).map((t)=>t.replace(/^\s*/,""))}formatSubExpression(e){return new Uu({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(e)}formatInlineExpression(e){let t=this.params.getPositionalParameterIndex();try{return new Uu({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new my(this.cfg.expressionWidth),inline:!0}).format(e)}catch(r){if(r instanceof qp){this.params.setPositionalParameterIndex(t);return}else throw r}}formatKeywordNode(e){switch(e.tokenType){case oe.RESERVED_JOIN:return this.formatJoin(e);case oe.AND:case oe.OR:case oe.XOR:return this.formatLogicalOperator(e);default:return this.formatKeyword(e)}}formatJoin(e){if(io(this.cfg))this.layout.indentation.decreaseTopLevel(),this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e),ue.SPACE),this.layout.indentation.increaseTopLevel();else this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e),ue.SPACE)}formatKeyword(e){this.layout.add(this.showKw(e),ue.SPACE)}formatLogicalOperator(e){if(this.cfg.logicalOperatorNewline==="before")if(io(this.cfg))this.layout.indentation.decreaseTopLevel(),this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e),ue.SPACE),this.layout.indentation.increaseTopLevel();else this.layout.add(ue.NEWLINE,ue.INDENT,this.showKw(e),ue.SPACE);else this.layout.add(this.showKw(e),ue.NEWLINE,ue.INDENT)}formatDataType(e){this.layout.add(this.showDataType(e),ue.SPACE)}showKw(e){if(Wx(e.tokenType))return fy(this.showNonTabularKw(e),this.cfg.indentStyle);else return this.showNonTabularKw(e)}showNonTabularKw(e){switch(this.cfg.keywordCase){case"preserve":return Lu(e.raw);case"upper":return e.text;case"lower":return e.text.toLowerCase()}}showFunctionKw(e){if(Wx(e.tokenType))return fy(this.showNonTabularFunctionKw(e),this.cfg.indentStyle);else return this.showNonTabularFunctionKw(e)}showNonTabularFunctionKw(e){switch(this.cfg.functionCase){case"preserve":return Lu(e.raw);case"upper":return e.text;case"lower":return e.text.toLowerCase()}}showIdentifier(e){if(e.quoted)return e.text;else switch(this.cfg.identifierCase){case"preserve":return e.text;case"upper":return e.text.toUpperCase();case"lower":return e.text.toLowerCase()}}showDataType(e){switch(this.cfg.dataTypeCase){case"preserve":return Lu(e.raw);case"upper":return e.text;case"lower":return e.text.toLowerCase()}}}class Dy{constructor(e,t){this.dialect=e,this.cfg=t,this.params=new hy(this.cfg.params)}format(e){let t=this.parse(e);return this.formatAst(t).trimEnd()}parse(e){return A8(this.dialect.tokenizer).parse(e,this.cfg.paramTypes||{})}formatAst(e){return e.map((t)=>this.formatStatement(t)).join(`
425
- `.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(e){let t=new Uu({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new Ru(new ju(f8(this.cfg)))}).format(e.children);if(!e.hasSemicolon);else if(this.cfg.newlineBeforeSemicolon)t.add(ue.NEWLINE,";");else t.add(ue.NO_NEWLINE,";");return t.toString()}}class $u extends Error{}function F8(e){let t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(let r of t)if(r in e)throw new $u(`${r} config is no more supported.`);if(e.expressionWidth<=0)throw new $u(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!Vse(e.params))console.warn('WARNING: All "params" option values should be strings.');if(e.paramTypes&&!Hse(e.paramTypes))throw new $u("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function Vse(e){return(e instanceof Array?e:Object.values(e)).every((r)=>typeof r==="string")}function Hse(e){if(e.custom&&Array.isArray(e.custom))return e.custom.every((t)=>t.regex!=="");return!0}var zse=function(e,t){var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0)r[n]=e[n];if(e!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)if(t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i]))r[n[i]]=e[n[i]]}return r},v8={bigquery:"bigquery",clickhouse:"clickhouse",db2:"db2",db2i:"db2i",duckdb:"duckdb",hive:"hive",mariadb:"mariadb",mysql:"mysql",n1ql:"n1ql",plsql:"plsql",postgresql:"postgresql",redshift:"redshift",spark:"spark",sqlite:"sqlite",sql:"sql",tidb:"tidb",trino:"trino",transactsql:"transactsql",tsql:"transactsql",singlestoredb:"singlestoredb",snowflake:"snowflake"},T8=Object.keys(v8),Wse={tabWidth:2,useTabs:!1,keywordCase:"preserve",identifierCase:"preserve",dataTypeCase:"preserve",functionCase:"preserve",indentStyle:"standard",logicalOperatorNewline:"before",expressionWidth:50,linesBetweenQueries:1,denseOperators:!1,newlineBeforeSemicolon:!1},Kx=(e,t={})=>{if(typeof t.language==="string"&&!T8.includes(t.language))throw new $u(`Unsupported SQL dialect: ${t.language}`);let r=v8[t.language||"sql"];return k8(e,Object.assign(Object.assign({},t),{dialect:Ox[r]}))},k8=(e,t)=>{var{dialect:r}=t,n=zse(t,["dialect"]);if(typeof e!=="string")throw Error("Invalid query argument. Expected string, instead got "+typeof e);let i=F8(Object.assign(Object.assign({},Wse),n));return new Dy(d8(r),i).format(e)};var efe="mh-fmt-core",Kse=[Xg,o2,q2,bE,hx,Gse],Jse={javascript:"babel",js:"babel",jsx:"babel",mjs:"babel",cjs:"babel",typescript:"babel-ts",ts:"babel-ts",tsx:"babel-ts",css:"css",scss:"scss",less:"less",xml:"html",html:"html",yaml:"yaml",yml:"yaml",php:"php"};async function tfe(e,t,r){if(t==="sql")return{text:Kx(e,{language:"sql",tabWidth:2}),cursor:r};let n=Jse[t];if(!n)throw Error(`不支持的语言:${t}`);let i=await Qf(e,{parser:n,plugins:Kse,tabWidth:2,cursorOffset:Math.max(0,r)});return{text:i.formatted,cursor:i.cursorOffset}}export{tfe as format,efe as MARKER};
425
+ `.repeat(this.cfg.linesBetweenQueries+1))}formatStatement(e){let t=new Uu({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new Ru(new ju(f8(this.cfg)))}).format(e.children);if(!e.hasSemicolon);else if(this.cfg.newlineBeforeSemicolon)t.add(ue.NEWLINE,";");else t.add(ue.NO_NEWLINE,";");return t.toString()}}class $u extends Error{}function F8(e){let t=["multilineLists","newlineBeforeOpenParen","newlineBeforeCloseParen","aliasAs","commaPosition","tabulateAlias"];for(let r of t)if(r in e)throw new $u(`${r} config is no more supported.`);if(e.expressionWidth<=0)throw new $u(`expressionWidth config must be positive number. Received ${e.expressionWidth} instead.`);if(e.params&&!Vse(e.params))console.warn('WARNING: All "params" option values should be strings.');if(e.paramTypes&&!Hse(e.paramTypes))throw new $u("Empty regex given in custom paramTypes. That would result in matching infinite amount of parameters.");return e}function Vse(e){return(e instanceof Array?e:Object.values(e)).every((r)=>typeof r==="string")}function Hse(e){if(e.custom&&Array.isArray(e.custom))return e.custom.every((t)=>t.regex!=="");return!0}var zse=function(e,t){var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0)r[n]=e[n];if(e!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var i=0,n=Object.getOwnPropertySymbols(e);i<n.length;i++)if(t.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(e,n[i]))r[n[i]]=e[n[i]]}return r},v8={bigquery:"bigquery",clickhouse:"clickhouse",db2:"db2",db2i:"db2i",duckdb:"duckdb",hive:"hive",mariadb:"mariadb",mysql:"mysql",n1ql:"n1ql",plsql:"plsql",postgresql:"postgresql",redshift:"redshift",spark:"spark",sqlite:"sqlite",sql:"sql",tidb:"tidb",trino:"trino",transactsql:"transactsql",tsql:"transactsql",singlestoredb:"singlestoredb",snowflake:"snowflake"},T8=Object.keys(v8),Wse={tabWidth:2,useTabs:!1,keywordCase:"preserve",identifierCase:"preserve",dataTypeCase:"preserve",functionCase:"preserve",indentStyle:"standard",logicalOperatorNewline:"before",expressionWidth:50,linesBetweenQueries:1,denseOperators:!1,newlineBeforeSemicolon:!1},Kx=(e,t={})=>{if(typeof t.language==="string"&&!T8.includes(t.language))throw new $u(`Unsupported SQL dialect: ${t.language}`);let r=v8[t.language||"sql"];return k8(e,Object.assign(Object.assign({},t),{dialect:Ox[r]}))},k8=(e,t)=>{var{dialect:r}=t,n=zse(t,["dialect"]);if(typeof e!=="string")throw Error("Invalid query argument. Expected string, instead got "+typeof e);let i=F8(Object.assign(Object.assign({},Wse),n));return new Dy(d8(r),i).format(e)};var efe="mh-fmt-core",Kse=[Xg,o2,q2,bE,hx,Gse],Jse={javascript:"babel",js:"babel",jsx:"babel",mjs:"babel",cjs:"babel",typescript:"babel-ts",ts:"babel-ts",tsx:"babel-ts",jsonc:"jsonc",json5:"json5",css:"css",scss:"scss",less:"less",xml:"html",html:"html",yaml:"yaml",yml:"yaml",php:"php"};async function tfe(e,t,r){if(t==="sql")return{text:Kx(e,{language:"sql",tabWidth:2}),cursor:r};let n=Jse[t];if(!n)throw Error(`不支持的语言:${t}`);let i=await Qf(e,{parser:n,plugins:Kse,tabWidth:2,cursorOffset:Math.max(0,r)});return{text:i.formatted,cursor:i.cursorOffset}}export{tfe as format,efe as MARKER};