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.
- package/dist/esm/index.js +57 -48
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.min.js +37 -29
- package/dist/esm/index.min.js.map +4 -4
- package/dist/esm/src/formatters/OriginalFormatRestorer.d.ts +40 -0
- package/dist/esm/src/formatters/OriginalFormatRestorer.js +135 -0
- package/dist/esm/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/esm/src/index.d.ts +11 -0
- package/dist/esm/src/index.js +9 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/models/FormattingLexeme.d.ts +66 -0
- package/dist/esm/src/models/FormattingLexeme.js +2 -0
- package/dist/esm/src/models/FormattingLexeme.js.map +1 -0
- package/dist/esm/src/models/ValueComponent.d.ts +3 -1
- package/dist/esm/src/models/ValueComponent.js +3 -1
- package/dist/esm/src/models/ValueComponent.js.map +1 -1
- package/dist/esm/src/parsers/FunctionExpressionParser.d.ts +12 -0
- package/dist/esm/src/parsers/FunctionExpressionParser.js +111 -7
- package/dist/esm/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/esm/src/parsers/KeywordParser.d.ts +1 -0
- package/dist/esm/src/parsers/KeywordParser.js +10 -4
- package/dist/esm/src/parsers/KeywordParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlPrintTokenParser.js +8 -0
- package/dist/esm/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/esm/src/parsers/SqlTokenizer.d.ts +42 -2
- package/dist/esm/src/parsers/SqlTokenizer.js +213 -12
- package/dist/esm/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.d.ts +3 -0
- package/dist/esm/src/tokenReaders/CommandTokenReader.js +4 -1
- package/dist/esm/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/esm/src/transformers/AliasRenamer.d.ts +199 -0
- package/dist/esm/src/transformers/AliasRenamer.js +595 -0
- package/dist/esm/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/esm/src/transformers/CTERenamer.d.ts +53 -0
- package/dist/esm/src/transformers/CTERenamer.js +138 -0
- package/dist/esm/src/transformers/CTERenamer.js.map +1 -1
- package/dist/esm/src/transformers/DynamicQueryBuilder.d.ts +72 -0
- package/dist/esm/src/transformers/DynamicQueryBuilder.js +42 -0
- package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/esm/src/transformers/FilterableItemCollector.d.ts +80 -0
- package/dist/esm/src/transformers/FilterableItemCollector.js +254 -0
- package/dist/esm/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.d.ts +3 -0
- package/dist/esm/src/transformers/SelectableColumnCollector.js +68 -7
- package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/esm/src/transformers/SmartRenamer.d.ts +134 -0
- package/dist/esm/src/transformers/SmartRenamer.js +430 -0
- package/dist/esm/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js +493 -0
- package/dist/esm/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/esm/src/transformers/SqlParamInjector.d.ts +27 -0
- package/dist/esm/src/transformers/SqlParamInjector.js +304 -16
- package/dist/esm/src/transformers/SqlParamInjector.js.map +1 -1
- package/dist/esm/src/transformers/SqlSortInjector.js +6 -3
- package/dist/esm/src/transformers/SqlSortInjector.js.map +1 -1
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +5 -2
- package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/esm/src/utils/LexemeCursor.d.ts +41 -0
- package/dist/esm/src/utils/LexemeCursor.js +93 -0
- package/dist/esm/src/utils/LexemeCursor.js.map +1 -1
- package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
- package/dist/index.min.js +37 -29
- package/dist/index.min.js.map +4 -4
- package/dist/src/formatters/OriginalFormatRestorer.d.ts +40 -0
- package/dist/src/formatters/OriginalFormatRestorer.js +139 -0
- package/dist/src/formatters/OriginalFormatRestorer.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.js +11 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/FormattingLexeme.d.ts +66 -0
- package/dist/src/models/FormattingLexeme.js +3 -0
- package/dist/src/models/FormattingLexeme.js.map +1 -0
- package/dist/src/models/ValueComponent.d.ts +3 -1
- package/dist/src/models/ValueComponent.js +3 -1
- package/dist/src/models/ValueComponent.js.map +1 -1
- package/dist/src/parsers/FunctionExpressionParser.d.ts +12 -0
- package/dist/src/parsers/FunctionExpressionParser.js +110 -6
- package/dist/src/parsers/FunctionExpressionParser.js.map +1 -1
- package/dist/src/parsers/KeywordParser.d.ts +1 -0
- package/dist/src/parsers/KeywordParser.js +10 -4
- package/dist/src/parsers/KeywordParser.js.map +1 -1
- package/dist/src/parsers/SqlPrintTokenParser.js +8 -0
- package/dist/src/parsers/SqlPrintTokenParser.js.map +1 -1
- package/dist/src/parsers/SqlTokenizer.d.ts +42 -2
- package/dist/src/parsers/SqlTokenizer.js +222 -12
- package/dist/src/parsers/SqlTokenizer.js.map +1 -1
- package/dist/src/tokenReaders/CommandTokenReader.d.ts +3 -0
- package/dist/src/tokenReaders/CommandTokenReader.js +5 -2
- package/dist/src/tokenReaders/CommandTokenReader.js.map +1 -1
- package/dist/src/transformers/AliasRenamer.d.ts +199 -0
- package/dist/src/transformers/AliasRenamer.js +599 -0
- package/dist/src/transformers/AliasRenamer.js.map +1 -0
- package/dist/src/transformers/CTERenamer.d.ts +53 -0
- package/dist/src/transformers/CTERenamer.js +138 -0
- package/dist/src/transformers/CTERenamer.js.map +1 -1
- package/dist/src/transformers/DynamicQueryBuilder.d.ts +72 -0
- package/dist/src/transformers/DynamicQueryBuilder.js +42 -0
- package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -1
- package/dist/src/transformers/FilterableItemCollector.d.ts +80 -0
- package/dist/src/transformers/FilterableItemCollector.js +259 -0
- package/dist/src/transformers/FilterableItemCollector.js.map +1 -0
- package/dist/src/transformers/SelectableColumnCollector.d.ts +3 -0
- package/dist/src/transformers/SelectableColumnCollector.js +67 -6
- package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
- package/dist/src/transformers/SmartRenamer.d.ts +134 -0
- package/dist/src/transformers/SmartRenamer.js +442 -0
- package/dist/src/transformers/SmartRenamer.js.map +1 -0
- package/dist/src/transformers/SqlIdentifierRenamer.d.ts +150 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js +497 -0
- package/dist/src/transformers/SqlIdentifierRenamer.js.map +1 -0
- package/dist/src/transformers/SqlParamInjector.d.ts +27 -0
- package/dist/src/transformers/SqlParamInjector.js +303 -15
- package/dist/src/transformers/SqlParamInjector.js.map +1 -1
- package/dist/src/transformers/SqlSortInjector.js +5 -2
- package/dist/src/transformers/SqlSortInjector.js.map +1 -1
- package/dist/src/transformers/UpstreamSelectQueryFinder.js +4 -1
- package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
- package/dist/src/utils/LexemeCursor.d.ts +41 -0
- package/dist/src/utils/LexemeCursor.js +93 -0
- package/dist/src/utils/LexemeCursor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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":";;;AACA,oEAAiE;AACjE,yDAAsD;AACtD,uDAAoE;AACpE,mEAAmF;AACnF,yEAAmF;AACnF,iDAA8C;AAC9C,6DAA0D;AAC1D,kEAA+D;
|
1
|
+
{"version":3,"file":"DynamicQueryBuilder.js","sourceRoot":"","sources":["../../../src/transformers/DynamicQueryBuilder.ts"],"names":[],"mappings":";;;AACA,oEAAiE;AACjE,yDAAsD;AACtD,uDAAoE;AACpE,mEAAmF;AACnF,yEAAmF;AACnF,iDAA8C;AAC9C,6DAA0D;AAC1D,kEAA+D;AA+E/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAa,mBAAmB;IAE5B;;;OAGG;IACH,YAAY,mBAAqD;QAC7D,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;IACnD,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,UAAU,CAAC,UAAkB,EAAE,UAA6B,EAAE;QAC1D,qBAAqB;QACrB,IAAI,WAA8B,CAAC;QACnC,IAAI,CAAC;YACD,WAAW,GAAG,qCAAiB,CAAC,KAAK,CAAC,UAAU,CAAsB,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,mDAAmD;QACnD,IAAI,aAAa,GAAgB,WAAW,CAAC;QAE7C,wEAAwE;QACxE,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,qCAAiB,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAE7G,yCAAyC;YACzC,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,eAAe,GAAG,IAAI,uCAAkB,CAAC,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,CAAC;gBAChF,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YACzE,CAAC;YAED,kEAAkE;YAClE,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,MAAM,aAAa,GAAG,IAAI,mCAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBACrE,sDAAsD;gBACtD,MAAM,WAAW,GAAG,2BAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACjE,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YACtE,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,IAAI,iCAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACnE,sDAAsD;YACtD,MAAM,WAAW,GAAG,2BAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACjE,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC,CAAQ,0DAA0D;QACnE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,EAAE,IAAI,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACzB,MAAM,kBAAkB,GAAG,IAAI,6CAAqB,EAAE,CAAC;gBACvD,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC7C,sDAAsD;gBACtD,MAAM,WAAW,GAAG,2BAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBACjE,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC7D,MAAM,WAAW,GAAG,IAAI,mDAAwB,EAAE,CAAC;YACnD,0DAA0D;YAC1D,MAAM,WAAW,GAAG,2BAAY,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACjE,aAAa,GAAG,WAAW,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,UAAkB,EAAE,MAAwB;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,gBAAgB,CAAC,UAAkB,EAAE,IAAoB;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC,CAAI;;;;;;;OAOF;IACH,mBAAmB,CAAC,UAAkB,EAAE,MAAyB;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,UAAkB,EAAE,SAAsB;QAC3D,OAAO,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,UAAkB;QAC1B,IAAI,CAAC;YACD,qCAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAChG,CAAC;IACL,CAAC;CACJ;AAxJD,kDAwJC"}
|
@@ -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
|
+
}
|