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.
Files changed (120) hide show
  1. package/README.md +50 -18
  2. package/dist/analyzer/analyze-dto.d.ts +4 -0
  3. package/dist/analyzer/analyze-dto.d.ts.map +1 -1
  4. package/dist/analyzer/analyze-dto.js +12 -14
  5. package/dist/analyzer/analyze-dto.js.map +1 -1
  6. package/dist/analyzer/analyze.d.ts +22 -6
  7. package/dist/analyzer/analyze.d.ts.map +1 -1
  8. package/dist/analyzer/analyze.js +242 -98
  9. package/dist/analyzer/analyze.js.map +1 -1
  10. package/dist/analyzer/declarations.d.ts +26 -0
  11. package/dist/analyzer/declarations.d.ts.map +1 -0
  12. package/dist/analyzer/declarations.js +68 -0
  13. package/dist/analyzer/declarations.js.map +1 -0
  14. package/dist/analyzer/operator-rules.d.ts +127 -0
  15. package/dist/analyzer/operator-rules.d.ts.map +1 -0
  16. package/dist/analyzer/operator-rules.js +70 -0
  17. package/dist/analyzer/operator-rules.js.map +1 -0
  18. package/dist/analyzer/signatures.d.ts +1097 -10
  19. package/dist/analyzer/signatures.d.ts.map +1 -1
  20. package/dist/analyzer/signatures.js +70 -29
  21. package/dist/analyzer/signatures.js.map +1 -1
  22. package/dist/api/compile.d.ts +32 -8
  23. package/dist/api/compile.d.ts.map +1 -1
  24. package/dist/api/compile.js +2 -0
  25. package/dist/api/compile.js.map +1 -1
  26. package/dist/api/engine.d.ts +42 -16
  27. package/dist/api/engine.d.ts.map +1 -1
  28. package/dist/api/engine.js +2 -1
  29. package/dist/api/engine.js.map +1 -1
  30. package/dist/api/project.d.ts +8 -8
  31. package/dist/api/project.d.ts.map +1 -1
  32. package/dist/api/project.js +31 -19
  33. package/dist/api/project.js.map +1 -1
  34. package/dist/api/strict.d.ts +6 -0
  35. package/dist/api/strict.d.ts.map +1 -0
  36. package/dist/api/strict.js +71 -0
  37. package/dist/api/strict.js.map +1 -0
  38. package/dist/api/tagged.d.ts +4 -4
  39. package/dist/api/tagged.d.ts.map +1 -1
  40. package/dist/api/tagged.js.map +1 -1
  41. package/dist/cli/dto-check.js +7 -3
  42. package/dist/cli/dto-check.js.map +1 -1
  43. package/dist/engine/context.d.ts +3 -1
  44. package/dist/engine/context.d.ts.map +1 -1
  45. package/dist/engine/context.js +5 -1
  46. package/dist/engine/context.js.map +1 -1
  47. package/dist/engine/navigation.d.ts.map +1 -1
  48. package/dist/engine/navigation.js +7 -48
  49. package/dist/engine/navigation.js.map +1 -1
  50. package/dist/engine/type-matching.d.ts.map +1 -1
  51. package/dist/engine/type-matching.js +6 -16
  52. package/dist/engine/type-matching.js.map +1 -1
  53. package/dist/index.d.ts +4 -3
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/parser/parser.d.ts.map +1 -1
  57. package/dist/parser/parser.js +102 -73
  58. package/dist/parser/parser.js.map +1 -1
  59. package/dist/parser/precedence.d.ts +368 -4
  60. package/dist/parser/precedence.d.ts.map +1 -1
  61. package/dist/parser/precedence.js +146 -32
  62. package/dist/parser/precedence.js.map +1 -1
  63. package/dist/r4/generated/type-maps.d.ts +1367 -0
  64. package/dist/r4/generated/type-maps.d.ts.map +1 -1
  65. package/dist/r4/index.d.ts +3 -1
  66. package/dist/r4/index.d.ts.map +1 -1
  67. package/dist/typed/context-maps.d.ts +23 -0
  68. package/dist/typed/context-maps.d.ts.map +1 -0
  69. package/dist/typed/context-maps.js +2 -0
  70. package/dist/typed/context-maps.js.map +1 -0
  71. package/dist/typed/infer.d.ts +99 -229
  72. package/dist/typed/infer.d.ts.map +1 -1
  73. package/dist/typed/infer.js +1 -84
  74. package/dist/typed/infer.js.map +1 -1
  75. package/dist/typed/inference-limits.d.ts +7 -0
  76. package/dist/typed/inference-limits.d.ts.map +1 -0
  77. package/dist/typed/inference-limits.js +6 -0
  78. package/dist/typed/inference-limits.js.map +1 -0
  79. package/dist/typed/metadata-compact.d.ts +189 -0
  80. package/dist/typed/metadata-compact.d.ts.map +1 -0
  81. package/dist/typed/metadata-compact.js +3 -0
  82. package/dist/typed/metadata-compact.js.map +1 -0
  83. package/dist/typed/parser.d.ts +515 -0
  84. package/dist/typed/parser.d.ts.map +1 -0
  85. package/dist/typed/parser.js +2 -0
  86. package/dist/typed/parser.js.map +1 -0
  87. package/dist/values/type-compat.d.ts +8 -0
  88. package/dist/values/type-compat.d.ts.map +1 -1
  89. package/dist/values/type-compat.js +44 -1
  90. package/dist/values/type-compat.js.map +1 -1
  91. package/package.json +20 -1
  92. package/src/analyzer/analyze-dto.ts +21 -17
  93. package/src/analyzer/analyze.ts +335 -109
  94. package/src/analyzer/declarations.ts +120 -0
  95. package/src/analyzer/operator-rules.ts +88 -0
  96. package/src/analyzer/signatures.ts +99 -41
  97. package/src/api/compile.ts +66 -11
  98. package/src/api/engine.ts +97 -33
  99. package/src/api/project.ts +54 -30
  100. package/src/api/strict.ts +112 -0
  101. package/src/api/tagged.ts +5 -5
  102. package/src/cli/dto-check.ts +7 -3
  103. package/src/engine/context.ts +7 -2
  104. package/src/engine/navigation.ts +7 -52
  105. package/src/engine/type-matching.ts +11 -17
  106. package/src/index.ts +25 -2
  107. package/src/parser/parser.ts +106 -74
  108. package/src/parser/precedence.ts +250 -33
  109. package/src/r4/generated/type-maps.ts +1557 -0
  110. package/src/typed/context-maps.ts +41 -0
  111. package/src/typed/infer.ts +157 -425
  112. package/src/typed/inference-limits.ts +9 -0
  113. package/src/typed/metadata-compact.ts +307 -0
  114. package/src/typed/parser.ts +2277 -0
  115. package/src/values/type-compat.ts +48 -1
  116. package/dist/typed/perf-fixture.types.d.ts +0 -136
  117. package/dist/typed/perf-fixture.types.d.ts.map +0 -1
  118. package/dist/typed/perf-fixture.types.js +0 -2
  119. package/dist/typed/perf-fixture.types.js.map +0 -1
  120. 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,UAAU,eAAe;IACvB,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,MAAM,EAAE,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,YAAY,EAAE,CAAA;IACrB,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAChD;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;IAChB;;;OAGG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,KAAK,eAAe,CAAA;CACpG;AASD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,eAAe,CAI/F;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,CAAC,eAAe,GAAG,SAAS,CAAC,EAAE,GAAG,eAAe,CAapF;AAKD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAqJ3E,CAAA"}
