rawsql-ts 0.11.32-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 +9 -0
  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 +1 -1
@@ -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,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OriginalFormatRestorer = void 0;
4
+ /**
5
+ * Restores SQL strings from FormattingLexeme arrays while preserving original formatting
6
+ * This class handles the restoration of SQL text with exact whitespace, comments, and indentation
7
+ */
8
+ class OriginalFormatRestorer {
9
+ /**
10
+ * Restores SQL string from FormattingLexeme array preserving original formatting
11
+ * @param lexemes Array of FormattingLexeme with formatting information
12
+ * @returns Restored SQL string with original formatting preserved
13
+ */
14
+ restore(lexemes) {
15
+ if (lexemes.length === 0) {
16
+ return '';
17
+ }
18
+ let result = '';
19
+ for (const lexeme of lexemes) {
20
+ // Add the lexeme value
21
+ result += lexeme.value;
22
+ // Add any following whitespace (spaces, tabs, newlines)
23
+ if (lexeme.followingWhitespace) {
24
+ result += lexeme.followingWhitespace;
25
+ }
26
+ }
27
+ return result;
28
+ }
29
+ /**
30
+ * Restores SQL with inline comments preserved at their original positions
31
+ * @param lexemes Array of FormattingLexeme with formatting information
32
+ * @param includeComments Whether to include inline comments in output
33
+ * @returns Restored SQL string
34
+ */
35
+ restoreWithComments(lexemes, includeComments = true) {
36
+ if (lexemes.length === 0) {
37
+ return '';
38
+ }
39
+ let result = '';
40
+ for (const lexeme of lexemes) {
41
+ // Add the lexeme value
42
+ result += lexeme.value;
43
+ // Add inline comments if requested
44
+ if (includeComments && lexeme.inlineComments && lexeme.inlineComments.length > 0) {
45
+ for (const comment of lexeme.inlineComments) {
46
+ // Add comments with appropriate formatting
47
+ if (comment.trim().length > 0) {
48
+ result += ` -- ${comment}`;
49
+ }
50
+ }
51
+ }
52
+ // Add any following whitespace
53
+ if (lexeme.followingWhitespace) {
54
+ result += lexeme.followingWhitespace;
55
+ }
56
+ }
57
+ return result;
58
+ }
59
+ /**
60
+ * Extracts formatting patterns from FormattingLexemes for analysis
61
+ * @param lexemes Array of FormattingLexeme
62
+ * @returns Object containing formatting statistics
63
+ */
64
+ analyzeFormatting(lexemes) {
65
+ var _a, _b;
66
+ let totalWhitespace = 0;
67
+ let totalComments = 0;
68
+ let spaceCount = 0;
69
+ let tabCount = 0;
70
+ let indentLines = 0;
71
+ let totalIndentSize = 0;
72
+ for (const lexeme of lexemes) {
73
+ if (lexeme.followingWhitespace) {
74
+ totalWhitespace += lexeme.followingWhitespace.length;
75
+ // Analyze indentation
76
+ const lines = lexeme.followingWhitespace.split('\n');
77
+ for (let i = 1; i < lines.length; i++) { // Skip first line
78
+ const line = lines[i];
79
+ const leadingSpaces = ((_a = line.match(/^ */)) === null || _a === void 0 ? void 0 : _a[0].length) || 0;
80
+ const leadingTabs = ((_b = line.match(/^\t*/)) === null || _b === void 0 ? void 0 : _b[0].length) || 0;
81
+ if (leadingSpaces > 0 || leadingTabs > 0) {
82
+ indentLines++;
83
+ totalIndentSize += leadingSpaces + (leadingTabs * 4); // Count tabs as 4 spaces
84
+ spaceCount += leadingSpaces;
85
+ tabCount += leadingTabs;
86
+ }
87
+ }
88
+ }
89
+ if (lexeme.inlineComments) {
90
+ totalComments += lexeme.inlineComments.length;
91
+ }
92
+ }
93
+ let indentationStyle = 'none';
94
+ if (spaceCount > 0 && tabCount > 0) {
95
+ indentationStyle = 'mixed';
96
+ }
97
+ else if (spaceCount > 0) {
98
+ indentationStyle = 'spaces';
99
+ }
100
+ else if (tabCount > 0) {
101
+ indentationStyle = 'tabs';
102
+ }
103
+ return {
104
+ totalWhitespace,
105
+ totalComments,
106
+ indentationStyle,
107
+ averageIndentSize: indentLines > 0 ? totalIndentSize / indentLines : 0
108
+ };
109
+ }
110
+ /**
111
+ * Validates that lexemes contain proper formatting information
112
+ * @param lexemes Array of FormattingLexeme to validate
113
+ * @returns Validation result with details
114
+ */
115
+ validateFormattingLexemes(lexemes) {
116
+ const issues = [];
117
+ for (let i = 0; i < lexemes.length; i++) {
118
+ const lexeme = lexemes[i];
119
+ if (!lexeme.position) {
120
+ issues.push(`Lexeme ${i} missing position information`);
121
+ }
122
+ if (lexeme.followingWhitespace === undefined) {
123
+ issues.push(`Lexeme ${i} missing followingWhitespace property`);
124
+ }
125
+ if (lexeme.inlineComments === undefined) {
126
+ issues.push(`Lexeme ${i} missing inlineComments property`);
127
+ }
128
+ if (lexeme.position && lexeme.position.startPosition >= lexeme.position.endPosition) {
129
+ issues.push(`Lexeme ${i} has invalid position range`);
130
+ }
131
+ }
132
+ return {
133
+ isValid: issues.length === 0,
134
+ issues
135
+ };
136
+ }
137
+ }
138
+ exports.OriginalFormatRestorer = OriginalFormatRestorer;
139
+ //# sourceMappingURL=OriginalFormatRestorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OriginalFormatRestorer.js","sourceRoot":"","sources":["../../../src/formatters/OriginalFormatRestorer.ts"],"names":[],"mappings":"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"}
@@ -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';
package/dist/src/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.TableSchema = exports.unifyJsonMapping = exports.isLegacyFormat = exports.isUnifiedFormat = exports.isModelDrivenFormat = exports.processJsonMapping = exports.validateModelDrivenMapping = exports.convertModelDrivenMapping = exports.DuplicateDetectionMode = void 0;
17
+ exports.FilterableItem = exports.TableSchema = exports.unifyJsonMapping = exports.isLegacyFormat = exports.isUnifiedFormat = exports.isModelDrivenFormat = exports.processJsonMapping = exports.validateModelDrivenMapping = exports.convertModelDrivenMapping = exports.DuplicateDetectionMode = void 0;
18
18
  // Entry point for rawsql-ts package
