dbgate-web 5.2.8 → 5.3.0

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.
@@ -1,2 +1,2 @@
1
- !function(){"use strict";var t,n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i={},e={},o={};t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.redisSplitterOptions=t.noSplitSplitterOptions=t.mongoSplitterOptions=t.sqliteSplitterOptions=t.postgreSplitterOptions=t.mssqlSplitterOptions=t.mysqlSplitterOptions=t.defaultSplitterOptions=void 0,t.defaultSplitterOptions={stringsBegins:["'"],stringsEnds:{"'":"'"},stringEscapes:{"'":"'"},allowSemicolon:!0,allowCustomDelimiter:!1,allowGoDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1},t.mysqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`"],stringsEnds:{"'":"'","`":"`"},stringEscapes:{"'":"\\","`":"`"}}),t.mssqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),t.postgreSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.sqliteSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.mongoSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),t.noSplitSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{noSplit:!0}),t.redisSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{splitByLines:!0}),Object.defineProperty(e,"__esModule",{value:!0}),e.splitQuery=e.finishSplitStream=e.getInitialDelimiter=e.splitQueryLine=void 0;const s=o,r=";";function a(t,n,i){let{source:e,position:o,line:s,column:r,streamPosition:a}=t;for(;n>0;)"\n"==e[o]?(s+=1,r=0):r+=1,o+=1,a+=1,n-=1;t.position=o,t.streamPosition=a,t.line=s,t.column=r,t.wasDataInCommand||(i?(t.trimCommandStartPosition=a,t.trimCommandStartLine=s,t.trimCommandStartColumn=r):t.wasDataInCommand=!0),i||(t.noWhitePosition=a,t.noWhiteLine=s,t.noWhiteColumn=r)}function l(t,n,i,e){return e?i==e?t[n]==i&&t[n+1]!=i:t[n]==i&&t[n-1]!=e:t[n]==i}const m={type:"whitespace",length:1},p={type:"eoln",length:1},c={type:"data",length:1};function u(t){let n=t.position;const i=t.source,e=i[n];if(t.options.stringsBegins.includes(e)){n++;const o=t.options.stringsEnds[e],s=t.options.stringEscapes[e];for(;n<t.end&&!l(i,n,o,s);)o==s&&i[n]==o&&i[n+1]==o?n+=2:n++;return{type:"string",length:n-t.position+1}}if(t.currentDelimiter&&i.slice(n).startsWith(t.currentDelimiter))return{type:"delimiter",length:t.currentDelimiter.length};if(" "==e||"\t"==e||"\r"==e)return m;if("\n"==e)return p;if(t.options.doubleDashComments&&"-"==e&&"-"==i[n+1]){for(;n<t.end&&"\n"!=i[n];)n++;return{type:"comment",length:n-t.position}}if(t.options.multilineComments&&"/"==e&&"*"==i[n+1]){for(n+=2;n<t.end&&("*"!=i[n]||"/"!=i[n+1]);)n++;return{type:"comment",length:n-t.position+2}}if(t.options.allowCustomDelimiter&&!t.wasDataOnLine){const t=i.slice(n).match(/^DELIMITER[ \t]+([^\n]+)/i);if(t)return{type:"set_delimiter",value:t[1].trim(),length:t[0].length}}if((t.options.allowGoDelimiter||t.options.adaptiveGoSplit)&&!t.wasDataOnLine){const t=i.slice(n).match(/^GO[\t\r ]*(\n|$)/i);if(t)return{type:"go_delimiter",length:t[0].length-1}}if(t.options.adaptiveGoSplit){const t=i.slice(n).match(/^(CREATE|ALTER)\s*(PROCEDURE|FUNCTION|TRIGGER)/i);if(t)return{type:"create_routine",length:t[0].length-1}}const o=function(t){if(!t.options.allowDollarDollarString)return null;let n=t.position;const i=t.source,e=/^(\$[a-zA-Z0-9_]*\$)/.exec(i.slice(n));if(!e)return null;const o=e[1];for(n+=o.length;n<t.end;){if(i.slice(n).startsWith(o))return{type:"string",length:n+o.length-t.position};n++}return null}(t);return o||c}function d(t,n){var i;const e={options:t.options,source:t.source,position:t.position,currentDelimiter:t.currentDelimiter,end:t.end,wasDataOnLine:t.wasDataOnLine};for(e.position+=n.length;e.position<e.end;){const t=u(e);if(t)switch(t.type){case"whitespace":e.position+=t.length;continue;case"eoln":return!1;case"comment":if(null===(i=t.value)||void 0===i?void 0:i.includes("\n"))return!0;e.position+=t.length;continue;default:return!0}else e.position+=1}}function g(t){t.commandPart+=t.source.slice(t.currentCommandStart,t.position),S(t)}function S(t){const n=t.commandPart.substring(t.trimCommandStartPosition-t.commandStartPosition,t.noWhitePosition-t.commandStartPosition);n.trim()&&(t.options.returnRichInfo?t.pushOutput({text:n,start:{position:t.commandStartPosition,line:t.commandStartLine,column:t.commandStartColumn},end:{position:t.streamPosition,line:t.line,column:t.column},trimStart:{position:t.trimCommandStartPosition,line:t.trimCommandStartLine,column:t.trimCommandStartColumn},trimEnd:{position:t.noWhitePosition,line:t.noWhiteLine,column:t.noWhiteColumn}}):t.pushOutput(n))}function f(t){t.commandStartPosition=t.streamPosition,t.commandStartLine=t.line,t.commandStartColumn=t.column,t.trimCommandStartPosition=t.streamPosition,t.trimCommandStartLine=t.line,t.trimCommandStartColumn=t.column,t.wasDataInCommand=!1}function h(t){if(t.options.splitByLines)!function(t){for(;t.position<t.end;)"\n"==t.source[t.position]?(g(t),t.commandPart="",a(t,1,!0),t.currentCommandStart=t.position,f(t)):a(t,1,/\s/.test(t.source[t.position]));t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}(t);else{for(;t.position<t.end;){const n=u(t);if(n)switch(n.type){case"string":case"data":a(t,n.length,!1),t.wasDataOnLine=!0;break;case"comment":a(t,n.length,!!t.options.ignoreComments),t.wasDataOnLine=!0;break;case"eoln":a(t,n.length,!0),t.wasDataOnLine=!1;break;case"whitespace":a(t,n.length,!0);break;case"set_delimiter":g(t),t.commandPart="",t.currentDelimiter=n.value,a(t,n.length,!1),t.currentCommandStart=t.position,f(t);break;case"go_delimiter":g(t),t.commandPart="",a(t,n.length,!1),t.currentCommandStart=t.position,f(t),t.options.adaptiveGoSplit&&(t.currentDelimiter=r);break;case"create_routine":a(t,n.length,!1),t.options.adaptiveGoSplit&&(t.currentDelimiter=null);break;case"delimiter":if(t.options.preventSingleLineSplit&&d(t,n)){a(t,n.length,!1),t.wasDataOnLine=!0;break}g(t),t.commandPart="",a(t,n.length,!1),t.currentCommandStart=t.position,f(t)}else a(t,1,!1)}t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}}function O(t){return(null==t?void 0:t.adaptiveGoSplit)?r:!1===(null==t?void 0:t.allowSemicolon)?null:r}function C(t){S(t)}e.splitQueryLine=h,e.getInitialDelimiter=O,e.finishSplitStream=C,e.splitQuery=function(t,n=null){var i;const e=Object.assign(Object.assign({},s.defaultSplitterOptions),n);if(e.noSplit){if(e.returnRichInfo){const n=t.split("\n");return[{text:t,start:{position:0,line:0,column:0},end:{position:t.length,line:n.length,column:(null===(i=n[n.length-1])||void 0===i?void 0:i.length)||0}}]}return[t]}const o=[],r={source:t,end:t.length,currentDelimiter:O(n),position:0,column:0,line:0,currentCommandStart:0,commandStartLine:0,commandStartColumn:0,commandStartPosition:0,streamPosition:0,noWhiteLine:0,noWhiteColumn:0,noWhitePosition:0,trimCommandStartPosition:0,trimCommandStartLine:0,trimCommandStartColumn:0,wasDataInCommand:!1,pushOutput:t=>o.push(t),wasDataOnLine:!1,options:e,commandPart:""};return h(r),C(r),o},function(t){var i=n&&n.__createBinding||(Object.create?function(t,n,i,e){void 0===e&&(e=i);var o=Object.getOwnPropertyDescriptor(n,i);o&&!("get"in o?!n.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,e,o)}:function(t,n,i,e){void 0===e&&(e=i),t[e]=n[i]}),s=n&&n.__exportStar||function(t,n){for(var e in t)"default"===e||Object.prototype.hasOwnProperty.call(n,e)||i(n,t,e)};Object.defineProperty(t,"__esModule",{value:!0}),t.splitQuery=void 0;var r=e;Object.defineProperty(t,"splitQuery",{enumerable:!0,get:function(){return r.splitQuery}}),s(o,t)}(i),onmessage=t=>{const n=i.splitQuery(t.data.text,t.data.options);postMessage(n)}}();
1
+ !function(){"use strict";var t,n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i={},e={},o={};t=o,Object.defineProperty(t,"__esModule",{value:!0}),t.oracleSplitterOptions=t.redisSplitterOptions=t.noSplitSplitterOptions=t.mongoSplitterOptions=t.sqliteSplitterOptions=t.postgreSplitterOptions=t.mssqlSplitterOptions=t.mysqlSplitterOptions=t.defaultSplitterOptions=void 0,t.defaultSplitterOptions={stringsBegins:["'"],stringsEnds:{"'":"'"},stringEscapes:{"'":"'"},allowSemicolon:!0,allowCustomDelimiter:!1,allowCustomSqlTerminator:!1,allowGoDelimiter:!1,allowSlashDelimiter:!1,allowDollarDollarString:!1,noSplit:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1},t.mysqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomDelimiter:!0,stringsBegins:["'","`"],stringsEnds:{"'":"'","`":"`"},stringEscapes:{"'":"\\","`":"`"}}),t.mssqlSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowSemicolon:!1,allowGoDelimiter:!0,stringsBegins:["'","["],stringsEnds:{"'":"'","[":"]"},stringEscapes:{"'":"'"}}),t.postgreSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowDollarDollarString:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.sqliteSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),t.mongoSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"\\",'"':"\\"}}),t.noSplitSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{noSplit:!0}),t.redisSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{splitByLines:!0}),t.oracleSplitterOptions=Object.assign(Object.assign({},t.defaultSplitterOptions),{allowCustomSqlTerminator:!0,allowSlashDelimiter:!0,stringsBegins:["'",'"'],stringsEnds:{"'":"'",'"':'"'},stringEscapes:{"'":"'",'"':'"'}}),Object.defineProperty(e,"__esModule",{value:!0}),e.splitQuery=e.finishSplitStream=e.getInitialDelimiter=e.splitQueryLine=void 0;const s=o,r=";";function l(t,n,i){let{source:e,position:o,line:s,column:r,streamPosition:l}=t;for(;n>0;)"\n"==e[o]?(s+=1,r=0):r+=1,o+=1,l+=1,n-=1;t.position=o,t.streamPosition=l,t.line=s,t.column=r,t.wasDataInCommand||(i?(t.trimCommandStartPosition=l,t.trimCommandStartLine=s,t.trimCommandStartColumn=r):t.wasDataInCommand=!0),i||(t.noWhitePosition=l,t.noWhiteLine=s,t.noWhiteColumn=r)}function a(t,n,i,e){return e?i==e?t[n]==i&&t[n+1]!=i:t[n]==i&&t[n-1]!=e:t[n]==i}const m={type:"whitespace",length:1},p={type:"eoln",length:1},c={type:"data",length:1};function u(t){let n=t.position;const i=t.source,e=i[n];if(t.options.stringsBegins.includes(e)){n++;const o=t.options.stringsEnds[e],s=t.options.stringEscapes[e];for(;n<t.end&&!a(i,n,o,s);)o==s&&i[n]==o&&i[n+1]==o?n+=2:n++;return{type:"string",length:n-t.position+1}}if(t.currentDelimiter&&i.slice(n).startsWith(t.currentDelimiter))return{type:"delimiter",length:t.currentDelimiter.length};if(" "==e||"\t"==e||"\r"==e)return m;if("\n"==e)return p;if(t.options.doubleDashComments&&"-"==e&&"-"==i[n+1]){for(;n<t.end&&"\n"!=i[n];)n++;return{type:"comment",length:n-t.position}}if(t.options.multilineComments&&"/"==e&&"*"==i[n+1]){for(n+=2;n<t.end&&("*"!=i[n]||"/"!=i[n+1]);)n++;return{type:"comment",length:n-t.position+2}}if(t.options.allowCustomDelimiter&&!t.wasDataOnLine){const t=i.slice(n).match(/^DELIMITER[ \t]+([^\n]+)/i);if(t)return{type:"set_delimiter",value:t[1].trim(),length:t[0].length}}if(t.options.allowCustomSqlTerminator){const t=i.slice(n).match(/^SET[ \t]+SQLT(ERMINATOR)?[ \t]+(ON|OFF|".")/i);if(t){if("OFF"==t[2].toUpperCase())return{type:"set_sqlterminator",value:null,length:t[0].length};if("ON"==t[2].toUpperCase())return{type:"set_sqlterminator",value:r,length:t[0].length};if(t[2].startsWith('"'))return{type:"set_sqlterminator",value:t[2].slice(1,-1),length:t[0].length}}}if((t.options.allowGoDelimiter||t.options.adaptiveGoSplit)&&!t.wasDataOnLine){const t=i.slice(n).match(/^GO[\t\r ]*(\n|$)/i);if(t)return{type:"go_delimiter",length:t[0].endsWith("\n")?t[0].length-1:t[0].length}}if(t.options.allowSlashDelimiter&&!t.wasDataOnLine){const t=i.slice(n).match(/^\/[\t\r ]*(\n|$)/i);if(t)return{type:"slash_delimiter",length:t[0].endsWith("\n")?t[0].length-1:t[0].length}}if(t.options.adaptiveGoSplit){const t=i.slice(n).match(/^(CREATE|ALTER)\s*(PROCEDURE|FUNCTION|TRIGGER)/i);if(t)return{type:"create_routine",length:t[0].length}}const o=function(t){if(!t.options.allowDollarDollarString)return null;let n=t.position;const i=t.source,e=/^(\$[a-zA-Z0-9_]*\$)/.exec(i.slice(n));if(!e)return null;const o=e[1];for(n+=o.length;n<t.end;){if(i.slice(n).startsWith(o))return{type:"string",length:n+o.length-t.position};n++}return null}(t);return o||c}function d(t,n){var i;const e={options:t.options,source:t.source,position:t.position,currentDelimiter:t.currentDelimiter,end:t.end,wasDataOnLine:t.wasDataOnLine};for(e.position+=n.length;e.position<e.end;){const t=u(e);if(t)switch(t.type){case"whitespace":e.position+=t.length;continue;case"eoln":return!1;case"comment":if(null===(i=t.value)||void 0===i?void 0:i.includes("\n"))return!0;e.position+=t.length;continue;default:return!0}else e.position+=1}}function g(t){t.commandPart+=t.source.slice(t.currentCommandStart,t.position),S(t)}function S(t){const n=t.commandPart.substring(t.trimCommandStartPosition-t.commandStartPosition,t.noWhitePosition-t.commandStartPosition);n.trim()&&(t.options.returnRichInfo?t.pushOutput({text:n,start:{position:t.commandStartPosition,line:t.commandStartLine,column:t.commandStartColumn},end:{position:t.streamPosition,line:t.line,column:t.column},trimStart:{position:t.trimCommandStartPosition,line:t.trimCommandStartLine,column:t.trimCommandStartColumn},trimEnd:{position:t.noWhitePosition,line:t.noWhiteLine,column:t.noWhiteColumn}}):t.pushOutput(n))}function f(t){t.commandStartPosition=t.streamPosition,t.commandStartLine=t.line,t.commandStartColumn=t.column,t.trimCommandStartPosition=t.streamPosition,t.trimCommandStartLine=t.line,t.trimCommandStartColumn=t.column,t.wasDataInCommand=!1}function h(t){if(t.options.splitByLines)!function(t){for(;t.position<t.end;)"\n"==t.source[t.position]?(g(t),t.commandPart="",l(t,1,!0),t.currentCommandStart=t.position,f(t)):l(t,1,/\s/.test(t.source[t.position]));t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}(t);else{for(;t.position<t.end;){const n=u(t);if(n)switch(n.type){case"string":case"data":l(t,n.length,!1),t.wasDataOnLine=!0;break;case"comment":l(t,n.length,!!t.options.ignoreComments),t.wasDataOnLine=!0;break;case"eoln":l(t,n.length,!0),t.wasDataOnLine=!1;break;case"whitespace":l(t,n.length,!0);break;case"set_delimiter":case"set_sqlterminator":g(t),t.commandPart="",t.currentDelimiter=n.value,l(t,n.length,!1),t.currentCommandStart=t.position,f(t);break;case"go_delimiter":g(t),t.commandPart="",l(t,n.length,!1),t.currentCommandStart=t.position,f(t),t.options.adaptiveGoSplit&&(t.currentDelimiter=r);break;case"slash_delimiter":g(t),t.commandPart="",l(t,n.length,!1),t.currentCommandStart=t.position,f(t);break;case"create_routine":l(t,n.length,!1),t.options.adaptiveGoSplit&&(t.currentDelimiter=null);break;case"delimiter":if(t.options.preventSingleLineSplit&&d(t,n)){l(t,n.length,!1),t.wasDataOnLine=!0;break}g(t),t.commandPart="",l(t,n.length,!1),t.currentCommandStart=t.position,f(t)}else l(t,1,!1)}t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}}function O(t){return(null==t?void 0:t.adaptiveGoSplit)?r:!1===(null==t?void 0:t.allowSemicolon)?null:r}function C(t){S(t)}e.splitQueryLine=h,e.getInitialDelimiter=O,e.finishSplitStream=C,e.splitQuery=function(t,n=null){var i;const e=Object.assign(Object.assign({},s.defaultSplitterOptions),n);if(e.noSplit){if(e.returnRichInfo){const n=t.split("\n");return[{text:t,start:{position:0,line:0,column:0},end:{position:t.length,line:n.length,column:(null===(i=n[n.length-1])||void 0===i?void 0:i.length)||0}}]}return[t]}const o=[],r={source:t,end:t.length,currentDelimiter:O(n),position:0,column:0,line:0,currentCommandStart:0,commandStartLine:0,commandStartColumn:0,commandStartPosition:0,streamPosition:0,noWhiteLine:0,noWhiteColumn:0,noWhitePosition:0,trimCommandStartPosition:0,trimCommandStartLine:0,trimCommandStartColumn:0,wasDataInCommand:!1,pushOutput:t=>o.push(t),wasDataOnLine:!1,options:e,commandPart:""};return h(r),C(r),o},function(t){var i=n&&n.__createBinding||(Object.create?function(t,n,i,e){void 0===e&&(e=i);var o=Object.getOwnPropertyDescriptor(n,i);o&&!("get"in o?!n.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return n[i]}}),Object.defineProperty(t,e,o)}:function(t,n,i,e){void 0===e&&(e=i),t[e]=n[i]}),s=n&&n.__exportStar||function(t,n){for(var e in t)"default"===e||Object.prototype.hasOwnProperty.call(n,e)||i(n,t,e)};Object.defineProperty(t,"__esModule",{value:!0}),t.splitQuery=void 0;var r=e;Object.defineProperty(t,"splitQuery",{enumerable:!0,get:function(){return r.splitQuery}}),s(o,t)}(i),onmessage=t=>{const n=i.splitQuery(t.data.text,t.data.options);postMessage(n)}}();
2
2
  //# sourceMappingURL=query-parser-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query-parser-worker.js","sources":["../../../../node_modules/dbgate-query-splitter/lib/options.js","../../../../node_modules/dbgate-query-splitter/lib/splitQuery.js","../../../../node_modules/dbgate-query-splitter/lib/index.js","../../src/query/QueryParserWorker.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.redisSplitterOptions = exports.noSplitSplitterOptions = exports.mongoSplitterOptions = exports.sqliteSplitterOptions = exports.postgreSplitterOptions = exports.mssqlSplitterOptions = exports.mysqlSplitterOptions = exports.defaultSplitterOptions = void 0;\nexports.defaultSplitterOptions = {\n stringsBegins: [\"'\"],\n stringsEnds: { \"'\": \"'\" },\n stringEscapes: { \"'\": \"'\" },\n allowSemicolon: true,\n allowCustomDelimiter: false,\n allowGoDelimiter: false,\n allowDollarDollarString: false,\n noSplit: false,\n doubleDashComments: true,\n multilineComments: true,\n javaScriptComments: false,\n returnRichInfo: false,\n splitByLines: false,\n preventSingleLineSplit: false,\n adaptiveGoSplit: false,\n ignoreComments: false,\n};\nexports.mysqlSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowCustomDelimiter: true, stringsBegins: [\"'\", '`'], stringsEnds: { \"'\": \"'\", '`': '`' }, stringEscapes: { \"'\": '\\\\', '`': '`' } });\nexports.mssqlSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowSemicolon: false, allowGoDelimiter: true, stringsBegins: [\"'\", '['], stringsEnds: { \"'\": \"'\", '[': ']' }, stringEscapes: { \"'\": \"'\" } });\nexports.postgreSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowDollarDollarString: true, stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": \"'\", '\"': '\"' } });\nexports.sqliteSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": \"'\", '\"': '\"' } });\nexports.mongoSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": '\\\\', '\"': '\\\\' } });\nexports.noSplitSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { noSplit: true });\nexports.redisSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { splitByLines: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitQuery = exports.finishSplitStream = exports.getInitialDelimiter = exports.splitQueryLine = void 0;\nconst options_1 = require(\"./options\");\nconst SEMICOLON = ';';\nfunction movePosition(context, count, isWhite) {\n let { source, position, line, column, streamPosition } = context;\n while (count > 0) {\n if (source[position] == '\\n') {\n line += 1;\n column = 0;\n }\n else {\n column += 1;\n }\n position += 1;\n streamPosition += 1;\n count -= 1;\n }\n context.position = position;\n context.streamPosition = streamPosition;\n context.line = line;\n context.column = column;\n if (!context.wasDataInCommand) {\n if (isWhite) {\n context.trimCommandStartPosition = streamPosition;\n context.trimCommandStartLine = line;\n context.trimCommandStartColumn = column;\n }\n else {\n context.wasDataInCommand = true;\n }\n }\n if (!isWhite) {\n context.noWhitePosition = streamPosition;\n context.noWhiteLine = line;\n context.noWhiteColumn = column;\n }\n}\nfunction isStringEnd(s, pos, endch, escapech) {\n if (!escapech) {\n return s[pos] == endch;\n }\n if (endch == escapech) {\n return s[pos] == endch && s[pos + 1] != endch;\n }\n else {\n return s[pos] == endch && s[pos - 1] != escapech;\n }\n}\nconst WHITESPACE_TOKEN = {\n type: 'whitespace',\n length: 1,\n};\nconst EOLN_TOKEN = {\n type: 'eoln',\n length: 1,\n};\nconst DATA_TOKEN = {\n type: 'data',\n length: 1,\n};\nfunction scanDollarQuotedString(context) {\n if (!context.options.allowDollarDollarString)\n return null;\n let pos = context.position;\n const s = context.source;\n const match = /^(\\$[a-zA-Z0-9_]*\\$)/.exec(s.slice(pos));\n if (!match)\n return null;\n const label = match[1];\n pos += label.length;\n while (pos < context.end) {\n if (s.slice(pos).startsWith(label)) {\n return {\n type: 'string',\n length: pos + label.length - context.position,\n };\n }\n pos++;\n }\n return null;\n}\nfunction scanToken(context) {\n let pos = context.position;\n const s = context.source;\n const ch = s[pos];\n if (context.options.stringsBegins.includes(ch)) {\n pos++;\n const endch = context.options.stringsEnds[ch];\n const escapech = context.options.stringEscapes[ch];\n while (pos < context.end && !isStringEnd(s, pos, endch, escapech)) {\n if (endch == escapech && s[pos] == endch && s[pos + 1] == endch) {\n pos += 2;\n }\n else {\n pos++;\n }\n }\n return {\n type: 'string',\n length: pos - context.position + 1,\n };\n }\n if (context.currentDelimiter && s.slice(pos).startsWith(context.currentDelimiter)) {\n return {\n type: 'delimiter',\n length: context.currentDelimiter.length,\n };\n }\n if (ch == ' ' || ch == '\\t' || ch == '\\r') {\n return WHITESPACE_TOKEN;\n }\n if (ch == '\\n') {\n return EOLN_TOKEN;\n }\n if (context.options.doubleDashComments && ch == '-' && s[pos + 1] == '-') {\n while (pos < context.end && s[pos] != '\\n')\n pos++;\n return {\n type: 'comment',\n length: pos - context.position,\n };\n }\n if (context.options.multilineComments && ch == '/' && s[pos + 1] == '*') {\n pos += 2;\n while (pos < context.end) {\n if (s[pos] == '*' && s[pos + 1] == '/')\n break;\n pos++;\n }\n return {\n type: 'comment',\n length: pos - context.position + 2,\n };\n }\n if (context.options.allowCustomDelimiter && !context.wasDataOnLine) {\n const m = s.slice(pos).match(/^DELIMITER[ \\t]+([^\\n]+)/i);\n if (m) {\n return {\n type: 'set_delimiter',\n value: m[1].trim(),\n length: m[0].length,\n };\n }\n }\n if ((context.options.allowGoDelimiter || context.options.adaptiveGoSplit) && !context.wasDataOnLine) {\n const m = s.slice(pos).match(/^GO[\\t\\r ]*(\\n|$)/i);\n if (m) {\n return {\n type: 'go_delimiter',\n length: m[0].length - 1,\n };\n }\n }\n if (context.options.adaptiveGoSplit) {\n const m = s.slice(pos).match(/^(CREATE|ALTER)\\s*(PROCEDURE|FUNCTION|TRIGGER)/i);\n if (m) {\n return {\n type: 'create_routine',\n length: m[0].length - 1,\n };\n }\n }\n const dollarString = scanDollarQuotedString(context);\n if (dollarString)\n return dollarString;\n return DATA_TOKEN;\n}\nfunction containsDataAfterDelimiterOnLine(context, delimiter) {\n var _a;\n const cloned = {\n options: context.options,\n source: context.source,\n position: context.position,\n currentDelimiter: context.currentDelimiter,\n end: context.end,\n wasDataOnLine: context.wasDataOnLine,\n };\n cloned.position += delimiter.length;\n while (cloned.position < cloned.end) {\n const token = scanToken(cloned);\n if (!token) {\n cloned.position += 1;\n continue;\n }\n switch (token.type) {\n case 'whitespace':\n cloned.position += token.length;\n continue;\n case 'eoln':\n return false;\n case 'comment':\n if ((_a = token.value) === null || _a === void 0 ? void 0 : _a.includes('\\n'))\n return true;\n cloned.position += token.length;\n continue;\n default:\n return true;\n }\n }\n}\nfunction pushQuery(context) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n pushCurrentQueryPart(context);\n}\nfunction pushCurrentQueryPart(context) {\n const trimmed = context.commandPart.substring(context.trimCommandStartPosition - context.commandStartPosition, context.noWhitePosition - context.commandStartPosition);\n if (trimmed.trim()) {\n if (context.options.returnRichInfo) {\n context.pushOutput({\n text: trimmed,\n start: {\n position: context.commandStartPosition,\n line: context.commandStartLine,\n column: context.commandStartColumn,\n },\n end: {\n position: context.streamPosition,\n line: context.line,\n column: context.column,\n },\n trimStart: {\n position: context.trimCommandStartPosition,\n line: context.trimCommandStartLine,\n column: context.trimCommandStartColumn,\n },\n trimEnd: {\n position: context.noWhitePosition,\n line: context.noWhiteLine,\n column: context.noWhiteColumn,\n },\n });\n }\n else {\n context.pushOutput(trimmed);\n }\n }\n}\nfunction markStartCommand(context) {\n context.commandStartPosition = context.streamPosition;\n context.commandStartLine = context.line;\n context.commandStartColumn = context.column;\n context.trimCommandStartPosition = context.streamPosition;\n context.trimCommandStartLine = context.line;\n context.trimCommandStartColumn = context.column;\n context.wasDataInCommand = false;\n}\nfunction splitByLines(context) {\n while (context.position < context.end) {\n if (context.source[context.position] == '\\n') {\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, 1, true);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n }\n else {\n movePosition(context, 1, /\\s/.test(context.source[context.position]));\n }\n }\n if (context.end > context.currentCommandStart) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n }\n}\nfunction splitQueryLine(context) {\n if (context.options.splitByLines) {\n splitByLines(context);\n return;\n }\n while (context.position < context.end) {\n const token = scanToken(context);\n if (!token) {\n // nothing special, move forward\n movePosition(context, 1, false);\n continue;\n }\n switch (token.type) {\n case 'string':\n movePosition(context, token.length, false);\n context.wasDataOnLine = true;\n break;\n case 'comment':\n movePosition(context, token.length, !!context.options.ignoreComments);\n context.wasDataOnLine = true;\n break;\n case 'eoln':\n movePosition(context, token.length, true);\n context.wasDataOnLine = false;\n break;\n case 'data':\n movePosition(context, token.length, false);\n context.wasDataOnLine = true;\n break;\n case 'whitespace':\n movePosition(context, token.length, true);\n break;\n case 'set_delimiter':\n pushQuery(context);\n context.commandPart = '';\n context.currentDelimiter = token.value;\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'go_delimiter':\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n if (context.options.adaptiveGoSplit) {\n context.currentDelimiter = SEMICOLON;\n }\n break;\n case 'create_routine':\n movePosition(context, token.length, false);\n if (context.options.adaptiveGoSplit) {\n context.currentDelimiter = null;\n }\n break;\n case 'delimiter':\n if (context.options.preventSingleLineSplit && containsDataAfterDelimiterOnLine(context, token)) {\n movePosition(context, token.length, false);\n context.wasDataOnLine = true;\n break;\n }\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n }\n }\n if (context.end > context.currentCommandStart) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n }\n}\nexports.splitQueryLine = splitQueryLine;\nfunction getInitialDelimiter(options) {\n if (options === null || options === void 0 ? void 0 : options.adaptiveGoSplit)\n return SEMICOLON;\n return (options === null || options === void 0 ? void 0 : options.allowSemicolon) === false ? null : SEMICOLON;\n}\nexports.getInitialDelimiter = getInitialDelimiter;\nfunction finishSplitStream(context) {\n pushCurrentQueryPart(context);\n}\nexports.finishSplitStream = finishSplitStream;\nfunction splitQuery(sql, options = null) {\n var _a;\n const usedOptions = Object.assign(Object.assign({}, options_1.defaultSplitterOptions), options);\n if (usedOptions.noSplit) {\n if (usedOptions.returnRichInfo) {\n const lines = sql.split('\\n');\n return [\n {\n text: sql,\n start: {\n position: 0,\n line: 0,\n column: 0,\n },\n end: {\n position: sql.length,\n line: lines.length,\n column: ((_a = lines[lines.length - 1]) === null || _a === void 0 ? void 0 : _a.length) || 0,\n },\n },\n ];\n }\n return [sql];\n }\n const output = [];\n const context = {\n source: sql,\n end: sql.length,\n currentDelimiter: getInitialDelimiter(options),\n position: 0,\n column: 0,\n line: 0,\n currentCommandStart: 0,\n commandStartLine: 0,\n commandStartColumn: 0,\n commandStartPosition: 0,\n streamPosition: 0,\n noWhiteLine: 0,\n noWhiteColumn: 0,\n noWhitePosition: 0,\n trimCommandStartPosition: 0,\n trimCommandStartLine: 0,\n trimCommandStartColumn: 0,\n wasDataInCommand: false,\n pushOutput: cmd => output.push(cmd),\n wasDataOnLine: false,\n options: usedOptions,\n commandPart: '',\n };\n splitQueryLine(context);\n finishSplitStream(context);\n return output;\n}\nexports.splitQuery = splitQuery;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitQuery = void 0;\nvar splitQuery_1 = require(\"./splitQuery\");\nObject.defineProperty(exports, \"splitQuery\", { enumerable: true, get: function () { return splitQuery_1.splitQuery; } });\n__exportStar(require(\"./options\"), exports);\n","import { splitQuery } from 'dbgate-query-splitter';\n\nonmessage = e => {\n const result = splitQuery(e.data.text, e.data.options);\n postMessage(result);\n};\n"],"names":["Object","defineProperty","exports","value","redisSplitterOptions","noSplitSplitterOptions","sqliteSplitterOptions","postgreSplitterOptions","mysqlSplitterOptions","defaultSplitterOptions","stringsBegins","stringsEnds","stringEscapes","allowSemicolon","allowCustomDelimiter","allowGoDelimiter","allowDollarDollarString","noSplit","doubleDashComments","multilineComments","javaScriptComments","returnRichInfo","splitByLines","preventSingleLineSplit","adaptiveGoSplit","ignoreComments","assign","mssqlSplitterOptions","mongoSplitterOptions","splitQuery_1","splitQuery","getInitialDelimiter","splitQueryLine","options_1","require$$0","SEMICOLON","movePosition","context","count","isWhite","source","position","line","column","streamPosition","wasDataInCommand","trimCommandStartPosition","trimCommandStartLine","trimCommandStartColumn","noWhitePosition","noWhiteLine","noWhiteColumn","isStringEnd","s","pos","endch","escapech","WHITESPACE_TOKEN","type","length","EOLN_TOKEN","DATA_TOKEN","scanToken","ch","options","includes","end","currentDelimiter","slice","startsWith","wasDataOnLine","m","match","trim","dollarString","exec","label","scanDollarQuotedString","containsDataAfterDelimiterOnLine","delimiter","_a","cloned","token","pushQuery","commandPart","currentCommandStart","pushCurrentQueryPart","trimmed","substring","commandStartPosition","pushOutput","text","start","commandStartLine","commandStartColumn","trimStart","trimEnd","markStartCommand","test","finishSplitStream","splitQuery$1","sql","usedOptions","lines","split","output","cmd","push","__createBinding","this","create","o","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","require$$1","onmessage","e","result","data","postMessage"],"mappings":"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"}
1
+ {"version":3,"file":"query-parser-worker.js","sources":["../../../../node_modules/dbgate-query-splitter/lib/options.js","../../../../node_modules/dbgate-query-splitter/lib/splitQuery.js","../../../../node_modules/dbgate-query-splitter/lib/index.js","../../src/query/QueryParserWorker.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.oracleSplitterOptions = exports.redisSplitterOptions = exports.noSplitSplitterOptions = exports.mongoSplitterOptions = exports.sqliteSplitterOptions = exports.postgreSplitterOptions = exports.mssqlSplitterOptions = exports.mysqlSplitterOptions = exports.defaultSplitterOptions = void 0;\nexports.defaultSplitterOptions = {\n stringsBegins: [\"'\"],\n stringsEnds: { \"'\": \"'\" },\n stringEscapes: { \"'\": \"'\" },\n allowSemicolon: true,\n allowCustomDelimiter: false,\n allowCustomSqlTerminator: false,\n allowGoDelimiter: false,\n allowSlashDelimiter: false,\n allowDollarDollarString: false,\n noSplit: false,\n doubleDashComments: true,\n multilineComments: true,\n javaScriptComments: false,\n returnRichInfo: false,\n splitByLines: false,\n preventSingleLineSplit: false,\n adaptiveGoSplit: false,\n ignoreComments: false,\n};\nexports.mysqlSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowCustomDelimiter: true, stringsBegins: [\"'\", '`'], stringsEnds: { \"'\": \"'\", '`': '`' }, stringEscapes: { \"'\": '\\\\', '`': '`' } });\nexports.mssqlSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowSemicolon: false, allowGoDelimiter: true, stringsBegins: [\"'\", '['], stringsEnds: { \"'\": \"'\", '[': ']' }, stringEscapes: { \"'\": \"'\" } });\nexports.postgreSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowDollarDollarString: true, stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": \"'\", '\"': '\"' } });\nexports.sqliteSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": \"'\", '\"': '\"' } });\nexports.mongoSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": '\\\\', '\"': '\\\\' } });\nexports.noSplitSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { noSplit: true });\nexports.redisSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { splitByLines: true });\nexports.oracleSplitterOptions = Object.assign(Object.assign({}, exports.defaultSplitterOptions), { allowCustomSqlTerminator: true, allowSlashDelimiter: true, stringsBegins: [\"'\", '\"'], stringsEnds: { \"'\": \"'\", '\"': '\"' }, stringEscapes: { \"'\": \"'\", '\"': '\"' } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitQuery = exports.finishSplitStream = exports.getInitialDelimiter = exports.splitQueryLine = void 0;\nconst options_1 = require(\"./options\");\nconst SEMICOLON = ';';\nfunction movePosition(context, count, isWhite) {\n let { source, position, line, column, streamPosition } = context;\n while (count > 0) {\n if (source[position] == '\\n') {\n line += 1;\n column = 0;\n }\n else {\n column += 1;\n }\n position += 1;\n streamPosition += 1;\n count -= 1;\n }\n context.position = position;\n context.streamPosition = streamPosition;\n context.line = line;\n context.column = column;\n if (!context.wasDataInCommand) {\n if (isWhite) {\n context.trimCommandStartPosition = streamPosition;\n context.trimCommandStartLine = line;\n context.trimCommandStartColumn = column;\n }\n else {\n context.wasDataInCommand = true;\n }\n }\n if (!isWhite) {\n context.noWhitePosition = streamPosition;\n context.noWhiteLine = line;\n context.noWhiteColumn = column;\n }\n}\nfunction isStringEnd(s, pos, endch, escapech) {\n if (!escapech) {\n return s[pos] == endch;\n }\n if (endch == escapech) {\n return s[pos] == endch && s[pos + 1] != endch;\n }\n else {\n return s[pos] == endch && s[pos - 1] != escapech;\n }\n}\nconst WHITESPACE_TOKEN = {\n type: 'whitespace',\n length: 1,\n};\nconst EOLN_TOKEN = {\n type: 'eoln',\n length: 1,\n};\nconst DATA_TOKEN = {\n type: 'data',\n length: 1,\n};\nfunction scanDollarQuotedString(context) {\n if (!context.options.allowDollarDollarString)\n return null;\n let pos = context.position;\n const s = context.source;\n const match = /^(\\$[a-zA-Z0-9_]*\\$)/.exec(s.slice(pos));\n if (!match)\n return null;\n const label = match[1];\n pos += label.length;\n while (pos < context.end) {\n if (s.slice(pos).startsWith(label)) {\n return {\n type: 'string',\n length: pos + label.length - context.position,\n };\n }\n pos++;\n }\n return null;\n}\nfunction scanToken(context) {\n let pos = context.position;\n const s = context.source;\n const ch = s[pos];\n if (context.options.stringsBegins.includes(ch)) {\n pos++;\n const endch = context.options.stringsEnds[ch];\n const escapech = context.options.stringEscapes[ch];\n while (pos < context.end && !isStringEnd(s, pos, endch, escapech)) {\n if (endch == escapech && s[pos] == endch && s[pos + 1] == endch) {\n pos += 2;\n }\n else {\n pos++;\n }\n }\n return {\n type: 'string',\n length: pos - context.position + 1,\n };\n }\n if (context.currentDelimiter && s.slice(pos).startsWith(context.currentDelimiter)) {\n return {\n type: 'delimiter',\n length: context.currentDelimiter.length,\n };\n }\n if (ch == ' ' || ch == '\\t' || ch == '\\r') {\n return WHITESPACE_TOKEN;\n }\n if (ch == '\\n') {\n return EOLN_TOKEN;\n }\n if (context.options.doubleDashComments && ch == '-' && s[pos + 1] == '-') {\n while (pos < context.end && s[pos] != '\\n')\n pos++;\n return {\n type: 'comment',\n length: pos - context.position,\n };\n }\n if (context.options.multilineComments && ch == '/' && s[pos + 1] == '*') {\n pos += 2;\n while (pos < context.end) {\n if (s[pos] == '*' && s[pos + 1] == '/')\n break;\n pos++;\n }\n return {\n type: 'comment',\n length: pos - context.position + 2,\n };\n }\n if (context.options.allowCustomDelimiter && !context.wasDataOnLine) {\n const m = s.slice(pos).match(/^DELIMITER[ \\t]+([^\\n]+)/i);\n if (m) {\n return {\n type: 'set_delimiter',\n value: m[1].trim(),\n length: m[0].length,\n };\n }\n }\n if (context.options.allowCustomSqlTerminator) {\n const m = s.slice(pos).match(/^SET[ \\t]+SQLT(ERMINATOR)?[ \\t]+(ON|OFF|\".\")/i);\n if (m) {\n if (m[2].toUpperCase() == 'OFF') {\n return {\n type: 'set_sqlterminator',\n value: null,\n length: m[0].length,\n };\n }\n if (m[2].toUpperCase() == 'ON') {\n return {\n type: 'set_sqlterminator',\n value: SEMICOLON,\n length: m[0].length,\n };\n }\n if (m[2].startsWith('\"')) {\n return {\n type: 'set_sqlterminator',\n value: m[2].slice(1, -1),\n length: m[0].length,\n };\n }\n }\n }\n if ((context.options.allowGoDelimiter || context.options.adaptiveGoSplit) && !context.wasDataOnLine) {\n const m = s.slice(pos).match(/^GO[\\t\\r ]*(\\n|$)/i);\n if (m) {\n return {\n type: 'go_delimiter',\n length: m[0].endsWith('\\n') ? m[0].length - 1 : m[0].length,\n };\n }\n }\n if (context.options.allowSlashDelimiter && !context.wasDataOnLine) {\n const m = s.slice(pos).match(/^\\/[\\t\\r ]*(\\n|$)/i);\n if (m) {\n return {\n type: 'slash_delimiter',\n length: m[0].endsWith('\\n') ? m[0].length - 1 : m[0].length,\n };\n }\n }\n if (context.options.adaptiveGoSplit) {\n const m = s.slice(pos).match(/^(CREATE|ALTER)\\s*(PROCEDURE|FUNCTION|TRIGGER)/i);\n if (m) {\n return {\n type: 'create_routine',\n length: m[0].length,\n };\n }\n }\n const dollarString = scanDollarQuotedString(context);\n if (dollarString)\n return dollarString;\n return DATA_TOKEN;\n}\nfunction containsDataAfterDelimiterOnLine(context, delimiter) {\n var _a;\n const cloned = {\n options: context.options,\n source: context.source,\n position: context.position,\n currentDelimiter: context.currentDelimiter,\n end: context.end,\n wasDataOnLine: context.wasDataOnLine,\n };\n cloned.position += delimiter.length;\n while (cloned.position < cloned.end) {\n const token = scanToken(cloned);\n if (!token) {\n cloned.position += 1;\n continue;\n }\n switch (token.type) {\n case 'whitespace':\n cloned.position += token.length;\n continue;\n case 'eoln':\n return false;\n case 'comment':\n if ((_a = token.value) === null || _a === void 0 ? void 0 : _a.includes('\\n'))\n return true;\n cloned.position += token.length;\n continue;\n default:\n return true;\n }\n }\n}\nfunction pushQuery(context) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n pushCurrentQueryPart(context);\n}\nfunction pushCurrentQueryPart(context) {\n const trimmed = context.commandPart.substring(context.trimCommandStartPosition - context.commandStartPosition, context.noWhitePosition - context.commandStartPosition);\n if (trimmed.trim()) {\n if (context.options.returnRichInfo) {\n context.pushOutput({\n text: trimmed,\n start: {\n position: context.commandStartPosition,\n line: context.commandStartLine,\n column: context.commandStartColumn,\n },\n end: {\n position: context.streamPosition,\n line: context.line,\n column: context.column,\n },\n trimStart: {\n position: context.trimCommandStartPosition,\n line: context.trimCommandStartLine,\n column: context.trimCommandStartColumn,\n },\n trimEnd: {\n position: context.noWhitePosition,\n line: context.noWhiteLine,\n column: context.noWhiteColumn,\n },\n });\n }\n else {\n context.pushOutput(trimmed);\n }\n }\n}\nfunction markStartCommand(context) {\n context.commandStartPosition = context.streamPosition;\n context.commandStartLine = context.line;\n context.commandStartColumn = context.column;\n context.trimCommandStartPosition = context.streamPosition;\n context.trimCommandStartLine = context.line;\n context.trimCommandStartColumn = context.column;\n context.wasDataInCommand = false;\n}\nfunction splitByLines(context) {\n while (context.position < context.end) {\n if (context.source[context.position] == '\\n') {\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, 1, true);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n }\n else {\n movePosition(context, 1, /\\s/.test(context.source[context.position]));\n }\n }\n if (context.end > context.currentCommandStart) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n }\n}\nfunction splitQueryLine(context) {\n if (context.options.splitByLines) {\n splitByLines(context);\n return;\n }\n while (context.position < context.end) {\n const token = scanToken(context);\n if (!token) {\n // nothing special, move forward\n movePosition(context, 1, false);\n continue;\n }\n switch (token.type) {\n case 'string':\n movePosition(context, token.length, false);\n context.wasDataOnLine = true;\n break;\n case 'comment':\n movePosition(context, token.length, !!context.options.ignoreComments);\n context.wasDataOnLine = true;\n break;\n case 'eoln':\n movePosition(context, token.length, true);\n context.wasDataOnLine = false;\n break;\n case 'data':\n movePosition(context, token.length, false);\n context.wasDataOnLine = true;\n break;\n case 'whitespace':\n movePosition(context, token.length, true);\n break;\n case 'set_delimiter':\n case 'set_sqlterminator':\n pushQuery(context);\n context.commandPart = '';\n context.currentDelimiter = token.value;\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'go_delimiter':\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n if (context.options.adaptiveGoSplit) {\n context.currentDelimiter = SEMICOLON;\n }\n break;\n case 'slash_delimiter':\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'create_routine':\n movePosition(context, token.length, false);\n if (context.options.adaptiveGoSplit) {\n context.currentDelimiter = null;\n }\n break;\n case 'delimiter':\n if (context.options.preventSingleLineSplit && containsDataAfterDelimiterOnLine(context, token)) {\n movePosition(context, token.length, false);\n context.wasDataOnLine = true;\n break;\n }\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n }\n }\n if (context.end > context.currentCommandStart) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n }\n}\nexports.splitQueryLine = splitQueryLine;\nfunction getInitialDelimiter(options) {\n if (options === null || options === void 0 ? void 0 : options.adaptiveGoSplit)\n return SEMICOLON;\n return (options === null || options === void 0 ? void 0 : options.allowSemicolon) === false ? null : SEMICOLON;\n}\nexports.getInitialDelimiter = getInitialDelimiter;\nfunction finishSplitStream(context) {\n pushCurrentQueryPart(context);\n}\nexports.finishSplitStream = finishSplitStream;\nfunction splitQuery(sql, options = null) {\n var _a;\n const usedOptions = Object.assign(Object.assign({}, options_1.defaultSplitterOptions), options);\n if (usedOptions.noSplit) {\n if (usedOptions.returnRichInfo) {\n const lines = sql.split('\\n');\n return [\n {\n text: sql,\n start: {\n position: 0,\n line: 0,\n column: 0,\n },\n end: {\n position: sql.length,\n line: lines.length,\n column: ((_a = lines[lines.length - 1]) === null || _a === void 0 ? void 0 : _a.length) || 0,\n },\n },\n ];\n }\n return [sql];\n }\n const output = [];\n const context = {\n source: sql,\n end: sql.length,\n currentDelimiter: getInitialDelimiter(options),\n position: 0,\n column: 0,\n line: 0,\n currentCommandStart: 0,\n commandStartLine: 0,\n commandStartColumn: 0,\n commandStartPosition: 0,\n streamPosition: 0,\n noWhiteLine: 0,\n noWhiteColumn: 0,\n noWhitePosition: 0,\n trimCommandStartPosition: 0,\n trimCommandStartLine: 0,\n trimCommandStartColumn: 0,\n wasDataInCommand: false,\n pushOutput: cmd => output.push(cmd),\n wasDataOnLine: false,\n options: usedOptions,\n commandPart: '',\n };\n splitQueryLine(context);\n finishSplitStream(context);\n return output;\n}\nexports.splitQuery = splitQuery;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.splitQuery = void 0;\nvar splitQuery_1 = require(\"./splitQuery\");\nObject.defineProperty(exports, \"splitQuery\", { enumerable: true, get: function () { return splitQuery_1.splitQuery; } });\n__exportStar(require(\"./options\"), exports);\n","import { splitQuery } from 'dbgate-query-splitter';\n\nonmessage = e => {\n const result = splitQuery(e.data.text, e.data.options);\n postMessage(result);\n};\n"],"names":["Object","defineProperty","exports","value","oracleSplitterOptions","redisSplitterOptions","noSplitSplitterOptions","mongoSplitterOptions","sqliteSplitterOptions","postgreSplitterOptions","mysqlSplitterOptions","defaultSplitterOptions","stringsBegins","stringsEnds","stringEscapes","allowSemicolon","allowCustomDelimiter","allowCustomSqlTerminator","allowGoDelimiter","allowSlashDelimiter","allowDollarDollarString","noSplit","doubleDashComments","multilineComments","javaScriptComments","returnRichInfo","splitByLines","preventSingleLineSplit","adaptiveGoSplit","ignoreComments","assign","mssqlSplitterOptions","splitQuery_1","splitQuery","getInitialDelimiter","splitQueryLine","options_1","require$$0","SEMICOLON","movePosition","context","count","isWhite","source","position","line","column","streamPosition","wasDataInCommand","trimCommandStartPosition","trimCommandStartLine","trimCommandStartColumn","noWhitePosition","noWhiteLine","noWhiteColumn","isStringEnd","s","pos","endch","escapech","WHITESPACE_TOKEN","type","length","EOLN_TOKEN","DATA_TOKEN","scanToken","ch","options","includes","end","currentDelimiter","slice","startsWith","wasDataOnLine","m","match","trim","toUpperCase","endsWith","dollarString","exec","label","scanDollarQuotedString","containsDataAfterDelimiterOnLine","delimiter","_a","cloned","token","pushQuery","commandPart","currentCommandStart","pushCurrentQueryPart","trimmed","substring","commandStartPosition","pushOutput","text","start","commandStartLine","commandStartColumn","trimStart","trimEnd","markStartCommand","test","finishSplitStream","splitQuery$1","sql","usedOptions","lines","split","output","cmd","push","__createBinding","this","create","o","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","require$$1","onmessage","e","result","data","postMessage"],"mappings":"mMACAA,OAAOC,eAAcC,EAAU,aAAc,CAAEC,OAAO,IACtDD,EAAgCE,sBAAAF,EAAAG,qBAA+BH,EAAiCI,uBAAAJ,EAAAK,qBAA+BL,EAAgCM,sBAAAN,EAAAO,uBAAiCP,uBAA+BA,EAA+BQ,qBAAAR,EAAAS,4BAAiC,EAC/RT,EAAiCS,uBAAA,CAC7BC,cAAe,CAAC,KAChBC,YAAa,CAAE,IAAK,KACpBC,cAAe,CAAE,IAAK,KACtBC,gBAAgB,EAChBC,sBAAsB,EACtBC,0BAA0B,EAC1BC,kBAAkB,EAClBC,qBAAqB,EACrBC,yBAAyB,EACzBC,SAAS,EACTC,oBAAoB,EACpBC,mBAAmB,EACnBC,oBAAoB,EACpBC,gBAAgB,EAChBC,cAAc,EACdC,wBAAwB,EACxBC,iBAAiB,EACjBC,gBAAgB,GAEpB3B,EAA+BQ,qBAAAV,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAE,EAAE5B,EAAQS,wBAAyB,CAAEK,sBAAsB,EAAMJ,cAAe,CAAC,IAAK,KAAMC,YAAa,CAAE,IAAK,IAAK,IAAK,KAAOC,cAAe,CAAE,IAAK,KAAM,IAAK,OAC/NZ,EAA+B6B,qBAAA/B,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAE,EAAE5B,EAAQS,wBAAyB,CAAEI,gBAAgB,EAAOG,kBAAkB,EAAMN,cAAe,CAAC,IAAK,KAAMC,YAAa,CAAE,IAAK,IAAK,IAAK,KAAOC,cAAe,CAAE,IAAK,OACvOZ,EAAiCO,uBAAAT,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAE,EAAE5B,EAAQS,wBAAyB,CAAES,yBAAyB,EAAMR,cAAe,CAAC,IAAK,KAAMC,YAAa,CAAE,IAAK,IAAK,IAAK,KAAOC,cAAe,CAAE,IAAK,IAAK,IAAK,OACnOZ,EAAgCM,sBAAAR,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAA,EAAI5B,EAAQS,wBAAyB,CAAEC,cAAe,CAAC,IAAK,KAAMC,YAAa,CAAE,IAAK,IAAK,IAAK,KAAOC,cAAe,CAAE,IAAK,IAAK,IAAK,OACnMZ,EAA+BK,qBAAAP,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAA,EAAI5B,EAAQS,wBAAyB,CAAEC,cAAe,CAAC,IAAK,KAAMC,YAAa,CAAE,IAAK,IAAK,IAAK,KAAOC,cAAe,CAAE,IAAK,KAAM,IAAK,QACnMZ,EAAiCI,uBAAAN,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAA,EAAI5B,EAAQS,wBAAyB,CAAEU,SAAS,IAC7GnB,EAA+BG,qBAAAL,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAA,EAAI5B,EAAQS,wBAAyB,CAAEe,cAAc,IAChHxB,EAAgCE,sBAAAJ,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAA,EAAI5B,EAAQS,wBAAyB,CAAEM,0BAA0B,EAAME,qBAAqB,EAAMP,cAAe,CAAC,IAAK,KAAMC,YAAa,CAAE,IAAK,IAAK,IAAK,KAAOC,cAAe,CAAE,IAAK,IAAK,IAAK,OC7B9Pd,OAAOC,eAAe+B,EAAS,aAAc,CAAE7B,OAAO,IACpC6B,EAAAC,+BAA+BD,EAAAE,oBAAoDF,EAAAG,oBAAG,EACxG,MAAMC,EAAYC,EACZC,EAAY,IAClB,SAASC,EAAaC,EAASC,EAAOC,GAClC,IAAIC,OAAEA,EAAMC,SAAEA,EAAQC,KAAEA,EAAIC,OAAEA,EAAMC,eAAEA,GAAmBP,EACzD,KAAOC,EAAQ,GACa,MAApBE,EAAOC,IACPC,GAAQ,EACRC,EAAS,GAGTA,GAAU,EAEdF,GAAY,EACZG,GAAkB,EAClBN,GAAS,EAEbD,EAAQI,SAAWA,EACnBJ,EAAQO,eAAiBA,EACzBP,EAAQK,KAAOA,EACfL,EAAQM,OAASA,EACZN,EAAQQ,mBACLN,GACAF,EAAQS,yBAA2BF,EACnCP,EAAQU,qBAAuBL,EAC/BL,EAAQW,uBAAyBL,GAGjCN,EAAQQ,kBAAmB,GAG9BN,IACDF,EAAQY,gBAAkBL,EAC1BP,EAAQa,YAAcR,EACtBL,EAAQc,cAAgBR,EAEhC,CACA,SAASS,EAAYC,EAAGC,EAAKC,EAAOC,GAChC,OAAKA,EAGDD,GAASC,EACFH,EAAEC,IAAQC,GAASF,EAAEC,EAAM,IAAMC,EAGjCF,EAAEC,IAAQC,GAASF,EAAEC,EAAM,IAAME,EANjCH,EAAEC,IAAQC,CAQzB,CACA,MAAME,EAAmB,CACrBC,KAAM,aACNC,OAAQ,GAENC,EAAa,CACfF,KAAM,OACNC,OAAQ,GAENE,EAAa,CACfH,KAAM,OACNC,OAAQ,GAuBZ,SAASG,EAAUzB,GACf,IAAIiB,EAAMjB,EAAQI,SAClB,MAAMY,EAAIhB,EAAQG,OACZuB,EAAKV,EAAEC,GACb,GAAIjB,EAAQ2B,QAAQvD,cAAcwD,SAASF,GAAK,CAC5CT,IACA,MAAMC,EAAQlB,EAAQ2B,QAAQtD,YAAYqD,GACpCP,EAAWnB,EAAQ2B,QAAQrD,cAAcoD,GAC/C,KAAOT,EAAMjB,EAAQ6B,MAAQd,EAAYC,EAAGC,EAAKC,EAAOC,IAChDD,GAASC,GAAYH,EAAEC,IAAQC,GAASF,EAAEC,EAAM,IAAMC,EACtDD,GAAO,EAGPA,IAGR,MAAO,CACHI,KAAM,SACNC,OAAQL,EAAMjB,EAAQI,SAAW,EAExC,CACD,GAAIJ,EAAQ8B,kBAAoBd,EAAEe,MAAMd,GAAKe,WAAWhC,EAAQ8B,kBAC5D,MAAO,CACHT,KAAM,YACNC,OAAQtB,EAAQ8B,iBAAiBR,QAGzC,GAAU,KAANI,GAAmB,MAANA,GAAoB,MAANA,EAC3B,OAAON,EAEX,GAAU,MAANM,EACA,OAAOH,EAEX,GAAIvB,EAAQ2B,QAAQ7C,oBAA4B,KAAN4C,GAA2B,KAAdV,EAAEC,EAAM,GAAW,CACtE,KAAOA,EAAMjB,EAAQ6B,KAAiB,MAAVb,EAAEC,IAC1BA,IACJ,MAAO,CACHI,KAAM,UACNC,OAAQL,EAAMjB,EAAQI,SAE7B,CACD,GAAIJ,EAAQ2B,QAAQ5C,mBAA2B,KAAN2C,GAA2B,KAAdV,EAAEC,EAAM,GAAW,CAErE,IADAA,GAAO,EACAA,EAAMjB,EAAQ6B,MACH,KAAVb,EAAEC,IAA6B,KAAdD,EAAEC,EAAM,KAE7BA,IAEJ,MAAO,CACHI,KAAM,UACNC,OAAQL,EAAMjB,EAAQI,SAAW,EAExC,CACD,GAAIJ,EAAQ2B,QAAQnD,uBAAyBwB,EAAQiC,cAAe,CAChE,MAAMC,EAAIlB,EAAEe,MAAMd,GAAKkB,MAAM,6BAC7B,GAAID,EACA,MAAO,CACHb,KAAM,gBACN1D,MAAOuE,EAAE,GAAGE,OACZd,OAAQY,EAAE,GAAGZ,OAGxB,CACD,GAAItB,EAAQ2B,QAAQlD,yBAA0B,CAC1C,MAAMyD,EAAIlB,EAAEe,MAAMd,GAAKkB,MAAM,iDAC7B,GAAID,EAAG,CACH,GAA0B,OAAtBA,EAAE,GAAGG,cACL,MAAO,CACHhB,KAAM,oBACN1D,MAAO,KACP2D,OAAQY,EAAE,GAAGZ,QAGrB,GAA0B,MAAtBY,EAAE,GAAGG,cACL,MAAO,CACHhB,KAAM,oBACN1D,MAAOmC,EACPwB,OAAQY,EAAE,GAAGZ,QAGrB,GAAIY,EAAE,GAAGF,WAAW,KAChB,MAAO,CACHX,KAAM,oBACN1D,MAAOuE,EAAE,GAAGH,MAAM,GAAI,GACtBT,OAAQY,EAAE,GAAGZ,OAGxB,CACJ,CACD,IAAKtB,EAAQ2B,QAAQjD,kBAAoBsB,EAAQ2B,QAAQvC,mBAAqBY,EAAQiC,cAAe,CACjG,MAAMC,EAAIlB,EAAEe,MAAMd,GAAKkB,MAAM,sBAC7B,GAAID,EACA,MAAO,CACHb,KAAM,eACNC,OAAQY,EAAE,GAAGI,SAAS,MAAQJ,EAAE,GAAGZ,OAAS,EAAIY,EAAE,GAAGZ,OAGhE,CACD,GAAItB,EAAQ2B,QAAQhD,sBAAwBqB,EAAQiC,cAAe,CAC/D,MAAMC,EAAIlB,EAAEe,MAAMd,GAAKkB,MAAM,sBAC7B,GAAID,EACA,MAAO,CACHb,KAAM,kBACNC,OAAQY,EAAE,GAAGI,SAAS,MAAQJ,EAAE,GAAGZ,OAAS,EAAIY,EAAE,GAAGZ,OAGhE,CACD,GAAItB,EAAQ2B,QAAQvC,gBAAiB,CACjC,MAAM8C,EAAIlB,EAAEe,MAAMd,GAAKkB,MAAM,mDAC7B,GAAID,EACA,MAAO,CACHb,KAAM,iBACNC,OAAQY,EAAE,GAAGZ,OAGxB,CACD,MAAMiB,EAzIV,SAAgCvC,GAC5B,IAAKA,EAAQ2B,QAAQ/C,wBACjB,OAAO,KACX,IAAIqC,EAAMjB,EAAQI,SAClB,MAAMY,EAAIhB,EAAQG,OACZgC,EAAQ,uBAAuBK,KAAKxB,EAAEe,MAAMd,IAClD,IAAKkB,EACD,OAAO,KACX,MAAMM,EAAQN,EAAM,GAEpB,IADAlB,GAAOwB,EAAMnB,OACNL,EAAMjB,EAAQ6B,KAAK,CACtB,GAAIb,EAAEe,MAAMd,GAAKe,WAAWS,GACxB,MAAO,CACHpB,KAAM,SACNC,OAAQL,EAAMwB,EAAMnB,OAAStB,EAAQI,UAG7Ca,GACH,CACD,OAAO,IACX,CAqHyByB,CAAuB1C,GAC5C,OAAIuC,GAEGf,CACX,CACA,SAASmB,EAAiC3C,EAAS4C,GAC/C,IAAIC,EACJ,MAAMC,EAAS,CACXnB,QAAS3B,EAAQ2B,QACjBxB,OAAQH,EAAQG,OAChBC,SAAUJ,EAAQI,SAClB0B,iBAAkB9B,EAAQ8B,iBAC1BD,IAAK7B,EAAQ6B,IACbI,cAAejC,EAAQiC,eAG3B,IADAa,EAAO1C,UAAYwC,EAAUtB,OACtBwB,EAAO1C,SAAW0C,EAAOjB,KAAK,CACjC,MAAMkB,EAAQtB,EAAUqB,GACxB,GAAKC,EAIL,OAAQA,EAAM1B,MACV,IAAK,aACDyB,EAAO1C,UAAY2C,EAAMzB,OACzB,SACJ,IAAK,OACD,OAAO,EACX,IAAK,UACD,GAA2B,QAAtBuB,EAAKE,EAAMpF,aAA0B,IAAPkF,OAAgB,EAASA,EAAGjB,SAAS,MACpE,OAAO,EACXkB,EAAO1C,UAAY2C,EAAMzB,OACzB,SACJ,QACI,OAAO,OAfXwB,EAAO1C,UAAY,CAiB1B,CACL,CACA,SAAS4C,EAAUhD,GACfA,EAAQiD,aAAejD,EAAQG,OAAO4B,MAAM/B,EAAQkD,oBAAqBlD,EAAQI,UACjF+C,EAAqBnD,EACzB,CACA,SAASmD,EAAqBnD,GAC1B,MAAMoD,EAAUpD,EAAQiD,YAAYI,UAAUrD,EAAQS,yBAA2BT,EAAQsD,qBAAsBtD,EAAQY,gBAAkBZ,EAAQsD,sBAC7IF,EAAQhB,SACJpC,EAAQ2B,QAAQ1C,eAChBe,EAAQuD,WAAW,CACfC,KAAMJ,EACNK,MAAO,CACHrD,SAAUJ,EAAQsD,qBAClBjD,KAAML,EAAQ0D,iBACdpD,OAAQN,EAAQ2D,oBAEpB9B,IAAK,CACDzB,SAAUJ,EAAQO,eAClBF,KAAML,EAAQK,KACdC,OAAQN,EAAQM,QAEpBsD,UAAW,CACPxD,SAAUJ,EAAQS,yBAClBJ,KAAML,EAAQU,qBACdJ,OAAQN,EAAQW,wBAEpBkD,QAAS,CACLzD,SAAUJ,EAAQY,gBAClBP,KAAML,EAAQa,YACdP,OAAQN,EAAQc,iBAKxBd,EAAQuD,WAAWH,GAG/B,CACA,SAASU,EAAiB9D,GACtBA,EAAQsD,qBAAuBtD,EAAQO,eACvCP,EAAQ0D,iBAAmB1D,EAAQK,KACnCL,EAAQ2D,mBAAqB3D,EAAQM,OACrCN,EAAQS,yBAA2BT,EAAQO,eAC3CP,EAAQU,qBAAuBV,EAAQK,KACvCL,EAAQW,uBAAyBX,EAAQM,OACzCN,EAAQQ,kBAAmB,CAC/B,CAkBA,SAASb,EAAeK,GACpB,GAAIA,EAAQ2B,QAAQzC,cAlBxB,SAAsBc,GAClB,KAAOA,EAAQI,SAAWJ,EAAQ6B,KACU,MAApC7B,EAAQG,OAAOH,EAAQI,WACvB4C,EAAUhD,GACVA,EAAQiD,YAAc,GACtBlD,EAAaC,EAAS,GAAG,GACzBA,EAAQkD,oBAAsBlD,EAAQI,SACtC0D,EAAiB9D,IAGjBD,EAAaC,EAAS,EAAG,KAAK+D,KAAK/D,EAAQG,OAAOH,EAAQI,YAG9DJ,EAAQ6B,IAAM7B,EAAQkD,sBACtBlD,EAAQiD,aAAejD,EAAQG,OAAO4B,MAAM/B,EAAQkD,oBAAqBlD,EAAQI,UAEzF,CAGQlB,CAAac,OADjB,CAIA,KAAOA,EAAQI,SAAWJ,EAAQ6B,KAAK,CACnC,MAAMkB,EAAQtB,EAAUzB,GACxB,GAAK+C,EAKL,OAAQA,EAAM1B,MACV,IAAK,SAYL,IAAK,OACDtB,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQiC,eAAgB,EACxB,MAXJ,IAAK,UACDlC,EAAaC,EAAS+C,EAAMzB,SAAUtB,EAAQ2B,QAAQtC,gBACtDW,EAAQiC,eAAgB,EACxB,MACJ,IAAK,OACDlC,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQiC,eAAgB,EACxB,MAKJ,IAAK,aACDlC,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpC,MACJ,IAAK,gBACL,IAAK,oBACD0B,EAAUhD,GACVA,EAAQiD,YAAc,GACtBjD,EAAQ8B,iBAAmBiB,EAAMpF,MACjCoC,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQkD,oBAAsBlD,EAAQI,SACtC0D,EAAiB9D,GACjB,MACJ,IAAK,eACDgD,EAAUhD,GACVA,EAAQiD,YAAc,GACtBlD,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQkD,oBAAsBlD,EAAQI,SACtC0D,EAAiB9D,GACbA,EAAQ2B,QAAQvC,kBAChBY,EAAQ8B,iBAAmBhC,GAE/B,MACJ,IAAK,kBACDkD,EAAUhD,GACVA,EAAQiD,YAAc,GACtBlD,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQkD,oBAAsBlD,EAAQI,SACtC0D,EAAiB9D,GACjB,MACJ,IAAK,iBACDD,EAAaC,EAAS+C,EAAMzB,QAAQ,GAChCtB,EAAQ2B,QAAQvC,kBAChBY,EAAQ8B,iBAAmB,MAE/B,MACJ,IAAK,YACD,GAAI9B,EAAQ2B,QAAQxC,wBAA0BwD,EAAiC3C,EAAS+C,GAAQ,CAC5FhD,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQiC,eAAgB,EACxB,KACH,CACDe,EAAUhD,GACVA,EAAQiD,YAAc,GACtBlD,EAAaC,EAAS+C,EAAMzB,QAAQ,GACpCtB,EAAQkD,oBAAsBlD,EAAQI,SACtC0D,EAAiB9D,QAjErBD,EAAaC,EAAS,GAAG,EAoEhC,CACGA,EAAQ6B,IAAM7B,EAAQkD,sBACtBlD,EAAQiD,aAAejD,EAAQG,OAAO4B,MAAM/B,EAAQkD,oBAAqBlD,EAAQI,UA3EpF,CA6EL,CAEA,SAASV,EAAoBiC,GACzB,OAAIA,aAAyC,EAASA,EAAQvC,iBACnDU,GAC2E,KAA9E6B,aAAyC,EAASA,EAAQpD,gBAA4B,KAAOuB,CACzG,CAEA,SAASkE,EAAkBhE,GACvBmD,EAAqBnD,EACzB,CATsBiE,EAAAtE,eAAGA,EAMEsE,EAAAvE,oBAAGA,EAILuE,EAAAD,kBAAGA,EAsD5BC,EAAAxE,WArDA,SAAoByE,EAAKvC,EAAU,MAC/B,IAAIkB,EACJ,MAAMsB,EAAc3G,OAAO8B,OAAO9B,OAAO8B,OAAO,CAAE,EAAEM,EAAUzB,wBAAyBwD,GACvF,GAAIwC,EAAYtF,QAAS,CACrB,GAAIsF,EAAYlF,eAAgB,CAC5B,MAAMmF,EAAQF,EAAIG,MAAM,MACxB,MAAO,CACH,CACIb,KAAMU,EACNT,MAAO,CACHrD,SAAU,EACVC,KAAM,EACNC,OAAQ,GAEZuB,IAAK,CACDzB,SAAU8D,EAAI5C,OACdjB,KAAM+D,EAAM9C,OACZhB,QAA4C,QAAlCuC,EAAKuB,EAAMA,EAAM9C,OAAS,UAAuB,IAAPuB,OAAgB,EAASA,EAAGvB,SAAW,IAI1G,CACD,MAAO,CAAC4C,EACX,CACD,MAAMI,EAAS,GACTtE,EAAU,CACZG,OAAQ+D,EACRrC,IAAKqC,EAAI5C,OACTQ,iBAAkBpC,EAAoBiC,GACtCvB,SAAU,EACVE,OAAQ,EACRD,KAAM,EACN6C,oBAAqB,EACrBQ,iBAAkB,EAClBC,mBAAoB,EACpBL,qBAAsB,EACtB/C,eAAgB,EAChBM,YAAa,EACbC,cAAe,EACfF,gBAAiB,EACjBH,yBAA0B,EAC1BC,qBAAsB,EACtBC,uBAAwB,EACxBH,kBAAkB,EAClB+C,WAAYgB,GAAOD,EAAOE,KAAKD,GAC/BtC,eAAe,EACfN,QAASwC,EACTlB,YAAa,IAIjB,OAFAtD,EAAeK,GACfgE,EAAkBhE,GACXsE,CACX,cC5bA,IAAIG,EAAmBC,GAAQA,EAAKD,kBAAqBjH,OAAOmH,OAAM,SAAaC,EAAG1C,EAAG2C,EAAGC,QAC7EC,IAAPD,IAAkBA,EAAKD,GAC3B,IAAIG,EAAOxH,OAAOyH,yBAAyB/C,EAAG2C,GACzCG,KAAS,QAASA,GAAQ9C,EAAEgD,WAAaF,EAAKG,UAAYH,EAAKI,gBAClEJ,EAAO,CAAEK,YAAY,EAAMC,IAAK,WAAa,OAAOpD,EAAE2C,EAAG,IAE3DrH,OAAOC,eAAemH,EAAGE,EAAIE,EAChC,EAAA,SAAcJ,EAAG1C,EAAG2C,EAAGC,QACTC,IAAPD,IAAkBA,EAAKD,GAC3BD,EAAEE,GAAM5C,EAAE2C,EACb,GACGU,EAAgBb,GAAQA,EAAKa,cAAiB,SAASrD,EAAGxE,GAC1D,IAAK,IAAI8H,KAAKtD,EAAa,YAANsD,GAAoBhI,OAAOiI,UAAUC,eAAeC,KAAKjI,EAAS8H,IAAIf,EAAgB/G,EAASwE,EAAGsD,EAC3H,EACAhI,OAAOC,eAAcC,EAAU,aAAc,CAAEC,OAAO,IACtDD,EAAqB+B,gBAAA,EACrB,IAAID,EAAeK,EACnBrC,OAAOC,eAAeC,EAAS,aAAc,CAAE2H,YAAY,EAAMC,IAAK,WAAc,OAAO9F,EAAaC,UAAW,IACnH8F,EAAaK,EAAsBlI,OCjBnCmI,UAAYC,IACV,MAAMC,EAAStG,EAAUA,WAACqG,EAAEE,KAAKxC,KAAMsC,EAAEE,KAAKrE,SAC9CsE,YAAYF,EAAO"}