rawsql-ts 0.11.36-beta → 0.11.38-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 (140) hide show
  1. package/dist/esm/index.js.map +1 -1
  2. package/dist/esm/index.min.js +54 -50
  3. package/dist/esm/index.min.js.map +3 -3
  4. package/dist/esm/src/index.d.ts +1 -0
  5. package/dist/esm/src/index.js.map +1 -1
  6. package/dist/esm/src/models/Lexeme.d.ts +8 -0
  7. package/dist/esm/src/models/SqlComponent.d.ts +20 -0
  8. package/dist/esm/src/models/SqlComponent.js +46 -0
  9. package/dist/esm/src/models/SqlComponent.js.map +1 -1
  10. package/dist/esm/src/parsers/CommandExpressionParser.d.ts +9 -0
  11. package/dist/esm/src/parsers/CommandExpressionParser.js +118 -14
  12. package/dist/esm/src/parsers/CommandExpressionParser.js.map +1 -1
  13. package/dist/esm/src/parsers/CommonTableParser.d.ts +8 -0
  14. package/dist/esm/src/parsers/CommonTableParser.js +127 -35
  15. package/dist/esm/src/parsers/CommonTableParser.js.map +1 -1
  16. package/dist/esm/src/parsers/FromClauseParser.js +2 -2
  17. package/dist/esm/src/parsers/FromClauseParser.js.map +1 -1
  18. package/dist/esm/src/parsers/FullNameParser.js +13 -1
  19. package/dist/esm/src/parsers/FullNameParser.js.map +1 -1
  20. package/dist/esm/src/parsers/FunctionExpressionParser.js +37 -3
  21. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  22. package/dist/esm/src/parsers/JoinClauseParser.d.ts +4 -0
  23. package/dist/esm/src/parsers/JoinClauseParser.js +54 -20
  24. package/dist/esm/src/parsers/JoinClauseParser.js.map +1 -1
  25. package/dist/esm/src/parsers/OrderByClauseParser.js +39 -8
  26. package/dist/esm/src/parsers/OrderByClauseParser.js.map +1 -1
  27. package/dist/esm/src/parsers/ParenExpressionParser.js +1 -1
  28. package/dist/esm/src/parsers/ParenExpressionParser.js.map +1 -1
  29. package/dist/esm/src/parsers/SelectClauseParser.d.ts +10 -0
  30. package/dist/esm/src/parsers/SelectClauseParser.js +124 -12
  31. package/dist/esm/src/parsers/SelectClauseParser.js.map +1 -1
  32. package/dist/esm/src/parsers/SelectQueryParser.d.ts +12 -0
  33. package/dist/esm/src/parsers/SelectQueryParser.js +277 -115
  34. package/dist/esm/src/parsers/SelectQueryParser.js.map +1 -1
  35. package/dist/esm/src/parsers/SourceAliasExpressionParser.js +15 -4
  36. package/dist/esm/src/parsers/SourceAliasExpressionParser.js.map +1 -1
  37. package/dist/esm/src/parsers/SourceParser.js +33 -2
  38. package/dist/esm/src/parsers/SourceParser.js.map +1 -1
  39. package/dist/esm/src/parsers/SqlPrintTokenParser.d.ts +62 -0
  40. package/dist/esm/src/parsers/SqlPrintTokenParser.js +700 -32
  41. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  42. package/dist/esm/src/parsers/SqlTokenizer.d.ts +1 -4
  43. package/dist/esm/src/parsers/SqlTokenizer.js +108 -52
  44. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  45. package/dist/esm/src/parsers/ValueParser.d.ts +4 -0
  46. package/dist/esm/src/parsers/ValueParser.js +119 -20
  47. package/dist/esm/src/parsers/ValueParser.js.map +1 -1
  48. package/dist/esm/src/parsers/WithClauseParser.d.ts +4 -0
  49. package/dist/esm/src/parsers/WithClauseParser.js +64 -35
  50. package/dist/esm/src/parsers/WithClauseParser.js.map +1 -1
  51. package/dist/esm/src/tokenReaders/CommandTokenReader.js +9 -1
  52. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  53. package/dist/esm/src/transformers/CTEQueryDecomposer.d.ts +69 -0
  54. package/dist/esm/src/transformers/CTEQueryDecomposer.js +123 -0
  55. package/dist/esm/src/transformers/CTEQueryDecomposer.js.map +1 -1
  56. package/dist/esm/src/transformers/LinePrinter.d.ts +17 -2
  57. package/dist/esm/src/transformers/LinePrinter.js +39 -10
  58. package/dist/esm/src/transformers/LinePrinter.js.map +1 -1
  59. package/dist/esm/src/transformers/SqlFormatter.d.ts +44 -16
  60. package/dist/esm/src/transformers/SqlFormatter.js +2 -2
  61. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  62. package/dist/esm/src/transformers/SqlPrinter.d.ts +30 -20
  63. package/dist/esm/src/transformers/SqlPrinter.js +119 -25
  64. package/dist/esm/src/transformers/SqlPrinter.js.map +1 -1
  65. package/dist/esm/src/utils/CommentEditor.d.ts +12 -5
  66. package/dist/esm/src/utils/CommentEditor.js +67 -28
  67. package/dist/esm/src/utils/CommentEditor.js.map +1 -1
  68. package/dist/esm/src/utils/stringUtils.js +21 -9
  69. package/dist/esm/src/utils/stringUtils.js.map +1 -1
  70. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  71. package/dist/index.min.js +54 -50
  72. package/dist/index.min.js.map +3 -3
  73. package/dist/src/index.d.ts +1 -0
  74. package/dist/src/index.js.map +1 -1
  75. package/dist/src/models/Lexeme.d.ts +8 -0
  76. package/dist/src/models/SqlComponent.d.ts +20 -0
  77. package/dist/src/models/SqlComponent.js +46 -0
  78. package/dist/src/models/SqlComponent.js.map +1 -1
  79. package/dist/src/parsers/CommandExpressionParser.d.ts +9 -0
  80. package/dist/src/parsers/CommandExpressionParser.js +118 -14
  81. package/dist/src/parsers/CommandExpressionParser.js.map +1 -1
  82. package/dist/src/parsers/CommonTableParser.d.ts +8 -0
  83. package/dist/src/parsers/CommonTableParser.js +127 -35
  84. package/dist/src/parsers/CommonTableParser.js.map +1 -1
  85. package/dist/src/parsers/FromClauseParser.js +2 -2
  86. package/dist/src/parsers/FromClauseParser.js.map +1 -1
  87. package/dist/src/parsers/FullNameParser.js +13 -1
  88. package/dist/src/parsers/FullNameParser.js.map +1 -1
  89. package/dist/src/parsers/FunctionExpressionParser.js +37 -3
  90. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  91. package/dist/src/parsers/JoinClauseParser.d.ts +4 -0
  92. package/dist/src/parsers/JoinClauseParser.js +54 -20
  93. package/dist/src/parsers/JoinClauseParser.js.map +1 -1
  94. package/dist/src/parsers/OrderByClauseParser.js +39 -8
  95. package/dist/src/parsers/OrderByClauseParser.js.map +1 -1
  96. package/dist/src/parsers/ParenExpressionParser.js +1 -1
  97. package/dist/src/parsers/ParenExpressionParser.js.map +1 -1
  98. package/dist/src/parsers/SelectClauseParser.d.ts +10 -0
  99. package/dist/src/parsers/SelectClauseParser.js +124 -12
  100. package/dist/src/parsers/SelectClauseParser.js.map +1 -1
  101. package/dist/src/parsers/SelectQueryParser.d.ts +12 -0
  102. package/dist/src/parsers/SelectQueryParser.js +280 -115
  103. package/dist/src/parsers/SelectQueryParser.js.map +1 -1
  104. package/dist/src/parsers/SourceAliasExpressionParser.js +15 -4
  105. package/dist/src/parsers/SourceAliasExpressionParser.js.map +1 -1
  106. package/dist/src/parsers/SourceParser.js +33 -2
  107. package/dist/src/parsers/SourceParser.js.map +1 -1
  108. package/dist/src/parsers/SqlPrintTokenParser.d.ts +62 -0
  109. package/dist/src/parsers/SqlPrintTokenParser.js +700 -32
  110. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  111. package/dist/src/parsers/SqlTokenizer.d.ts +1 -4
  112. package/dist/src/parsers/SqlTokenizer.js +108 -52
  113. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  114. package/dist/src/parsers/ValueParser.d.ts +4 -0
  115. package/dist/src/parsers/ValueParser.js +119 -20
  116. package/dist/src/parsers/ValueParser.js.map +1 -1
  117. package/dist/src/parsers/WithClauseParser.d.ts +4 -0
  118. package/dist/src/parsers/WithClauseParser.js +64 -35
  119. package/dist/src/parsers/WithClauseParser.js.map +1 -1
  120. package/dist/src/tokenReaders/CommandTokenReader.js +9 -1
  121. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  122. package/dist/src/transformers/CTEQueryDecomposer.d.ts +69 -0
  123. package/dist/src/transformers/CTEQueryDecomposer.js +123 -0
  124. package/dist/src/transformers/CTEQueryDecomposer.js.map +1 -1
  125. package/dist/src/transformers/LinePrinter.d.ts +17 -2
  126. package/dist/src/transformers/LinePrinter.js +39 -10
  127. package/dist/src/transformers/LinePrinter.js.map +1 -1
  128. package/dist/src/transformers/SqlFormatter.d.ts +44 -16
  129. package/dist/src/transformers/SqlFormatter.js +13 -2
  130. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  131. package/dist/src/transformers/SqlPrinter.d.ts +30 -20
  132. package/dist/src/transformers/SqlPrinter.js +119 -25
  133. package/dist/src/transformers/SqlPrinter.js.map +1 -1
  134. package/dist/src/utils/CommentEditor.d.ts +12 -5
  135. package/dist/src/utils/CommentEditor.js +67 -28
  136. package/dist/src/utils/CommentEditor.js.map +1 -1
  137. package/dist/src/utils/stringUtils.js +21 -9
  138. package/dist/src/utils/stringUtils.js.map +1 -1
  139. package/dist/tsconfig.tsbuildinfo +1 -1
  140. package/package.json +3 -3
