sof-mssql 2.0.0 → 2.2.0

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 (91) hide show
  1. package/dist/load.d.ts.map +1 -1
  2. package/dist/load.js +3 -0
  3. package/dist/load.js.map +1 -1
  4. package/dist/loader/connection.d.ts.map +1 -1
  5. package/dist/loader/connection.js +6 -0
  6. package/dist/loader/connection.js.map +1 -1
  7. package/dist/loader/types.d.ts +2 -0
  8. package/dist/loader/types.d.ts.map +1 -1
  9. package/dist/parser.d.ts +10 -1
  10. package/dist/parser.d.ts.map +1 -1
  11. package/dist/parser.js +35 -1
  12. package/dist/parser.js.map +1 -1
  13. package/dist/queryGenerator/index.d.ts +0 -3
  14. package/dist/queryGenerator/index.d.ts.map +1 -1
  15. package/dist/queryGenerator/index.js +1 -7
  16. package/dist/queryGenerator/index.js.map +1 -1
  17. package/dist/queryGenerator/treeWalker/aliasGenerator.d.ts +26 -0
  18. package/dist/queryGenerator/treeWalker/aliasGenerator.d.ts.map +1 -0
  19. package/dist/queryGenerator/treeWalker/aliasGenerator.js +31 -0
  20. package/dist/queryGenerator/treeWalker/aliasGenerator.js.map +1 -0
  21. package/dist/queryGenerator/treeWalker/classify.d.ts +19 -0
  22. package/dist/queryGenerator/treeWalker/classify.d.ts.map +1 -0
  23. package/dist/queryGenerator/treeWalker/classify.js +36 -0
  24. package/dist/queryGenerator/treeWalker/classify.js.map +1 -0
  25. package/dist/queryGenerator/treeWalker/compile.d.ts +29 -0
  26. package/dist/queryGenerator/treeWalker/compile.d.ts.map +1 -0
  27. package/dist/queryGenerator/treeWalker/compile.js +98 -0
  28. package/dist/queryGenerator/treeWalker/compile.js.map +1 -0
  29. package/dist/queryGenerator/treeWalker/cteTemplates.d.ts +50 -0
  30. package/dist/queryGenerator/treeWalker/cteTemplates.d.ts.map +1 -0
  31. package/dist/queryGenerator/treeWalker/cteTemplates.js +95 -0
  32. package/dist/queryGenerator/treeWalker/cteTemplates.js.map +1 -0
  33. package/dist/queryGenerator/treeWalker/index.d.ts +6 -0
  34. package/dist/queryGenerator/treeWalker/index.d.ts.map +1 -0
  35. package/dist/queryGenerator/treeWalker/index.js +9 -0
  36. package/dist/queryGenerator/treeWalker/index.js.map +1 -0
  37. package/dist/queryGenerator/treeWalker/mergeSiblings.d.ts +28 -0
  38. package/dist/queryGenerator/treeWalker/mergeSiblings.d.ts.map +1 -0
  39. package/dist/queryGenerator/treeWalker/mergeSiblings.js +54 -0
  40. package/dist/queryGenerator/treeWalker/mergeSiblings.js.map +1 -0
  41. package/dist/queryGenerator/treeWalker/operators/columnsOnly.d.ts +40 -0
  42. package/dist/queryGenerator/treeWalker/operators/columnsOnly.d.ts.map +1 -0
  43. package/dist/queryGenerator/treeWalker/operators/columnsOnly.js +56 -0
  44. package/dist/queryGenerator/treeWalker/operators/columnsOnly.js.map +1 -0
  45. package/dist/queryGenerator/treeWalker/operators/forEach.d.ts +45 -0
  46. package/dist/queryGenerator/treeWalker/operators/forEach.d.ts.map +1 -0
  47. package/dist/queryGenerator/treeWalker/operators/forEach.js +144 -0
  48. package/dist/queryGenerator/treeWalker/operators/forEach.js.map +1 -0
  49. package/dist/queryGenerator/treeWalker/operators/group.d.ts +35 -0
  50. package/dist/queryGenerator/treeWalker/operators/group.d.ts.map +1 -0
  51. package/dist/queryGenerator/treeWalker/operators/group.js +56 -0
  52. package/dist/queryGenerator/treeWalker/operators/group.js.map +1 -0
  53. package/dist/queryGenerator/treeWalker/operators/repeat.d.ts +45 -0
  54. package/dist/queryGenerator/treeWalker/operators/repeat.d.ts.map +1 -0
  55. package/dist/queryGenerator/treeWalker/operators/repeat.js +110 -0
  56. package/dist/queryGenerator/treeWalker/operators/repeat.js.map +1 -0
  57. package/dist/queryGenerator/treeWalker/operators/unionAll.d.ts +54 -0
  58. package/dist/queryGenerator/treeWalker/operators/unionAll.d.ts.map +1 -0
  59. package/dist/queryGenerator/treeWalker/operators/unionAll.js +121 -0
  60. package/dist/queryGenerator/treeWalker/operators/unionAll.js.map +1 -0
  61. package/dist/queryGenerator/treeWalker/render.d.ts +34 -0
  62. package/dist/queryGenerator/treeWalker/render.d.ts.map +1 -0
  63. package/dist/queryGenerator/treeWalker/render.js +41 -0
  64. package/dist/queryGenerator/treeWalker/render.js.map +1 -0
  65. package/dist/queryGenerator/treeWalker/types.d.ts +66 -0
  66. package/dist/queryGenerator/treeWalker/types.d.ts.map +1 -0
  67. package/dist/queryGenerator/treeWalker/types.js +14 -0
  68. package/dist/queryGenerator/treeWalker/types.js.map +1 -0
  69. package/dist/queryGenerator/treeWalker/walker.d.ts +36 -0
  70. package/dist/queryGenerator/treeWalker/walker.d.ts.map +1 -0
  71. package/dist/queryGenerator/treeWalker/walker.js +58 -0
  72. package/dist/queryGenerator/treeWalker/walker.js.map +1 -0
  73. package/dist/queryGenerator.d.ts +8 -34
  74. package/dist/queryGenerator.d.ts.map +1 -1
  75. package/dist/queryGenerator.js +16 -110
  76. package/dist/queryGenerator.js.map +1 -1
  77. package/dist/types.d.ts +2 -0
  78. package/dist/types.d.ts.map +1 -1
  79. package/package.json +1 -1
  80. package/dist/queryGenerator/ForEachProcessor.d.ts +0 -127
  81. package/dist/queryGenerator/ForEachProcessor.d.ts.map +0 -1
  82. package/dist/queryGenerator/ForEachProcessor.js +0 -351
  83. package/dist/queryGenerator/ForEachProcessor.js.map +0 -1
  84. package/dist/queryGenerator/SelectClauseBuilder.d.ts +0 -63
  85. package/dist/queryGenerator/SelectClauseBuilder.d.ts.map +0 -1
  86. package/dist/queryGenerator/SelectClauseBuilder.js +0 -196
  87. package/dist/queryGenerator/SelectClauseBuilder.js.map +0 -1
  88. package/dist/queryGenerator/SelectCombinationExpander.d.ts +0 -42
  89. package/dist/queryGenerator/SelectCombinationExpander.d.ts.map +0 -1
  90. package/dist/queryGenerator/SelectCombinationExpander.js +0 -95
  91. package/dist/queryGenerator/SelectCombinationExpander.js.map +0 -1
