sof-mssql 2.0.0 → 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.
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +3 -0
- package/dist/load.js.map +1 -1
- package/dist/loader/connection.d.ts.map +1 -1
- package/dist/loader/connection.js +6 -0
- package/dist/loader/connection.js.map +1 -1
- package/dist/loader/types.d.ts +2 -0
- package/dist/loader/types.d.ts.map +1 -1
- package/dist/parser.d.ts +10 -1
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +35 -1
- package/dist/parser.js.map +1 -1
- package/dist/queryGenerator/RepeatProcessor.d.ts +177 -0
- package/dist/queryGenerator/RepeatProcessor.d.ts.map +1 -0
- package/dist/queryGenerator/RepeatProcessor.js +336 -0
- package/dist/queryGenerator/RepeatProcessor.js.map +1 -0
- package/dist/queryGenerator/SelectClauseBuilder.d.ts +45 -0
- package/dist/queryGenerator/SelectClauseBuilder.d.ts.map +1 -1
- package/dist/queryGenerator/SelectClauseBuilder.js +150 -0
- package/dist/queryGenerator/SelectClauseBuilder.js.map +1 -1
- package/dist/queryGenerator/index.d.ts +1 -0
- package/dist/queryGenerator/index.d.ts.map +1 -1
- package/dist/queryGenerator/index.js +3 -1
- package/dist/queryGenerator/index.js.map +1 -1
- package/dist/queryGenerator.d.ts +61 -1
- package/dist/queryGenerator.d.ts.map +1 -1
- package/dist/queryGenerator.js +169 -11
- package/dist/queryGenerator.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/load.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";AAEA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmGpC;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CA8C3C"}
|
package/dist/load.js
CHANGED
|
@@ -23,6 +23,7 @@ function getDryRunDatabaseConfig(commandOptions) {
|
|
|
23
23
|
password: commandOptions.password ?? "dummy",
|
|
24
24
|
database: commandOptions.database ?? "dummy",
|
|
25
25
|
trustServerCertificate: commandOptions.trustServerCertificate,
|
|
26
|
+
requestTimeout: commandOptions.requestTimeout,
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
@@ -42,6 +43,7 @@ function buildLoaderOptions(directory, commandOptions) {
|
|
|
42
43
|
password: commandOptions.password,
|
|
43
44
|
database: commandOptions.database,
|
|
44
45
|
trustServerCertificate: commandOptions.trustServerCertificate,
|
|
46
|
+
requestTimeout: commandOptions.requestTimeout,
|
|
45
47
|
});
|
|
46
48
|
return {
|
|
47
49
|
directory,
|
|
@@ -96,6 +98,7 @@ function createLoadCommand() {
|
|
|
96
98
|
.option("--password <password>", "Database password")
|
|
97
99
|
.option("--database <database>", "Database name")
|
|
98
100
|
.option("--trust-server-certificate", "Trust server certificate", false)
|
|
101
|
+
.option("--request-timeout <ms>", "Request timeout in milliseconds", parseInt, 300000)
|
|
99
102
|
.option("--pattern <pattern>", "File naming pattern (default: {ResourceType}.ndjson)")
|
|
100
103
|
.option("--resource-type <type>", "Only load specific resource type")
|
|
101
104
|
.option("--table-name <name>", "Table name (default: fhir_resources)")
|
package/dist/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/loader/connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAY,EAAE,KAAK,cAAc,EAA4B,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/loader/connection.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAY,EAAE,KAAK,cAAc,EAA4B,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,CAAC,CA2BzB;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAM7E;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3E;AAED;;;;;;GAMG;AAEH,wBAAgB,wBAAwB,CACtC,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAClC,cAAc,CAqChB"}
|
|
@@ -27,6 +27,7 @@ async function createConnectionPool(config) {
|
|
|
27
27
|
user: config.user,
|
|
28
28
|
password: config.password,
|
|
29
29
|
database: config.database,
|
|
30
|
+
requestTimeout: config.requestTimeout,
|
|
30
31
|
options: {
|
|
31
32
|
trustServerCertificate: config.trustServerCertificate ?? false,
|
|
32
33
|
// Enable multiple active result sets for parallel operations.
|
|
@@ -94,6 +95,10 @@ function getDatabaseConfigFromEnv(overrides) {
|
|
|
94
95
|
(process.env.MSSQL_PORT ? parseInt(process.env.MSSQL_PORT, 10) : 1433);
|
|
95
96
|
const trustServerCertificate = overrides?.trustServerCertificate ??
|
|
96
97
|
process.env.MSSQL_TRUST_SERVER_CERTIFICATE === "true";
|
|
98
|
+
const requestTimeout = overrides?.requestTimeout ??
|
|
99
|
+
(process.env.MSSQL_REQUEST_TIMEOUT
|
|
100
|
+
? parseInt(process.env.MSSQL_REQUEST_TIMEOUT, 10)
|
|
101
|
+
: undefined);
|
|
97
102
|
return {
|
|
98
103
|
host,
|
|
99
104
|
port,
|
|
@@ -101,6 +106,7 @@ function getDatabaseConfigFromEnv(overrides) {
|
|
|
101
106
|
password,
|
|
102
107
|
database,
|
|
103
108
|
trustServerCertificate,
|
|
109
|
+
requestTimeout,
|
|
104
110
|
};
|
|
105
111
|
}
|
|
106
112
|
//# sourceMappingURL=connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/loader/connection.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AAWH,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/loader/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/loader/types.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface DatabaseConfig {
|
|
|
19
19
|
database: string;
|
|
20
20
|
/** Whether to trust the server certificate. */
|
|
21
21
|
trustServerCertificate?: boolean;
|
|
22
|
+
/** Request timeout in milliseconds (default: 300000). */
|
|
23
|
+
requestTimeout?: number;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* Discovered NDJSON file with metadata.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/loader/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,sBAAsB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/loader/types.ts"],"names":[],"mappings":"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"}
|
package/dist/parser.d.ts
CHANGED
|
@@ -28,9 +28,18 @@ export declare class ViewDefinitionParser {
|
|
|
28
28
|
*/
|
|
29
29
|
private static validateSelectStructure;
|
|
30
30
|
/**
|
|
31
|
-
* Validate forEach and
|
|
31
|
+
* Validate forEach, forEachOrNull, and repeat expressions.
|
|
32
|
+
* Ensures mutual exclusivity between these iteration directives.
|
|
32
33
|
*/
|
|
33
34
|
private static validateSelectExpressions;
|
|
35
|
+
/**
|
|
36
|
+
* Validate that repeat is an array of non-empty strings.
|
|
37
|
+
*/
|
|
38
|
+
private static validateRepeatExpression;
|
|
39
|
+
/**
|
|
40
|
+
* Enforce mutual exclusivity: only one of forEach, forEachOrNull, or repeat.
|
|
41
|
+
*/
|
|
42
|
+
private static validateIterationDirectiveMutualExclusivity;
|
|
34
43
|
/**
|
|
35
44
|
* Validate columns in a select element.
|
|
36
45
|
*/
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EAIT,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc;IAWjE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUvD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAqCpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAa5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAQtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,SAAS,EAIT,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,cAAc;IAWjE;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAUvD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAqCpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAqBhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAa5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAQtC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAexC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAgBvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,2CAA2C;IAkB1D;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAWpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAWpC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAY/B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IA6B5B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAcjC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IA0BhC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,6BAA6B;IAiC5C;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IA0CtC;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;CA+BxC"}
|
package/dist/parser.js
CHANGED
|
@@ -90,7 +90,8 @@ class ViewDefinitionParser {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
93
|
-
* Validate forEach and
|
|
93
|
+
* Validate forEach, forEachOrNull, and repeat expressions.
|
|
94
|
+
* Ensures mutual exclusivity between these iteration directives.
|
|
94
95
|
*/
|
|
95
96
|
static validateSelectExpressions(select) {
|
|
96
97
|
if (select.forEach && typeof select.forEach !== "string") {
|
|
@@ -99,6 +100,39 @@ class ViewDefinitionParser {
|
|
|
99
100
|
if (select.forEachOrNull && typeof select.forEachOrNull !== "string") {
|
|
100
101
|
throw new TypeError("forEachOrNull must be a string FHIRPath expression.");
|
|
101
102
|
}
|
|
103
|
+
this.validateRepeatExpression(select.repeat);
|
|
104
|
+
this.validateIterationDirectiveMutualExclusivity(select);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Validate that repeat is an array of non-empty strings.
|
|
108
|
+
*/
|
|
109
|
+
static validateRepeatExpression(repeat) {
|
|
110
|
+
if (repeat === undefined) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
if (!Array.isArray(repeat)) {
|
|
114
|
+
throw new TypeError("repeat must be an array of FHIRPath expressions.");
|
|
115
|
+
}
|
|
116
|
+
for (const path of repeat) {
|
|
117
|
+
if (typeof path !== "string" || path.trim().length === 0) {
|
|
118
|
+
throw new TypeError("Each repeat path must be a non-empty string FHIRPath expression.");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Enforce mutual exclusivity: only one of forEach, forEachOrNull, or repeat.
|
|
124
|
+
*/
|
|
125
|
+
static validateIterationDirectiveMutualExclusivity(select) {
|
|
126
|
+
const directiveCount = [
|
|
127
|
+
select.forEach,
|
|
128
|
+
select.forEachOrNull,
|
|
129
|
+
select.repeat,
|
|
130
|
+
].filter((d) => d !== undefined).length;
|
|
131
|
+
if (directiveCount > 1) {
|
|
132
|
+
throw new Error("A select element cannot have multiple iteration directives " +
|
|
133
|
+
"(forEach, forEachOrNull, repeat) at the same level. " +
|
|
134
|
+
"Use nested select to combine them.");
|
|
135
|
+
}
|
|
102
136
|
}
|
|
103
137
|
/**
|
|
104
138
|
* Validate columns in a select element.
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAYH,MAAa,oBAAoB;IAC/B;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAqB;QAC9C,MAAM,IAAI,GACR,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAErD,IAAI,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,IAAqB;QACzC,MAAM,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,IAAiB,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAClC,IAA+B;QAE/B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,SAAS,CAAC,8CAA8C,CAAC,CAAC;QACtE,CAAC;QAED,IACE,CAAC,IAAI,CAAC,MAAM;YACZ,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EACxB,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,uDAAuD,CACxD,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,mEAAmE;QACnE,uCAAuC;QACvC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;QAEzB,2BAA2B;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,iBAAiB,CAAC,SAAoB;QACnD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IACE,CAAC,QAAQ;gBACT,OAAO,QAAQ,KAAK,QAAQ;gBAC5B,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC;gBACrB,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EACjC,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;YAC1D,CAAC;YAED,mEAAmE;YACnE,iFAAiF;YACjF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,kBAAkB,QAAQ,CAAC,IAAI,oHAAoH,CACpJ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAC1B,MAAyB;QAEzB,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAEvC,OAAO,CACL,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;YAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAC9B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,uBAAuB,CAAC,MAAyB;QAC9D,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,yBAAyB,CAAC,MAAyB;QAChE,IAAI,MAAM,CAAC,OAAO,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzD,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,MAAM,CAAC,aAAa,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,IAAI,SAAS,CACjB,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,2CAA2C,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,wBAAwB,CAAC,MAAe;QACrD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;QAC1E,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,SAAS,CACjB,kEAAkE,CACnE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,2CAA2C,CACxD,MAAyB;QAEzB,MAAM,cAAc,GAAG;YACrB,MAAM,CAAC,OAAO;YACd,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,MAAM;SACd,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAExC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,sDAAsD;gBACtD,oCAAoC,CACvC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAAC,MAAyB;QAC5D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;oBACxC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,qBAAqB,CAAC,MAAyB;QAC5D,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;oBACtC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,MAAyB;QACvD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAC1C,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrC,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAC1B,MAAyB,EACzB,aAAiC;QAEjC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACvE,CAAC;QAED,iEAAiE;QACjE,iFAAiF;QACjF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,gBAAgB,MAAM,CAAC,IAAI,oHAAoH,CAChJ,CAAC;QACJ,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE1D,oCAAoC;QACpC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,kBAAkB,CAAC,MAAyB;QACzD,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,SAAS,CAAC,WAAW,MAAM,CAAC,IAAI,yBAAyB,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAc,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,iBAAiB,CAAC,UAAkB,EAAE,GAAY;QAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,SAAS,CACjB,WAAW,UAAU,gCAAgC,CACtD,CAAC;QACJ,CAAC;QACD,IACE,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;YAChB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;YAC5B,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC5B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,WAAW,UAAU,4CAA4C,CAClE,CAAC;QACJ,CAAC;QACD,IACE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC;YACjB,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;YAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAC7B,CAAC;YACD,MAAM,IAAI,SAAS,CACjB,WAAW,UAAU,6CAA6C,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,6BAA6B,CAC1C,MAAyB,EACzB,aAAiC;QAEjC,IAAI,MAAM,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YAChC,yEAAyE;YACzE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;YAEnC,uEAAuE;YACvE,MAAM,gBAAgB,GAAG;gBACvB,aAAa;gBACb,YAAY;gBACZ,eAAe;gBACf,cAAc;gBACd,kBAAkB;gBAClB,iBAAiB;aAClB,CAAC;YAEF,0EAA0E;YAC1E,MAAM,kBAAkB,GACtB,aAAa,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,aAAa,CAAC,aAAa,CAAC,CAAC;YAE1E,IACE,CAAC,kBAAkB;gBACnB,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,CAAC;gBACD,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,sFAAsF,CACpG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,uBAAuB,CACpC,gBAAqC;QAErC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,sBAAsB;QAChC,CAAC;QAED,8CAA8C;QAC9C,MAAM,aAAa,GAAkD,EAAE,CAAC;QAExE,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAED,+CAA+C;QAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAEvC,gCAAgC;YAChC,IAAI,WAAW,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CACb,gDAAgD;oBAC9C,gBAAgB,WAAW,CAAC,MAAM,wBAAwB,CAAC,GAAG,CAAC,QAAQ,aAAa,CAAC,MAAM,WAAW,CACzG,CAAC;YACJ,CAAC;YAED,wCAAwC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5C,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAClD,MAAM,IAAI,KAAK,CACb,kEAAkE;wBAChE,sBAAsB,CAAC,GAAG,CAAC,mBAAmB,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;wBACtE,cAAc,CAAC,GAAG,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CACxD,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,wBAAwB,CACrC,MAAyB;QAEzB,MAAM,OAAO,GAA2C,EAAE,CAAC;QAE3D,iBAAiB;QACjB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM,CAAC,IAAc;oBAC3B,IAAI,EAAE,MAAM,CAAC,IAA0B;iBACxC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACzC,MAAM,aAAa,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QAED,wFAAwF;QACxF,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA/ZD,oDA+ZC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Processes repeat operations and generates recursive CTEs.
|
|
3
|
+
*
|
|
4
|
+
* The repeat directive recursively traverses a tree structure by following
|
|
5
|
+
* one or more FHIRPath expressions at each level. This is implemented using
|
|
6
|
+
* SQL Server recursive Common Table Expressions (CTEs).
|
|
7
|
+
*
|
|
8
|
+
* @author John Grimes
|
|
9
|
+
*/
|
|
10
|
+
import type { TranspilerContext } from "../fhirpath/transpiler.js";
|
|
11
|
+
import { ViewDefinitionSelect } from "../types.js";
|
|
12
|
+
import { SelectCombination } from "./SelectCombinationExpander.js";
|
|
13
|
+
/**
|
|
14
|
+
* Counter state for generating unique repeat CTE aliases.
|
|
15
|
+
*/
|
|
16
|
+
interface CounterState {
|
|
17
|
+
value: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Context specific to a repeat operation.
|
|
21
|
+
*/
|
|
22
|
+
export interface RepeatContext {
|
|
23
|
+
/** Unique alias for the CTE (e.g., "repeat_0"). */
|
|
24
|
+
cteAlias: string;
|
|
25
|
+
/** FHIRPath expressions to follow recursively. */
|
|
26
|
+
paths: string[];
|
|
27
|
+
/** JSON source expression for the anchor member. */
|
|
28
|
+
sourceExpression: string;
|
|
29
|
+
/** The transpiler context for columns within this repeat. */
|
|
30
|
+
transpilerContext: TranspilerContext;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result of building repeat context map.
|
|
34
|
+
*/
|
|
35
|
+
export interface RepeatContextMapResult {
|
|
36
|
+
repeatContextMap: Map<ViewDefinitionSelect, RepeatContext>;
|
|
37
|
+
topLevelRepeat: ViewDefinitionSelect[];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Handles all repeat-related processing and recursive CTE generation.
|
|
41
|
+
*
|
|
42
|
+
* The repeat directive works similarly to forEach but traverses tree structures
|
|
43
|
+
* of arbitrary depth. For example, `repeat: ["item"]` follows the `item` array
|
|
44
|
+
* at each level until no more items exist.
|
|
45
|
+
*
|
|
46
|
+
* Multiple paths can be specified (e.g., `["item", "answer.item"]`) to follow
|
|
47
|
+
* different traversal patterns at each level, with results unioned together.
|
|
48
|
+
*/
|
|
49
|
+
export declare class RepeatProcessor {
|
|
50
|
+
/**
|
|
51
|
+
* Check if a specific combination has repeat operations.
|
|
52
|
+
*
|
|
53
|
+
* @param combination - The select combination to check.
|
|
54
|
+
* @returns True if any select in the combination has repeat.
|
|
55
|
+
*/
|
|
56
|
+
combinationHasRepeat(combination: SelectCombination): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Check if a single select has repeat operations (including nested).
|
|
59
|
+
*
|
|
60
|
+
* @param select - The select element to check.
|
|
61
|
+
* @returns True if the select or any nested select has repeat.
|
|
62
|
+
*/
|
|
63
|
+
selectHasRepeat(select: ViewDefinitionSelect): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Check if any select in the array has repeat operations.
|
|
66
|
+
*/
|
|
67
|
+
private hasRepeatInSelects;
|
|
68
|
+
/**
|
|
69
|
+
* Check if any unionAll option has repeat operations.
|
|
70
|
+
*/
|
|
71
|
+
private unionAllHasRepeat;
|
|
72
|
+
/**
|
|
73
|
+
* Check if a select is a repeat select.
|
|
74
|
+
*/
|
|
75
|
+
isRepeatSelect(select: ViewDefinitionSelect): boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Build the repeat context map by generating contexts for all repeat operations.
|
|
78
|
+
*
|
|
79
|
+
* @param selects - The top-level select elements.
|
|
80
|
+
* @param context - The base transpiler context.
|
|
81
|
+
* @param combination - Optional combination for unionAll handling.
|
|
82
|
+
* @param externalCounter - Optional external counter for shared CTE aliases across combinations.
|
|
83
|
+
* @returns Map of repeat selects to their contexts and list of top-level repeats.
|
|
84
|
+
*/
|
|
85
|
+
buildRepeatContextMap(selects: ViewDefinitionSelect[], context: TranspilerContext, combination?: SelectCombination, externalCounter?: CounterState): RepeatContextMapResult;
|
|
86
|
+
/**
|
|
87
|
+
* Collect all repeat selects that should be treated as top-level.
|
|
88
|
+
*/
|
|
89
|
+
private collectTopLevelRepeat;
|
|
90
|
+
/**
|
|
91
|
+
* Process a select for repeat, handling both direct repeat and nested selects.
|
|
92
|
+
*/
|
|
93
|
+
private processSelectRepeat;
|
|
94
|
+
/**
|
|
95
|
+
* Process a select with a unionAll choice from a combination.
|
|
96
|
+
*/
|
|
97
|
+
private processUnionAllChoice;
|
|
98
|
+
/**
|
|
99
|
+
* Add repeat selects from a select array to the topLevelRepeat list.
|
|
100
|
+
*/
|
|
101
|
+
private addRepeatFromSelectArray;
|
|
102
|
+
/**
|
|
103
|
+
* Generate repeat context for a single repeat select.
|
|
104
|
+
*/
|
|
105
|
+
private generateRepeatContext;
|
|
106
|
+
/**
|
|
107
|
+
* Generate CTE definitions as an array for repeat operations.
|
|
108
|
+
*
|
|
109
|
+
* This method returns the CTE definitions without the WITH keyword,
|
|
110
|
+
* allowing them to be consolidated when multiple unionAll branches
|
|
111
|
+
* each have their own repeat CTEs.
|
|
112
|
+
*
|
|
113
|
+
* @param repeatContextMap - Map of repeat selects to their contexts.
|
|
114
|
+
* @param topLevelRepeat - List of top-level repeat selects.
|
|
115
|
+
* @param resourceAlias - The alias for the resource table (e.g., "r").
|
|
116
|
+
* @param resourceType - The FHIR resource type.
|
|
117
|
+
* @param testId - Optional test ID for filtering.
|
|
118
|
+
* @param tableName - The fully qualified table name (e.g., "[dbo].[fhir_resources]").
|
|
119
|
+
* @returns Array of CTE definition strings (without WITH keyword).
|
|
120
|
+
*/
|
|
121
|
+
buildRepeatCteDefinitions(repeatContextMap: Map<ViewDefinitionSelect, RepeatContext>, topLevelRepeat: ViewDefinitionSelect[], resourceAlias: string, resourceType: string, testId?: string, tableName?: string): string[];
|
|
122
|
+
/**
|
|
123
|
+
* Generate a single recursive CTE definition.
|
|
124
|
+
*
|
|
125
|
+
* The CTE has the following structure:
|
|
126
|
+
* - Anchor member: Selects initial items using the FIRST path from the root.
|
|
127
|
+
* Only the first path is used for the anchor because subsequent paths
|
|
128
|
+
* (like `answer.item`) represent traversal patterns that should only be
|
|
129
|
+
* followed during recursion, not at the root level.
|
|
130
|
+
* - Recursive member: For each path in repeat, follows that path from the
|
|
131
|
+
* current level and unions all results.
|
|
132
|
+
*
|
|
133
|
+
* The CTE columns are:
|
|
134
|
+
* - resource_id: Links back to the source resource.
|
|
135
|
+
* - item_json: The JSON content of the current item (used for column extraction).
|
|
136
|
+
* - depth: Recursion depth (used to prevent infinite loops).
|
|
137
|
+
*/
|
|
138
|
+
private generateSingleCte;
|
|
139
|
+
/**
|
|
140
|
+
* Build a recursive member for a single path.
|
|
141
|
+
*
|
|
142
|
+
* Multi-segment paths like "answer.item" require nested CROSS APPLY clauses
|
|
143
|
+
* to traverse through each array. For example, "answer.item" means:
|
|
144
|
+
* 1. Iterate over the `answer` array
|
|
145
|
+
* 2. For each answer, iterate over the `item` array within it
|
|
146
|
+
*
|
|
147
|
+
* @param path - The FHIRPath expression (e.g., "item" or "answer.item").
|
|
148
|
+
* @param cteAlias - The alias of the recursive CTE.
|
|
149
|
+
* @param index - Index of this path for alias generation.
|
|
150
|
+
* @returns SQL fragment for the recursive member.
|
|
151
|
+
*/
|
|
152
|
+
private buildRecursiveMember;
|
|
153
|
+
/**
|
|
154
|
+
* Build a JSON path from a FHIRPath expression.
|
|
155
|
+
* Handles simple paths and dot-separated paths like "answer.item".
|
|
156
|
+
*/
|
|
157
|
+
private buildJsonPath;
|
|
158
|
+
/**
|
|
159
|
+
* Build the test ID condition for filtering test data.
|
|
160
|
+
*
|
|
161
|
+
* @param resourceAlias - The alias for the resource table.
|
|
162
|
+
* @param testId - Optional test ID for filtering.
|
|
163
|
+
* @returns SQL condition string or empty string if no testId.
|
|
164
|
+
*/
|
|
165
|
+
private buildTestIdCondition;
|
|
166
|
+
/**
|
|
167
|
+
* Build CROSS APPLY clause to join CTE results to the main query.
|
|
168
|
+
*
|
|
169
|
+
* @param repeatContextMap - Map of repeat selects to their contexts.
|
|
170
|
+
* @param topLevelRepeat - List of top-level repeat selects.
|
|
171
|
+
* @param resourceAlias - The alias for the resource table.
|
|
172
|
+
* @returns The CROSS APPLY clause(s) for joining CTE results.
|
|
173
|
+
*/
|
|
174
|
+
buildRepeatApplyClauses(repeatContextMap: Map<ViewDefinitionSelect, RepeatContext>, topLevelRepeat: ViewDefinitionSelect[], resourceAlias: string): string;
|
|
175
|
+
}
|
|
176
|
+
export {};
|
|
177
|
+
//# sourceMappingURL=RepeatProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RepeatProcessor.d.ts","sourceRoot":"","sources":["../../src/queryGenerator/RepeatProcessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE;;GAEG;AACH,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,iBAAiB,EAAE,iBAAiB,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC,CAAC;IAC3D,cAAc,EAAE,oBAAoB,EAAE,CAAC;CACxC;AAED;;;;;;;;;GASG;AACH,qBAAa,eAAe;IAC1B;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,GAAG,OAAO;IAoB7D;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAYtD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAIrD;;;;;;;;OAQG;IACH,qBAAqB,CACnB,OAAO,EAAE,oBAAoB,EAAE,EAC/B,OAAO,EAAE,iBAAiB,EAC1B,WAAW,CAAC,EAAE,iBAAiB,EAC/B,eAAe,CAAC,EAAE,YAAY,GAC7B,sBAAsB;IAoBzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAW3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmB7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAWhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;;;;;;;;;;;;OAcG;IACH,yBAAyB,CACvB,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC,EAC1D,cAAc,EAAE,oBAAoB,EAAE,EACtC,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,GAAE,MAAiC,GAC3C,MAAM,EAAE;IA0BX;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,iBAAiB;IAwCzB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IAuC5B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;;;;OAOG;IACH,uBAAuB,CACrB,gBAAgB,EAAE,GAAG,CAAC,oBAAoB,EAAE,aAAa,CAAC,EAC1D,cAAc,EAAE,oBAAoB,EAAE,EACtC,aAAa,EAAE,MAAM,GACpB,MAAM;CAqBV"}
|