@@ -25,7 +25,7 @@ export class SqlPrinter {
25
25
  * @param options Optional style settings for pretty printing
26
26
  */
27
27
  constructor(options) {
28
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
28
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
29
29
  /** Track whether we are currently inside a WITH clause for full-oneline formatting */
30
30
  this.insideWithClause = false;
31
31
  this.indentChar = (_a = options === null || options === void 0 ? void 0 : options.indentChar) !== null && _a !== void 0 ? _a : '';
@@ -34,14 +34,22 @@ export class SqlPrinter {
34
34
  // This is intentional and differs from the LinePrinter default of '\r\n'.
35
35
  this.newline = (_c = options === null || options === void 0 ? void 0 : options.newline) !== null && _c !== void 0 ? _c : ' ';
36
36
  this.commaBreak = (_d = options === null || options === void 0 ? void 0 : options.commaBreak) !== null && _d !== void 0 ? _d : 'none';
37
- this.andBreak = (_e = options === null || options === void 0 ? void 0 : options.andBreak) !== null && _e !== void 0 ? _e : 'none';
38
- this.keywordCase = (_f = options === null || options === void 0 ? void 0 : options.keywordCase) !== null && _f !== void 0 ? _f : 'none';
39
- this.exportComment = (_g = options === null || options === void 0 ? void 0 : options.exportComment) !== null && _g !== void 0 ? _g : false;
40
- this.strictCommentPlacement = (_h = options === null || options === void 0 ? void 0 : options.strictCommentPlacement) !== null && _h !== void 0 ? _h : false;
41
- this.withClauseStyle = (_j = options === null || options === void 0 ? void 0 : options.withClauseStyle) !== null && _j !== void 0 ? _j : 'standard';
42
- this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline);
37
+ this.cteCommaBreak = (_e = options === null || options === void 0 ? void 0 : options.cteCommaBreak) !== null && _e !== void 0 ? _e : this.commaBreak;
38
+ this.andBreak = (_f = options === null || options === void 0 ? void 0 : options.andBreak) !== null && _f !== void 0 ? _f : 'none';
39
+ this.keywordCase = (_g = options === null || options === void 0 ? void 0 : options.keywordCase) !== null && _g !== void 0 ? _g : 'none';
40
+ this.exportComment = (_h = options === null || options === void 0 ? void 0 : options.exportComment) !== null && _h !== void 0 ? _h : false;
41
+ this.strictCommentPlacement = (_j = options === null || options === void 0 ? void 0 : options.strictCommentPlacement) !== null && _j !== void 0 ? _j : false;
42
+ this.withClauseStyle = (_k = options === null || options === void 0 ? void 0 : options.withClauseStyle) !== null && _k !== void 0 ? _k : 'standard';
43
+ this.commentStyle = (_l = options === null || options === void 0 ? void 0 : options.commentStyle) !== null && _l !== void 0 ? _l : 'block';
44
+ this.parenthesesOneLine = (_m = options === null || options === void 0 ? void 0 : options.parenthesesOneLine) !== null && _m !== void 0 ? _m : false;
45
+ this.betweenOneLine = (_o = options === null || options === void 0 ? void 0 : options.betweenOneLine) !== null && _o !== void 0 ? _o : false;
46
+ this.valuesOneLine = (_p = options === null || options === void 0 ? void 0 : options.valuesOneLine) !== null && _p !== void 0 ? _p : false;
47
+ this.joinOneLine = (_q = options === null || options === void 0 ? void 0 : options.joinOneLine) !== null && _q !== void 0 ? _q : false;
48
+ this.caseOneLine = (_r = options === null || options === void 0 ? void 0 : options.caseOneLine) !== null && _r !== void 0 ? _r : false;
49
+ this.subqueryOneLine = (_s = options === null || options === void 0 ? void 0 : options.subqueryOneLine) !== null && _s !== void 0 ? _s : false;
50
+ this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
43
51
  // Initialize
44
- this.indentIncrementContainers = new Set((_k = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _k !== void 0 ? _k : [
52
+ this.indentIncrementContainers = new Set((_t = options === null || options === void 0 ? void 0 : options.indentIncrementContainerTypes) !== null && _t !== void 0 ? _t : [
45
53
  SqlPrintTokenContainerType.SelectClause,
46
54
  SqlPrintTokenContainerType.FromClause,
47
55
  SqlPrintTokenContainerType.WhereClause,
@@ -80,15 +88,15 @@ export class SqlPrinter {
80
88
  */
81
89
  print(token, level = 0) {
82
90
  // initialize
83
- this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline);
91
+ this.linePrinter = new LinePrinter(this.indentChar, this.indentSize, this.newline, this.commaBreak);
84
92
  this.insideWithClause = false; // Reset WITH clause context
85
93
  if (this.linePrinter.lines.length > 0 && level !== this.linePrinter.lines[0].level) {
86
94
  this.linePrinter.lines[0].level = level;
87
95
  }
88
- this.appendToken(token, level, undefined);
96
+ this.appendToken(token, level, undefined, 0);
89
97
  return this.linePrinter.print();
90
98
  }
91
- appendToken(token, level, parentContainerType) {
99
+ appendToken(token, level, parentContainerType, caseContextDepth = 0) {
92
100
  // Track WITH clause context for full-oneline formatting
93
101
  const wasInsideWithClause = this.insideWithClause;
94
102
  if (token.containerType === SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
@@ -98,15 +106,17 @@ export class SqlPrinter {
98
106
  return;
99
107
  }
100
108
  const current = this.linePrinter.getCurrentLine();
109
+ const isCaseContext = this.isCaseContext(token.containerType);
110
+ const nextCaseContextDepth = isCaseContext ? caseContextDepth + 1 : caseContextDepth;
101
111
  // Handle different token types
102
112
  if (token.type === SqlPrintTokenType.keyword) {
103
- this.handleKeywordToken(token, level);
113
+ this.handleKeywordToken(token, level, parentContainerType, caseContextDepth);
104
114
  }
105
115
  else if (token.type === SqlPrintTokenType.comma) {
106
116
  this.handleCommaToken(token, level, parentContainerType);
107
117
  }
108
118
  else if (token.type === SqlPrintTokenType.operator && token.text.toLowerCase() === 'and') {
109
- this.handleAndOperatorToken(token, level);
119
+ this.handleAndOperatorToken(token, level, parentContainerType, caseContextDepth);
110
120
  }
111
121
  else if (token.containerType === "JoinClause") {
112
122
  this.handleJoinClauseToken(token, level);
@@ -114,6 +124,8 @@ export class SqlPrinter {
114
124
  else if (token.type === SqlPrintTokenType.comment) {
115
125
  // Handle comments as regular tokens - let the standard processing handle everything
116
126
  if (this.exportComment) {
127
+ // Note: Smart comment processing is handled at SqlPrintTokenParser level
128
+ // via positioned comments system, so we don't need additional processing here
117
129
  this.linePrinter.appendText(token.text);
118
130
  }
119
131
  }
@@ -127,6 +139,15 @@ export class SqlPrinter {
127
139
  this.handleCteOnelineToken(token, level);
128
140
  return; // Return early to avoid processing innerTokens
129
141
  }
142
+ else if ((token.containerType === SqlPrintTokenContainerType.ParenExpression && this.parenthesesOneLine) ||
143
+ (token.containerType === SqlPrintTokenContainerType.BetweenExpression && this.betweenOneLine) ||
144
+ (token.containerType === SqlPrintTokenContainerType.Values && this.valuesOneLine) ||
145
+ (token.containerType === SqlPrintTokenContainerType.JoinOnClause && this.joinOneLine) ||
146
+ (token.containerType === SqlPrintTokenContainerType.CaseExpression && this.caseOneLine) ||
147
+ (token.containerType === SqlPrintTokenContainerType.InlineQuery && this.subqueryOneLine)) {
148
+ this.handleOnelineToken(token, level);
149
+ return; // Return early to avoid processing innerTokens
150
+ }
130
151
  else {
131
152
  this.linePrinter.appendText(token.text);
132
153
  }
@@ -134,7 +155,7 @@ export class SqlPrinter {
134
155
  if (token.keywordTokens && token.keywordTokens.length > 0) {
135
156
  for (let i = 0; i < token.keywordTokens.length; i++) {
136
157
  const keywordToken = token.keywordTokens[i];
137
- this.appendToken(keywordToken, level, token.containerType);
158
+ this.appendToken(keywordToken, level, token.containerType, nextCaseContextDepth);
138
159
  }
139
160
  }
140
161
  let innerLevel = level;
@@ -148,7 +169,7 @@ export class SqlPrinter {
148
169
  }
149
170
  for (let i = 0; i < token.innerTokens.length; i++) {
150
171
  const child = token.innerTokens[i];
151
- this.appendToken(child, innerLevel, token.containerType);
172
+ this.appendToken(child, innerLevel, token.containerType, nextCaseContextDepth);
152
173
  }
153
174
  // Exit WITH clause context when we finish processing WithClause container
154
175
  if (token.containerType === SqlPrintTokenContainerType.WithClause && this.withClauseStyle === 'full-oneline') {
@@ -165,6 +186,18 @@ export class SqlPrinter {
165
186
  }
166
187
  }
167
188
  }
189
+ isCaseContext(containerType) {
190
+ switch (containerType) {
191
+ case SqlPrintTokenContainerType.CaseExpression:
192
+ case SqlPrintTokenContainerType.CaseKeyValuePair:
193
+ case SqlPrintTokenContainerType.CaseThenValue:
194
+ case SqlPrintTokenContainerType.CaseElseValue:
195
+ case SqlPrintTokenContainerType.SwitchCaseArgument:
196
+ return true;
197
+ default:
198
+ return false;
199
+ }
200
+ }
168
201
  /**
169
202
  * Determines if a token should be skipped during printing.
170
203
  * Tokens are skipped if they have no content and no inner tokens,
@@ -187,31 +220,47 @@ export class SqlPrinter {
187
220
  }
188
221
  return text;
189
222
  }
190
- handleKeywordToken(token, level) {
223
+ handleKeywordToken(token, level, parentContainerType, caseContextDepth = 0) {
224
+ const lower = token.text.toLowerCase();
225
+ if (lower === 'and' && this.andBreak !== 'none') {
226
+ this.handleAndOperatorToken(token, level, parentContainerType, caseContextDepth);
227
+ return;
228
+ }
191
229
  const text = this.applyKeywordCase(token.text);
230
+ if (caseContextDepth > 0) {
231
+ this.linePrinter.appendText(text);
232
+ return;
233
+ }
192
234
  this.linePrinter.appendText(text);
193
235
  }
194
236
  handleCommaToken(token, level, parentContainerType) {
195
237
  const text = token.text;
238
+ const isWithinWithClause = parentContainerType === SqlPrintTokenContainerType.WithClause;
239
+ const effectiveCommaBreak = isWithinWithClause ? this.cteCommaBreak : this.commaBreak;
196
240
  // Skip comma newlines when inside WITH clause with full-oneline style
197
241
  if (this.insideWithClause && this.withClauseStyle === 'full-oneline') {
198
242
  this.linePrinter.appendText(text);
199
243
  }
200
244
  // Special handling for commas in WithClause when withClauseStyle is 'cte-oneline'
201
- else if (this.withClauseStyle === 'cte-oneline' && parentContainerType === SqlPrintTokenContainerType.WithClause) {
245
+ else if (this.withClauseStyle === 'cte-oneline' && isWithinWithClause) {
202
246
  this.linePrinter.appendText(text);
203
247
  this.linePrinter.appendNewline(level);
204
248
  }
205
- else if (this.commaBreak === 'before') {
206
- // Skip newline when inside WITH clause with full-oneline style
249
+ else if (effectiveCommaBreak === 'before') {
250
+ const previousCommaBreak = this.linePrinter.commaBreak;
251
+ if (previousCommaBreak !== 'before') {
252
+ this.linePrinter.commaBreak = 'before';
253
+ }
207
254
  if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
208
255
  this.linePrinter.appendNewline(level);
209
256
  }
210
257
  this.linePrinter.appendText(text);
258
+ if (previousCommaBreak !== 'before') {
259
+ this.linePrinter.commaBreak = previousCommaBreak;
260
+ }
211
261
  }
212
- else if (this.commaBreak === 'after') {
262
+ else if (effectiveCommaBreak === 'after') {
213
263
  this.linePrinter.appendText(text);
214
- // Skip newline when inside WITH clause with full-oneline style
215
264
  if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
216
265
  this.linePrinter.appendNewline(level);
217
266
  }
@@ -220,8 +269,12 @@ export class SqlPrinter {
220
269
  this.linePrinter.appendText(text);
221
270
  }
222
271
  }
223
- handleAndOperatorToken(token, level) {
272
+ handleAndOperatorToken(token, level, parentContainerType, caseContextDepth = 0) {
224
273
  const text = this.applyKeywordCase(token.text);
274
+ if (caseContextDepth > 0) {
275
+ this.linePrinter.appendText(text);
276
+ return;
277
+ }
225
278
  if (this.andBreak === 'before') {
226
279
  // Skip newline when inside WITH clause with full-oneline style
227
280
  if (!(this.insideWithClause && this.withClauseStyle === 'full-oneline')) {
@@ -254,6 +307,10 @@ export class SqlPrinter {
254
307
  */
255
308
  handleSpaceToken(token, parentContainerType) {
256
309
  if (this.shouldSkipCommentBlockSpace(parentContainerType)) {
310
+ const currentLine = this.linePrinter.getCurrentLine();
311
+ if (currentLine.text !== '' && !currentLine.text.endsWith(' ')) {
312
+ this.linePrinter.appendText(' ');
313
+ }
257
314
  return;
258
315
  }
259
316
  this.linePrinter.appendText(token.text);
@@ -303,8 +360,9 @@ export class SqlPrinter {
303
360
  handleCteOnelineToken(token, level) {
304
361
  const onelinePrinter = this.createCteOnelinePrinter();
305
362
  const onelineResult = onelinePrinter.print(token, level);
306
- const cleanedResult = this.cleanDuplicateSpaces(onelineResult);
307
- this.linePrinter.appendText(cleanedResult);
363
+ let cleanedResult = this.cleanDuplicateSpaces(onelineResult);
364
+ cleanedResult = cleanedResult.replace(/\(\s+/g, '(').replace(/\s+\)/g, ' )');
365
+ this.linePrinter.appendText(cleanedResult.trim());
308
366
  }
309
367
  /**
310
368
  * Creates a SqlPrinter instance configured for CTE oneline formatting.
@@ -315,13 +373,49 @@ export class SqlPrinter {
315
373
  indentSize: 0,
316
374
  newline: ' ',
317
375
  commaBreak: this.commaBreak,
376
+ cteCommaBreak: this.cteCommaBreak,
318
377
  andBreak: this.andBreak,
319
378
  keywordCase: this.keywordCase,
320
- exportComment: this.exportComment,
379
+ exportComment: false,
321
380
  strictCommentPlacement: this.strictCommentPlacement,
322
381
  withClauseStyle: 'standard', // Prevent recursive processing
323
382
  });
324
383
  }
384
+ /**
385
+ * Handles tokens with oneline formatting (parentheses, BETWEEN, VALUES, JOIN, CASE, subqueries).
386
+ * Creates a unified oneline printer that formats everything as one line regardless of content type.
387
+ */
388
+ handleOnelineToken(token, level) {
389
+ const onelinePrinter = this.createOnelinePrinter();
390
+ const onelineResult = onelinePrinter.print(token, level);
391
+ const cleanedResult = this.cleanDuplicateSpaces(onelineResult);
392
+ this.linePrinter.appendText(cleanedResult);
393
+ }
394
+ /**
395
+ * Creates a unified SqlPrinter instance configured for oneline formatting.
396
+ * Works for all oneline options: parentheses, BETWEEN, VALUES, JOIN, CASE, subqueries.
397
+ * Sets all oneline options to false to prevent recursion and uses newline=' ' for actual oneline effect.
398
+ */
399
+ createOnelinePrinter() {
400
+ return new SqlPrinter({
401
+ indentChar: '',
402
+ indentSize: 0,
403
+ newline: ' ', // KEY: Replace all newlines with spaces - this makes everything oneline!
404
+ commaBreak: 'none', // Disable comma-based line breaks
405
+ cteCommaBreak: this.cteCommaBreak,
406
+ andBreak: 'none', // Disable AND/OR-based line breaks
407
+ keywordCase: this.keywordCase,
408
+ exportComment: this.exportComment,
409
+ strictCommentPlacement: this.strictCommentPlacement,
410
+ withClauseStyle: 'standard',
411
+ parenthesesOneLine: false, // Prevent recursive processing (avoid infinite loops)
412
+ betweenOneLine: false, // Prevent recursive processing (avoid infinite loops)
413
+ valuesOneLine: false, // Prevent recursive processing (avoid infinite loops)
414
+ joinOneLine: false, // Prevent recursive processing (avoid infinite loops)
415
+ caseOneLine: false, // Prevent recursive processing (avoid infinite loops)
416
+ subqueryOneLine: false, // Prevent recursive processing (avoid infinite loops)
417
+ });
418
+ }
325
419
  /**
326
420
  * Removes duplicate consecutive spaces while preserving single spaces.
327
421
  * Simple and safe space normalization for CTE oneline mode.
@@ -1 +1 @@
1
- {"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqlPrinter.js","sourceRoot":"","sources":["../../../../src/transformers/SqlPrinter.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,14 @@ import { SqlComponent } from '../models/SqlComponent';
5
5
  */
6
6
  export declare class CommentEditor {
7
7
  /**
8
- * Add a comment to a SQL component
8
+ * Add a comment to a SQL component using positioned comments system
9
9
  * For SelectQuery components, adds to headerComments for query-level comments
10
+ * For other components, adds as 'before' positioned comment
10
11
  * @param component The SQL component to add comment to
11
12
  * @param comment The comment text to add
13
+ * @param position Optional position for comment ('before' | 'after'), defaults to 'before'
12
14
  */
13
- static addComment(component: SqlComponent, comment: string): void;
15
+ static addComment(component: SqlComponent, comment: string, position?: 'before' | 'after'): void;
14
16
  /**
15
17
  * Check if a component implements SelectQuery interface
16
18
  * Uses discriminator property for robust type detection
@@ -21,20 +23,24 @@ export declare class CommentEditor {
21
23
  /**
22
24
  * Edit an existing comment by index
23
25
  * For SelectQuery components, edits headerComments
26
+ * For other components, edits positioned comments
24
27
  * @param component The SQL component containing the comment
25
28
  * @param index The index of the comment to edit (0-based)
26
29
  * @param newComment The new comment text
30
+ * @param position Position to edit ('before' | 'after'), defaults to 'before' for non-SelectQuery components
27
31
  * @throws Error if index is invalid
28
32
  */
29
- static editComment(component: SqlComponent, index: number, newComment: string): void;
33
+ static editComment(component: SqlComponent, index: number, newComment: string, position?: 'before' | 'after'): void;
30
34
  /**
31
35
  * Delete a comment by index
32
36
  * For SelectQuery components, deletes from headerComments
37
+ * For other components, deletes from positioned comments
33
38
  * @param component The SQL component containing the comment
34
39
  * @param index The index of the comment to delete (0-based)
40
+ * @param position Position to delete from ('before' | 'after'), defaults to 'before' for non-SelectQuery components
35
41
  * @throws Error if index is invalid
36
42
  */
37
- static deleteComment(component: SqlComponent, index: number): void;
43
+ static deleteComment(component: SqlComponent, index: number, position?: 'before' | 'after'): void;
38
44
  /**
39
45
  * Delete all comments from a component
40
46
  * @param component The SQL component to clear comments from
@@ -42,7 +48,8 @@ export declare class CommentEditor {
42
48
  static deleteAllComments(component: SqlComponent): void;
43
49
  /**
44
50
  * Get all comments from a component
45
- * For SelectQuery components, returns headerComments instead of regular comments
51
+ * For SelectQuery components, returns headerComments
52
+ * For other components, returns all positioned comments as a flat array
46
53
  * @param component The SQL component to get comments from
47
54
  * @returns Array of comment strings (empty array if no comments)
48
55
  */
@@ -5,12 +5,14 @@ import { SqlComponent } from '../models/SqlComponent';
5
5
  */
6
6
  export class CommentEditor {
7
7
  /**
8
- * Add a comment to a SQL component
8
+ * Add a comment to a SQL component using positioned comments system
9
9
  * For SelectQuery components, adds to headerComments for query-level comments
10
+ * For other components, adds as 'before' positioned comment
10
11
  * @param component The SQL component to add comment to
11
12
  * @param comment The comment text to add
13
+ * @param position Optional position for comment ('before' | 'after'), defaults to 'before'
12
14
  */
13
- static addComment(component, comment) {
15
+ static addComment(component, comment, position = 'before') {
14
16
  // Check if this is a SelectQuery component - add to headerComments for query-level comments
15
17
  if (this.isSelectQuery(component)) {
16
18
  const selectQuery = component;
@@ -20,11 +22,8 @@ export class CommentEditor {
20
22
  selectQuery.headerComments.push(comment);
21
23
  }
22
24
  else {
23
- // For other components, add to regular comments
24
- if (!component.comments) {
25
- component.comments = [];
26
- }
27
- component.comments.push(comment);
25
+ // For other components, add to positioned comments
26
+ component.addPositionedComments(position, [comment]);
28
27
  }
29
28
  }
30
29
  /**
@@ -41,12 +40,14 @@ export class CommentEditor {
41
40
  /**
42
41
  * Edit an existing comment by index
43
42
  * For SelectQuery components, edits headerComments
43
+ * For other components, edits positioned comments
44
44
  * @param component The SQL component containing the comment
45
45
  * @param index The index of the comment to edit (0-based)
46
46
  * @param newComment The new comment text
47
+ * @param position Position to edit ('before' | 'after'), defaults to 'before' for non-SelectQuery components
47
48
  * @throws Error if index is invalid
48
49
  */
49
- static editComment(component, index, newComment) {
50
+ static editComment(component, index, newComment, position = 'before') {
50
51
  var _a, _b;
51
52
  if (this.isSelectQuery(component)) {
52
53
  const selectQuery = component;
@@ -56,21 +57,28 @@ export class CommentEditor {
56
57
  selectQuery.headerComments[index] = newComment;
57
58
  }
58
59
  else {
59
- if (!component.comments || index < 0 || index >= component.comments.length) {
60
- throw new Error(`Invalid comment index: ${index}. Component has ${((_b = component.comments) === null || _b === void 0 ? void 0 : _b.length) || 0} comments.`);
60
+ const positionedComments = component.getPositionedComments(position);
61
+ if (!positionedComments || index < 0 || index >= positionedComments.length) {
62
+ throw new Error(`Invalid comment index: ${index}. Component has ${(positionedComments === null || positionedComments === void 0 ? void 0 : positionedComments.length) || 0} ${position} positioned comments.`);
63
+ }
64
+ // Update the comment in the positioned comments
65
+ const positioned = (_b = component.positionedComments) === null || _b === void 0 ? void 0 : _b.find(pc => pc.position === position);
66
+ if (positioned) {
67
+ positioned.comments[index] = newComment;
61
68
  }
62
- component.comments[index] = newComment;
63
69
  }
64
70
  }
65
71
  /**
66
72
  * Delete a comment by index
67
73
  * For SelectQuery components, deletes from headerComments
74
+ * For other components, deletes from positioned comments
68
75
  * @param component The SQL component containing the comment
69
76
  * @param index The index of the comment to delete (0-based)
77
+ * @param position Position to delete from ('before' | 'after'), defaults to 'before' for non-SelectQuery components
70
78
  * @throws Error if index is invalid
71
79
  */
72
- static deleteComment(component, index) {
73
- var _a, _b;
80
+ static deleteComment(component, index, position = 'before') {
81
+ var _a, _b, _c, _d;
74
82
  if (this.isSelectQuery(component)) {
75
83
  const selectQuery = component;
76
84
  if (!selectQuery.headerComments || index < 0 || index >= selectQuery.headerComments.length) {
@@ -82,12 +90,21 @@ export class CommentEditor {
82
90
  }
83
91
  }
84
92
  else {
85
- if (!component.comments || index < 0 || index >= component.comments.length) {
86
- throw new Error(`Invalid comment index: ${index}. Component has ${((_b = component.comments) === null || _b === void 0 ? void 0 : _b.length) || 0} comments.`);
93
+ const positionedComments = component.getPositionedComments(position);
94
+ if (!positionedComments || index < 0 || index >= positionedComments.length) {
95
+ throw new Error(`Invalid comment index: ${index}. Component has ${(positionedComments === null || positionedComments === void 0 ? void 0 : positionedComments.length) || 0} ${position} positioned comments.`);
87
96
  }
88
- component.comments.splice(index, 1);
89
- if (component.comments.length === 0) {
90
- component.comments = null;
97
+ // Delete the comment from positioned comments
98
+ const positioned = (_b = component.positionedComments) === null || _b === void 0 ? void 0 : _b.find(pc => pc.position === position);
99
+ if (positioned) {
100
+ positioned.comments.splice(index, 1);
101
+ // Clean up empty positioned comment groups
102
+ if (positioned.comments.length === 0) {
103
+ component.positionedComments = ((_c = component.positionedComments) === null || _c === void 0 ? void 0 : _c.filter(pc => pc.position !== position)) || null;
104
+ if (((_d = component.positionedComments) === null || _d === void 0 ? void 0 : _d.length) === 0) {
105
+ component.positionedComments = null;
106
+ }
107
+ }
91
108
  }
92
109
  }
93
110
  }
@@ -101,12 +118,13 @@ export class CommentEditor {
101
118
  selectQuery.headerComments = null;
102
119
  }
103
120
  else {
104
- component.comments = null;
121
+ component.positionedComments = null;
105
122
  }
106
123
  }
107
124
  /**
108
125
  * Get all comments from a component
109
- * For SelectQuery components, returns headerComments instead of regular comments
126
+ * For SelectQuery components, returns headerComments
127
+ * For other components, returns all positioned comments as a flat array
110
128
  * @param component The SQL component to get comments from
111
129
  * @returns Array of comment strings (empty array if no comments)
112
130
  */
@@ -115,7 +133,7 @@ export class CommentEditor {
115
133
  const selectQuery = component;
116
134
  return selectQuery.headerComments || [];
117
135
  }
118
- return component.comments || [];
136
+ return component.getAllPositionedComments();
119
137
  }
120
138
  /**
121
139
  * Find all components in the AST that have comments containing the search text
@@ -130,8 +148,9 @@ export class CommentEditor {
130
148
  const traverse = (component) => {
131
149
  if (component && component instanceof SqlComponent) {
132
150
  let hasMatchingComment = false;
133
- // Check regular comments
134
- if (component.comments && component.comments.some(c => {
151
+ // Check positioned comments
152
+ const allPositionedComments = component.getAllPositionedComments();
153
+ if (allPositionedComments && allPositionedComments.some(c => {
135
154
  const commentText = caseSensitive ? c : c.toLowerCase();
136
155
  return commentText.includes(searchTerm);
137
156
  })) {
@@ -191,6 +210,23 @@ export class CommentEditor {
191
210
  }
192
211
  }
193
212
  }
213
+ // Handle positioned comments
214
+ if (component.positionedComments) {
215
+ for (const posComment of component.positionedComments) {
216
+ if (posComment.comments) {
217
+ for (let i = 0; i < posComment.comments.length; i++) {
218
+ const originalComment = posComment.comments[i];
219
+ const flags = caseSensitive ? 'g' : 'gi';
220
+ const regex = new RegExp(searchText.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), flags);
221
+ const newComment = originalComment.replace(regex, replaceText);
222
+ if (newComment !== originalComment) {
223
+ posComment.comments[i] = newComment;
224
+ replacementCount++;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ }
194
230
  // Handle headerComments for SelectQuery components
195
231
  if (this.isSelectQuery(component)) {
196
232
  const selectQuery = component;
@@ -232,8 +268,10 @@ export class CommentEditor {
232
268
  let count = 0;
233
269
  const traverse = (component) => {
234
270
  if (component && component instanceof SqlComponent) {
235
- if (component.comments) {
236
- count += component.comments.length;
271
+ // Count positioned comments
272
+ const positionedComments = component.getAllPositionedComments();
273
+ if (positionedComments) {
274
+ count += positionedComments.length;
237
275
  }
238
276
  // Count headerComments for SelectQuery components
239
277
  if (this.isSelectQuery(component)) {
@@ -267,9 +305,10 @@ export class CommentEditor {
267
305
  const results = [];
268
306
  const traverse = (component) => {
269
307
  if (component && component instanceof SqlComponent) {
270
- // Add regular comments
271
- if (component.comments) {
272
- component.comments.forEach((comment, index) => {
308
+ // Add positioned comments
309
+ const positionedComments = component.getAllPositionedComments();
310
+ if (positionedComments) {
311
+ positionedComments.forEach((comment, index) => {
273
312
  results.push({ comment, component, index });
274
313
  });
275
314
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../../src/utils/CommentEditor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommentEditor.js","sourceRoot":"","sources":["../../../../src/utils/CommentEditor.ts"],"names":[],"mappings":"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"}