rawsql-ts 0.11.7-beta → 0.11.9-beta

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.
Files changed (158) hide show
  1. package/README.md +82 -1
  2. package/dist/esm/index.js +1 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +23 -15
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.d.ts +1 -0
  7. package/dist/esm/src/index.js +1 -0
  8. package/dist/esm/src/index.js.map +1 -1
  9. package/dist/esm/src/models/BinarySelectQuery.d.ts +2 -2
  10. package/dist/esm/src/models/BinarySelectQuery.js.map +1 -1
  11. package/dist/esm/src/models/SelectQuery.d.ts +2 -1
  12. package/dist/esm/src/models/SelectQuery.js.map +1 -1
  13. package/dist/esm/src/models/SimpleSelectQuery.d.ts +2 -2
  14. package/dist/esm/src/models/SimpleSelectQuery.js.map +1 -1
  15. package/dist/esm/src/models/ValueComponent.d.ts +19 -4
  16. package/dist/esm/src/models/ValueComponent.js +19 -1
  17. package/dist/esm/src/models/ValueComponent.js.map +1 -1
  18. package/dist/esm/src/models/ValuesQuery.d.ts +2 -1
  19. package/dist/esm/src/models/ValuesQuery.js.map +1 -1
  20. package/dist/esm/src/parsers/CommonTableParser.js +16 -0
  21. package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
  22. package/dist/esm/src/parsers/LiteralParser.js +15 -5
  23. package/dist/esm/src/parsers/LiteralParser.js.map +1 -1
  24. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +2 -0
  25. package/dist/esm/src/parsers/SqlPrintTokenParser.js +42 -2
  26. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  27. package/dist/esm/src/parsers/ValueParser.d.ts +13 -0
  28. package/dist/esm/src/parsers/ValueParser.js +134 -1
  29. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  30. package/dist/esm/src/parsers/WithClauseParser.js +8 -2
  31. package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
  32. package/dist/esm/src/reporting/models/DataFlowEdge.d.ts +33 -0
  33. package/dist/esm/src/reporting/models/DataFlowEdge.js +53 -0
  34. package/dist/esm/src/reporting/models/DataFlowEdge.js.map +1 -0
  35. package/dist/esm/src/reporting/models/DataFlowGraph.d.ts +49 -0
  36. package/dist/esm/src/reporting/models/DataFlowGraph.js +156 -0
  37. package/dist/esm/src/reporting/models/DataFlowGraph.js.map +1 -0
  38. package/dist/esm/src/reporting/models/DataFlowNode.d.ts +67 -0
  39. package/dist/esm/src/reporting/models/DataFlowNode.js +116 -0
  40. package/dist/esm/src/reporting/models/DataFlowNode.js.map +1 -0
  41. package/dist/esm/src/reporting/services/CTEHandler.d.ts +17 -0
  42. package/dist/esm/src/reporting/services/CTEHandler.js +54 -0
  43. package/dist/esm/src/reporting/services/CTEHandler.js.map +1 -0
  44. package/dist/esm/src/reporting/services/DataSourceHandler.d.ts +25 -0
  45. package/dist/esm/src/reporting/services/DataSourceHandler.js +91 -0
  46. package/dist/esm/src/reporting/services/DataSourceHandler.js.map +1 -0
  47. package/dist/esm/src/reporting/services/JoinHandler.d.ts +32 -0
  48. package/dist/esm/src/reporting/services/JoinHandler.js +80 -0
  49. package/dist/esm/src/reporting/services/JoinHandler.js.map +1 -0
  50. package/dist/esm/src/reporting/services/ProcessHandler.d.ts +55 -0
  51. package/dist/esm/src/reporting/services/ProcessHandler.js +177 -0
  52. package/dist/esm/src/reporting/services/ProcessHandler.js.map +1 -0
  53. package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.d.ts +5 -0
  54. package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js +37 -1
  55. package/dist/esm/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -1
  56. package/dist/esm/src/tokenReaders/LiteralTokenReader.d.ts +16 -0
  57. package/dist/esm/src/tokenReaders/LiteralTokenReader.js +119 -0
  58. package/dist/esm/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  59. package/dist/esm/src/tokenReaders/OperatorTokenReader.js +4 -0
  60. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  61. package/dist/esm/src/tokenReaders/ParameterTokenReader.d.ts +14 -0
  62. package/dist/esm/src/tokenReaders/ParameterTokenReader.js +126 -0
  63. package/dist/esm/src/tokenReaders/ParameterTokenReader.js.map +1 -1
  64. package/dist/esm/src/transformers/DynamicQueryBuilder.d.ts +28 -2
  65. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
  66. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.d.ts +37 -0
  67. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js +143 -0
  68. package/dist/esm/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
  69. package/dist/esm/src/transformers/SqlParamInjector.d.ts +11 -0
  70. package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
  71. package/dist/esm/src/transformers/TypeTransformationPostProcessor.d.ts +5 -5
  72. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js +20 -8
  73. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -1
  74. package/dist/esm/src/utils/OperatorPrecedence.js +23 -1
  75. package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -1
  76. package/dist/esm/src/utils/charLookupTable.js +4 -4
  77. package/dist/esm/src/utils/charLookupTable.js.map +1 -1
  78. package/dist/esm/src/utils/stringUtils.js +17 -1
  79. package/dist/esm/src/utils/stringUtils.js.map +1 -1
  80. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  81. package/dist/index.min.js +23 -15
  82. package/dist/index.min.js.map +4 -4
  83. package/dist/src/index.d.ts +1 -0
  84. package/dist/src/index.js +1 -0
  85. package/dist/src/index.js.map +1 -1
  86. package/dist/src/models/BinarySelectQuery.d.ts +2 -2
  87. package/dist/src/models/BinarySelectQuery.js.map +1 -1
  88. package/dist/src/models/SelectQuery.d.ts +2 -1
  89. package/dist/src/models/SelectQuery.js.map +1 -1
  90. package/dist/src/models/SimpleSelectQuery.d.ts +2 -2
  91. package/dist/src/models/SimpleSelectQuery.js.map +1 -1
  92. package/dist/src/models/ValueComponent.d.ts +19 -4
  93. package/dist/src/models/ValueComponent.js +22 -2
  94. package/dist/src/models/ValueComponent.js.map +1 -1
  95. package/dist/src/models/ValuesQuery.d.ts +2 -1
  96. package/dist/src/models/ValuesQuery.js.map +1 -1
  97. package/dist/src/parsers/CommonTableParser.js +16 -0
  98. package/dist/src/parsers/CommonTableParser.js.map +1 -1
  99. package/dist/src/parsers/LiteralParser.js +15 -5
  100. package/dist/src/parsers/LiteralParser.js.map +1 -1
  101. package/dist/src/parsers/SqlPrintTokenParser.d.ts +2 -0
  102. package/dist/src/parsers/SqlPrintTokenParser.js +41 -1
  103. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  104. package/dist/src/parsers/ValueParser.d.ts +13 -0
  105. package/dist/src/parsers/ValueParser.js +133 -0
  106. package/dist/src/parsers/ValueParser.js.map +1 -1
  107. package/dist/src/parsers/WithClauseParser.js +8 -2
  108. package/dist/src/parsers/WithClauseParser.js.map +1 -1
  109. package/dist/src/reporting/models/DataFlowEdge.d.ts +33 -0
  110. package/dist/src/reporting/models/DataFlowEdge.js +58 -0
  111. package/dist/src/reporting/models/DataFlowEdge.js.map +1 -0
  112. package/dist/src/reporting/models/DataFlowGraph.d.ts +49 -0
  113. package/dist/src/reporting/models/DataFlowGraph.js +160 -0
  114. package/dist/src/reporting/models/DataFlowGraph.js.map +1 -0
  115. package/dist/src/reporting/models/DataFlowNode.d.ts +67 -0
  116. package/dist/src/reporting/models/DataFlowNode.js +124 -0
  117. package/dist/src/reporting/models/DataFlowNode.js.map +1 -0
  118. package/dist/src/reporting/services/CTEHandler.d.ts +17 -0
  119. package/dist/src/reporting/services/CTEHandler.js +58 -0
  120. package/dist/src/reporting/services/CTEHandler.js.map +1 -0
  121. package/dist/src/reporting/services/DataSourceHandler.d.ts +25 -0
  122. package/dist/src/reporting/services/DataSourceHandler.js +95 -0
  123. package/dist/src/reporting/services/DataSourceHandler.js.map +1 -0
  124. package/dist/src/reporting/services/JoinHandler.d.ts +32 -0
  125. package/dist/src/reporting/services/JoinHandler.js +84 -0
  126. package/dist/src/reporting/services/JoinHandler.js.map +1 -0
  127. package/dist/src/reporting/services/ProcessHandler.d.ts +55 -0
  128. package/dist/src/reporting/services/ProcessHandler.js +181 -0
  129. package/dist/src/reporting/services/ProcessHandler.js.map +1 -0
  130. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.d.ts +5 -0
  131. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js +37 -1
  132. package/dist/src/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -1
  133. package/dist/src/tokenReaders/LiteralTokenReader.d.ts +16 -0
  134. package/dist/src/tokenReaders/LiteralTokenReader.js +119 -0
  135. package/dist/src/tokenReaders/LiteralTokenReader.js.map +1 -1
  136. package/dist/src/tokenReaders/OperatorTokenReader.js +4 -0
  137. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  138. package/dist/src/tokenReaders/ParameterTokenReader.d.ts +14 -0
  139. package/dist/src/tokenReaders/ParameterTokenReader.js +126 -0
  140. package/dist/src/tokenReaders/ParameterTokenReader.js.map +1 -1
  141. package/dist/src/transformers/DynamicQueryBuilder.d.ts +28 -2
  142. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
  143. package/dist/src/transformers/QueryFlowDiagramGenerator.d.ts +37 -0
  144. package/dist/src/transformers/QueryFlowDiagramGenerator.js +147 -0
  145. package/dist/src/transformers/QueryFlowDiagramGenerator.js.map +1 -0
  146. package/dist/src/transformers/SqlParamInjector.d.ts +11 -0
  147. package/dist/src/transformers/SqlParamInjector.js.map +1 -1
  148. package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +5 -5
  149. package/dist/src/transformers/TypeTransformationPostProcessor.js +20 -8
  150. package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -1
  151. package/dist/src/utils/OperatorPrecedence.js +23 -1
  152. package/dist/src/utils/OperatorPrecedence.js.map +1 -1
  153. package/dist/src/utils/charLookupTable.js +4 -4
  154. package/dist/src/utils/charLookupTable.js.map +1 -1
  155. package/dist/src/utils/stringUtils.js +17 -1
  156. package/dist/src/utils/stringUtils.js.map +1 -1
  157. package/dist/tsconfig.tsbuildinfo +1 -1
  158. package/package.json +1 -1