1
+ {"version":3,"file":"signatures.d.ts","sourceRoot":"","sources":["../../src/analyzer/signatures.ts"],"names":[],"mappings":"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"}
@@ -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 = () => ({ types: ['System.Boolean'], single: true });
9
- const INTEGER = () => ({ types: ['System.Integer'], single: true });
10
- const STRING = () => ({ types: ['System.String'], single: true });
11
- const DECIMAL = () => ({ types: ['System.Decimal'], single: true });
12
- const UNKNOWN = () => ({ types: undefined, single: undefined });
13
- const SAME = (input) => input;
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 = { input: { kind: 'String', singleton: true }, args: ['String'], result: STRING };
44
- const MATH_FN = { input: { kind: 'Numeric', singleton: true }, result: DECIMAL };
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
- export const FUNCTION_SIGNATURES = {
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: (input, args) => withSingle(args[0] ?? UNKNOWN(), singleAnd(input.single, args[0]?.single)),
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: (input, args) => withSingle(unionStates([input, args[0]]), false) },
86
- combine: { args: ['any'], result: (input, args) => withSingle(unionStates([input, args[0]]), false) },
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: (_input, args) => unionStates([args[1], args[2] ?? { types: [], single: true }]),
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: input => ({ types: input.targets, single: input.single }) },
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: () => ({ types: ['System.String'], single: false }),
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: () => ({ types: ['System.String'], single: false }),
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
- aggregate: { args: ['expression', 'any'], result: UNKNOWN },
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: () => ({ types: ['System.Long'], single: true }) },
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: () => ({ types: ['System.Date'], single: true }) },
156
- toDateTime: { input: { singleton: true }, result: () => ({ types: ['System.DateTime'], single: true }) },
157
- toTime: { input: { singleton: true }, result: () => ({ types: ['System.Time'], single: true }) },
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: () => ({ types: ['System.Quantity'], single: true }),
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: () => ({ types: ['System.DateTime'], single: true }) },
173
- today: { result: () => ({ types: ['System.Date'], single: true }) },
174
- timeOfDay: { result: () => ({ types: ['System.Time'], single: true }) },
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: () => ({ types: ['System.Date'], single: true }) },
184
- timeOf: { input: { kind: 'Temporal', singleton: true }, result: () => ({ types: ['System.Time'], single: true }) },
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: (_input, args) => unionStates([...args]) },
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":"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"}
@@ -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, FhirpathResult, FhirpathResultIn, FhirTypeName } from '../typed/infer.ts';
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[] = FhirpathResult<Expr>> {
81
- readonly source: string;
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?: EvaluateOptions): TResult;
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[] = FhirpathResultIn<Expr, Root>>(expression: Expr, inputType: Root): CompiledExpression<Expr, R4TypeOf[Root], TResult>;
98
- export declare function compile<const Expr extends string, TInput = FhirpathInput<Expr>, TResult extends unknown[] = FhirpathResult<Expr>>(expression: Expr): CompiledExpression<Expr, TInput, TResult>;
99
- /** An expression as text or already compiled, with any literal type. */
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":"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"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"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"}
@@ -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. */
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/api/compile.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import type { R4TypeOf } from '../r4/generated/type-maps.ts';
2
- import type { FhirpathInput, FhirpathResult } from '../typed/infer.ts';
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({ cacheSize, resourceDtos, ...defaults }?: EngineOptions);
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: Expr | CompiledExpression<Expr>, input: EngineInput<Expr> | undefined, options: TypedEvaluateOptions<T>): R4TypeOf[T][];
68
- evaluate<const Expr extends string>(expression: Expr | CompiledExpression<Expr>, input?: EngineInput<Expr>, options?: EvaluateOptions): FhirpathResult<Expr>;
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: Expr | CompiledExpression<Expr>, input: EngineInput<Expr> | undefined, options: TypedEvaluateOptions<T>): R4TypeOf[T] | undefined;
75
- first<const Expr extends string>(expression: Expr | CompiledExpression<Expr>, input?: EngineInput<Expr>, options?: EvaluateOptions): FhirpathResult<Expr>[number] | undefined;
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 Columns extends ProjectionColumns>(input: readonly unknown[] | BundleLike, columns: Columns, options?: EvaluateOptions): Projection<Columns>[];
99
- project<const Columns extends ProjectionColumns>(input: unknown, columns: Columns, options?: EvaluateOptions): Projection<Columns>;
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, expression: CompiledExpression<Expr>);
126
- get source(): string;
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(input?: EngineInput<Expr>, options?: EvaluateOptions): FhirpathResult<Expr>;
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(input?: EngineInput<Expr>, options?: EvaluateOptions): FhirpathResult<Expr>[number] | undefined;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/api/engine.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,8 @@ export class FhirPathEngine {
40
40
  */
41
41
  dtos;
42
42
  compileCached;
43
- constructor({ cacheSize, resourceDtos, ...defaults } = {}) {
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));