19
19
  __exportStar(require("./parsers/SelectQueryParser"), exports);
20
20
  __exportStar(require("./parsers/InsertQueryParser"), exports);
@@ -26,6 +26,7 @@ __exportStar(require("./models/ValueComponent"), exports);
26
26
  __exportStar(require("./models/ValuesQuery"), exports);
27
27
  __exportStar(require("./models/CTEError"), exports);
28
28
  __exportStar(require("./models/Lexeme"), exports);
29
+ __exportStar(require("./models/FormattingLexeme"), exports);
29
30
  __exportStar(require("./transformers/CTECollector"), exports);
30
31
  __exportStar(require("./transformers/CTENormalizer"), exports);
31
32
  __exportStar(require("./transformers/CTEDisabler"), exports);
@@ -34,6 +35,10 @@ __exportStar(require("./transformers/CTETableReferenceCollector"), exports);
34
35
  __exportStar(require("./transformers/CTEQueryDecomposer"), exports);
35
36
  __exportStar(require("./transformers/CTEComposer"), exports);
36
37
  __exportStar(require("./transformers/CTERenamer"), exports);
38
+ __exportStar(require("./transformers/AliasRenamer"), exports);
39
+ __exportStar(require("./transformers/SmartRenamer"), exports);
40
+ __exportStar(require("./formatters/OriginalFormatRestorer"), exports);
41
+ __exportStar(require("./transformers/SqlIdentifierRenamer"), exports);
37
42
  __exportStar(require("./transformers/ColumnReferenceCollector"), exports);
38
43
  __exportStar(require("./transformers/Formatter"), exports);
39
44
  __exportStar(require("./transformers/SqlFormatter"), exports);
@@ -43,6 +48,8 @@ __exportStar(require("./transformers/SelectValueCollector"), exports);
43
48
  __exportStar(require("./transformers/SelectableColumnCollector"), exports);
44
49
  var SelectableColumnCollector_1 = require("./transformers/SelectableColumnCollector");
45
50
  Object.defineProperty(exports, "DuplicateDetectionMode", { enumerable: true, get: function () { return SelectableColumnCollector_1.DuplicateDetectionMode; } });
51
+ __exportStar(require("./transformers/FilterableItemCollector"), exports);
52
+ __exportStar(require("./transformers/DynamicQueryBuilder"), exports);
46
53
  __exportStar(require("./transformers/TableColumnResolver"), exports);
47
54
  __exportStar(require("./transformers/TableSourceCollector"), exports);
