dbgate-web-premium 6.6.3 → 6.6.5
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 +0,0 @@
|
|
|
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 splitByEmptyLine: 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 if (!context.wasDataOnLine && context.options.splitByEmptyLine) {\n pushQuery(context);\n context.commandPart = '';\n movePosition(context, token.length, false);\n context.currentCommandStart = context.position;\n context.wasDataOnLine = false;\n markStartCommand(context);\n break;\n }\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","splitByEmptyLine","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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"}
|