@@ -58,6 +58,30 @@ class LiteralTokenReader extends BaseTokenReader_1.BaseTokenReader {
58
58
  if (charLookupTable_1.CharLookupTable.isDigit(char)) {
59
59
  return this.createLexeme(Lexeme_1.TokenType.Literal, this.readDigit());
60
60
  }
61
+ // PostgreSQL dollar-quoted string ($$content$$ or $tag$content$tag$)
62
+ if (char === '$' && this.isDollarQuotedString()) {
63
+ return this.createLexeme(Lexeme_1.TokenType.Literal, this.readDollarQuotedString());
64
+ }
65
+ // SQL Server MONEY literal ($123.45)
66
+ // Only treat as MONEY if it contains decimal point or comma to avoid conflict with PostgreSQL $1 parameters
67
+ if (char === '$' && this.canRead(1) && charLookupTable_1.CharLookupTable.isDigit(this.input[this.position + 1])) {
68
+ // Look ahead to see if this looks like a MONEY literal (has . or ,)
69
+ let pos = this.position + 1;
70
+ let hasDecimalOrComma = false;
71
+ while (pos < this.input.length && (charLookupTable_1.CharLookupTable.isDigit(this.input[pos]) || this.input[pos] === ',' || this.input[pos] === '.')) {
72
+ if (this.input[pos] === '.' || this.input[pos] === ',') {
73
+ hasDecimalOrComma = true;
74
+ break;
75
+ }
76
+ pos++;
77
+ }
78
+ if (hasDecimalOrComma) {
79
+ const start = this.position;
80
+ this.position++; // Skip $
81
+ const numberPart = this.readMoneyDigit();
82
+ return this.createLexeme(Lexeme_1.TokenType.Literal, '$' + numberPart);
83
+ }
84
+ }
61
85
  // Signed number
62
86
  if ((char === '+' || char === '-') && this.determineSignOrOperator(previous) === "sign") {
63
87
  const sign = char;
@@ -171,6 +195,31 @@ class LiteralTokenReader extends BaseTokenReader_1.BaseTokenReader {
171
195
  }
172
196
  return this.input.slice(start, this.position);
173
197
  }
198
+ /**
199
+ * Read a MONEY value (allows commas as thousand separators)
200
+ */
201
+ readMoneyDigit() {
202
+ const start = this.position;
203
+ let hasDot = false;
204
+ // Consider decimal point and comma separators
205
+ while (this.canRead()) {
206
+ const char = this.input[this.position];
207
+ if (char === '.' && !hasDot) {
208
+ hasDot = true;
209
+ }
210
+ else if (char === ',' && !hasDot) {
211
+ // Allow comma as thousand separator before decimal point
212
+ }
213
+ else if (!charLookupTable_1.CharLookupTable.isDigit(char)) {
214
+ break;
215
+ }
216
+ this.position++;
217
+ }
218
+ if (start === this.position) {
219
+ throw new Error(`Unexpected character. position: ${start}\n${this.getDebugPositionInfo(start)}`);
220
+ }
221
+ return this.input.slice(start, this.position);
222
+ }
174
223
  /**
175
224
  * Read a string literal
176
225
  */
@@ -203,6 +252,76 @@ class LiteralTokenReader extends BaseTokenReader_1.BaseTokenReader {
203
252
  return value;
204
253
  }
205
254
  }
