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
@@ -1,4 +1,5 @@
1
1
  import { SelectQuery } from "../models/SelectQuery";
2
+ import { LineColumn } from "../utils/LexemeCursor";
2
3
  /**
3
4
  * A utility class for renaming Common Table Expressions (CTEs) in SQL queries.
4
5
  *
@@ -57,6 +58,7 @@ export declare class CTERenamer {
57
58
  private dependencyAnalyzer;
58
59
  private columnReferenceCollector;
59
60
  private tableSourceCollector;
61
+ private keywordParser;
60
62
  /**
61
63
  * Creates a new instance of CTERenamer.
62
64
  *
@@ -141,4 +143,55 @@ export declare class CTERenamer {
141
143
  * Updates a specific table source if it matches the old CTE name.
142
144
  */
143
145
  private updateTableSource;
146
+ /**
147
+ * GUI-integrated CTE renaming with line/column position support.
148
+ *
149
+ * Designed for editor integration where users can right-click on CTE names
150
+ * and rename them. Automatically detects the CTE name at the cursor position
151
+ * and performs the rename operation.
152
+ *
153
+ * @param sql - The complete SQL string containing CTE definitions
154
+ * @param position - Line and column position where the user clicked (1-based)
155
+ * @param newName - The new name for the CTE
156
+ * @returns The updated SQL string with the CTE renamed
157
+ *
158
+ * @throws {Error} When no CTE name is found at the specified position
159
+ * @throws {Error} When the new name conflicts with existing CTE names
160
+ *
161
+ * @example
162
+ * ```typescript
163
+ * const sql = `
164
+ * WITH user_data AS (SELECT * FROM users),
165
+ * order_data AS (SELECT * FROM orders)
166
+ * SELECT * FROM user_data JOIN order_data ON ...
167
+ * `;
168
+ *
169
+ * const renamer = new CTERenamer();
170
+ * // User right-clicks on 'user_data' at line 2, column 8
171
+ * const result = renamer.renameCTEAtPosition(sql, { line: 2, column: 8 }, 'customer_data');
172
+ * console.log(result);
173
+ * // Returns SQL with 'user_data' renamed to 'customer_data' everywhere
174
+ * ```
175
+ */
176
+ renameCTEAtPosition(sql: string, position: LineColumn, newName: string): string;
177
+ /**
178
+ * Check for naming conflicts with existing CTEs and reserved keywords.
179
+ * @private
180
+ */
181
+ private checkNameConflicts;
182
+ /**
183
+ * Checks if the new name conflicts with SQL keywords using the existing KeywordTrie.
184
+ * @private
185
+ */
186
+ private checkKeywordConflicts;
187
+ /**
188
+ * Fallback method for basic reserved keyword checking.
189
+ * @private
190
+ */
191
+ private isBasicReservedKeyword;
192
+ /**
193
+ * Check if a CTE name exists in the query.
194
+ * @private
195
+ */
196
+ private isCTENameInQuery;
144
197
  }
@@ -7,6 +7,12 @@ const CTEDependencyAnalyzer_1 = require("./CTEDependencyAnalyzer");
7
7
  const TableSourceCollector_1 = require("./TableSourceCollector");
8
8
  const ColumnReferenceCollector_1 = require("./ColumnReferenceCollector");
9
9
  const ValueComponent_1 = require("../models/ValueComponent");
10
+ const LexemeCursor_1 = require("../utils/LexemeCursor");
11
+ const SelectQueryParser_1 = require("../parsers/SelectQueryParser");
12
+ const Lexeme_1 = require("../models/Lexeme");
13
+ const SqlFormatter_1 = require("./SqlFormatter");
14
+ const KeywordParser_1 = require("../parsers/KeywordParser");
15
+ const CommandTokenReader_1 = require("../tokenReaders/CommandTokenReader");
10
16
  /**
11
17
  * Error messages for CTE renaming operations.
12
18
  */
