rawsql-ts 0.10.9-beta → 0.11.1-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 (104) hide show
  1. package/README.md +175 -47
  2. package/dist/esm/index.js +6 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +16 -14
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.js +6 -0
  7. package/dist/esm/src/index.js.map +1 -1
  8. package/dist/esm/src/tokenReaders/OperatorTokenReader.js +4 -0
  9. package/dist/esm/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  10. package/dist/esm/src/transformers/CTEDependencyTracer.js +249 -0
  11. package/dist/esm/src/transformers/CTEDependencyTracer.js.map +1 -0
  12. package/dist/esm/src/transformers/DynamicQueryBuilder.js +155 -0
  13. package/dist/esm/src/transformers/DynamicQueryBuilder.js.map +1 -0
  14. package/dist/esm/src/transformers/JsonMappingUnifier.js +217 -0
  15. package/dist/esm/src/transformers/JsonMappingUnifier.js.map +1 -0
  16. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js +103 -0
  17. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
  18. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js +204 -16
  19. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
  20. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js +26 -21
  21. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  22. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js +8 -5
  23. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
  24. package/dist/esm/src/transformers/SelectableColumnCollector.js +17 -5
  25. package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
  26. package/dist/esm/src/transformers/SqlFormatter.js +1 -2
  27. package/dist/esm/src/transformers/SqlFormatter.js.map +1 -1
  28. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js +342 -0
  29. package/dist/esm/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
  30. package/dist/esm/src/transformers/UnifiedJsonMapping.js +57 -0
  31. package/dist/esm/src/transformers/UnifiedJsonMapping.js.map +1 -0
  32. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +8 -1
  33. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  34. package/dist/esm/src/utils/JsonSchemaValidator.js +211 -0
  35. package/dist/esm/src/utils/JsonSchemaValidator.js.map +1 -0
  36. package/dist/esm/src/utils/OperatorPrecedence.js +3 -1
  37. package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -1
  38. package/dist/esm/src/utils/SchemaManager.js +0 -1
  39. package/dist/esm/src/utils/SchemaManager.js.map +1 -1
  40. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  41. package/dist/esm/types/src/index.d.ts +6 -0
  42. package/dist/esm/types/src/transformers/CTEDependencyTracer.d.ts +58 -0
  43. package/dist/esm/types/src/transformers/DynamicQueryBuilder.d.ts +108 -0
  44. package/dist/esm/types/src/transformers/JsonMappingUnifier.d.ts +95 -0
  45. package/dist/esm/types/src/transformers/ModelDrivenJsonMapping.d.ts +62 -0
  46. package/dist/esm/types/src/transformers/PostgresArrayEntityCteBuilder.d.ts +80 -1
  47. package/dist/esm/types/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -2
  48. package/dist/esm/types/src/transformers/SelectableColumnCollector.d.ts +14 -3
  49. package/dist/esm/types/src/transformers/SqlFormatter.d.ts +2 -3
  50. package/dist/esm/types/src/transformers/TypeTransformationPostProcessor.d.ts +108 -0
  51. package/dist/esm/types/src/transformers/UnifiedJsonMapping.d.ts +53 -0
  52. package/dist/esm/types/src/transformers/UpstreamSelectQueryFinder.d.ts +5 -1
  53. package/dist/esm/types/src/utils/JsonSchemaValidator.d.ts +81 -0
  54. package/dist/index.min.js +16 -14
  55. package/dist/index.min.js.map +4 -4
  56. package/dist/src/index.d.ts +6 -0
  57. package/dist/src/index.js +14 -0
  58. package/dist/src/index.js.map +1 -1
  59. package/dist/src/tokenReaders/OperatorTokenReader.js +4 -0
  60. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  61. package/dist/src/transformers/CTEDependencyTracer.d.ts +58 -0
  62. package/dist/src/transformers/CTEDependencyTracer.js +253 -0
  63. package/dist/src/transformers/CTEDependencyTracer.js.map +1 -0
  64. package/dist/src/transformers/DynamicQueryBuilder.d.ts +108 -0
  65. package/dist/src/transformers/DynamicQueryBuilder.js +159 -0
  66. package/dist/src/transformers/DynamicQueryBuilder.js.map +1 -0
  67. package/dist/src/transformers/JsonMappingUnifier.d.ts +95 -0
  68. package/dist/src/transformers/JsonMappingUnifier.js +226 -0
  69. package/dist/src/transformers/JsonMappingUnifier.js.map +1 -0
  70. package/dist/src/transformers/ModelDrivenJsonMapping.d.ts +62 -0
  71. package/dist/src/transformers/ModelDrivenJsonMapping.js +110 -0
  72. package/dist/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
  73. package/dist/src/transformers/PostgresArrayEntityCteBuilder.d.ts +80 -1
  74. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +204 -16
  75. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
  76. package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +3 -2
  77. package/dist/src/transformers/PostgresJsonQueryBuilder.js +26 -21
  78. package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  79. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +8 -5
  80. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
  81. package/dist/src/transformers/SelectableColumnCollector.d.ts +14 -3
  82. package/dist/src/transformers/SelectableColumnCollector.js +17 -5
  83. package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
  84. package/dist/src/transformers/SqlFormatter.d.ts +2 -3
  85. package/dist/src/transformers/SqlFormatter.js +1 -2
  86. package/dist/src/transformers/SqlFormatter.js.map +1 -1
  87. package/dist/src/transformers/TypeTransformationPostProcessor.d.ts +108 -0
  88. package/dist/src/transformers/TypeTransformationPostProcessor.js +351 -0
  89. package/dist/src/transformers/TypeTransformationPostProcessor.js.map +1 -0
  90. package/dist/src/transformers/UnifiedJsonMapping.d.ts +53 -0
  91. package/dist/src/transformers/UnifiedJsonMapping.js +60 -0
  92. package/dist/src/transformers/UnifiedJsonMapping.js.map +1 -0
  93. package/dist/src/transformers/UpstreamSelectQueryFinder.d.ts +5 -1
  94. package/dist/src/transformers/UpstreamSelectQueryFinder.js +8 -1
  95. package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  96. package/dist/src/utils/JsonSchemaValidator.d.ts +81 -0
  97. package/dist/src/utils/JsonSchemaValidator.js +215 -0
  98. package/dist/src/utils/JsonSchemaValidator.js.map +1 -0
  99. package/dist/src/utils/OperatorPrecedence.js +3 -1
  100. package/dist/src/utils/OperatorPrecedence.js.map +1 -1
  101. package/dist/src/utils/SchemaManager.js +0 -1
  102. package/dist/src/utils/SchemaManager.js.map +1 -1
  103. package/dist/tsconfig.tsbuildinfo +1 -1
  104. package/package.json +8 -5
