rawsql-ts 0.11.0-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 (80) hide show
  1. package/README.md +1 -3
  2. package/dist/esm/index.js +2 -0
  3. package/dist/esm/index.js.map +1 -1
  4. package/dist/esm/index.min.js +13 -13
  5. package/dist/esm/index.min.js.map +4 -4
  6. package/dist/esm/src/index.js +2 -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/JsonMappingUnifier.js +217 -0
  13. package/dist/esm/src/transformers/JsonMappingUnifier.js.map +1 -0
  14. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js +103 -0
  15. package/dist/esm/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
  16. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js +204 -16
  17. package/dist/esm/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
  18. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js +10 -9
  19. package/dist/esm/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  20. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js +8 -5
  21. package/dist/esm/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
  22. package/dist/esm/src/transformers/SelectableColumnCollector.js +17 -5
  23. package/dist/esm/src/transformers/SelectableColumnCollector.js.map +1 -1
  24. package/dist/esm/src/transformers/UnifiedJsonMapping.js +2 -4
  25. package/dist/esm/src/transformers/UnifiedJsonMapping.js.map +1 -1
  26. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js +8 -1
  27. package/dist/esm/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  28. package/dist/esm/src/utils/OperatorPrecedence.js +3 -1
  29. package/dist/esm/src/utils/OperatorPrecedence.js.map +1 -1
  30. package/dist/esm/src/utils/SchemaManager.js +0 -1
  31. package/dist/esm/src/utils/SchemaManager.js.map +1 -1
  32. package/dist/esm/tsconfig.browser.tsbuildinfo +1 -1
  33. package/dist/esm/types/src/index.d.ts +2 -0
  34. package/dist/esm/types/src/transformers/CTEDependencyTracer.d.ts +58 -0
  35. package/dist/esm/types/src/transformers/JsonMappingUnifier.d.ts +95 -0
  36. package/dist/esm/types/src/transformers/ModelDrivenJsonMapping.d.ts +62 -0
  37. package/dist/esm/types/src/transformers/PostgresArrayEntityCteBuilder.d.ts +80 -1
  38. package/dist/esm/types/src/transformers/PostgresJsonQueryBuilder.d.ts +0 -1
  39. package/dist/esm/types/src/transformers/SelectableColumnCollector.d.ts +14 -3
  40. package/dist/esm/types/src/transformers/UnifiedJsonMapping.d.ts +0 -1
  41. package/dist/esm/types/src/transformers/UpstreamSelectQueryFinder.d.ts +5 -1
  42. package/dist/index.min.js +13 -13
  43. package/dist/index.min.js.map +4 -4
  44. package/dist/src/index.d.ts +2 -0
  45. package/dist/src/index.js +10 -0
  46. package/dist/src/index.js.map +1 -1
  47. package/dist/src/tokenReaders/OperatorTokenReader.js +4 -0
  48. package/dist/src/tokenReaders/OperatorTokenReader.js.map +1 -1
  49. package/dist/src/transformers/CTEDependencyTracer.d.ts +58 -0
  50. package/dist/src/transformers/CTEDependencyTracer.js +253 -0
  51. package/dist/src/transformers/CTEDependencyTracer.js.map +1 -0
  52. package/dist/src/transformers/JsonMappingUnifier.d.ts +95 -0
  53. package/dist/src/transformers/JsonMappingUnifier.js +226 -0
  54. package/dist/src/transformers/JsonMappingUnifier.js.map +1 -0
  55. package/dist/src/transformers/ModelDrivenJsonMapping.d.ts +62 -0
  56. package/dist/src/transformers/ModelDrivenJsonMapping.js +110 -0
  57. package/dist/src/transformers/ModelDrivenJsonMapping.js.map +1 -0
  58. package/dist/src/transformers/PostgresArrayEntityCteBuilder.d.ts +80 -1
  59. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js +204 -16
  60. package/dist/src/transformers/PostgresArrayEntityCteBuilder.js.map +1 -1
  61. package/dist/src/transformers/PostgresJsonQueryBuilder.d.ts +0 -1
  62. package/dist/src/transformers/PostgresJsonQueryBuilder.js +10 -9
  63. package/dist/src/transformers/PostgresJsonQueryBuilder.js.map +1 -1
  64. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js +8 -5
  65. package/dist/src/transformers/PostgresObjectEntityCteBuilder.js.map +1 -1
  66. package/dist/src/transformers/SelectableColumnCollector.d.ts +14 -3
  67. package/dist/src/transformers/SelectableColumnCollector.js +17 -5
  68. package/dist/src/transformers/SelectableColumnCollector.js.map +1 -1
  69. package/dist/src/transformers/UnifiedJsonMapping.d.ts +0 -1
  70. package/dist/src/transformers/UnifiedJsonMapping.js +2 -4
  71. package/dist/src/transformers/UnifiedJsonMapping.js.map +1 -1
  72. package/dist/src/transformers/UpstreamSelectQueryFinder.d.ts +5 -1
  73. package/dist/src/transformers/UpstreamSelectQueryFinder.js +8 -1
  74. package/dist/src/transformers/UpstreamSelectQueryFinder.js.map +1 -1
  75. package/dist/src/utils/OperatorPrecedence.js +3 -1
  76. package/dist/src/utils/OperatorPrecedence.js.map +1 -1
  77. package/dist/src/utils/SchemaManager.js +0 -1
  78. package/dist/src/utils/SchemaManager.js.map +1 -1
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +2 -2
@@ -15,6 +15,8 @@ export * from './transformers/SelectableColumnCollector';
15
15
  export * from './transformers/TableColumnResolver';