@@ -85,6 +91,7 @@ class CTERenamer {
85
91
  this.dependencyAnalyzer = new CTEDependencyAnalyzer_1.CTEDependencyAnalyzer();
86
92
  this.columnReferenceCollector = new ColumnReferenceCollector_1.ColumnReferenceCollector();
87
93
  this.tableSourceCollector = new TableSourceCollector_1.TableSourceCollector(); // Use default selectableOnly=true to avoid infinite recursion
94
+ this.keywordParser = new KeywordParser_1.KeywordParser(CommandTokenReader_1.commandKeywordTrie);
88
95
  }
89
96
  /**
90
97
  * Renames a Common Table Expression (CTE) and updates all references to it.
@@ -341,6 +348,137 @@ class CTERenamer {
341
348
  }
342
349
  }
343
350
  }
351
+ /**
352
+ * GUI-integrated CTE renaming with line/column position support.
353
+ *
354
+ * Designed for editor integration where users can right-click on CTE names
355
+ * and rename them. Automatically detects the CTE name at the cursor position
356
+ * and performs the rename operation.
357
+ *
358
+ * @param sql - The complete SQL string containing CTE definitions
359
+ * @param position - Line and column position where the user clicked (1-based)
360
+ * @param newName - The new name for the CTE
361
+ * @returns The updated SQL string with the CTE renamed
362
+ *
363
+ * @throws {Error} When no CTE name is found at the specified position
364
+ * @throws {Error} When the new name conflicts with existing CTE names
365
+ *
366
+ * @example
367
+ * ```typescript
368
+ * const sql = `
369
+ * WITH user_data AS (SELECT * FROM users),
370
+ * order_data AS (SELECT * FROM orders)
371
+ * SELECT * FROM user_data JOIN order_data ON ...
372
+ * `;
373
+ *
374
+ * const renamer = new CTERenamer();
375
+ * // User right-clicks on 'user_data' at line 2, column 8
376
+ * const result = renamer.renameCTEAtPosition(sql, { line: 2, column: 8 }, 'customer_data');
377
+ * console.log(result);
378
+ * // Returns SQL with 'user_data' renamed to 'customer_data' everywhere
379
+ * ```
380
+ */
381
+ renameCTEAtPosition(sql, position, newName) {
382
+ // Input validation
383
+ if (!(sql === null || sql === void 0 ? void 0 : sql.trim())) {
384
+ throw new Error('SQL cannot be empty');
385
+ }
386
+ if (!position || position.line < 1 || position.column < 1) {
387
+ throw new Error('Position must be a valid line/column (1-based)');
388
+ }
389
+ if (!(newName === null || newName === void 0 ? void 0 : newName.trim())) {
390
+ throw new Error('New CTE name cannot be empty');
391
+ }
392
+ // Find the lexeme at the specified position
393
+ const lexeme = LexemeCursor_1.LexemeCursor.findLexemeAtLineColumn(sql, position);
394
+ if (!lexeme) {
395
+ throw new Error(`No CTE name found at line ${position.line}, column ${position.column}`);
396
+ }
397
+ const cteName = lexeme.value;
398
+ // Parse the SQL to get the query structure
399
+ const query = SelectQueryParser_1.SelectQueryParser.parse(sql);
400
+ // First check if this is actually a CTE name in the query
401
+ if (!this.isCTENameInQuery(query, cteName)) {
402
+ throw new Error(`'${cteName}' is not a CTE name in this query`);
403
+ }
404
+ // Validate that the lexeme is a valid identifier or function (not a command/keyword)
405
+ if (!(lexeme.type & (Lexeme_1.TokenType.Identifier | Lexeme_1.TokenType.Function))) {
406
+ throw new Error(`Token at position is not a CTE name: '${lexeme.value}'`);
407
+ }
408
+ // Check for naming conflicts
409
+ const conflicts = this.checkNameConflicts(query, newName, cteName);
410
+ if (conflicts.length > 0) {
411
+ throw new Error(conflicts.join(', '));
412
+ }
413
+ // Perform the CTE rename operation
414
+ this.renameCTE(query, cteName, newName);
415
+ // Return the formatted SQL using SqlFormatter
416
+ const formatter = new SqlFormatter_1.SqlFormatter();
417
+ const result = formatter.format(query);
418
+ return result.formattedSql;
419
+ }
420
+ /**
421
+ * Check for naming conflicts with existing CTEs and reserved keywords.
422
+ * @private
423
+ */
424
+ checkNameConflicts(query, newName, currentName) {
425
+ const conflicts = [];
426
+ // Skip checks if the name isn't actually changing
427
+ if (currentName === newName) {
428
+ return conflicts;
429
+ }
430
+ // Check for reserved keyword conflicts
431
+ conflicts.push(...this.checkKeywordConflicts(newName));
432
+ // Check for existing CTE name conflicts
433
+ if (this.isCTENameInQuery(query, newName)) {
434
+ conflicts.push(`CTE name '${newName}' already exists`);
435
+ }
436
+ return conflicts;
437
+ }
438
+ /**
439
+ * Checks if the new name conflicts with SQL keywords using the existing KeywordTrie.
440
+ * @private
441
+ */
442
+ checkKeywordConflicts(newName) {
443
+ const conflicts = [];
444
+ try {
445
+ // Use the KeywordParser to check if the new name is a reserved keyword
446
+ const keywordResult = this.keywordParser.parse(newName, 0);
447
+ if (keywordResult !== null && keywordResult.keyword.toLowerCase() === newName.toLowerCase()) {
448
+ conflicts.push(`'${newName}' is a reserved SQL keyword and should not be used as a CTE name`);
449
+ }
450
+ }
451
+ catch (error) {
452
+ console.warn(`Failed to check keyword conflicts for '${newName}':`, error);
453
+ // Fallback to basic check if KeywordParser fails
454
+ if (this.isBasicReservedKeyword(newName)) {
455
+ conflicts.push(`'${newName}' is a reserved SQL keyword and should not be used as a CTE name`);
456
+ }
457
+ }
458
+ return conflicts;
459
+ }
460
+ /**
461
+ * Fallback method for basic reserved keyword checking.
462
+ * @private
463
+ */
464
+ isBasicReservedKeyword(name) {
465
+ const basicKeywords = ['select', 'from', 'where', 'with', 'as', 'union', 'join', 'table', 'null'];
466
+ return basicKeywords.includes(name.toLowerCase());
467
+ }
468
+ /**
469
+ * Check if a CTE name exists in the query.
470
+ * @private
471
+ */
472
+ isCTENameInQuery(query, cteName) {
473
+ if (query instanceof SimpleSelectQuery_1.SimpleSelectQuery && query.withClause) {
474
+ return query.withClause.tables.some(cte => cte.aliasExpression && cte.aliasExpression.table && cte.aliasExpression.table.name === cteName);
475
+ }
476
+ if (query instanceof BinarySelectQuery_1.BinarySelectQuery) {
477
+ return this.isCTENameInQuery(query.left, cteName) ||
478
+ this.isCTENameInQuery(query.right, cteName);
479
+ }
480
+ return false;
481
+ }
344
482
  }