@@ -14,10 +14,16 @@ export * from './transformers/SelectValueCollector';
14
14
  export * from './transformers/SelectableColumnCollector';
15
15
  export * from './transformers/TableColumnResolver';
16
16
  export * from './transformers/TableSourceCollector';
17
+ export * from './transformers/UnifiedJsonMapping';
18
+ export { ModelDrivenJsonMapping, convertModelDrivenMapping, validateModelDrivenMapping, FieldMapping, NestedStructure, StructureFields, FieldType } from './transformers/ModelDrivenJsonMapping';
19
+ export { processJsonMapping, unifyJsonMapping, isModelDrivenFormat, isUnifiedFormat, isLegacyFormat } from './transformers/JsonMappingUnifier';
17
20
  export * from './transformers/UpstreamSelectQueryFinder';
21
+ export * from './transformers/TypeTransformationPostProcessor';
18
22
  export * from './transformers/SchemaCollector';
19
23
  export * from './transformers/SqlParamInjector';
20
24
  export * from './transformers/SqlSortInjector';
21
25
  export * from './transformers/SqlPaginationInjector';
26
+ export * from './transformers/DynamicQueryBuilder';
22
27
  export * from './utils/SqlSchemaValidator';
28
+ export * from './utils/JsonSchemaValidator';
23
29
  export * from './utils/SchemaManager';