16
16
  export * from './transformers/TableSourceCollector';
17
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';
18
20
  export * from './transformers/UpstreamSelectQueryFinder';
19
21
  export * from './transformers/TypeTransformationPostProcessor';
20
22
  export * from './transformers/SchemaCollector';
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);
@@ -32,6 +33,15 @@ __exportStar(require("./transformers/SelectableColumnCollector"), exports);
32
33
  __exportStar(require("./transformers/TableColumnResolver"), exports);
33
34
  __exportStar(require("./transformers/TableSourceCollector"), exports);
34
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; } });
35
45
  __exportStar(require("./transformers/UpstreamSelectQueryFinder"), exports);
36
46
  __exportStar(require("./transformers/TypeTransformationPostProcessor"), exports);
37
47
  __exportStar(require("./transformers/SchemaCollector"), exports);
@@ -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,oEAAkD;AAClD,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"}
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,95 @@
1
+ /**
2
+ * Unified JSON Mapping processor that supports both legacy and model-driven formats.
3
+ *
4
+ * This module provides backward compatibility while encouraging migration to the model-driven format.
5
+ * It automatically detects the input format and normalizes to a consistent internal representation.
6
+ */
7
+ import { JsonMapping } from './PostgresJsonQueryBuilder';
8
+ import { ModelDrivenJsonMapping } from './ModelDrivenJsonMapping';
9
+ /**
10
+ * Unified mapping format that can handle both legacy and model-driven inputs.
11
+ */
12
+ export interface UnifiedMappingInput {
13
+ typeInfo?: {
14
+ interface: string;
15
+ importPath: string;
16
+ };
17
+ structure?: any;
18
+ protectedStringFields?: string[];
19
+ rootName?: string;
20
+ rootEntity?: any;
21
+ nestedEntities?: any[];
22
+ columns?: any;
23
+ relationships?: any;
24
+ }
25
+ /**
26
+ * Result of mapping format detection and conversion.
27
+ */
28
+ export interface MappingProcessResult {
29
+ format: 'model-driven' | 'unified' | 'legacy';
30
+ jsonMapping: JsonMapping;
31
+ originalInput: UnifiedMappingInput;
32
+ metadata?: {
33
+ typeInfo?: {
34
+ interface: string;
35
+ importPath: string;
36
+ };
37
+ protectedStringFields?: string[];
38
+ typeProtection?: any;
39
+ };
40
+ }
41
+ /**
42
+ * Detects the format of a JSON mapping configuration.
43
+ *
44
+ * @param input - The mapping configuration to analyze
45
+ * @returns The detected format type
46
+ */
47
+ export declare function detectMappingFormat(input: UnifiedMappingInput): 'model-driven' | 'unified' | 'legacy';
48
+ /**
49
+ * Main processor that unifies all JSON mapping formats into a consistent JsonMapping.
50
+ *
51
+ * Features:
52
+ * - Automatic format detection
53
+ * - Backward compatibility with all existing formats
54
+ * - Metadata preservation for advanced features
55
+ * - Zero external dependencies
56
+ *
57
+ * @param input - Any supported JSON mapping format
58
+ * @returns Unified processing result with JsonMapping and metadata
59
+ */
60
+ export declare function processJsonMapping(input: UnifiedMappingInput): MappingProcessResult;
61
+ /**
62
+ * Convenience function for direct JsonMapping extraction.
63
+ *
64
+ * @param input - Any supported JSON mapping format
65
+ * @returns JsonMapping ready for use with PostgresJsonQueryBuilder
66
+ */
67
+ export declare function unifyJsonMapping(input: UnifiedMappingInput): JsonMapping;
68
+ /**
69
+ * Type guard to check if input uses model-driven format.
70
+ *
71
+ * @param input - Mapping input to check
72
+ * @returns True if input is model-driven format
73
+ */
74
+ export declare function isModelDrivenFormat(input: UnifiedMappingInput): input is ModelDrivenJsonMapping;
75
+ /**
76
+ * Type guard to check if input uses unified format.
77
+ *
78
+ * @param input - Mapping input to check
79
+ * @returns True if input is unified format
80
+ */
81
+ export declare function isUnifiedFormat(input: UnifiedMappingInput): boolean;
82
+ /**
83
+ * Type guard to check if input uses legacy format.
84
+ *
85
+ * @param input - Mapping input to check
86
+ * @returns True if input is legacy format
87
+ */
88
+ export declare function isLegacyFormat(input: UnifiedMappingInput): boolean;
89
+ /**
90
+ * Migration helper that suggests upgrading to model-driven format.
91
+ *
92
+ * @param input - Current mapping configuration
93
+ * @returns Suggestions for migration (if applicable)
94
+ */
95
+ export declare function suggestModelDrivenMigration(input: UnifiedMappingInput): string[];