345
483
  exports.CTERenamer = CTERenamer;
346
484
  //# sourceMappingURL=CTERenamer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CTERenamer.js","sourceRoot":"","sources":["../../../src/transformers/CTERenamer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CTERenamer.js","sourceRoot":"","sources":["../../../src/transformers/CTERenamer.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,36 @@ export type FilterConditionValue = SqlParameterValue | SqlParameterValue[] | {
27
27
  }[];
28
28
  column?: string;
29
29
  };
30
+ /**
31
+ * Filter conditions for dynamic query building.
32
+ *
33
+ * Supports both unqualified and qualified column names:
34
+ * - Unqualified: `{ name: 'Alice' }` - applies to all columns named 'name'
35
+ * - Qualified: `{ 'users.name': 'Bob' }` - applies only to the 'name' column in the 'users' table/alias
36
+ * - Hybrid: `{ name: 'Default', 'users.name': 'Override' }` - qualified names take priority over unqualified
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // Basic usage (backward compatible)
41
+ * const filter: FilterConditions = {
42
+ * name: 'Alice',
43
+ * status: 'active'
44
+ * };
45
+ *
46
+ * // Qualified names for disambiguation in JOINs
47
+ * const filter: FilterConditions = {
48
+ * 'users.name': 'Alice', // Only applies to users.name
49
+ * 'profiles.name': 'Bob' // Only applies to profiles.name
50
+ * };
51
+ *
52
+ * // Hybrid approach
53
+ * const filter: FilterConditions = {
54
+ * status: 'active', // Applies to all 'status' columns
55
+ * 'users.name': 'Alice', // Overrides for users.name specifically
56
+ * 'profiles.name': 'Bob' // Overrides for profiles.name specifically
57
+ * };
58
+ * ```
59
+ */
30
60
  export type FilterConditions = Record<string, FilterConditionValue>;