255
+ /**
256
+ * Check if the current position starts a PostgreSQL dollar-quoted string
257
+ */
258
+ isDollarQuotedString() {
259
+ if (!this.canRead(1)) {
260
+ return false;
261
+ }
262
+ // Check for $$ pattern
263
+ if (this.input[this.position + 1] === '$') {
264
+ return true;
265
+ }
266
+ // Check for $tag$ pattern
267
+ let pos = this.position + 1;
268
+ while (pos < this.input.length) {
269
+ const char = this.input[pos];
270
+ if (char === '$') {
271
+ return true;
272
+ }
273
+ if (!this.isAlphanumeric(char) && char !== '_') {
274
+ return false;
275
+ }
276
+ pos++;
277
+ }
278
+ return false;
279
+ }
280
+ /**
281
+ * Read a PostgreSQL dollar-quoted string
282
+ */
283
+ readDollarQuotedString() {
284
+ const start = this.position;
285
+ // Read the opening tag
286
+ this.position++; // Skip initial $
287
+ let tag = '';
288
+ // Read tag characters until the closing $
289
+ while (this.canRead() && this.input[this.position] !== '$') {
290
+ tag += this.input[this.position];
291
+ this.position++;
292
+ }
293
+ if (!this.canRead()) {
294
+ throw new Error(`Unexpected end of input while reading dollar-quoted string tag at position ${start}`);
295
+ }
296
+ this.position++; // Skip closing $ of opening tag
297
+ // Now read the content until we find the closing tag
298
+ const openingTag = '$' + tag + '$';
299
+ const closingTag = openingTag;
300
+ let content = '';
301
+ while (this.canRead()) {
302
+ // Check if we're at the start of the closing tag
303
+ if (this.input.substring(this.position, this.position + closingTag.length) === closingTag) {
304
+ // Found closing tag
305
+ this.position += closingTag.length;
306
+ return openingTag + content + closingTag;
307
+ }
308
+ content += this.input[this.position];
309
+ this.position++;
310
+ }
311
+ throw new Error(`Unclosed dollar-quoted string starting at position ${start}. Expected closing tag: ${closingTag}`);
312
+ }
313
+ /**
314
+ * Check if character is alphanumeric (letter or digit)
315
+ */
316
+ isAlphanumeric(char) {
317
+ if (char.length !== 1)
318
+ return false;
319
+ const code = char.charCodeAt(0);
320
+ // Check if digit (0-9) or letter (a-z, A-Z)
321
+ return (code >= 48 && code <= 57) || // 0-9
322
+ (code >= 65 && code <= 90) || // A-Z
323
+ (code >= 97 && code <= 122); // a-z
324
+ }
206
325
  }
