UNPKG

sql-formatter

Version:

Format whitespace in a SQL query to make it more readable

1 lines 260 kB
!function(E,T){"object"==typeof exports&&"object"==typeof module?module.exports=T():"function"==typeof define&&define.amd?define([],T):"object"==typeof exports?exports.sqlFormatter=T():E.sqlFormatter=T()}(this,(()=>(()=>{var E={833:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.snowflake=T.singlestoredb=T.transactsql=T.trino=T.sql=T.sqlite=T.spark=T.redshift=T.postgresql=T.plsql=T.n1ql=T.tidb=T.mysql=T.mariadb=T.hive=T.db2i=T.db2=T.bigquery=void 0;var A=R(5028);Object.defineProperty(T,"bigquery",{enumerable:!0,get:function(){return A.bigquery}});var S=R(1718);Object.defineProperty(T,"db2",{enumerable:!0,get:function(){return S.db2}});var O=R(9274);Object.defineProperty(T,"db2i",{enumerable:!0,get:function(){return O.db2i}});var N=R(7340);Object.defineProperty(T,"hive",{enumerable:!0,get:function(){return N.hive}});var I=R(1378);Object.defineProperty(T,"mariadb",{enumerable:!0,get:function(){return I.mariadb}});var e=R(3358);Object.defineProperty(T,"mysql",{enumerable:!0,get:function(){return e.mysql}});var L=R(2066);Object.defineProperty(T,"tidb",{enumerable:!0,get:function(){return L.tidb}});var C=R(7328);Object.defineProperty(T,"n1ql",{enumerable:!0,get:function(){return C.n1ql}});var _=R(6910);Object.defineProperty(T,"plsql",{enumerable:!0,get:function(){return _.plsql}});var s=R(2912);Object.defineProperty(T,"postgresql",{enumerable:!0,get:function(){return s.postgresql}});var t=R(1642);Object.defineProperty(T,"redshift",{enumerable:!0,get:function(){return t.redshift}});var P=R(9774);Object.defineProperty(T,"spark",{enumerable:!0,get:function(){return P.spark}});var D=R(5784);Object.defineProperty(T,"sqlite",{enumerable:!0,get:function(){return D.sqlite}});var r=R(3446);Object.defineProperty(T,"sql",{enumerable:!0,get:function(){return r.sql}});var M=R(198);Object.defineProperty(T,"trino",{enumerable:!0,get:function(){return M.trino}});var U=R(918);Object.defineProperty(T,"transactsql",{enumerable:!0,get:function(){return U.transactsql}});var n=R(7146);Object.defineProperty(T,"singlestoredb",{enumerable:!0,get:function(){return n.singlestoredb}});var a=R(3686);Object.defineProperty(T,"snowflake",{enumerable:!0,get:function(){return a.snowflake}})},8235:function(E,T,R){"use strict";var A=this&&this.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(T,"__esModule",{value:!0}),T.createDialect=void 0;const S=A(R(7165)),O=new Map;T.createDialect=E=>{let T=O.get(E);return T||(T=N(E),O.set(E,T)),T};const N=E=>({tokenizer:new S.default(E.tokenizerOptions,E.name),formatOptions:I(E.formatOptions)}),I=E=>{var T;return{alwaysDenseOperators:E.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(E.onelineClauses.map((E=>[E,!0]))),tabularOnelineClauses:Object.fromEntries((null!==(T=E.tabularOnelineClauses)&&void 0!==T?T:E.onelineClauses).map((E=>[E,!0])))}}},7163:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.expandSinglePhrase=T.expandPhrases=void 0,T.expandPhrases=E=>E.flatMap(T.expandSinglePhrase),T.expandSinglePhrase=E=>L(A(E)).map(R);const R=E=>E.replace(/ +/g," ").trim(),A=E=>({type:"mandatory_block",items:S(E,0)[0]}),S=(E,T,R)=>{const A=[];for(;E[T];){const[S,N]=O(E,T);if(A.push(S),"|"!==E[T=N]){if("}"===E[T]||"]"===E[T]){if(R!==E[T])throw new Error(`Unbalanced parenthesis in: ${E}`);return[A,++T]}if(T===E.length){if(R)throw new Error(`Unbalanced parenthesis in: ${E}`);return[A,T]}throw new Error(`Unexpected "${E[T]}"`)}T++}return[A,T]},O=(E,T)=>{const R=[];for(;;){const[A,S]=N(E,T);if(!A)break;R.push(A),T=S}return 1===R.length?[R[0],T]:[{type:"concatenation",items:R},T]},N=(E,T)=>{if("{"===E[T])return I(E,T+1);if("["===E[T])return e(E,T+1);{let R="";for(;E[T]&&/[A-Za-z0-9_ ]/.test(E[T]);)R+=E[T],T++;return[R,T]}},I=(E,T)=>{const[R,A]=S(E,T,"}");return[{type:"mandatory_block",items:R},A]},e=(E,T)=>{const[R,A]=S(E,T,"]");return[{type:"optional_block",items:R},A]},L=E=>{if("string"==typeof E)return[E];if("concatenation"===E.type)return E.items.map(L).reduce(C,[""]);if("mandatory_block"===E.type)return E.items.flatMap(L);if("optional_block"===E.type)return["",...E.items.flatMap(L)];throw new Error(`Unknown node type: ${E}`)},C=(E,T)=>{const R=[];for(const A of E)for(const E of T)R.push(A+E);return R}},260:function(E,T,R){"use strict";var A=this&&this.__createBinding||(Object.create?function(E,T,R,A){void 0===A&&(A=R);var S=Object.getOwnPropertyDescriptor(T,R);S&&!("get"in S?!T.__esModule:S.writable||S.configurable)||(S={enumerable:!0,get:function(){return T[R]}}),Object.defineProperty(E,A,S)}:function(E,T,R,A){void 0===A&&(A=R),E[A]=T[R]}),S=this&&this.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),O=this&&this.__importStar||function(E){if(E&&E.__esModule)return E;var T={};if(null!=E)for(var R in E)"default"!==R&&Object.prototype.hasOwnProperty.call(E,R)&&A(T,E,R);return S(T,E),T};Object.defineProperty(T,"__esModule",{value:!0});const N=R(1044),I=R(3216),e=R(2437),L=R(1301),C=R(5112),_=O(R(240)),s=O(R(989));class t{constructor({cfg:E,dialectCfg:T,params:R,layout:A,inline:S=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=E,this.dialectCfg=T,this.inline=S,this.params=R,this.layout=A}format(E){for(this.nodes=E,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 L.NodeType.function_call:return this.formatFunctionCall(E);case L.NodeType.parameterized_data_type:return this.formatParameterizedDataType(E);case L.NodeType.array_subscript:return this.formatArraySubscript(E);case L.NodeType.property_access:return this.formatPropertyAccess(E);case L.NodeType.parenthesis:return this.formatParenthesis(E);case L.NodeType.between_predicate:return this.formatBetweenPredicate(E);case L.NodeType.case_expression:return this.formatCaseExpression(E);case L.NodeType.case_when:return this.formatCaseWhen(E);case L.NodeType.case_else:return this.formatCaseElse(E);case L.NodeType.clause:return this.formatClause(E);case L.NodeType.set_operation:return this.formatSetOperation(E);case L.NodeType.limit_clause:return this.formatLimitClause(E);case L.NodeType.all_columns_asterisk:return this.formatAllColumnsAsterisk(E);case L.NodeType.literal:return this.formatLiteral(E);case L.NodeType.identifier:return this.formatIdentifier(E);case L.NodeType.parameter:return this.formatParameter(E);case L.NodeType.operator:return this.formatOperator(E);case L.NodeType.comma:return this.formatComma(E);case L.NodeType.line_comment:return this.formatLineComment(E);case L.NodeType.block_comment:case L.NodeType.disable_comment:return this.formatBlockComment(E);case L.NodeType.data_type:return this.formatDataType(E);case L.NodeType.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 L.NodeType.data_type:T=this.showDataType(E.array);break;case L.NodeType.keyword:T=this.showKw(E.array);break;default:T=this.showIdentifier(E.array)}this.withComments(E.array,(()=>{this.layout.add(T)})),this.formatNode(E.parenthesis)}formatPropertyAccess(E){this.formatNode(E.object),this.layout.add(C.WS.NO_SPACE,E.operator),this.formatNode(E.property)}formatParenthesis(E){const T=this.formatInlineExpression(E.children);T?(this.layout.add(E.openParen),this.layout.add(...T.getLayoutItems()),this.layout.add(C.WS.NO_SPACE,E.closeParen,C.WS.SPACE)):(this.layout.add(E.openParen,C.WS.NEWLINE),(0,I.isTabularStyle)(this.cfg)?(this.layout.add(C.WS.INDENT),this.layout=this.formatSubExpression(E.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(C.WS.INDENT),this.layout=this.formatSubExpression(E.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(C.WS.NEWLINE,C.WS.INDENT,E.closeParen,C.WS.SPACE))}formatBetweenPredicate(E){this.layout.add(this.showKw(E.betweenKw),C.WS.SPACE),this.layout=this.formatSubExpression(E.expr1),this.layout.add(C.WS.NO_SPACE,C.WS.SPACE,this.showNonTabularKw(E.andKw),C.WS.SPACE),this.layout=this.formatSubExpression(E.expr2),this.layout.add(C.WS.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(C.WS.NEWLINE,C.WS.INDENT),this.formatNode(E.endKw)}formatCaseWhen(E){this.layout.add(C.WS.NEWLINE,C.WS.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(C.WS.NEWLINE,C.WS.INDENT),this.formatNode(E.elseKw),this.layout=this.formatSubExpression(E.result)}formatClause(E){this.isOnelineClause(E)?this.formatClauseInOnelineStyle(E):(0,I.isTabularStyle)(this.cfg)?this.formatClauseInTabularStyle(E):this.formatClauseInIndentedStyle(E)}isOnelineClause(E){return(0,I.isTabularStyle)(this.cfg)?this.dialectCfg.tabularOnelineClauses[E.nameKw.text]:this.dialectCfg.onelineClauses[E.nameKw.text]}formatClauseInIndentedStyle(E){this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E.nameKw),C.WS.NEWLINE),this.layout.indentation.increaseTopLevel(),this.layout.add(C.WS.INDENT),this.layout=this.formatSubExpression(E.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(E){this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E.nameKw),C.WS.SPACE),this.layout=this.formatSubExpression(E.children)}formatClauseInTabularStyle(E){this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E.nameKw),C.WS.SPACE),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(E.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(E){this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E.nameKw),C.WS.NEWLINE),this.layout.add(C.WS.INDENT),this.layout=this.formatSubExpression(E.children)}formatLimitClause(E){this.withComments(E.limitKw,(()=>{this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E.limitKw))})),this.layout.indentation.increaseTopLevel(),(0,I.isTabularStyle)(this.cfg)?this.layout.add(C.WS.SPACE):this.layout.add(C.WS.NEWLINE,C.WS.INDENT),E.offset?(this.layout=this.formatSubExpression(E.offset),this.layout.add(C.WS.NO_SPACE,",",C.WS.SPACE),this.layout=this.formatSubExpression(E.count)):this.layout=this.formatSubExpression(E.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(E){this.layout.add("*",C.WS.SPACE)}formatLiteral(E){this.layout.add(E.text,C.WS.SPACE)}formatIdentifier(E){this.layout.add(this.showIdentifier(E),C.WS.SPACE)}formatParameter(E){this.layout.add(this.params.get(E),C.WS.SPACE)}formatOperator({text:E}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(E)?this.layout.add(C.WS.NO_SPACE,E):":"===E?this.layout.add(C.WS.NO_SPACE,E,C.WS.SPACE):this.layout.add(E,C.WS.SPACE)}formatComma(E){this.inline?this.layout.add(C.WS.NO_SPACE,",",C.WS.SPACE):this.layout.add(C.WS.NO_SPACE,",",C.WS.NEWLINE,C.WS.INDENT)}withComments(E,T){this.formatComments(E.leadingComments),T(),this.formatComments(E.trailingComments)}formatComments(E){E&&E.forEach((E=>{E.type===L.NodeType.line_comment?this.formatLineComment(E):this.formatBlockComment(E)}))}formatLineComment(E){(0,N.isMultiline)(E.precedingWhitespace||"")?this.layout.add(C.WS.NEWLINE,C.WS.INDENT,E.text,C.WS.MANDATORY_NEWLINE,C.WS.INDENT):this.layout.getLayoutItems().length>0?this.layout.add(C.WS.NO_NEWLINE,C.WS.SPACE,E.text,C.WS.MANDATORY_NEWLINE,C.WS.INDENT):this.layout.add(E.text,C.WS.MANDATORY_NEWLINE,C.WS.INDENT)}formatBlockComment(E){E.type===L.NodeType.block_comment&&this.isMultilineBlockComment(E)?(this.splitBlockComment(E.text).forEach((E=>{this.layout.add(C.WS.NEWLINE,C.WS.INDENT,E)})),this.layout.add(C.WS.NEWLINE,C.WS.INDENT)):this.layout.add(E.text,C.WS.SPACE)}isMultilineBlockComment(E){return(0,N.isMultiline)(E.text)||(0,N.isMultiline)(E.precedingWhitespace||"")}isDocComment(E){const T=E.split(/\n/);return/^\/\*\*?$/.test(T[0])&&T.slice(1,T.length-1).every((E=>/^\s*\*/.test(E)))&&/^\s*\*\/$/.test((0,N.last)(T))}splitBlockComment(E){return this.isDocComment(E)?E.split(/\n/).map((E=>/^\s*\*/.test(E)?" "+E.replace(/^\s*/,""):E)):E.split(/\n/).map((E=>E.replace(/^\s*/,"")))}formatSubExpression(E){return new t({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(E)}formatInlineExpression(E){const T=this.params.getPositionalParameterIndex();try{return new t({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new s.default(this.cfg.expressionWidth),inline:!0}).format(E)}catch(E){if(E instanceof s.InlineLayoutError)return void this.params.setPositionalParameterIndex(T);throw E}}formatKeywordNode(E){switch(E.tokenType){case e.TokenType.RESERVED_JOIN:return this.formatJoin(E);case e.TokenType.AND:case e.TokenType.OR:case e.TokenType.XOR:return this.formatLogicalOperator(E);default:return this.formatKeyword(E)}}formatJoin(E){(0,I.isTabularStyle)(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E),C.WS.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E),C.WS.SPACE)}formatKeyword(E){this.layout.add(this.showKw(E),C.WS.SPACE)}formatLogicalOperator(E){"before"===this.cfg.logicalOperatorNewline?(0,I.isTabularStyle)(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E),C.WS.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(C.WS.NEWLINE,C.WS.INDENT,this.showKw(E),C.WS.SPACE):this.layout.add(this.showKw(E),C.WS.NEWLINE,C.WS.INDENT)}formatDataType(E){this.layout.add(this.showDataType(E),C.WS.SPACE)}showKw(E){return(0,_.isTabularToken)(E.tokenType)?(0,_.default)(this.showNonTabularKw(E),this.cfg.indentStyle):this.showNonTabularKw(E)}showNonTabularKw(E){switch(this.cfg.keywordCase){case"preserve":return(0,N.equalizeWhitespace)(E.raw);case"upper":return E.text;case"lower":return E.text.toLowerCase()}}showFunctionKw(E){return(0,_.isTabularToken)(E.tokenType)?(0,_.default)(this.showNonTabularFunctionKw(E),this.cfg.indentStyle):this.showNonTabularFunctionKw(E)}showNonTabularFunctionKw(E){switch(this.cfg.functionCase){case"preserve":return(0,N.equalizeWhitespace)(E.raw);case"upper":return E.text;case"lower":return E.text.toLowerCase()}}showIdentifier(E){if(E.quoted)return E.text;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(0,N.equalizeWhitespace)(E.raw);case"upper":return E.text;case"lower":return E.text.toLowerCase()}}}T.default=t,E.exports=T.default},5758:function(E,T,R){"use strict";var A=this&&this.__createBinding||(Object.create?function(E,T,R,A){void 0===A&&(A=R);var S=Object.getOwnPropertyDescriptor(T,R);S&&!("get"in S?!T.__esModule:S.writable||S.configurable)||(S={enumerable:!0,get:function(){return T[R]}}),Object.defineProperty(E,A,S)}:function(E,T,R,A){void 0===A&&(A=R),E[A]=T[R]}),S=this&&this.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),O=this&&this.__importStar||function(E){if(E&&E.__esModule)return E;var T={};if(null!=E)for(var R in E)"default"!==R&&Object.prototype.hasOwnProperty.call(E,R)&&A(T,E,R);return S(T,E),T},N=this&&this.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(T,"__esModule",{value:!0});const I=R(3216),e=N(R(8264)),L=R(1858),C=N(R(260)),_=O(R(5112)),s=N(R(7963));T.default=class{constructor(E,T){this.dialect=E,this.cfg=T,this.params=new e.default(this.cfg.params)}format(E){const T=this.parse(E);return this.formatAst(T).trimEnd()}parse(E){return(0,L.createParser)(this.dialect.tokenizer).parse(E,this.cfg.paramTypes||{})}formatAst(E){return E.map((E=>this.formatStatement(E))).join("\n".repeat(this.cfg.linesBetweenQueries+1))}formatStatement(E){const T=new C.default({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new _.default(new s.default((0,I.indentString)(this.cfg)))}).format(E.children);return E.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?T.add(_.WS.NEWLINE,";"):T.add(_.WS.NO_NEWLINE,";")),T.toString()}},E.exports=T.default},7963:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});const A=R(1044),S="top-level";T.default=class{constructor(E){this.indent=E,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(S)}increaseBlockLevel(){this.indentTypes.push("block-level")}decreaseTopLevel(){this.indentTypes.length>0&&(0,A.last)(this.indentTypes)===S&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===S;);}},E.exports=T.default},989:function(E,T,R){"use strict";var A=this&&this.__createBinding||(Object.create?function(E,T,R,A){void 0===A&&(A=R);var S=Object.getOwnPropertyDescriptor(T,R);S&&!("get"in S?!T.__esModule:S.writable||S.configurable)||(S={enumerable:!0,get:function(){return T[R]}}),Object.defineProperty(E,A,S)}:function(E,T,R,A){void 0===A&&(A=R),E[A]=T[R]}),S=this&&this.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),O=this&&this.__importStar||function(E){if(E&&E.__esModule)return E;var T={};if(null!=E)for(var R in E)"default"!==R&&Object.prototype.hasOwnProperty.call(E,R)&&A(T,E,R);return S(T,E),T},N=this&&this.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(T,"__esModule",{value:!0}),T.InlineLayoutError=void 0;const I=N(R(7963)),e=O(R(5112));class L extends e.default{constructor(E){super(new I.default("")),this.expressionWidth=E,this.length=0,this.trailingSpace=!1}add(...E){if(E.forEach((E=>this.addToLength(E))),this.length>this.expressionWidth)throw new C;super.add(...E)}addToLength(E){if("string"==typeof E)this.length+=E.length,this.trailingSpace=!1;else{if(E===e.WS.MANDATORY_NEWLINE||E===e.WS.NEWLINE)throw new C;E===e.WS.INDENT||E===e.WS.SINGLE_INDENT||E===e.WS.SPACE?this.trailingSpace||(this.length++,this.trailingSpace=!0):E!==e.WS.NO_NEWLINE&&E!==e.WS.NO_SPACE||this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}}T.default=L;class C extends Error{}T.InlineLayoutError=C},5112:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.WS=void 0;const A=R(1044);var S;!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"}(S=T.WS||(T.WS={})),T.default=class{constructor(E){this.indentation=E,this.items=[]}add(...E){for(const T of E)switch(T){case S.SPACE:this.items.push(S.SPACE);break;case S.NO_SPACE:this.trimHorizontalWhitespace();break;case S.NO_NEWLINE:this.trimWhitespace();break;case S.NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(S.NEWLINE);break;case S.MANDATORY_NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(S.MANDATORY_NEWLINE);break;case S.INDENT:this.addIndentation();break;case S.SINGLE_INDENT:this.items.push(S.SINGLE_INDENT);break;default:this.items.push(T)}}trimHorizontalWhitespace(){for(;O((0,A.last)(this.items));)this.items.pop()}trimWhitespace(){for(;N((0,A.last)(this.items));)this.items.pop()}addNewline(E){if(this.items.length>0)switch((0,A.last)(this.items)){case S.NEWLINE:this.items.pop(),this.items.push(E);break;case S.MANDATORY_NEWLINE:break;default:this.items.push(E)}}addIndentation(){for(let E=0;E<this.indentation.getLevel();E++)this.items.push(S.SINGLE_INDENT)}toString(){return this.items.map((E=>this.itemToString(E))).join("")}getLayoutItems(){return this.items}itemToString(E){switch(E){case S.SPACE:return" ";case S.NEWLINE:case S.MANDATORY_NEWLINE:return"\n";case S.SINGLE_INDENT:return this.indentation.getSingleIndent();default:return E}}};const O=E=>E===S.SPACE||E===S.SINGLE_INDENT,N=E=>E===S.SPACE||E===S.SINGLE_INDENT||E===S.NEWLINE},8264:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.default=class{constructor(E){this.params=E,this.index=0}get({key:E,text:T}){return this.params?E?this.params[E]:this.params[this.index++]:T}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(E){this.index=E}},E.exports=T.default},3216:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.isTabularStyle=T.indentString=void 0,T.indentString=function(E){return"tabularLeft"===E.indentStyle||"tabularRight"===E.indentStyle?" ".repeat(10):E.useTabs?"\t":" ".repeat(E.tabWidth)},T.isTabularStyle=function(E){return"tabularLeft"===E.indentStyle||"tabularRight"===E.indentStyle}},240:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.isTabularToken=void 0;const A=R(2437);T.default=function(E,T){if("standard"===T)return E;let R=[];return E.length>=10&&E.includes(" ")&&([E,...R]=E.split(" ")),(E="tabularLeft"===T?E.padEnd(9," "):E.padStart(9," "))+["",...R].join(" ")},T.isTabularToken=function(E){return(0,A.isLogicalOperator)(E)||E===A.TokenType.RESERVED_CLAUSE||E===A.TokenType.RESERVED_SELECT||E===A.TokenType.RESERVED_SET_OPERATION||E===A.TokenType.RESERVED_JOIN||E===A.TokenType.LIMIT}},5028:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.bigquery=void 0;const A=R(7163),S=R(2437),O=R(6543),N=R(1636),I=(0,A.expandPhrases)(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),e=(0,A.expandPhrases)(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),L=(0,A.expandPhrases)(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),C=(0,A.expandPhrases)(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),_=(0,A.expandPhrases)(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),s=(0,A.expandPhrases)(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),t=(0,A.expandPhrases)(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]);T.bigquery={name:"bigquery",tokenizerOptions:{reservedSelect:I,reservedClauses:[...e,...C,...L],reservedSetOperations:_,reservedJoins:s,reservedPhrases:t,reservedKeywords:N.keywords,reservedDataTypes:N.dataTypes,reservedFunctionNames:O.functions,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:function(E){return function(E){let T=S.EOF_TOKEN;return E.map((E=>"OFFSET"===E.text&&"["===T.text?(T=E,Object.assign(Object.assign({},E),{type:S.TokenType.RESERVED_FUNCTION_NAME})):(T=E,E)))}(function(E){var T;const R=[];for(let A=0;A<E.length;A++){const O=E[A];if((S.isToken.ARRAY(O)||S.isToken.STRUCT(O))&&"<"===(null===(T=E[A+1])||void 0===T?void 0:T.text)){const T=D(E,A+1),N=E.slice(A,T+1);R.push({type:S.TokenType.IDENTIFIER,raw:N.map(P("raw")).join(""),text:N.map(P("text")).join(""),start:O.start}),A=T}else R.push(O)}return R}(E))}},formatOptions:{onelineClauses:[...L,...C],tabularOnelineClauses:C}};const P=E=>T=>T.type===S.TokenType.IDENTIFIER||T.type===S.TokenType.COMMA?T[E]+" ":T[E];function D(E,T){let R=0;for(let A=T;A<E.length;A++){const T=E[A];if("<"===T.text?R++:">"===T.text?R--:">>"===T.text&&(R-=2),0===R)return A}return E.length-1}},6543:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.functions=void 0,T.functions=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"]},1636:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.dataTypes=T.keywords=void 0,T.keywords=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],T.dataTypes=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"]},1718:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.db2=void 0;const A=R(7163),S=R(6609),O=R(5246),N=(0,A.expandPhrases)(["SELECT [ALL | DISTINCT]"]),I=(0,A.expandPhrases)(["WITH","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH NEXT","FOR UPDATE [OF]","FOR {READ | FETCH} ONLY","FOR {RR | CS | UR | RS} [USE AND KEEP {SHARE | UPDATE | EXCLUSIVE} LOCKS]","WAIT FOR OUTCOME","SKIP LOCKED DATA","INTO","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","INSERT"]),e=(0,A.expandPhrases)(["CREATE [GLOBAL TEMPORARY | EXTERNAL] TABLE [IF NOT EXISTS]"]),L=(0,A.expandPhrases)(["CREATE [OR REPLACE] VIEW","UPDATE","WHERE CURRENT OF","WITH {RR | RS | CS | UR}","DELETE FROM","DROP TABLE [IF EXISTS]","ALTER TABLE","ADD [COLUMN]","DROP [COLUMN]","RENAME COLUMN","ALTER [COLUMN]","SET DATA TYPE","SET NOT NULL","DROP {DEFAULT | GENERATED | NOT NULL}","TRUNCATE [TABLE]","ALLOCATE","ALTER AUDIT POLICY","ALTER BUFFERPOOL","ALTER DATABASE PARTITION GROUP","ALTER DATABASE","ALTER EVENT MONITOR","ALTER FUNCTION","ALTER HISTOGRAM TEMPLATE","ALTER INDEX","ALTER MASK","ALTER METHOD","ALTER MODULE","ALTER NICKNAME","ALTER PACKAGE","ALTER PERMISSION","ALTER PROCEDURE","ALTER SCHEMA","ALTER SECURITY LABEL COMPONENT","ALTER SECURITY POLICY","ALTER SEQUENCE","ALTER SERVER","ALTER SERVICE CLASS","ALTER STOGROUP","ALTER TABLESPACE","ALTER THRESHOLD","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER TYPE","ALTER USAGE LIST","ALTER USER MAPPING","ALTER VIEW","ALTER WORK ACTION SET","ALTER WORK CLASS SET","ALTER WORKLOAD","ALTER WRAPPER","ALTER XSROBJECT","ALTER STOGROUP","ALTER TABLESPACE","ALTER TRIGGER","ALTER TRUSTED CONTEXT","ALTER VIEW","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","AUDIT","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON","COMMIT [WORK]","CONNECT","CREATE [OR REPLACE] [PUBLIC] ALIAS","CREATE AUDIT POLICY","CREATE BUFFERPOOL","CREATE DATABASE PARTITION GROUP","CREATE EVENT MONITOR","CREATE [OR REPLACE] FUNCTION","CREATE FUNCTION MAPPING","CREATE HISTOGRAM TEMPLATE","CREATE [UNIQUE] INDEX","CREATE INDEX EXTENSION","CREATE [OR REPLACE] MASK","CREATE [SPECIFIC] METHOD","CREATE [OR REPLACE] MODULE","CREATE [OR REPLACE] NICKNAME","CREATE [OR REPLACE] PERMISSION","CREATE [OR REPLACE] PROCEDURE","CREATE ROLE","CREATE SCHEMA","CREATE SECURITY LABEL [COMPONENT]","CREATE SECURITY POLICY","CREATE [OR REPLACE] SEQUENCE","CREATE SERVICE CLASS","CREATE SERVER","CREATE STOGROUP","CREATE SYNONYM","CREATE [LARGE | REGULAR | {SYSTEM | USER} TEMPORARY] TABLESPACE","CREATE THRESHOLD","CREATE {TRANSFORM | TRANSFORMS} FOR","CREATE [OR REPLACE] TRIGGER","CREATE TRUSTED CONTEXT","CREATE [OR REPLACE] TYPE","CREATE TYPE MAPPING","CREATE USAGE LIST","CREATE USER MAPPING FOR","CREATE [OR REPLACE] VARIABLE","CREATE WORK ACTION SET","CREATE WORK CLASS SET","CREATE WORKLOAD","CREATE WRAPPER","DECLARE","DECLARE GLOBAL TEMPORARY TABLE","DESCRIBE [INPUT | OUTPUT]","DISCONNECT","DROP [PUBLIC] ALIAS","DROP AUDIT POLICY","DROP BUFFERPOOL","DROP DATABASE PARTITION GROUP","DROP EVENT MONITOR","DROP [SPECIFIC] FUNCTION","DROP FUNCTION MAPPING","DROP HISTOGRAM TEMPLATE","DROP INDEX [EXTENSION]","DROP MASK","DROP [SPECIFIC] METHOD","DROP MODULE","DROP NICKNAME","DROP PACKAGE","DROP PERMISSION","DROP [SPECIFIC] PROCEDURE","DROP ROLE","DROP SCHEMA","DROP SECURITY LABEL [COMPONENT]","DROP SECURITY POLICY","DROP SEQUENCE","DROP SERVER","DROP SERVICE CLASS","DROP STOGROUP","DROP TABLE HIERARCHY","DROP {TABLESPACE | TABLESPACES}","DROP {TRANSFORM | TRANSFORMS}","DROP THRESHOLD","DROP TRIGGER","DROP TRUSTED CONTEXT","DROP TYPE [MAPPING]","DROP USAGE LIST","DROP USER MAPPING FOR","DROP VARIABLE","DROP VIEW [HIERARCHY]","DROP WORK {ACTION | CLASS} SET","DROP WORKLOAD","DROP WRAPPER","DROP XSROBJECT","END DECLARE SECTION","EXECUTE [IMMEDIATE]","EXPLAIN {PLAN [SECTION] | ALL}","FETCH [FROM]","FLUSH {BUFFERPOOL | BUFFERPOOLS} ALL","FLUSH EVENT MONITOR","FLUSH FEDERATED CACHE","FLUSH OPTIMIZATION PROFILE CACHE","FLUSH PACKAGE CACHE [DYNAMIC]","FLUSH AUTHENTICATION CACHE [FOR ALL]","FREE LOCATOR","GET DIAGNOSTICS","GOTO","GRANT","INCLUDE","ITERATE","LEAVE","LOCK TABLE","LOOP","OPEN","PIPE","PREPARE","REFRESH TABLE","RELEASE","RELEASE [TO] SAVEPOINT","RENAME [TABLE | INDEX | STOGROUP | TABLESPACE]","REPEAT","RESIGNAL","RETURN","REVOKE","ROLLBACK [WORK] [TO SAVEPOINT]","SAVEPOINT","SET COMPILATION ENVIRONMENT","SET CONNECTION","SET CURRENT","SET ENCRYPTION PASSWORD","SET EVENT MONITOR STATE","SET INTEGRITY","SET PASSTHRU","SET PATH","SET ROLE","SET SCHEMA","SET SERVER OPTION","SET {SESSION AUTHORIZATION | SESSION_USER}","SET USAGE LIST","SIGNAL","TRANSFER OWNERSHIP OF","WHENEVER {NOT FOUND | SQLERROR | SQLWARNING}","WHILE"]),C=(0,A.expandPhrases)(["UNION [ALL]","EXCEPT [ALL]","INTERSECT [ALL]"]),_=(0,A.expandPhrases)(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),s=(0,A.expandPhrases)(["ON DELETE","ON UPDATE","SET NULL","{ROWS | RANGE} BETWEEN"]);T.db2={name:"db2",tokenizerOptions:{reservedSelect:N,reservedClauses:[...I,...e,...L],reservedSetOperations:C,reservedJoins:_,reservedPhrases:s,reservedKeywords:O.keywords,reservedDataTypes:O.dataTypes,reservedFunctionNames:S.functions,extraParens:["[]"],stringTypes:[{quote:"''-qq",prefixes:["G","N","U&"]},{quote:"''-raw",prefixes:["X","BX","GX","UX"],requirePrefix:!0}],identTypes:['""-qq'],identChars:{first:"@#$",rest:"@#$"},paramTypes:{positional:!0,named:[":"]},paramChars:{first:"@#$",rest:"@#$"},operators:["**","%","|","&","^","~","¬=","¬>","¬<","!>","!<","^=","^>","^<","||","->","=>"]},formatOptions:{onelineClauses:[...e,...L],tabularOnelineClauses:L}}},6609:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.functions=void 0,T.functions=["ARRAY_AGG","AVG","CORRELATION","COUNT","COUNT_BIG","COVARIANCE","COVARIANCE_SAMP","CUME_DIST","GROUPING","LISTAGG","MAX","MEDIAN","MIN","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","REGR_AVGX","REGR_AVGY","REGR_COUNT","REGR_INTERCEPT","REGR_ICPT","REGR_R2","REGR_SLOPE","REGR_SXX","REGR_SXY","REGR_SYY","STDDEV","STDDEV_SAMP","SUM","VARIANCE","VARIANCE_SAMP","XMLAGG","XMLGROUP","ABS","ABSVAL","ACOS","ADD_DAYS","ADD_HOURS","ADD_MINUTES","ADD_MONTHS","ADD_SECONDS","ADD_YEARS","AGE","ARRAY_DELETE","ARRAY_FIRST","ARRAY_LAST","ARRAY_NEXT","ARRAY_PRIOR","ASCII","ASCII_STR","ASIN","ATAN","ATAN2","ATANH","BITAND","BITANDNOT","BITOR","BITXOR","BITNOT","BPCHAR","BSON_TO_JSON","BTRIM","CARDINALITY","CEILING","CEIL","CHARACTER_LENGTH","CHR","COALESCE","COLLATION_KEY","COLLATION_KEY_BIT","COMPARE_DECFLOAT","CONCAT","COS","COSH","COT","CURSOR_ROWCOUNT","DATAPARTITIONNUM","DATE_PART","DATE_TRUNC","DAY","DAYNAME","DAYOFMONTH","DAYOFWEEK","DAYOFWEEK_ISO","DAYOFYEAR","DAYS","DAYS_BETWEEN","DAYS_TO_END_OF_MONTH","DBPARTITIONNUM","DECFLOAT","DECFLOAT_FORMAT","DECODE","DECRYPT_BIN","DECRYPT_CHAR","DEGREES","DEREF","DIFFERENCE","DIGITS","DOUBLE_PRECISION","EMPTY_BLOB","EMPTY_CLOB","EMPTY_DBCLOB","EMPTY_NCLOB","ENCRYPT","EVENT_MON_STATE","EXP","EXTRACT","FIRST_DAY","FLOOR","FROM_UTC_TIMESTAMP","GENERATE_UNIQUE","GETHINT","GREATEST","HASH","HASH4","HASH8","HASHEDVALUE","HEX","HEXTORAW","HOUR","HOURS_BETWEEN","IDENTITY_VAL_LOCAL","IFNULL","INITCAP","INSERT","INSTR","INSTR2","INSTR4","INSTRB","INTNAND","INTNOR","INTNXOR","INTNNOT","ISNULL","JSON_ARRAY","JSON_OBJECT","JSON_QUERY","JSON_TO_BSON","JSON_VALUE","JULIAN_DAY","LAST_DAY","LCASE","LEAST","LEFT","LENGTH","LENGTH2","LENGTH4","LENGTHB","LN","LOCATE","LOCATE_IN_STRING","LOG10","LONG_VARCHAR","LONG_VARGRAPHIC","LOWER","LPAD","LTRIM","MAX","MAX_CARDINALITY","MICROSECOND","MIDNIGHT_SECONDS","MIN","MINUTE","MINUTES_BETWEEN","MOD","MONTH","MONTHNAME","MONTHS_BETWEEN","MULTIPLY_ALT","NEXT_DAY","NEXT_MONTH","NEXT_QUARTER","NEXT_WEEK","NEXT_YEAR","NORMALIZE_DECFLOAT","NOW","NULLIF","NVL","NVL2","OCTET_LENGTH","OVERLAY","PARAMETER","POSITION","POSSTR","POW","POWER","QUANTIZE","QUARTER","QUOTE_IDENT","QUOTE_LITERAL","RADIANS","RAISE_ERROR","RAND","RANDOM","RAWTOHEX","REC2XML","REGEXP_COUNT","REGEXP_EXTRACT","REGEXP_INSTR","REGEXP_LIKE","REGEXP_MATCH_COUNT","REGEXP_REPLACE","REGEXP_SUBSTR","REPEAT","REPLACE","RID","RID_BIT","RIGHT","ROUND","ROUND_TIMESTAMP","RPAD","RTRIM","SECLABEL","SECLABEL_BY_NAME","SECLABEL_TO_CHAR","SECOND","SECONDS_BETWEEN","SIGN","SIN","SINH","SOUNDEX","SPACE","SQRT","STRIP","STRLEFT","STRPOS","STRRIGHT","SUBSTR","SUBSTR2","SUBSTR4","SUBSTRB","SUBSTRING","TABLE_NAME","TABLE_SCHEMA","TAN","TANH","THIS_MONTH","THIS_QUARTER","THIS_WEEK","THIS_YEAR","TIMESTAMP_FORMAT","TIMESTAMP_ISO","TIMESTAMPDIFF","TIMEZONE","TO_CHAR","TO_CLOB","TO_DATE","TO_HEX","TO_MULTI_BYTE","TO_NCHAR","TO_NCLOB","TO_NUMBER","TO_SINGLE_BYTE","TO_TIMESTAMP","TO_UTC_TIMESTAMP","TOTALORDER","TRANSLATE","TRIM","TRIM_ARRAY","TRUNC_TIMESTAMP","TRUNCATE","TRUNC","TYPE_ID","TYPE_NAME","TYPE_SCHEMA","UCASE","UNICODE_STR","UPPER","VALUE","VARCHAR_BIT_FORMAT","VARCHAR_FORMAT","VARCHAR_FORMAT_BIT","VERIFY_GROUP_FOR_USER","VERIFY_ROLE_FOR_USER","VERIFY_TRUSTED_CONTEXT_ROLE_FOR_USER","WEEK","WEEK_ISO","WEEKS_BETWEEN","WIDTH_BUCKET","XMLATTRIBUTES","XMLCOMMENT","XMLCONCAT","XMLDOCUMENT","XMLELEMENT","XMLFOREST","XMLNAMESPACES","XMLPARSE","XMLPI","XMLQUERY","XMLROW","XMLSERIALIZE","XMLTEXT","XMLVALIDATE","XMLXSROBJECTID","XSLTRANSFORM","YEAR","YEARS_BETWEEN","YMD_BETWEEN","BASE_TABLE","JSON_TABLE","UNNEST","XMLTABLE","RANK","DENSE_RANK","NTILE","LAG","LEAD","ROW_NUMBER","FIRST_VALUE","LAST_VALUE","NTH_VALUE","RATIO_TO_REPORT","CAST"]},5246:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.dataTypes=T.keywords=void 0,T.keywords=["ACTIVATE","ADD","AFTER","ALIAS","ALL","ALLOCATE","ALLOW","ALTER","AND","ANY","AS","ASENSITIVE","ASSOCIATE","ASUTIME","AT","ATTRIBUTES","AUDIT","AUTHORIZATION","AUX","AUXILIARY","BEFORE","BEGIN","BETWEEN","BINARY","BUFFERPOOL","BY","CACHE","CALL","CALLED","CAPTURE","CARDINALITY","CASCADED","CASE","CAST","CHECK","CLONE","CLOSE","CLUSTER","COLLECTION","COLLID","COLUMN","COMMENT","COMMIT","CONCAT","CONDITION","CONNECT","CONNECTION","CONSTRAINT","CONTAINS","CONTINUE","COUNT","COUNT_BIG","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_LC_CTYPE","CURRENT_PATH","CURRENT_SCHEMA","CURRENT_SERVER","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_TIMEZONE","CURRENT_USER","CURSOR","CYCLE","DATA","DATABASE","DATAPARTITIONNAME","DATAPARTITIONNUM","DAY","DAYS","DB2GENERAL","DB2GENRL","DB2SQL","DBINFO","DBPARTITIONNAME","DBPARTITIONNUM","DEALLOCATE","DECLARE","DEFAULT","DEFAULTS","DEFINITION","DELETE","DENSERANK","DENSE_RANK","DESCRIBE","DESCRIPTOR","DETERMINISTIC","DIAGNOSTICS","DISABLE","DISALLOW","DISCONNECT","DISTINCT","DO","DOCUMENT","DROP","DSSIZE","DYNAMIC","EACH","EDITPROC","ELSE","ELSEIF","ENABLE","ENCODING","ENCRYPTION","END","END-EXEC","ENDING","ERASE","ESCAPE","EVERY","EXCEPT","EXCEPTION","EXCLUDING","EXCLUSIVE","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTENDED","EXTERNAL","EXTRACT","FENCED","FETCH","FIELDPROC","FILE","FINAL","FIRST1","FOR","FOREIGN","FREE","FROM","FULL","FUNCTION","GENERAL","GENERATED","GET","GLOBAL","GO","GOTO","GRANT","GRAPHIC","GROUP","HANDLER","HASH","HASHED_VALUE","HAVING","HINT","HOLD","HOUR","HOURS","IDENTITY","IF","IMMEDIATE","IMPORT","IN","INCLUDING","INCLUSIVE","INCREMENT","INDEX","INDICATOR","INDICATORS","INF","INFINITY","INHERIT","INNER","INOUT","INSENSITIVE","INSERT","INTEGRITY","INTERSECT","INTO","IS","ISNULL","ISOBID","ISOLATION","ITERATE","JAR","JAVA","JOIN","KEEP","KEY","LABEL","LANGUAGE","LAST3","LATERAL","LC_CTYPE","LEAVE","LEFT","LIKE","LIMIT","LINKTYPE","LOCAL","LOCALDATE","LOCALE","LOCALTIME","LOCALTIMESTAMP","LOCATOR","LOCATORS","LOCK","LOCKMAX","LOCKSIZE","LOOP","MAINTAINED","MATERIALIZED","MAXVALUE","MICROSECOND","MICROSECONDS","MINUTE","MINUTES","MINVALUE","MODE","MODIFIES","MONTH","MONTHS","NAN","NEW","NEW_TABLE","NEXTVAL","NO","NOCACHE","NOCYCLE","NODENAME","NODENUMBER","NOMAXVALUE","NOMINVALUE","NONE","NOORDER","NORMALIZED","NOT2","NOTNULL","NULL","NULLS","NUMPARTS","OBID","OF","OFF","OFFSET","OLD","OLD_TABLE","ON","OPEN","OPTIMIZATION","OPTIMIZE","OPTION","OR","ORDER","OUT","OUTER","OVER","OVERRIDING","PACKAGE","PADDED","PAGESIZE","PARAMETER","PART","PARTITION","PARTITIONED","PARTITIONING","PARTITIONS","PASSWORD","PATH","PERCENT","PIECESIZE","PLAN","POSITION","PRECISION","PREPARE","PREVVAL","PRIMARY","PRIQTY","PRIVILEGES","PROCEDURE","PROGRAM","PSID","PUBLIC","QUERY","QUERYNO","RANGE","RANK","READ","READS","RECOVERY","REFERENCES","REFERENCING","REFRESH","RELEASE","RENAME","REPEAT","RESET","RESIGNAL","RESTART","RESTRICT","RESULT","RESULT_SET_LOCATOR","RETURN","RETURNS","REVOKE","RIGHT","ROLE","ROLLBACK","ROUND_CEILING","ROUND_DOWN","ROUND_FLOOR","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_UP","ROUND_UP","ROUTINE","ROW","ROWNUMBER","ROWS","ROWSET","ROW_NUMBER","RRN","RUN","SAVEPOINT","SCHEMA","SCRATCHPAD","SCROLL","SEARCH","SECOND","SECONDS","SECQTY","SECURITY","SELECT","SENSITIVE","SEQUENCE","SESSION","SESSION_USER","SET","SIGNAL","SIMPLE","SNAN","SOME","SOURCE","SPECIFIC","SQL","SQLID","STACKED","STANDARD","START","STARTING","STATEMENT","STATIC","STATMENT","STAY","STOGROUP","STORES","STYLE","SUBSTRING","SUMMARY","SYNONYM","SYSFUN","SYSIBM","SYSPROC","SYSTEM","SYSTEM_USER","TABLE","TABLESPACE","THEN","TO","TRANSACTION","TRIGGER","TRIM","TRUNCATE","TYPE","UNDO","UNION","UNIQUE","UNTIL","UPDATE","USAGE","USER","USING","VALIDPROC","VALUE","VALUES","VARIABLE","VARIANT","VCAT","VERSION","VIEW","VOLATILE","VOLUMES","WHEN","WHENEVER","WHERE","WHILE","WITH","WITHOUT","WLM","WRITE","XMLELEMENT","XMLEXISTS","XMLNAMESPACES","YEAR","YEARS"],T.dataTypes=["ARRAY","BIGINT","BINARY","BLOB","BOOLEAN","CCSID","CHAR","CHARACTER","CLOB","DATE","DATETIME","DBCLOB","DEC","DECIMAL","DOUBLE","DOUBLE PRECISION","FLOAT","FLOAT4","FLOAT8","GRAPHIC","INT","INT2","INT4","INT8","INTEGER","INTERVAL","LONG VARCHAR","LONG VARGRAPHIC","NCHAR","NCHR","NCLOB","NVARCHAR","NUMERIC","SMALLINT","REAL","TIME","TIMESTAMP","VARBINARY","VARCHAR","VARGRAPHIC"]},9274:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.db2i=void 0;const A=R(7163),S=R(7237),O=R(7002),N=(0,A.expandPhrases)(["SELECT [ALL | DISTINCT]"]),I=(0,A.expandPhrases)(["WITH [RECURSIVE]","INTO","FROM","WHERE","GROUP BY","HAVING","PARTITION BY","ORDER [SIBLINGS] BY [INPUT SEQUENCE]","LIMIT","OFFSET","FETCH {FIRST | NEXT}","FOR UPDATE [OF]","FOR READ ONLY","OPTIMIZE FOR","INSERT INTO","VALUES","SET","MERGE INTO","WHEN [NOT] MATCHED [THEN]","UPDATE SET","DELETE","INSERT","FOR SYSTEM NAME"]),e=(0,A.expandPhrases)(["CREATE [OR REPLACE] TABLE"]),L=(0,A.expandPhrases)(["CREATE [OR REPLACE] [RECURSIVE] VIEW","UPDATE","WHERE CURRENT OF","WITH {NC | RR | RS | CS | UR}","DELETE FROM","DROP TABLE","ALTER TABLE","ADD [COLUMN]","ALTER [COLUMN]","DROP [COLUMN]","SET DATA TYPE","SET {GENERATED ALWAYS | GENERATED BY DEFAULT}","SET NOT NULL","SET {NOT HIDDEN | IMPLICITLY HIDDEN}","SET FIELDPROC","DROP {DEFAULT | NOT NULL | GENERATED | IDENTITY | ROW CHANGE TIMESTAMP | FIELDPROC}","TRUNCATE [TABLE]","SET [CURRENT] SCHEMA","SET CURRENT_SCHEMA","ALLOCATE CURSOR","ALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL] SQL","ALTER [SPECIFIC] {FUNCTION | PROCEDURE}","ALTER {MASK | PERMISSION | SEQUENCE | TRIGGER}","ASSOCIATE [RESULT SET] {LOCATOR | LOCATORS}","BEGIN DECLARE SECTION","CALL","CLOSE","COMMENT ON {ALIAS | COLUMN | CONSTRAINT | INDEX | MASK | PACKAGE | PARAMETER | PERMISSION | SEQUENCE | TABLE | TRIGGER | VARIABLE | XSROBJECT}","COMMENT ON [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON PARAMETER SPECIFIC {FUNCTION | PROCEDURE | ROUTINE}","COMMENT ON [TABLE FUNCTION] RETURN COLUMN","COMMENT ON [TABLE FUNCTION] RETURN COLUMN SPECIFIC [PROCEDURE | ROUTINE]","COMMIT [WORK] [HOLD]","CONNECT [TO | RESET] USER","CREATE [OR REPLACE] {ALIAS | FUNCTION | MASK | PERMISSION | PROCEDURE | SEQUENCE | TRIGGER | VARIABLE}","CREATE [ENCODED VECTOR] INDEX","CREATE UNIQUE [WHERE NOT NULL] INDEX","CREATE SCHEMA","CREATE TYPE","DEALLOCATE [SQL] DESCRIPTOR [LOCAL | GLOBAL]","DECLARE CURSOR","DECLARE GLOBAL TEMPORARY TABLE","DECLARE","DESCRIBE CURSOR","DESCRIBE INPUT","DESCRIBE [OUTPUT]","DESCRIBE {PROCEDURE | ROUTINE}","DESCRIBE TABLE","DISCONNECT ALL [SQL]","DISCONNECT [CURRENT]","DROP {ALIAS | INDEX | MASK | PACKAGE | PERMISSION | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE | XSROBJECT} [IF EXISTS]","DROP [SPECIFIC] {FUNCTION | PROCEDURE | ROUTINE} [IF EXISTS]","END DECLARE SECTION","EXECUTE [IMMEDIATE]","FREE LOCATOR","GET [SQL] DESCRIPTOR [LOCAL | GLOBAL]","GET [CURRENT | STACKED] DIAGNOSTICS","GRANT {ALL [PRIVILEGES] | ALTER | EXECUTE} ON {FUNCTION | PROCEDURE | ROUTINE | PACKAGE | SCHEMA | SEQUENCE | TABLE | TYPE | VARIABLE |