31
61
  /**
32
62
  * Options for dynamic query building
@@ -64,6 +94,48 @@ export interface QueryBuildOptions {
64
94
  * - Composable - combines multiple injectors in the correct order
65
95
  * - Type-safe - provides TypeScript types for all options
66
96
  * - Testable - easy to unit test without mocking file system
97
+ * - Table.Column Notation - supports qualified column names for disambiguation in JOINs
98
+ *
99
+ * ## Table.Column Notation Support
100
+ *
101
+ * This class now supports qualified column names in filter conditions to disambiguate
102
+ * columns with the same name from different tables in JOIN queries:
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * // Basic filtering (backward compatible)
107
+ * builder.buildQuery('SELECT u.id, u.name FROM users u', {
108
+ * filter: { name: 'Alice' }
109
+ * });
110
+ *
111
+ * // Qualified column names for JOIN disambiguation
112
+ * builder.buildQuery(`
113
+ * SELECT u.id, u.name, p.name, o.total
114
+ * FROM users u
115
+ * JOIN profiles p ON u.id = p.user_id
116
+ * JOIN orders o ON u.id = o.user_id
117
+ * `, {
118
+ * filter: {
119
+ * 'u.name': 'Alice', // Only applies to users.name
120
+ * 'p.name': 'Profile Alice', // Only applies to profiles.name
121
+ * 'o.total': { min: 100 } // Only applies to orders.total
122
+ * }
123
+ * });
124
+ *
125
+ * // Hybrid approach - qualified names override unqualified
126
+ * builder.buildQuery(`
127
+ * SELECT u.name, p.name, o.name FROM users u
128
+ * JOIN profiles p ON u.id = p.user_id
129
+ * JOIN orders o ON u.id = o.user_id
130
+ * `, {
131
+ * filter: {
132
+ * name: 'Default', // Applies to all 'name' columns
133
+ * 'u.name': 'Alice', // Overrides for users.name specifically
134
+ * 'p.name': 'Bob' // Overrides for profiles.name specifically
135
+ * // orders.name gets 'Default'
136
+ * }
137
+ * });
138
+ * ```
67
139
  */
