rawsql-ts 0.11.31-beta → 0.11.33-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 (123) hide show
  1. package/dist/esm/index.js +57 -48
  2. package/dist/esm/index.js.map +1 -1
  3. package/dist/esm/index.min.js +37 -29
  4. package/dist/esm/index.min.js.map +4 -4
  5. package/dist/esm/src/formatters/OriginalFormatRestorer.d.ts +40 -0
  6. package/dist/esm/src/formatters/OriginalFormatRestorer.js +135 -0
  7. package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +1 -0
  8. package/dist/esm/src/index.d.ts +11 -0
  9. package/dist/esm/src/index.js +9 -0
  10. package/dist/esm/src/index.js.map +1 -1
  11. package/dist/esm/src/models/FormattingLexeme.d.ts +66 -0
  12. package/dist/esm/src/models/FormattingLexeme.js +2 -0
  13. package/dist/esm/src/models/FormattingLexeme.js.map +1 -0
  14. package/dist/esm/src/models/ValueComponent.d.ts +3 -1
  15. package/dist/esm/src/models/ValueComponent.js +3 -1
  16. package/dist/esm/src/models/ValueComponent.js.map +1 -1
  17. package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +12 -0
  18. package/dist/esm/src/parsers/FunctionExpressionParser.js +111 -7
  19. package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
  20. package/dist/esm/src/parsers/KeywordParser.d.ts +1 -0
  21. package/dist/esm/src/parsers/KeywordParser.js +10 -4
  22. package/dist/esm/src/parsers/KeywordParser.js.map +1 -1
  23. package/dist/esm/src/parsers/SqlPrintTokenParser.js +8 -0
  24. package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
  25. package/dist/esm/src/parsers/SqlTokenizer.d.ts +42 -2
  26. package/dist/esm/src/parsers/SqlTokenizer.js +213 -12
  27. package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
  28. package/dist/esm/src/tokenReaders/CommandTokenReader.d.ts +3 -0
  29. package/dist/esm/src/tokenReaders/CommandTokenReader.js +4 -1
  30. package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
  31. package/dist/esm/src/transformers/AliasRenamer.d.ts +199 -0
  32. package/dist/esm/src/transformers/AliasRenamer.js +595 -0
  33. package/dist/esm/src/transformers/AliasRenamer.js.map +1 -0
  34. package/dist/esm/src/transformers/CTERenamer.d.ts +53 -0
  35. package/dist/esm/src/transformers/CTERenamer.js +138 -0
  36. package/dist/esm/src/transformers/CTERenamer.js.map +1 -1
  37. package/dist/esm/src/transformers/DynamicQueryBuilder.d.ts +72 -0
  38. package/dist/esm/src/transformers/DynamicQueryBuilder.js +42 -0
  39. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
  40. package/dist/esm/src/transformers/FilterableItemCollector.d.ts +80 -0
  41. package/dist/esm/src/transformers/FilterableItemCollector.js +254 -0
  42. package/dist/esm/src/transformers/FilterableItemCollector.js.map +1 -0
  43. package/dist/esm/src/transformers/SelectableColumnCollector.d.ts +3 -0
  44. package/dist/esm/src/transformers/SelectableColumnCollector.js +68 -7
  45. package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
  46. package/dist/esm/src/transformers/SmartRenamer.d.ts +134 -0
  47. package/dist/esm/src/transformers/SmartRenamer.js +430 -0
  48. package/dist/esm/src/transformers/SmartRenamer.js.map +1 -0
  49. package/dist/esm/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
  50. package/dist/esm/src/transformers/SqlIdentifierRenamer.js +493 -0
  51. package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -0
  52. package/dist/esm/src/transformers/SqlParamInjector.d.ts +27 -0
  53. package/dist/esm/src/transformers/SqlParamInjector.js +304 -16
  54. package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
  55. package/dist/esm/src/transformers/SqlSortInjector.js +6 -3
  56. package/dist/esm/src/transformers/SqlSortInjector.js.map +1 -1
  57. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +5 -2
  58. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  59. package/dist/esm/src/utils/LexemeCursor.d.ts +41 -0
  60. package/dist/esm/src/utils/LexemeCursor.js +93 -0
  61. package/dist/esm/src/utils/LexemeCursor.js.map +1 -1
  62. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  63. package/dist/index.min.js +37 -29
  64. package/dist/index.min.js.map +4 -4
  65. package/dist/src/formatters/OriginalFormatRestorer.d.ts +40 -0
  66. package/dist/src/formatters/OriginalFormatRestorer.js +139 -0
  67. package/dist/src/formatters/OriginalFormatRestorer.js.map +1 -0
  68. package/dist/src/index.d.ts +11 -0
  69. package/dist/src/index.js +11 -1
  70. package/dist/src/index.js.map +1 -1
  71. package/dist/src/models/FormattingLexeme.d.ts +66 -0
  72. package/dist/src/models/FormattingLexeme.js +3 -0
  73. package/dist/src/models/FormattingLexeme.js.map +1 -0
  74. package/dist/src/models/ValueComponent.d.ts +3 -1
  75. package/dist/src/models/ValueComponent.js +3 -1
  76. package/dist/src/models/ValueComponent.js.map +1 -1
  77. package/dist/src/parsers/FunctionExpressionParser.d.ts +12 -0
  78. package/dist/src/parsers/FunctionExpressionParser.js +110 -6
  79. package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
  80. package/dist/src/parsers/KeywordParser.d.ts +1 -0
  81. package/dist/src/parsers/KeywordParser.js +10 -4
  82. package/dist/src/parsers/KeywordParser.js.map +1 -1
  83. package/dist/src/parsers/SqlPrintTokenParser.js +8 -0
  84. package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
  85. package/dist/src/parsers/SqlTokenizer.d.ts +42 -2
  86. package/dist/src/parsers/SqlTokenizer.js +222 -12
  87. package/dist/src/parsers/SqlTokenizer.js.map +1 -1
  88. package/dist/src/tokenReaders/CommandTokenReader.d.ts +3 -0
  89. package/dist/src/tokenReaders/CommandTokenReader.js +5 -2
  90. package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
  91. package/dist/src/transformers/AliasRenamer.d.ts +199 -0
  92. package/dist/src/transformers/AliasRenamer.js +599 -0
  93. package/dist/src/transformers/AliasRenamer.js.map +1 -0
  94. package/dist/src/transformers/CTERenamer.d.ts +53 -0
  95. package/dist/src/transformers/CTERenamer.js +138 -0
  96. package/dist/src/transformers/CTERenamer.js.map +1 -1
  97. package/dist/src/transformers/DynamicQueryBuilder.d.ts +72 -0
  98. package/dist/src/transformers/DynamicQueryBuilder.js +42 -0
  99. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
  100. package/dist/src/transformers/FilterableItemCollector.d.ts +80 -0
  101. package/dist/src/transformers/FilterableItemCollector.js +259 -0
  102. package/dist/src/transformers/FilterableItemCollector.js.map +1 -0
  103. package/dist/src/transformers/SelectableColumnCollector.d.ts +3 -0
  104. package/dist/src/transformers/SelectableColumnCollector.js +67 -6
  105. package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
  106. package/dist/src/transformers/SmartRenamer.d.ts +134 -0
  107. package/dist/src/transformers/SmartRenamer.js +442 -0
  108. package/dist/src/transformers/SmartRenamer.js.map +1 -0
  109. package/dist/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
  110. package/dist/src/transformers/SqlIdentifierRenamer.js +497 -0
  111. package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -0
  112. package/dist/src/transformers/SqlParamInjector.d.ts +27 -0
  113. package/dist/src/transformers/SqlParamInjector.js +303 -15
  114. package/dist/src/transformers/SqlParamInjector.js.map +1 -1
  115. package/dist/src/transformers/SqlSortInjector.js +5 -2
  116. package/dist/src/transformers/SqlSortInjector.js.map +1 -1
  117. package/dist/src/transformers/UpstreamSelectQueryFinder.js +4 -1
  118. package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  119. package/dist/src/utils/LexemeCursor.d.ts +41 -0
  120. package/dist/src/utils/LexemeCursor.js +93 -0
  121. package/dist/src/utils/LexemeCursor.js.map +1 -1
  122. package/dist/tsconfig.tsbuildinfo +1 -1
  123. package/package.json +2 -2
