sof-mssql 1.0.1 → 2.1.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 (56) hide show
  1. package/README.md +175 -35
  2. package/dist/fhirpath/transpiler.d.ts +40 -2
  3. package/dist/fhirpath/transpiler.d.ts.map +1 -1
  4. package/dist/fhirpath/transpiler.js +85 -15
  5. package/dist/fhirpath/transpiler.js.map +1 -1
  6. package/dist/load.d.ts.map +1 -1
  7. package/dist/load.js +3 -0
  8. package/dist/load.js.map +1 -1
  9. package/dist/loader/connection.d.ts.map +1 -1
  10. package/dist/loader/connection.js +6 -0
  11. package/dist/loader/connection.js.map +1 -1
  12. package/dist/loader/tables.d.ts.map +1 -1
  13. package/dist/loader/tables.js +7 -0
  14. package/dist/loader/tables.js.map +1 -1
  15. package/dist/loader/types.d.ts +2 -0
  16. package/dist/loader/types.d.ts.map +1 -1
  17. package/dist/parser.d.ts +22 -1
  18. package/dist/parser.d.ts.map +1 -1
  19. package/dist/parser.js +101 -10
  20. package/dist/parser.js.map +1 -1
  21. package/dist/queryGenerator/RepeatProcessor.d.ts +177 -0
  22. package/dist/queryGenerator/RepeatProcessor.d.ts.map +1 -0
  23. package/dist/queryGenerator/RepeatProcessor.js +336 -0
  24. package/dist/queryGenerator/RepeatProcessor.js.map +1 -0
  25. package/dist/queryGenerator/SelectClauseBuilder.d.ts +45 -0
  26. package/dist/queryGenerator/SelectClauseBuilder.d.ts.map +1 -1
  27. package/dist/queryGenerator/SelectClauseBuilder.js +150 -0
  28. package/dist/queryGenerator/SelectClauseBuilder.js.map +1 -1
  29. package/dist/queryGenerator/WhereClauseBuilder.d.ts +1 -0
  30. package/dist/queryGenerator/WhereClauseBuilder.d.ts.map +1 -1
  31. package/dist/queryGenerator/WhereClauseBuilder.js +6 -2
  32. package/dist/queryGenerator/WhereClauseBuilder.js.map +1 -1
  33. package/dist/queryGenerator/index.d.ts +1 -0
  34. package/dist/queryGenerator/index.d.ts.map +1 -1
  35. package/dist/queryGenerator/index.js +3 -1
  36. package/dist/queryGenerator/index.js.map +1 -1
  37. package/dist/queryGenerator.d.ts +61 -1
  38. package/dist/queryGenerator.d.ts.map +1 -1
  39. package/dist/queryGenerator.js +176 -13
  40. package/dist/queryGenerator.js.map +1 -1
  41. package/dist/tests/utils/generator.js +11 -11
  42. package/dist/tests/utils/generator.js.map +1 -1
  43. package/dist/tests/utils/sqlOnFhir.d.ts.map +1 -1
  44. package/dist/tests/utils/sqlOnFhir.js +39 -4
  45. package/dist/tests/utils/sqlOnFhir.js.map +1 -1
  46. package/dist/tests/utils/testContext.d.ts +3 -6
  47. package/dist/tests/utils/testContext.d.ts.map +1 -1
  48. package/dist/tests/utils/testContext.js +5 -9
  49. package/dist/tests/utils/testContext.js.map +1 -1
  50. package/dist/types.d.ts +14 -0
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/validation.d.ts +66 -0
  53. package/dist/validation.d.ts.map +1 -0
  54. package/dist/validation.js +449 -0
  55. package/dist/validation.js.map +1 -0
  56. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"WhereClauseBuilder.js","sourceRoot":"","sources":["../../src/queryGenerator/WhereClauseBuilder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6DAA0E;AAG1E;;GAEG;AACH,MAAa,kBAAkB;IAC7B;;;OAGG;IACH,gBAAgB,CACd,YAAoB,EACpB,aAAqB,EACrB,MAA0B,EAC1B,eAAkD,EAClD,OAA0B;QAE1B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,4BAA4B;QAC5B,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,wBAAwB,YAAY,GAAG,CAAC,CAAC;QAE1E,4FAA4F;QAC5F,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,kBAAkB,MAAM,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,mCAAmC;QACnC,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAClD,eAAe,EACf,OAAO,CACR,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,eAAkD,EAClD,OAA0B;QAE1B,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAE9D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,0BAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE5D,mFAAmF;gBACnF,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAC1C,mCAAmC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CACnE,CAAC;gBAEF,IAAI,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrD,UAAU,CAAC,IAAI,CACb,cAAc,SAAS,kCAAkC,CAC1D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,wCAAwC,KAAK,CAAC,IAAI,MAAM,KAAK,EAAE,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC3C,CAAC;CACF;AA7ED,gDA6EC"}