207
326
  exports.LiteralTokenReader = LiteralTokenReader;
208
327
  //# sourceMappingURL=LiteralTokenReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LiteralTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/LiteralTokenReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiteralTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/LiteralTokenReader.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,10 @@ const trie = new KeywordTrie_1.KeywordTrie([
30
30
  ["not", "similar", "to"], // e.g. name not similar to 'J(ohn|ane)%'
31
31
  ["similar"], // e.g. substring('abcdef' similar '%#"cd#"%' escape '#')
32
32
  ["placing"], // e.g. overlay('abcdef' placing 'cd' from 3 for 2)
33
+ ["rlike"], // MySQL regular expression operator
34
+ ["regexp"], // MySQL regular expression operator
35
+ ["mod"], // MySQL modulo operator
36
+ ["xor"], // MySQL exclusive or operator
33
37
  // unary
34
38
  ["not"],
35
39
  // unary - trim
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/OperatorTokenReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OperatorTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/OperatorTokenReader.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,18 @@ export declare class ParameterTokenReader extends BaseTokenReader {
9
9
  * Try to read a parameter token
10
10
  */
11
11
  tryRead(previous: Lexeme | null): Lexeme | null;
12
+ /**
13
+ * Check if we're in an array slice context where : should be treated as an operator
14
+ * Look backwards for an opening bracket that suggests array access
15
+ */
16
+ private isInArraySliceContext;
17
+ /**
18
+ * Check if the current position starts a PostgreSQL dollar-quoted string
19
+ * Patterns: $$ or $tag$
20
+ */
21
+ private isDollarQuotedString;
22
+ /**
23
+ * Check if character is alphanumeric (letter or digit)
24
+ */
25
+ private isAlphanumeric;
12
26
  }