@@ -1,351 +0,0 @@
1
- "use strict";
2
- /**
3
- * Processes forEach operations and generates CROSS APPLY clauses.
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ForEachProcessor = void 0;
7
- /**
8
- * Handles all forEach-related processing and CROSS APPLY generation.
9
- */
10
- class ForEachProcessor {
11
- pathParser;
12
- constructor(pathParser) {
13
- this.pathParser = pathParser;
14
- }
15
- /**
16
- * Check if a specific combination has forEach operations.
17
- */
18
- combinationHasForEach(combination) {
19
- for (let i = 0; i < combination.selects.length; i++) {
20
- const select = combination.selects[i];
21
- const unionChoice = combination.unionChoices[i];
22
- if (this.selectHasForEach(select)) {
23
- return true;
24
- }
25
- // If this select has a unionAll choice, also check the chosen branch.
26
- if (unionChoice >= 0 && select.unionAll?.[unionChoice]) {
27
- const chosenBranch = select.unionAll[unionChoice];
28
- if (this.selectHasForEach(chosenBranch)) {
29
- return true;
30
- }
31
- }
32
- }
33
- return false;
34
- }
35
- /**
36
- * Check if a single select has forEach operations (including nested).
37
- */
38
- selectHasForEach(select) {
39
- if (select.forEach || select.forEachOrNull) {
40
- return true;
41
- }
42
- if (select.select && this.hasForEachInSelects(select.select)) {
43
- return true;
44
- }
45
- return !!(select.unionAll && this.unionAllHasForEach(select.unionAll));
46
- }
47
- /**
48
- * Check if any select in the tree has forEach operations.
49
- */
50
- hasForEachInSelects(selects) {
51
- return selects.some((select) => this.selectHasForEach(select));
52
- }
53
- /**
54
- * Check if any unionAll option has forEach operations.
55
- */
56
- unionAllHasForEach(unionAllOptions) {
57
- return unionAllOptions.some((unionOption) => (unionOption.forEach ?? unionOption.forEachOrNull) !== undefined ||
58
- (unionOption.select && this.hasForEachInSelects(unionOption.select)));
59
- }
60
- /**
61
- * Build the forEach context map by generating contexts for all forEach.
62
- */
63
- buildForEachContextMap(selects, context, combination) {
64
- const forEachContextMap = new Map();
65
- const counterState = { value: 0 };
66
- const topLevelForEach = this.collectTopLevelForEach(selects, combination);
67
- for (const select of topLevelForEach) {
68
- this.generateForEachContexts(select, context.resourceAlias + ".json", context, forEachContextMap, counterState);
69
- }
70
- return { forEachContextMap, topLevelForEach };
71
- }
72
- /**
73
- * Collect all forEach that should be treated as top-level.
74
- */
75
- collectTopLevelForEach(selects, combination) {
76
- const topLevelForEach = [];
77
- for (const select of selects) {
78
- this.processSelectForEach(select, topLevelForEach);
79
- // Also process unionAll choices if present and parent doesn't have forEach.
80
- if (combination && !this.isForEachSelect(select)) {
81
- this.processUnionAllChoice(select, combination, topLevelForEach);
82
- }
83
- }
84
- return topLevelForEach;
85
- }
86
- /**
87
- * Process a select for forEach, handling both direct forEach and nested selects.
88
- */
89
- processSelectForEach(select, topLevelForEach) {
90
- if (this.isForEachSelect(select)) {
91
- topLevelForEach.push(select);
92
- }
93
- else if (select.select) {
94
- this.addForEachFromSelectArray(select.select, topLevelForEach);
95
- }
96
- }
97
- /**
98
- * Process a select with a unionAll choice from a combination.
99
- */
100
- processUnionAllChoice(select, combination, topLevelForEach) {
101
- const selectIndex = combination.selects.indexOf(select);
102
- const unionChoice = selectIndex >= 0 ? combination.unionChoices[selectIndex] : -1;
103
- if (unionChoice >= 0 && select.unionAll?.[unionChoice]) {
104
- const chosenBranch = select.unionAll[unionChoice];
105
- if (this.isForEachSelect(chosenBranch)) {
106
- topLevelForEach.push(chosenBranch);
107
- }
108
- else if (chosenBranch.select) {
109
- this.addForEachFromSelectArray(chosenBranch.select, topLevelForEach);
110
- }
111
- }
112
- }
113
- /**
114
- * Add forEach from a select array to the topLevelForEach list.
115
- */
116
- addForEachFromSelectArray(selects, topLevelForEach) {
117
- for (const nestedSelect of selects) {
118
- if (this.isForEachSelect(nestedSelect)) {
119
- topLevelForEach.push(nestedSelect);
120
- }
121
- }
122
- }
123
- /**
124
- * Check if a select is a forEach or forEachOrNull.
125
- */
126
- isForEachSelect(select) {
127
- return !!(select.forEach ?? select.forEachOrNull);
128
- }
129
- /**
130
- * Generate forEach contexts recursively.
131
- */
132
- generateForEachContexts(forEachSelect, sourceExpression, baseContext, forEachContextMap, counterState) {
133
- const applyAlias = `forEach_${counterState.value++}`;
134
- const forEachContext = this.createForEachContext(baseContext, applyAlias, sourceExpression, forEachSelect);
135
- forEachContextMap.set(forEachSelect, forEachContext);
136
- this.generateNestedForEachContexts(forEachSelect, applyAlias, forEachContext, forEachContextMap, counterState);
137
- }
138
- /**
139
- * Create a transpiler context specific to a forEach.
140
- */
141
- createForEachContext(baseContext, applyAlias, sourceExpression, forEachSelect) {
142
- const forEachPath = forEachSelect.forEach ?? forEachSelect.forEachOrNull;
143
- return {
144
- ...baseContext,
145
- iterationContext: `${applyAlias}.value`,
146
- currentForEachAlias: applyAlias,
147
- forEachSource: sourceExpression,
148
- forEachPath: `$.${forEachPath}`,
149
- };
150
- }
151
- /**
152
- * Generate nested forEach contexts within this forEach's select and unionAll options.
153
- */
154
- generateNestedForEachContexts(forEachSelect, applyAlias, baseContext, forEachContextMap, counterState) {
155
- if (forEachSelect.select) {
156
- this.generateNestedSelectContexts(forEachSelect.select, applyAlias, baseContext, forEachContextMap, counterState);
157
- }
158
- if (forEachSelect.unionAll) {
159
- this.generateNestedUnionAllContexts(forEachSelect.unionAll, applyAlias, baseContext, forEachContextMap, counterState);
160
- }
161
- }
162
- /**
163
- * Generate forEach contexts for nested selects.
164
- */
165
- generateNestedSelectContexts(nestedSelects, applyAlias, forEachContext, forEachContextMap, counterState) {
166
- for (const nestedSelect of nestedSelects) {
167
- if (this.isForEachSelect(nestedSelect)) {
168
- this.generateForEachContexts(nestedSelect, `${applyAlias}.value`, forEachContext, forEachContextMap, counterState);
169
- }
170
- }
171
- }
172
- /**
173
- * Generate forEach contexts for nested unionAll options.
174
- */
175
- generateNestedUnionAllContexts(unionAllOptions, applyAlias, forEachContext, forEachContextMap, counterState) {
176
- for (const unionOption of unionAllOptions) {
177
- if (this.isForEachSelect(unionOption)) {
178
- this.generateForEachContexts(unionOption, `${applyAlias}.value`, forEachContext, forEachContextMap, counterState);
179
- }
180
- }
181
- }
182
- /**
183
- * Build CROSS APPLY clauses in reverse order for forEach processing.
184
- */
185
- buildApplyClauses(forEachContextMap, topLevelForEach, combination) {
186
- return [...topLevelForEach]
187
- .reverse()
188
- .map((select) => {
189
- const forEachContext = forEachContextMap.get(select);
190
- if (!forEachContext) {
191
- throw new Error("forEach context not found");
192
- }
193
- return this.generateForEachClause(select, forEachContext, forEachContextMap, combination);
194
- })
195
- .join("");
196
- }
197
- /**
198
- * Generate CROSS APPLY clauses for a forEach and its nested forEach.
199
- */
200
- generateForEachClause(forEachSelect, forEachContext, forEachContextMap, combination) {
201
- const clause = this.buildApplyClause(forEachSelect, forEachContext);
202
- const nestedSelectClauses = this.processNestedSelectClauses(forEachSelect, forEachContextMap, combination);
203
- const nestedUnionClauses = this.processNestedUnionAllClauses(forEachSelect, forEachContextMap, combination);
204
- return clause + nestedSelectClauses + nestedUnionClauses;
205
- }
206
- /**
207
- * Build the APPLY clause for a forEach using its pre-generated context.
208
- */
209
- buildApplyClause(forEachSelect, forEachContext) {
210
- const rawPath = forEachSelect.forEach ?? forEachSelect.forEachOrNull;
211
- const isOrNull = !!forEachSelect.forEachOrNull;
212
- const applyType = isOrNull ? "OUTER APPLY" : "CROSS APPLY";
213
- const applyAlias = forEachContext.currentForEachAlias ?? "";
214
- const sourceExpression = forEachContext.forEachSource ?? "";
215
- const { path: pathWithoutWhere, whereCondition, useFirst, } = this.pathParser.parseFhirPathWhere(rawPath ?? "", forEachContext);
216
- const { path: forEachPath, arrayIndex } = this.pathParser.parseArrayIndexing(pathWithoutWhere);
217
- const arrayPaths = this.pathParser.detectArrayFlatteningPaths(forEachPath);
218
- if (arrayPaths.length > 1) {
219
- return this.buildNestedForEachClause(arrayPaths, sourceExpression, applyAlias, applyType, arrayIndex, whereCondition);
220
- }
221
- return this.buildSimpleApplyClause(applyType, sourceExpression, forEachPath, applyAlias, arrayIndex, whereCondition, useFirst);
222
- }
223
- /**
224
- * Build a simple APPLY clause for single array paths.
225
- */
226
- buildSimpleApplyClause(applyType, sourceExpression, forEachPath, applyAlias, arrayIndex, whereCondition, useFirst = false) {
227
- const whereClauses = this.buildWhereClauses(arrayIndex, whereCondition);
228
- if (whereClauses.length > 0 || useFirst) {
229
- // Build SELECT with WHERE clause and/or TOP 1 for .first()
230
- const topClause = useFirst ? "TOP 1 " : "";
231
- const orderBy = useFirst ? " ORDER BY [key]" : "";
232
- const whereClause = whereClauses.length > 0 ? `WHERE ${whereClauses.join(" AND ")}` : "";
233
- return `\n${applyType} (
234
- SELECT ${topClause}* FROM OPENJSON(${sourceExpression}, '$.${forEachPath}')
235
- ${whereClause}${orderBy}
236
- ) AS ${applyAlias}`;
237
- }
238
- return `\n${applyType} OPENJSON(${sourceExpression}, '$.${forEachPath}') AS ${applyAlias}`;
239
- }
240
- /**
241
- * Build WHERE clauses for APPLY operations.
242
- */
243
- buildWhereClauses(arrayIndex, whereCondition) {
244
- const whereClauses = [];
245
- if (arrayIndex !== null) {
246
- whereClauses.push(`[key] = '${arrayIndex}'`);
247
- }
248
- if (whereCondition !== null) {
249
- whereClauses.push(whereCondition);
250
- }
251
- return whereClauses;
252
- }
253
- /**
254
- * Build nested CROSS APPLY clauses for array flattening.
255
- */
256
- buildNestedForEachClause(arrayPaths, sourceExpression, finalAlias, applyType, arrayIndex, whereCondition) {
257
- let clauses = "";
258
- let currentSource = sourceExpression;
259
- for (let i = 0; i < arrayPaths.length; i++) {
260
- const isLast = i === arrayPaths.length - 1;
261
- const alias = isLast ? finalAlias : `${finalAlias}_nest${i}`;
262
- const pathSegment = this.pathParser.extractPathSegment(arrayPaths, i);
263
- const { cleanSegment, segmentIndex } = this.pathParser.parseSegmentIndexing(pathSegment);
264
- const jsonPath = `$.${cleanSegment}`;
265
- const whereClauses = this.buildNestedWhereClauses(isLast, segmentIndex, arrayIndex, whereCondition);
266
- clauses += this.buildApplyWithOptionalWhere(applyType, currentSource, jsonPath, alias, whereClauses);
267
- currentSource = `${alias}.value`;
268
- }
269
- return clauses;
270
- }
271
- /**
272
- * Build WHERE clause conditions for nested array filtering.
273
- */
274
- buildNestedWhereClauses(isLast, segmentIndex, arrayIndex, whereCondition) {
275
- const whereClauses = [];
276
- if (segmentIndex !== null) {
277
- whereClauses.push(`[key] = '${segmentIndex}'`);
278
- }
279
- else if (isLast && arrayIndex !== null && arrayIndex !== undefined) {
280
- whereClauses.push(`[key] = '${arrayIndex}'`);
281
- }
282
- if (isLast && whereCondition !== null && whereCondition !== undefined) {
283
- whereClauses.push(whereCondition);
284
- }
285
- return whereClauses;
286
- }
287
- /**
288
- * Build APPLY clause with optional WHERE conditions.
289
- */
290
- buildApplyWithOptionalWhere(applyType, source, jsonPath, alias, whereClauses) {
291
- if (whereClauses.length > 0) {
292
- return `\n${applyType} (
293
- SELECT * FROM OPENJSON(${source}, '${jsonPath}')
294
- WHERE ${whereClauses.join(" AND ")}
295
- ) AS ${alias}`;
296
- }
297
- return `\n${applyType} OPENJSON(${source}, '${jsonPath}') AS ${alias}`;
298
- }
299
- /**
300
- * Process nested forEach within this forEach's select.
301
- */
302
- processNestedSelectClauses(forEachSelect, forEachContextMap, combination) {
303
- if (!forEachSelect.select) {
304
- return "";
305
- }
306
- return forEachSelect.select
307
- .filter((nestedSelect) => this.isForEachSelect(nestedSelect))
308
- .map((nestedSelect) => {
309
- const nestedContext = forEachContextMap.get(nestedSelect);
310
- if (!nestedContext) {
311
- throw new Error("Nested forEach context not found");
312
- }
313
- return this.generateForEachClause(nestedSelect, nestedContext, forEachContextMap, combination);
314
- })
315
- .join("");
316
- }
317
- /**
318
- * Process nested forEach within this forEach's unionAll options.
319
- */
320
- processNestedUnionAllClauses(forEachSelect, forEachContextMap, combination) {
321
- if (!forEachSelect.unionAll || !combination) {
322
- return "";
323
- }
324
- const selectedUnionOption = this.getSelectedUnionOption(forEachSelect, combination);
325
- if (!selectedUnionOption || !this.isForEachSelect(selectedUnionOption)) {
326
- return "";
327
- }
328
- const nestedContext = forEachContextMap.get(selectedUnionOption);
329
- if (!nestedContext) {
330
- return "";
331
- }
332
- return this.generateForEachClause(selectedUnionOption, nestedContext, forEachContextMap, combination);
333
- }
334
- /**
335
- * Get the selected unionAll option for a forEach in a combination.
336
- */
337
- getSelectedUnionOption(forEachSelect, combination) {
338
- if (!forEachSelect.unionAll) {
339
- return null;
340
- }
341
- const selectIndex = combination.selects.indexOf(forEachSelect);
342
- const selectedUnionIndex = selectIndex >= 0 ? combination.unionChoices[selectIndex] : -1;
343
- if (selectedUnionIndex < 0 ||
344
- selectedUnionIndex >= forEachSelect.unionAll.length) {
345
- return null;
346
- }
347
- return forEachSelect.unionAll[selectedUnionIndex];
348
- }
349
- }
350
- exports.ForEachProcessor = ForEachProcessor;
351
- //# sourceMappingURL=ForEachProcessor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ForEachProcessor.js","sourceRoot":"","sources":["../../src/queryGenerator/ForEachProcessor.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAsBH;;GAEG;AACH,MAAa,gBAAgB;IACV,UAAU,CAAa;IAExC,YAAY,UAAsB;QAChC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,WAA8B;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,WAAW,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,sEAAsE;YACtE,IAAI,WAAW,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBACvD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;oBACxC,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,MAA4B;QAC3C,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,OAA+B;QACzD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,eAAuC;QAChE,OAAO,eAAe,CAAC,IAAI,CACzB,CAAC,WAAW,EAAE,EAAE,CACd,CAAC,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,aAAa,CAAC,KAAK,SAAS;YAChE,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,sBAAsB,CACpB,OAA+B,EAC/B,OAA0B,EAC1B,WAA+B;QAE/B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAG9B,CAAC;QACJ,MAAM,YAAY,GAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAEhD,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE1E,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,uBAAuB,CAC1B,MAAM,EACN,OAAO,CAAC,aAAa,GAAG,OAAO,EAC/B,OAAO,EACP,iBAAiB,EACjB,YAAY,CACb,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,OAA+B,EAC/B,WAA+B;QAE/B,MAAM,eAAe,GAA2B,EAAE,CAAC;QAEnD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAEnD,4EAA4E;YAC5E,IAAI,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,MAA4B,EAC5B,eAAuC;QAEvC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,MAA4B,EAC5B,WAA8B,EAC9B,eAAuC;QAEvC,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,WAAW,GACf,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,IAAI,WAAW,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;YACvD,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;iBAAM,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC/B,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,yBAAyB,CAC/B,OAA+B,EAC/B,eAAuC;QAEvC,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,MAA4B;QAClD,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,aAAmC,EACnC,gBAAwB,EACxB,WAA8B,EAC9B,iBAA+D,EAC/D,YAA0B;QAE1B,MAAM,UAAU,GAAG,WAAW,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAC9C,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,aAAa,CACd,CAAC;QAEF,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,6BAA6B,CAChC,aAAa,EACb,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,WAA8B,EAC9B,UAAkB,EAClB,gBAAwB,EACxB,aAAmC;QAEnC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC;QAEzE,OAAO;YACL,GAAG,WAAW;YACd,gBAAgB,EAAE,GAAG,UAAU,QAAQ;YACvC,mBAAmB,EAAE,UAAU;YAC/B,aAAa,EAAE,gBAAgB;YAC/B,WAAW,EAAE,KAAK,WAAW,EAAE;SAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,6BAA6B,CACnC,aAAmC,EACnC,UAAkB,EAClB,WAA8B,EAC9B,iBAA+D,EAC/D,YAA0B;QAE1B,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,4BAA4B,CAC/B,aAAa,CAAC,MAAM,EACpB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,YAAY,CACb,CAAC;QACJ,CAAC;QAED,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,8BAA8B,CACjC,aAAa,CAAC,QAAQ,EACtB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,YAAY,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,4BAA4B,CAClC,aAAqC,EACrC,UAAkB,EAClB,cAAiC,EACjC,iBAA+D,EAC/D,YAA0B;QAE1B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,uBAAuB,CAC1B,YAAY,EACZ,GAAG,UAAU,QAAQ,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,8BAA8B,CACpC,eAAuC,EACvC,UAAkB,EAClB,cAAiC,EACjC,iBAA+D,EAC/D,YAA0B;QAE1B,KAAK,MAAM,WAAW,IAAI,eAAe,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,uBAAuB,CAC1B,WAAW,EACX,GAAG,UAAU,QAAQ,EACrB,cAAc,EACd,iBAAiB,EACjB,YAAY,CACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,iBAA+D,EAC/D,eAAuC,EACvC,WAA8B;QAE9B,OAAO,CAAC,GAAG,eAAe,CAAC;aACxB,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,cAAc,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrD,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,WAAW,CACZ,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,aAAmC,EACnC,cAAiC,EACjC,iBAA+D,EAC/D,WAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CACzD,aAAa,EACb,iBAAiB,EACjB,WAAW,CACZ,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,4BAA4B,CAC1D,aAAa,EACb,iBAAiB,EACjB,WAAW,CACZ,CAAC;QAEF,OAAO,MAAM,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,aAAmC,EACnC,cAAiC;QAEjC,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC;QACrE,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC;QAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;QAC3D,MAAM,UAAU,GAAG,cAAc,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAC5D,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,IAAI,EAAE,CAAC;QAE5D,MAAM,EACJ,IAAI,EAAE,gBAAgB,EACtB,cAAc,EACd,QAAQ,GACT,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC;QACtE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,GACrC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QAE3E,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,wBAAwB,CAClC,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,UAAU,EACV,cAAc,CACf,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,sBAAsB,CAChC,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,UAAU,EACV,cAAc,EACd,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,SAAiB,EACjB,gBAAwB,EACxB,WAAmB,EACnB,UAAkB,EAClB,UAAyB,EACzB,cAA6B,EAC7B,WAAoB,KAAK;QAEzB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAExE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YACxC,2DAA2D;YAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YAClD,MAAM,WAAW,GACf,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEvE,OAAO,KAAK,SAAS;iBACV,SAAS,mBAAmB,gBAAgB,QAAQ,WAAW;UACtE,WAAW,GAAG,OAAO;aAClB,UAAU,EAAE,CAAC;QACtB,CAAC;QAED,OAAO,KAAK,SAAS,aAAa,gBAAgB,QAAQ,WAAW,SAAS,UAAU,EAAE,CAAC;IAC7F,CAAC;IAED;;OAEG;IACK,iBAAiB,CACvB,UAAyB,EACzB,cAA6B;QAE7B,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,YAAY,UAAU,GAAG,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,UAAoB,EACpB,gBAAwB,EACxB,UAAkB,EAClB,SAAiB,EACjB,UAA0B,EAC1B,cAA8B;QAE9B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,aAAa,GAAG,gBAAgB,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,CAAC,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,QAAQ,CAAC,EAAE,CAAC;YAE7D,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACtE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAClC,IAAI,CAAC,UAAU,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,KAAK,YAAY,EAAE,CAAC;YAErC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAC/C,MAAM,EACN,YAAY,EACZ,UAAU,EACV,cAAc,CACf,CAAC;YAEF,OAAO,IAAI,IAAI,CAAC,2BAA2B,CACzC,SAAS,EACT,aAAa,EACb,QAAQ,EACR,KAAK,EACL,YAAY,CACb,CAAC;YAEF,aAAa,GAAG,GAAG,KAAK,QAAQ,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,MAAe,EACf,YAA2B,EAC3B,UAAqC,EACrC,cAAyC;QAEzC,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,YAAY,YAAY,GAAG,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,MAAM,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACrE,YAAY,CAAC,IAAI,CAAC,YAAY,UAAU,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,MAAM,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACtE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACK,2BAA2B,CACjC,SAAiB,EACjB,MAAc,EACd,QAAgB,EAChB,KAAa,EACb,YAAsB;QAEtB,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,SAAS;iCACM,MAAM,MAAM,QAAQ;gBACrC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;aAC7B,KAAK,EAAE,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,SAAS,aAAa,MAAM,MAAM,QAAQ,SAAS,KAAK,EAAE,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,0BAA0B,CAChC,aAAmC,EACnC,iBAA+D,EAC/D,WAA+B;QAE/B,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,aAAa,CAAC,MAAM;aACxB,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;aAC5D,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACpB,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAC/B,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,WAAW,CACZ,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAC;IACd,CAAC;IAED;;OAEG;IACK,4BAA4B,CAClC,aAAmC,EACnC,iBAA+D,EAC/D,WAA+B;QAE/B,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CACrD,aAAa,EACb,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,IAAI,CAAC,qBAAqB,CAC/B,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,WAAW,CACZ,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,aAAmC,EACnC,WAA8B;QAE9B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,MAAM,kBAAkB,GACtB,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,IACE,kBAAkB,GAAG,CAAC;YACtB,kBAAkB,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,EACnD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,aAAa,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;CACF;AAjmBD,4CAimBC"}
@@ -1,63 +0,0 @@
1
- /**
2
- * Builds SELECT clauses for SQL queries.
3
- */
4
- import { TranspilerContext } from "../fhirpath/transpiler.js";
5
- import { ViewDefinitionSelect } from "../types.js";
6
- import { SelectCombination } from "./SelectCombinationExpander.js";
7
- import { ColumnExpressionGenerator } from "./ColumnExpressionGenerator.js";
8
- /**
9
- * Handles generation of SELECT clauses.
10
- */
11
- export declare class SelectClauseBuilder {
12
- private readonly columnGenerator;
13
- constructor(columnGenerator: ColumnExpressionGenerator);
14
- /**
15
- * Generate SELECT clause for a simple (non-forEach) statement.
16
- */
17
- generateSimpleSelectClause(combination: SelectCombination, context: TranspilerContext): string;
18
- /**
19
- * Generate SELECT clause specifically for forEach statements.
20
- */
21
- generateForEachSelectClause(combination: SelectCombination, context: TranspilerContext, forEachContextMap: Map<ViewDefinitionSelect, TranspilerContext>): string;
22
- /**
23
- * Add columns from a select element to the column parts array.
24
- */
25
- private addSelectElementColumns;
26
- /**
27
- * Generate column expressions for a select element (used for nested selects).
28
- */
29
- private generateSelectElementColumns;
30
- /**
31
- * Add unionAll columns for the chosen combination.
32
- */
33
- private addUnionAllColumns;
34
- /**
35
- * Add columns for a forEach select.
36
- */
37
- private addForEachSelectColumns;
38
- /**
39
- * Add columns for a non-forEach select.
40
- */
41
- private addNonForEachSelectColumns;
42
- /**
43
- * Add nested select columns for forEach select.
44
- */
45
- private addNestedSelectColumnsForForEach;
46
- /**
47
- * Add nested select columns for non-forEach select.
48
- */
49
- private addNestedSelectColumnsForNonForEach;
50
- /**
51
- * Add unionAll columns for a select.
52
- */
53
- private addUnionAllColumnsForSelect;
54
- /**
55
- * Add columns to the column parts list.
56
- */
57
- private addColumnsToList;
58
- /**
59
- * Check if a select is a forEach or forEachOrNull.
60
- */
61
- private isForEachSelect;
62
- }
63
- //# sourceMappingURL=SelectClauseBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectClauseBuilder.d.ts","sourceRoot":"","sources":["../../src/queryGenerator/SelectClauseBuilder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAwB,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAE3E;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;gBAEhD,eAAe,EAAE,yBAAyB;IAItD;;OAEG;IACH,0BAA0B,CACxB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,iBAAiB,GACzB,MAAM;IAcT;;OAEG;IACH,2BAA2B,CACzB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,EAAE,iBAAiB,EAC1B,iBAAiB,EAAE,GAAG,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,GAC9D,MAAM;IA4BT;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyB/B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAuBpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA+B1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA8B/B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0BlC;;OAEG;IACH,OAAO,CAAC,gCAAgC;IA0BxC;;OAEG;IACH,OAAO,CAAC,mCAAmC;IA0B3C;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAyBnC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,eAAe;CAGxB"}
@@ -1,196 +0,0 @@
1
- "use strict";
2
- /**
3
- * Builds SELECT clauses for SQL queries.
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SelectClauseBuilder = void 0;
7
- /**
8
- * Handles generation of SELECT clauses.
9
- */
10
- class SelectClauseBuilder {
11
- columnGenerator;
12
- constructor(columnGenerator) {
13
- this.columnGenerator = columnGenerator;
14
- }
15
- /**
16
- * Generate SELECT clause for a simple (non-forEach) statement.
17
- */
18
- generateSimpleSelectClause(combination, context) {
19
- const columnParts = [];
20
- for (let i = 0; i < combination.selects.length; i++) {
21
- const select = combination.selects[i];
22
- const unionChoice = combination.unionChoices[i];
23
- this.addSelectElementColumns(select, columnParts, context);
24
- this.addUnionAllColumns(select, unionChoice, columnParts, context);
25
- }
26
- return `SELECT\n ${columnParts.join(",\n ")}`;
27
- }
28
- /**
29
- * Generate SELECT clause specifically for forEach statements.
30
- */
31
- generateForEachSelectClause(combination, context, forEachContextMap) {
32
- const columnParts = [];
33
- for (let i = 0; i < combination.selects.length; i++) {
34
- const select = combination.selects[i];
35
- const unionChoice = combination.unionChoices[i];
36
- if (this.isForEachSelect(select)) {
37
- this.addForEachSelectColumns(select, unionChoice, columnParts, forEachContextMap);
38
- }
39
- else {
40
- this.addNonForEachSelectColumns(select, unionChoice, columnParts, context, forEachContextMap);
41
- }
42
- }
43
- return `SELECT\n ${columnParts.join(",\n ")}`;
44
- }
45
- /**
46
- * Add columns from a select element to the column parts array.
47
- */
48
- addSelectElementColumns(select, columnParts, context) {
49
- // Skip forEach selects - handled separately.
50
- if (this.isForEachSelect(select)) {
51
- return;
52
- }
53
- if (select.column) {
54
- this.addColumnsToList(select.column, columnParts, context);
55
- }
56
- if (select.select) {
57
- for (const nestedSelect of select.select) {
58
- const nestedColumns = this.generateSelectElementColumns(nestedSelect, context);
59
- columnParts.push(...nestedColumns);
60
- }
61
- }
62
- }
63
- /**
64
- * Generate column expressions for a select element (used for nested selects).
65
- */
66
- generateSelectElementColumns(select, context) {
67
- const columnParts = [];
68
- if (select.column) {
69
- this.addColumnsToList(select.column, columnParts, context);
70
- }
71
- if (select.select) {
72
- for (const nestedSelect of select.select) {
73
- const nestedColumns = this.generateSelectElementColumns(nestedSelect, context);
74
- columnParts.push(...nestedColumns);
75
- }
76
- }
77
- return columnParts;
78
- }
79
- /**
80
- * Add unionAll columns for the chosen combination.
81
- */
82
- addUnionAllColumns(select, unionChoice, columnParts, context, forEachContextMap) {
83
- if (!select.unionAll ||
84
- unionChoice < 0 ||
85
- unionChoice >= select.unionAll.length) {
86
- return;
87
- }
88
- const chosenUnion = select.unionAll[unionChoice];
89
- if (this.isForEachSelect(chosenUnion) && forEachContextMap) {
90
- const unionForEachContext = forEachContextMap.get(chosenUnion);
91
- if (unionForEachContext && chosenUnion.column) {
92
- this.addColumnsToList(chosenUnion.column, columnParts, unionForEachContext);
93
- }
94
- }
95
- else if (chosenUnion.column) {
96
- this.addColumnsToList(chosenUnion.column, columnParts, context);
97
- }
98
- }
99
- /**
100
- * Add columns for a forEach select.
101
- */
102
- addForEachSelectColumns(select, unionChoice, columnParts, forEachContextMap) {
103
- const forEachContext = forEachContextMap.get(select);
104
- if (!forEachContext) {
105
- return;
106
- }
107
- if (select.column) {
108
- this.addColumnsToList(select.column, columnParts, forEachContext);
109
- }
110
- this.addNestedSelectColumnsForForEach(select, columnParts, forEachContext, forEachContextMap);
111
- this.addUnionAllColumnsForSelect(select, unionChoice, columnParts, forEachContext, forEachContextMap);
112
- }
113
- /**
114
- * Add columns for a non-forEach select.
115
- */
116
- addNonForEachSelectColumns(select, unionChoice, columnParts, context, forEachContextMap) {
117
- if (select.column) {
118
- this.addColumnsToList(select.column, columnParts, context);
119
- }
120
- this.addNestedSelectColumnsForNonForEach(select, columnParts, context, forEachContextMap);
121
- this.addUnionAllColumnsForSelect(select, unionChoice, columnParts, context, forEachContextMap);
122
- }
123
- /**
124
- * Add nested select columns for forEach select.
125
- */
126
- addNestedSelectColumnsForForEach(select, columnParts, parentContext, forEachContextMap) {
127
- if (!select.select) {
128
- return;
129
- }
130
- for (const nestedSelect of select.select) {
131
- if (this.isForEachSelect(nestedSelect)) {
132
- const nestedContext = forEachContextMap.get(nestedSelect);
133
- if (nestedContext && nestedSelect.column) {
134
- this.addColumnsToList(nestedSelect.column, columnParts, nestedContext);
135
- }
136
- }
137
- else if (nestedSelect.column) {
138
- this.addColumnsToList(nestedSelect.column, columnParts, parentContext);
139
- }
140
- }
141
- }
142
- /**
143
- * Add nested select columns for non-forEach select.
144
- */
145
- addNestedSelectColumnsForNonForEach(select, columnParts, context, forEachContextMap) {
146
- if (!select.select) {
147
- return;
148
- }
149
- for (const nestedSelect of select.select) {
150
- if (this.isForEachSelect(nestedSelect)) {
151
- const forEachContext = forEachContextMap.get(nestedSelect);
152
- if (forEachContext && nestedSelect.column) {
153
- this.addColumnsToList(nestedSelect.column, columnParts, forEachContext);
154
- }
155
- }
156
- else if (nestedSelect.column) {
157
- this.addColumnsToList(nestedSelect.column, columnParts, context);
158
- }
159
- }
160
- }
161
- /**
162
- * Add unionAll columns for a select.
163
- */
164
- addUnionAllColumnsForSelect(select, unionChoice, columnParts, defaultContext, forEachContextMap) {
165
- if (unionChoice < 0 || !select.unionAll?.[unionChoice]) {
166
- return;
167
- }
168
- const chosenBranch = select.unionAll[unionChoice];
169
- if (!chosenBranch.column) {
170
- return;
171
- }
172
- const branchContext = this.isForEachSelect(chosenBranch)
173
- ? forEachContextMap.get(chosenBranch)
174
- : defaultContext;
175
- if (branchContext) {
176
- this.addColumnsToList(chosenBranch.column, columnParts, branchContext);
177
- }
178
- }
179
- /**
180
- * Add columns to the column parts list.
181
- */
182
- addColumnsToList(columns, columnParts, context) {
183
- for (const column of columns) {
184
- const columnSql = this.columnGenerator.generateExpression(column, context);
185
- columnParts.push(`${columnSql} AS [${column.name}]`);
186
- }
187
- }
188
- /**
189
- * Check if a select is a forEach or forEachOrNull.
190
- */
191
- isForEachSelect(select) {
192
- return !!(select.forEach ?? select.forEachOrNull);
193
- }
194
- }
195
- exports.SelectClauseBuilder = SelectClauseBuilder;
196
- //# sourceMappingURL=SelectClauseBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectClauseBuilder.js","sourceRoot":"","sources":["../../src/queryGenerator/SelectClauseBuilder.ts"],"names":[],"mappings":"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"}