1
+ {"version":3,"file":"WhereClauseBuilder.js","sourceRoot":"","sources":["../../src/queryGenerator/WhereClauseBuilder.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6DAA0E;AAE1E,oDAAwE;AAExE;;GAEG;AACH,MAAa,kBAAkB;IAC7B;;;;OAIG;IACH,gBAAgB,CACd,YAAoB,EACpB,aAAqB,EACrB,MAA0B,EAC1B,eAAkD,EAClD,OAA0B;QAE1B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,yCAAyC;QACzC,IAAA,oCAAoB,EAAC,YAAY,CAAC,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,wBAAwB,YAAY,GAAG,CAAC,CAAC;QAE1E,yGAAyG;QACzG,IAAI,MAAM,EAAE,CAAC;YACX,IAAA,8BAAc,EAAC,MAAM,CAAC,CAAC;YACvB,UAAU,CAAC,IAAI,CAAC,IAAI,aAAa,kBAAkB,MAAM,GAAG,CAAC,CAAC;QAChE,CAAC;QAED,mCAAmC;QACnC,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAClD,eAAe,EACf,OAAO,CACR,CAAC;QACF,IAAI,eAAe,EAAE,CAAC;YACpB,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,SAAS,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC7B,eAAkD,EAClD,OAA0B;QAE1B,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC;QAE9D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,0BAAU,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAE5D,mFAAmF;gBACnF,MAAM,yBAAyB,GAAG,IAAI,MAAM,CAC1C,mCAAmC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CACnE,CAAC;gBAEF,IAAI,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrD,UAAU,CAAC,IAAI,CACb,cAAc,SAAS,kCAAkC,CAC1D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CACb,wCAAwC,KAAK,CAAC,IAAI,MAAM,KAAK,EAAE,CAChE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;IAC3C,CAAC;CACF;AAhFD,gDAgFC"}
@@ -4,6 +4,7 @@
4
4
  export { PathParser } from "./PathParser.js";
5
5
  export { SelectCombination, SelectCombinationExpander, } from "./SelectCombinationExpander.js";
6
6
  export { ForEachProcessor } from "./ForEachProcessor.js";
7
+ export { RepeatProcessor, RepeatContext } from "./RepeatProcessor.js";
7
8
  export { SelectClauseBuilder } from "./SelectClauseBuilder.js";
8
9
  export { WhereClauseBuilder } from "./WhereClauseBuilder.js";
9
10
  export { ColumnExpressionGenerator } from "./ColumnExpressionGenerator.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queryGenerator/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/queryGenerator/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC"}
@@ -3,13 +3,15 @@
3
3
  * Query generator components for building T-SQL from ViewDefinitions.
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ColumnExpressionGenerator = exports.WhereClauseBuilder = exports.SelectClauseBuilder = exports.ForEachProcessor = exports.SelectCombinationExpander = exports.PathParser = void 0;
6
+ exports.ColumnExpressionGenerator = exports.WhereClauseBuilder = exports.SelectClauseBuilder = exports.RepeatProcessor = exports.ForEachProcessor = exports.SelectCombinationExpander = exports.PathParser = void 0;
7
7
  var PathParser_js_1 = require("./PathParser.js");
8
8
  Object.defineProperty(exports, "PathParser", { enumerable: true, get: function () { return PathParser_js_1.PathParser; } });
9
9
  var SelectCombinationExpander_js_1 = require("./SelectCombinationExpander.js");
10
10
  Object.defineProperty(exports, "SelectCombinationExpander", { enumerable: true, get: function () { return SelectCombinationExpander_js_1.SelectCombinationExpander; } });
11
11
  var ForEachProcessor_js_1 = require("./ForEachProcessor.js");