package/dist/src/index.js CHANGED
@@ -14,6 +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.isLegacyFormat = exports.isUnifiedFormat = exports.isModelDrivenFormat = exports.unifyJsonMapping = exports.processJsonMapping = exports.validateModelDrivenMapping = exports.convertModelDrivenMapping = void 0;
17
18
  // Entry point for rawsql-ts package
18
19
  __exportStar(require("./parsers/SelectQueryParser"), exports);
19
20
  __exportStar(require("./parsers/InsertQueryParser"), exports);
@@ -31,12 +32,25 @@ __exportStar(require("./transformers/SelectValueCollector"), exports);
31
32
  __exportStar(require("./transformers/SelectableColumnCollector"), exports);
32
33
  __exportStar(require("./transformers/TableColumnResolver"), exports);
33
34
  __exportStar(require("./transformers/TableSourceCollector"), exports);
35
+ __exportStar(require("./transformers/UnifiedJsonMapping"), exports);
36
+ var ModelDrivenJsonMapping_1 = require("./transformers/ModelDrivenJsonMapping");
37
+ Object.defineProperty(exports, "convertModelDrivenMapping", { enumerable: true, get: function () { return ModelDrivenJsonMapping_1.convertModelDrivenMapping; } });
38
+ Object.defineProperty(exports, "validateModelDrivenMapping", { enumerable: true, get: function () { return ModelDrivenJsonMapping_1.validateModelDrivenMapping; } });
39
+ var JsonMappingUnifier_1 = require("./transformers/JsonMappingUnifier");
40
+ Object.defineProperty(exports, "processJsonMapping", { enumerable: true, get: function () { return JsonMappingUnifier_1.processJsonMapping; } });
41
+ Object.defineProperty(exports, "unifyJsonMapping", { enumerable: true, get: function () { return JsonMappingUnifier_1.unifyJsonMapping; } });
42
+ Object.defineProperty(exports, "isModelDrivenFormat", { enumerable: true, get: function () { return JsonMappingUnifier_1.isModelDrivenFormat; } });
43
+ Object.defineProperty(exports, "isUnifiedFormat", { enumerable: true, get: function () { return JsonMappingUnifier_1.isUnifiedFormat; } });
44
+ Object.defineProperty(exports, "isLegacyFormat", { enumerable: true, get: function () { return JsonMappingUnifier_1.isLegacyFormat; } });
34
45
  __exportStar(require("./transformers/UpstreamSelectQueryFinder"), exports);
46
+ __exportStar(require("./transformers/TypeTransformationPostProcessor"), exports);
35
47
  __exportStar(require("./transformers/SchemaCollector"), exports);
36
48
  __exportStar(require("./transformers/SqlParamInjector"), exports);
37
49
  __exportStar(require("./transformers/SqlSortInjector"), exports);
38
50
  __exportStar(require("./transformers/SqlPaginationInjector"), exports);
51
+ __exportStar(require("./transformers/DynamicQueryBuilder"), exports);
39
52
  __exportStar(require("./utils/SqlSchemaValidator"), exports);
53
+ __exportStar(require("./utils/JsonSchemaValidator"), exports);
40
54
  __exportStar(require("./utils/SchemaManager"), exports);
41
55
  // Add more exports here if you want to expose additional public API