@@ -0,0 +1,40 @@
1
+ import { FormattingLexeme } from '../models/FormattingLexeme';
2
+ /**
3
+ * Restores SQL strings from FormattingLexeme arrays while preserving original formatting
4
+ * This class handles the restoration of SQL text with exact whitespace, comments, and indentation
5
+ */
6
+ export declare class OriginalFormatRestorer {
7
+ /**
8
+ * Restores SQL string from FormattingLexeme array preserving original formatting
9
+ * @param lexemes Array of FormattingLexeme with formatting information
10
+ * @returns Restored SQL string with original formatting preserved
11
+ */
12
+ restore(lexemes: FormattingLexeme[]): string;
13
+ /**
14
+ * Restores SQL with inline comments preserved at their original positions
15
+ * @param lexemes Array of FormattingLexeme with formatting information
16
+ * @param includeComments Whether to include inline comments in output
17
+ * @returns Restored SQL string
18
+ */
19
+ restoreWithComments(lexemes: FormattingLexeme[], includeComments?: boolean): string;
20
+ /**
21
+ * Extracts formatting patterns from FormattingLexemes for analysis
22
+ * @param lexemes Array of FormattingLexeme
23
+ * @returns Object containing formatting statistics
24
+ */
25
+ analyzeFormatting(lexemes: FormattingLexeme[]): {
26
+ totalWhitespace: number;
27
+ totalComments: number;
28
+ indentationStyle: 'spaces' | 'tabs' | 'mixed' | 'none';
29
+ averageIndentSize: number;
30
+ };
31
+ /**
32
+ * Validates that lexemes contain proper formatting information
33
+ * @param lexemes Array of FormattingLexeme to validate
34
+ * @returns Validation result with details
35
+ */
36
+ validateFormattingLexemes(lexemes: FormattingLexeme[]): {
37
+ isValid: boolean;
38
+ issues: string[];
39
+ };
40
+ }
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Restores SQL strings from FormattingLexeme arrays while preserving original formatting
3
+ * This class handles the restoration of SQL text with exact whitespace, comments, and indentation
4
+ */
5
+ export class OriginalFormatRestorer {
6
+ /**
7
+ * Restores SQL string from FormattingLexeme array preserving original formatting
8
+ * @param lexemes Array of FormattingLexeme with formatting information
9
+ * @returns Restored SQL string with original formatting preserved
10
+ */
11
+ restore(lexemes) {
12
+ if (lexemes.length === 0) {
13
+ return '';
14
+ }
15
+ let result = '';
16
+ for (const lexeme of lexemes) {
17
+ // Add the lexeme value
18
+ result += lexeme.value;
19
+ // Add any following whitespace (spaces, tabs, newlines)
20
+ if (lexeme.followingWhitespace) {
21
+ result += lexeme.followingWhitespace;
22
+ }
23
+ }
24
+ return result;
25
+ }
26
+ /**
27
+ * Restores SQL with inline comments preserved at their original positions
28
+ * @param lexemes Array of FormattingLexeme with formatting information
29
+ * @param includeComments Whether to include inline comments in output
30
+ * @returns Restored SQL string
31
+ */
32
+ restoreWithComments(lexemes, includeComments = true) {
33
+ if (lexemes.length === 0) {
34
+ return '';
35
+ }
36
+ let result = '';
37
+ for (const lexeme of lexemes) {
38
+ // Add the lexeme value
39
+ result += lexeme.value;
40
+ // Add inline comments if requested
41
+ if (includeComments && lexeme.inlineComments && lexeme.inlineComments.length > 0) {
42
+ for (const comment of lexeme.inlineComments) {
43
+ // Add comments with appropriate formatting
44
+ if (comment.trim().length > 0) {
45
+ result += ` -- ${comment}`;
46
+ }
47
+ }
48
+ }
49
+ // Add any following whitespace
50
+ if (lexeme.followingWhitespace) {
51
+ result += lexeme.followingWhitespace;
52
+ }
53
+ }
54
+ return result;
55
+ }
56
+ /**
57
+ * Extracts formatting patterns from FormattingLexemes for analysis
58
+ * @param lexemes Array of FormattingLexeme
59
+ * @returns Object containing formatting statistics
60
+ */
61
+ analyzeFormatting(lexemes) {
62
+ var _a, _b;
63
+ let totalWhitespace = 0;
64
+ let totalComments = 0;
65
+ let spaceCount = 0;
66
+ let tabCount = 0;
67
+ let indentLines = 0;
68
+ let totalIndentSize = 0;
69
+ for (const lexeme of lexemes) {
70
+ if (lexeme.followingWhitespace) {
71
+ totalWhitespace += lexeme.followingWhitespace.length;
72
+ // Analyze indentation
73
+ const lines = lexeme.followingWhitespace.split('\n');
74
+ for (let i = 1; i < lines.length; i++) { // Skip first line
75
+ const line = lines[i];
76
+ const leadingSpaces = ((_a = line.match(/^ */)) === null || _a === void 0 ? void 0 : _a[0].length) || 0;
77
+ const leadingTabs = ((_b = line.match(/^\t*/)) === null || _b === void 0 ? void 0 : _b[0].length) || 0;
78
+ if (leadingSpaces > 0 || leadingTabs > 0) {
79
+ indentLines++;
80
+ totalIndentSize += leadingSpaces + (leadingTabs * 4); // Count tabs as 4 spaces
81
+ spaceCount += leadingSpaces;
82
+ tabCount += leadingTabs;
83
+ }
84
+ }
85
+ }
86
+ if (lexeme.inlineComments) {
87
+ totalComments += lexeme.inlineComments.length;
88
+ }
89
+ }
90
+ let indentationStyle = 'none';
91
+ if (spaceCount > 0 && tabCount > 0) {
92
+ indentationStyle = 'mixed';
93
+ }
94
+ else if (spaceCount > 0) {
95
+ indentationStyle = 'spaces';
96
+ }
97
+ else if (tabCount > 0) {
98
+ indentationStyle = 'tabs';
99
+ }
100
+ return {
101
+ totalWhitespace,
102
+ totalComments,
103
+ indentationStyle,
104
+ averageIndentSize: indentLines > 0 ? totalIndentSize / indentLines : 0
105
+ };
106
+ }
107
+ /**
108
+ * Validates that lexemes contain proper formatting information
109
+ * @param lexemes Array of FormattingLexeme to validate
110
+ * @returns Validation result with details
111
+ */
112
+ validateFormattingLexemes(lexemes) {
113
+ const issues = [];
114
+ for (let i = 0; i < lexemes.length; i++) {
115
+ const lexeme = lexemes[i];
116
+ if (!lexeme.position) {
117
+ issues.push(`Lexeme ${i} missing position information`);
118
+ }
119
+ if (lexeme.followingWhitespace === undefined) {
120
+ issues.push(`Lexeme ${i} missing followingWhitespace property`);
121
+ }
122
+ if (lexeme.inlineComments === undefined) {
123
+ issues.push(`Lexeme ${i} missing inlineComments property`);
124
+ }
125
+ if (lexeme.position && lexeme.position.startPosition >= lexeme.position.endPosition) {
126
+ issues.push(`Lexeme ${i} has invalid position range`);
127
+ }
128
+ }
129
+ return {
130
+ isValid: issues.length === 0,
131
+ issues
132
+ };
133
+ }
134
+ }
135
+ //# sourceMappingURL=OriginalFormatRestorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OriginalFormatRestorer.js","sourceRoot":"","sources":["../../../../src/formatters/OriginalFormatRestorer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAE/B;;;;OAIG;IACI,OAAO,CAAC,OAA2B;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,uBAAuB;YACvB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;YAEvB,wDAAwD;YACxD,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC;YACzC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,mBAAmB,CAAC,OAA2B,EAAE,kBAA2B,IAAI;QACnF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACd,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAEhB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,uBAAuB;YACvB,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC;YAEvB,mCAAmC;YACnC,IAAI,eAAe,IAAI,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC1C,2CAA2C;oBAC3C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC5B,MAAM,IAAI,OAAO,OAAO,EAAE,CAAC;oBAC/B,CAAC;gBACL,CAAC;YACL,CAAC;YAED,+BAA+B;YAC/B,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,MAAM,IAAI,MAAM,CAAC,mBAAmB,CAAC;YACzC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACI,iBAAiB,CAAC,OAA2B;;QAMhD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,eAAe,GAAG,CAAC,CAAC;QAExB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC;gBAErD,sBAAsB;gBACtB,MAAM,KAAK,GAAG,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,kBAAkB;oBACvD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACtB,MAAM,aAAa,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0CAAG,CAAC,EAAE,MAAM,KAAI,CAAC,CAAC;oBACzD,MAAM,WAAW,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,0CAAG,CAAC,EAAE,MAAM,KAAI,CAAC,CAAC;oBAExD,IAAI,aAAa,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;wBACvC,WAAW,EAAE,CAAC;wBACd,eAAe,IAAI,aAAa,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,yBAAyB;wBAC/E,UAAU,IAAI,aAAa,CAAC;wBAC5B,QAAQ,IAAI,WAAW,CAAC;oBAC5B,CAAC;gBACL,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBACxB,aAAa,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;YAClD,CAAC;QACL,CAAC;QAED,IAAI,gBAAgB,GAAyC,MAAM,CAAC;QACpE,IAAI,UAAU,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjC,gBAAgB,GAAG,OAAO,CAAC;QAC/B,CAAC;aAAM,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACxB,gBAAgB,GAAG,QAAQ,CAAC;QAChC,CAAC;aAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACtB,gBAAgB,GAAG,MAAM,CAAC;QAC9B,CAAC;QAED,OAAO;YACH,eAAe;YACf,aAAa;YACb,gBAAgB;YAChB,iBAAiB,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;SACzE,CAAC;IACN,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAAC,OAA2B;QAIxD,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,+BAA+B,CAAC,CAAC;YAC5D,CAAC;YAED,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;gBAC3C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,uCAAuC,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,MAAM,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAClF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QAED,OAAO;YACH,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM;SACT,CAAC;IACN,CAAC;CACJ"}
@@ -9,6 +9,7 @@ export * from './models/ValueComponent';
9
9
  export * from './models/ValuesQuery';