12
12
  Object.defineProperty(exports, "ForEachProcessor", { enumerable: true, get: function () { return ForEachProcessor_js_1.ForEachProcessor; } });
13
+ var RepeatProcessor_js_1 = require("./RepeatProcessor.js");
14
+ Object.defineProperty(exports, "RepeatProcessor", { enumerable: true, get: function () { return RepeatProcessor_js_1.RepeatProcessor; } });
13
15
  var SelectClauseBuilder_js_1 = require("./SelectClauseBuilder.js");
14
16
  Object.defineProperty(exports, "SelectClauseBuilder", { enumerable: true, get: function () { return SelectClauseBuilder_js_1.SelectClauseBuilder; } });
15
17
  var WhereClauseBuilder_js_1 = require("./WhereClauseBuilder.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queryGenerator/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,+EAGwC;AADtC,yIAAA,yBAAyB,OAAA;AAE3B,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,+EAA2E;AAAlE,yIAAA,yBAAyB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/queryGenerator/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,+EAGwC;AADtC,yIAAA,yBAAyB,OAAA;AAE3B,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA;AACzB,2DAAsE;AAA7D,qHAAA,eAAe,OAAA;AACxB,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,+EAA2E;AAAlE,yIAAA,yBAAyB,OAAA"}
@@ -17,6 +17,7 @@ export declare class QueryGenerator {
17
17
  private readonly pathParser;
18
18
  private readonly combinationExpander;
19
19
  private readonly forEachProcessor;
20
+ private readonly repeatProcessor;
20
21
  private readonly selectClauseBuilder;
21
22
  private readonly whereClauseBuilder;
22
23
  private readonly columnGenerator;
@@ -26,11 +27,24 @@ export declare class QueryGenerator {
26
27
  */
27
28
  generateQuery(viewDef: ViewDefinition, testId?: string): TranspilationResult;
28
29
  /**
29
- * Generate all complete SELECT statements, handling unionAll properly.
30
+ * Result of generating all SELECT statements.
30
31
  */
31
32
  private generateAllSelectStatements;
32
33
  /**
33
34
  * Generate a complete SQL statement for a specific combination.
35
+ *
36
+ * Routes to the appropriate statement generator based on the directives
37
+ * present in the combination:
38
+ * - Repeat statements use recursive CTEs.
39
+ * - ForEach statements use CROSS APPLY.
40
+ * - Simple statements have neither.
41
+ *
42
+ * @param combination - The select combination to generate.
43
+ * @param viewDef - The ViewDefinition being processed.
44
+ * @param context - The transpiler context.
45
+ * @param isMultiUnion - If true, CTEs are returned separately for consolidation.
46
+ * @param cteCounter - Shared counter for unique CTE aliases across combinations.
47
+ * @returns The statement and any CTE definitions (empty if not repeat or single statement).
34
48
  */
35
49
  private generateStatementForCombination;
36
50
  /**
@@ -41,6 +55,52 @@ export declare class QueryGenerator {
41
55
  * Generate a SELECT statement with forEach using CROSS APPLY.
42
56
  */
43
57
  private generateForEachStatement;
58
+ /**
59
+ * Generate a SELECT statement with repeat using recursive CTEs.
60
+ *
61
+ * The repeat directive generates a recursive CTE that traverses a tree
62
+ * structure by following one or more paths at each level. The CTE is then
63
+ * joined to the main query using INNER JOIN.
64
+ *
65
+ * If the combination also contains forEach, the forEach is processed after
66
+ * the repeat CTE, using the repeat context as its source.
67
+ *
68
+ * @param combination - The select combination being processed.
69
+ * @param viewDef - The ViewDefinition.
70
+ * @param context - The transpiler context.
71
+ * @param isMultiUnion - If true, return CTE definitions separately for consolidation.
72
+ * @param cteCounter - Shared counter for unique CTE aliases across combinations.
73
+ * @returns Statement and CTE definitions.
74
+ */
75
+ private generateRepeatStatement;
76
+ /**
77
+ * Build select clause and forEach apply clauses for repeat statements.
78
+ */
79
+ private buildRepeatSelectAndForEach;
80
+ /**
81
+ * Assemble the final repeat statement from its components.
82
+ */
83
+ private assembleRepeatStatement;
84
+ /**
85
+ * Update forEach source expressions to use repeat CTE instead of resource JSON.
86
+ *
87
+ * When forEach is nested inside repeat, the forEach should iterate over
88
+ * arrays within the repeat context (e.g., repeat_0.item_json) rather than
89
+ * the root resource JSON.
90
+ */
91
+ private updateForEachSourcesForRepeat;
92
+ /**
93
+ * Find the repeat select that contains a given forEach select.
94
+ */
95
+ private findContainingRepeat;
96
+ /**
97
+ * Check if a forEach select is nested within a repeat select.
98
+ */
99
+ private isForEachNestedInRepeat;
100
+ /**
101
+ * Recursively check if a select is nested within a list of selects.
102
+ */
103
+ private isSelectNestedIn;
44
104
  /**
45
105
  * Generate the FROM clause.
46
106
  */
@@ -1 +1 @@
1
- {"version":3,"file":"queryGenerator.d.ts","sourceRoot":"","sources":["../src/queryGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAEL,mBAAmB,EACnB,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;gBAEhD,OAAO,GAAE,qBAA0B;IAkB/C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAuB5E;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAanC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAYvC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA0B1B"}
1
+ {"version":3,"file":"queryGenerator.d.ts","sourceRoot":"","sources":["../src/queryGenerator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,OAAO,EAEL,mBAAmB,EACnB,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;IAChE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;gBAEhD,OAAO,GAAE,qBAA0B;IAmB/C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB;IA8B5E;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA+BnC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,+BAA+B;IAgCvC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0B/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAsChC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,uBAAuB;IAgD/B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IA2CnC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IAqBrC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAU/B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CA0B1B"}
@@ -15,6 +15,7 @@ class QueryGenerator {
15
15
  pathParser;
16
16
  combinationExpander;
17
17
  forEachProcessor;
18
+ repeatProcessor;
18
19
  selectClauseBuilder;
19
20
  whereClauseBuilder;
20
21
  columnGenerator;
@@ -31,6 +32,7 @@ class QueryGenerator {
31
32
  this.combinationExpander = new index_js_1.SelectCombinationExpander();
32
33
  this.columnGenerator = new index_js_1.ColumnExpressionGenerator();
33
34
  this.forEachProcessor = new index_js_1.ForEachProcessor(this.pathParser);
35
+ this.repeatProcessor = new index_js_1.RepeatProcessor();
34
36
  this.selectClauseBuilder = new index_js_1.SelectClauseBuilder(this.columnGenerator);
35
37
  this.whereClauseBuilder = new index_js_1.WhereClauseBuilder();
36
38
  }
@@ -41,10 +43,22 @@ class QueryGenerator {
41
43
  try {
42
44
  const context = this.createBaseContext(viewDef, testId);
43
45
  const columns = this.collectAllColumns(viewDef.select);
44
- const selectStatements = this.generateAllSelectStatements(viewDef, context);
45
- const sql = selectStatements.length > 1
46
- ? selectStatements.join("\nUNION ALL\n")
47
- : selectStatements[0];
46
+ const { statements, allCteDefinitions } = this.generateAllSelectStatements(viewDef, context);
47
+ let sql;
48
+ if (statements.length > 1) {
49
+ // Multiple statements (unionAll). If any have CTEs, consolidate them.
50
+ if (allCteDefinitions.length > 0) {
51
+ const withClause = `WITH\n${allCteDefinitions.join(",\n")}\n`;
52
+ sql = withClause + statements.join("\nUNION ALL\n");
53
+ }
54
+ else {
55
+ sql = statements.join("\nUNION ALL\n");
56
+ }
57
+ }
58
+ else {
59
+ // Single statement. If it has CTEs, they're already included.
60
+ sql = statements[0];
61
+ }
48
62
  return {
49
63
  sql,
50
64
  columns,
@@ -55,20 +69,57 @@ class QueryGenerator {
55
69
  }
56
70
  }
57
71
  /**
58
- * Generate all complete SELECT statements, handling unionAll properly.
72
+ * Result of generating all SELECT statements.
59
73
  */
60
74
  generateAllSelectStatements(viewDef, context) {
61
75
  const unionCombinations = this.combinationExpander.expandCombinations(viewDef.select);
62
- return unionCombinations.map((combination) => this.generateStatementForCombination(combination, viewDef, context));
76
+ const statements = [];
77
+ const allCteDefinitions = [];
78
+ const isMultiUnion = unionCombinations.length > 1;
79
+ // Shared counter state to ensure unique CTE aliases across all combinations.
80
+ const cteCounter = { value: 0 };
81
+ for (const combination of unionCombinations) {
82
+ const { statement, cteDefinitions } = this.generateStatementForCombination(combination, viewDef, context, isMultiUnion, cteCounter);
83
+ statements.push(statement);
84
+ allCteDefinitions.push(...cteDefinitions);
85
+ }
86
+ return { statements, allCteDefinitions };
63
87
  }
64
88
  /**
65
89
  * Generate a complete SQL statement for a specific combination.
90
+ *
91
+ * Routes to the appropriate statement generator based on the directives
92
+ * present in the combination:
93
+ * - Repeat statements use recursive CTEs.
94
+ * - ForEach statements use CROSS APPLY.
95
+ * - Simple statements have neither.
96
+ *
97
+ * @param combination - The select combination to generate.
98
+ * @param viewDef - The ViewDefinition being processed.
99
+ * @param context - The transpiler context.
100
+ * @param isMultiUnion - If true, CTEs are returned separately for consolidation.
101
+ * @param cteCounter - Shared counter for unique CTE aliases across combinations.
102
+ * @returns The statement and any CTE definitions (empty if not repeat or single statement).
66
103
  */
67
- generateStatementForCombination(combination, viewDef, context) {
104
+ generateStatementForCombination(combination, viewDef, context, isMultiUnion, cteCounter) {
105
+ const hasRepeat = this.repeatProcessor.combinationHasRepeat(combination);
68
106
  const hasForEach = this.forEachProcessor.combinationHasForEach(combination);
69
- return hasForEach
70
- ? this.generateForEachStatement(combination, viewDef, context)
71
- : this.generateSimpleStatement(combination, viewDef, context);
107
+ // Repeat takes precedence if both are present (forEach will be nested).
108
+ if (hasRepeat) {
109
+ return this.generateRepeatStatement(combination, viewDef, context, isMultiUnion, cteCounter);
110
+ }
111
+ else if (hasForEach) {
112
+ return {
113
+ statement: this.generateForEachStatement(combination, viewDef, context),
114
+ cteDefinitions: [],
115
+ };
116
+ }
117
+ else {
118
+ return {
119
+ statement: this.generateSimpleStatement(combination, viewDef, context),
120
+ cteDefinitions: [],
121
+ };
122
+ }
72
123
  }
73
124
  /**
74
125
  * Generate a simple SELECT statement without forEach.
@@ -78,7 +129,7 @@ class QueryGenerator {
78
129
  const fromClause = this.generateFromClause(context);
79
130
  const whereClause = this.whereClauseBuilder.buildWhereClause(viewDef.resource, context.resourceAlias, context.testId, viewDef.where, context);
80
131
  let statement = `${selectClause}\n${fromClause}`;
81
- if (whereClause) {
132
+ if (whereClause !== null) {
82
133
  statement += `\n${whereClause}`;
83
134
  }
84
135
  return statement;
@@ -93,11 +144,123 @@ class QueryGenerator {
93
144
  const selectClause = this.selectClauseBuilder.generateForEachSelectClause(combination, context, forEachContextMap);
94
145
  const whereClause = this.whereClauseBuilder.buildWhereClause(viewDef.resource, context.resourceAlias, context.testId, viewDef.where, context);
95
146
  let statement = `${selectClause}\n${fromClause}${applyClauses}`;
96
- if (whereClause) {
147
+ if (whereClause !== null) {
97
148
  statement += `\n${whereClause}`;
98
149
  }
99
150
  return statement;
100
151
  }
152
+ /**
153
+ * Generate a SELECT statement with repeat using recursive CTEs.
154
+ *
155
+ * The repeat directive generates a recursive CTE that traverses a tree
156
+ * structure by following one or more paths at each level. The CTE is then
157
+ * joined to the main query using INNER JOIN.
158
+ *
159
+ * If the combination also contains forEach, the forEach is processed after
160
+ * the repeat CTE, using the repeat context as its source.
161
+ *
162
+ * @param combination - The select combination being processed.
163
+ * @param viewDef - The ViewDefinition.
164
+ * @param context - The transpiler context.
165
+ * @param isMultiUnion - If true, return CTE definitions separately for consolidation.
166
+ * @param cteCounter - Shared counter for unique CTE aliases across combinations.
167
+ * @returns Statement and CTE definitions.
168
+ */
169
+ generateRepeatStatement(combination, viewDef, context, isMultiUnion, cteCounter) {
170
+ // Build repeat contexts and CTEs.
171
+ const { repeatContextMap, topLevelRepeat } = this.repeatProcessor.buildRepeatContextMap(combination.selects, context, combination, cteCounter);
172
+ const tableName = `[${this.options.schemaName}].[${this.options.tableName}]`;
173
+ const cteDefinitions = this.repeatProcessor.buildRepeatCteDefinitions(repeatContextMap, topLevelRepeat, context.resourceAlias, viewDef.resource, context.testId, tableName);
174
+ const joinClauses = this.repeatProcessor.buildRepeatApplyClauses(repeatContextMap, topLevelRepeat, context.resourceAlias);
175
+ const { selectClause, forEachApplyClauses } = this.buildRepeatSelectAndForEach(combination, context, repeatContextMap);
176
+ const fromClause = this.generateFromClause(context);
177
+ const statement = this.assembleRepeatStatement(selectClause, fromClause, joinClauses, forEachApplyClauses, cteDefinitions, isMultiUnion);
178
+ return { statement, cteDefinitions: isMultiUnion ? cteDefinitions : [] };
179
+ }
180
+ /**
181
+ * Build select clause and forEach apply clauses for repeat statements.
182
+ */
183
+ buildRepeatSelectAndForEach(combination, context, repeatContextMap) {
184
+ const hasNestedForEach = this.forEachProcessor.combinationHasForEach(combination);
185
+ if (!hasNestedForEach) {
186
+ return {
187
+ selectClause: this.selectClauseBuilder.generateRepeatSelectClause(combination, context, repeatContextMap),
188
+ forEachApplyClauses: "",
189
+ };
190
+ }
191
+ const { forEachContextMap, topLevelForEach } = this.forEachProcessor.buildForEachContextMap(combination.selects, context, combination);
192
+ this.updateForEachSourcesForRepeat(forEachContextMap, repeatContextMap);
193
+ return {
194
+ selectClause: this.selectClauseBuilder.generateRepeatSelectClause(combination, context, repeatContextMap, forEachContextMap),
195
+ forEachApplyClauses: this.forEachProcessor.buildApplyClauses(forEachContextMap, topLevelForEach, combination),
196
+ };
197
+ }
198
+ /**
199
+ * Assemble the final repeat statement from its components.
200
+ */
201
+ assembleRepeatStatement(selectClause, fromClause, joinClauses, forEachApplyClauses, cteDefinitions, isMultiUnion) {
202
+ const baseStatement = `${selectClause}\n${fromClause}${joinClauses}${forEachApplyClauses}`;
203
+ if (isMultiUnion) {
204
+ return baseStatement;
205
+ }
206
+ const withClause = cteDefinitions.length > 0 ? `WITH\n${cteDefinitions.join(",\n")}\n` : "";
207
+ return `${withClause}${baseStatement}`;
208
+ }
209
+ /**
210
+ * Update forEach source expressions to use repeat CTE instead of resource JSON.
211
+ *
212
+ * When forEach is nested inside repeat, the forEach should iterate over
213
+ * arrays within the repeat context (e.g., repeat_0.item_json) rather than
214
+ * the root resource JSON.
215
+ */
216
+ updateForEachSourcesForRepeat(forEachContextMap, repeatContextMap) {
217
+ // Find the repeat select that contains each forEach.
218
+ for (const [forEachSelect, forEachContext] of forEachContextMap) {
219
+ const containingRepeat = this.findContainingRepeat(forEachSelect, repeatContextMap);
220
+ if (containingRepeat) {
221
+ const repeatContext = repeatContextMap.get(containingRepeat);
222
+ if (repeatContext) {
223
+ // Update the forEach source to use the repeat CTE's item_json.
224
+ forEachContext.forEachSource = `${repeatContext.cteAlias}.item_json`;
225
+ }
226
+ }
227
+ }
228
+ }
229
+ /**
230
+ * Find the repeat select that contains a given forEach select.
231
+ */
232
+ findContainingRepeat(forEachSelect, repeatContextMap) {
233
+ // Check each repeat select to see if the forEach is nested within it.
234
+ for (const [repeatSelect] of repeatContextMap) {
235
+ if (this.isForEachNestedInRepeat(forEachSelect, repeatSelect)) {
236
+ return repeatSelect;
237
+ }
238
+ }
239
+ return undefined;
240
+ }
241
+ /**
242
+ * Check if a forEach select is nested within a repeat select.
243
+ */
244
+ isForEachNestedInRepeat(forEachSelect, repeatSelect) {
245
+ if (!repeatSelect.select) {
246
+ return false;
247
+ }
248
+ return this.isSelectNestedIn(forEachSelect, repeatSelect.select);
249
+ }
250
+ /**
251
+ * Recursively check if a select is nested within a list of selects.
252
+ */
253
+ isSelectNestedIn(target, selects) {
254
+ for (const select of selects) {
255
+ if (select === target) {
256
+ return true;
257
+ }
258
+ if (select.select && this.isSelectNestedIn(target, select.select)) {
259
+ return true;
260
+ }
261
+ }
262
+ return false;
263
+ }
101
264
  /**
102
265
  * Generate the FROM clause.
103
266
  */
@@ -167,7 +330,7 @@ class QueryGenerator {
167
330
  for (const column of select.column) {
168
331
  columns.push({
169
332
  name: column.name,
170
- type: transpiler_js_1.Transpiler.inferSqlType(column.type),
333
+ type: transpiler_js_1.Transpiler.inferSqlType(column.type, column.tag),
171
334
  nullable: true, // FHIR data is generally nullable.
172
335
  description: column.description,
173
336
  });
@@ -1 +1 @@
1
- {"version":3,"file":"queryGenerator.js","sourceRoot":"","sources":["../src/queryGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryGenerator.js","sourceRoot":"","sources":["../src/queryGenerator.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,7 @@ class DynamicVitestGenerator {
37
37
  generateTestsFromDirectory(directoryPath) {
38
38
  const files = (0, fs_1.readdirSync)(directoryPath)
39
39
  .filter((file) => file.endsWith(".json"))
40
- .sort() // Sort to ensure consistent ordering
40
+ .sort((a, b) => a.localeCompare(b)) // Sort alphabetically to ensure consistent ordering
41
41
  .map((file) => (0, path_1.join)(directoryPath, file));
42
42
  for (const filePath of files) {
43
43
  this.generateTestsFromFile(filePath);
@@ -59,9 +59,9 @@ class DynamicVitestGenerator {
59
59
  (0, vitest_1.afterAll)(async () => {
60
60
  await (0, database_js_1.cleanupDatabase)();
61
61
  // Store results for report generation using the filename as the key
62
- if (typeof global !== "undefined") {
63
- global.testResults = global.testResults ?? {};
64
- global.testResults[reportFileName] = { tests: suiteResults };
62
+ if (typeof globalThis !== "undefined") {
63
+ globalThis.testResults = globalThis.testResults ?? {};
64
+ globalThis.testResults[reportFileName] = { tests: suiteResults };
65
65
  }
66
66
  });
67
67
  // Note: beforeEach/afterEach are handled per-test for parallel execution
@@ -132,19 +132,19 @@ class DynamicVitestGenerator {
132
132
  await (0, database_js_1.setupTestData)(testSuite.resources, testId);
133
133
  const result = await (0, sqlOnFhir_1.executeViewDefinition)(testCase.view, testId);
134
134
  const passed = (0, sqlOnFhir_1.compareResults)(result.results, testCase.expect || [], testCase.expectColumns, result.columns);
135
- if (!passed) {
136
- const errorMessage = `Results don't match. Expected: ${JSON.stringify(testCase.expect)}, Actual: ${JSON.stringify(result.results)}`;
135
+ if (passed) {
137
136
  suiteResults.push({
138
137
  name: testCase.title, // Use plain title for report
139
- result: { passed: false, error: errorMessage },
138
+ result: { passed: true },
140
139
  });
141
- vitest_1.expect.fail(errorMessage);
142
140
  }
143
141
  else {
142
+ const errorMessage = `Results don't match. Expected: ${JSON.stringify(testCase.expect)}, Actual: ${JSON.stringify(result.results)}`;
144
143
  suiteResults.push({
145
144
  name: testCase.title, // Use plain title for report
146
- result: { passed: true },
145
+ result: { passed: false, error: errorMessage },
147
146
  });
147
+ vitest_1.expect.fail(errorMessage);
148
148
  }
149
149
  (0, vitest_1.expect)(passed).toBe(true);
150
150
  }
@@ -165,8 +165,8 @@ class DynamicVitestGenerator {
165
165
  * Clear test results.
166
166
  */
167
167
  clearTestResults() {
168
- if (typeof global !== "undefined") {
169
- global.testResults = {};
168
+ if (typeof globalThis !== "undefined") {
169
+ globalThis.testResults = {};
170
170
  }
171
171
  }
172
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/tests/utils/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/tests/utils/generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"sqlOnFhir.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/sqlOnFhir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB7C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC,CAqC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,aAAa,EAAE,GAAG,EAAE,EACpB,eAAe,EAAE,GAAG,EAAE,EACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAkDT"}
1
+ {"version":3,"file":"sqlOnFhir.d.ts","sourceRoot":"","sources":["../../../src/tests/utils/sqlOnFhir.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAkB7C;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,GAAG,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,oBAAoB,CAAC,CAqC/B;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,aAAa,EAAE,GAAG,EAAE,EACpB,eAAe,EAAE,GAAG,EAAE,EACtB,eAAe,CAAC,EAAE,MAAM,EAAE,EAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAgDT"}
@@ -88,11 +88,9 @@ function compareResults(actualResults, expectedResults, expectedColumns, actualC
88
88
  if (Array.isArray(obj))
89
89
  return obj.map(normalizeObject);
90
90
  const sorted = {};
91
- Object.keys(obj)
92
- .sort((a, b) => a.localeCompare(b))
93
- .forEach((key) => {
91
+ for (const key of Object.keys(obj).sort((a, b) => a.localeCompare(b))) {
94
92
  sorted[key] = normalizeObject(obj[key]);
95
- });
93
+ }
96
94
  return sorted;
97
95
  };
98
96
  // Sort both arrays to ignore row ordering, using normalized objects for consistent sorting
@@ -124,6 +122,10 @@ function deepEqual(a, b) {
124
122
  return true;
125
123
  if (eitherNullOrUndefined(a, b))
126
124
  return false;
125
+ // Handle numeric comparisons (number vs numeric string)
126
+ if (isNumericComparison(a, b)) {
127
+ return compareNumericValues(a, b);
128
+ }
127
129
  if (typeof a !== typeof b) {
128
130
  return handleBooleanNumberConversion(a, b);
129
131
  }
@@ -132,6 +134,39 @@ function deepEqual(a, b) {
132
134
  }
133
135
  return false;
134
136
  }
137
+ /**
138
+ * Check if we're comparing numeric values (number vs number, or number vs numeric string).
139
+ */
140
+ function isNumericComparison(a, b) {
141
+ const aIsNumber = typeof a === "number";
142
+ const bIsNumber = typeof b === "number";
143
+ const aIsNumericString = typeof a === "string" && isNumericString(a);
144
+ const bIsNumericString = typeof b === "string" && isNumericString(b);
145
+ return ((aIsNumber && bIsNumber) ||
146
+ (aIsNumber && bIsNumericString) ||
147
+ (aIsNumericString && bIsNumber) ||
148
+ (aIsNumericString && bIsNumericString));
149
+ }
150
+ /**
151
+ * Check if a string represents a valid number.
152
+ */
153
+ function isNumericString(value) {
154
+ if (value.trim() === "")
155
+ return false;
156
+ const num = Number(value);
157
+ return !Number.isNaN(num) && Number.isFinite(num);
158
+ }
159
+ /**
160
+ * Compare two numeric values with tolerance for floating point precision.
161
+ * Handles comparisons between numbers and numeric strings.
162
+ */
163
+ function compareNumericValues(a, b) {
164
+ const numA = typeof a === "number" ? a : Number(a);
165
+ const numB = typeof b === "number" ? b : Number(b);
166
+ // Use a small epsilon for floating point comparison
167
+ const epsilon = 1e-10;
168
+ return Math.abs(numA - numB) < epsilon;
169
+ }
135
170
  /**
136
171
  * Check if both values are null or undefined.
137
172
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sqlOnFhir.js","sourceRoot":"","sources":["../../../src/tests/utils/sqlOnFhir.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlOnFhir.js","sourceRoot":"","sources":["../../../src/tests/utils/sqlOnFhir.ts"],"names":[],"mappings":"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"}