@@ -43,6 +43,32 @@ class ParameterTokenReader extends BaseTokenReader_1.BaseTokenReader {
43
43
  if (this.canRead(1) && charLookupTable_1.CharLookupTable.isOperatorSymbol(this.input[this.position + 1])) {
44
44
  return null;
45
45
  }
46
+ // Don't treat `:` as parameter prefix in array slice context [1:2]
47
+ if (char === ':' && this.isInArraySliceContext()) {
48
+ return null;
49
+ }
50
+ // Special handling for PostgreSQL dollar-quoted strings ($$ or $tag$)
51
+ if (char === '$' && this.isDollarQuotedString()) {
52
+ return null; // Let LiteralTokenReader handle it as dollar-quoted string
53
+ }
54
+ // Special handling for SQL Server MONEY literals ($123.45)
55
+ // Only treat as MONEY if it contains decimal point or comma (not just $123)
56
+ if (char === '$' && this.canRead(1) && charLookupTable_1.CharLookupTable.isDigit(this.input[this.position + 1])) {
57
+ // Look ahead to see if this looks like a MONEY literal (has . or ,)
58
+ let pos = this.position + 1;
59
+ let hasDecimalOrComma = false;
60
+ while (pos < this.input.length && (charLookupTable_1.CharLookupTable.isDigit(this.input[pos]) || this.input[pos] === ',' || this.input[pos] === '.')) {
61
+ if (this.input[pos] === '.' || this.input[pos] === ',') {
62
+ hasDecimalOrComma = true;
63
+ break;
64
+ }
65
+ pos++;
66
+ }
67
+ if (hasDecimalOrComma) {
68
+ return null; // Let LiteralTokenReader handle it as MONEY
69
+ }
70
+ // Otherwise, treat as parameter (e.g., $1, $123)
71
+ }
46
72
  this.position++;
47
73
  // Read the identifier part after the prefix
48
74
  const start = this.position;
@@ -53,12 +79,112 @@ class ParameterTokenReader extends BaseTokenReader_1.BaseTokenReader {
53
79
  return this.createLexeme(Lexeme_1.TokenType.Parameter, char + identifier);
54
80
  }
55
81
  // nameless parameter (?)
82
+ // However, do not recognize as a parameter if it could be a JSON operator
56
83
  if (char === '?') {
84
+ // Check for JSON operators ?| and ?&
85
+ if (this.canRead(1)) {
86
+ const nextChar = this.input[this.position + 1];
87
+ if (nextChar === '|' || nextChar === '&') {
88
+ return null; // Let OperatorTokenReader handle it
89
+ }
90
+ }
91
+ // If previous token is an identifier or literal, ? might be a JSON operator
92
+ if (previous && (previous.type & Lexeme_1.TokenType.Identifier || previous.type & Lexeme_1.TokenType.Literal)) {
93
+ return null; // Let OperatorTokenReader handle it
94
+ }
57
95
  this.position++;
58
96
  return this.createLexeme(Lexeme_1.TokenType.Parameter, char);
59
97
  }
60
98
  return null;
61
99
  }
