fhirpath-ts 0.0.0-bootstrap.0 → 0.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.
- package/README.md +50 -18
- package/dist/analyzer/analyze-dto.d.ts +4 -0
- package/dist/analyzer/analyze-dto.d.ts.map +1 -1
- package/dist/analyzer/analyze-dto.js +12 -14
- package/dist/analyzer/analyze-dto.js.map +1 -1
- package/dist/analyzer/analyze.d.ts +22 -6
- package/dist/analyzer/analyze.d.ts.map +1 -1
- package/dist/analyzer/analyze.js +242 -98
- package/dist/analyzer/analyze.js.map +1 -1
- package/dist/analyzer/declarations.d.ts +26 -0
- package/dist/analyzer/declarations.d.ts.map +1 -0
- package/dist/analyzer/declarations.js +68 -0
- package/dist/analyzer/declarations.js.map +1 -0
- package/dist/analyzer/operator-rules.d.ts +127 -0
- package/dist/analyzer/operator-rules.d.ts.map +1 -0
- package/dist/analyzer/operator-rules.js +70 -0
- package/dist/analyzer/operator-rules.js.map +1 -0
- package/dist/analyzer/signatures.d.ts +1097 -10
- package/dist/analyzer/signatures.d.ts.map +1 -1
- package/dist/analyzer/signatures.js +70 -29
- package/dist/analyzer/signatures.js.map +1 -1
- package/dist/api/compile.d.ts +32 -8
- package/dist/api/compile.d.ts.map +1 -1
- package/dist/api/compile.js +2 -0
- package/dist/api/compile.js.map +1 -1
- package/dist/api/engine.d.ts +42 -16
- package/dist/api/engine.d.ts.map +1 -1
- package/dist/api/engine.js +2 -1
- package/dist/api/engine.js.map +1 -1
- package/dist/api/project.d.ts +8 -8
- package/dist/api/project.d.ts.map +1 -1
- package/dist/api/project.js +31 -19
- package/dist/api/project.js.map +1 -1
- package/dist/api/strict.d.ts +6 -0
- package/dist/api/strict.d.ts.map +1 -0
- package/dist/api/strict.js +71 -0
- package/dist/api/strict.js.map +1 -0
- package/dist/api/tagged.d.ts +4 -4
- package/dist/api/tagged.d.ts.map +1 -1
- package/dist/api/tagged.js.map +1 -1
- package/dist/cli/dto-check.js +7 -3
- package/dist/cli/dto-check.js.map +1 -1
- package/dist/engine/context.d.ts +3 -1
- package/dist/engine/context.d.ts.map +1 -1
- package/dist/engine/context.js +5 -1
- package/dist/engine/context.js.map +1 -1
- package/dist/engine/navigation.d.ts.map +1 -1
- package/dist/engine/navigation.js +7 -48
- package/dist/engine/navigation.js.map +1 -1
- package/dist/engine/type-matching.d.ts.map +1 -1
- package/dist/engine/type-matching.js +6 -16
- package/dist/engine/type-matching.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +102 -73
- package/dist/parser/parser.js.map +1 -1
- package/dist/parser/precedence.d.ts +368 -4
- package/dist/parser/precedence.d.ts.map +1 -1
- package/dist/parser/precedence.js +146 -32
- package/dist/parser/precedence.js.map +1 -1
- package/dist/r4/generated/type-maps.d.ts +1367 -0
- package/dist/r4/generated/type-maps.d.ts.map +1 -1
- package/dist/r4/index.d.ts +3 -1
- package/dist/r4/index.d.ts.map +1 -1
- package/dist/typed/context-maps.d.ts +23 -0
- package/dist/typed/context-maps.d.ts.map +1 -0
- package/dist/typed/context-maps.js +2 -0
- package/dist/typed/context-maps.js.map +1 -0
- package/dist/typed/infer.d.ts +99 -229
- package/dist/typed/infer.d.ts.map +1 -1
- package/dist/typed/infer.js +1 -84
- package/dist/typed/infer.js.map +1 -1
- package/dist/typed/inference-limits.d.ts +7 -0
- package/dist/typed/inference-limits.d.ts.map +1 -0
- package/dist/typed/inference-limits.js +6 -0
- package/dist/typed/inference-limits.js.map +1 -0
- package/dist/typed/metadata-compact.d.ts +189 -0
- package/dist/typed/metadata-compact.d.ts.map +1 -0
- package/dist/typed/metadata-compact.js +3 -0
- package/dist/typed/metadata-compact.js.map +1 -0
- package/dist/typed/parser.d.ts +515 -0
- package/dist/typed/parser.d.ts.map +1 -0
- package/dist/typed/parser.js +2 -0
- package/dist/typed/parser.js.map +1 -0
- package/dist/values/type-compat.d.ts +8 -0
- package/dist/values/type-compat.d.ts.map +1 -1
- package/dist/values/type-compat.js +44 -1
- package/dist/values/type-compat.js.map +1 -1
- package/package.json +20 -1
- package/src/analyzer/analyze-dto.ts +21 -17
- package/src/analyzer/analyze.ts +335 -109
- package/src/analyzer/declarations.ts +120 -0
- package/src/analyzer/operator-rules.ts +88 -0
- package/src/analyzer/signatures.ts +99 -41
- package/src/api/compile.ts +66 -11
- package/src/api/engine.ts +97 -33
- package/src/api/project.ts +54 -30
- package/src/api/strict.ts +112 -0
- package/src/api/tagged.ts +5 -5
- package/src/cli/dto-check.ts +7 -3
- package/src/engine/context.ts +7 -2
- package/src/engine/navigation.ts +7 -52
- package/src/engine/type-matching.ts +11 -17
- package/src/index.ts +25 -2
- package/src/parser/parser.ts +106 -74
- package/src/parser/precedence.ts +250 -33
- package/src/r4/generated/type-maps.ts +1557 -0
- package/src/typed/context-maps.ts +41 -0
- package/src/typed/infer.ts +157 -425
- package/src/typed/inference-limits.ts +9 -0
- package/src/typed/metadata-compact.ts +307 -0
- package/src/typed/parser.ts +2277 -0
- package/src/values/type-compat.ts +48 -1
- package/dist/typed/perf-fixture.types.d.ts +0 -136
- package/dist/typed/perf-fixture.types.d.ts.map +0 -1
- package/dist/typed/perf-fixture.types.js +0 -2
- package/dist/typed/perf-fixture.types.js.map +0 -1
- package/src/typed/perf-fixture.types.ts +0 -143
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/analyzer/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,
|
|
1
|
+
{"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/analyzer/signatures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC3B,uFAAuF;IACvF,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;IAC3B,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,iFAAiF;AACjF,wBAAgB,SAAS,CAAC,CAAC,EAAE,OAAO,GAAG,SAAS,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAK7F;AAED,iGAAiG;AACjG,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,SAAS,CAAA;AAE/F;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,SAAS,CAAA;AAE5C;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gFAAgF;IAChF,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,SAAS,YAAY,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACzD;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,GACtB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAA;AAEvB,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACzB,MAAM,EAAE,UAAU,CAAA;CACnB;AAeD,sEAAsE;AACtE,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,eAAe,EACtB,IAAI,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,GAC7C,eAAe,CAwBjB;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,eAAe,CAI/F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,GAAG,eAAe,CAapF;AAYD;;;GAGG;AACH,QAAA,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuJ4B,CAAA;AAEhE,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,8BAA8B,CAAA;AAC/E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAkC,CAAA"}
|
|
@@ -5,12 +5,44 @@ export function singleAnd(a, b) {
|
|
|
5
5
|
}
|
|
6
6
|
return a === true && b === true ? true : undefined;
|
|
7
7
|
}
|
|
8
|
-
const BOOLEAN =
|
|
9
|
-
const INTEGER =
|
|
10
|
-
const STRING =
|
|
11
|
-
const DECIMAL =
|
|
12
|
-
const
|
|
13
|
-
const
|
|
8
|
+
const BOOLEAN = { kind: 'fixed', types: ['System.Boolean'], single: true };
|
|
9
|
+
const INTEGER = { kind: 'fixed', types: ['System.Integer'], single: true };
|
|
10
|
+
const STRING = { kind: 'fixed', types: ['System.String'], single: true };
|
|
11
|
+
const DECIMAL = { kind: 'fixed', types: ['System.Decimal'], single: true };
|
|
12
|
+
const LONG = { kind: 'fixed', types: ['System.Long'], single: true };
|
|
13
|
+
const DATE = { kind: 'fixed', types: ['System.Date'], single: true };
|
|
14
|
+
const DATETIME = { kind: 'fixed', types: ['System.DateTime'], single: true };
|
|
15
|
+
const TIME = { kind: 'fixed', types: ['System.Time'], single: true };
|
|
16
|
+
const QUANTITY = { kind: 'fixed', types: ['System.Quantity'], single: true };
|
|
17
|
+
const UNKNOWN = { kind: 'unknown' };
|
|
18
|
+
const SAME = { kind: 'input' };
|
|
19
|
+
const ITEM = { kind: 'input-item' };
|
|
20
|
+
/** Interpret one declarative result rule for the runtime analyzer. */
|
|
21
|
+
export function applyResultRule(rule, input, args) {
|
|
22
|
+
switch (rule.kind) {
|
|
23
|
+
case 'fixed':
|
|
24
|
+
return { types: rule.types === undefined ? undefined : [...rule.types], single: rule.single };
|
|
25
|
+
case 'input':
|
|
26
|
+
return input;
|
|
27
|
+
case 'input-item':
|
|
28
|
+
return withSingle(input, true);
|
|
29
|
+
case 'argument': {
|
|
30
|
+
const argument = args[rule.index] ?? { types: undefined, single: undefined };
|
|
31
|
+
return withSingle(argument, singleAnd(input.single, argument.single));
|
|
32
|
+
}
|
|
33
|
+
case 'union': {
|
|
34
|
+
const states = rule.sources.map(source => (source === 'input' ? input : args[source]));
|
|
35
|
+
const merged = unionStates(states);
|
|
36
|
+
return rule.single === 'all' ? merged : withSingle(merged, rule.single);
|
|
37
|
+
}
|
|
38
|
+
case 'arguments-union':
|
|
39
|
+
return unionStates([...args]);
|
|
40
|
+
case 'reference-targets':
|
|
41
|
+
return { types: input.targets, single: input.single };
|
|
42
|
+
case 'unknown':
|
|
43
|
+
return { types: undefined, single: undefined };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
14
46
|
/**
|
|
15
47
|
* The input's candidate types and reference targets at a different cardinality
|
|
16
48
|
* — the composition every selection/projection result goes through, so target
|
|
@@ -21,7 +53,6 @@ export function withSingle(input, single) {
|
|
|
21
53
|
? { types: input.types, single }
|
|
22
54
|
: { types: input.types, single, targets: input.targets };
|
|
23
55
|
}
|
|
24
|
-
const ITEM = (input) => withSingle(input, true);
|
|
25
56
|
/**
|
|
26
57
|
* The union of several alternative states (iif branches, coalesce arguments,
|
|
27
58
|
* merged collections): all candidate types, single only when every alternative
|
|
@@ -40,13 +71,20 @@ export function unionStates(states) {
|
|
|
40
71
|
: [...new Set(present.flatMap(state => state.types))];
|
|
41
72
|
return targets === undefined ? { types, single } : { types, single, targets };
|
|
42
73
|
}
|
|
43
|
-
const STRING_FN = {
|
|
44
|
-
|
|
74
|
+
const STRING_FN = {
|
|
75
|
+
input: { kind: 'String', singleton: true },
|
|
76
|
+
args: ['String'],
|
|
77
|
+
result: STRING,
|
|
78
|
+
};
|
|
79
|
+
const MATH_FN = {
|
|
80
|
+
input: { kind: 'Numeric', singleton: true },
|
|
81
|
+
result: DECIMAL,
|
|
82
|
+
};
|
|
45
83
|
/**
|
|
46
84
|
* What the analyzer knows about each function. Functions missing here still get
|
|
47
85
|
* arity checks from the runtime registry; their results become unknown.
|
|
48
86
|
*/
|
|
49
|
-
|
|
87
|
+
const FUNCTION_SIGNATURE_DEFINITIONS = {
|
|
50
88
|
empty: { result: BOOLEAN },
|
|
51
89
|
exists: { args: ['expression'], result: BOOLEAN },
|
|
52
90
|
all: { args: ['expression'], result: BOOLEAN },
|
|
@@ -66,7 +104,7 @@ export const FUNCTION_SIGNATURES = {
|
|
|
66
104
|
args: ['expression'],
|
|
67
105
|
// The projection's analyzed state, collection-ized: single only when both
|
|
68
106
|
// the input and the projection body are single.
|
|
69
|
-
result:
|
|
107
|
+
result: { kind: 'argument', index: 0 },
|
|
70
108
|
},
|
|
71
109
|
repeat: { args: ['expression'], result: UNKNOWN },
|
|
72
110
|
// ofType/as results narrow to the named type; the analyzer computes that with
|
|
@@ -82,12 +120,12 @@ export const FUNCTION_SIGNATURES = {
|
|
|
82
120
|
take: { args: ['Numeric'], result: SAME },
|
|
83
121
|
intersect: { args: ['any'], result: SAME },
|
|
84
122
|
exclude: { args: ['any'], result: SAME },
|
|
85
|
-
union: { args: ['any'], result:
|
|
86
|
-
combine: { args: ['any'], result:
|
|
123
|
+
union: { args: ['any'], result: { kind: 'union', sources: ['input', 0], single: false } },
|
|
124
|
+
combine: { args: ['any'], result: { kind: 'union', sources: ['input', 0], single: false } },
|
|
87
125
|
iif: {
|
|
88
126
|
args: ['condition', 'expression', 'expression'],
|
|
89
127
|
// The union of the branch states; a missing else-branch contributes empty.
|
|
90
|
-
result:
|
|
128
|
+
result: { kind: 'union', sources: [1, 2], single: 'all' },
|
|
91
129
|
},
|
|
92
130
|
// not() takes anything a Boolean test accepts (0/1, single items), so no kind pin.
|
|
93
131
|
not: { input: { singleton: true }, result: BOOLEAN },
|
|
@@ -96,7 +134,7 @@ export const FUNCTION_SIGNATURES = {
|
|
|
96
134
|
descendants: { result: UNKNOWN },
|
|
97
135
|
// A reference resolves to its declared target types (Reference.targetProfile,
|
|
98
136
|
// HAPI's TypeDetails.targets); an unconstrained reference stays unknown.
|
|
99
|
-
resolve: { result:
|
|
137
|
+
resolve: { result: { kind: 'reference-targets' } },
|
|
100
138
|
extension: { args: ['String'], result: UNKNOWN },
|
|
101
139
|
hasValue: { input: { singleton: true }, result: BOOLEAN },
|
|
102
140
|
getValue: { input: { singleton: true }, result: UNKNOWN },
|
|
@@ -118,13 +156,13 @@ export const FUNCTION_SIGNATURES = {
|
|
|
118
156
|
replaceMatches: { input: { kind: 'String', singleton: true }, args: ['String', 'String'], result: STRING },
|
|
119
157
|
toChars: {
|
|
120
158
|
input: { kind: 'String', singleton: true },
|
|
121
|
-
result:
|
|
159
|
+
result: { kind: 'fixed', types: ['System.String'], single: false },
|
|
122
160
|
},
|
|
123
161
|
trim: { input: { kind: 'String', singleton: true }, result: STRING },
|
|
124
162
|
split: {
|
|
125
163
|
input: { kind: 'String', singleton: true },
|
|
126
164
|
args: ['String'],
|
|
127
|
-
result:
|
|
165
|
+
result: { kind: 'fixed', types: ['System.String'], single: false },
|
|
128
166
|
},
|
|
129
167
|
join: { input: { kind: 'String' }, args: ['String'], result: STRING },
|
|
130
168
|
encode: STRING_FN,
|
|
@@ -141,7 +179,9 @@ export const FUNCTION_SIGNATURES = {
|
|
|
141
179
|
sqrt: MATH_FN,
|
|
142
180
|
log: { input: { kind: 'Numeric', singleton: true }, args: ['Numeric'], result: DECIMAL },
|
|
143
181
|
power: { input: { kind: 'Numeric', singleton: true }, args: ['Numeric'], result: UNKNOWN },
|
|
144
|
-
|
|
182
|
+
// Each iteration replaces the accumulator with the aggregator result. An
|
|
183
|
+
// empty input returns init, when supplied, so both arguments can contribute.
|
|
184
|
+
aggregate: { args: ['expression', 'any'], result: { kind: 'union', sources: [0, 1], single: 'all' } },
|
|
145
185
|
sum: { input: { kind: 'Numeric' }, result: UNKNOWN },
|
|
146
186
|
min: { input: { kind: 'Numeric' }, result: UNKNOWN },
|
|
147
187
|
max: { input: { kind: 'Numeric' }, result: UNKNOWN },
|
|
@@ -149,16 +189,16 @@ export const FUNCTION_SIGNATURES = {
|
|
|
149
189
|
sort: { args: ['sort-key'], result: SAME },
|
|
150
190
|
toBoolean: { input: { singleton: true }, result: BOOLEAN },
|
|
151
191
|
toInteger: { input: { singleton: true }, result: INTEGER },
|
|
152
|
-
toLong: { input: { singleton: true }, result:
|
|
192
|
+
toLong: { input: { singleton: true }, result: LONG },
|
|
153
193
|
toDecimal: { input: { singleton: true }, result: DECIMAL },
|
|
154
194
|
toString: { input: { singleton: true }, result: STRING },
|
|
155
|
-
toDate: { input: { singleton: true }, result:
|
|
156
|
-
toDateTime: { input: { singleton: true }, result:
|
|
157
|
-
toTime: { input: { singleton: true }, result:
|
|
195
|
+
toDate: { input: { singleton: true }, result: DATE },
|
|
196
|
+
toDateTime: { input: { singleton: true }, result: DATETIME },
|
|
197
|
+
toTime: { input: { singleton: true }, result: TIME },
|
|
158
198
|
toQuantity: {
|
|
159
199
|
input: { singleton: true },
|
|
160
200
|
args: ['String'],
|
|
161
|
-
result:
|
|
201
|
+
result: QUANTITY,
|
|
162
202
|
},
|
|
163
203
|
convertsToBoolean: { input: { singleton: true }, result: BOOLEAN },
|
|
164
204
|
convertsToInteger: { input: { singleton: true }, result: BOOLEAN },
|
|
@@ -169,9 +209,9 @@ export const FUNCTION_SIGNATURES = {
|
|
|
169
209
|
convertsToDateTime: { input: { singleton: true }, result: BOOLEAN },
|
|
170
210
|
convertsToTime: { input: { singleton: true }, result: BOOLEAN },
|
|
171
211
|
convertsToQuantity: { input: { singleton: true }, args: ['String'], result: BOOLEAN },
|
|
172
|
-
now: { result:
|
|
173
|
-
today: { result:
|
|
174
|
-
timeOfDay: { result:
|
|
212
|
+
now: { result: DATETIME },
|
|
213
|
+
today: { result: DATE },
|
|
214
|
+
timeOfDay: { result: TIME },
|
|
175
215
|
yearOf: { input: { kind: 'Temporal', singleton: true }, result: INTEGER },
|
|
176
216
|
monthOf: { input: { kind: 'Temporal', singleton: true }, result: INTEGER },
|
|
177
217
|
dayOf: { input: { kind: 'Temporal', singleton: true }, result: INTEGER },
|
|
@@ -180,8 +220,8 @@ export const FUNCTION_SIGNATURES = {
|
|
|
180
220
|
secondOf: { input: { kind: 'Temporal', singleton: true }, result: INTEGER },
|
|
181
221
|
millisecondOf: { input: { kind: 'Temporal', singleton: true }, result: INTEGER },
|
|
182
222
|
timezoneOffsetOf: { input: { kind: 'Temporal', singleton: true }, result: DECIMAL },
|
|
183
|
-
dateOf: { input: { kind: 'Temporal', singleton: true }, result:
|
|
184
|
-
timeOf: { input: { kind: 'Temporal', singleton: true }, result:
|
|
223
|
+
dateOf: { input: { kind: 'Temporal', singleton: true }, result: DATE },
|
|
224
|
+
timeOf: { input: { kind: 'Temporal', singleton: true }, result: TIME },
|
|
185
225
|
lowBoundary: { input: { singleton: true }, args: ['Numeric'], result: UNKNOWN },
|
|
186
226
|
highBoundary: { input: { singleton: true }, args: ['Numeric'], result: UNKNOWN },
|
|
187
227
|
precision: { input: { singleton: true }, result: INTEGER },
|
|
@@ -189,7 +229,8 @@ export const FUNCTION_SIGNATURES = {
|
|
|
189
229
|
// Variadic: the analyzer repeats the last arg spec for every position, so one
|
|
190
230
|
// 'expression' entry covers all of coalesce's arguments. The result is the
|
|
191
231
|
// first non-empty argument, hence the union of all of them.
|
|
192
|
-
coalesce: { args: ['expression'], result:
|
|
232
|
+
coalesce: { args: ['expression'], result: { kind: 'arguments-union' } },
|
|
193
233
|
type: { result: UNKNOWN },
|
|
194
234
|
};
|
|
235
|
+
export const FUNCTION_SIGNATURES = FUNCTION_SIGNATURE_DEFINITIONS;
|
|
195
236
|
//# sourceMappingURL=signatures.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../src/analyzer/signatures.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"signatures.js","sourceRoot":"","sources":["../../src/analyzer/signatures.ts"],"names":[],"mappings":"AAUA,iFAAiF;AACjF,MAAM,UAAU,SAAS,CAAC,CAAsB,EAAE,CAAsB;IACtE,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACpD,CAAC;AAyDD,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AACxG,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AACxG,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AACtG,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AACxG,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AAClG,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AAClG,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AAC1G,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AAClG,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAgC,CAAA;AAC1G,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAgC,CAAA;AACjE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAgC,CAAA;AAC5D,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,YAAY,EAAgC,CAAA;AAEjE,sEAAsE;AACtE,MAAM,UAAU,eAAe,CAC7B,IAAgB,EAChB,KAAsB,EACtB,IAA8C;IAE9C,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO;YACV,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;QAC/F,KAAK,OAAO;YACV,OAAO,KAAK,CAAA;QACd,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAChC,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;YAC5E,OAAO,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QACvE,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACtF,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;YAClC,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACzE,CAAC;QACD,KAAK,iBAAiB;YACpB,OAAO,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC/B,KAAK,mBAAmB;YACtB,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAA;QACvD,KAAK,SAAS;YACZ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;IAClD,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAsB,EAAE,MAA2B;IAC5E,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS;QAChC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;QAChC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuC;IACjE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAA4B,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;IACvF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1G,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACjG,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;QACjF,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAmB,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,SAAS,CAAA;IACf,MAAM,KAAK,GACT,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;QACtE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAiB,CAAC,CAAC,CAAC,CAAA;IACrE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC/E,CAAC;AAED,MAAM,SAAS,GAAG;IAChB,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,CAAC,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM;CACsB,CAAA;AACtC,MAAM,OAAO,GAAG;IACd,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE;IAC3C,MAAM,EAAE,OAAO;CACqB,CAAA;AAEtC;;;GAGG;AACH,MAAM,8BAA8B,GAAG;IACrC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACjD,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACxD,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACxD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1B,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAC1B,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAC9C,4EAA4E;IAC5E,uCAAuC;IACvC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IAC7C,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,YAAY,CAAC;QACpB,0EAA0E;QAC1E,gDAAgD;QAChD,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE;KACvC;IACD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACjD,8EAA8E;IAC9E,oEAAoE;IACpE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAChD,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACxE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACxE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACxB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACvB,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACtB,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACtB,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IACzC,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IACxC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IACzF,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAC3F,GAAG,EAAE;QACH,IAAI,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;QAC/C,2EAA2E;QAC3E,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;KAC1D;IACD,mFAAmF;IACnF,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IACvD,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC7B,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAChC,8EAA8E;IAC9E,yEAAyE;IACzE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE;IAClD,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAChD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzD,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzD,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3D,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACjG,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAE7E,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACvE,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1C,WAAW,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC9C,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;IACvG,UAAU,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC7C,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3C,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3C,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACrE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACrE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;IACnG,OAAO,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1C,WAAW,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAC9C,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;IAC1G,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;QAC1C,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;KACnE;IACD,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACpE,KAAK,EAAE;QACL,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;QAC1C,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;KACnE;IACD,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE;IACrE,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IAEnB,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACvE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1E,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1F,GAAG,EAAE,OAAO;IACZ,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IACxF,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1F,yEAAyE;IACzE,6EAA6E;IAC7E,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IACrG,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACpD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IAE1C,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1D,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1D,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACpD,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1D,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;IACxD,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACpD,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5D,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACpD,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;QAC1B,IAAI,EAAE,CAAC,QAAQ,CAAC;QAChB,MAAM,EAAE,QAAQ;KACjB;IACD,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAClE,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAClE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC/D,iBAAiB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAClE,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACjE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC/D,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACnE,cAAc,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC/D,kBAAkB,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAErF,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IACzB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACvB,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAC3B,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1E,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACxE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACzE,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3E,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC3E,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAChF,gBAAgB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IACnF,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACtE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACtE,WAAW,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAC/E,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE;IAChF,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;IAC1D,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE;IAChE,8EAA8E;IAC9E,2EAA2E;IAC3E,4DAA4D;IAC5D,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE;IACvE,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE;CACqC,CAAA;AAGhE,MAAM,CAAC,MAAM,mBAAmB,GAAgD,8BAA8B,CAAA"}
|
package/dist/api/compile.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type EvaluationContext, type HostNativeFunction, type RegexEngine } fro
|
|
|
3
3
|
import type { ModelProvider } from '../model/provider.ts';
|
|
4
4
|
import type { AstNode } from '../parser/ast.ts';
|
|
5
5
|
import type { R4TypeOf } from '../r4/generated/type-maps.ts';
|
|
6
|
-
import type { FhirpathInput,
|
|
6
|
+
import type { CheckedFhirpathOptionValues, EmptyFhirpathTypeContext, FhirpathInput, FhirpathResultForContext, FhirpathTypeContextOf, FhirpathTypeDeclarations, FhirTypeName } from '../typed/infer.ts';
|
|
7
7
|
import { type TypedValue } from '../values/typed-value.ts';
|
|
8
8
|
/**
|
|
9
9
|
* A native or expression-defined FHIRPath function. Native functions receive
|
|
@@ -18,11 +18,14 @@ export type SingleCustomFunction = (HostNativeFunction & {
|
|
|
18
18
|
criteria?: never;
|
|
19
19
|
/** Only an expression body reads `%name`; a native `fn` gets plain values. */
|
|
20
20
|
env?: never;
|
|
21
|
+
envTypes?: never;
|
|
21
22
|
}) | {
|
|
22
23
|
expression: AnyExpression;
|
|
23
24
|
signature?: CustomFunctionSignature;
|
|
24
25
|
/** Environment values available only while this expression body runs. */
|
|
25
26
|
env?: Record<string, unknown>;
|
|
27
|
+
/** Explicit types or refinements for this function-local environment. */
|
|
28
|
+
envTypes?: FhirpathTypeDeclarations;
|
|
26
29
|
/** Return one criteria Boolean. An empty body result becomes `false`. */
|
|
27
30
|
criteria?: boolean;
|
|
28
31
|
fn?: never;
|
|
@@ -37,19 +40,26 @@ export interface OverloadedCustomFunction {
|
|
|
37
40
|
signature?: never;
|
|
38
41
|
criteria?: never;
|
|
39
42
|
env?: never;
|
|
43
|
+
envTypes?: never;
|
|
40
44
|
minArity?: never;
|
|
41
45
|
maxArity?: never;
|
|
42
46
|
}
|
|
43
47
|
export type CustomFunction = SingleCustomFunction | OverloadedCustomFunction;
|
|
44
48
|
export interface EvaluateOptions {
|
|
49
|
+
/** Run the static analyzer before evaluation and throw on every error diagnostic. Defaults to false. */
|
|
50
|
+
strict?: boolean;
|
|
45
51
|
/** Environment variables (`%name`), keyed with or without the leading `%`. */
|
|
46
52
|
env?: Record<string, unknown>;
|
|
53
|
+
/** Explicit types or refinements for environment values. */
|
|
54
|
+
envTypes?: FhirpathTypeDeclarations;
|
|
47
55
|
/**
|
|
48
56
|
* FHIRPath bindings evaluated against the input in declaration order. They
|
|
49
57
|
* keep FHIRPath types and may use `%context`, `env`, and earlier variables.
|
|
50
58
|
* During projection they run once per row. A `TypedValue[]` binds directly.
|
|
51
59
|
*/
|
|
52
60
|
vars?: Record<string, AnyExpression | readonly TypedValue[]>;
|
|
61
|
+
/** Types for pre-resolved vars, or explicit overrides for expression vars. */
|
|
62
|
+
varTypes?: FhirpathTypeDeclarations;
|
|
53
63
|
model?: ModelProvider;
|
|
54
64
|
/** Clock for `now()`, `today()`, and `timeOfDay()`. Defaults to the current time. */
|
|
55
65
|
now?: Date;
|
|
@@ -68,6 +78,19 @@ export interface EvaluateOptions {
|
|
|
68
78
|
*/
|
|
69
79
|
regex?: RegexEngine;
|
|
70
80
|
}
|
|
81
|
+
type CheckedOptionKeys<Options, Accepted> = string extends keyof Options ? unknown : keyof EvaluateOptions extends keyof Options ? unknown : Record<Exclude<keyof Options, keyof Accepted>, never>;
|
|
82
|
+
/**
|
|
83
|
+
* Keeps literal option declarations for inference and rejects unknown literal
|
|
84
|
+
* keys. Named extensions of the accepted options and index-signature records
|
|
85
|
+
* remain assignable.
|
|
86
|
+
*/
|
|
87
|
+
export type Declaring<Options extends object, Accepted extends EvaluateOptions = EvaluateOptions> = Accepted & Options & CheckedFhirpathOptionValues<Options> & CheckedOptionKeys<Options, Accepted>;
|
|
88
|
+
/** Sentinel selecting built-in result inference instead of an explicit TResult. */
|
|
89
|
+
export interface InferredExpressionResult {
|
|
90
|
+
readonly __inferredExpressionResult: unique symbol;
|
|
91
|
+
}
|
|
92
|
+
/** The result of a compiled expression after applying its per-call static declarations. */
|
|
93
|
+
export type CompiledExpressionResult<Expr extends string, TResult extends unknown[] | InferredExpressionResult, Root extends string, Options> = TResult extends InferredExpressionResult ? FhirpathResultForContext<Expr, Root, FhirpathTypeContextOf<Options>> : Extract<TResult, unknown[]>;
|
|
71
94
|
/**
|
|
72
95
|
* A parsed expression, reusable across inputs. Create via `compile()` or the
|
|
73
96
|
* `fhirpath` tag: literal expressions carry inferred result and input types for
|
|
@@ -77,12 +100,12 @@ export interface EvaluateOptions {
|
|
|
77
100
|
* e.g. with `@medplum/fhirtypes` types, for full type-level fidelity with
|
|
78
101
|
* another FHIR type package: `compile<'Patient.name', Patient, HumanName[]>(...)`.
|
|
79
102
|
*/
|
|
80
|
-
export declare class CompiledExpression<Expr extends string = string, TInput = FhirpathInput<Expr>, TResult extends unknown[] =
|
|
81
|
-
readonly source:
|
|
103
|
+
export declare class CompiledExpression<Expr extends string = string, TInput = FhirpathInput<Expr>, TResult extends unknown[] | InferredExpressionResult = InferredExpressionResult, Root extends string = 'opaque'> {
|
|
104
|
+
readonly source: Expr;
|
|
82
105
|
readonly ast: AstNode;
|
|
83
106
|
constructor(source: Expr);
|
|
84
107
|
/** Evaluate and unwrap results to plain JS values. */
|
|
85
|
-
evaluate(input?: TInput, options?:
|
|
108
|
+
evaluate<const Options extends object = EmptyFhirpathTypeContext>(input?: TInput, options?: Declaring<Options>): CompiledExpressionResult<Expr, TResult, Root, Options>;
|
|
86
109
|
/** Evaluate keeping the internal typed representation (types, Decimal, Temporal). */
|
|
87
110
|
evaluateTyped(input?: unknown, options?: EvaluateOptions): TypedValue[];
|
|
88
111
|
/** The canonical form of the expression. */
|
|
@@ -94,10 +117,10 @@ export declare class CompiledExpression<Expr extends string = string, TInput = F
|
|
|
94
117
|
* so a relative path infers like a DTO column and the static checkers analyze it
|
|
95
118
|
* against that type — see `fhirpath`, which takes the same declaration.
|
|
96
119
|
*/
|
|
97
|
-
export declare function compile<const Expr extends string, const Root extends FhirTypeName, TResult extends unknown[] =
|
|
98
|
-
export declare function compile<const Expr extends string, TInput = FhirpathInput<Expr>, TResult extends unknown[] =
|
|
99
|
-
/** An expression as text or already compiled, with any literal
|
|
100
|
-
export type AnyExpression = string | CompiledExpression<any>;
|
|
120
|
+
export declare function compile<const Expr extends string, const Root extends FhirTypeName, TResult extends unknown[] | InferredExpressionResult = InferredExpressionResult>(expression: Expr, inputType: Root): CompiledExpression<Expr, R4TypeOf[Root], TResult, Root>;
|
|
121
|
+
export declare function compile<const Expr extends string, TInput = FhirpathInput<Expr>, TResult extends unknown[] | InferredExpressionResult = InferredExpressionResult>(expression: Expr): CompiledExpression<Expr, TInput, TResult>;
|
|
122
|
+
/** An expression as text or already compiled, with any literal, input, result, and root types. */
|
|
123
|
+
export type AnyExpression = string | CompiledExpression<any, any, any, any>;
|
|
101
124
|
/**
|
|
102
125
|
* Prepares options once, then creates an evaluation context for each root.
|
|
103
126
|
* Variables bind in order. `extraEnv` contains call-specific values, such as
|
|
@@ -117,4 +140,5 @@ export type Compiler = (expression: AnyExpression) => CompiledExpression<string>
|
|
|
117
140
|
* `evaluate()` — so parses are never reused across them.
|
|
118
141
|
*/
|
|
119
142
|
export declare function createCachedCompiler(capacity?: number): Compiler;
|
|
143
|
+
export {};
|
|
120
144
|
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAGL,KAAK,iBAAiB,EAItB,KAAK,kBAAkB,EAGvB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAA;AAG7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAG/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"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"}
|
package/dist/api/compile.js
CHANGED
|
@@ -5,6 +5,7 @@ import { parse } from "../parser/parser.js";
|
|
|
5
5
|
import { printExpression } from "../parser/printer.js";
|
|
6
6
|
import { toCollection, unwrap } from "../values/typed-value.js";
|
|
7
7
|
import { LruCache } from "./cache.js";
|
|
8
|
+
import { assertStrictExpression } from "./strict.js";
|
|
8
9
|
/**
|
|
9
10
|
* A parsed expression, reusable across inputs. Create via `compile()` or the
|
|
10
11
|
* `fhirpath` tag: literal expressions carry inferred result and input types for
|
|
@@ -28,6 +29,7 @@ export class CompiledExpression {
|
|
|
28
29
|
/** Evaluate keeping the internal typed representation (types, Decimal, Temporal). */
|
|
29
30
|
evaluateTyped(input, options) {
|
|
30
31
|
const root = toCollection(input);
|
|
32
|
+
assertStrictExpression(this.ast, root, options);
|
|
31
33
|
return evaluateNode(this.ast, contextFactory(options)(root), root);
|
|
32
34
|
}
|
|
33
35
|
/** The canonical form of the expression. */
|
package/dist/api/compile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,cAAc,EAEd,aAAa,EAKb,gBAAgB,GAEjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,cAAc,EAEd,aAAa,EAKb,gBAAgB,GAEjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAGhD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAWtD,OAAO,EAAE,YAAY,EAAmB,MAAM,EAAE,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAgHpD;;;;;;;;GAQG;AACH,MAAM,OAAO,kBAAkB;IAMpB,MAAM,CAAM;IACZ,GAAG,CAAS;IAErB,YAAY,MAAY;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1B,CAAC;IAED,sDAAsD;IACtD,QAAQ,CACN,KAAc,EACd,OAA4B;QAE5B,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAA2D,CAAA;IACjH,CAAC;IAED,qFAAqF;IACrF,aAAa,CAAC,KAAe,EAAE,OAAyB;QACtD,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;QAChC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC/C,OAAO,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC;IAED,4CAA4C;IAC5C,QAAQ;QACN,OAAO,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAClC,CAAC;CACF;AAkBD,MAAM,UAAU,OAAO,CAAC,UAAkB;IACxC,0EAA0E;IAC1E,qDAAqD;IACrD,OAAO,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAA;AAC3C,CAAC;AAMD,uGAAuG;AACvG,SAAS,oBAAoB,CAAI,KAAgC;IAC/D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7B,CAAC;AAED,yFAAyF;AACzF,SAAS,QAAQ,CAAC,OAA0B,EAAE,IAA2B;IACvE,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,iBAAiB,CAAC,6CAA6C,IAAI,aAAa,CAAC,CAAA;QAC7F,CAAC;QACD,OAAO,CAAC,SAAS,CAAC,GAAG,CACnB,IAAI,EACJ,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CACrG,CAAA;IACH,CAAC;AACH,CAAC;AAKD,yGAAyG;AACzG,SAAS,QAAQ,CAAC,IAA2D;IAC3E,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAU,CAAA;QACtC,CAAC;QACD,OAAO,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAU,CAAA;IACzE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAoC;IAEpC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnG,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7E,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;QACxB,MAAM,OAAO,GAAG,aAAa,CAAC;YAC5B,IAAI;YACJ,GAAG,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,QAAQ,EAAE;YAC3D,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,GAAG,EAAE,OAAO,EAAE,GAAG;YACjB,KAAK,EAAE,OAAO,EAAE,KAAK;YACrB,SAAS;YACT,KAAK,EAAE,OAAO,EAAE,KAAK;SACtB,CAAC,CAAA;QACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,SAAyC;IAChE,MAAM,IAAI,GAAiC,EAAE,CAAA;IAC7C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC;YACR,WAAW,IAAI,MAAM;gBACnB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE;gBACjF,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,MAA4B;IAChE,IAAI,YAAY,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,iBAAiB,CAAC,oBAAoB,IAAI,gDAAgD,CAAC,CAAA;QACvG,CAAC;QACD,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAA;IACjD,8EAA8E;IAC9E,qDAAqD;IACrD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,CAAA;AACtE,CAAC;AAED,iHAAiH;AACjH,SAAS,sBAAsB,CAC7B,MAAoE;IAEpE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IACxC,MAAM,UAAU,GAAG,SAAS,EAAE,KAAK,EAAE,KAAK,CAAA;IAC1C,OAAO;QACL,GAAG,EAAE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG;QACxE,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACpD,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA6C,CAAA;AAEzE,4FAA4F;AAC5F,SAAS,UAAU,CAAC,GAA4B;IAC9C,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;QAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC5B,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAA;AAQ3C;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB,wBAAwB;IAC9E,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAqB,QAAQ,CAAC,CAAA;IACxD,OAAO,UAAU,CAAC,EAAE;QAClB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAA;YAC7C,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QACjC,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC,CAAA;AACH,CAAC"}
|
package/dist/api/engine.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { R4TypeOf } from '../r4/generated/type-maps.ts';
|
|
2
|
-
import type { FhirpathInput,
|
|
2
|
+
import type { EmptyFhirpathTypeContext, FhirpathInput, FhirpathResultForContext, FhirpathRootOf, FhirpathTypeContextOf, MergeFhirpathTypeContexts } from '../typed/infer.ts';
|
|
3
3
|
import type { TypedValue } from '../values/typed-value.ts';
|
|
4
4
|
import { type BundleLike } from './bundle.ts';
|
|
5
|
-
import { type AnyExpression, CompiledExpression, type EvaluateOptions } from './compile.ts';
|
|
5
|
+
import { type AnyExpression, CompiledExpression, type Declaring, type EvaluateOptions } from './compile.ts';
|
|
6
6
|
import { type ConstraintCheckResult, type FhirConstraint } from './constraints.ts';
|
|
7
7
|
import { type DtoClass } from './dto.ts';
|
|
8
8
|
import { type Projection, type ProjectionColumns } from './project.ts';
|
|
@@ -19,6 +19,32 @@ export type EngineInput<Expr extends string = string> = FhirpathInput<Expr> | re
|
|
|
19
19
|
export type TypedEvaluateOptions<T extends keyof R4TypeOf> = EvaluateOptions & {
|
|
20
20
|
type: T;
|
|
21
21
|
};
|
|
22
|
+
/** Literal text or a compatible compiled expression accepted by engine evaluation methods. */
|
|
23
|
+
export type EngineExpression<Expr extends string> = Expr | CompiledExpression<Expr, any, any, any>;
|
|
24
|
+
/**
|
|
25
|
+
* evaluate() reaches this shape through normalizeInput(), while project()
|
|
26
|
+
* reaches it through toSubjects(). A bare Bundle is expression-dependent or
|
|
27
|
+
* expands to heterogeneous entries, so it stays opaque; an array keeps each
|
|
28
|
+
* item raw, including a Bundle deliberately wrapped as `[bundle]`.
|
|
29
|
+
*/
|
|
30
|
+
export type EngineInputRoot<Input> = Input extends readonly (infer Item)[] ? FhirpathRootOf<Item> : Input extends {
|
|
31
|
+
readonly resourceType: 'Bundle';
|
|
32
|
+
} ? 'opaque' : FhirpathRootOf<Input>;
|
|
33
|
+
/** The inferred result returned by an engine or bound expression call. */
|
|
34
|
+
export type EngineResult<Expr extends string, Input, Defaults, Options> = FhirpathResultForContext<Expr, EngineInputRoot<Input>, MergeFhirpathTypeContexts<FhirpathTypeContextOf<Defaults>, FhirpathTypeContextOf<Options>>>;
|
|
35
|
+
/** The merged static declarations visible while project() evaluates a row. */
|
|
36
|
+
export type EngineProjectionContext<Defaults, Options> = MergeFhirpathTypeContexts<MergeFhirpathTypeContexts<FhirpathTypeContextOf<Defaults>, FhirpathTypeContextOf<Options>>, {
|
|
37
|
+
env: {
|
|
38
|
+
rowIndex: {
|
|
39
|
+
type: 'System.Integer';
|
|
40
|
+
};
|
|
41
|
+
rowTotal: {
|
|
42
|
+
type: 'System.Integer';
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}>;
|
|
46
|
+
/** The inferred row returned by project(), including its built-in row variables. */
|
|
47
|
+
export type EngineProjection<Columns extends ProjectionColumns, Input, Defaults, Options> = Projection<Columns, EngineInputRoot<Input>, EngineProjectionContext<Defaults, Options>>;
|
|
22
48
|
/**
|
|
23
49
|
* Records engines created while project modules are imported. Call the returned
|
|
24
50
|
* function to close the session and read its engines. Only one session is active
|
|
@@ -52,7 +78,7 @@ export interface EngineOptions extends EvaluateOptions {
|
|
|
52
78
|
* replace defaults, while `env`, `vars`, and `functions` merge by name. Keep an
|
|
53
79
|
* engine for reuse because its parse cache is private to that instance.
|
|
54
80
|
*/
|
|
55
|
-
export declare class FhirPathEngine {
|
|
81
|
+
export declare class FhirPathEngine<const Defaults extends EngineOptions = EmptyFhirpathTypeContext> {
|
|
56
82
|
/** The per-call options bound at construction; engine-only settings are not part of them. */
|
|
57
83
|
readonly defaults: EvaluateOptions;
|
|
58
84
|
/**
|
|
@@ -62,17 +88,17 @@ export declare class FhirPathEngine {
|
|
|
62
88
|
*/
|
|
63
89
|
readonly dtos: readonly DtoClass[];
|
|
64
90
|
private readonly compileCached;
|
|
65
|
-
constructor(
|
|
91
|
+
constructor(options?: Declaring<Defaults, EngineOptions>);
|
|
66
92
|
/** Compile (LRU-cached by expression text) and evaluate in one call; typed like `compile().evaluate()`. */
|
|
67
|
-
evaluate<const Expr extends string, T extends keyof R4TypeOf>(expression:
|
|
68
|
-
evaluate<const Expr extends string>(expression:
|
|
93
|
+
evaluate<const Expr extends string, T extends keyof R4TypeOf>(expression: EngineExpression<Expr>, input: EngineInput<Expr> | undefined, options: TypedEvaluateOptions<T>): R4TypeOf[T][];
|
|
94
|
+
evaluate<const Expr extends string, const Input extends EngineInput<Expr> | undefined = undefined, const Options extends object = EmptyFhirpathTypeContext>(expression: EngineExpression<Expr>, input?: Input, options?: Declaring<Options>): EngineResult<Expr, Input, Defaults, Options>;
|
|
69
95
|
/** Like `evaluate()`, keeping the internal typed representation (types, Decimal, Temporal). */
|
|
70
96
|
evaluateTyped(expression: AnyExpression, input?: unknown, options?: EvaluateOptions): TypedValue[];
|
|
71
97
|
/** Parse once for reuse, with this engine's defaults bound. Does not touch the parse cache. */
|
|
72
|
-
compile<const Expr extends string>(expression: Expr): BoundExpression<Expr>;
|
|
98
|
+
compile<const Expr extends string>(expression: Expr): BoundExpression<Expr, Defaults>;
|
|
73
99
|
/** The first result, or undefined when the expression comes up empty. */
|
|
74
|
-
first<const Expr extends string, T extends keyof R4TypeOf>(expression:
|
|
75
|
-
first<const Expr extends string>(expression:
|
|
100
|
+
first<const Expr extends string, T extends keyof R4TypeOf>(expression: EngineExpression<Expr>, input: EngineInput<Expr> | undefined, options: TypedEvaluateOptions<T>): R4TypeOf[T] | undefined;
|
|
101
|
+
first<const Expr extends string, const Input extends EngineInput<Expr> | undefined = undefined, const Options extends object = EmptyFhirpathTypeContext>(expression: EngineExpression<Expr>, input?: Input, options?: Declaring<Options>): EngineResult<Expr, Input, Defaults, Options>[number] | undefined;
|
|
76
102
|
/**
|
|
77
103
|
* Boolean criteria evaluation, the semantics FHIR invariants, Subscription
|
|
78
104
|
* criteria, and `enableWhen` share. A single boolean returns itself, a single
|
|
@@ -95,8 +121,8 @@ export declare class FhirPathEngine {
|
|
|
95
121
|
*/
|
|
96
122
|
project<C extends DtoClass>(input: readonly unknown[] | BundleLike, dto: C, options?: EvaluateOptions): InstanceType<C>[];
|
|
97
123
|
project<C extends DtoClass>(input: unknown, dto: C, options?: EvaluateOptions): InstanceType<C>;
|
|
98
|
-
project<const
|
|
99
|
-
project<const Columns extends ProjectionColumns>(input:
|
|
124
|
+
project<const Input extends readonly unknown[] | BundleLike, const Columns extends ProjectionColumns, const Options extends object = EmptyFhirpathTypeContext>(input: Input, columns: Columns, options?: Declaring<Options>): EngineProjection<Columns, Input, Defaults, Options>[];
|
|
125
|
+
project<const Input, const Columns extends ProjectionColumns, const Options extends object = EmptyFhirpathTypeContext>(input: Input, columns: Columns, options?: Declaring<Options>): EngineProjection<Columns, Input, Defaults, Options>;
|
|
100
126
|
/**
|
|
101
127
|
* Evaluates FHIR constraint expressions. Arrays and Bundles add the resource
|
|
102
128
|
* index to each issue. Expression errors become failed issues. This is not full
|
|
@@ -119,16 +145,16 @@ export declare class FhirPathEngine {
|
|
|
119
145
|
private precompiledBody;
|
|
120
146
|
}
|
|
121
147
|
/** A compiled expression carrying an engine's defaults, so `evaluate(input)` needs nothing else. */
|
|
122
|
-
export declare class BoundExpression<Expr extends string = string> {
|
|
148
|
+
export declare class BoundExpression<Expr extends string = string, Defaults extends EngineOptions = EmptyFhirpathTypeContext> {
|
|
123
149
|
readonly expression: CompiledExpression<Expr>;
|
|
124
150
|
private readonly engine;
|
|
125
|
-
constructor(engine: FhirPathEngine
|
|
126
|
-
get source():
|
|
151
|
+
constructor(engine: FhirPathEngine<Defaults>, expression: CompiledExpression<Expr>);
|
|
152
|
+
get source(): Expr;
|
|
127
153
|
evaluate<T extends keyof R4TypeOf>(input: EngineInput<Expr> | undefined, options: TypedEvaluateOptions<T>): R4TypeOf[T][];
|
|
128
|
-
evaluate
|
|
154
|
+
evaluate<const Input extends EngineInput<Expr> | undefined = undefined, const Options extends object = EmptyFhirpathTypeContext>(input?: Input, options?: Declaring<Options>): EngineResult<Expr, Input, Defaults, Options>;
|
|
129
155
|
evaluateTyped(input?: unknown, options?: EvaluateOptions): TypedValue[];
|
|
130
156
|
first<T extends keyof R4TypeOf>(input: EngineInput<Expr> | undefined, options: TypedEvaluateOptions<T>): R4TypeOf[T] | undefined;
|
|
131
|
-
first
|
|
157
|
+
first<const Input extends EngineInput<Expr> | undefined = undefined, const Options extends object = EmptyFhirpathTypeContext>(input?: Input, options?: Declaring<Options>): EngineResult<Expr, Input, Defaults, Options>[number] | undefined;
|
|
132
158
|
test(input: unknown, options?: EvaluateOptions): boolean;
|
|
133
159
|
/** The canonical form of the expression. */
|
|
134
160
|
toString(): string;
|
package/dist/api/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/api/engine.js
CHANGED
|
@@ -40,7 +40,8 @@ export class FhirPathEngine {
|
|
|
40
40
|
*/
|
|
41
41
|
dtos;
|
|
42
42
|
compileCached;
|
|
43
|
-
constructor(
|
|
43
|
+
constructor(options = {}) {
|
|
44
|
+
const { cacheSize, resourceDtos, ...defaults } = options;
|
|
44
45
|
this.compileCached = createCachedCompiler(cacheSize);
|
|
45
46
|
this.dtos = resourceDtos ?? [];
|
|
46
47
|
this.defaults = this.precompiled(withDtos(defaults, this.dtos, this.compileCached));
|