rawsql-ts 0.6.0-beta → 0.7.1-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 (210) hide show
  1. package/README.md +141 -121
  2. package/dist/esm/index.js +1 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/models/Clause.js +111 -43
  5. package/dist/esm/models/Clause.js.map +1 -1
  6. package/dist/esm/models/CreateTableQuery.js +12 -22
  7. package/dist/esm/models/CreateTableQuery.js.map +1 -1
  8. package/dist/esm/models/KeywordTrie.js +2 -0
  9. package/dist/esm/models/KeywordTrie.js.map +1 -1
  10. package/dist/esm/models/SimpleSelectQuery.js +17 -15
  11. package/dist/esm/models/SimpleSelectQuery.js.map +1 -1
  12. package/dist/esm/models/SqlPrintToken.js +94 -0
  13. package/dist/esm/models/SqlPrintToken.js.map +1 -0
  14. package/dist/esm/models/ValueComponent.js +86 -17
  15. package/dist/esm/models/ValueComponent.js.map +1 -1
  16. package/dist/esm/parsers/FetchClauseParser.js +84 -0
  17. package/dist/esm/parsers/FetchClauseParser.js.map +1 -0
  18. package/dist/esm/parsers/FullNameParser.js +6 -1
  19. package/dist/esm/parsers/FullNameParser.js.map +1 -1
  20. package/dist/esm/parsers/IdentifierDecorator.js +13 -0
  21. package/dist/esm/parsers/IdentifierDecorator.js.map +1 -0
  22. package/dist/esm/parsers/InsertQueryParser.js +1 -1
  23. package/dist/esm/parsers/JoinClauseParser.js +13 -35
  24. package/dist/esm/parsers/JoinClauseParser.js.map +1 -1
  25. package/dist/esm/parsers/JoinOnClauseParser.js +17 -0
  26. package/dist/esm/parsers/JoinOnClauseParser.js.map +1 -0
  27. package/dist/esm/parsers/JoinUsingClauseParser.js +19 -0
  28. package/dist/esm/parsers/JoinUsingClauseParser.js.map +1 -0
  29. package/dist/esm/parsers/LimitClauseParser.js +1 -13
  30. package/dist/esm/parsers/LimitClauseParser.js.map +1 -1
  31. package/dist/esm/parsers/OffsetClauseParser.js +38 -0
  32. package/dist/esm/parsers/OffsetClauseParser.js.map +1 -0
  33. package/dist/esm/parsers/ParameterDecorator.js +36 -0
  34. package/dist/esm/parsers/ParameterDecorator.js.map +1 -0
  35. package/dist/esm/parsers/SelectClauseParser.js +25 -2
  36. package/dist/esm/parsers/SelectClauseParser.js.map +1 -1
  37. package/dist/esm/parsers/SelectQueryParser.js +40 -13
  38. package/dist/esm/parsers/SelectQueryParser.js.map +1 -1
  39. package/dist/esm/parsers/SourceParser.js +17 -13
  40. package/dist/esm/parsers/SourceParser.js.map +1 -1
  41. package/dist/esm/parsers/SqlPrintTokenParser.js +1058 -0
  42. package/dist/esm/parsers/SqlPrintTokenParser.js.map +1 -0
  43. package/dist/esm/parsers/SqlTokenizer.js +2 -0
  44. package/dist/esm/parsers/SqlTokenizer.js.map +1 -1
  45. package/dist/esm/parsers/WindowClauseParser.js +27 -15
  46. package/dist/esm/parsers/WindowClauseParser.js.map +1 -1
  47. package/dist/esm/tokenReaders/BaseTokenReader.js +3 -3
  48. package/dist/esm/tokenReaders/BaseTokenReader.js.map +1 -1
  49. package/dist/esm/tokenReaders/CommandTokenReader.js +8 -2
  50. package/dist/esm/tokenReaders/CommandTokenReader.js.map +1 -1
  51. package/dist/esm/tokenReaders/EscapedIdentifierTokenReader.js +54 -0
  52. package/dist/esm/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
  53. package/dist/esm/tokenReaders/IdentifierTokenReader.js +0 -36
  54. package/dist/esm/tokenReaders/IdentifierTokenReader.js.map +1 -1
  55. package/dist/esm/tokenReaders/LiteralTokenReader.js +23 -6
  56. package/dist/esm/tokenReaders/LiteralTokenReader.js.map +1 -1
  57. package/dist/esm/transformers/CTECollector.js +9 -10
  58. package/dist/esm/transformers/CTECollector.js.map +1 -1
  59. package/dist/esm/transformers/CTEDisabler.js +10 -9
  60. package/dist/esm/transformers/CTEDisabler.js.map +1 -1
  61. package/dist/esm/transformers/CTEInjector.js +2 -2
  62. package/dist/esm/transformers/Formatter.js +19 -646
  63. package/dist/esm/transformers/Formatter.js.map +1 -1
  64. package/dist/esm/transformers/LinePrinter.js +81 -0
  65. package/dist/esm/transformers/LinePrinter.js.map +1 -0
  66. package/dist/esm/transformers/QueryBuilder.js +8 -18
  67. package/dist/esm/transformers/QueryBuilder.js.map +1 -1
  68. package/dist/esm/transformers/SelectableColumnCollector.js +26 -9
  69. package/dist/esm/transformers/SelectableColumnCollector.js.map +1 -1
  70. package/dist/esm/transformers/SqlFormatter.js +31 -0
  71. package/dist/esm/transformers/SqlFormatter.js.map +1 -0
  72. package/dist/esm/transformers/SqlOutputToken.js +9 -0
  73. package/dist/esm/transformers/SqlOutputToken.js.map +1 -0
  74. package/dist/esm/transformers/SqlPrinter.js +144 -0
  75. package/dist/esm/transformers/SqlPrinter.js.map +1 -0
  76. package/dist/esm/transformers/TableSourceCollector.js +32 -16
  77. package/dist/esm/transformers/TableSourceCollector.js.map +1 -1
  78. package/dist/esm/types/index.d.ts +1 -0
  79. package/dist/esm/types/models/Clause.d.ts +64 -13
  80. package/dist/esm/types/models/SimpleSelectQuery.d.ts +20 -5
  81. package/dist/esm/types/models/SqlPrintToken.d.ts +102 -0
  82. package/dist/esm/types/models/ValueComponent.d.ts +43 -9
  83. package/dist/esm/types/parsers/FetchClauseParser.d.ts +24 -0
  84. package/dist/esm/types/parsers/FullNameParser.d.ts +1 -0
  85. package/dist/esm/types/parsers/IdentifierDecorator.d.ts +9 -0
  86. package/dist/esm/types/parsers/JoinClauseParser.d.ts +0 -2
  87. package/dist/esm/types/parsers/JoinOnClauseParser.d.ts +8 -0
  88. package/dist/esm/types/parsers/JoinUsingClauseParser.d.ts +8 -0
  89. package/dist/esm/types/parsers/OffsetClauseParser.d.ts +9 -0
  90. package/dist/esm/types/parsers/ParameterDecorator.d.ts +20 -0
  91. package/dist/esm/types/parsers/SelectClauseParser.d.ts +19 -2
  92. package/dist/esm/types/parsers/SqlPrintTokenParser.d.ts +144 -0
  93. package/dist/esm/types/parsers/WindowClauseParser.d.ts +3 -3
  94. package/dist/esm/types/tokenReaders/EscapedIdentifierTokenReader.d.ts +15 -0
  95. package/dist/esm/types/tokenReaders/IdentifierTokenReader.d.ts +0 -4
  96. package/dist/esm/types/tokenReaders/LiteralTokenReader.d.ts +15 -2
  97. package/dist/esm/types/transformers/Formatter.d.ts +8 -105
  98. package/dist/esm/types/transformers/LinePrinter.d.ts +41 -0
  99. package/dist/esm/types/transformers/SelectableColumnCollector.d.ts +2 -0
  100. package/dist/esm/types/transformers/SqlFormatter.d.ts +40 -0
  101. package/dist/esm/types/transformers/SqlOutputToken.d.ts +6 -0
  102. package/dist/esm/types/transformers/SqlPrinter.d.ts +54 -0
  103. package/dist/esm/types/transformers/TableSourceCollector.d.ts +2 -0
  104. package/dist/esm/utils/stringUtils.js +17 -0
  105. package/dist/esm/utils/stringUtils.js.map +1 -1
  106. package/dist/index.d.ts +1 -0
  107. package/dist/index.js +1 -0
  108. package/dist/index.js.map +1 -1
  109. package/dist/models/Clause.d.ts +64 -13
  110. package/dist/models/Clause.js +115 -44
  111. package/dist/models/Clause.js.map +1 -1
  112. package/dist/models/CreateTableQuery.js +12 -22
  113. package/dist/models/CreateTableQuery.js.map +1 -1
  114. package/dist/models/KeywordTrie.js +2 -0
  115. package/dist/models/KeywordTrie.js.map +1 -1
  116. package/dist/models/SimpleSelectQuery.d.ts +20 -5
  117. package/dist/models/SimpleSelectQuery.js +17 -15
  118. package/dist/models/SimpleSelectQuery.js.map +1 -1
  119. package/dist/models/SqlPrintToken.d.ts +102 -0
  120. package/dist/models/SqlPrintToken.js +98 -0
  121. package/dist/models/SqlPrintToken.js.map +1 -0
  122. package/dist/models/ValueComponent.d.ts +43 -9
  123. package/dist/models/ValueComponent.js +88 -18
  124. package/dist/models/ValueComponent.js.map +1 -1
  125. package/dist/parsers/FetchClauseParser.d.ts +24 -0
  126. package/dist/parsers/FetchClauseParser.js +89 -0
  127. package/dist/parsers/FetchClauseParser.js.map +1 -0
  128. package/dist/parsers/FullNameParser.d.ts +1 -0
  129. package/dist/parsers/FullNameParser.js +6 -1
  130. package/dist/parsers/FullNameParser.js.map +1 -1
  131. package/dist/parsers/IdentifierDecorator.d.ts +9 -0
  132. package/dist/parsers/IdentifierDecorator.js +17 -0
  133. package/dist/parsers/IdentifierDecorator.js.map +1 -0
  134. package/dist/parsers/InsertQueryParser.js +1 -1
  135. package/dist/parsers/JoinClauseParser.d.ts +0 -2
  136. package/dist/parsers/JoinClauseParser.js +12 -34
  137. package/dist/parsers/JoinClauseParser.js.map +1 -1
  138. package/dist/parsers/JoinOnClauseParser.d.ts +8 -0
  139. package/dist/parsers/JoinOnClauseParser.js +21 -0
  140. package/dist/parsers/JoinOnClauseParser.js.map +1 -0
  141. package/dist/parsers/JoinUsingClauseParser.d.ts +8 -0
  142. package/dist/parsers/JoinUsingClauseParser.js +23 -0
  143. package/dist/parsers/JoinUsingClauseParser.js.map +1 -0
  144. package/dist/parsers/LimitClauseParser.js +1 -13
  145. package/dist/parsers/LimitClauseParser.js.map +1 -1
  146. package/dist/parsers/OffsetClauseParser.d.ts +9 -0
  147. package/dist/parsers/OffsetClauseParser.js +42 -0
  148. package/dist/parsers/OffsetClauseParser.js.map +1 -0
  149. package/dist/parsers/ParameterDecorator.d.ts +20 -0
  150. package/dist/parsers/ParameterDecorator.js +40 -0
  151. package/dist/parsers/ParameterDecorator.js.map +1 -0
  152. package/dist/parsers/SelectClauseParser.d.ts +19 -2
  153. package/dist/parsers/SelectClauseParser.js +28 -4
  154. package/dist/parsers/SelectClauseParser.js.map +1 -1
  155. package/dist/parsers/SelectQueryParser.js +40 -13
  156. package/dist/parsers/SelectQueryParser.js.map +1 -1
  157. package/dist/parsers/SourceParser.js +17 -13
  158. package/dist/parsers/SourceParser.js.map +1 -1
  159. package/dist/parsers/SqlPrintTokenParser.d.ts +144 -0
  160. package/dist/parsers/SqlPrintTokenParser.js +1062 -0
  161. package/dist/parsers/SqlPrintTokenParser.js.map +1 -0
  162. package/dist/parsers/SqlTokenizer.js +2 -0
  163. package/dist/parsers/SqlTokenizer.js.map +1 -1
  164. package/dist/parsers/WindowClauseParser.d.ts +3 -3
  165. package/dist/parsers/WindowClauseParser.js +26 -14
  166. package/dist/parsers/WindowClauseParser.js.map +1 -1
  167. package/dist/tokenReaders/BaseTokenReader.js +3 -3
  168. package/dist/tokenReaders/BaseTokenReader.js.map +1 -1
  169. package/dist/tokenReaders/CommandTokenReader.js +8 -2
  170. package/dist/tokenReaders/CommandTokenReader.js.map +1 -1
  171. package/dist/tokenReaders/EscapedIdentifierTokenReader.d.ts +15 -0
  172. package/dist/tokenReaders/EscapedIdentifierTokenReader.js +58 -0
  173. package/dist/tokenReaders/EscapedIdentifierTokenReader.js.map +1 -0
  174. package/dist/tokenReaders/IdentifierTokenReader.d.ts +0 -4
  175. package/dist/tokenReaders/IdentifierTokenReader.js +0 -36
  176. package/dist/tokenReaders/IdentifierTokenReader.js.map +1 -1
  177. package/dist/tokenReaders/LiteralTokenReader.d.ts +15 -2
  178. package/dist/tokenReaders/LiteralTokenReader.js +23 -6
  179. package/dist/tokenReaders/LiteralTokenReader.js.map +1 -1
  180. package/dist/transformers/CTECollector.js +9 -10
  181. package/dist/transformers/CTECollector.js.map +1 -1
  182. package/dist/transformers/CTEDisabler.js +9 -8
  183. package/dist/transformers/CTEDisabler.js.map +1 -1
  184. package/dist/transformers/CTEInjector.js +2 -2
  185. package/dist/transformers/Formatter.d.ts +8 -105
  186. package/dist/transformers/Formatter.js +20 -647
  187. package/dist/transformers/Formatter.js.map +1 -1
  188. package/dist/transformers/LinePrinter.d.ts +41 -0
  189. package/dist/transformers/LinePrinter.js +86 -0
  190. package/dist/transformers/LinePrinter.js.map +1 -0
  191. package/dist/transformers/QueryBuilder.js +8 -18
  192. package/dist/transformers/QueryBuilder.js.map +1 -1
  193. package/dist/transformers/SelectableColumnCollector.d.ts +2 -0
  194. package/dist/transformers/SelectableColumnCollector.js +25 -8
  195. package/dist/transformers/SelectableColumnCollector.js.map +1 -1
  196. package/dist/transformers/SqlFormatter.d.ts +40 -0
  197. package/dist/transformers/SqlFormatter.js +35 -0
  198. package/dist/transformers/SqlFormatter.js.map +1 -0
  199. package/dist/transformers/SqlOutputToken.d.ts +6 -0
  200. package/dist/transformers/SqlOutputToken.js +13 -0
  201. package/dist/transformers/SqlOutputToken.js.map +1 -0
  202. package/dist/transformers/SqlPrinter.d.ts +54 -0
  203. package/dist/transformers/SqlPrinter.js +148 -0
  204. package/dist/transformers/SqlPrinter.js.map +1 -0
  205. package/dist/transformers/TableSourceCollector.d.ts +2 -0
  206. package/dist/transformers/TableSourceCollector.js +30 -14
  207. package/dist/transformers/TableSourceCollector.js.map +1 -1
  208. package/dist/utils/stringUtils.js +17 -0
  209. package/dist/utils/stringUtils.js.map +1 -1
  210. package/package.json +2 -1