100
+ /**
101
+ * Check if we're in an array slice context where : should be treated as an operator
102
+ * Look backwards for an opening bracket that suggests array access
103
+ */
104
+ isInArraySliceContext() {
105
+ // Look backwards from current position to find opening bracket
106
+ let pos = this.position - 1;
107
+ let bracketDepth = 0;
108
+ let parenDepth = 0;
109
+ while (pos >= 0) {
110
+ const char = this.input[pos];
111
+ if (char === ']') {
112
+ bracketDepth++;
113
+ }
114
+ else if (char === '[') {
115
+ bracketDepth--;
116
+ if (bracketDepth < 0) {
117
+ // Found unmatched opening bracket, check if it's array access context
118
+ // Array access context: after identifier, closing paren, or closing bracket
119
+ if (pos > 0) {
120
+ const prevChar = this.input[pos - 1];
121
+ // If previous char could end an expression (identifier, paren, bracket)
122
+ if (/[a-zA-Z0-9_)\]]/.test(prevChar)) {
123
+ return true;
124
+ }
125
+ }
126
+ // Also check if we're at start of input with brackets
127
+ if (pos === 0) {
128
+ return false; // Standalone [expr] is not array access
129
+ }
130
+ break;
131
+ }
132
+ }
133
+ else if (char === ')') {
134
+ parenDepth++;
135
+ }
136
+ else if (char === '(') {
137
+ parenDepth--;
138
+ // Continue searching even through parentheses as they might be function calls
139
+ // in array slice context like arr[func(x):func(y)]
140
+ }
141
+ pos--;
142
+ }
143
+ return false;
144
+ }
145
+ /**
146
+ * Check if the current position starts a PostgreSQL dollar-quoted string
147
+ * Patterns: $$ or $tag$
148
+ */
149
+ isDollarQuotedString() {
150
+ if (!this.canRead(1)) {
151
+ return false;
152
+ }
153
+ // Check for $$ pattern
154
+ if (this.input[this.position + 1] === '$') {
155
+ return true;
156
+ }
157
+ // Check for $tag$ pattern
158
+ // Look for the closing $ after the tag
159
+ let pos = this.position + 1;
160
+ while (pos < this.input.length) {
161
+ const char = this.input[pos];
162
+ if (char === '$') {
163
+ // Found closing $ - this looks like $tag$ pattern
164
+ return true;
165
+ }
166
+ // Tag can contain letters, digits, underscores
167
+ if (!this.isAlphanumeric(char) && char !== '_') {
168
+ // Invalid character for tag, not a dollar-quoted string
169
+ return false;
170
+ }
171
+ pos++;
172
+ }
173
+ // No closing $ found
174
+ return false;
175
+ }
176
+ /**
177
+ * Check if character is alphanumeric (letter or digit)
178
+ */
179
+ isAlphanumeric(char) {
180
+ if (char.length !== 1)
181
+ return false;
182
+ const code = char.charCodeAt(0);
183
+ // Check if digit (0-9) or letter (a-z, A-Z)
184
+ return (code >= 48 && code <= 57) || // 0-9
185
+ (code >= 65 && code <= 90) || // A-Z
186
+ (code >= 97 && code <= 122); // a-z
187
+ }
62
188
  }
63
189
  exports.ParameterTokenReader = ParameterTokenReader;
64
190
  //# sourceMappingURL=ParameterTokenReader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ParameterTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/ParameterTokenReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ParameterTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/ParameterTokenReader.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,38 @@ import { SelectQuery } from "../models/SelectQuery";
2
2
  import { SortConditions } from "./SqlSortInjector";
3
3
  import { PaginationOptions } from "./SqlPaginationInjector";
4
4
  import { JsonMapping } from "./PostgresJsonQueryBuilder";
5
+ import { SqlParameterValue } from "../models/ValueComponent";
6
+ export type FilterConditionValue = SqlParameterValue | SqlParameterValue[] | {
7
+ min?: SqlParameterValue;
8
+ max?: SqlParameterValue;
9
+ like?: string;
10
+ ilike?: string;
11
+ in?: SqlParameterValue[];
12
+ any?: SqlParameterValue[];
13
+ '='?: SqlParameterValue;
14
+ '>'?: SqlParameterValue;
15
+ '<'?: SqlParameterValue;
16
+ '>='?: SqlParameterValue;
17
+ '<='?: SqlParameterValue;
18
+ '!='?: SqlParameterValue;
19
+ '<>'?: SqlParameterValue;
20
+ or?: {
21
+ column: string;
22
+ [operator: string]: SqlParameterValue | string;
23
+ }[];
24
+ and?: {
25
+ column: string;
26
+ [operator: string]: SqlParameterValue | string;
27
+ }[];
28
+ column?: string;
29
+ };
30
+ export type FilterConditions = Record<string, FilterConditionValue>;
5
31
  /**
6
32
  * Options for dynamic query building
7
33
  */