42
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,2EAAyD;AACzD,iEAA+C;AAC/C,kEAAgD;AAChD,iEAA+C;AAC/C,uEAAqD;AAErD,6DAA2C;AAC3C,wDAAsC;AACtC,oEAAoE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oCAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAE5C,6DAA2C;AAC3C,uDAAqC;AACrC,0DAAwC;AACxC,uDAAqC;AAErC,8DAA4C;AAC5C,+DAA6C;AAC7C,2DAAyC;AACzC,8DAA4C;AAC5C,0EAAwD;AACxD,8DAA4C,CAAC,0BAA0B;AACvE,sEAAoD;AACpD,2EAAyD;AACzD,qEAAmD;AACnD,sEAAoD;AACpD,oEAAkD;AAClD,gFAQ+C;AAN3C,mIAAA,yBAAyB,OAAA;AACzB,oIAAA,0BAA0B,OAAA;AAM9B,wEAM2C;AALvC,wHAAA,kBAAkB,OAAA;AAClB,sHAAA,gBAAgB,OAAA;AAChB,yHAAA,mBAAmB,OAAA;AACnB,qHAAA,eAAe,OAAA;AACf,oHAAA,cAAc,OAAA;AAElB,2EAAyD;AACzD,iFAA+D;AAE/D,iEAA+C;AAC/C,kEAAgD;AAChD,iEAA+C;AAC/C,uEAAqD;AACrD,qEAAmD;AAEnD,6DAA2C;AAC3C,8DAA4C;AAC5C,wDAAsC;AACtC,oEAAoE"}
@@ -15,15 +15,19 @@ const trie = new KeywordTrie_1.KeywordTrie([
15
15
  ["is", "distinct", "from"],
16
16
  ["is", "not", "distinct", "from"],
17
17
  ["like"],
18
+ ["ilike"],
18
19
  ["in"],
19
20
  ["exists"],
20
21
  ["between"],
21
22
  ["not", "like"],
23
+ ["not", "ilike"],
22
24
  ["not", "in"],
23
25
  ["not", "exists"],
24
26
  ["not", "between"],
25
27
  ["escape"], // e.g. '10% OFF on all items' like '10\%%' escape '\'
26
28
  ["uescape"], // e.g. U&'d!0061t!+000061' uescape '!'
29
+ ["similar", "to"], // e.g. name similar to 'J(ohn|ane)%'
30
+ ["not", "similar", "to"], // e.g. name not similar to 'J(ohn|ane)%'
27
31
  ["similar"], // e.g. substring('abcdef' similar '%#"cd#"%' escape '#')
28
32
  ["placing"], // e.g. overlay('abcdef' placing 'cd' from 3 for 2)
29
33
  // unary
@@ -1 +1 @@
1
- {"version":3,"file":"OperatorTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/OperatorTokenReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OperatorTokenReader.js","sourceRoot":"","sources":["../../../src/tokenReaders/OperatorTokenReader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import { SelectQuery } from "../models/SelectQuery";
2
+ /**
3
+ * CTE dependency tree node for visualization
4
+ */
5
+ export interface CTENode {
6
+ name: string;
7
+ columns: string[];
8
+ dependencies: string[];
9
+ dependents: string[];
10
+ query: SelectQuery;
11
+ level: number;
12
+ }
13
+ /**
14
+ * CTE dependency graph for debugging complex queries
15
+ */
16
+ export interface CTEGraph {
17
+ nodes: Map<string, CTENode>;
18
+ rootNodes: string[];
19
+ leafNodes: string[];
20
+ }
21
+ /**
22
+ * Debug utility for visualizing CTE dependencies and column search paths
23
+ */
24
+ export declare class CTEDependencyTracer {
25
+ private columnCollector;
26
+ private silent;
27
+ constructor(options?: {
28
+ silent?: boolean;
29
+ });
30
+ /**
31
+ * Build complete CTE dependency graph
32
+ */
33
+ buildGraph(query: SelectQuery): CTEGraph;
34
+ /**
35
+ * Trace column search path through CTE dependencies
36
+ */
37
+ traceColumnSearch(query: SelectQuery, columnName: string): {
38
+ searchPath: string[];
39
+ foundIn: string[];
40
+ notFoundIn: string[];
41
+ graph: CTEGraph;
42
+ };
43
+ /**
44
+ * Print visual representation of CTE dependency graph
45
+ */
46
+ printGraph(graph: CTEGraph): void;
47
+ /**
48
+ * Print column search trace
49
+ */
50
+ printColumnTrace(columnName: string, trace: ReturnType<typeof this.traceColumnSearch>): void;
51
+ /**
52
+ * Find CTEs that are actually referenced in the given query.
53
+ * Uses TableSourceCollector to properly identify table references from the AST.
54
+ */
55
+ private findReferencedCTEs;
56
+ private calculateLevels;
57
+ private getSearchOrder;
58
+ }
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CTEDependencyTracer = void 0;
4
+ const SelectQuery_1 = require("../models/SelectQuery");
5
+ const CTECollector_1 = require("./CTECollector");
6
+ const SelectableColumnCollector_1 = require("./SelectableColumnCollector");
7
+ const TableSourceCollector_1 = require("./TableSourceCollector");
8
+ /**
9
+ * Debug utility for visualizing CTE dependencies and column search paths
10
+ */
11
+ class CTEDependencyTracer {
12
+ constructor(options) {
13
+ var _a;
14
+ this.columnCollector = new SelectableColumnCollector_1.SelectableColumnCollector();
15
+ this.silent = (_a = options === null || options === void 0 ? void 0 : options.silent) !== null && _a !== void 0 ? _a : false;
16
+ }
17
+ /**
18
+ * Build complete CTE dependency graph
19
+ */
20
+ buildGraph(query) {
21
+ const cteCollector = new CTECollector_1.CTECollector();
22
+ const ctes = cteCollector.collect(query);
23
+ const nodes = new Map();
24
+ // First pass: Create all nodes
25
+ ctes.forEach(cte => {
26
+ const cteName = cte.getSourceAliasName();
27
+ let columns = [];
28
+ try {
29
+ const columnRefs = this.columnCollector.collect(cte.query);
30
+ columns = columnRefs.map(col => col.name);
31
+ }
32
+ catch (error) {
33
+ if (!this.silent) {
34
+ console.warn(`Failed to collect columns for CTE ${cteName}: ${error instanceof Error ? error.message : String(error)}`);
35
+ }
36
+ }
37
+ nodes.set(cteName, {
38
+ name: cteName,
39
+ columns,
40
+ dependencies: [],
41
+ dependents: [],
42
+ query: cte.query,
43
+ level: 0
44
+ });
45
+ });
46
+ // Second pass: Build dependencies
47
+ ctes.forEach(cte => {
48
+ const cteName = cte.getSourceAliasName();
49
+ const node = nodes.get(cteName);
50
+ // Find all CTEs referenced in this CTE's query
51
+ const referencedCTEs = this.findReferencedCTEs(cte.query, nodes);
52
+ node.dependencies = referencedCTEs;
53
+ // Update dependents
54
+ referencedCTEs.forEach(depName => {
55
+ const depNode = nodes.get(depName);
56
+ if (depNode && !depNode.dependents.includes(cteName)) {
57
+ depNode.dependents.push(cteName);
58
+ }
59
+ });
60
+ });
61
+ // Third pass: Calculate levels
62
+ this.calculateLevels(nodes);
63
+ // Identify root and leaf nodes
64
+ const rootNodes = [];
65
+ const leafNodes = [];
66
+ nodes.forEach((node, name) => {
67
+ if (node.dependencies.length === 0) {
68
+ rootNodes.push(name);
69
+ }
70
+ if (node.dependents.length === 0) {
71
+ leafNodes.push(name);
72
+ }
73
+ });
74
+ return { nodes, rootNodes, leafNodes };
75
+ }
76
+ /**
77
+ * Trace column search path through CTE dependencies
78
+ */
79
+ traceColumnSearch(query, columnName) {
80
+ const graph = this.buildGraph(query);
81
+ const searchPath = [];
82
+ const foundIn = [];
83
+ const notFoundIn = [];
84
+ // Start from main query
85
+ searchPath.push('MAIN_QUERY');
86
+ let mainColumns = [];
87
+ try {
88
+ // SelectableColumnCollector only supports SimpleSelectQuery
89
+ if (query instanceof SelectQuery_1.SimpleSelectQuery) {
90
+ const columnRefs = this.columnCollector.collect(query);
91
+ mainColumns = columnRefs.map(col => col.name);
92
+ }
93
+ else if (query instanceof SelectQuery_1.BinarySelectQuery) {
94
+ // For UNION/INTERSECT/EXCEPT queries, collect from all branches
95
+ const leftColumns = query.left instanceof SelectQuery_1.SimpleSelectQuery
96
+ ? this.columnCollector.collect(query.left).map(col => col.name)
97
+ : [];
98
+ const rightColumns = query.right instanceof SelectQuery_1.SimpleSelectQuery
99
+ ? this.columnCollector.collect(query.right).map(col => col.name)
100
+ : [];
101
+ // Combine and deduplicate columns from both branches
102
+ const allColumns = [...leftColumns, ...rightColumns];
103
+ mainColumns = [...new Set(allColumns)];
104
+ }
105
+ }
106
+ catch (error) {
107
+ if (!this.silent) {
108
+ console.warn(`Failed to collect columns from main query: ${error instanceof Error ? error.message : String(error)}`);
109
+ }
110
+ }
111
+ if (mainColumns.some(col => col.toLowerCase() === columnName.toLowerCase())) {
112
+ foundIn.push('MAIN_QUERY');
113
+ }
114
+ else {
115
+ notFoundIn.push('MAIN_QUERY');
116
+ }
117
+ // Search through CTEs in dependency order (leaf to root)
118
+ const visited = new Set();
119
+ const searchOrder = this.getSearchOrder(graph);
120
+ searchOrder.forEach(cteName => {
121
+ if (visited.has(cteName))
122
+ return;
123
+ visited.add(cteName);
124
+ searchPath.push(cteName);
125
+ const node = graph.nodes.get(cteName);
126
+ if (node.columns.some(col => col.toLowerCase() === columnName.toLowerCase())) {
127
+ foundIn.push(cteName);
128
+ }
129
+ else {
130
+ notFoundIn.push(cteName);
131
+ }
132
+ });
133
+ return { searchPath, foundIn, notFoundIn, graph };
134
+ }
135
+ /**
136
+ * Print visual representation of CTE dependency graph
137
+ */
138
+ printGraph(graph) {
139
+ if (this.silent)
140
+ return;
141
+ console.log('\n=== CTE Dependency Graph ===');
142
+ // Group by levels
143
+ const levels = new Map();
144
+ graph.nodes.forEach((node, name) => {
145
+ const level = node.level;
146
+ if (!levels.has(level)) {
147
+ levels.set(level, []);
148
+ }
149
+ levels.get(level).push(name);
150
+ });
151
+ // Print level by level
152
+ const maxLevel = Math.max(...Array.from(levels.keys()));
153
+ for (let level = 0; level <= maxLevel; level++) {
154
+ const nodesAtLevel = levels.get(level) || [];
155
+ if (nodesAtLevel.length > 0) {
156
+ console.log(`\nLevel ${level}:`);
157
+ nodesAtLevel.forEach(name => {
158
+ const node = graph.nodes.get(name);
159
+ console.log(` ${name} (${node.columns.length} cols)`);
160
+ if (node.dependencies.length > 0) {
161
+ console.log(` depends on: ${node.dependencies.join(', ')}`);
162
+ }
163
+ });
164
+ }
165
+ }
166
+ }
167
+ /**
168
+ * Print column search trace
169
+ */
170
+ printColumnTrace(columnName, trace) {
171
+ if (this.silent)
172
+ return;
173
+ console.log(`\n=== Column Search Trace for "${columnName}" ===`);
174
+ console.log(`Search path: ${trace.searchPath.join(' → ')}`);
175
+ console.log(`Found in: ${trace.foundIn.length > 0 ? trace.foundIn.join(', ') : 'NONE'}`);
176
+ console.log(`Not found in: ${trace.notFoundIn.join(', ')}`);
177
+ if (trace.foundIn.length > 0) {
178
+ console.log('\n--- Details of CTEs containing the column ---');
179
+ trace.foundIn.forEach(cteName => {
180
+ if (cteName === 'MAIN_QUERY')
181
+ return;
182
+ const node = trace.graph.nodes.get(cteName);
183
+ if (node) {
184
+ console.log(`${cteName}:`);
185
+ console.log(` All columns: ${node.columns.join(', ')}`);
186
+ console.log(` Dependencies: ${node.dependencies.length > 0 ? node.dependencies.join(', ') : 'none'}`);
187
+ }
188
+ });
189
+ }
190
+ }
191
+ /**
192
+ * Find CTEs that are actually referenced in the given query.
193
+ * Uses TableSourceCollector to properly identify table references from the AST.
194
+ */
195
+ findReferencedCTEs(query, allCTEs) {
196
+ // Use TableSourceCollector to get all table references from the query
197
+ const tableCollector = new TableSourceCollector_1.TableSourceCollector();
198
+ const tableSources = tableCollector.collect(query);
199
+ const referenced = [];
200
+ // Check each table source to see if it matches a CTE name
201
+ for (const source of tableSources) {
202
+ const tableName = source.table.name;
203
+ if (tableName && allCTEs.has(tableName)) {
204
+ if (!referenced.includes(tableName)) {
205
+ referenced.push(tableName);
206
+ }
207
+ }
208
+ }
209
+ return referenced;
210
+ }
211
+ calculateLevels(nodes) {
212
+ const visited = new Set();
213
+ const calculateLevel = (nodeName) => {
214
+ if (visited.has(nodeName)) {
215
+ return nodes.get(nodeName).level;
216
+ }
217
+ visited.add(nodeName);
218
+ const node = nodes.get(nodeName);
219
+ if (node.dependencies.length === 0) {
220
+ node.level = 0;
221
+ return 0;
222
+ }
223
+ let maxDepLevel = -1;
224
+ node.dependencies.forEach(depName => {
225
+ const depLevel = calculateLevel(depName);
226
+ maxDepLevel = Math.max(maxDepLevel, depLevel);
227
+ });
228
+ node.level = maxDepLevel + 1;
229
+ return node.level;
230
+ };
231
+ nodes.forEach((_, name) => calculateLevel(name));
232
+ }
233
+ getSearchOrder(graph) {
234
+ // Return CTEs in order from leaf to root (level descending)
235
+ const ordered = [];
236
+ const levels = new Map();
237
+ graph.nodes.forEach((node, name) => {
238
+ const level = node.level;
239
+ if (!levels.has(level)) {
240
+ levels.set(level, []);
241
+ }
242
+ levels.get(level).push(name);
243
+ });
244
+ const maxLevel = Math.max(...Array.from(levels.keys()));
245
+ for (let level = maxLevel; level >= 0; level--) {
246
+ const nodesAtLevel = levels.get(level) || [];
247
+ ordered.push(...nodesAtLevel);
248
+ }
249
+ return ordered;
250
+ }
251
+ }
252
+ exports.CTEDependencyTracer = CTEDependencyTracer;
253
+ //# sourceMappingURL=CTEDependencyTracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CTEDependencyTracer.js","sourceRoot":"","sources":["../../../src/transformers/CTEDependencyTracer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { SelectQuery } from "../models/SelectQuery";
2
+ import { SortConditions } from "./SqlSortInjector";
3
+ import { PaginationOptions } from "./SqlPaginationInjector";
4
+ import { JsonMapping } from "./PostgresJsonQueryBuilder";
5
+ /**
6
+ * Options for dynamic query building
7
+ */
8
+ export interface QueryBuildOptions {
9
+ /** Filter conditions to inject into WHERE clause */
10
+ filter?: Record<string, any>;
11
+ /** Sort conditions to inject into ORDER BY clause */
12
+ sort?: SortConditions;
13
+ /** Pagination options to inject LIMIT/OFFSET clauses */
14
+ paging?: PaginationOptions;
15
+ /** JSON serialization mapping to transform results into hierarchical JSON
16
+ * - JsonMapping object: explicit mapping configuration
17
+ * - true: auto-load mapping from corresponding .json file
18
+ * - false/undefined: no serialization
19
+ */
20
+ serialize?: JsonMapping | boolean;
21
+ }
22
+ /**
23
+ * DynamicQueryBuilder provides pure JavaScript SQL query building capabilities.
24
+ * It combines SQL parsing with dynamic condition injection (filtering, sorting, pagination, serialization).
25
+ *
26
+ * This class is framework-agnostic and does not perform any file I/O operations.
27
+ * It only works with SQL content provided as strings.
28
+ *
29
+ * Key features:
30
+ * - Pure JavaScript/TypeScript - no file system dependencies
31
+ * - Framework-agnostic - can be used with any database framework
32
+ * - Composable - combines multiple injectors in the correct order
33
+ * - Type-safe - provides TypeScript types for all options
34
+ * - Testable - easy to unit test without mocking file system
35
+ */
36
+ export declare class DynamicQueryBuilder {
37
+ private tableColumnResolver?;
38
+ /**
39
+ * Creates a new DynamicQueryBuilder instance
40
+ * @param tableColumnResolver Optional function to resolve table columns for wildcard queries
41
+ */
42
+ constructor(tableColumnResolver?: (tableName: string) => string[]);
43
+ /**
44
+ * Builds a SelectQuery from SQL content with dynamic conditions.
45
+ * This is a pure function that does not perform any I/O operations.
46
+ * * @param sqlContent Raw SQL string to parse and modify
47
+ * @param options Dynamic conditions to apply (filter, sort, paging, serialize)
48
+ * @returns Modified SelectQuery with all dynamic conditions applied
49
+ * * @example
50
+ * ```typescript
51
+ * const builder = new DynamicQueryBuilder();
52
+ * const query = builder.buildQuery(
53
+ * 'SELECT id, name FROM users WHERE active = true',
54
+ * {
55
+ * filter: { status: 'premium' },
56
+ * sort: { created_at: { desc: true } },
57
+ * paging: { page: 2, pageSize: 10 },
58
+ * serialize: { rootName: 'user', rootEntity: { id: 'user', name: 'User', columns: { id: 'id', name: 'name' } }, nestedEntities: [] }
59
+ * }
60
+ * );
61
+ * ```
62
+ */
63
+ buildQuery(sqlContent: string, options?: QueryBuildOptions): SelectQuery;
64
+ /**
65
+ * Builds a SelectQuery with only filtering applied.
66
+ * Convenience method for when you only need dynamic WHERE conditions.
67
+ *
68
+ * @param sqlContent Raw SQL string to parse and modify
69
+ * @param filter Filter conditions to apply
70
+ * @returns Modified SelectQuery with filter conditions applied
71
+ */
72
+ buildFilteredQuery(sqlContent: string, filter: Record<string, any>): SelectQuery;
73
+ /**
74
+ * Builds a SelectQuery with only sorting applied.
75
+ * Convenience method for when you only need dynamic ORDER BY clauses.
76
+ *
77
+ * @param sqlContent Raw SQL string to parse and modify
78
+ * @param sort Sort conditions to apply
79
+ * @returns Modified SelectQuery with sort conditions applied
80
+ */
81
+ buildSortedQuery(sqlContent: string, sort: SortConditions): SelectQuery; /**
82
+ * Builds a SelectQuery with only pagination applied.
83
+ * Convenience method for when you only need LIMIT/OFFSET clauses.
84
+ *
85
+ * @param sqlContent Raw SQL string to parse and modify
86
+ * @param paging Pagination options to apply
87
+ * @returns Modified SelectQuery with pagination applied
88
+ */
89
+ buildPaginatedQuery(sqlContent: string, paging: PaginationOptions): SelectQuery;
90
+ /**
91
+ * Builds a SelectQuery with only JSON serialization applied.
92
+ * Convenience method for when you only need hierarchical JSON transformation.
93
+ *
94
+ * @param sqlContent Raw SQL string to parse and modify
95
+ * @param serialize JSON mapping configuration to apply
96
+ * @returns Modified SelectQuery with JSON serialization applied
97
+ */
98
+ buildSerializedQuery(sqlContent: string, serialize: JsonMapping): SelectQuery;
99
+ /**
100
+ * Validates SQL content by attempting to parse it.
101
+ * Useful for testing SQL validity without applying any modifications.
102
+ *
103
+ * @param sqlContent Raw SQL string to validate
104
+ * @returns true if SQL is valid, throws error if invalid
105
+ * @throws Error if SQL cannot be parsed
106
+ */
107
+ validateSql(sqlContent: string): boolean;
108
+ }