10
10
  export * from './models/CTEError';
11
11
  export * from './models/Lexeme';
12
+ export * from './models/FormattingLexeme';
12
13
  export * from './transformers/CTECollector';
13
14
  export * from './transformers/CTENormalizer';
14
15
  export * from './transformers/CTEDisabler';
@@ -17,6 +18,11 @@ export * from './transformers/CTETableReferenceCollector';
17
18
  export * from './transformers/CTEQueryDecomposer';
18
19
  export * from './transformers/CTEComposer';
19
20
  export * from './transformers/CTERenamer';
21
+ export * from './transformers/AliasRenamer';
22
+ export * from './transformers/SmartRenamer';
23
+ export * from './formatters/OriginalFormatRestorer';
24
+ export * from './transformers/SqlIdentifierRenamer';
25
+ export type { ScopeRange } from './transformers/SqlIdentifierRenamer';
20
26
  export * from './transformers/ColumnReferenceCollector';
21
27
  export * from './transformers/Formatter';
22
28
  export * from './transformers/SqlFormatter';
@@ -25,6 +31,8 @@ export * from './transformers/QueryBuilder';
25
31
  export * from './transformers/SelectValueCollector';
26
32
  export * from './transformers/SelectableColumnCollector';
27
33
  export { DuplicateDetectionMode } from './transformers/SelectableColumnCollector';