8
34
  export interface QueryBuildOptions {
9
35
  /** Filter conditions to inject into WHERE clause */
10
- filter?: Record<string, any>;
36
+ filter?: FilterConditions;
11
37
  /** Sort conditions to inject into ORDER BY clause */
12
38
  sort?: SortConditions;
13
39
  /** Pagination options to inject LIMIT/OFFSET clauses */
@@ -75,7 +101,7 @@ export declare class DynamicQueryBuilder {
75
101
  * @param filter Filter conditions to apply
76
102
  * @returns Modified SelectQuery with filter conditions applied
77
103
  */
78
- buildFilteredQuery(sqlContent: string, filter: Record<string, any>): SelectQuery;
104
+ buildFilteredQuery(sqlContent: string, filter: FilterConditions): SelectQuery;
79
105
  /**
80
106
  * Builds a SelectQuery with only sorting applied.
81
107
  * Convenience method for when you only need dynamic ORDER BY clauses.
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { SelectQuery } from '../models/SelectQuery';
2
+ export interface BaseMermaidOptions {
3
+ /** Diagram title */
4
+ title?: string;
5
+ }
6
+ export interface FlowDiagramOptions extends BaseMermaidOptions {
7
+ /** Show detailed information (columns, conditions) */
8
+ showDetails?: boolean;
9
+ /** Include CTE dependencies */
10
+ showCTEDependencies?: boolean;
11
+ /** Direction of flow (top-down, left-right) */
12
+ direction?: 'TD' | 'LR' | 'TB' | 'RL';
13
+ }
14
+ /**
15
+ * QueryFlowDiagramGenerator using model-based architecture
16
+ * Generates Mermaid diagrams from SQL queries following consistent principles
17
+ */
18
+ export declare class QueryFlowDiagramGenerator {
19
+ private graph;
20
+ private dataSourceHandler;
21
+ private joinHandler;
22
+ private processHandler;
23
+ private cteHandler;
24
+ constructor();
25
+ generateMermaidFlow(query: SelectQuery | string, options?: FlowDiagramOptions): string;
26
+ static generate(sql: string): string;
27
+ private processQuery;
28
+ private processSimpleQuery;
29
+ private processBinaryQuery;
30
+ private processSimpleBinaryOperation;
31
+ private processMultiPartOperation;
32
+ private handleOutputNode;
33
+ /**
34
+ * Flattens a binary operation chain into individual parts
35
+ */
36
+ private flattenBinaryChain;
37
+ }
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryFlowDiagramGenerator = void 0;
4
+ const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
5
+ const SimpleSelectQuery_1 = require("../models/SimpleSelectQuery");
6
+ const BinarySelectQuery_1 = require("../models/BinarySelectQuery");
7
+ const DataFlowGraph_1 = require("../reporting/models/DataFlowGraph");
8
+ const DataSourceHandler_1 = require("../reporting/services/DataSourceHandler");
9
+ const JoinHandler_1 = require("../reporting/services/JoinHandler");
10
+ const ProcessHandler_1 = require("../reporting/services/ProcessHandler");
11
+ const CTEHandler_1 = require("../reporting/services/CTEHandler");
12
+ /**
13
+ * QueryFlowDiagramGenerator using model-based architecture
14
+ * Generates Mermaid diagrams from SQL queries following consistent principles
15
+ */
16
+ class QueryFlowDiagramGenerator {
17
+ constructor() {
18
+ this.graph = new DataFlowGraph_1.DataFlowGraph();
19
+ this.dataSourceHandler = new DataSourceHandler_1.DataSourceHandler(this.graph);
20
+ this.joinHandler = new JoinHandler_1.JoinHandler(this.graph, this.dataSourceHandler);
21
+ this.processHandler = new ProcessHandler_1.ProcessHandler(this.graph, this.dataSourceHandler);
22
+ this.cteHandler = new CTEHandler_1.CTEHandler(this.graph);
23
+ }
24
+ generateMermaidFlow(query, options) {
25
+ // Reset state for new diagram generation
26
+ this.graph = new DataFlowGraph_1.DataFlowGraph();
27
+ this.dataSourceHandler = new DataSourceHandler_1.DataSourceHandler(this.graph);
28
+ this.joinHandler = new JoinHandler_1.JoinHandler(this.graph, this.dataSourceHandler);
29
+ this.processHandler = new ProcessHandler_1.ProcessHandler(this.graph, this.dataSourceHandler);
30
+ this.cteHandler = new CTEHandler_1.CTEHandler(this.graph);
31
+ this.joinHandler.resetJoinCounter();
32
+ // Parse SQL if string
33
+ const parsedQuery = typeof query === 'string'
34
+ ? SelectQueryParser_1.SelectQueryParser.parse(query)
35
+ : query;
36
+ // Process the query
37
+ const cteNames = new Set();
38
+ this.processQuery(parsedQuery, 'main', cteNames);
39
+ // Generate Mermaid output
40
+ return this.graph.generateMermaid((options === null || options === void 0 ? void 0 : options.direction) || 'TD', options === null || options === void 0 ? void 0 : options.title);
41
+ }
42
+ static generate(sql) {
43
+ const generator = new QueryFlowDiagramGenerator();
44
+ return generator.generateMermaidFlow(sql);
45
+ }
46
+ processQuery(query, context, cteNames) {
47
+ if (query instanceof SimpleSelectQuery_1.SimpleSelectQuery) {
48
+ return this.processSimpleQuery(query, context, cteNames);
49
+ }
50
+ else if (query instanceof BinarySelectQuery_1.BinarySelectQuery) {
51
+ return this.processBinaryQuery(query, context, cteNames);
52
+ }
53
+ throw new Error('Unsupported query type');
54
+ }
55
+ processSimpleQuery(query, context, cteNames) {
56
+ // Process CTEs first
57
+ if (query.withClause) {
58
+ this.cteHandler.processCTEs(query.withClause, cteNames, this.processQuery.bind(this));
59
+ }
60
+ let currentNodeId = '';
61
+ // 1. Process FROM clause (including JOINs)
62
+ if (query.fromClause) {
63
+ currentNodeId = this.joinHandler.processFromClause(query.fromClause, cteNames, this.processQuery.bind(this));
64
+ }
65
+ // 2-7. Process other clauses in execution order
66
+ if (currentNodeId) {
67
+ currentNodeId = this.processHandler.processQueryClauses(query, context, currentNodeId, cteNames, this.processQuery.bind(this));
68
+ }
69
+ // Handle output node creation based on context
70
+ return this.handleOutputNode(currentNodeId, context);
71
+ }
72
+ processBinaryQuery(query, context, cteNames) {
73
+ // Check if this is a chain of the same operation
74
+ const parts = this.flattenBinaryChain(query, query.operator.value);
75
+ if (parts.length > 2) {
76
+ return this.processMultiPartOperation(parts, query.operator.value, context, cteNames);
77
+ }
78
+ else {
79
+ return this.processSimpleBinaryOperation(query, context, cteNames);
80
+ }
81
+ }
82
+ processSimpleBinaryOperation(query, context, cteNames) {
83
+ const leftNodeId = this.processQuery(query.left, `${context}_left`, cteNames);
84
+ const rightNodeId = this.processQuery(query.right, `${context}_right`, cteNames);
85
+ // Create operation node with unique ID based on context
86
+ const operationId = context === 'main' ? 'main' : context.replace(/^cte_/, '');
87
+ const operationNode = this.graph.createSetOperationNode(operationId, query.operator.value);
88
+ // Connect left and right to operation
89
+ if (leftNodeId && !this.graph.hasConnection(leftNodeId, operationNode.id)) {
90
+ this.graph.addConnection(leftNodeId, operationNode.id);
91
+ }
92
+ if (rightNodeId && !this.graph.hasConnection(rightNodeId, operationNode.id)) {
93
+ this.graph.addConnection(rightNodeId, operationNode.id);
94
+ }
95
+ return operationNode.id;
96
+ }
97
+ processMultiPartOperation(parts, operator, context, cteNames) {
98
+ const partNodes = [];
99
+ // Use context to create unique operation ID
100
+ const operationId = context === 'main' ? 'main' : context.replace(/^cte_/, '');
101
+ const operationNode = this.graph.createSetOperationNode(operationId, operator);
102
+ // Process each part with numbered naming
103
+ for (let i = 0; i < parts.length; i++) {
104
+ const partContext = `${context}_part${i + 1}`;
105
+ const partNodeId = this.processQuery(parts[i], partContext, cteNames);
106
+ partNodes.push(partNodeId);
107
+ }
108
+ // Connect all parts to operation
109
+ for (const partNodeId of partNodes) {
110
+ if (partNodeId && !this.graph.hasConnection(partNodeId, operationNode.id)) {
111
+ this.graph.addConnection(partNodeId, operationNode.id);
112
+ }
113
+ }
114
+ return operationNode.id;
115
+ }
116
+ handleOutputNode(currentNodeId, context) {
117
+ // Simple principle: Only create output node for main query
118
+ // All other contexts return their processing result directly
119
+ if (context === 'main') {
120
+ const outputNode = this.graph.createOutputNode(context);
121
+ if (currentNodeId) {
122
+ this.graph.addConnection(currentNodeId, outputNode.id);
123
+ }
124
+ return outputNode.id;
125
+ }
126
+ return currentNodeId;
127
+ }
128
+ /**
129
+ * Flattens a binary operation chain into individual parts
130
+ */
131
+ flattenBinaryChain(query, operator) {
132
+ const parts = [];
133
+ const collectParts = (q) => {
134
+ if (q instanceof BinarySelectQuery_1.BinarySelectQuery && q.operator.value === operator) {
135
+ collectParts(q.left);
136
+ collectParts(q.right);
137
+ }
138
+ else {
139
+ parts.push(q);
140
+ }
141
+ };
142
+ collectParts(query);
143
+ return parts;
144
+ }
145
+ }
146
+ exports.QueryFlowDiagramGenerator = QueryFlowDiagramGenerator;
147
+ //# sourceMappingURL=QueryFlowDiagramGenerator.js.map