48
55
  __exportStar(require("./transformers/JsonMappingConverter"), exports);
@@ -64,6 +71,9 @@ __exportStar(require("./transformers/TypeTransformationPostProcessor"), exports)
64
71
  __exportStar(require("./transformers/SchemaCollector"), exports);
65
72
  var SchemaCollector_1 = require("./transformers/SchemaCollector");
66
73
  Object.defineProperty(exports, "TableSchema", { enumerable: true, get: function () { return SchemaCollector_1.TableSchema; } });
74
+ __exportStar(require("./transformers/FilterableItemCollector"), exports);
75
+ var FilterableItemCollector_1 = require("./transformers/FilterableItemCollector");
76
+ Object.defineProperty(exports, "FilterableItem", { enumerable: true, get: function () { return FilterableItemCollector_1.FilterableItem; } });
67
77
  __exportStar(require("./transformers/QueryFlowDiagramGenerator"), exports);
68
78
  __exportStar(require("./transformers/SqlParamInjector"), exports);
69
79
  __exportStar(require("./transformers/SqlSortInjector"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAE5C,8DAA4C;AAC5C,6DAA2C;AAE3C,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAEhC,8DAA4C;AAC5C,+DAA6C;AAC7C,6DAA2C;AAC3C,uEAAqD;AACrD,4EAA0D;AAC1D,oEAAkD;AAClD,6DAA2C;AAC3C,4DAA0C;AAC1C,0EAAwD;AACxD,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,sFAAkF;AAAzE,mIAAA,sBAAsB,OAAA;AAC/B,qEAAmD;AACnD,sEAAoD;AACpD,sEAAoD;AACpD,qEAAmD;AACnD,gFAQ+C;AAN3C,mIAAA,yBAAyB,OAAA;AACzB,oIAAA,0BAA0B,OAAA;AAM9B,wEAM2C;AALvC,6DAA6D;AAC7D,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,oHAAA,cAAc,OAAA;AAGlB,qEAAqE;AACrE,wEAAqE;AAA5D,sHAAA,gBAAgB,OAAA;AACzB,2EAAyD;AACzD,iFAA+D;AAE/D,iEAA+C;AAC/C,kEAAmF;AAA1E,8GAAA,WAAW,OAAA;AACpB,2EAAyD;AACzD,kEAAgD;AAChD,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AAEnD,6DAA2C;AAC3C,8DAA4C;AAC5C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AACrC,4DAA0C;AAI1C,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAE5C,8DAA4C;AAC5C,6DAA2C;AAE3C,6DAA2C;AAC3C,uDAAqC;AACrC,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,oDAAkC;AAClC,kDAAgC;AAChC,4DAA0C;AAE1C,8DAA4C;AAC5C,+DAA6C;AAC7C,6DAA2C;AAC3C,uEAAqD;AACrD,4EAA0D;AAC1D,oEAAkD;AAClD,6DAA2C;AAC3C,4DAA0C;AAC1C,8DAA4C;AAC5C,8DAA4C;AAC5C,sEAAoD;AACpD,sEAAoD;AAEpD,0EAAwD;AACxD,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,sFAAkF;AAAzE,mIAAA,sBAAsB,OAAA;AAC/B,yEAAuD;AACvD,qEAAmD;AACnD,qEAAmD;AACnD,sEAAoD;AACpD,sEAAoD;AACpD,qEAAmD;AACnD,gFAQ+C;AAN3C,mIAAA,yBAAyB,OAAA;AACzB,oIAAA,0BAA0B,OAAA;AAM9B,wEAM2C;AALvC,6DAA6D;AAC7D,wHAAA,kBAAkB,OAAA;AAClB,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,oHAAA,cAAc,OAAA;AAGlB,qEAAqE;AACrE,wEAAqE;AAA5D,sHAAA,gBAAgB,OAAA;AACzB,2EAAyD;AACzD,iFAA+D;AAE/D,iEAA+C;AAC/C,kEAAmF;AAA1E,8GAAA,WAAW,OAAA;AACpB,yEAAuD;AACvD,kFAAwG;AAA/F,yHAAA,cAAc,OAAA;AACvB,2EAAyD;AACzD,kEAAgD;AAChD,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AAEnD,6DAA2C;AAC3C,8DAA4C;AAC5C,wDAAsC;AACtC,wDAAsC;AACtC,uDAAqC;AAErC,4DAA0C;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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# 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
  */
@@ -57,12 +57,14 @@ class ColumnReference extends SqlComponent_1.SqlComponent {
57
57
  exports.ColumnReference = ColumnReference;
58
58
  ColumnReference.kind = Symbol("ColumnReference");
59
59
  class FunctionCall extends SqlComponent_1.SqlComponent {
60
- constructor(namespaces, name, argument, over, withinGroup = null) {
60
+ constructor(namespaces, name, argument, over, withinGroup = null, withOrdinality = false, internalOrderBy = null) {
61
61
  super();
62
62
  this.qualifiedName = new QualifiedName(namespaces, name);
63
63
  this.argument = argument;
64
64
  this.over = over;
65
65
  this.withinGroup = withinGroup;
66
+ this.withOrdinality = withOrdinality;
67
+ this.internalOrderBy = internalOrderBy;
66
68
  }
67
69
  /**
68
70
  * 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
  }
@@ -130,8 +130,20 @@ class FunctionExpressionParser {
130
130
  const name = fullNameResult.name;
131
131
  idx = fullNameResult.newIndex;
132
132
  if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.OpenParen)) {
133
- // General argument parsing
134
- const arg = ValueParser_1.ValueParser.parseArgument(Lexeme_1.TokenType.OpenParen, Lexeme_1.TokenType.CloseParen, lexemes, idx);
133
+ // Check if this is an aggregate function that supports internal ORDER BY
134
+ const functionName = name.name.toLowerCase();
135
+ let arg;
136
+ let internalOrderBy = null;
137
+ if (this.AGGREGATE_FUNCTIONS_WITH_ORDER_BY.has(functionName)) {
138
+ // Use special aggregate function argument parser
139
+ const result = this.parseAggregateArguments(lexemes, idx);
140
+ arg = { value: result.arguments, newIndex: result.newIndex };
141
+ internalOrderBy = result.orderByClause;
142
+ }
143
+ else {
144
+ // General argument parsing
145
+ arg = ValueParser_1.ValueParser.parseArgument(Lexeme_1.TokenType.OpenParen, Lexeme_1.TokenType.CloseParen, lexemes, idx);
146
+ }
135
147
  idx = arg.newIndex;
136
148
  // Check for WITHIN GROUP clause
137
149
  let withinGroup = null;
@@ -140,14 +152,20 @@ class FunctionExpressionParser {
140
152
  withinGroup = withinGroupResult.value;
141
153
  idx = withinGroupResult.newIndex;
142
154
  }
155
+ // Check for WITH ORDINALITY clause
156
+ let withOrdinality = false;
157
+ if (idx < lexemes.length && lexemes[idx].value === "with ordinality") {
158
+ withOrdinality = true;
159
+ idx++; // Skip single "with ordinality" token
160
+ }
143
161
  if (idx < lexemes.length && lexemes[idx].value === "over") {
144
162
  const over = OverExpressionParser_1.OverExpressionParser.parseFromLexeme(lexemes, idx);
145
163
  idx = over.newIndex;
146
- const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg.value, over.value, withinGroup);
164
+ const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg.value, over.value, withinGroup, withOrdinality, internalOrderBy);
147
165
  return { value, newIndex: idx };
148
166
  }
149
167
  else {
150
- const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg.value, null, withinGroup);
168
+ const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg.value, null, withinGroup, withOrdinality, internalOrderBy);
151
169
  return { value, newIndex: idx };
152
170
  }
153
171
  }
@@ -199,16 +217,22 @@ class FunctionExpressionParser {
199
217
  withinGroup = withinGroupResult.value;
200
218
  idx = withinGroupResult.newIndex;
201
219
  }
220
+ // Check for WITH ORDINALITY clause
221
+ let withOrdinality = false;
222
+ if (idx < lexemes.length && lexemes[idx].value === "with ordinality") {
223
+ withOrdinality = true;
224
+ idx++; // Skip single "with ordinality" token
225
+ }
202
226
  // Use the previously parsed namespaces and function name for consistency
203
227
  if (idx < lexemes.length && lexemes[idx].value === "over") {
204
228
  idx++;
205
229
  const over = OverExpressionParser_1.OverExpressionParser.parseFromLexeme(lexemes, idx);
206
230
  idx = over.newIndex;
207
- const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg, over.value, withinGroup);
231
+ const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg, over.value, withinGroup, withOrdinality, null);
208
232
  return { value, newIndex: idx };
209
233
  }
210
234
  else {
211
- const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg, null, withinGroup);
235
+ const value = new ValueComponent_1.FunctionCall(namespaces, name.name, arg, null, withinGroup, withOrdinality, null);
212
236
  return { value, newIndex: idx };
213
237
  }
214
238
  }
@@ -263,6 +287,86 @@ class FunctionExpressionParser {
263
287
  idx++;
264
288
  return { value: orderByResult.value, newIndex: idx };
265
289
  }
290
+ /**
291
+ * Parse arguments for aggregate functions that support internal ORDER BY
292
+ * Handles patterns like: string_agg(expr, separator ORDER BY sort_expr)
293
+ * @param lexemes Array of lexemes to parse
294
+ * @param index Current parsing index (should point to opening parenthesis)
295
+ * @returns Parsed arguments, ORDER BY clause, and new index
296
+ */
297
+ static parseAggregateArguments(lexemes, index) {
298
+ let idx = index;
299
+ const args = [];
300
+ let orderByClause = null;
301
+ // Check for opening parenthesis
302
+ if (idx >= lexemes.length || !(lexemes[idx].type & Lexeme_1.TokenType.OpenParen)) {
303
+ throw ParseError_1.ParseError.fromUnparsedLexemes(lexemes, idx, `Expected opening parenthesis.`);
304
+ }
305
+ idx++;
306
+ // Handle empty arguments
307
+ if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.CloseParen)) {
308
+ idx++;
309
+ return { arguments: new ValueComponent_1.ValueList([]), orderByClause: null, newIndex: idx };
310
+ }
311
+ // Handle wildcard case
312
+ if (idx < lexemes.length && lexemes[idx].value === "*") {
313
+ const wildcard = new ValueComponent_1.ColumnReference(null, "*");
314
+ idx++;
315
+ if (idx < lexemes.length && (lexemes[idx].type & Lexeme_1.TokenType.CloseParen)) {
316
+ idx++;
317
+ return { arguments: wildcard, orderByClause: null, newIndex: idx };
318
+ }
319
+ else {
320
+ throw ParseError_1.ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis after wildcard '*'.`);
321
+ }
322
+ }
323
+ // Parse first argument
324
+ const firstArg = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
325
+ idx = firstArg.newIndex;
326
+ args.push(firstArg.value);
327
+ // Parse additional arguments separated by comma, or ORDER BY
328
+ while (idx < lexemes.length &&
329
+ ((lexemes[idx].type & Lexeme_1.TokenType.Comma) || lexemes[idx].value === "order by")) {
330
+ // Check if current token is ORDER BY (without comma)
331
+ if (lexemes[idx].value === "order by") {
332
+ // Parse ORDER BY clause
333
+ const orderByResult = OrderByClauseParser_1.OrderByClauseParser.parseFromLexeme(lexemes, idx);
334
+ idx = orderByResult.newIndex;
335
+ orderByClause = orderByResult.value;
336
+ break; // ORDER BY should be the last element in aggregate functions
337
+ }
338
+ if (lexemes[idx].type & Lexeme_1.TokenType.Comma) {
339
+ idx++; // Skip comma
340
+ // Check if next token after comma is ORDER BY
341
+ if (idx < lexemes.length && lexemes[idx].value === "order by") {
342
+ // Parse ORDER BY clause
343
+ const orderByResult = OrderByClauseParser_1.OrderByClauseParser.parseFromLexeme(lexemes, idx);
344
+ idx = orderByResult.newIndex;
345
+ orderByClause = orderByResult.value;
346
+ break; // ORDER BY should be the last element in aggregate functions
347
+ }
348
+ // Parse regular argument after comma
349
+ const argResult = ValueParser_1.ValueParser.parseFromLexeme(lexemes, idx);
350
+ idx = argResult.newIndex;
351
+ args.push(argResult.value);
352
+ }
353
+ }
354
+ // Check for closing parenthesis
355
+ if (idx >= lexemes.length || !(lexemes[idx].type & Lexeme_1.TokenType.CloseParen)) {
356
+ throw ParseError_1.ParseError.fromUnparsedLexemes(lexemes, idx, `Expected closing parenthesis.`);
357
+ }
358
+ idx++;
359
+ // Return single argument if only one, otherwise return ValueList
360
+ const argumentsValue = args.length === 1 ? args[0] : new ValueComponent_1.ValueList(args);
361
+ return { arguments: argumentsValue, orderByClause, newIndex: idx };
362
+ }
266
363
  }
267
364
  exports.FunctionExpressionParser = FunctionExpressionParser;
365
+ /**
366
+ * Aggregate functions that support internal ORDER BY clause
367
+ */
368
+ FunctionExpressionParser.AGGREGATE_FUNCTIONS_WITH_ORDER_BY = new Set([
369
+ 'string_agg', 'array_agg', 'json_agg', 'jsonb_agg',
370
+ 'json_object_agg', 'jsonb_object_agg', 'xmlagg'
371
+ ]);
268
372
  //# sourceMappingURL=FunctionExpressionParser.js.map