34
+ export * from './transformers/FilterableItemCollector';
35
+ export * from './transformers/DynamicQueryBuilder';
28
36
  export * from './transformers/TableColumnResolver';
29
37
  export * from './transformers/TableSourceCollector';
30
38
  export * from './transformers/JsonMappingConverter';
@@ -39,6 +47,8 @@ export * from './transformers/UpstreamSelectQueryFinder';
39
47
  export * from './transformers/TypeTransformationPostProcessor';
40
48
  export * from './transformers/SchemaCollector';
41
49
  export { TableSchema, SchemaAnalysisResult } from './transformers/SchemaCollector';
50
+ export * from './transformers/FilterableItemCollector';
51
+ export { FilterableItem, FilterableItemCollectorOptions } from './transformers/FilterableItemCollector';
42
52
  export * from './transformers/QueryFlowDiagramGenerator';
43
53
  export * from './transformers/SqlParamInjector';
44
54
  export * from './transformers/SqlSortInjector';
@@ -49,5 +59,6 @@ export * from './utils/JsonSchemaValidator';
49
59
  export * from './utils/SchemaManager';
50
60
  export * from './utils/CommentEditor';
51
61
  export * from './utils/LexemeCursor';
62
+ export type { LineColumn } from './utils/LexemeCursor';
52
63
  export * from './utils/CTERegionDetector';