@@ -23,6 +23,8 @@ const ForClauseParser_1 = require("./ForClauseParser");
23
23
  const SqlTokenizer_1 = require("./SqlTokenizer");
24
24
  const WithClauseParser_1 = require("./WithClauseParser");
25
25
  const ValuesQueryParser_1 = require("./ValuesQueryParser");
26
+ const FetchClauseParser_1 = require("./FetchClauseParser");
27
+ const OffsetClauseParser_1 = require("./OffsetClauseParser");
26
28
  class SelectQueryParser {
27
29
  // Parse SQL string to AST (was: parse)
28
30
  static parse(query) {
@@ -92,58 +94,70 @@ class SelectQueryParser {
92
94
  let idx = index;
93
95
  let withClauseResult = null;
94
96
  // Parse optional WITH clause
95
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'with') {
97
+ if (idx < lexemes.length && lexemes[idx].value === 'with') {
96
98
  withClauseResult = WithClauseParser_1.WithClauseParser.parseFromLexeme(lexemes, idx);
97
99
  idx = withClauseResult.newIndex;
98
100
  }
99
101
  // Parse SELECT clause (required)
100
- if (idx >= lexemes.length || lexemes[idx].value.toLowerCase() !== 'select') {
102
+ if (idx >= lexemes.length || lexemes[idx].value !== 'select') {
101
103
  throw new Error(`Syntax error at position ${idx}: Expected 'SELECT' keyword but found "${idx < lexemes.length ? lexemes[idx].value : 'end of input'}". SELECT queries must start with the SELECT keyword.`);
102
104
  }
103
105
  const selectClauseResult = SelectClauseParser_1.SelectClauseParser.parseFromLexeme(lexemes, idx);
104
106
  idx = selectClauseResult.newIndex;
105
107
  // Parse FROM clause (optional)
106
108
  let fromClauseResult = null;
107
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'from') {
109
+ if (idx < lexemes.length && lexemes[idx].value === 'from') {
108
110
  fromClauseResult = FromClauseParser_1.FromClauseParser.parseFromLexeme(lexemes, idx);
109
111
  idx = fromClauseResult.newIndex;
110
112
  }
111
113
  // Parse WHERE clause (optional)
112
114
  let whereClauseResult = null;
113
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'where') {
115
+ if (idx < lexemes.length && lexemes[idx].value === 'where') {
114
116
  whereClauseResult = WhereClauseParser_1.WhereClauseParser.parseFromLexeme(lexemes, idx);
115
117
  idx = whereClauseResult.newIndex;
116
118
  }
117
119
  // Parse GROUP BY clause (optional)
118
120
  let groupByClauseResult = null;
119
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'group by') {
121
+ if (idx < lexemes.length && lexemes[idx].value === 'group by') {
120
122
  groupByClauseResult = GroupByParser_1.GroupByClauseParser.parseFromLexeme(lexemes, idx);
121
123
  idx = groupByClauseResult.newIndex;
122
124
  }
123
125
  // Parse HAVING clause (optional)
124
126
  let havingClauseResult = null;
125
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'having') {
127
+ if (idx < lexemes.length && lexemes[idx].value === 'having') {
126
128
  havingClauseResult = HavingParser_1.HavingClauseParser.parseFromLexeme(lexemes, idx);
127
129
  idx = havingClauseResult.newIndex;
128
130
  }
129
131
  // Parse WINDOW clause (optional)
130
- let windowFrameClauseResult = null;
131
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'window') {
132
- windowFrameClauseResult = WindowClauseParser_1.WindowClauseParser.parseFromLexeme(lexemes, idx);
133
- idx = windowFrameClauseResult.newIndex;
132
+ let windowClauseResult = null;
133
+ if (idx < lexemes.length && lexemes[idx].value === 'window') {
134
+ windowClauseResult = WindowClauseParser_1.WindowClauseParser.parseFromLexeme(lexemes, idx);
135
+ idx = windowClauseResult.newIndex;
134
136
  }
135
137
  // Parse ORDER BY clause (optional)
136
138
  let orderByClauseResult = null;
137
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'order by') {
139
+ if (idx < lexemes.length && lexemes[idx].value === 'order by') {
138
140
  orderByClauseResult = OrderByClauseParser_1.OrderByClauseParser.parseFromLexeme(lexemes, idx);
139
141
  idx = orderByClauseResult.newIndex;
140
142
  }
141
143
  // Parse LIMIT clause (optional)
142
144
  let limitClauseResult = null;
143
- if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'limit') {
145
+ if (idx < lexemes.length && lexemes[idx].value === 'limit') {
144
146
  limitClauseResult = LimitClauseParser_1.LimitClauseParser.parseFromLexeme(lexemes, idx);
145
147
  idx = limitClauseResult.newIndex;
146
148
  }
149
+ // Parse OFFSET clause (optional)
150
+ let offsetClauseResult = null;
151
+ if (idx < lexemes.length && lexemes[idx].value === 'offset') {
152
+ offsetClauseResult = OffsetClauseParser_1.OffsetClauseParser.parseFromLexeme(lexemes, idx);
153
+ idx = offsetClauseResult.newIndex;
154
+ }
155
+ // Parse FETCH clause (optional)
156
+ let fetchClauseResult = null;
157
+ if (idx < lexemes.length && lexemes[idx].value === 'fetch') {
158
+ fetchClauseResult = FetchClauseParser_1.FetchClauseParser.parseFromLexeme(lexemes, idx);
159
+ idx = fetchClauseResult.newIndex;
160
+ }
147
161
  // Parse FOR clause (optional)
148
162
  let forClauseResult = null;
149
163
  if (idx < lexemes.length && lexemes[idx].value.toLowerCase() === 'for') {
@@ -151,7 +165,20 @@ class SelectQueryParser {
151
165
  idx = forClauseResult.newIndex;
152
166
  }
153
167
  // Create and return the SelectQuery object
154
- const selectQuery = new SelectQuery_1.SimpleSelectQuery(withClauseResult ? withClauseResult.value : null, selectClauseResult.value, fromClauseResult ? fromClauseResult.value : null, whereClauseResult ? whereClauseResult.value : null, groupByClauseResult ? groupByClauseResult.value : null, havingClauseResult ? havingClauseResult.value : null, orderByClauseResult ? orderByClauseResult.value : null, windowFrameClauseResult ? windowFrameClauseResult.value : null, limitClauseResult ? limitClauseResult.value : null, forClauseResult ? forClauseResult.value : null);
168
+ const selectQuery = new SelectQuery_1.SimpleSelectQuery({
169
+ withClause: withClauseResult ? withClauseResult.value : null,
170
+ selectClause: selectClauseResult.value,
171
+ fromClause: fromClauseResult ? fromClauseResult.value : null,
172
+ whereClause: whereClauseResult ? whereClauseResult.value : null,
173
+ groupByClause: groupByClauseResult ? groupByClauseResult.value : null,
174
+ havingClause: havingClauseResult ? havingClauseResult.value : null,
175
+ orderByClause: orderByClauseResult ? orderByClauseResult.value : null,
176
+ windowClause: windowClauseResult ? windowClauseResult.value : null,
177
+ limitClause: limitClauseResult ? limitClauseResult.value : null,
178
+ offsetClause: offsetClauseResult ? offsetClauseResult.value : null,
179
+ fetchClause: fetchClauseResult ? fetchClauseResult.value : null,
180
+ forClause: forClauseResult ? forClauseResult.value : null
181
+ });
155
182
  return { value: selectQuery, newIndex: idx };
156
183
  }
157
184
  static parseValuesQuery(lexemes, index) {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectQueryParser.js","sourceRoot":"","sources":["../../src/parsers/SelectQueryParser.ts"],"names":[],"mappings":"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"}
@@ -31,34 +31,38 @@ class SourceParser {
31
31
  * @returns An object containing the parsed TableSource and the new index.
32
32
  */
33
33
  static parseTableSourceFromLexemes(lexemes, index) {
34
- return this.parseTableSource(lexemes, index);
34
+ const fullNameResult = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, index);
35
+ return this.parseTableSource(fullNameResult);
35
36
  }
36
37
  // Parse from lexeme array (was: parse)
37
38
  static parseFromLexeme(lexemes, index) {
38
- const idx = index;
39
+ let idx = index;
39
40
  // Handle subquery
40
41
  if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.OpenParen)) {
41
42
  return this.parseParenSource(lexemes, idx);
42
43
  }
43
- // Handle function-based source
44
- if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.Function)) {
45
- return this.parseFunctionSource(lexemes, idx);
44
+ // Retrieve the full name only once and reuse the result
45
+ const fullNameResult = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, idx);
46
+ // Handle function-based source (determine by lastTokenType)
47
+ if (fullNameResult.lastTokenType & Lexeme_1.TokenType.Function) {
48
+ // Also use fullNameResult as argument for parseFunctionSource
49
+ return SourceParser.parseFunctionSource(lexemes, fullNameResult);
46
50
  }
47
51
  // Handle table source (regular table, potentially schema-qualified)
48
- return this.parseTableSource(lexemes, idx);
52
+ return SourceParser.parseTableSource(fullNameResult);
49
53
  }
50
- static parseTableSource(lexemes, index) {
51
- const { namespaces, name, newIndex } = FullNameParser_1.FullNameParser.parseFromLexeme(lexemes, index);
54
+ static parseTableSource(fullNameResult) {
55
+ const { namespaces, name, newIndex } = fullNameResult;
52
56
  const value = new Clause_1.TableSource(namespaces, name.name);
53
57
  return { value, newIndex };
54
58
  }
55
- static parseFunctionSource(lexemes, index) {
56
- let idx = index;
57
- const functionName = lexemes[idx].value;
58
- idx++;
59
+ static parseFunctionSource(lexemes, fullNameResult) {
60
+ let idx = fullNameResult.newIndex;
61
+ const { namespaces, name } = fullNameResult;
59
62
  const argument = ValueParser_1.ValueParser.parseArgument(Lexeme_1.TokenType.OpenParen, Lexeme_1.TokenType.CloseParen, lexemes, idx);
60
63
  idx = argument.newIndex;
61
- const result = new Clause_1.FunctionSource(functionName, argument.value);
64
+ const functionName = name.name;
65
+ const result = new Clause_1.FunctionSource({ namespaces: namespaces, name: functionName }, argument.value);
62
66
  return { value: result, newIndex: idx };
63
67
  }
64
68
  static parseParenSource(lexemes, index) {
@@ -1 +1 @@
1
- {"version":3,"file":"SourceParser.js","sourceRoot":"","sources":["../../src/parsers/SourceParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceParser.js","sourceRoot":"","sources":["../../src/parsers/SourceParser.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,6CAAgG;AAChG,6CAAqD;AACrD,2DAAwD;AACxD,iDAA8C;AAC9C,+CAA4C;AAE5C,MAAa,YAAY;IACrB,uCAAuC;IAChC,MAAM,CAAC,KAAK,CAAC,KAAa;QAC7B,MAAM,SAAS,GAAG,IAAI,2BAAY,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB;QAClE,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,aAAa;QAErD,QAAQ;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAEhD,sCAAsC;QACtC,IAAI,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,iBAAiB,MAAM,CAAC,QAAQ,qEAAqE,CAAC,CAAC;QAC5L,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,2BAA2B,CAAC,OAAiB,EAAE,KAAa;QACtE,MAAM,cAAc,GAAG,+BAAc,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAED,uCAAuC;IAChC,MAAM,CAAC,eAAe,CAAC,OAAiB,EAAE,KAAa;QAC1D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,kBAAkB;QAClB,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,kBAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,wDAAwD;QACxD,MAAM,cAAc,GAAG,+BAAc,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEpE,4DAA4D;QAC5D,IAAI,cAAc,CAAC,aAAa,GAAG,kBAAS,CAAC,QAAQ,EAAE,CAAC;YACpD,8DAA8D;YAC9D,OAAO,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrE,CAAC;QAED,oEAAoE;QACpE,OAAO,YAAY,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,cAA4E;QACxG,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,oBAAW,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAC9B,OAAiB,EACjB,cAA4E;QAE5E,IAAI,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC;QAClC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC;QAE5C,MAAM,QAAQ,GAAG,yBAAW,CAAC,aAAa,CAAC,kBAAS,CAAC,SAAS,EAAE,kBAAS,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACpG,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAExB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClG,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC5C,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,OAAiB,EAAE,KAAa;QAC5D,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,4BAA4B;QAC5B,GAAG,EAAE,CAAC;QACN,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,qDAAqD,GAAG,uEAAuE,CAAC,CAAC;QACrJ,CAAC;QAED,+CAA+C;QAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACnC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACtD,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YACtB,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,kBAAS,CAAC,UAAU,EAAE,CAAC;gBACpE,+BAA+B;gBAC/B,GAAG,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,mGAAmG,CAAC,CAAC;YACxJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAClD,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,kBAAS,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnD,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC;YACtB,IAAI,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,kBAAS,CAAC,UAAU,EAAE,CAAC;gBACpE,+BAA+B;gBAC/B,GAAG,EAAE,CAAC;YACV,CAAC;iBAAM,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,mGAAmG,CAAC,CAAC;YACxJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;QAClD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,wFAAwF,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACnK,CAAC;IAEO,MAAM,CAAC,mBAAmB,CAAC,OAAiB,EAAE,KAAa;QAC/D,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,gEAAgE;QAChE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,qCAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACzF,GAAG,GAAG,QAAQ,CAAC;QAEf,MAAM,cAAc,GAAG,IAAI,uBAAc,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IACpD,CAAC;CACJ;AAxHD,oCAwHC"}
@@ -0,0 +1,144 @@
1
+ import { FromClause, JoinClause, JoinOnClause, JoinUsingClause, FunctionSource, SourceAliasExpression, WhereClause, GroupByClause, HavingClause, SubQuerySource, WindowFrameClause, LimitClause, ForClause, OffsetClause, WindowsClause as WindowClause, CommonTable, WithClause, FetchClause, FetchExpression, UpdateClause, SetClause, ReturningClause, SetClauseItem } from "../models/Clause";
2
+ import { SimpleSelectQuery, ValuesQuery } from "../models/SelectQuery";
3
+ import { SqlComponent, SqlComponentVisitor } from "../models/SqlComponent";
4
+ import { SqlPrintToken } from "../models/SqlPrintToken";
5
+ import { InlineQuery } from "../models/ValueComponent";
6
+ import { IdentifierDecorator } from "./IdentifierDecorator";
7
+ import { ParameterDecorator } from "./ParameterDecorator";
8
+ import { CreateTableQuery } from "../models/CreateTableQuery";
9
+ export declare enum ParameterStyle {
10
+ Anonymous = "anonymous",
11
+ Indexed = "indexed",
12
+ Named = "named"
13
+ }
14
+ export interface FormatterConfig {
15
+ identifierEscape?: {
16
+ start: string;
17
+ end: string;
18
+ };
19
+ parameterSymbol?: string | {
20
+ start: string;
21
+ end: string;
22
+ };
23
+ /**
24
+ * Parameter style: anonymous (?), indexed ($1), or named (:name)
25
+ */
26
+ parameterStyle?: ParameterStyle;
27
+ }
28
+ export declare const PRESETS: Record<string, FormatterConfig>;
29
+ export declare class SqlPrintTokenParser implements SqlComponentVisitor<SqlPrintToken> {
30
+ private static readonly SPACE_TOKEN;
31
+ private static readonly COMMA_TOKEN;
32
+ private static readonly ARGUMENT_SPLIT_COMMA_TOKEN;
33
+ private static readonly PAREN_OPEN_TOKEN;
34
+ private static readonly PAREN_CLOSE_TOKEN;
35
+ private static readonly DOT_TOKEN;
36
+ private handlers;
37
+ parameterDecorator: ParameterDecorator;
38
+ identifierDecorator: IdentifierDecorator;
39
+ index: number;
40
+ constructor(options?: {
41
+ preset?: FormatterConfig;
42
+ identifierEscape?: {
43
+ start: string;
44
+ end: string;
45
+ };
46
+ parameterSymbol?: string | {
47
+ start: string;
48
+ end: string;
49
+ };
50
+ parameterStyle?: 'anonymous' | 'indexed' | 'named';
51
+ });
52
+ /**
53
+ * Pretty-prints a BinarySelectQuery (e.g., UNION, INTERSECT, EXCEPT).
54
+ * This will recursively print left and right queries, separated by the operator.
55
+ * @param arg BinarySelectQuery
56
+ */
57
+ private visitBinarySelectQuery;
58
+ /**
59
+ * Returns an array of tokens representing a comma followed by a space.
60
+ * This is a common pattern in SQL pretty-printing.
61
+ */
62
+ private static commaSpaceTokens;
63
+ private static argumentCommaSpaceTokens;
64
+ private visitQualifiedName;
65
+ private visitPartitionByClause;
66
+ private visitOrderByClause;
67
+ /**
68
+ * Print an OrderByItem (expression [asc|desc] [nulls first|last])
69
+ */
70
+ private visitOrderByItem;
71
+ parse(arg: SqlComponent): {
72
+ token: SqlPrintToken;
73
+ params: any[] | Record<string, any>[] | Record<string, any>;
74
+ };
75
+ visit(arg: SqlComponent): SqlPrintToken;
76
+ private visitValueList;
77
+ private visitColumnReference;
78
+ private visitFunctionCall;
79
+ private visitUnaryExpression;
80
+ private visitBinaryExpression;
81
+ private visitLiteralValue;
82
+ private visitParameterExpression;
83
+ private visitSwitchCaseArgument;
84
+ private createElseToken;
85
+ private visitCaseKeyValuePair;
86
+ private visitRawString;
87
+ private visitIdentifierString;
88
+ private visitParenExpression;
89
+ private visitCastExpression;
90
+ private visitCaseExpression;
91
+ private visitArrayExpression;
92
+ private visitBetweenExpression;
93
+ private visitStringSpecifierExpression;
94
+ private visitTypeValue;
95
+ private visitTupleExpression;
96
+ private visitWindowFrameExpression;
97
+ private visitWindowFrameSpec;
98
+ /**
99
+ * Prints a window frame boundary value, such as "5 preceding" or "3 following".
100
+ * @param arg WindowFrameBoundaryValue
101
+ */
102
+ private visitWindowFrameBoundaryValue;
103
+ /**
104
+ * Prints a static window frame bound, such as "unbounded preceding", "current row", or "unbounded following".
105
+ * @param arg WindowFrameBoundStatic
106
+ */
107
+ private visitWindowFrameBoundStatic;
108
+ private visitSelectItem;
109
+ private visitSelectClause;
110
+ private visitDistinct;
111
+ private visitDistinctOn;
112
+ private visitTableSource;
113
+ private visitSourceExpression;
114
+ visitFromClause(arg: FromClause): SqlPrintToken;
115
+ visitJoinClause(arg: JoinClause): SqlPrintToken;
116
+ visitJoinOnClause(arg: JoinOnClause): SqlPrintToken;
117
+ visitJoinUsingClause(arg: JoinUsingClause): SqlPrintToken;
118
+ visitFunctionSource(arg: FunctionSource): SqlPrintToken;
119
+ visitSourceAliasExpression(arg: SourceAliasExpression): SqlPrintToken;
120
+ visitWhereClause(arg: WhereClause): SqlPrintToken;
121
+ visitGroupByClause(arg: GroupByClause): SqlPrintToken;
122
+ visitHavingClause(arg: HavingClause): SqlPrintToken;
123
+ visitWindowClause(arg: WindowClause): SqlPrintToken;
124
+ visitWindowFrameClause(arg: WindowFrameClause): SqlPrintToken;
125
+ visitLimitClause(arg: LimitClause): SqlPrintToken;
126
+ visitOffsetClause(arg: OffsetClause): SqlPrintToken;
127
+ visitFetchClause(arg: FetchClause): SqlPrintToken;
128
+ visitFetchExpression(arg: FetchExpression): SqlPrintToken;
129
+ visitForClause(arg: ForClause): SqlPrintToken;
130
+ visitWithClause(arg: WithClause): SqlPrintToken;
131
+ visitCommonTable(arg: CommonTable): SqlPrintToken;
132
+ visitSimpleQuery(arg: SimpleSelectQuery): SqlPrintToken;
133
+ visitSubQuerySource(arg: SubQuerySource): SqlPrintToken;
134
+ visitValuesQuery(arg: ValuesQuery): SqlPrintToken;
135
+ visitInlineQuery(arg: InlineQuery): SqlPrintToken;
136
+ private visitInsertQuery;
137
+ private visitInsertClause;
138
+ private visitUpdateQuery;
139
+ visitUpdateClause(arg: UpdateClause): SqlPrintToken;
140
+ visitSetClause(arg: SetClause): SqlPrintToken;
141
+ visitSetClauseItem(arg: SetClauseItem): SqlPrintToken;
142
+ visitReturningClause(arg: ReturningClause): SqlPrintToken;
143
+ visitCreateTableQuery(arg: CreateTableQuery): SqlPrintToken;
144
+ }