68
140
  export declare class DynamicQueryBuilder {
69
141
  private tableColumnResolver?;
@@ -22,6 +22,48 @@ const ParameterDetector_1 = require("../utils/ParameterDetector");
22
22
  * - Composable - combines multiple injectors in the correct order
23
23
  * - Type-safe - provides TypeScript types for all options
24
24
  * - Testable - easy to unit test without mocking file system
25
+ * - Table.Column Notation - supports qualified column names for disambiguation in JOINs
26
+ *
27
+ * ## Table.Column Notation Support
28
+ *
29
+ * This class now supports qualified column names in filter conditions to disambiguate
30
+ * columns with the same name from different tables in JOIN queries:
31
+ *
32
+ * @example
33
+ * ```typescript
34
+ * // Basic filtering (backward compatible)
35
+ * builder.buildQuery('SELECT u.id, u.name FROM users u', {
36
+ * filter: { name: 'Alice' }
37
+ * });
38
+ *
39
+ * // Qualified column names for JOIN disambiguation
40
+ * builder.buildQuery(`
41
+ * SELECT u.id, u.name, p.name, o.total
42
+ * FROM users u
43
+ * JOIN profiles p ON u.id = p.user_id
44
+ * JOIN orders o ON u.id = o.user_id
45
+ * `, {
46
+ * filter: {
47
+ * 'u.name': 'Alice', // Only applies to users.name
48
+ * 'p.name': 'Profile Alice', // Only applies to profiles.name
49
+ * 'o.total': { min: 100 } // Only applies to orders.total
50
+ * }
51
+ * });
52
+ *
53
+ * // Hybrid approach - qualified names override unqualified
54
+ * builder.buildQuery(`
55
+ * SELECT u.name, p.name, o.name FROM users u
56
+ * JOIN profiles p ON u.id = p.user_id
57
+ * JOIN orders o ON u.id = o.user_id
58
+ * `, {
59
+ * filter: {
60
+ * name: 'Default', // Applies to all 'name' columns
61
+ * 'u.name': 'Alice', // Overrides for users.name specifically
62
+ * 'p.name': 'Bob' // Overrides for profiles.name specifically
63
+ * // orders.name gets 'Default'
64
+ * }
65
+ * });
66
+ * ```
25
67
  */
26
68
  class DynamicQueryBuilder {
27
69
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { SelectQuery } from '../models/SelectQuery';
2
+ import { TableColumnResolver } from './TableColumnResolver';
3
+ /**
4
+ * Options for FilterableItemCollector
5
+ */
6
+ export interface FilterableItemCollectorOptions {
7
+ /** If true, return qualified names (table.column), if false return column names only */
8
+ qualified?: boolean;
9
+ /** If true, collect all columns available from upstream sources for maximum search conditions */
10
+ upstream?: boolean;
11
+ }
12
+ /**
13
+ * Represents a filterable item that can be used in DynamicQueryBuilder
14
+ * Can be either a table column or a SQL parameter
15
+ */
16
+ export declare class FilterableItem {
17
+ readonly name: string;
18
+ readonly type: 'column' | 'parameter';
19
+ readonly tableName?: string | undefined;
20
+ constructor(name: string, type: 'column' | 'parameter', tableName?: string | undefined);
21
+ }
22
+ /**
23
+ * Collects filterable items (columns and parameters) from SQL queries
24
+ * for use in DynamicQueryBuilder filtering functionality.
25
+ *
26
+ * This class combines:
27
+ * - Table columns (from SelectableColumnCollector with FullName duplicate detection)
28
+ * - SQL parameters (from ParameterDetector)
29
+ *
30
+ * Features:
31
+ * - FullName mode preserves columns with same names from different tables (u.id vs p.id)
32
+ * - Upstream collection (default) provides comprehensive column discovery for maximum filtering
33
+ * - Qualified mode option for table.column naming in complex JOINs
34
+ *
35
+ * This allows DynamicQueryBuilder to filter on both actual table columns
36
+ * and fixed parameters defined in the SQL with full JOIN table support.
37
+ */
38
+ export declare class FilterableItemCollector {
39
+ private tableColumnResolver?;
40
+ private options;
41
+ /**
42
+ * Creates a new FilterableItemCollector
43
+ * @param tableColumnResolver Optional resolver for wildcard column expansion
44
+ * @param options Optional configuration options
45
+ * - qualified: If true, return table.column names; if false, return column names only
46
+ * - upstream: If true (default), collect all available columns from upstream sources for maximum filtering capability
47
+ */
48
+ constructor(tableColumnResolver?: TableColumnResolver, options?: FilterableItemCollectorOptions);
49
+ /**
50
+ * Collects all filterable items (columns and parameters) from a SQL query
51
+ * @param query The parsed SQL query to analyze
52
+ * @returns Array of FilterableItem objects representing columns and parameters
53
+ */
54
+ collect(query: SelectQuery): FilterableItem[];
55
+ /**
56
+ * Collects table columns using both SelectableColumnCollector and SchemaCollector
57
+ */
58
+ private collectColumns;
59
+ /**
60
+ * Attempts to infer table name from query structure for simple cases
61
+ */
62
+ private inferTableNameFromQuery;
63
+ /**
64
+ * Attempts to resolve real table name from alias/namespace
65
+ */
66
+ private getRealTableName;
67
+ /**
68
+ * Extracts real table name from a datasource
69
+ */
70
+ private extractRealTableName;
71
+ /**
72
+ * Collects SQL parameters from the query using ParameterDetector
73
+ */
74
+ private collectParameters;
75
+ /**
76
+ * Removes duplicate items with the same name, type, and table name
77
+ * This preserves columns with the same name from different tables
78
+ */
79
+ private removeDuplicates;
80
+ }