53
64
  export type { CTERegion, CursorPositionInfo } from './utils/CTERegionDetector';
@@ -9,6 +9,7 @@ export * from './models/ValueComponent';
9
9
  export * from './models/ValuesQuery';
10
10
  export * from './models/CTEError';
11
11
  export * from './models/Lexeme';
12
+ export * from './models/FormattingLexeme';
12
13
  export * from './transformers/CTECollector';
13
14
  export * from './transformers/CTENormalizer';
14
15
  export * from './transformers/CTEDisabler';
@@ -17,6 +18,10 @@ export * from './transformers/CTETableReferenceCollector';
17
18
  export * from './transformers/CTEQueryDecomposer';
18
19
  export * from './transformers/CTEComposer';
19
20
  export * from './transformers/CTERenamer';
21
+ export * from './transformers/AliasRenamer';
22
+ export * from './transformers/SmartRenamer';
23
+ export * from './formatters/OriginalFormatRestorer';
24
+ export * from './transformers/SqlIdentifierRenamer';
20
25
  export * from './transformers/ColumnReferenceCollector';
21
26
  export * from './transformers/Formatter';
22
27
  export * from './transformers/SqlFormatter';
@@ -25,6 +30,8 @@ export * from './transformers/QueryBuilder'; // old name:QueryConverter
25
30
  export * from './transformers/SelectValueCollector';
26
31
  export * from './transformers/SelectableColumnCollector';
27
32
  export { DuplicateDetectionMode } from './transformers/SelectableColumnCollector';
33
+ export * from './transformers/FilterableItemCollector';
34
+ export * from './transformers/DynamicQueryBuilder';
28
35
  export * from './transformers/TableColumnResolver';
29
36
  export * from './transformers/TableSourceCollector';
30
37
  export * from './transformers/JsonMappingConverter';
@@ -39,6 +46,8 @@ export * from './transformers/UpstreamSelectQueryFinder';
39
46
  export * from './transformers/TypeTransformationPostProcessor';
40
47
  export * from './transformers/SchemaCollector';
41
48
  export { TableSchema } from './transformers/SchemaCollector';
49
+ export * from './transformers/FilterableItemCollector';
50
+ export { FilterableItem } from './transformers/FilterableItemCollector';
42
51
  export * from './transformers/QueryFlowDiagramGenerator';
43
52
  export * from './transformers/SqlParamInjector';
44
53
  export * from './transformers/SqlSortInjector';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC,CAAC,0BAA0B;AACvE,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAEH,yBAAyB,EACzB,0BAA0B,EAK7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO;AACH,6DAA6D;AAC7D,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACjB,MAAM,mCAAmC,CAAC;AAE3C,qEAAqE;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAwB,MAAM,gCAAgC,CAAC;AACnF,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAI1C,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,cAAc,6BAA6B,CAAC;AAE5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAE3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAEpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC,CAAC,0BAA0B;AACvE,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAEH,yBAAyB,EACzB,0BAA0B,EAK7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO;AACH,6DAA6D;AAC7D,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACjB,MAAM,mCAAmC,CAAC;AAE3C,qEAAqE;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,cAAc,0CAA0C,CAAC;AACzD,cAAc,gDAAgD,CAAC;AAE/D,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAwB,MAAM,gCAAgC,CAAC;AACnF,cAAc,wCAAwC,CAAC;AACvD,OAAO,EAAE,cAAc,EAAkC,MAAM,wCAAwC,CAAC;AACxG,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AAEnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AAErC,cAAc,2BAA2B,CAAC;AAI1C,oEAAoE"}
