dbgate-web 4.8.6 → 4.8.7

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:{},e={},i={},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},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(i,"__esModule",{value:!0}),i.splitQuery=i.finishSplitStream=i.getInitialDelimiter=i.splitQueryLine=void 0;const s=o;function r(t,n){if(t.options.returnRichInfo){let{source:e,position:i,line:o,column:s,streamPosition:r}=t;for(;n>0;)"\n"==e[i]?(o+=1,s=0):s+=1,i+=1,r+=1,n-=1;t.position=i,t.streamPosition=r,t.line=o,t.column=s}else t.position+=n}function l(t,n,e,i){return i?e==i?t[n]==e&&t[n+1]!=e:t[n]==e&&t[n-1]!=i:t[n]==e}const a={type:"whitespace",length:1},c={type:"eoln",length:1},p={type:"data",length:1};function u(t){let n=t.position;const e=t.source,i=e[n];if(t.options.stringsBegins.includes(i)){n++;const o=t.options.stringsEnds[i],s=t.options.stringEscapes[i];for(;n<t.end&&!l(e,n,o,s);)o==s&&e[n]==o&&e[n+1]==o?n+=2:n++;return{type:"string",length:n-t.position+1}}if(t.currentDelimiter&&e.slice(n).startsWith(t.currentDelimiter))return{type:"delimiter",length:t.currentDelimiter.length};if(" "==i||"\t"==i||"\r"==i)return a;if("\n"==i)return c;if(t.options.doubleDashComments&&"-"==i&&"-"==e[n+1]){for(;n<t.end&&"\n"!=e[n];)n++;return{type:"comment",length:n-t.position}}if(t.options.multilineComments&&"/"==i&&"*"==e[n+1]){for(n+=2;n<t.end&&("*"!=e[n]||"/"!=e[n+1]);)n++;return{type:"comment",length:n-t.position+2}}if(t.options.allowCustomDelimiter&&!t.wasDataOnLine){const t=e.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.wasDataOnLine){const t=e.slice(n).match(/^GO[\t\r ]*(\n|$)/i);if(t)return{type:"go_delimiter",length:t[0].length-1}}const o=function(t){if(!t.options.allowDollarDollarString)return null;let n=t.position;const e=t.source,i=/^(\$[a-zA-Z0-9_]*\$)/.exec(e.slice(n));if(!i)return null;const o=i[1];for(n+=o.length;n<t.end;){if(e.slice(n).startsWith(o))return{type:"string",length:n+o.length-t.position};n++}return null}(t);return o||p}function m(t){const n=(t.commandPart||"")+t.source.slice(t.currentCommandStart,t.position),e=n.trim();e&&(t.options.returnRichInfo?t.pushOutput(d(n,{text:e,start:{position:t.commandStartPosition,line:t.commandStartLine,column:t.commandStartColumn},end:{position:t.streamPosition,line:t.line,column:t.column}})):t.pushOutput(e))}function d(t,n){const e=t.indexOf(n.text),i=Object.assign({},n.start);for(let n=0;n<e;n+=1)"\n"==t[n]?(i.position+=1,i.line+=1,i.column=0):(i.position+=1,i.column+=1);return Object.assign(Object.assign({},n),{trimStart:i,trimEnd:n.end})}function g(t){t.options.returnRichInfo&&(t.commandStartPosition=t.streamPosition,t.commandStartLine=t.line,t.commandStartColumn=t.column)}function f(t){if(t.options.splitByLines)!function(t){for(;t.position<t.end;)"\n"==t.source[t.position]?(m(t),t.commandPart="",r(t,1),t.currentCommandStart=t.position,g(t)):r(t,1);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"comment":r(t,n.length),t.wasDataOnLine=!0;break;case"eoln":r(t,n.length),t.wasDataOnLine=!1;break;case"data":r(t,n.length),t.wasDataOnLine=!0;break;case"whitespace":r(t,n.length);break;case"set_delimiter":m(t),t.commandPart="",t.currentDelimiter=n.value,r(t,n.length),t.currentCommandStart=t.position,g(t);break;case"go_delimiter":case"delimiter":m(t),t.commandPart="",r(t,n.length),t.currentCommandStart=t.position,g(t)}else r(t,1)}t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}}function O(t){return!1===(null==t?void 0:t.allowSemicolon)?null:";"}function S(t){const n=t.commandPart.trim();n&&(t.options.returnRichInfo?t.pushOutput(d(t.commandPart,{text:n,start:{position:t.commandStartPosition,line:t.commandStartLine,column:t.commandStartColumn},end:{position:t.streamPosition,line:t.line,column:t.column}})):t.pushOutput(n))}i.splitQueryLine=f,i.getInitialDelimiter=O,i.finishSplitStream=S,i.splitQuery=function(t,n=null){var e;const i=Object.assign(Object.assign({},s.defaultSplitterOptions),n);if(i.noSplit){if(i.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===(e=n[n.length-1])||void 0===e?void 0:e.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,pushOutput:t=>o.push(t),wasDataOnLine:!1,options:i,commandPart:""};return f(r),S(r),o},function(t){var e=n&&n.__createBinding||(Object.create?function(t,n,e,i){void 0===i&&(i=e),Object.defineProperty(t,i,{enumerable:!0,get:function(){return n[e]}})}:function(t,n,e,i){void 0===i&&(i=e),t[i]=n[e]}),s=n&&n.__exportStar||function(t,n){for(var i in t)"default"===i||Object.prototype.hasOwnProperty.call(n,i)||e(n,t,i)};Object.defineProperty(t,"__esModule",{value:!0}),t.splitQuery=void 0;var r=i;Object.defineProperty(t,"splitQuery",{enumerable:!0,get:function(){return r.splitQuery}}),s(o,t)}(e),onmessage=t=>{const n=e.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:{},e={},i={},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},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(i,"__esModule",{value:!0}),i.splitQuery=i.finishSplitStream=i.getInitialDelimiter=i.splitQueryLine=void 0;const s=o;function r(t,n){if(t.options.returnRichInfo){let{source:e,position:i,line:o,column:s,streamPosition:r}=t;for(;n>0;)"\n"==e[i]?(o+=1,s=0):s+=1,i+=1,r+=1,n-=1;t.position=i,t.streamPosition=r,t.line=o,t.column=s}else t.position+=n}function l(t,n,e,i){return i?e==i?t[n]==e&&t[n+1]!=e:t[n]==e&&t[n-1]!=i:t[n]==e}const a={type:"whitespace",length:1},c={type:"eoln",length:1},p={type:"data",length:1};function u(t){let n=t.position;const e=t.source,i=e[n];if(t.options.stringsBegins.includes(i)){n++;const o=t.options.stringsEnds[i],s=t.options.stringEscapes[i];for(;n<t.end&&!l(e,n,o,s);)o==s&&e[n]==o&&e[n+1]==o?n+=2:n++;return{type:"string",length:n-t.position+1}}if(t.currentDelimiter&&e.slice(n).startsWith(t.currentDelimiter))return{type:"delimiter",length:t.currentDelimiter.length};if(" "==i||"\t"==i||"\r"==i)return a;if("\n"==i)return c;if(t.options.doubleDashComments&&"-"==i&&"-"==e[n+1]){for(;n<t.end&&"\n"!=e[n];)n++;return{type:"comment",length:n-t.position}}if(t.options.multilineComments&&"/"==i&&"*"==e[n+1]){for(n+=2;n<t.end&&("*"!=e[n]||"/"!=e[n+1]);)n++;return{type:"comment",length:n-t.position+2}}if(t.options.allowCustomDelimiter&&!t.wasDataOnLine){const t=e.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.wasDataOnLine){const t=e.slice(n).match(/^GO[\t\r ]*(\n|$)/i);if(t)return{type:"go_delimiter",length:t[0].length-1}}const o=function(t){if(!t.options.allowDollarDollarString)return null;let n=t.position;const e=t.source,i=/^(\$[a-zA-Z0-9_]*\$)/.exec(e.slice(n));if(!i)return null;const o=i[1];for(n+=o.length;n<t.end;){if(e.slice(n).startsWith(o))return{type:"string",length:n+o.length-t.position};n++}return null}(t);return o||p}function m(t){const n=(t.commandPart||"")+t.source.slice(t.currentCommandStart,t.position),e=n.trim();e&&(t.options.returnRichInfo?t.pushOutput(d(n,{text:e,start:{position:t.commandStartPosition,line:t.commandStartLine,column:t.commandStartColumn},end:{position:t.streamPosition,line:t.line,column:t.column}})):t.pushOutput(e))}function d(t,n){const e=t.indexOf(n.text),i=Object.assign({},n.start);for(let n=0;n<e;n+=1)"\n"==t[n]?(i.position+=1,i.line+=1,i.column=0):(i.position+=1,i.column+=1);return Object.assign(Object.assign({},n),{trimStart:i,trimEnd:n.end})}function g(t){t.options.returnRichInfo&&(t.commandStartPosition=t.streamPosition,t.commandStartLine=t.line,t.commandStartColumn=t.column)}function f(t){if(t.options.splitByLines)!function(t){for(;t.position<t.end;)"\n"==t.source[t.position]?(m(t),t.commandPart="",r(t,1),t.currentCommandStart=t.position,g(t)):r(t,1);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"comment":r(t,n.length),t.wasDataOnLine=!0;break;case"eoln":r(t,n.length),t.wasDataOnLine=!1;break;case"data":r(t,n.length),t.wasDataOnLine=!0;break;case"whitespace":r(t,n.length);break;case"set_delimiter":m(t),t.commandPart="",t.currentDelimiter=n.value,r(t,n.length),t.currentCommandStart=t.position,g(t);break;case"go_delimiter":case"delimiter":m(t),t.commandPart="",r(t,n.length),t.currentCommandStart=t.position,g(t)}else r(t,1)}t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}}function O(t){return!1===(null==t?void 0:t.allowSemicolon)?null:";"}function S(t){const n=t.commandPart.trim();n&&(t.options.returnRichInfo?t.pushOutput(d(t.commandPart,{text:n,start:{position:t.commandStartPosition,line:t.commandStartLine,column:t.commandStartColumn},end:{position:t.streamPosition,line:t.line,column:t.column}})):t.pushOutput(n))}i.splitQueryLine=f,i.getInitialDelimiter=O,i.finishSplitStream=S,i.splitQuery=function(t,n=null){var e;const i=Object.assign(Object.assign({},s.defaultSplitterOptions),n);if(i.noSplit){if(i.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===(e=n[n.length-1])||void 0===e?void 0:e.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,pushOutput:t=>o.push(t),wasDataOnLine:!1,options:i,commandPart:""};return f(r),S(r),o},function(t){var e=n&&n.__createBinding||(Object.create?function(t,n,e,i){void 0===i&&(i=e);var o=Object.getOwnPropertyDescriptor(n,e);o&&!("get"in o?!n.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return n[e]}}),Object.defineProperty(t,i,o)}:function(t,n,e,i){void 0===i&&(i=e),t[i]=n[e]}),s=n&&n.__exportStar||function(t,n){for(var i in t)"default"===i||Object.prototype.hasOwnProperty.call(n,i)||e(n,t,i)};Object.defineProperty(t,"__esModule",{value:!0}),t.splitQuery=void 0;var r=i;Object.defineProperty(t,"splitQuery",{enumerable:!0,get:function(){return r.splitQuery}}),s(o,t)}(e),onmessage=t=>{const n=e.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};\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) {\n if (context.options.returnRichInfo) {\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 }\n else {\n context.position += count;\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.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 const dollarString = scanDollarQuotedString(context);\n if (dollarString)\n return dollarString;\n return DATA_TOKEN;\n}\nfunction pushQuery(context) {\n const sql = (context.commandPart || '') + context.source.slice(context.currentCommandStart, context.position);\n const trimmed = sql.trim();\n if (trimmed) {\n if (context.options.returnRichInfo) {\n context.pushOutput(countTrimmedPositions(sql, {\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 }));\n }\n else {\n context.pushOutput(trimmed);\n }\n }\n}\nfunction countTrimmedPositions(full, positions) {\n const startIndex = full.indexOf(positions.text);\n const trimStart = Object.assign({}, positions.start);\n for (let i = 0; i < startIndex; i += 1) {\n if (full[i] == '\\n') {\n trimStart.position += 1;\n trimStart.line += 1;\n trimStart.column = 0;\n }\n else {\n trimStart.position += 1;\n trimStart.column += 1;\n }\n }\n return Object.assign(Object.assign({}, positions), { trimStart, trimEnd: positions.end });\n}\nfunction markStartCommand(context) {\n if (context.options.returnRichInfo) {\n context.commandStartPosition = context.streamPosition;\n context.commandStartLine = context.line;\n context.commandStartColumn = context.column;\n }\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);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n }\n else {\n movePosition(context, 1);\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);\n continue;\n }\n switch (token.type) {\n case 'string':\n movePosition(context, token.length);\n context.wasDataOnLine = true;\n break;\n case 'comment':\n movePosition(context, token.length);\n context.wasDataOnLine = true;\n break;\n case 'eoln':\n movePosition(context, token.length);\n context.wasDataOnLine = false;\n break;\n case 'data':\n movePosition(context, token.length);\n context.wasDataOnLine = true;\n break;\n case 'whitespace':\n movePosition(context, token.length);\n break;\n case 'set_delimiter':\n pushQuery(context);\n context.commandPart = '';\n context.currentDelimiter = token.value;\n movePosition(context, token.length);\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);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'delimiter':\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length);\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 return (options === null || options === void 0 ? void 0 : options.allowSemicolon) === false ? null : SEMICOLON;\n}\nexports.getInitialDelimiter = getInitialDelimiter;\nfunction finishSplitStream(context) {\n const trimmed = context.commandPart.trim();\n if (trimmed) {\n if (context.options.returnRichInfo) {\n context.pushOutput(countTrimmedPositions(context.commandPart, {\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 }));\n }\n else {\n context.pushOutput(trimmed);\n }\n }\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 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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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","value","exports","stringsBegins","stringsEnds","'","stringEscapes","allowSemicolon","allowCustomDelimiter","allowGoDelimiter","allowDollarDollarString","noSplit","doubleDashComments","multilineComments","javaScriptComments","returnRichInfo","splitByLines","assign","defaultSplitterOptions","`","[","\"","splitQuery_1","options_1","require$$0","movePosition","context","count","options","source","position","line","column","streamPosition","isStringEnd","s","pos","endch","escapech","WHITESPACE_TOKEN","type","length","EOLN_TOKEN","DATA_TOKEN","scanToken","ch","includes","end","currentDelimiter","slice","startsWith","wasDataOnLine","m","match","trim","dollarString","exec","label","scanDollarQuotedString","pushQuery","sql","commandPart","currentCommandStart","trimmed","pushOutput","countTrimmedPositions","text","start","commandStartPosition","commandStartLine","commandStartColumn","full","positions","startIndex","indexOf","trimStart","i","trimEnd","markStartCommand","splitQueryLine","token","getInitialDelimiter","finishSplitStream","_a","usedOptions","lines","split","output","cmd","push","__createBinding","this","create","o","k","k2","undefined","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","splitQuery","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.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};\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) {\n if (context.options.returnRichInfo) {\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 }\n else {\n context.position += count;\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.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 const dollarString = scanDollarQuotedString(context);\n if (dollarString)\n return dollarString;\n return DATA_TOKEN;\n}\nfunction pushQuery(context) {\n const sql = (context.commandPart || '') + context.source.slice(context.currentCommandStart, context.position);\n const trimmed = sql.trim();\n if (trimmed) {\n if (context.options.returnRichInfo) {\n context.pushOutput(countTrimmedPositions(sql, {\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 }));\n }\n else {\n context.pushOutput(trimmed);\n }\n }\n}\nfunction countTrimmedPositions(full, positions) {\n const startIndex = full.indexOf(positions.text);\n const trimStart = Object.assign({}, positions.start);\n for (let i = 0; i < startIndex; i += 1) {\n if (full[i] == '\\n') {\n trimStart.position += 1;\n trimStart.line += 1;\n trimStart.column = 0;\n }\n else {\n trimStart.position += 1;\n trimStart.column += 1;\n }\n }\n return Object.assign(Object.assign({}, positions), { trimStart, trimEnd: positions.end });\n}\nfunction markStartCommand(context) {\n if (context.options.returnRichInfo) {\n context.commandStartPosition = context.streamPosition;\n context.commandStartLine = context.line;\n context.commandStartColumn = context.column;\n }\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);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n }\n else {\n movePosition(context, 1);\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);\n continue;\n }\n switch (token.type) {\n case 'string':\n movePosition(context, token.length);\n context.wasDataOnLine = true;\n break;\n case 'comment':\n movePosition(context, token.length);\n context.wasDataOnLine = true;\n break;\n case 'eoln':\n movePosition(context, token.length);\n context.wasDataOnLine = false;\n break;\n case 'data':\n movePosition(context, token.length);\n context.wasDataOnLine = true;\n break;\n case 'whitespace':\n movePosition(context, token.length);\n break;\n case 'set_delimiter':\n pushQuery(context);\n context.commandPart = '';\n context.currentDelimiter = token.value;\n movePosition(context, token.length);\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);\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'delimiter':\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length);\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 return (options === null || options === void 0 ? void 0 : options.allowSemicolon) === false ? null : SEMICOLON;\n}\nexports.getInitialDelimiter = getInitialDelimiter;\nfunction finishSplitStream(context) {\n const trimmed = context.commandPart.trim();\n if (trimmed) {\n if (context.options.returnRichInfo) {\n context.pushOutput(countTrimmedPositions(context.commandPart, {\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 }));\n }\n else {\n context.pushOutput(trimmed);\n }\n }\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 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","value","exports","stringsBegins","stringsEnds","'","stringEscapes","allowSemicolon","allowCustomDelimiter","allowGoDelimiter","allowDollarDollarString","noSplit","doubleDashComments","multilineComments","javaScriptComments","returnRichInfo","splitByLines","assign","defaultSplitterOptions","`","[","\"","splitQuery_1","options_1","require$$0","movePosition","context","count","options","source","position","line","column","streamPosition","isStringEnd","s","pos","endch","escapech","WHITESPACE_TOKEN","type","length","EOLN_TOKEN","DATA_TOKEN","scanToken","ch","includes","end","currentDelimiter","slice","startsWith","wasDataOnLine","m","match","trim","dollarString","exec","label","scanDollarQuotedString","pushQuery","sql","commandPart","currentCommandStart","trimmed","pushOutput","countTrimmedPositions","text","start","commandStartPosition","commandStartLine","commandStartColumn","full","positions","startIndex","indexOf","trimStart","i","trimEnd","markStartCommand","splitQueryLine","token","getInitialDelimiter","finishSplitStream","_a","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","splitQuery","require$$1","onmessage","e","result","data","postMessage"],"mappings":"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"}