dbgate-web 6.1.1 → 6.1.3
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,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n={},i={},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,copyFromStdin:!1,queryParameterStyle:null},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(i,"__esModule",{value:!0}),i.splitQuery=i.finishSplitStream=i.getInitialDelimiter=i.splitQueryLine=i.scanToken=void 0;const r=o,s=";";function a(t,e,n){let{source:i,position:o,line:r,column:s,streamPosition:a}=t;for(;e>0;)"\n"==i[o]?(r+=1,s=0):s+=1,o+=1,a+=1,e-=1;t.position=o,t.streamPosition=a,t.line=r,t.column=s,t.wasDataInCommand||(n?(t.trimCommandStartPosition=a,t.trimCommandStartLine=r,t.trimCommandStartColumn=s):t.wasDataInCommand=!0),n||(t.noWhitePosition=a,t.noWhiteLine=r,t.noWhiteColumn=s)}const l={type:"whitespace",length:1},m={type:"eoln",length:1},p={type:"data",length:1};function c(t){var e;let n=t.position;const i=t.source,o=i[n];if(t.isCopyFromStdin){if(i.slice(n).startsWith("\\.")&&!t.wasDataOnLine)return{type:"copy_stdin_end",length:2};let e=n;for(;e<t.end&&"\n"!=i[e];)e++;return e<t.end&&"\n"==i[e]&&e++,{type:"copy_stdin_line",length:e-n}}if(t.options.stringsBegins.includes(o)){n++;const e=t.options.stringsEnds[o],r=t.options.stringEscapes[o];for(;n<t.end&&i[n]!=e;)r&&i[n]==r?n+=2:n++;return{type:"string",length:n-t.position+1}}if(t.options.queryParameterStyle&&1==(null===(e=t.options.queryParameterStyle)||void 0===e?void 0:e.length)&&o==t.options.queryParameterStyle&&("?"==t.options.queryParameterStyle||/[a-zA-Z0-9_]/.test(i[n+1]))){if(n++,"?"!=t.options.queryParameterStyle)for(;n<t.end&&/[a-zA-Z0-9_]/.test(i[n]);)n++;return{type:"parameter",value:i.slice(t.position,n),length:n-t.position}}if(t.currentDelimiter&&i.slice(n).startsWith(t.currentDelimiter))return{type:"delimiter",length:t.currentDelimiter.length};if(" "==o||"\t"==o||"\r"==o)return l;if("\n"==o)return m;if(t.options.doubleDashComments&&"-"==o&&"-"==i[n+1]){for(;n<t.end&&"\n"!=i[n];)n++;return{type:"comment",length:n-t.position}}if(t.options.multilineComments&&"/"==o&&"*"==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:s,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}}if(t.options.copyFromStdin&&!t.wasDataOnLine&&i.slice(n).startsWith("COPY "))return{type:"copy",length:5};if(t.isCopyFromStdinCandidate&&i.slice(n).startsWith("FROM stdin;")){let e=n+11;const o=e-1;for(;e<t.end&&"\n"!=i[e];)e++;return"\n"==i[e]&&e++,{type:"copy_stdin_start",length:e-n,lengthWithoutWhitespace:o-n}}const r=function(t){if(!t.options.allowDollarDollarString)return null;let e=t.position;const n=t.source,i=/^(\$[a-zA-Z0-9_]*\$)/.exec(n.slice(e));if(!i)return null;const o=i[1];for(e+=o.length;e<t.end;){if(n.slice(e).startsWith(o))return{type:"string",length:e+o.length-t.position};e++}return null}(t);return r||p}function u(t,e){var n;const i={options:t.options,source:t.source,position:t.position,currentDelimiter:t.currentDelimiter,end:t.end,wasDataOnLine:t.wasDataOnLine,isCopyFromStdinCandidate:t.isCopyFromStdinCandidate,isCopyFromStdin:t.isCopyFromStdin};for(i.position+=e.length;i.position<i.end;){const t=c(i);if(t)switch(t.type){case"whitespace":i.position+=t.length;continue;case"eoln":return!1;case"comment":if(null===(n=t.value)||void 0===n?void 0:n.includes("\n"))return!0;i.position+=t.length;continue;default:return!0}else i.position+=1}}function d(t,e){t.commandPart+=t.source.slice(t.currentCommandStart,t.position),g(t,e)}function g(t,e){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},specialMarker:e}):t.pushOutput(n))}function S(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 f(t){if(t.options.splitByLines)!function(t){for(;t.position<t.end;)"\n"==t.source[t.position]?(d(t),t.commandPart="",a(t,1,!0),t.currentCommandStart=t.position,S(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 e=c(t);if(e)switch(e.type){case"string":case"data":case"parameter":a(t,e.length,!1),t.wasDataOnLine=!0;break;case"comment":a(t,e.length,!!t.options.ignoreComments),t.wasDataOnLine=!0;break;case"eoln":a(t,e.length,!0),t.wasDataOnLine=!1;break;case"whitespace":a(t,e.length,!0);break;case"set_delimiter":case"set_sqlterminator":d(t),t.commandPart="",t.currentDelimiter=e.value,a(t,e.length,!1),t.currentCommandStart=t.position,S(t);break;case"go_delimiter":d(t),t.commandPart="",a(t,e.length,!1),t.currentCommandStart=t.position,S(t),t.options.adaptiveGoSplit&&(t.currentDelimiter=s);break;case"slash_delimiter":d(t),t.commandPart="",a(t,e.length,!1),t.currentCommandStart=t.position,S(t);break;case"create_routine":a(t,e.length,!1),t.options.adaptiveGoSplit&&(t.currentDelimiter=null);break;case"copy":a(t,e.length,!1),t.isCopyFromStdinCandidate=!0,t.wasDataOnLine=!0;break;case"copy_stdin_start":a(t,e.lengthWithoutWhitespace,!1),a(t,e.length-e.lengthWithoutWhitespace,!0),t.isCopyFromStdin=!0,t.isCopyFromStdinCandidate=!1,t.wasDataOnLine=!1,d(t,"copy_stdin_start"),t.commandPart="",t.currentCommandStart=t.position,S(t);break;case"copy_stdin_line":a(t,e.length,!1),t.isCopyFromStdin=!0,t.isCopyFromStdinCandidate=!1,d(t,"copy_stdin_line"),t.commandPart="",t.currentCommandStart=t.position,S(t);break;case"copy_stdin_end":a(t,e.length,!1),t.isCopyFromStdin=!1,t.wasDataOnLine=!0,d(t,"copy_stdin_end"),t.commandPart="",t.currentCommandStart=t.position,S(t);break;case"delimiter":if(t.options.preventSingleLineSplit&&u(t,e)){a(t,e.length,!1),t.wasDataOnLine=!0;break}d(t),t.commandPart="",a(t,e.length,!1),t.currentCommandStart=t.position,S(t),t.isCopyFromStdinCandidate=!1}else a(t,1,!1)}t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}}function h(t){return(null==t?void 0:t.adaptiveGoSplit)?s:!1===(null==t?void 0:t.allowSemicolon)?null:s}function y(t){g(t)}i.scanToken=c,i.splitQueryLine=f,i.getInitialDelimiter=h,i.finishSplitStream=y,i.splitQuery=function(t,e=null){var n;const i=Object.assign(Object.assign({},r.defaultSplitterOptions),e);if(i.noSplit){if(i.returnRichInfo){const e=t.split("\n");return[{text:t,start:{position:0,line:0,column:0},end:{position:t.length,line:e.length,column:(null===(n=e[e.length-1])||void 0===n?void 0:n.length)||0}}]}return[t]}const o=[],s={source:t,end:t.length,currentDelimiter:h(e),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,isCopyFromStdin:!1,isCopyFromStdinCandidate:!1,pushOutput:t=>o.push(t),wasDataOnLine:!1,options:i,commandPart:""};return f(s),y(s),o};var O={};Object.defineProperty(O,"__esModule",{value:!0}),O.replaceQueryParameters=O.extractQueryParameters=void 0;const C=i;function P(t,e){return{options:e,source:t,position:0,currentDelimiter:(0,C.getInitialDelimiter)(e),end:t.length,wasDataOnLine:!1,isCopyFromStdin:!1,isCopyFromStdinCandidate:!1}}O.extractQueryParameters=function(t,e){if(!t||!e)return[];const n=P(t,e),i=new Set;for(;n.position<n.end;){const t=(0,C.scanToken)(n);if(null===t)break;"parameter"===t.type&&("?"==t.value?i.add(`?${i.size+1}`):i.add(t.value)),n.position+=t.length}return Array.from(i)},O.replaceQueryParameters=function(t,e,n){if(!t||!n)return t;const i=P(t,n);let o="",r=0;for(;i.position<i.end;){const n=(0,C.scanToken)(i);if(null===n)break;if("parameter"===n.type){const s="?"==n.value?"?"+ ++r:n.value;e[s]?o+=e[s]:o+=t.substring(i.position,i.position+n.length)}else o+=t.substring(i.position,i.position+n.length);i.position+=n.length}return o},function(t){var n=e&&e.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(e,n);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,o)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=e&&e.__exportStar||function(t,e){for(var i in t)"default"===i||Object.prototype.hasOwnProperty.call(e,i)||n(e,t,i)};Object.defineProperty(t,"__esModule",{value:!0}),t.replaceQueryParameters=t.extractQueryParameters=t.splitQuery=void 0;var s=i;Object.defineProperty(t,"splitQuery",{enumerable:!0,get:function(){return s.splitQuery}});var a=O;Object.defineProperty(t,"extractQueryParameters",{enumerable:!0,get:function(){return a.extractQueryParameters}}),Object.defineProperty(t,"replaceQueryParameters",{enumerable:!0,get:function(){return a.replaceQueryParameters}}),r(o,t)}(n),onmessage=t=>{const e=n.splitQuery(t.data.text,t.data.options);postMessage(e)}}();
|
|
1
|
+
!function(){"use strict";var t,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n={},i={},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,skipSeparatorBeginEnd:!1,doubleDashComments:!0,multilineComments:!0,javaScriptComments:!1,returnRichInfo:!1,splitByLines:!1,preventSingleLineSplit:!1,adaptiveGoSplit:!1,ignoreComments:!1,copyFromStdin:!1,queryParameterStyle:null},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),{skipSeparatorBeginEnd:!0,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(i,"__esModule",{value:!0}),i.splitQuery=i.finishSplitStream=i.getInitialDelimiter=i.splitQueryLine=i.scanToken=void 0;const r=o,s=";",a=new RegExp(`^(?:${["DEFERRED","IMMEDIATE","EXCLUSIVE","TRANSACTION"].join("|")})`,"i"),l=new RegExp(`^(?:${["TRANSACTION","IF"].join("|")})`,"i");function p(t,e,n){let{source:i,position:o,line:r,column:s,streamPosition:a}=t;for(;e>0;)"\n"==i[o]?(r+=1,s=0):s+=1,o+=1,a+=1,e-=1;t.position=o,t.streamPosition=a,t.line=r,t.column=s,t.wasDataInCommand||(n?(t.trimCommandStartPosition=a,t.trimCommandStartLine=r,t.trimCommandStartColumn=s):t.wasDataInCommand=!0),n||(t.noWhitePosition=a,t.noWhiteLine=r,t.noWhiteColumn=s)}const m={type:"whitespace",length:1},c={type:"eoln",length:1},d={type:"data",length:1};function u(t){var e;let n=t.position;const i=t.source,o=i[n];if(t.isCopyFromStdin){if(i.slice(n).startsWith("\\.")&&!t.wasDataOnLine)return{type:"copy_stdin_end",length:2};let e=n;for(;e<t.end&&"\n"!=i[e];)e++;return e<t.end&&"\n"==i[e]&&e++,{type:"copy_stdin_line",length:e-n}}if(t.options.stringsBegins.includes(o)){n++;const e=t.options.stringsEnds[o],r=t.options.stringEscapes[o];for(;n<t.end&&i[n]!=e;)r&&i[n]==r?n+=2:n++;return{type:"string",length:n-t.position+1}}if(t.options.queryParameterStyle&&1==(null===(e=t.options.queryParameterStyle)||void 0===e?void 0:e.length)&&o==t.options.queryParameterStyle&&("?"==t.options.queryParameterStyle||/[a-zA-Z0-9_]/.test(i[n+1]))){if(n++,"?"!=t.options.queryParameterStyle)for(;n<t.end&&/[a-zA-Z0-9_]/.test(i[n]);)n++;return{type:"parameter",value:i.slice(t.position,n),length:n-t.position}}const r=t.options.skipSeparatorBeginEnd&&t.beginEndIdentLevel>0;if(t.currentDelimiter&&i.slice(n).startsWith(t.currentDelimiter)&&!r)return{type:"delimiter",length:t.currentDelimiter.length};if(" "==o||"\t"==o||"\r"==o)return m;if("\n"==o)return c;if(t.options.doubleDashComments&&"-"==o&&"-"==i[n+1]){for(;n<t.end&&"\n"!=i[n];)n++;return{type:"comment",length:n-t.position}}if(t.options.multilineComments&&"/"==o&&"*"==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:s,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}}if(t.options.copyFromStdin&&!t.wasDataOnLine&&i.slice(n).startsWith("COPY "))return{type:"copy",length:5};if(t.isCopyFromStdinCandidate&&i.slice(n).startsWith("FROM stdin;")){let e=n+11;const o=e-1;for(;e<t.end&&"\n"!=i[e];)e++;return"\n"==i[e]&&e++,{type:"copy_stdin_start",length:e-n,lengthWithoutWhitespace:o-n}}if(t.options.skipSeparatorBeginEnd&&i.slice(n).match(/^begin/i)){let e=n+5,o=e;for(;o<t.end&&/[^a-zA-Z0-9]/.test(i[o]);)o++;if(!a.test(i.slice(o)))return{type:"begin",length:e-n,lengthWithoutWhitespace:o-n}}if(t.options.skipSeparatorBeginEnd&&i.slice(n).match(/^end/i)){let e=n+3,o=e;for(;o<t.end&&/[^a-zA-Z0-9]/.test(i[o]);)o++;if(!l.test(i.slice(o)))return{type:"end",length:e-n}}const p=function(t){if(!t.options.allowDollarDollarString)return null;let e=t.position;const n=t.source,i=/^(\$[a-zA-Z0-9_]*\$)/.exec(n.slice(e));if(!i)return null;const o=i[1];for(e+=o.length;e<t.end;){if(n.slice(e).startsWith(o))return{type:"string",length:e+o.length-t.position};e++}return null}(t);return p||d}function g(t,e){var n;const i={options:t.options,source:t.source,position:t.position,currentDelimiter:t.currentDelimiter,end:t.end,wasDataOnLine:t.wasDataOnLine,isCopyFromStdinCandidate:t.isCopyFromStdinCandidate,isCopyFromStdin:t.isCopyFromStdin,beginEndIdentLevel:t.beginEndIdentLevel};for(i.position+=e.length;i.position<i.end;){const t=u(i);if(t)switch(t.type){case"whitespace":i.position+=t.length;continue;case"eoln":return!1;case"comment":if(null===(n=t.value)||void 0===n?void 0:n.includes("\n"))return!0;i.position+=t.length;continue;default:return!0}else i.position+=1}}function S(t,e){t.commandPart+=t.source.slice(t.currentCommandStart,t.position),h(t,e)}function h(t,e){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},specialMarker:e}):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 y(t){if(t.options.splitByLines)!function(t){for(;t.position<t.end;)"\n"==t.source[t.position]?(S(t),t.commandPart="",p(t,1,!0),t.currentCommandStart=t.position,f(t)):p(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 e=u(t);if(e)switch(e.type){case"string":case"data":case"parameter":p(t,e.length,!1),t.wasDataOnLine=!0;break;case"comment":p(t,e.length,!!t.options.ignoreComments),t.wasDataOnLine=!0;break;case"eoln":p(t,e.length,!0),t.wasDataOnLine=!1;break;case"whitespace":p(t,e.length,!0);break;case"set_delimiter":case"set_sqlterminator":S(t),t.commandPart="",t.currentDelimiter=e.value,p(t,e.length,!1),t.currentCommandStart=t.position,f(t);break;case"go_delimiter":S(t),t.commandPart="",p(t,e.length,!1),t.currentCommandStart=t.position,f(t),t.options.adaptiveGoSplit&&(t.currentDelimiter=s);break;case"slash_delimiter":S(t),t.commandPart="",p(t,e.length,!1),t.currentCommandStart=t.position,f(t);break;case"create_routine":p(t,e.length,!1),t.options.adaptiveGoSplit&&(t.currentDelimiter=null);break;case"copy":p(t,e.length,!1),t.isCopyFromStdinCandidate=!0,t.wasDataOnLine=!0;break;case"copy_stdin_start":p(t,e.lengthWithoutWhitespace,!1),p(t,e.length-e.lengthWithoutWhitespace,!0),t.isCopyFromStdin=!0,t.isCopyFromStdinCandidate=!1,t.wasDataOnLine=!1,S(t,"copy_stdin_start"),t.commandPart="",t.currentCommandStart=t.position,f(t);break;case"copy_stdin_line":p(t,e.length,!1),t.isCopyFromStdin=!0,t.isCopyFromStdinCandidate=!1,S(t,"copy_stdin_line"),t.commandPart="",t.currentCommandStart=t.position,f(t);break;case"copy_stdin_end":p(t,e.length,!1),t.isCopyFromStdin=!1,t.wasDataOnLine=!0,S(t,"copy_stdin_end"),t.commandPart="",t.currentCommandStart=t.position,f(t);break;case"delimiter":if(t.options.preventSingleLineSplit&&g(t,e)){p(t,e.length,!1),t.wasDataOnLine=!0;break}S(t),t.commandPart="",p(t,e.length,!1),t.currentCommandStart=t.position,f(t),t.isCopyFromStdinCandidate=!1;break;case"begin":t.options.skipSeparatorBeginEnd&&t.beginEndIdentLevel++,p(t,e.length,!1);break;case"end":t.options.skipSeparatorBeginEnd&&t.beginEndIdentLevel>0&&t.beginEndIdentLevel--,p(t,e.length,!1)}else p(t,1,!1)}t.end>t.currentCommandStart&&(t.commandPart+=t.source.slice(t.currentCommandStart,t.position))}}function C(t){return(null==t?void 0:t.adaptiveGoSplit)?s:!1===(null==t?void 0:t.allowSemicolon)?null:s}function O(t){h(t)}i.scanToken=u,i.splitQueryLine=y,i.getInitialDelimiter=C,i.finishSplitStream=O,i.splitQuery=function(t,e=null){var n;const i=Object.assign(Object.assign({},r.defaultSplitterOptions),e);if(i.noSplit){if(i.returnRichInfo){const e=t.split("\n");return[{text:t,start:{position:0,line:0,column:0},end:{position:t.length,line:e.length,column:(null===(n=e[e.length-1])||void 0===n?void 0:n.length)||0}}]}return[t]}const o=[],s={source:t,end:t.length,currentDelimiter:C(e),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,beginEndIdentLevel:0,wasDataInCommand:!1,isCopyFromStdin:!1,isCopyFromStdinCandidate:!1,pushOutput:t=>o.push(t),wasDataOnLine:!1,options:i,commandPart:""};return y(s),O(s),o};var b={};Object.defineProperty(b,"__esModule",{value:!0}),b.replaceQueryParameters=b.extractQueryParameters=void 0;const P=i;function v(t,e){return{options:e,source:t,position:0,currentDelimiter:(0,P.getInitialDelimiter)(e),end:t.length,wasDataOnLine:!1,isCopyFromStdin:!1,isCopyFromStdinCandidate:!1,beginEndIdentLevel:0}}b.extractQueryParameters=function(t,e){if(!t||!e)return[];const n=v(t,e),i=new Set;for(;n.position<n.end;){const t=(0,P.scanToken)(n);if(null===t)break;"parameter"===t.type&&("?"==t.value?i.add(`?${i.size+1}`):i.add(t.value)),n.position+=t.length}return Array.from(i)},b.replaceQueryParameters=function(t,e,n){if(!t||!n)return t;const i=v(t,n);let o="",r=0;for(;i.position<i.end;){const n=(0,P.scanToken)(i);if(null===n)break;if("parameter"===n.type){const s="?"==n.value?"?"+ ++r:n.value;e[s]?o+=e[s]:o+=t.substring(i.position,i.position+n.length)}else o+=t.substring(i.position,i.position+n.length);i.position+=n.length}return o},function(t){var n=e&&e.__createBinding||(Object.create?function(t,e,n,i){void 0===i&&(i=n);var o=Object.getOwnPropertyDescriptor(e,n);o&&!("get"in o?!e.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return e[n]}}),Object.defineProperty(t,i,o)}:function(t,e,n,i){void 0===i&&(i=n),t[i]=e[n]}),r=e&&e.__exportStar||function(t,e){for(var i in t)"default"===i||Object.prototype.hasOwnProperty.call(e,i)||n(e,t,i)};Object.defineProperty(t,"__esModule",{value:!0}),t.replaceQueryParameters=t.extractQueryParameters=t.splitQuery=void 0;var s=i;Object.defineProperty(t,"splitQuery",{enumerable:!0,get:function(){return s.splitQuery}});var a=b;Object.defineProperty(t,"extractQueryParameters",{enumerable:!0,get:function(){return a.extractQueryParameters}}),Object.defineProperty(t,"replaceQueryParameters",{enumerable:!0,get:function(){return a.replaceQueryParameters}}),r(o,t)}(n),onmessage=t=>{const e=n.splitQuery(t.data.text,t.data.options);postMessage(e)}}();
|
|
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/queryParamHandler.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 copyFromStdin: false,\n queryParameterStyle: null,\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 = exports.scanToken = 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}\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 var _a;\n let pos = context.position;\n const s = context.source;\n const ch = s[pos];\n if (context.isCopyFromStdin) {\n if (s.slice(pos).startsWith('\\\\.') && !context.wasDataOnLine) {\n return {\n type: 'copy_stdin_end',\n length: 2,\n };\n }\n let pos2 = pos;\n while (pos2 < context.end && s[pos2] != '\\n')\n pos2++;\n if (pos2 < context.end && s[pos2] == '\\n')\n pos2++;\n return {\n type: 'copy_stdin_line',\n length: pos2 - pos,\n };\n }\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) {\n if (s[pos] == endch) {\n break;\n }\n if (escapech && s[pos] == escapech) {\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.options.queryParameterStyle &&\n ((_a = context.options.queryParameterStyle) === null || _a === void 0 ? void 0 : _a.length) == 1 &&\n ch == context.options.queryParameterStyle &&\n (context.options.queryParameterStyle == '?' || /[a-zA-Z0-9_]/.test(s[pos + 1]))) {\n pos++;\n if (context.options.queryParameterStyle != '?') {\n while (pos < context.end && /[a-zA-Z0-9_]/.test(s[pos]))\n pos++;\n }\n return {\n type: 'parameter',\n value: s.slice(context.position, pos),\n length: pos - context.position,\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 if (context.options.copyFromStdin && !context.wasDataOnLine && s.slice(pos).startsWith('COPY ')) {\n return {\n type: 'copy',\n length: 5,\n };\n }\n if (context.isCopyFromStdinCandidate && s.slice(pos).startsWith('FROM stdin;')) {\n let pos2 = pos + 'FROM stdin;'.length;\n const pos0 = pos2 - 1;\n while (pos2 < context.end && s[pos2] != '\\n')\n pos2++;\n if (s[pos2] == '\\n')\n pos2++;\n return {\n type: 'copy_stdin_start',\n length: pos2 - pos,\n lengthWithoutWhitespace: pos0 - pos,\n };\n }\n const dollarString = scanDollarQuotedString(context);\n if (dollarString)\n return dollarString;\n return DATA_TOKEN;\n}\nexports.scanToken = scanToken;\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 isCopyFromStdinCandidate: context.isCopyFromStdinCandidate,\n isCopyFromStdin: context.isCopyFromStdin,\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, specialMarker) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n pushCurrentQueryPart(context, specialMarker);\n}\nfunction pushCurrentQueryPart(context, specialMarker) {\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 specialMarker,\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 'parameter':\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 'copy':\n movePosition(context, token.length, false);\n context.isCopyFromStdinCandidate = true;\n context.wasDataOnLine = true;\n break;\n case 'copy_stdin_start':\n movePosition(context, token.lengthWithoutWhitespace, false);\n movePosition(context, token.length - token.lengthWithoutWhitespace, true);\n context.isCopyFromStdin = true;\n context.isCopyFromStdinCandidate = false;\n context.wasDataOnLine = false;\n pushQuery(context, 'copy_stdin_start');\n context.commandPart = '';\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'copy_stdin_line':\n movePosition(context, token.length, false);\n context.isCopyFromStdin = true;\n context.isCopyFromStdinCandidate = false;\n pushQuery(context, 'copy_stdin_line');\n context.commandPart = '';\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'copy_stdin_end':\n movePosition(context, token.length, false);\n context.isCopyFromStdin = false;\n context.wasDataOnLine = true;\n pushQuery(context, 'copy_stdin_end');\n context.commandPart = '';\n context.currentCommandStart = context.position;\n markStartCommand(context);\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 context.isCopyFromStdinCandidate = false;\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 isCopyFromStdin: false,\n isCopyFromStdinCandidate: 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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceQueryParameters = exports.extractQueryParameters = void 0;\nconst splitQuery_1 = require(\"./splitQuery\");\nfunction createParameterizerContext(sql, options) {\n return {\n options,\n source: sql,\n position: 0,\n currentDelimiter: (0, splitQuery_1.getInitialDelimiter)(options),\n end: sql.length,\n wasDataOnLine: false,\n isCopyFromStdin: false,\n isCopyFromStdinCandidate: false,\n };\n}\nfunction extractQueryParameters(sql, options) {\n if (!sql || !options) {\n return [];\n }\n const context = createParameterizerContext(sql, options);\n const res = new Set();\n while (context.position < context.end) {\n const token = (0, splitQuery_1.scanToken)(context);\n if (token === null) {\n break;\n }\n if (token.type === 'parameter') {\n if (token.value == '?') {\n res.add(`?${res.size + 1}`);\n }\n else {\n res.add(token.value);\n }\n }\n context.position += token.length;\n }\n return Array.from(res);\n}\nexports.extractQueryParameters = extractQueryParameters;\nfunction replaceQueryParameters(sql, params, options) {\n if (!sql || !options) {\n return sql;\n }\n const context = createParameterizerContext(sql, options);\n let res = '';\n let questionParamCounter = 0;\n while (context.position < context.end) {\n const token = (0, splitQuery_1.scanToken)(context);\n if (token === null) {\n break;\n }\n if (token.type === 'parameter') {\n const paramName = token.value == '?' ? `?${++questionParamCounter}` : token.value;\n if (params[paramName]) {\n res += params[paramName];\n }\n else {\n res += sql.substring(context.position, context.position + token.length);\n }\n }\n else {\n res += sql.substring(context.position, context.position + token.length);\n }\n context.position += token.length;\n }\n return res;\n}\nexports.replaceQueryParameters = replaceQueryParameters;\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.replaceQueryParameters = exports.extractQueryParameters = exports.splitQuery = void 0;\nvar splitQuery_1 = require(\"./splitQuery\");\nObject.defineProperty(exports, \"splitQuery\", { enumerable: true, get: function () { return splitQuery_1.splitQuery; } });\nvar queryParamHandler_1 = require(\"./queryParamHandler\");\nObject.defineProperty(exports, \"extractQueryParameters\", { enumerable: true, get: function () { return queryParamHandler_1.extractQueryParameters; } });\nObject.defineProperty(exports, \"replaceQueryParameters\", { enumerable: true, get: function () { return queryParamHandler_1.replaceQueryParameters; } });\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","copyFromStdin","queryParameterStyle","assign","mssqlSplitterOptions","splitQuery_1","splitQuery$1","splitQuery","finishSplitStream","getInitialDelimiter","splitQueryLine","scanToken","options_1","require$$0","SEMICOLON","movePosition","context","count","isWhite","source","position","line","column","streamPosition","wasDataInCommand","trimCommandStartPosition","trimCommandStartLine","trimCommandStartColumn","noWhitePosition","noWhiteLine","noWhiteColumn","WHITESPACE_TOKEN","type","length","EOLN_TOKEN","DATA_TOKEN","_a","pos","s","ch","isCopyFromStdin","slice","startsWith","wasDataOnLine","pos2","end","options","includes","endch","escapech","test","currentDelimiter","m","match","trim","toUpperCase","endsWith","isCopyFromStdinCandidate","pos0","lengthWithoutWhitespace","dollarString","exec","label","scanDollarQuotedString","containsDataAfterDelimiterOnLine","delimiter","cloned","token","pushQuery","specialMarker","commandPart","currentCommandStart","pushCurrentQueryPart","trimmed","substring","commandStartPosition","pushOutput","text","start","commandStartLine","commandStartColumn","trimStart","trimEnd","markStartCommand","sql","usedOptions","lines","split","output","cmd","push","queryParamHandler","replaceQueryParameters","extractQueryParameters","createParameterizerContext","res","Set","add","size","Array","from","params","questionParamCounter","paramName","__createBinding","this","create","o","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","queryParamHandler_1","require$$1","require$$2","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/queryParamHandler.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 skipSeparatorBeginEnd: 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 copyFromStdin: false,\n queryParameterStyle: null,\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), { skipSeparatorBeginEnd: true, 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 = exports.scanToken = void 0;\nconst options_1 = require(\"./options\");\nconst SEMICOLON = ';';\nconst BEGIN_EXTRA_KEYWORDS = ['DEFERRED', 'IMMEDIATE', 'EXCLUSIVE', 'TRANSACTION'];\nconst BEGIN_EXTRA_KEYWORDS_REGEX = new RegExp(`^(?:${BEGIN_EXTRA_KEYWORDS.join('|')})`, 'i');\nconst END_EXTRA_KEYWORDS = ['TRANSACTION', 'IF'];\nconst END_EXTRA_KEYWORDS_REGEX = new RegExp(`^(?:${END_EXTRA_KEYWORDS.join('|')})`, 'i');\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}\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 var _a;\n let pos = context.position;\n const s = context.source;\n const ch = s[pos];\n if (context.isCopyFromStdin) {\n if (s.slice(pos).startsWith('\\\\.') && !context.wasDataOnLine) {\n return {\n type: 'copy_stdin_end',\n length: 2,\n };\n }\n let pos2 = pos;\n while (pos2 < context.end && s[pos2] != '\\n')\n pos2++;\n if (pos2 < context.end && s[pos2] == '\\n')\n pos2++;\n return {\n type: 'copy_stdin_line',\n length: pos2 - pos,\n };\n }\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) {\n if (s[pos] == endch) {\n break;\n }\n if (escapech && s[pos] == escapech) {\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.options.queryParameterStyle &&\n ((_a = context.options.queryParameterStyle) === null || _a === void 0 ? void 0 : _a.length) == 1 &&\n ch == context.options.queryParameterStyle &&\n (context.options.queryParameterStyle == '?' || /[a-zA-Z0-9_]/.test(s[pos + 1]))) {\n pos++;\n if (context.options.queryParameterStyle != '?') {\n while (pos < context.end && /[a-zA-Z0-9_]/.test(s[pos]))\n pos++;\n }\n return {\n type: 'parameter',\n value: s.slice(context.position, pos),\n length: pos - context.position,\n };\n }\n const isInBeginEnd = context.options.skipSeparatorBeginEnd && context.beginEndIdentLevel > 0;\n if (context.currentDelimiter && s.slice(pos).startsWith(context.currentDelimiter) && !isInBeginEnd) {\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 if (context.options.copyFromStdin && !context.wasDataOnLine && s.slice(pos).startsWith('COPY ')) {\n return {\n type: 'copy',\n length: 5,\n };\n }\n if (context.isCopyFromStdinCandidate && s.slice(pos).startsWith('FROM stdin;')) {\n let pos2 = pos + 'FROM stdin;'.length;\n const pos0 = pos2 - 1;\n while (pos2 < context.end && s[pos2] != '\\n')\n pos2++;\n if (s[pos2] == '\\n')\n pos2++;\n return {\n type: 'copy_stdin_start',\n length: pos2 - pos,\n lengthWithoutWhitespace: pos0 - pos,\n };\n }\n if (context.options.skipSeparatorBeginEnd && s.slice(pos).match(/^begin/i)) {\n let pos2 = pos + 'BEGIN'.length;\n let pos0 = pos2;\n while (pos0 < context.end && /[^a-zA-Z0-9]/.test(s[pos0]))\n pos0++;\n if (!BEGIN_EXTRA_KEYWORDS_REGEX.test(s.slice(pos0))) {\n return {\n type: 'begin',\n length: pos2 - pos,\n lengthWithoutWhitespace: pos0 - pos,\n };\n }\n }\n if (context.options.skipSeparatorBeginEnd && s.slice(pos).match(/^end/i)) {\n let pos2 = pos + 'END'.length;\n let pos0 = pos2;\n while (pos0 < context.end && /[^a-zA-Z0-9]/.test(s[pos0]))\n pos0++;\n if (!END_EXTRA_KEYWORDS_REGEX.test(s.slice(pos0))) {\n return {\n type: 'end',\n length: pos2 - pos,\n };\n }\n }\n const dollarString = scanDollarQuotedString(context);\n if (dollarString)\n return dollarString;\n return DATA_TOKEN;\n}\nexports.scanToken = scanToken;\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 isCopyFromStdinCandidate: context.isCopyFromStdinCandidate,\n isCopyFromStdin: context.isCopyFromStdin,\n beginEndIdentLevel: context.beginEndIdentLevel,\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, specialMarker) {\n context.commandPart += context.source.slice(context.currentCommandStart, context.position);\n pushCurrentQueryPart(context, specialMarker);\n}\nfunction pushCurrentQueryPart(context, specialMarker) {\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 specialMarker,\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 'parameter':\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 'copy':\n movePosition(context, token.length, false);\n context.isCopyFromStdinCandidate = true;\n context.wasDataOnLine = true;\n break;\n case 'copy_stdin_start':\n movePosition(context, token.lengthWithoutWhitespace, false);\n movePosition(context, token.length - token.lengthWithoutWhitespace, true);\n context.isCopyFromStdin = true;\n context.isCopyFromStdinCandidate = false;\n context.wasDataOnLine = false;\n pushQuery(context, 'copy_stdin_start');\n context.commandPart = '';\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'copy_stdin_line':\n movePosition(context, token.length, false);\n context.isCopyFromStdin = true;\n context.isCopyFromStdinCandidate = false;\n pushQuery(context, 'copy_stdin_line');\n context.commandPart = '';\n context.currentCommandStart = context.position;\n markStartCommand(context);\n break;\n case 'copy_stdin_end':\n movePosition(context, token.length, false);\n context.isCopyFromStdin = false;\n context.wasDataOnLine = true;\n pushQuery(context, 'copy_stdin_end');\n context.commandPart = '';\n context.currentCommandStart = context.position;\n markStartCommand(context);\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 context.isCopyFromStdinCandidate = false;\n break;\n case 'begin':\n if (context.options.skipSeparatorBeginEnd) {\n context.beginEndIdentLevel++;\n }\n movePosition(context, token.length, false);\n break;\n case 'end':\n if (context.options.skipSeparatorBeginEnd && context.beginEndIdentLevel > 0) {\n context.beginEndIdentLevel--;\n }\n movePosition(context, token.length, false);\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 beginEndIdentLevel: 0,\n wasDataInCommand: false,\n isCopyFromStdin: false,\n isCopyFromStdinCandidate: 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\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.replaceQueryParameters = exports.extractQueryParameters = void 0;\nconst splitQuery_1 = require(\"./splitQuery\");\nfunction createParameterizerContext(sql, options) {\n return {\n options,\n source: sql,\n position: 0,\n currentDelimiter: (0, splitQuery_1.getInitialDelimiter)(options),\n end: sql.length,\n wasDataOnLine: false,\n isCopyFromStdin: false,\n isCopyFromStdinCandidate: false,\n beginEndIdentLevel: 0,\n };\n}\nfunction extractQueryParameters(sql, options) {\n if (!sql || !options) {\n return [];\n }\n const context = createParameterizerContext(sql, options);\n const res = new Set();\n while (context.position < context.end) {\n const token = (0, splitQuery_1.scanToken)(context);\n if (token === null) {\n break;\n }\n if (token.type === 'parameter') {\n if (token.value == '?') {\n res.add(`?${res.size + 1}`);\n }\n else {\n res.add(token.value);\n }\n }\n context.position += token.length;\n }\n return Array.from(res);\n}\nexports.extractQueryParameters = extractQueryParameters;\nfunction replaceQueryParameters(sql, params, options) {\n if (!sql || !options) {\n return sql;\n }\n const context = createParameterizerContext(sql, options);\n let res = '';\n let questionParamCounter = 0;\n while (context.position < context.end) {\n const token = (0, splitQuery_1.scanToken)(context);\n if (token === null) {\n break;\n }\n if (token.type === 'parameter') {\n const paramName = token.value == '?' ? `?${++questionParamCounter}` : token.value;\n if (params[paramName]) {\n res += params[paramName];\n }\n else {\n res += sql.substring(context.position, context.position + token.length);\n }\n }\n else {\n res += sql.substring(context.position, context.position + token.length);\n }\n context.position += token.length;\n }\n return res;\n}\nexports.replaceQueryParameters = replaceQueryParameters;\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.replaceQueryParameters = exports.extractQueryParameters = exports.splitQuery = void 0;\nvar splitQuery_1 = require(\"./splitQuery\");\nObject.defineProperty(exports, \"splitQuery\", { enumerable: true, get: function () { return splitQuery_1.splitQuery; } });\nvar queryParamHandler_1 = require(\"./queryParamHandler\");\nObject.defineProperty(exports, \"extractQueryParameters\", { enumerable: true, get: function () { return queryParamHandler_1.extractQueryParameters; } });\nObject.defineProperty(exports, \"replaceQueryParameters\", { enumerable: true, get: function () { return queryParamHandler_1.replaceQueryParameters; } });\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","skipSeparatorBeginEnd","doubleDashComments","multilineComments","javaScriptComments","returnRichInfo","splitByLines","preventSingleLineSplit","adaptiveGoSplit","ignoreComments","copyFromStdin","queryParameterStyle","assign","mssqlSplitterOptions","splitQuery_1","splitQuery$1","splitQuery","finishSplitStream","getInitialDelimiter","splitQueryLine","scanToken","options_1","require$$0","SEMICOLON","BEGIN_EXTRA_KEYWORDS_REGEX","RegExp","join","END_EXTRA_KEYWORDS_REGEX","movePosition","context","count","isWhite","source","position","line","column","streamPosition","wasDataInCommand","trimCommandStartPosition","trimCommandStartLine","trimCommandStartColumn","noWhitePosition","noWhiteLine","noWhiteColumn","WHITESPACE_TOKEN","type","length","EOLN_TOKEN","DATA_TOKEN","_a","pos","s","ch","isCopyFromStdin","slice","startsWith","wasDataOnLine","pos2","end","options","includes","endch","escapech","test","isInBeginEnd","beginEndIdentLevel","currentDelimiter","m","match","trim","toUpperCase","endsWith","isCopyFromStdinCandidate","pos0","lengthWithoutWhitespace","dollarString","exec","label","scanDollarQuotedString","containsDataAfterDelimiterOnLine","delimiter","cloned","token","pushQuery","specialMarker","commandPart","currentCommandStart","pushCurrentQueryPart","trimmed","substring","commandStartPosition","pushOutput","text","start","commandStartLine","commandStartColumn","trimStart","trimEnd","markStartCommand","sql","usedOptions","lines","split","output","cmd","push","queryParamHandler","replaceQueryParameters","extractQueryParameters","createParameterizerContext","res","Set","add","size","Array","from","params","questionParamCounter","paramName","__createBinding","this","create","o","k","k2","undefined","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","p","prototype","hasOwnProperty","call","queryParamHandler_1","require$$1","require$$2","onmessage","e","result","data","postMessage"],"mappings":"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"}
|