@@ -0,0 +1,66 @@
1
+ import { Lexeme, LexemePosition } from './Lexeme';
2
+ /**
3
+ * Extended lexeme interface that preserves formatting information
4
+ */
5
+ export interface FormattingLexeme extends Lexeme {
6
+ /**
7
+ * Whitespace that follows this lexeme (spaces, tabs, newlines)
8
+ */
9
+ followingWhitespace: string;
10
+ /**
11
+ * Inline comments that appear on the same line as this lexeme
12
+ */
13
+ inlineComments: string[];
14
+ /**
15
+ * Enhanced position information for precise reconstruction
16
+ */
17
+ position: LexemePosition;
18
+ }
19
+ /**
20
+ * Metadata for tracking modifications during AST transformations
21
+ */
22
+ export interface ModificationInfo {
23
+ /**
24
+ * Map of original values to new values for renamed items
25
+ */
26
+ renames: Map<string, string>;
27
+ /**
28
+ * Positions where new content was inserted
29
+ */
30
+ insertions: Array<{
31
+ position: number;
32
+ content: string;
33
+ }>;
34
+ /**
35
+ * Ranges that were deleted from original content
36
+ */
37
+ deletions: Array<{
38
+ start: number;
39
+ end: number;
40
+ }>;
41
+ }
42
+ /**
43
+ * Container for formatting information associated with AST nodes
44
+ */
45
+ export interface FormattingInfo {
46
+ /**
47
+ * Original lexemes with formatting information
48
+ */
49
+ originalLexemes: FormattingLexeme[];
50
+ /**
51
+ * Start position in original text
52
+ */
53
+ startPosition: number;
54
+ /**
55
+ * End position in original text
56
+ */
57
+ endPosition: number;
58
+ /**
59
+ * Modifications made during transformations
60
+ */
61
+ modifications?: ModificationInfo;
62
+ /**
63
+ * Original whitespace patterns for reconstruction
64
+ */
65
+ whitespacePatterns?: string[];
66
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FormattingLexeme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormattingLexeme.js","sourceRoot":"","sources":["../../../../src/models/FormattingLexeme.ts"],"names":[],"mappings":""}
@@ -33,7 +33,9 @@ export declare class FunctionCall extends SqlComponent {
33
33
  argument: ValueComponent | null;
34
34
  over: OverExpression | null;
35
35
  withinGroup: OrderByClause | null;
36
- constructor(namespaces: string | string[] | IdentifierString[] | null, name: string | RawString | IdentifierString, argument: ValueComponent | null, over: OverExpression | null, withinGroup?: OrderByClause | null);
36
+ withOrdinality: boolean;
37
+ internalOrderBy: OrderByClause | null;
38
+ constructor(namespaces: string | string[] | IdentifierString[] | null, name: string | RawString | IdentifierString, argument: ValueComponent | null, over: OverExpression | null, withinGroup?: OrderByClause | null, withOrdinality?: boolean, internalOrderBy?: OrderByClause | null);
37
39
  /**
38
40
  * For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
39
41
  */
@@ -51,12 +51,14 @@ export class ColumnReference extends SqlComponent {
51
51
  }
52
52
  ColumnReference.kind = Symbol("ColumnReference");
53
53
  export class FunctionCall extends SqlComponent {
54
- constructor(namespaces, name, argument, over, withinGroup = null) {
54
+ constructor(namespaces, name, argument, over, withinGroup = null, withOrdinality = false, internalOrderBy = null) {
55
55
  super();
56
56
  this.qualifiedName = new QualifiedName(namespaces, name);
57
57
  this.argument = argument;
58
58
  this.over = over;
59
59
  this.withinGroup = withinGroup;
60
+ this.withOrdinality = withOrdinality;
61
+ this.internalOrderBy = internalOrderBy;
60
62
  }
61
63
  /**
62
64
  * For backward compatibility: returns the namespaces as IdentifierString[] | null (readonly)
@@ -1 +1 @@
1
- {"version":3,"file":"ValueComponent.js","sourceRoot":"","sources":["../../../../src/models/ValueComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ValueComponent.js","sourceRoot":"","sources":["../../../../src/models/ValueComponent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import { Lexeme } from "../models/Lexeme";
2
2
  import { ValueComponent, TypeValue } from "../models/ValueComponent";
3
3
  export declare class FunctionExpressionParser {
4
+ /**
5
+ * Aggregate functions that support internal ORDER BY clause
6
+ */
7
+ private static readonly AGGREGATE_FUNCTIONS_WITH_ORDER_BY;
4
8
  /**
5
9
  * Parse ARRAY expressions - handles both ARRAY[...] (literal) and ARRAY(...) (query) syntax
6
10
  * @param lexemes Array of lexemes to parse
@@ -38,4 +42,12 @@ export declare class FunctionExpressionParser {
38
42
  * @returns Parsed OrderByClause and new index
39
43
  */
40
44
  private static parseWithinGroupClause;
45
+ /**
46
+ * Parse arguments for aggregate functions that support internal ORDER BY
47
+ * Handles patterns like: string_agg(expr, separator ORDER BY sort_expr)
48
+ * @param lexemes Array of lexemes to parse
49
+ * @param index Current parsing index (should point to opening parenthesis)
50
+ * @returns Parsed arguments, ORDER BY clause, and new index
51
+ */
52
+ private static parseAggregateArguments;
41
53
  }
@@ -1,5 +1,5 @@
1
1
  import { TokenType } from "../models/Lexeme";
2
- import { FunctionCall, BinaryExpression, TypeValue, CastExpression, BetweenExpression, RawString, ArrayExpression, ArrayQueryExpression } from "../models/ValueComponent";
2
+ import { FunctionCall, BinaryExpression, TypeValue, CastExpression, BetweenExpression, RawString, ArrayExpression, ArrayQueryExpression, ValueList, ColumnReference } from "../models/ValueComponent";
3
3
  import { OverExpressionParser } from "./OverExpressionParser";
4
4
  import { ValueParser } from "./ValueParser";
5
5
  import { FullNameParser } from "./FullNameParser";
@@ -127,8 +127,20 @@ export class FunctionExpressionParser {
127
127
  const name = fullNameResult.name;
128
128
  idx = fullNameResult.newIndex;
129
129
  if (idx < lexemes.length && (lexemes[idx].type & TokenType.OpenParen)) {
130
- // General argument parsing
131
- const arg = ValueParser.parseArgument(TokenType.OpenParen, TokenType.CloseParen, lexemes, idx);
130
+ // Check if this is an aggregate function that supports internal ORDER BY
131
+ const functionName = name.name.toLowerCase();
132
+ let arg;
133
+ let internalOrderBy = null;
134
+ if (this.AGGREGATE_FUNCTIONS_WITH_ORDER_BY.has(functionName)) {
135
+ // Use special aggregate function argument parser
136
+ const result = this.parseAggregateArguments(lexemes, idx);
137
+ arg = { value: result.arguments, newIndex: result.newIndex };
138
+ internalOrderBy = result.orderByClause;
139
+ }
140
+ else {
141
+ // General argument parsing
142
+ arg = ValueParser.parseArgument(TokenType.OpenParen, TokenType.CloseParen, lexemes, idx);
143
+ }
132
144
  idx = arg.newIndex;
133
145
  // Check for WITHIN GROUP clause
134
146
  let withinGroup = null;
@@ -137,14 +149,20 @@ export class FunctionExpressionParser {
137
149
  withinGroup = withinGroupResult.value;
138
150
  idx = withinGroupResult.newIndex;
139
151
  }
152
+ // Check for WITH ORDINALITY clause
153
+ let withOrdinality = false;
154
+ if (idx < lexemes.length && lexemes[idx].value === "with ordinality") {
155
+ withOrdinality = true;
156
+ idx++; // Skip single "with ordinality" token
157
+ }
140
158
  if (idx < lexemes.length && lexemes[idx].value === "over") {
141
159
  const over = OverExpressionParser.parseFromLexeme(lexemes, idx);
142
160
  idx = over.newIndex;
143
- const value = new FunctionCall(namespaces, name.name, arg.value, over.value, withinGroup);
161
+ const value = new FunctionCall(namespaces, name.name, arg.value, over.value, withinGroup, withOrdinality, internalOrderBy);
144
162
  return { value, newIndex: idx };
145
163
  }
146
164
  else {
147
- const value = new FunctionCall(namespaces, name.name, arg.value, null, withinGroup);
165
+ const value = new FunctionCall(namespaces, name.name, arg.value, null, withinGroup, withOrdinality, internalOrderBy);
148
166
  return { value, newIndex: idx };
149
167
  }
150
168
  }
@@ -196,16 +214,22 @@ export class FunctionExpressionParser {
196
214
  withinGroup = withinGroupResult.value;
197
215
  idx = withinGroupResult.newIndex;
198
216
  }
217
+ // Check for WITH ORDINALITY clause
218
+ let withOrdinality = false;
219
+ if (idx < lexemes.length && lexemes[idx].value === "with ordinality") {
220
+ withOrdinality = true;
221
+ idx++; // Skip single "with ordinality" token
222
+ }
199
223
  // Use the previously parsed namespaces and function name for consistency
200
224
  if (idx < lexemes.length && lexemes[idx].value === "over") {
201
225
  idx++;
202
226
  const over = OverExpressionParser.parseFromLexeme(lexemes, idx);
203
227
  idx = over.newIndex;
204
- const value = new FunctionCall(namespaces, name.name, arg, over.value, withinGroup);
228
+ const value = new FunctionCall(namespaces, name.name, arg, over.value, withinGroup, withOrdinality, null);
205
229
  return { value, newIndex: idx };
206
230
  }
207
231
  else {
208
- const value = new FunctionCall(namespaces, name.name, arg, null, withinGroup);
232
+ const value = new FunctionCall(namespaces, name.name, arg, null, withinGroup, withOrdinality, null);
209
233
  return { value, newIndex: idx };
210
234
  }
211
235
  }
@@ -260,5 +284,85 @@ export class FunctionExpressionParser {
260
284
  idx++;
261
285
  return { value: orderByResult.value, newIndex: idx };
262
286
  }
287
+ /**
288
+ * Parse arguments for aggregate functions that support internal ORDER BY
289
+ * Handles patterns like: string_agg(expr, separator ORDER BY sort_expr)
290
+ * @param lexemes Array of lexemes to parse
291
+ * @param index Current parsing index (should point to opening parenthesis)
292
+ * @returns Parsed arguments, ORDER BY clause, and new index
293
+ */
294
+ static parseAggregateArguments(lexemes, index) {
295
+ let idx = index;
296
+ const args = [];
297
+ let orderByClause = null;
298
+ // Check for opening parenthesis
299
+ if (idx >= lexemes.length || !(lexemes[idx].type & TokenType.OpenParen)) {
300
+ throw ParseError.fromUnparsedLexemes(lexemes, idx, `Expected opening parenthesis.`);
301
+ }
302
+ idx++;
303
+ // Handle empty arguments
304
+ if (idx < lexemes.length && (lexemes[idx].type & TokenType.CloseParen)) {
305
+ idx++;
306
+ return { arguments: new ValueList([]), orderByClause: null, newIndex: idx };
307
+ }
308
+ // Handle wildcard case
309
+ if (idx < lexemes.length && lexemes[idx].value === "*") {
310
+ const wildcard = new ColumnReference(null, "*");
311
+ idx++;
312
+ if (idx < lexemes.length && (lexemes[idx].type & TokenType.CloseParen)) {
313
+ idx++;
314
+ return { arguments: wildcard, orderByClause: null, newIndex: idx };
315
+ }
316
+ else {
317
+ throw ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis after wildcard '*'.`);
318
+ }
319
+ }
320
+ // Parse first argument
321
+ const firstArg = ValueParser.parseFromLexeme(lexemes, idx);
322
+ idx = firstArg.newIndex;
323
+ args.push(firstArg.value);
324
+ // Parse additional arguments separated by comma, or ORDER BY
325
+ while (idx < lexemes.length &&
326
+ ((lexemes[idx].type & TokenType.Comma) || lexemes[idx].value === "order by")) {
327
+ // Check if current token is ORDER BY (without comma)
328
+ if (lexemes[idx].value === "order by") {
329
+ // Parse ORDER BY clause
330
+ const orderByResult = OrderByClauseParser.parseFromLexeme(lexemes, idx);
331
+ idx = orderByResult.newIndex;
332
+ orderByClause = orderByResult.value;
333
+ break; // ORDER BY should be the last element in aggregate functions
334
+ }
335
+ if (lexemes[idx].type & TokenType.Comma) {
336
+ idx++; // Skip comma
337
+ // Check if next token after comma is ORDER BY
338
+ if (idx < lexemes.length && lexemes[idx].value === "order by") {
339
+ // Parse ORDER BY clause
340
+ const orderByResult = OrderByClauseParser.parseFromLexeme(lexemes, idx);
341
+ idx = orderByResult.newIndex;
342
+ orderByClause = orderByResult.value;
343
+ break; // ORDER BY should be the last element in aggregate functions
344
+ }
345
+ // Parse regular argument after comma
346
+ const argResult = ValueParser.parseFromLexeme(lexemes, idx);
347
+ idx = argResult.newIndex;
348
+ args.push(argResult.value);
349
+ }
350
+ }
351
+ // Check for closing parenthesis
352
+ if (idx >= lexemes.length || !(lexemes[idx].type & TokenType.CloseParen)) {
353
+ throw ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis.`);
354
+ }
355
+ idx++;
356
+ // Return single argument if only one, otherwise return ValueList
357
+ const argumentsValue = args.length === 1 ? args[0] : new ValueList(args);
358
+ return { arguments: argumentsValue, orderByClause, newIndex: idx };
359
+ }
263
360
  }
361
+ /**
362
+ * Aggregate functions that support internal ORDER BY clause
363
+ */
364
+ FunctionExpressionParser.AGGREGATE_FUNCTIONS_WITH_ORDER_BY = new Set([
365
+ 'string_agg', 'array_agg', 'json_agg', 'jsonb_agg',
366
+ 'json_object_agg', 'jsonb_object_agg', 'xmlagg'
367
+ ]);
264
368
  //# sourceMappingURL=FunctionExpressionParser.js.map